2016年8月4日米国にて、世界最大のハッカーの祭典であるDEFCON 24と共にCGC(Cyber Grand Challenge)が開催された。自動化されたプログラムがソフトウェアのバグ(不具合を生むミスや欠陥)の検出、修正等を競い、優勝チームに賞金200万ドル(約2億円)が主催者のDARPA(米国国防高等研究計画局)から授与された。本稿では、こうした自動化の動向と「セキュリティ人材」の関係を考察したい。
ソフトウェアのバグが市場を作り、研究を促進する
「開発元の提示の2倍の報奨金を出す」という宣伝も行われているように、ソフトウェアのバグの売買を行う市場が活況を呈している。バグを検出して報酬を受け取る、バグハンターの人数も増えているようだ。例えば、バグの検出を事前に登録している職人たちが依頼を受けて実施する「bugcrowd」の登録者数は、19,000人から28,000人と1年で約1.5倍に成長している。
また、最近では、自動車同様にバグの検出も自動運転を目指す動きが顕著だ。冒頭のCGCのように、国費で構築した自動化ツールが注目を集めている。例えば、マサチューセッツ工科大学の研究もCGCで優勝したカーネギーメロン大学と同様に、ソフトウェアのバグによるセキュリティホールを検出し、修正まで行う。
自動ツールの使い方:人の手をソフトウェアから遠ざける
この自動化の流れは、自動車の自動運転と同様に推進されていくものと思える。バグハンターの稼業と競合するようにも見えるが、自動ツールを上手に活用するハンターも出てくるだろう。
他方、攻撃側も自動ツールをより一層上手に活用してくることが予想される。世界各国のインテリジェンス機関を相手にハッキングサービスを提供するHacking Team社が、思想を持つハッカーに攻撃され、その手順が公開されてしまった例でも、攻撃者は未公開のバグを独自に探していたが、こうした行為も自動ツールにより成功率が高まる。
自動ツールの使い方は、立場によるが、CGCを主催した米国DARPAが目指す使い方は軍からソフトウェアに起因する弱点を減らすことであり、これは自動化の範囲を広げ、人によるソフトウェアへの関与を制限することを意味している。
人の関与がどう減るかを把握することが重要ではないか
日本では、ここ数年セキュリティ人材が必要と言われ続け、具体的にどういう人材か、受け皿は民間にあるのか、というような議論が増えている(議論の例)。 実際のところ、自動ツールの進化形であるロボットハッカー(AIハッカーと呼ぶ人もいる)が勝手に守ってくれて、セキュリティ人材は実はそれほど要らないという将来なのだろうか。
現時点での自動化ツールは、対象とするソフトウェアが、入力を変えることで到達できるすべての処理内容を実行させるように、試験用の入力データをソフトウェアの反応を見ながら変えることで、バグを探している。 今のところ、(1)検査性能の制約、特に依存している第三者による大きなソフトウェア部品に対する検査の制約、(2)運用段階のソフトウェアを修復することの信頼性やコスト面での問題、等の課題から完全な防御とは言えない。
その上で、これからのセキュリティ人材なる人々は、進化するロボットハッカーができないことを適宜把握することが必要ではないか。筆者はこのように感じており、セキュリティ人材育成の教材開発に一部関与させて頂いている。
本文中のリンク・関連リンク:
- DARPA Cyber Grand Challenge
- Exodus Intelligenceに関するgizmodo.jpの記事
- MITのAutomatic Bug Finder : Communications of the ACM
- セキュリティクラスタ まとめのまとめ 2016年7月版:買いたたかれるセキュリティ人材は本当に不足しているのか? : @ITの記事
- AI hackers will make the world a safer place — hopefully : engadgetの記事
- トップ エスイー : 形式仕様記述(セキュリティ編)
- 今は存在しない職業への準備――「21世紀型スキル」: 日経BP社の記事
- 日本の労働人口の49%、人工知能・ロボットで代替可能に 10〜20年後 NRI試算 : ITmediaの記事