Mythosの影響について

Mythosによる脆弱性検知について、いろいろな事が書かれています。しかし、ほとんどは、攻撃の素人が妄想を膨らませているだけのものです。攻撃コードを書いたことのあるホワイトハッカーとして、正確な所をまとめます。

DoS(サービス停止)と任意コード実行は天と地の差がある

今回のMythosで発見されたほとんどは、DoS(サービス停止)どまりの脆弱性です。この脆弱性はちょっと気を抜くと発生しやすものですが、その影響はサービスの強制停止までであり、クリティカルな情報流出や情報改ざんはありません。つまり、セキュリティ3要素(CIA)のうち「可用性」が破られるだけです。

本当に怖いのは「機密性」や「整合性」が破られることで、攻撃者とすると、この発見は可用性破りの100倍ぐらいの手間がかかります。そして、今回の発表で、これに該当するのは「FreeBSDのNFSにおける内部ユーザーによる管理者権限(Root)取得」ぐらいです。これは、VPN攻略と組み合わせると、(今はやりの)ランサム攻撃における絶好のセキュリティホールになります。しかし、今どきNFSを使っている組織は限られ、VPNを突破するだけで重要情報に直接アクセスできてしまう(階層防御を実施していない)運用も少なくなっているのが現状です。とはいえ、管理者権限の取得はクラッカーの最終ゴールであり、それに直接結びつく重要な脆弱性であるとは言えます。

一方、(一番危険な)外部からの任意コード実行についての脆弱性は、今回の発表には含まれていません。つまり、Mythosは、決定的に危険な脆弱性を発見できていません。

ホワイトボックス試験だけでは不十分

今回のMythosについての発表は、ホワイトボックス試験(ソースコードが入手でき、ローカルな環境で様々な攻撃を試せる)の結果だと思われます。一方、銀行などのクローズドなシステムを攻略するには、ブラックボックス試験(ソースコードは入手できず、実システムに対し攻撃を試行する)が必要です。

ブラックボックス試験では、基本的に複数の攻撃パターンを試すぐらいしかできず、ソースコード解析のような詳細な分析は不可能です。また、ターゲット側の監視システムに検知される可能性が高く、頻繁な試行はできません。

そのため、銀行等については、オンラインバンキングのWebフロントエンドにおける基礎ソフトウェア(Webサーバ、OS)についての解析は可能でも、勘定系のような銀行システム本丸の攻略は難しいと言えます。

脆弱性発見のAI化

静的なコード解析については、世の中に出回っている「脆弱性に対するパッチコード」を学習させれば良く、実は、CodeQL等でかなりのレベルまで学習が終わっています。

一方、動的な脆弱性(複数の要因が重なっった時のみに発生する)は、脆弱性を持つシステムの動作を学習させる必要があり、ひと手間かかります。今回のMythosは、この動的解析を汎用AIで出来るところが大きなトピックです。

動的な脆弱性解析は人間には複雑すぎ、AIの計算力が生きる所です。現在、Mythosによる脆弱性発見は、内部ユーザの管理者権限取得までです。しかし、AIが任意コード実行を発見するのも時間の問題だと思われます。今後、脆弱性の発見はMythosのようなAI主導で進んでいくと断定できます。

まとめ(脆弱性対応の今後)

AIによるレビューでシステムの脆弱性は減少すると思われます。これに対しクラッカーは、高度にチューニングされたAIでサーバーをぶん回し、新たな脆弱性を発見せざるを得なくなります。そのため、個人レベルや中小規模のクラッカーは廃業に追い込まれる可能性が高いです。

残るのは国家レベルで大量のAI資源を使用しクラッキングする集団であり、これに対しては、国家レベルで対抗する必要があります。つまり、ハッキングとその対策は、戦争と同じく莫大な資金を必要とする国家事業になります。

現在、米国がやっている「クローズドなMythosの利用」はこの活動の一環です。日本については、高度なAI技術の開発は困難であり、米国の活動に参加することになると思います。つまり、「政府レベルでMythosの使用許可を米国にお願いする」ことあたりから始める流れだと思います。

そして、人類としての最終ゴールは、脆弱性フリーなコンピューティングの実現であり、基本アプローチは以下です:

  • AIにより既存の脆弱性をすべて無くす
  • 新規コードはAIによるレビューを必須とし、新たな脆弱性を発生させない

このためには、脆弱性発見に強い強力なAIを適正に管理していくことが必要になりますが、これは、人類が殺人兵器をそれなりに管理できているのと同じく、国家レベルの事業として行えば可能だと考えます。

コメントをどうぞ

メールアドレスが公開されることはありません。 が付いている欄は必須項目です