70
徐徐徐 (inhack), 徐徐徐 (J.Sus), 徐徐徐 SANE(Security Analysis aNd Evaluation) Lab Korea University( 徐徐徐徐徐 ) DARPA 徐徐徐徐徐徐徐徐徐徐徐徐徐徐 徐徐徐徐徐徐徐徐徐徐徐徐徐徐徐徐徐 徐徐徐徐徐徐徐徐徐徐徐徐徐徐

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

Embed Size (px)

Citation preview

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

徐寅赫 (inhack), 朴志洙 (J.Sus), 金昇柱

SANE(Security Analysis aNd Evaluation) Lab

Korea University( 高麗大学校 )

DARPA サイバーグランドチャレンジの完全自動脆弱性検知ツールを利用したセキュリティ評価とその有効性

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

目次• 自己紹介• はじめに• セキュリティエンジニアリング、情報保証への道• 高保証、 CPS への鍵• セキュリティ検査と保証のためのツール

- デザイン保証のためのツール / コード保証のためのツール• デモ (Design / Code)• 結論• 謝辞• Q&A• 参照

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

自己紹介Inhyuk Seo ( 徐寅赫 )

E-mail : [email protected]

Jisoo Park は、 2015 年に韓国の東国大学より計算機科学と工学の学士号を取得。アンチウィルスで知られる Ahnlab にて、ソフトウェアの品質保証訓練生として 6 ヶ月従事した経歴を持つ。また、彼は KITRI(Korea Information Technology Research Institute) で開催された情報セキュリティ教育コース Best of the Best(BoB) を修了した。現在は高麗大学の修士課程で、 Security Analaysis aNd Evalu-ation 研究室に研究員として籍を置き、コモンクライテリアおよびセキュリティエンジニアリング(特に脅威モデリング)に興味を持っている。

Jisoo Park ( 朴志洙 )

E-mail : [email protected]

Inhyuk Seo (通称 in hack )。 2015 年に漢陽大学( ERICA )にて、計算機科学と工学の学士号を取得。現在は高麗大学の修士課程で Security Analaysis aNd Evaluation(SANE) に籍を置く。 2012 年には KITRI(Korea Information Technology Research Institute) で開催された情報セキュリティ教育コース Best of the Best(BoB) にて多くの脆弱性分析関連のプロジェクトに参加。現在はプログラミング言語、ソフトウェア検査、機械学習および人工知能に興味を持つ。

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

Seungjoo Gabriel Kim ( 金昇柱 )

E-mail: [email protected] : www.kimlab.netFacebook, 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 および、セキュリティとハッキングの国際会議である SECUIN-SIDE の創始者と相談役でもある。 Seungjoo Gabriel Kim 博士の研究対象は、主に暗号、サイバー・フィジカル・セキュリティ、 IoT セキュリティおよび HCI セキュリティである。彼は責任著者である。

自己紹介

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

はじめに

あるものに対する信用の度合い

保証

ユーザのある情報に対する信用の度合い

情報保証

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

はじめに情報保証の台頭

湾岸戦争は最初の情報戦と呼ばれている “ IA の前兆”

1991U.S. DoD Directive 5-3600.1 :IA の標準化された初めての定義

1996

情報セキュリティ (IN-FOSEC) 時代

1980 ~

「砂漠の嵐作戦をサポートした通信ネットワークは、過去に創設された最大の共同シアターシステムであった。これは記録的短時間で構築され、驚異的な 98 パーセントの可用性を維持した。運用の最盛期でこのシステムは、1日に 70 万件の電話や 15 万 2 千件のメッセージをサポートしていた。必要な接続を提供し、最小限の干渉を確実にするために、 3 万以上の無線周波数が管理された」デブラ S ・ハーマン , “Security Engineering and Information Assurance”

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

はじめに

情報保証「可用性、完全性、認証、機密性、および否認防止を確保することで、情報と情報システムを保護し、防衛する手法。これは保護、検知と反応する能力の組み込みによる、情報システムの復旧の提供を含む」

DoD Directive 8500.01E

情報保証の台頭湾岸戦争は最初の情報戦と呼ばれている “ IA の前兆”

1991U.S. DoD Directive 5-3600.1 :IA の標準化された初めての定義

1996

情報セキュリティ (IN-FOSEC) 時代

