最近発見されたPHP2Shellの脆弱性は、インターネット・インフラのセキュリティに対する重大な警告となっています。Wikipediaやホワイトハウスのような主要なサイトを危険にさらしたこの脆弱性は、2024年まで遡ってPHP Foundationに報告されていたバグに根ざしていました。長年、この問題は軽微な「メモリ不足(out-of-memory)」エラーとして扱われてきました。これは通常、侵害を許すのではなくプログラムをクラッシュさせるタイプのバグです。直ちに危険ではないと判断されたため、この問題は放置され続け、専門家が「技術的負債」と呼ぶもの、つまり武器化されるまで無視され続けるレガシーソフトウェア内の軽微な欠陥の蓄積に寄与してきました。

この画像は、最初の段落で議論されているレガシーソフトウェアの「技術的負債」と潜在的な欠陥を視覚的に表現したメタファーです。
AIは、これらの欠陥が悪用されるまでのタイムラインを根本的に変えています。人間の研究者が、クラッシュを完全なシステム乗っ取りに変えるために必要な「苦痛を伴う」特定の推論(正確なメモリジャンプやビット上書きの計算など)を見つけ出すのに対し、AIツールは現在、この複雑な論理の多くを自動化できます。PHP2Shellのケースでは、Califの研究者がAIツールの支援を受け、独立した監査からわずか2週間以内にホストサーバー上で任意のコードを実行する方法を特定しました。この変化は、上位0.1%のセキュリティ専門家がより多くのことを達成できるようになる一方で、その閾値をわずかに下回る人々でも、基礎となる言語の細かな詳細をすべて理解することなく、高度なエクスプロイトを実行できることを意味します。
この加速は、サイバーセキュリティにおける根本的な非対称性を生み出しています。AIによってバグを見つけることは大幅に容易になる一方で、それらを修正することは依然として摩擦の大きいタスクのままです。防御側は、パッチが既存の機能を損なうことなくセキュリティホールを塞ることを保証しなければならないため、大規模で古いシステムにおけるオープンソース・メンテナへの負担は激化しています。これに対抗するため、一部の人々は、AIモデルがソフトウェアのパッチと、その正当性の数学的証明の両方を生成する「形式的検証(formal verification)」に注目しています。しかし、AIは依然としてハルシネーションを起こす可能性があるため、人間が確認する証明チェッカーは依然として必要な最終ステップです。パッチを当てることがバグを見つけることと同じくらい自動化されるようになるまでは、業界は、以前は修正するには軽微すぎると考えられていた数十年前の脆弱性が急速に、そしておそらく圧倒的な勢いで発見される時期に直面しています。