ここから本文です

ソフト脆弱性を数分で自動修正するシステムの競技会、DARPAが開催

アスキー 9月6日(火)7時0分配信

ソフトウェアの脆弱性を自動的に発見、修正していく自動化システムの開発が進んでいる。DARPA主催で開催された、自動化システムの競技会をレポートする。
ソフトウェアの脆弱性修正を自動化するシステムを実証してみせる競技会
 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~5年後には自動化システムの商用利用が始まる」
 「自動運転車レースの開催から実用化の可能性が見えるまで、およそ10年かかった。でも、それに比べてコンピューター分野は展開が速い。今回のセキュリティ自動化システムは、3~5年以内には商用利用が始まるだろう」。今回の競技会で2位に輝いたTECHxチームのメンバーで、GrammaTechのCMO(最高マーケティング責任者)を務めるマーク・ブラウン氏はこう断言する。
 
 TECHxは、バージニア大学コンピューター科学専門のジャック・デビッドソン教授と、GrammaTechの研究所副所長デビッド・メルスキ氏が率いる産学連携のチームだ。GrammaTechでは、ソースコードとバイナリの解析でソフトウェアに内在するバグや脆弱性を検出する「CodeSonar」を始めとした、静的/動的解析技術のセキュリティソリューションを開発/提供している。米政府との研究開発にも積極的で、最近では米国防総省(DoD)や米国土安全保障省(DHS)の研究プログラムに参加し、オリジナルのソースコードなしで組み込みデバイスのファームウェアイメージにパッチを適用する技術や、マルウェアに共通する特徴を認識して進化/変化するマルウェアの早期検出を行う技術などの研究に携わっている。
 
 バージニア大学とのコラボレーションのきっかけは、米知能高等研究計画局(IARPA)の研究プログラムに共同で取り組んだことだった。両者はこのプログラムを通じて、ソフトウェアの自動ハードニング(脆弱性排除による堅牢化)技術技術「PEASOUP」を開発しており、この技術とGrammaTechのパッチ技術とを組み合わせて、今回のXandraの推論技術を構築した。
 
 「これまで3年間、Cyber Grand Challengeに関わってきたことで、GrammaTechの解析技術やパッチ技術の有用性を証明でき、技術開発や製品のロードマップが明確になった。この分野に取り組んできた長い年月が報われた瞬間でもあった」(ブラウン氏)
 
 GrammaTechでは現在、パッチ適用技術や組み込みコード関連で顧客とPoC(概念実証)を進めており、12~15カ月後には発表できるとブラウン氏は言う。
 
 「Cyber Grand Challengeは、自動化システムの可能性を示しただけではない。同コンテストで各チームの自動化システムが生成したコードはGithubで公開されており、誰でも自由にリバースエンジニアリングして学ぶことができる。また決勝が終わったいま、ShellphishチームがMechanical Phishのソースコードを公開するなど、各チームが積極的な情報公開を始めており、技術の飛躍的向上も期待できる。10年後には、あの巨大なサーバーラックに詰め込まれた機能が、スマートフォンでも利用できるようになっているかもしれない」。元組み込み系エンジニアでもあるブラウン氏はそう述べ、歴史的瞬間に立ち会えたことを喜んだ。
 
人間の想像力/創造力や戦略の可能性、その一方で生まれる「隙」
 ブラウン氏はもう1つ、「Cyber Grand Challengeを通じて、自動化システムの進化には『技術』と『戦略』の両輪が重要であると再確認した」とも語った。今回の競技中、自動化されたシステムどうしが戦っているにもかかわらず、まるで人間どうしがCTFで戦っているように感じられた理由は、そこにある。
 
 たとえばDeep Redチームの「RUBEUS」は、他チームに対してアグレッシブに脆弱性検証の通信を投げまくり、他チームの「可用性」ポイントを削ぐ作戦に出た。他方、ForAllSecureチームの「Mayhem」やShellphishチームの「Mechanical Phish」は、可用性の維持を重視して、他チームからの脆弱性検証を受けない場合はパッチを適用しない戦略をとった。
 
 つまり、脆弱性を発見したあとの行動に、各チームの戦略という「色」が出て、それが“人間味”を感じさせたのだった。
 
 「CTFのゲーム的な要素については、たとえばメモリとCPU使用率は5%以上のオーバーヘッド禁止といった非機能要件は初期の頃に伝えられており、開発を進めながらCTFへの準備を進められた」と明かすTECHxチームは、優勝したForAllSecureや3位のShellphishなど、豊富なCTF出場経験を持つチームの戦略は「とてもCTF的だった」と評価する。
 
 ForAllSecureチームのMayhemは、競技会後半になって技術的問題が発生し、パッチが適用できない状態に陥った。あわや最下位かと思われたが、前半で十分得点を獲得していたことと、むしろ不安定なパッチを「適用しない」ことで可用性ポイントを稼いだ結果として、優勝をつかみ取った。
 
 今回の競技ではこうした戦略の違い、すなわち“人間味”による戦略のゆらぎがゲームの見応えを生み出し、結果的には各チームの成績も左右したことになる。しかし、現実世界のサイバー攻撃に対抗するうえで、こうした“人間味”は有益に働くのだろうか。むしろ、攻撃の抜け道を生み出す可能性もあるのではないか。
 
 実は今回の競技中、Shellphishチームが、スコア可視化システムのバグを発見して1時間ほどダウンさせる「いたずら」を仕掛け、運営側を大わらわにさせた(どちらかというと会場は「人間」の登場に大盛り上がりだったのだが)。もしも、このいたずらが自動化システムに干渉するものであれば、ルール違反になっていただろう。だが、現実世界のサイバー攻撃には“ルール”などなく、このバグが自動化システムを攻撃するための突破口になっていたかもしれない。
 
 脆弱性を作ってしまうのも人間ならば、それを修正する自動化システムを設計するのも人間だ。そして、攻撃をするのもまた人間である。だからこそ生まれるゆらぎ、防御の「隙」をどう克服していくか。“人間味のない”人工知能を活用したシステムがその一助となるのではないだろうか。Cyber Grand Challenge決勝戦は、人工知能の完成を見据えたさらなる活発な議論や発展を促す一夜となった。
 
 人工知能がゼロデイ攻撃のない世界を夢見る日は、そう遠くないのかもしれない。
 
 
文● 谷崎朋子 編集● 大塚/TECH.ASCII.jp

最終更新:9月9日(金)11時26分

アスキー