Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

[CB16] CGCで使用した完全自動脆弱性検知ツールを使ったセキュリティの分析とその効果 by InHyuk Seo & Jason Park

840 views

Published on

ユーザーのセキュアな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

Published in: Technology
  • Login to see the comments

[CB16] CGCで使用した完全自動脆弱性検知ツールを使ったセキュリティの分析とその効果 by InHyuk Seo & Jason Park

  1. 1. 徐寅赫(inhack), 朴志洙(J.Sus), 金昇柱 SANE(Security Analysis aNd Evaluation) Lab Korea University(高麗大学校) DARPAサイバーグランドチャレンジの 完全自動脆弱性検知ツールを利用した セキュリティ評価とその有効性
  2. 2. 目次 • 自己紹介 • はじめに • セキュリティエンジニアリング、情報保証への道 • 高保証、CPSへの鍵 • セキュリティ検査と保証のためのツール - デザイン保証のためのツール / コード保証のためのツール • デモ (Design / Code) • 結論 • 謝辞 • Q&A • 参照
  3. 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. 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セキュリ ティである。彼は責任著者である。 自己紹介
  5. 5. はじめに あるものに対する信用の度合い 保証 ユーザのある情報に対する 信用の度合い 情報保証
  6. 6. はじめに 情報保証の台頭 湾岸戦争は最初の情報 戦と呼ばれている “IAの前兆” 1991 U.S. DoD Directive 5-3600.1 : IAの標準化された初めて の定義 1996 情報セキュリティ (INFOSEC) 時代 1980 ~ 「砂漠の嵐作戦をサポートした通信ネットワークは、過去に創設された最大の共同シアターシステムで あった。これは記録的短時間で構築され、驚異的な98パーセントの可用性を維持した。運用の最盛期で このシステムは、1日に70万件の電話や15万2千件のメッセージをサポートしていた。必要な接続を提供 し、最小限の干渉を確実にするために、3万以上の無線周波数が管理された」 デブラS・ハーマン, “Security Engineering and Information Assurance”
  7. 7. はじめに 情報保証 「可用性、完全性、認証、機密性、および否認防止を確保することで、情報と情報システムを 保護し、防衛する手法。これは保護、検知と反応する能力の組み込みによる、情報システム の復旧の提供を含む」 DoD Directive 8500.01E 情報保証の台頭 湾岸戦争は最初の情報 戦と呼ばれている “IAの前兆” 1991 U.S. DoD Directive 5-3600.1 : IAの標準化された初めて の定義 1996 情報セキュリティ (INFOSEC) 時代 1980 ~
  8. 8. 情報セキュリティと情報保証の 違いはなにか? はじめに
  9. 9. はじめに Information Security (情報保護) Information Assurance (情報保証) 時期 1980年代以降 1998年以降 保護の対象 情報と情報システム ビジネス全体 ゴール 機密性、完全性、可用性 機密性、完全性、可用性、否認不可、責任、監査 性、透明性、採算性、効率性 情報の種類 主に電子的 全種類 アプローチ 技術的アプローチの優位性、ソフト面を考慮に入 れる最初の試み 全方位型、 複数の領域にわたる系統的なアプ ローチ セキュリティ手法 技術的なセキュリティメカニズムに主眼を置く; 組織的、人間本位のメカニズムの初期的検討 全て使用可能 (技術的、組織的、人間本位の、法的) ビジネスにおける役割 システムをサポートする、しばしばビジネスに制約 を課す ビジネスに不可欠、ビジネスの実現要素となる セキュリティの意思決定 の流れ ボトムアップ トップダウン
  10. 10. はじめに Information Security (情報保護) Information Assurance (情報保証) 時期 1980s以降 1998以降 保護の対象 情報と情報システム ビジネス全体 ゴール 機密性、完全性、可用性 機密性、完全性、可用性、否認負荷、責任、監査 性、透明性、採算性、効率性 情報の種類 主に電子的 全種類 アプローチ 技術的アプローチの優位性、ソフト面を考慮に入 れる最初の試み 全方位型、 複数の領域にわたる系統的なアプ ローチ セキュリティ手法 技術的なセキュリティメカニズムに主眼を置く; 組織的、人間本位のメカニズムの初期的検討 All available (技術的、組織的、人間本位の、法的) ビジネスにおける役割 システムをサポートする、しばしばビジネスに制約 を課す ビジネスに不可欠、ビジネスの実現要素となる セキュリティの意思決定 の流れ ボトムアップ トップダウン 情報と情報システムを不正なアクセス、 使用、開示、中断、変更および破壊か ら保護する 情報が真正で信用に足り, アクセス 可能であることを検証する
  11. 11. セキュリティエンジニアリング、 情報保証への道
  12. 12. 情報保証は何をゴールとしているのか? セキュリティエンジニアリング
  13. 13. セキュリティエンジニアリング 情報保証のゴール 信頼度 システムが要求を受けた 時にサービスを 定常できる能力 可用性 システムが仕様に基づいて サービスが提供できる能力 信頼性 システムが偶発的な、 あるいは計画的な侵入を 受けた時に防衛する能力 システムが破局故障を 起こさずに運用できる能力 安全性 セキュリティ ユーザが期待する通りに動作し、通常使用する上で故障しないことに対するユーザ の自信の程度を反映する
  14. 14. 領域 信頼性 セキュリティ 安全 財務システム 中 高 なし 医療記録のデータベース 中 中 中 航空管制システム 中 高 高 自動車 高 中 高 Defcon 23 – Charlie Miller & Chris Valasek “Remote Exploitation of an Unaltered Passenger Vehicle” 最初は「低」であった セキュリティエンジニアリング 情報保証のゴール
  15. 15. 情報保証の要件はどのように達成されるのか? セキュリティエンジニアリング
  16. 16. 情報保証の要件はどのように達成されるのか? セキュリティエンジニアリング セキュリティエンジニアリング
  17. 17. セキュリティエンジニアリングとは悪意、エラーや不運に直面しても信頼度を維持する システムを構築することである。基本原則として、それは、完全なシステムを設計、実 装、検査し、その環境が進化するにつれ、既存のシステムを適合させるために必要な ツールに焦点を当てている – ロス・アンダーソン, Computer Laboratory in University of Cambridge - セキュリティエンジニアリングとは何か? セキュリティエンジニアリング
  18. 18. ポリシー 保証 メカニズム ポリシー保証 デザイン保証 導入保証 運用保証 システムライフサイクルのすべての段階で必要な 保証 セキュリティエンジニアリングの究極の目的 セキュリティエンジニアリング セキュリティエンジニアリングとは何か?
  19. 19. 要件定義 設計 実装 導入 保守 システムエンジニアリングライフサイクルプロセス(ISO/IEC/IEEE 15288 : 2015) • ビジネスあるい は任務分析 • 利害関係者要求定義 • システム要求定義 • 構成定義 • 要件定義 • システム分析 • 実装 • 結合 • 妥当性確認 • 移行 • 検証 • 運用 • 保守 • 処分 セキュリティエンジニアリング セキュリティエンジニアリングとは何か? ライフサイクルを通してセキュリティエンジニアリングを提供する
  20. 20. ケーススタディ: Microsoft セキュリティ開発ライフサイクル セキュリティエンジニアリング
  21. 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 セキュリティエンジニアリング
  22. 22. 高保証、CPSへの鍵
  23. 23. 高保証、CPSへの鍵 高保証とは何か? 高保証とは、システムが予定またはデザインされた通り、正確に 稼働することを数学的に証明できる状態を指す。 高保証開発とは明確かつ有無を言わさぬ証拠が各開発段階にあ る状態を指す。
  24. 24. 「CPS」とは何か? サーバー・フィジカル・システム(CPS)は共 同エンジニアリングされた、物理および電算 コンポーネントの相互通信ネットワークであ る。 CPSは重要インフラ基盤を提供し、新興ある いは未来のスマートデバイスの基礎を形成 し、様々な分野で私たちの生活の質を向上さ せる。 モノのインターネット (IoT) サイバー・フィジカル・ システム 保証セキュリティ VS 高保証、CPSへの鍵
  25. 25. 「高保証」はどこで必要か? 情報保証 セキュリティ エンジニアリング 重要インフラ 財務 航空 政府 医療 自動車 鉄道 エネルギー . . 高保証 適用と保証 高保証、CPSへの鍵
  26. 26. 重要インフラのための標準や規制は、信頼度の要件を達成するた めには十分でない。 • ほとんどの標準がセキュリティを欠いている 分野 標準 / 規制 自動車 ISO 26262 航空 DO-178B, 178C, 254, 278A …. 医療 IEC 62304 鉄道 EN 50128 高保証、CPSへの鍵
  27. 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. 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への鍵
  29. 29. 例 : ISO/IEC 29128 暗号プロトコルの検証 プロトコル保証レベ ル PAL1 PAL2 PAL3 PAL4 プロトコル仕様 プロトコル仕様の準形式 的記述 プロトコル仕様の形式 的記述 文法が数学的に定義されている、ツールに対応し た言語で記述されたプロトコル仕様の形式的記述。攻撃者モデル セキュリティ要件 自己評価の証拠 攻撃者モデルにおいて、 対象となる暗号プロトコ ルがセキュリティ要件を 満たしていることを非形 式的議論あるいは数学 的に形式的な紙と鉛筆 の証明 攻撃者モデルにおいて、 対象となるプロトコルが セキュリティ要件を満た している事をツールを 利用した有限検証 攻撃者モデルにおいて、 対象となるプロトコルが セキュリティ要件を満た している事をツールを 利用した無限検証 攻撃者モデルにおいて、 対象となるプロトコルが セキュリティ要件を満た している事をツールを 利用した無限検証 高保証、CPSへの鍵
  30. 30. 例:Common Criteria ISO/IEC 15408 ITセキュリティのための評価クライテリア Evaluation Assurance Level Description EAL 7 形式的検証済み設計、及びテスト EAL 6 準形式的検証済み設計、及びテスト EAL 5 準形式的設計、及びテスト EAL 4 方式的設計、テスト、及びレビュー EAL 3 方式的テスト、及びチェック EAL 2 構造化テスト EAL 1 機能テスト Gerwin Klein, Operating System Verification – An Overview 高保証、CPSへの鍵
  31. 31. 例:Common Criteria ISO/IEC 15408 ISO/IEC 29128における対応する保証レベル 高保証、CPSへの鍵
  32. 32. どのように取得できるのか? • 測定ができてかつ数学的に証明できる  形式的検証 • ツールを使用して 高保証、CPSへの鍵
  33. 33. どのように取得できるのか? 本部を宮城県の多賀城市に所在する研究会として2012年3月に設立された。CSSCのテストベッドは、シミュレートされ た9種類プラントから構成され、サイバー攻撃をシミュレーションした、サイバーセキュリティの実践的な演習を行う能力 を有する。 制御システムセキュリティーセンター(CSSC) 主な運用計画 – システムセキュリティ検証 高保証、CPSへの鍵
  34. 34. どのように取得できるのか? 「HACMSプログラムのゴールは、高保証が機能的に正しく、適切な安全性とセキュリティ要件を満たすことと定義され てた場合に、高保証のサイバー・フィジカル・システムの構築のための技術を創出することである。」 レイモンド・リチャーズ博士、 Information Innovation Office Program Manager of HACMS 高保証サイバー軍事システム (HACMS) 高保証、CPSへの鍵
  35. 35. セキュリティ検査と評価のためのツール
  36. 36. セキュリティ検査と評価のためのツール ハッカーやバグハンターのための自動化ツール • ハッカーやバグハンターによって開発されている自動脆弱性検知ツール はゼロデイ(未知の脆弱性)を簡単に発見するためだけ開発されている 評価のための自動化ツール セキュリティ検査と評価という究極の目標 セキュリティ検査プロセスが正確であり、 オブジェクト分析レポートか評価結果を保証する 評価者の能力や専門知識に依存しない。同じツールを使えば誰でも 同じ結果が得られる
  37. 37. 自動化されたセキュリティ検査ツールを選択するときに 何を考慮に入れなければならないか セキュリティ検査と評価のためのツール
  38. 38. 自動化ツールのための評価点 使いやすさ 有効性 スケーラビリティ セキュリティ検査と評価のためのツール
  39. 39. デザイン保証のためのツール
  40. 40. デザイン保証のためのツール デザイン保証のための自動化ツールを選択するための評価項目 (1) 使いやすさ • ユーザビリティ • 分析レポート • 評価者要件 (専門知識、背景知識) (2) 有効性 • 自動化の程度 • モデル記述手法 • ライセンスとコスト (3) スケーラビリティ • サポートされているプラットフォーム
  41. 41. 暗号プロトコル モデル検証 定理証明ベース • NRL • FDR • SCYTHER • ProVerif • AVISPA(TA4SP) • CryptoVerif • EBMC ……. • Isabelle/HOL • BPW • Game-based Security Proof • VAMPIRE • ……. デザイン保証のためのツール
  42. 42. デザイン保証のためのツール 暗号プロトコル(モデル検証) • The Maude NRL Protocol Analyzer (Maude-NPA) 評価項目 解説 ユーザビリティ GUI(Graphic User Interface) 分析レポート O 評価者要件 プロトコルデザインとモデリングの能力 自動化の程度 対話型 モデル記述手法 Maude-PSL (Maude Protocol Specification Language) ライセンスとコスト 非商用(University of Illinois) サポートされているプラット フォーム Mac OS X
  43. 43. 暗号プロトコル(モデル検証) • FDR(Failure-Divergence-Refinement) 評価項目 解説 ユーザビリティ GUI 分析レポート O 評価者要件 プロトコルデザインとモデリングの能力 自動化の程度 対話型 モデル記述手法 Formal Language (CSP) ライセンスとコスト 非商用(University of Oxford) サポートされているプラット フォーム Linux / Mac OS X デザイン保証のためのツール
  44. 44. 暗号プロトコル(モデル検証) • Syther 評価項目 解説 ユーザビリティ GUI 分析レポート O 評価者要件 プロトコルデザインとモデリングの能力 自動化の程度 対話型 モデル記述手法 SPDL (Standard Page Description Language) ライセンスとコスト 非商用(University of Oxford) サポートされているプラット フォーム Linux / Windows / Mac OS X デザイン保証のためのツール
  45. 45. 暗号プロトコル(モデル検証) • ProVerif 評価項目 解説 ユーザビリティ CLI (簡単に使用できる) 分析レポート O 評価者要件 プロトコルデザインとモデリングの能力 自動化の程度 対話型 モデル記述手法 PV Script (ProVerif Script) ライセンスとコスト 非商用(PROSECCO) サポートされているプラット フォーム Linux / Windows / Mac OS X デザイン保証のためのツール
  46. 46. 暗号プロトコル(定理証明) • Isabelle/HOL(Higher-Order Logic) 評価項目 解説 ユーザビリティ GUI, IDE(Integrated Development Environment) 分析レポート O 評価者要件 プロトコルデザインとモデリングの能力 自動化の程度 対話型 モデル記述手法 Functional & Logic Language (HOL) ライセンスとコスト 非商用(University of Cambridge) サポートされているプラット フォーム Linux / Windows / Mac OS X デザイン保証のためのツール
  47. 47. コード保証のためのツール
  48. 48. コード保証のためのツール コード保証のための自動化ツールを選択するための評価項目 (1) 使いやすさ • ユーザビリティ • 分析レポート • 評価者要件 (専門知識、背景知識) (2) 有効性 • 自動化の程度 • 分析手法 • 検知できる脆弱性の種類 • コード網羅率 • ライセンスとコスト (3) スケーラビリティ • サポートされている言語 • サポートされているプラットフォーム
  49. 49. CGC(Cyber Grand Challenge) 決勝進出者 • Mayhem CRS (ForAllSecure) • Xandra (TECHx) • Mechanical Phish (Shellphish) • Rebeus (Deep Red) • Crspy (Disekt) • Galactic (Codejitsu) • Jima (CSDS) コード保証のためのツール
  50. 50. CGC (Cyber Grand Challenge) • CRS (Cyber Reasoning System) • ソフトウェアのための全自動検査 (人を全く介さず!) 入力の生成 (ランダム、ミューテー ション、モデルベース、 … ) 入力生成 ソフトウェア分析と 脆弱性の発掘 脆弱性 スキャン クラッシュは エクスプロイト 可能か? クラッシュ解析 自動的に エクスプロイト コードを生成する エクスプロイト 生成 修正バイナリ 自動修正 コード保証のためのツール
  51. 51. Fortify SCA 評価項目 解説 ユーザビリティ GUI(Graphic User Interface), 簡単に使用できる 分析レポート XMLレポート 評価者要件 X 自動化の程度 完全自動 分析手法 静的 / ソースコード分析 検知できる脆弱性の種類 数百種類の脆弱性 コード網羅率 高コード網羅 ライセンスとコスト 商用(HP Enterprise) サポートされている言語 Java, .NET, C/C++, JSP, PL/SQL, TSQL, Javascript/Ajax, PHP, ASP, VB6, COBOL サポートされているプラットフォー ム Windows, Linux, Solaris, Mac OS X コード保証のためのツール
  52. 52. CodeSonar 評価項目 解説 ユーザビリティ GUI、簡単に使用できる 分析レポート HTML, XML, CSVレポート 評価者要件 X 自動化の程度 完全自動 分析手法 静的 / ソースコード分析 / バイナリ分析 検知できる脆弱性の種類 数百種類の脆弱性 コード網羅率 高コード網羅 ライセンスとコスト 商用(Grammatech) サポートされている言語 C, C++, Java サポートされているプラットフォー ム Windows, Linux, Solaris コード保証のためのツール
  53. 53. CheckMarx SAST 評価項目 解説 ユーザビリティ GUI、簡単に使用できる(ソースコードを入力するだけ!) 分析レポート ダッシュボードレポート(PDF, RTF, CSV, XML) 評価者要件 X 自動化の程度 完全自動 分析手法 静的 / ソースコード分析 検知できる脆弱性の種類 数百種類の脆弱性 コード網羅率 高コード網羅 ライセンスとコスト 商用(CheckMarx) サポートされている言語 Java , Javascript , PHP , C# , VB.NET , VB6 , ASP.NET , C/C++ , Apex , Ruby , Perl , Objective-C , Python , Groovy , HTML5 , Swift , APEX , J2SE , J2EE サポートされているプラットフォーム Android , iOS , Windows コード保証のためのツール
  54. 54. KLEE 評価項目 解説 ユーザビリティ CLI(Command Line Interface) 分析レポート X 評価者要件 O 自動化の程度 対話型 分析手法 動的 / コンコリック実行 検知できる脆弱性の種類 メモリー破壊 コード網羅率 高コード網羅 ライセンスとコスト 非商用(Researched by Stanford University) サポートされている言語 C, C++, Objective C サポートされているプラットフォーム Linux コード保証のためのツール
  55. 55. Mayhem (Research Paper Ver.) 評価項目 解説 ユーザビリティ CLI, Write Input Specification 分析レポート O (Exploit Type, Input Source, Symbolic Input Size, Precondition, Adivsory ,Exploit Generation Time) 評価者要件 O 自動化の程度 対話型 分析手法 動的 / コンコリック実行 検知できる脆弱性の種類 メモリー破壊 コード網羅率 高コード網羅 ライセンスとコスト 非商用(Carnegie Mellon University) サポートされている言語 バイナリコード サポートされているプラットフォーム Linux, Windows コード保証のためのツール
  56. 56. SAGE 評価項目 解説 ユーザビリティ 不明 分析レポート 不明 評価者要件 O 自動化の程度 対話型 分析手法 動的 / ホワイトボックスファズ検査 検知できる脆弱性の種類 数百種類の脆弱性 コード網羅率 限定的なコード網羅 ライセンスとコスト 制限付き商用(Microsoft) サポートされている言語 バイナリコード サポートされているプラットフォーム Windows コード保証のためのツール
  57. 57. Triton 評価項目 解説 ユーザビリティ CLI, Write Program based Triton 分析レポート X 評価者要件 O 自動化の程度 対話型 分析手法 動的 / コンコリック実行/ フレームワーク 検知できる脆弱性の種類 メモリー破壊 コード網羅率 高コード網羅 ライセンスとコスト 非商用(Carnegie Mellon University) サポートされている言語 バイナリコード (Bordeaux University, Qarkslab) サポートされているプラットフォーム Linux, Windows, Mac OS X コード保証のためのツール
  58. 58. AFL (American Fuzzy Lop) 評価項目 解説 ユーザビリティ CLI、インストールとセットアップは若干複雑だが、カラフルな ユーザインターフェースを持つ 分析レポート Crash/Vulnerability Type by Address Sanitizer 評価者要件 O (クラッシュ分析、エクスプロイト生成、修正) 自動化の程度 対話型 分析手法 動的 / ガイド付きファズ検査 検知できる脆弱性の種類 メモリー破壊 コード網羅率 高コード網羅 (時間依存) ライセンスとコスト オープンソース(Michael Zalewski) サポートされている言語 C, C++, Objective C サポートされているプラットフォーム Linux, *BSD, Solaris, Mac OS X On Linux, Only Binary(Blackbox) Testing Possible コード保証のためのツール
  59. 59. IoTcube 評価項目 解説 ユーザビリティ 簡単に使用できる(Webインターフェース、ドラッグアンドド ロップ) 分析レポート O 評価者要件 X 自動化の程度 完全自動 分析手法 ソースコード分析(コード複製検知) / バイナリファズ検査 / ネットワーク脆弱性検査(TLS) 検知できる脆弱性の種類 数百種類の脆弱性 コード網羅率 高コード網羅 ライセンスとコスト 非商用(CSSA, cssa.korea.ac.kr, iotcube.net) サポートされている言語 C/C++,バイナリコード サポートされているプラットフォーム Linux, Windows, Mac OS X コード保証のためのツール
  60. 60. Mechanical Phish (Shellphish CRS) 評価項目 解説 ユーザビリティ CLI、インストールとセットアップは若干複雑だが簡単に使用 できる 分析レポート - 評価者要件 X (脆弱性発掘、クラッシュ分析、エクスプロイト生成、修正) 自動化の程度 完全自動 分析手法 動的 / コンコリック実行 / ガイド付きファズ検査 / 自動エク スプロイト生成 / 自動修正 検知できる脆弱性の種類 メモリー破壊 コード網羅率 高コード網羅 ライセンスとコスト 非商用(Shellphish) サポートされている言語 バイナリコード サポートされているプラットフォーム Linux-Like Platforms(Custom by CGC), Intel x86 コード保証のためのツール
  61. 61. デモ (デザイン / コード)
  62. 62. 結論
  63. 63. 結論 ハッカーやセキュリティ研究者によって多くの脆弱性検知ツールが開発されている。 現在われわれはそれらのツールをセキュリティ検査と評価に使用しているが、以下のよう な制約がある。 • 客観性 • 適用範囲 最近、多くのハッカーが未知の脆弱性を簡単に検知できる自動化ツールの研究、開発を 行っている。 われわれは、これらのツールをセキュリティ評価に即座に適用することはできない。 しかしながら、完全に自動化されたセキュリティ検査のテクニックが開発され、継続的に評 価に適用する努力を行えば、高保証コードの要件の達成はそう遠くはない。
  64. 64. 謝辞 本研究は、韓国政府(MSIP)の資本配分による競争的資金、Institute for Information & Communications Technology Promotion (IITP) の補助によって可能となった。(R7117- 16-0161,Anomaly detection framework for autonomous vehicles)
  65. 65. Q&A
  66. 66. 参照
  67. 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. 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. 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. 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

×