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