1980 ~

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

情報セキュリティと情報保証の違いはなにか?

はじめに

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

はじめにInformation Security (情報保護 ) Information Assurance ( 情報保証 )

時期 1980 年代以降 1998 年以降保護の対象 情報と情報システム ビジネス全体

ゴール 機密性、完全性、可用性 機密性、完全性、可用性、否認不可、責任、監査性、透明性、採算性、効率性

情報の種類 主に電子的 全種類アプローチ 技術的アプローチの優位性、ソフト面を考慮

に入れる最初の試み全方位型、 複数の領域にわたる系統的なアプローチ

セキュリティ手法 技術的なセキュリティメカニズムに主眼を置く; 組織的、人間本位のメカニズムの初期的検討

全て使用可能 (技術的、組織的、人間本位の、法的)

ビジネスにおける役割 システムをサポートする、しばしばビジネスに制約を課す

ビジネスに不可欠、ビジネスの実現要素となる

セキュリティの意思決定の流れ ボトムアップ トップダウン

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

はじめにInformation Security (情報保護 ) Information Assurance ( 情報保証 )

時期 1980s 以降 1998 以降保護の対象 情報と情報システム ビジネス全体

ゴール 機密性、完全性、可用性 機密性、完全性、可用性、否認負荷、責任、監査性、透明性、採算性、効率性

情報の種類 主に電子的 全種類アプローチ 技術的アプローチの優位性、ソフト面を考慮

に入れる最初の試み全方位型、 複数の領域にわたる系統的なアプローチ

セキュリティ手法 技術的なセキュリティメカニズムに主眼を置く; 組織的、人間本位のメカニズムの初期的検討

All available (技術的、組織的、人間本位の、法的)

ビジネスにおける役割 システムをサポートする、しばしばビジネスに制約を課す

ビジネスに不可欠、ビジネスの実現要素となる

セキュリティの意思決定の流れ ボトムアップ トップダウン

情報と情報システムを不正なアクセス、使用、開示、中断、変更および破壊から保護する情報が真正で信用に足り , アクセス可能であることを検証する

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

セキュリティエンジニアリング、 情報保証への道

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

情報保証は何をゴールとしているのか?

セキュリティエンジニアリング

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

セキュリティエンジニアリング情報保証のゴール

信頼度

システムが要求を受けた時にサービスを定常できる能力

可用性システムが仕様に基づいてサービスが提供できる能力

信頼性システムが偶発的な、あるいは計画的な侵入を受けた時に防衛する能力

システムが破局故障を起こさずに運用できる能力

安全性 セキュリティ

ユーザが期待する通りに動作し、通常使用する上で故障しないことに対するユーザの自信の程度を反映する

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

領域 信頼性 セキュリティ 安全財務システム 中 高 なし

医療記録のデータベース 中 中 中航空管制システム 中 高 高

自動車 高 中 高

Defcon 23 – Charlie Miller & Chris Valasek “Remote Ex-ploitation of an Unaltered Passenger Vehicle”

最初は「低」であった

セキュリティエンジニアリング情報保証のゴール

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

情報保証の要件はどのように達成されるのか ?

セキュリティエンジニアリング

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

情報保証の要件はどのように達成されるのか ?

セキュリティエンジニアリング

セキュリティエンジニアリング

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

セキュリティエンジニアリングとは悪意、エラーや不運に直面しても信頼度を維持するシステムを構築することである。基本原則として、それは、完全なシステムを設計、実装、検査し、その環境が進化するにつれ、既存のシステムを適合させるために必要なツールに焦点を当てている – ロス・アンダーソン , Computer Laboratory in University of Cambridge -

セキュリティエンジニアリングとは何か?

セキュリティエンジニアリング

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

ポリシー

保証

メカニズム

ポリシー保証デザイン保証

導入保証運用保証

システムライフサイクルのすべての段階で必要な保証

セキュリティエンジニアリングの究極の目的

セキュリティエンジニアリングセキュリティエンジニアリングとは何か?

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

要件定義 設計 実装 導入 保守

システムエンジニアリングライフサイクルプロセス (ISO/IEC/IEEE 15288 : 2015)• ビジネスあるいは任務分析 • 利害関係者要求定義 • システム要求定義 • 構成定義

