Black Hat USA 2016/DEF CON 24 ラスベガス現地レポート 第4回
人工知能はゼロデイ攻撃のない世界の夢を見るか――「Cyber Grand Challenge」決勝レポート
ソフト脆弱性を数分で自動修正するシステムの競技会、DARPAが開催
2016年09月06日 07時00分更新
ソフトウェアの脆弱性修正を自動化するシステムを実証してみせる競技会
PCやサーバーだけでなくスマートデバイス、さらにIoTデバイスと、ソフトウェアが稼働するプラットフォームは現在、急速に拡大しており、多種多様なソフトウェアが日々量産されている。それはすなわち、「ソフトウェアに潜む脆弱性」もまた、日々量産されているということだ。
システムを安定稼働させながら、攻撃者に悪用される前に、ソフトウェアの脆弱性を迅速に修正することは急務のセキュリティ課題だ。その解決策の1つとして期待を集めるのが「自動化」である。ソフトウェアのリバースエンジニアリング、脆弱性の発見と検証、パッチ作成、適用まで、すべての工程を完全に自動化することができれば、どんなソフトウェアでも即座に(おそらくは攻撃者に悪用される前に)穴をふさげるはずだ。
これは決して“夢物語”ではない。8月4日、米ラスベガスで、米国防省の研究部門であるDARPA(米国防高等研究計画局)が主催した「Cyber Grand Challenge」決勝戦では、そんな自動化システム同士がぶつかり合った。
「ゼロデイが成功しない世界。自動化システムで脆弱性が瞬時に排除される世界。そんな未来を確信できた」。DARPA Cyber Grand Challengeの総指揮を執るDARPAプログラムマネージャー、マイク・ウォーカー氏は、熱を帯びた声で歴史的な一夜を祝福した。
DARPA(1972年にARPAから改称)は、先進的な技術革新に向けた研究の支援や推進を目的に、1957年に設立された。ARPA時代には、初の気象衛星「TIROS 1」の軌道打ち上げやコンピューターのマウス、そしてインターネットのプロトタイプの開発など、数多くの実績を残している。
DARPAでは、技術革新や発展を促す手法として「競技形式」を積極的に採用している。その代表例に、自動運転車レース「DARPA Grand Challenge」がある。2004年3月に開催された第1回では、残念ながらどの参加チームも完走できず、カーネギーメロン大学とインテル、ボーイングの共同研究チーム「Red Team」の「Sandstorm」号が最長距離11.78kmを走行して終わった。だが翌年の2005年10月に開催された第2回では、スタンフォード大学「Stanford Racing Team」の「Stanley」号が見事完走して優勝。自動運転車の実現可能性を実証してみせた。
そして今回のCyber Grand Challengeも、競技形式で切磋琢磨するという手法を受け継いでいる。自動化システム同士が「CTF(Capture the Flag)」と呼ばれるコンピューター上での旗取りゲームを戦い、有効性や今後の改善点などを洗い出す。自動化システムの中核をなす「自動推論」(Automated Reasoning)技術は、人工知能技術の一部として研究が盛んな分野だ。つまり、Cyber Grand Challengeは、セキュリティ対策の自動化という短期目標の実現だけでなく、人工知能の高度化という長期テーマに1つの解を示す重要な役割も担っている。
Cyber Grand Challengeは2013年10月に参加募集を開始し、2014年の締め切りまでに104チームが参加を表明した。その後、2度にわたるテスト演習で28チームに絞り込まれ、2015年7月には131のソフトウェアを解析して脆弱性を発見する予選大会を開催。この予選で入賞した8チームにはそれぞれ75万ドル(約7500万円)の資金提供が行われ、8月の決勝戦に向けてシステムのブラッシュアップが進められた。
人間が対処に苦労した脆弱性を数分で処置、さらに想定外の脆弱性も発見/修正
競技内容はシンプルだ。各チームには、運営側で用意した脆弱性だらけの未知のソフトウェアをインストールしたサーバーが与えられる。その脆弱性を素早く解析してパッチを適用しつつ、運営側が送り込んでくる「チャレンジバイナリ」(脆弱性を狙う攻撃が仕込まれたプログラム)から自チームのサーバーを防御する。同時に、他チームのサーバーに対して解析を行い、脆弱性を“暴く”こともできる。
競技は96ラウンドで構成される。各ラウンドのスコアは、脆弱性にパッチを適用して他チームからの解析を弾いた場合の「Security(防御)」ポイント、他チームに解析をかけて未対応の脆弱性を暴いた場合の「Evaluation(検証)」ポイントを合計し、それに運営側からの正常な通信を受け付けることができた場合の「Availability(可用性)」ポイントをかけたスコアが計算される。そして、全96ラウンドのスコア合計で順位が決定する。
ステージ上には、7チームのサーバーラックのほか、運営用サーバーラック7台(スコアリングやデータ格納、フォレンジック用など)、スパーリング用サーバーラック1台の、計15台が配置された。ラックあたり64ノードを格納しており、1ノードはインテルXeon 2.5GHzプロセッサ×2で稼働する。ラック群を冷却するためだけに、毎分200ガロン(900リットル超)の冷水と300kWの電力を使用しているという。「都市1.5個ぶんの消費をまかなえる電力を使っている」と運営側は説明する。
運営側が攻撃に使うチャレンジバイナリには、「SQL Slammer」や「Stuxnet」「Morrisワーム」「Heartbleed」「MS08-067(WindowsのServerサービス脆弱性)」など、過去に世間を騒がせた著名な脆弱性を再現したものも幾つか用意された。かつて人間が対処に手こずった脆弱性を、自動化システムならばどのくらいのスピードで対応できるのかを見るためだ。
いざ競技が始まると、その結果は運営側の予想をはるかに超えるものとなった。たとえば2003年に発生し、ワームの存在が確認されてからわずか10分で7万5000台以上のサーバーに感染を広げたと言われる「SQL Slammer」脆弱性に対しては、競技開始からたった5分で6チームがパッチ適用に成功。運営側であるDARPAのウォーカー氏は、「実際の脆弱性と比べて簡易的な再現になっているとは言えども、圧倒的なスピード感で対策が実施されるのには驚くばかりだ」とうなる。
「SQL Slammerの場合、ワームが出現する6カ月前にはマイクロソフトがパッチを公開していたが、対策しないサーバーが多かったために甚大な被害規模となってしまった。あの当時、今回のような自動化システムが存在していたら、あれほどまでの大規模感染や被害はなかったかもしれない」(ウォーカー氏)
競技中には予期せぬ驚きもあった。TECHxチームのスパコン「Xandra」が、運用側では想定していなかったサービス内の脆弱性を発見し、パッチを適用したのだ。しかも、その状況を観測していたCSDSチームの「JIMA」がパッチの内容を検証。その情報に基づいて、素早く自分用のパッチを作成する離れ業をやってのけた。これらが完了するまでの時間は、たったの5分。まさに人知を超えた驚異的な能力とスピードに、会場からは拍手が沸き起こった。
最終結果は、カーネギーメロン大学のForAllSecureチーム「Mayhem」が1位、ソフトウェア解析ツールを開発するGrammaTechとバージニア大学のTECHxチーム「Xandra」が2位、カリフォルニア大学サンタバーバラ校のShellphishチーム「Mechanical Phish」が3位となった。優勝チームには200万ドル(約2億円)、2位は100万ドル(約1億円)、3位は75万ドル(約7500万円)の賞金が贈られた。
この連載の記事
-
第3回
TECH
だって人間だもの…拾ったUSBメモリを開く人は何割いる?調査 -
第2回
TECH
東京都庁の通信内容がダダ漏れ危機?「badWPAD」脆弱性とは -
第1回
TECH
95から10までの全Windowsに影響、「BadTunnel」脆弱性とは何か -
TECH
Black Hat USA 2016/DEF CON 24 ラスベガス現地レポート - この連載の一覧へ