講演の前に簡単に背景紹介 - SECCON 2015

〜講演の前に簡単に背景紹介〜
Shellphishとは
- 国際色豊かな世界トップレベルのCTFチーム
- 今夏行われるマシンvsマシンのCTF攻防戦
『DARPA Cyber Grand Challenge (CGC)』の決勝進出者
- 次世代バイナリ解析フレームワーク『angr』開発
DARPA Grand Challenge
DARPA: 国防高等研究計画局 (Defense Advanced Research Projects Agency)
-
2004年 セルフドライビングカー @砂漠を走る
2007年 アーバンナビゲーションチャレンジ @街を走る
2012年 ロボティックスチャレンジ @人型ロボ
2016年 サイバーグランドチャレンジ @世界初の全自動ハッキング大会
CTFのプラットフォームを利用したロボティックスチャレンジ
Cyber Grand Challenge (CGC)
予選:2014年〜2015年
決勝:2016年8月4日木 5pm-8pm (3H)
米国・ラスベガス(DefCon24 併催)
http://cybergrandchallenge.com/
AI:挑戦の歴史
チェス:10^120通りの位置
・1951年 マシン vs. 人
・1966年 マシン vs. マシン
・1997年 マシンがプロのチャンピオンに勝利
(IBM DeepBlue)
囲碁:10^38(9碁盤)→10^761(19碁盤)通り
・1962年 マシン vs 人
〜
・2015年10月 プロ3級棋士に勝利
(Google AlphaGo)
・2016年3月 プロのチャンピオンに挑戦
引用:engadget日本語版 2016年1月28日
http://japanese.engadget.com/2016/01/28/google-ai-alphago/
ポーカー
-
秘密が多い
複数の相手
ノンゼロサムゲーム
1対1のチェスや碁のように
1人の相手の手だけを推測するのとは異なり
複数相手のゲームでは
敵Aと敵Bの間の推測も必要となり
計算量はとてつもなく莫大となる
コンピュータには苦手
引用:Cyber Grand Challenge
https://cgc.darpa.mil/CGC_DEFCON_Distribution_A_Final.pdf
CTF:環境「ブラックボックス」
- バイナリファイル(ソースコード無し)
- 文書なし
- プロトコル不明
リバースエンジニアするしかない!
引用:Cyber Grand Challenge
https://cgc.darpa.mil/CGC_DEFCON_Distribution_A_Final.pdf
CTF:ミッション「Analyze・Pwn・Patch」
-
バイナリファイルを解析
脆弱性を見つける
パッチ作成
エクスプロイト作成
サービスを継続(鉄壁にしちゃ☓)
「敵より早く!」
「自動化=並列処理x不眠不休」
引用:Cyber Grand Challenge
https://cgc.darpa.mil/CGC_DEFCON_Distribution_A_Final.pdf
angr
-
Shellphishが開発した次世代バイナリ解析プラットフォーム
オープンソース
動的解析、静的解析、どちらにも利用可能
-
-
angr = 怒り
-
-
動的解析:バイナリの特性を実際にファイルを動かして導き出す
静的解析:バイナリの特性をファイルの中身をみて導き出す
市販のバイナリ解析ツールは多数あるがどれも足りない
解析時の単純作業を自動化し、より効率よく解析したい
「できるだけ少ないコマンドでバイナリ解析を可能にしたい」
- 脆弱性スキャナー、パッチ当ての自動化 etc.
詳細はShellphishの講演をお聞きください