• 要件定義 • システム分析 • 実装 • 結合• 妥当性確認 • 移行 • 検証 • 運用• 保守 • 処分

セキュリティエンジニアリングセキュリティエンジニアリングとは何か?

ライフサイクルを通してセキュリティエンジニアリングを提供する

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

ケーススタディ : Microsoft セキュリティ開発ライフサイクル

セキュリティエンジニアリング

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

ケーススタディ : Microsoft セキュリティ開発ライフサイクル実際に効果があったのか?

SQL Server 2000 SQL Server 2005 Competing commercial DB

343

187

Total Vulnerabilities Disclosed 36 Month after Release

46% re-duction

Windows XP

Windows Vista

OS A OS B OS C

11966

400

242157

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

セキュリティエンジニアリング

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

高保証、 CPS への鍵

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

高保証、 CPS への鍵高保証とは何か?

高保証とは、システムが予定またはデザインされた通り、正確に稼働することを数学的に証明できる状態を指す。高保証開発とは明確かつ有無を言わさぬ証拠が各開発段階にある状態を指す。

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

「 CPS 」とは何か?サーバー・フィジカル・システム( CPS )は共同エンジニアリングされた、物理および電算コンポーネントの相互通信ネットワークである。CPS は重要インフラ基盤を提供し、新興あるいは未来のスマートデバイスの基礎を形成し、様々な分野で私たちの生活の質を向上させる。

モノのインターネット (IoT)サイバー・フィジカル・システム

保証セキュリティ VS

高保証、 CPS への鍵

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

「高保証」はどこで必要か?

情報保証 セキュリティエンジニアリング

重要インフラ財務航空政府医療自動車鉄道エネルギー

.

.

高保証

適用と保証

高保証、 CPS への鍵

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

重要インフラのための標準や規制は、信頼度の要件を達成するためには十分でない。• ほとんどの標準がセキュリティを欠いている

分野 標準 / 規制自動車 ISO 26262

航空 DO-178B, 178C, 254, 278A ….

医療 IEC 62304

鉄道 EN 50128

高保証、 CPS への鍵

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

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 AISO/IEC 29128 PAL 1 PAL 2 PAL 3 PAL 4ISO/IEC 15408 EAL1 EAL 2 EAL 3 EAL 4 EAL 5 EAL 6 EAL 7

高低

高保証、 CPS への鍵

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

ISO/IEC 29128 と ISO/IEC 15408 は「信頼性」と「セキュリティ」を含むISO 26262, DO-254 : 主に「安全性」と「信頼性」に焦点をあてている” 標準 / 規則 保証レベル

ISO/IEC 29128 PAL 1 PAL 2 PAL 3 PAL 4ISO/IEC 15408 EAL1 EAL 2 EAL 3 EAL 4 EAL 5 EAL 6 EAL 7

高低

高保証、 CPS への鍵

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

例 : ISO/IEC 29128

暗号プロトコルの検証プロトコル保証レベル

PAL1 PAL2 PAL3 PAL4

プロトコル仕様プロトコル仕様の準形式的記述

プロトコル仕様の形式的記述

文法が数学的に定義されている、ツールに対応した言語で記述されたプロトコル仕様の形式的記述。攻撃者モデル

セキュリティ要件

自己評価の証拠

攻撃者モデルにおいて、対象となる暗号プロトコルがセキュリティ要件を満たしていることを非形式的議論あるいは数学的に形式的な紙と鉛筆の証明

攻撃者モデルにおいて、対象となるプロトコルがセキュリティ要件を満たしている事をツールを利用した有限検証

攻撃者モデルにおいて、対象となるプロトコルがセキュリティ要件を満たしている事をツールを利用した無限検証

攻撃者モデルにおいて、対象となるプロトコルがセキュリティ要件を満たしている事をツールを利用した無限検証

高保証、 CPS への鍵

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

例: Common Criteria ISO/IEC 15408

IT セキュリティのための評価クライテリアEvaluation As-surance Level Description

EAL 7 形式的検証済み設計、及びテストEAL 6 準形式的検証済み設計、及びテストEAL 5 準形式的設計、及びテストEAL 4 方式的設計、テスト、及びレビューEAL 3 方式的テスト、及びチェックEAL 2 構造化テストEAL 1 機能テスト

Gerwin Klein, Operating System Verification – An Overview

