ユーザーのセキュアなIT製品に対する要求は、人の生活や産業に直接影響を与えるモノのインターネット(IoT)やサイバーフィジカルシステム(CPS)といった分野で増え続けている。ベンダーとユーザーは信用性あるいは客観的セキュリティ評価に基づいて製品を売買するため、セキュリティ評価は重要な役割を担う。セキュリティ評価は大きく、ISO/IEC29128(暗号プロトコルの安全性)のようなデザインおよびISO/IEC15408(コモンクライテリア)のような実装の評価に二分される。これらのセキュリティ評価の基準、ISO/IEC29128およびISO/IEC15408はともに対象の製品に高い保証レベルが要求されている場合には、形式的検証と自動化ツールの使用を勧告している。
この自動化ツールを使用した脆弱性の検知は、長い間多くのセキュリティ研究者やハッカーにより試行や研究が行われてきた。そして最近では、DARPAのサイバーグランドチャレンジにより、自動化ツールを利用した脆弱性検知に関する研究は、今までにないくらい活発になっている。しかしながら、数多くの自動化ツールが継続的に開発され、それぞれのツールが個別の目的のために使用されるもののため、効率的にセキュリティ評価を行うことが難しくなっている。
さらに、セキュリティ評価の側面から自動化ツールを分類するために参考にできる基準が無い。このプレゼンテーションではすべての脆弱性検知のための自動化ツールを列挙、分類をした上で分析を行い、長所と短所、目的、効率性などの結果を紹介する。
--- イン・ヒュ・セオ In Hyuk Seo
Inhyuk Seo(通称 in hack)。2015年に漢陽大学(ERICA)にて、計算機科学と工学の学士号を取得。現在は高麗大学の修士課程でSecurity Analaysis aNd Evaluation(SANE)に籍を置く。現在はプログラミング言語、ソフトウェア検査、機械学習および人工知能に興味を持つ。2012年にはKITRI(Korea Information Technology Research Institute)で開催された情報セキュリティ教育コース Best of the Best(BoB)を修了し、プロジェクト「難読化されたJavaスクリプト向けエクスプロイトデコーダ」の実行を指揮した。多くの脆弱性分析関連のプロジェクトに参加。スマートTVの脆弱性分析とセキュリティ評価、 軍事環境向けモバイルセキュリティソリューション(EAL4)の開発などを指揮する。また、多岐にわたる国内の通信業者のIoT製品の脆弱性分析に参加した。
--- ジソ・パク Jiso
3. 自己紹介
Inhyuk Seo (徐寅赫)
E-mail : jisoo8881@korea.ac.kr
Jisoo Parkは、2015年に韓国の東国大学より計算機科学と工学の学士号を取得。アンチウィルスで知られる
Ahnlabにて、ソフトウェアの品質保証訓練生として6ヶ月従事した経歴を持つ。また、彼はKITRI(Korea Informa
tion Technology Research Institute)で開催された情報セキュリティ教育コース Best of the Best(BoB)を修了
した。現在は高麗大学の修士課程で、Security Analaysis aNd Evaluation 研究室に研究員として籍を置き、コ
モンクライテリアおよびセキュリティエンジニアリング(特に脅威モデリング)に興味を持っている。
Jisoo Park (朴志洙)
E-mail : inhack@korea.ac.kr
Inhyuk Seo(通称 in hack)。2015年に漢陽大学(ERICA)にて、計算機科学と工学の学士号を取得。現在は高
麗大学の修士課程でSecurity Analaysis aNd Evaluation(SANE)に籍を置く。2012年にはKITRI(Korea Informati
on Technology Research Institute)で開催された情報セキュリティ教育コース Best of the Best(BoB)にて多く
の脆弱性分析関連のプロジェクトに参加。現在はプログラミング言語、ソフトウェア検査、機械学習および人
工知能に興味を持つ。
4. Seungjoo Gabriel Kim (金昇柱)
E-mail: skim71@korea.ac.kr
Homepage : www.kimlab.net
Facebook, Twitter : @skim71
Seungjoo Gabriel Kim博士は、韓国の成均館大学校(SKKU)より、学士、修士、博士号をそれぞれ1994年、
1996年そして1999年に取得。2011年に高麗大学(KU)の職員になる前は、成均館大学校にて助教授および
准教授として勤務。以前は、Cryptographic Technology Teamのディレクターおよび、Korea Internet &
Security Agency(KISA)のITセキュリティ評価チーム(コモンクライテリアベース)を5年務めた。現在は、
Information Security Technologies(CIST)大学院の教授を務める。また彼は、ハッカーグループHARUおよ
び、セキュリティとハッキングの国際会議であるSECUINSIDEの創始者と相談役でもある。Seungjoo Gabriel
Kim博士の研究対象は、主に暗号、サイバー・フィジカル・セキュリティ、IoTセキュリティおよびHCIセキュリ
ティである。彼は責任著者である。
自己紹介
21. ケーススタディ: Microsoft セキュリティ開発ライフサイクル
実際に効果があったのか?
34
3
187
SQL Server 2000 SQL Server 2005 Competing
commercial DB
Total Vulnerabilities Disclosed
36 Month after Release
46%
reductio
n
119
66
400
242
157
Windows
XP
Windows
Vista
OS A OS B OS C
Total Vulnerabilities
Disclosed On year after Release
46% 削減
After SDLBefore SDL After SDLBefore SDL
91% 削減
Analysis by Jeff Jones(Microsoft technet security blogWindows Vista One year Vulnerability Report, Microsoft Security Blog 23 Jan 2008
セキュリティエンジニアリング
27. ISO/IEC 29128とISO/IEC 15408 は「信頼性」と「セキュリティ」を含む
ISO 26262, DO-254 : 主に「安全性」と「信頼性」に焦点をあてている
標準 / 規則 保証レベル
ISO 26262 ASIL A ASIL B ASIL C ASIL D
DO-254 DAL E DAL D DAL C DAL B DAL A
ISO/IEC 29128 PAL 1 PAL 2 PAL 3 PAL 4
ISO/IEC 15408 EAL1 EAL 2 EAL 3 EAL 4 EAL 5 EAL 6 EAL 7
高低
高保証、CPSへの鍵
28. ISO/IEC 29128とISO/IEC 15408 は「信頼性」と「セキュリティ」を含む
ISO 26262, DO-254 : 主に「安全性」と「信頼性」に焦点をあてている
” 標準 / 規則 保証レベル
ISO/IEC 29128 PAL 1 PAL 2 PAL 3 PAL 4
ISO/IEC 15408 EAL1 EAL 2 EAL 3 EAL 4 EAL 5 EAL 6 EAL 7
高低
高保証、CPSへの鍵
44. 暗号プロトコル(モデル検証)
• Syther
評価項目 解説
ユーザビリティ GUI
分析レポート O
評価者要件 プロトコルデザインとモデリングの能力
自動化の程度 対話型
モデル記述手法 SPDL (Standard Page Description Language)
ライセンスとコスト 非商用(University of Oxford)
サポートされているプラット
フォーム
Linux / Windows / Mac OS X
デザイン保証のためのツール
45. 暗号プロトコル(モデル検証)
• ProVerif
評価項目 解説
ユーザビリティ CLI (簡単に使用できる)
分析レポート O
評価者要件 プロトコルデザインとモデリングの能力
自動化の程度 対話型
モデル記述手法 PV Script (ProVerif Script)
ライセンスとコスト 非商用(PROSECCO)
サポートされているプラット
フォーム
Linux / Windows / Mac OS X
デザイン保証のためのツール
46. 暗号プロトコル(定理証明)
• Isabelle/HOL(Higher-Order Logic)
評価項目 解説
ユーザビリティ GUI, IDE(Integrated Development Environment)
分析レポート O
評価者要件 プロトコルデザインとモデリングの能力
自動化の程度 対話型
モデル記述手法 Functional & Logic Language (HOL)
ライセンスとコスト 非商用(University of Cambridge)
サポートされているプラット
フォーム
Linux / Windows / Mac OS X
デザイン保証のためのツール
67. 参照
[1] Debra S. Herrmann, “A practical guide to Security Engineering and Information Assurance”
[2] Sommerville, “Software Engineering, 9ed. 11 & 12, Dependability and Security Specification”
[3] Charlie Miller, Chris Valasek, “Remote Exploitation of an Unaltered Passenger Vehicle”
[4] Ross Anderson, “Security Engineering”
[5] ISO/IEC/IEEE 15288 : 2015, “Systems and Software engineering-System life cycle process”,
[6] Joe Jarzombek, “Software & Supply Chain Assurance : A Historical Perspective of Community Collaboration”,
Homeland Security
[7] David Burke, Joe Hurd and Aaron Tomb, “High Assurance Software Development”, 2010
[8] Ron Ross, Michael McEilley and Janet Carrier Oren, “NIST SP 800-160 : Systems Security Engineering – Consideration
for a Multidisciplinary Approach in the Engineering of Trustworthy Secure Systems”, 2016
[9] Scott A.Lintelman, Krishna Sampigethaya, Mingyan Li, Radha Poovendran, Richard V. Robinson, “High Assurance
Aerospace CPS & Implications for the Automotive Industry”, 2015
[10] NIAP, “Common Criteria-Evaluation and Validation Scheme, Publication #3, Guidance to Validators version 3”, 2014
[11] ISO/IEC 27034-2, “Information technology – Security techniques – Application Security”, 2015
[12] Paul R. Croll, “ISO/IEC/IEEE 15026, Systems and Software Assurance”, 21st Annual Systems and Software Technology
Conference, 2009
68. 参照
[13] EURO-MILS, “Secure European Virtualisation for Trustworthy Applications in Critical Domains, Used Formal Methods”,
2015
[14] Vijay D’Silva, Daniel Kroening, and Georg Weissenbacher, “A Survey of Automated Techniques for Formal Software
Verification”, 2008
[15] Daniel Potts, Rene Bourquin, Lesile Andresen, “Mathematically Verified Software Kernals: Rasing the Bar for High
Assurance Implementation
[16] Bernhard Beckert, Daniel Bruns, Sarah Grebing, “Mind the Gap : Formal Verification and the Common Criteria“, 2010
[17] Gerwin Klein, Kevin Elphinstone, Gernot Heiser, June Andronick, David Cock, Philip Derrin, Dhammika Elkaduwe, Kai
Engelhardt, Rafal Kolankski, Michel Norrich, Thomas Sewell, Harvey Tuch, Simon Winwood, “seL4 : Formal Verification of
an OS Kernel”, 2009
[18] Gerwin Klein, NICTA, “Operating System Verification – An Overview”, 2009
[19] Jesus Diaz, David Arroyo, Francisco B. Rodriguez, “A formal methodology for integral security design and verification
of network protocols”, 2012
[20] Yoshikazu Hanatanil, Miyako Ohkubo, Sinichiro Matsuo, Kazuo Sakiyama, and Kazuo Ohta, “A Study on
Computational Formal Verification for Practical Cryptographic Protocol: The Case of Synchronous RFID Authentication”,
2011
[21] Alexandre Melo Braga, Ricardo Hahab, “A Survey on Tools and Techniques for the Programming and Verification of
Secure Cryptographic Software”, 2015
69. 参照
[22] Shinichiro Matsuo, Kunihiko Miyazaki, Akira Otsuka, David Basin, “How to Evaluate the Security of Real-life
Cryptographic Protocol? The cases of ISO/IEC 29128 and CRYPTREC, 2010
[23] Bruno Blanchet, Ben Smyth, and Vincent Cheval, “ProVerif 1.94pl1: Automatic Cryptographic Protocol Verifier, User
Manual and Tutorial”, 2016
[24] Charles B. Weinstock, John B. Goodennough, “Toward an Assurance Case Practice for Medical Devices”, 2009
[25] CISCO, “Building Trustworthy Systems with Cisco Secure Development Lifecycle”, 2016
[26] Yannick Moy, Emmanuel Ledinot, Herve Delseny, Virginie Wiels, Benjamin Monte, “Testing or Formal Verification :
DC-178C Alternatives and Industrial Experience”, 2013
[27] Karen Scarfone, Murugiah Souppaya, Amanda Cody, Angela Orebaugh, “NIST SP 800-115, Technical Guide to
Information Security Testing and Assessment – Recommandations of the National Institue of Standards and Technology”,
2008
[28] Steve Lipner, Microsoft, “The Security Development Lifecycle”, 2010
[29] Michael Felderer, Ruth Breu, Matthias Buchler, “Security Testing : A Survey”, 2016
[30] Vijay D’Silva, Daniel Kroening, George Weissenbacher, “A Survey of Automated Techniques for Formal Software
Verification”
[31] John Rushby, Xidong Xu, Rangarajan and Thomas L. Weaver, “Understanding and Evaluating Assurance Case”, 2015
[32] David J.Rinehart, John C. Knight, Jonathan Rowanhill, “Current Practices in Constructing and Evaluating Assurance
Case with Application to Aviation”, 2015
[33] The Government of Japan, “Cybersecurity Strategy 2015”
70. 参照
[34] Yasu Taniwaki, Deputy Director-General National Information Security Center, “Cybersecurity Strategy in Japan”, 2014
[35] “The NRL Protocol Analyzer : An Overview”, 1994
[36] Bruno Blanchet, “Automatic Verification of security protocols : the tools ProVerif and CryptoVerif”, 2011
[37] Tobias Nipkow, “Programming and Proving in Isabelle/HOL”, 2016
[38] Assistant Secretary of the Navy Chief System Engineer, “Software Security Assessment Tools Review”, 2009
[39] S.Santiago, C.Talcott, S.Escobar, C.Meadows, J.Meseguer, “A Graphical User Interface for Maude-NPA”, 2009
[40] NIST, "Source Code Security Analyzers"
[41] Cadar, Cristian, "KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs",
2008
[42] Cha, Sang Kil, "Unleashing MAYHEM on Binary Code", 2012
[43] Giovanni Vigna, "Autonomous Hacking: The New Frontiers of Attack and Defense", 2016
[44] Antonio Bianchi, "A Dozen Years of Shellphish From DEFCON to the Cyber Grand Challenge", 2015
[45] Jonathan Salwan, "Triton: Concolic Execution Framework", 2016
[46] Godefroid, "SAGE: Whitebox Fuzzing for Security Testing", 2012
[47] Michael Zalewski, "American Fuzzy Lop (http://lcamtuf.coredump.cx/afl/)", 2015
[48] Vegard Nossum, Oracle, "Filesystem Fuzzing with American Fuzzy Lop", 2016
[49] Hongzhe Li, "CLORIFI: software vulnerability discovery using code clone verification", 2015
[50] Stephens, "Driller: Augmenting Fuzzing Through Selective Symbolic Execution", 2016
[51] John Rushby, “The Interpretation and Evaluation of Assurance Cases”, SRI International Technical Report, 2015