高保証、 CPS への鍵

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

例: Common Criteria ISO/IEC 15408

ISO/IEC 29128 における対応する保証レベル

高保証、 CPS への鍵

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

どのように取得できるのか?• 測定ができてかつ数学的に証明できる

形式的検証• ツールを使用して

高保証、 CPS への鍵

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

どのように取得できるのか?本部を宮城県の多賀城市に所在する研究会として 2012 年 3 月に設立された。 CSSC のテストベッドは、シミュレートされた 9種類プラントから構成され、サイバー攻撃をシミュレーションした、サイバーセキュリティの実践的な演習を行う能力を有する。

制御システムセキュリティーセンター(CSSC)

主な運用計画 – システムセキュリティ検証

高保証、 CPS への鍵

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

どのように取得できるのか?「 HACMS プログラムのゴールは、高保証が機能的に正しく、適切な安全性とセキュリティ要件を満たすことと定義されてた場合に、高保証のサイバー・フィジカル・システムの構築のための技術を創出することである。」

レイモンド・リチャーズ博士、 Information Innovation Office

Program Manager of HACMS

高保証サイバー軍事システム (HACMS)

高保証、 CPS への鍵

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

セキュリティ検査と評価のためのツール

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

セキュリティ検査と評価のためのツールハッカーやバグハンターのための自動化ツール

• ハッカーやバグハンターによって開発されている自動脆弱性検知ツールはゼロデイ(未知の脆弱性)を簡単に発見するためだけ開発されている 評価のための自動化ツール高

保証

正確で信頼できる結果

評価者に依存しない

セキュリティ検査と評価という究極の目標セキュリティ検査プロセスが正確であり、オブジェクト分析レポートか評価結果を保証する

評価者の能力や専門知識に依存しない。同じツールを使えば誰でも同じ結果が得られる

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

自動化されたセキュリティ検査ツールを選択するときに何を考慮に入れなければならないか

セキュリティ検査と評価のためのツール

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

自動化ツールのための評価点

使いやすさ 有効性 スケーラビリティ

セキュリティ検査と評価のためのツール

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

デザイン保証のためのツール

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

デザイン保証のためのツールデザイン保証のための自動化ツールを選択するための評価項目

(1) 使いやすさ• ユーザビリティ• 分析レポート• 評価者要件 (専門知識、背景知識 )

(2) 有効性• 自動化の程度• モデル記述手法• ライセンスとコスト

(3) スケーラビリティ• サポートされているプラットフォーム

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

暗号プロトコルモデル検証

定理証明ベース

• NRL

• FDR

• SCYTHER

• ProVerif • AVISPA(TA4SP)

• CryptoVerif • EBMC

…….

• Isabelle/HOL

• BPW

• Game-based Security Proof

• VAMPIRE • …….

デザイン保証のためのツール

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

デザイン保証のためのツール暗号プロトコル(モデル検証)

• The Maude NRL Protocol Analyzer (Maude-NPA)

評価項目 解説ユーザビリティ GUI(Graphic User Interface)

分析レポート O

評価者要件 プロトコルデザインとモデリングの能力自動化の程度 対話型

モデル記述手法 Maude-PSL (Maude Protocol Specification Language)

ライセンスとコスト 非商用 (University of Illinois)

サポートされているプラットフォーム Mac OS X

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

暗号プロトコル(モデル検証)• FDR(Failure-Divergence-Refinement)

評価項目 解説ユーザビリティ GUI

分析レポート O

評価者要件 プロトコルデザインとモデリングの能力自動化の程度 対話型

モデル記述手法 Formal Language (CSP)

ライセンスとコスト 非商用 (University of Oxford)

サポートされているプラットフォーム Linux / Mac OS X

デザイン保証のためのツール

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

暗号プロトコル(モデル検証)• Syther

評価項目 解説ユーザビリティ GUI

分析レポート O

評価者要件 プロトコルデザインとモデリングの能力自動化の程度 対話型

モデル記述手法 SPDL (Standard Page Description Language)

ライセンスとコスト 非商用 (University of Oxford)

サポートされているプラットフォーム Linux / Windows / Mac OS X

デザイン保証のためのツール

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

暗号プロトコル(モデル検証)• ProVerif

評価項目 解説ユーザビリティ CLI (簡単に使用できる )

分析レポート O

評価者要件 プロトコルデザインとモデリングの能力自動化の程度 対話型

モデル記述手法 PV Script (ProVerif Script)

ライセンスとコスト 非商用 (PROSECCO)

サポートされているプラットフォーム Linux / Windows / Mac OS X

デザイン保証のためのツール

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

暗号プロトコル(定理証明)• Isabelle/HOL(Higher-Order Logic)

評価項目 解説ユーザビリティ GUI, IDE(Integrated Development Environment)

分析レポート O

評価者要件 プロトコルデザインとモデリングの能力自動化の程度 対話型

モデル記述手法 Functional & Logic Language (HOL)

ライセンスとコスト 非商用 (University of Cambridge)

サポートされているプラットフォーム Linux / Windows / Mac OS X

デザイン保証のためのツール

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

コード保証のためのツール

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

コード保証のためのツールコード保証のための自動化ツールを選択するための評価項目

(1) 使いやすさ• ユーザビリティ• 分析レポート• 評価者要件 (専門知識、背景知識 )

(2) 有効性• 自動化の程度• 分析手法• 検知できる脆弱性の種類• コード網羅率• ライセンスとコスト

(3) スケーラビリティ• サポートされている言語• サポートされているプラットフォーム

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

CGC(Cyber Grand Challenge) 決勝進出者• Mayhem CRS (ForAllSecure)

• Xandra (TECHx)

• Mechanical Phish (Shellphish)

• Rebeus (Deep Red)

• Crspy (Disekt)

• Galactic (Codejitsu)

• Jima (CSDS)

コード保証のためのツール

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

CGC (Cyber Grand Challenge)

• CRS (Cyber Reasoning System)• ソフトウェアのための全自動検査

(人を全く介さず! )

入力の生成( ランダム、ミューテーション、モデルベース、 … )

入力生成ソフトウェア分析と脆弱性の発掘

脆弱性スキャンクラッシュはエクスプロイト可能か?

クラッシュ解析自動的にエクスプロイトコードを生成する

エクスプロイト生成

修正バイナリ

自動修正

コード保証のためのツール

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

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

コード保証のためのツール

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

CodeSonar評価項目 解説

ユーザビリティ GUI 、簡単に使用できる分析レポート HTML, XML, CSV レポート

評価者要件 X

自動化の程度 完全自動分析手法 静的 / ソースコード分析 / バイナリ分析

検知できる脆弱性の種類 数百種類の脆弱性コード網羅率 高コード網羅

ライセンスとコスト 商用 (Grammatech)

サポートされている言語 C, C++, Java

サポートされているプラットフォーム Windows, Linux, Solaris

コード保証のためのツール

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

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

コード保証のためのツール

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

KLEE評価項目 解説

ユーザビリティ CLI(Command Line Interface)

分析レポート X

評価者要件 O

自動化の程度 対話型分析手法 動的 / コンコリック実行

検知できる脆弱性の種類 メモリー破壊コード網羅率 高コード網羅

ライセンスとコスト 非商用 (Researched by Stanford University)

サポートされている言語 C, C++, Objective C

サポートされているプラットフォーム Linux

コード保証のためのツール

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

Mayhem (Research Paper Ver.)評価項目 解説

ユーザビリティ CLI, Write Input Specification

分析レポート O (Exploit Type, Input Source, Symbolic Input Size, Pre-condition, Adivsory ,Exploit Generation Time)

評価者要件 O

自動化の程度 対話型分析手法 動的 / コンコリック実行

検知できる脆弱性の種類 メモリー破壊コード網羅率 高コード網羅

ライセンスとコスト 非商用 (Carnegie Mellon University)

サポートされている言語 バイナリコードサポートされているプラット

フォーム Linux, Windows

コード保証のためのツール

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

SAGE評価項目 解説

ユーザビリティ 不明分析レポート 不明

評価者要件 O

自動化の程度 対話型分析手法 動的 / ホワイトボックスファズ検査

検知できる脆弱性の種類 数百種類の脆弱性コード網羅率 限定的なコード網羅

ライセンスとコスト 制限付き商用 (Microsoft)

サポートされている言語 バイナリコードサポートされているプラット

フォーム Windows

コード保証のためのツール

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

Triton評価項目 解説

ユーザビリティ CLI, Write Program based Triton

分析レポート X

評価者要件 O

自動化の程度 対話型分析手法 動的 / コンコリック実行 / フレームワーク

検知できる脆弱性の種類 メモリー破壊コード網羅率 高コード網羅

ライセンスとコスト 非商用 (Carnegie Mellon University)

サポートされている言語 バイナリコード (Bordeaux University, Qarkslab)

サポートされているプラットフォーム Linux, Windows, Mac OS X

コード保証のためのツール

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

AFL (American Fuzzy Lop)評価項目 解説

ユーザビリティ CLI 、インストールとセットアップは若干複雑だが、カラフルなユーザインターフェースを持つ

分析レポート Crash/Vulnerability Type by Address Sanitizer

評価者要件 O ( クラッシュ分析、エクスプロイト生成、修正 )

自動化の程度 対話型分析手法 動的 / ガイド付きファズ検査

検知できる脆弱性の種類 メモリー破壊コード網羅率 高コード網羅 ( 時間依存 )

ライセンスとコスト オープンソース (Michael Zalewski)

サポートされている言語 C, C++, Objective C

サポートされているプラットフォーム

Linux, *BSD, Solaris, Mac OS XOn Linux, Only Binary(Blackbox) Testing Possible

コード保証のためのツール

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

IoTcube評価項目 解説

ユーザビリティ 簡単に使用できる (Web インターフェース、ドラッグアンドドロップ )

分析レポート O

評価者要件 X

自動化の程度 完全自動分析手法 ソースコード分析 ( コード複製検知 ) /

バイナリファズ検査 / ネットワーク脆弱性検査 (TLS)

検知できる脆弱性の種類 数百種類の脆弱性コード網羅率 高コード網羅

ライセンスとコスト 非商用 (CSSA, cssa.korea.ac.kr, iotcube.net)

サポートされている言語 C/C++, バイナリコードサポートされているプラットフォー

ム Linux, Windows, Mac OS X

コード保証のためのツール

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

Mechanical Phish (Shellphish CRS)評価項目 解説

ユーザビリティ CLI 、インストールとセットアップは若干複雑だが簡単に使用できる

分析レポート -

評価者要件 X ( 脆弱性発掘、クラッシュ分析、エクスプロイト生成、修正 )

自動化の程度 完全自動分析手法 動的 / コンコリック実行 / ガイド付きファズ検査 /

自動エクスプロイト生成 / 自動修正検知できる脆弱性の種類 メモリー破壊

コード網羅率 高コード網羅ライセンスとコスト 非商用 (Shellphish)

サポートされている言語 バイナリコードサポートされているプラット

フォームLinux-Like Platforms(Custom by CGC), Intel x86

コード保証のためのツール

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

デモ ( デザイン / コード )

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

結論

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

結論ハッカーやセキュリティ研究者によって多くの脆弱性検知ツールが開発されている。現在われわれはそれらのツールをセキュリティ検査と評価に使用しているが、以下のような制約がある。

• 客観性• 適用範囲

最近、多くのハッカーが未知の脆弱性を簡単に検知できる自動化ツールの研究、開発を行っている。われわれは、これらのツールをセキュリティ評価に即座に適用することはできない。しかしながら、完全に自動化されたセキュリティ検査のテクニックが開発され、継続的に評価に適用する努力を行えば、高保証コードの要件の達成はそう遠くはない。

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

謝辞

本研究は、韓国政府( MSIP )の資本配分による競争的資金、 Institute for Informa-

tion & Communications Technology Promotion (IITP) の補助によって可能となった。(R7117-16-0161,Anomaly detection framework for autonomous vehicles)

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

Q&A

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

参照

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

参照[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 Multidisci -plinary 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”, 21 st Annual Systems and Software Technology Conference, 2009

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

参照[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 Imple -mentation

[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 pro -tocols”, 2012

[20] Yoshikazu Hanatanil, Miyako Ohkubo, Sinichiro Matsuo, Kazuo Sakiyama, and Kazuo Ohta, “A Study on Computational Formal Verifi -cation 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 Crypto -graphic Software”, 2015

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

参照[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 Tu -torial”, 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 Alter -natives 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 Appli -cation to Aviation”, 2015

[33] The Government of Japan, “Cybersecurity Strategy 2015”

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

参照[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