悪意のあるAIプログラムは、ゼロトラストをコードにまで拡張することを強要している。

AIを活用したマルウェアがサイバーセキュリティをどのように脅かすのか、そしてシステムを保護するためにゼロトラストの原則をコードに適用すべき理由について解説します。

知っておくべき最も重要なこと

  • 人工知能が悪意のあるコードを生成・改変する速度は、人間のレビューと署名に基づく従来のセキュリティ対策を阻害し、新たなガバナンスフレームワークの必要性を高めている。
  • ソースコードや実行後の検出に焦点を当てた従来のセキュリティ対策ではもはや不十分です。代わりに、コードの実行を許可する前に、ポリシーに基づいて期待されるコードの動作を評価するように移行する必要があります。
  • 「コードに対するゼロトラスト」の原則を適用するには、プログラムの出所や過去の信頼性指標に関係なく、プログラムを実行する前に、確立されたポリシーに照らしてその動作を評価する必要があり、同時にすべてのコードエントリパスを特定する必要があります。

ソフトウェアセキュリティは、これまで常に人間の開発を前提として構築されてきた。かつては人間がコードの記述、レビュー、公開を行っていた。しかし今では、これらの作業は機械に取って代わられつつある。

Anthropic社は最近の研究論文で、同社の生産性データベースに組み込まれているコードの80%以上が、同社のAIモデルであるClaudeによって作成されたものであると報告した。

開発者の生産性を向上させるのと同じ機能が、サイバー攻撃の経済構造を変えつつある。

攻撃者が標的を特定している間に、マシンは悪意のあるペイロードを生成し、亜種をテストし、コードをさまざまな環境に適応させ、セキュリティソフトウェアが追いつけない速度でそのプロセスを繰り返すことができる。

スピードが安全制御を凌駕する

ほとんどの企業向けソフトウェアセキュリティワークフローでは、レビュー期間が前提となっています。コードは記述され、チェックされ、テストされ、承認され、展開されます。その後、不審な点があれば、セキュリティチームが調査し、対応します。

このモデルは、プログラムが単なるガイダンスから数分以内に実行に移される場合に破綻する。

AIが生成したコードは、ほぼ瞬時にスクリプト、依存関係、自動化タスク、またはインフラストラクチャの変更に変換できます。同時に、開発エージェントはファイルを変更したり、パッケージを解決したり、コマンドを実行したりできます。

人間のレビュー担当者はもはやプロセスに関与していない。

攻撃者は同じメカニズムを用いて脆弱性を生成したり、回避技術をテストしたり、異なる標的に対して悪意のあるペイロードの動作を変更したりすることができる。これにより、防御側が識別できる安定した指標が少なくなり、攻撃の汎用性が高まる。

AIを活用した分析はスクリーニングの精度向上に貢献するものの、多くの場合、確率を示すだけで具体的な方針を示すものではない。そして、機械処理速度においては、「おそらく疑わしい」というだけでは不十分である。そのため、AIガバナンスに関する規則や枠組みの必要性がますます高まっている。

機械は攻撃モデルを変えつつある。

人間の攻撃者がいなくなることはないだろうが、攻撃の連鎖の大部分は機械によって実行されるようになっている。

人工知能は、偵察の自動化、脆弱性発見の迅速化、エクスプロイトコードの生成、悪意のあるペイロードの書き換え、標的環境へのコマンドシーケンスの適応などを可能にする。しかし、ほとんどの防御策は、再利用可能なインフラストラクチャ、近道、追跡可能なパターンといった人間の限界を前提として設計されている。これらは機械による攻撃には当てはまらない。

マシンによって生成される悪意のあるペイロードは、既知のシグネチャと一致しない可能性があり、また、確固たる評判を持つとは限りません。作成後、短期間使用され、その後破棄される場合もあります。しかし、AI搭載マルウェアは、その目的を達成するために標的環境と相互作用する必要があります。その動作は意図を隠蔽することはできず、攻撃を前進させるような方法でリソースにアクセスし、環境を変更しなければなりません。

悪意のあるコードができることは、最も永続的なセキュリティシグナルを作り出すことだ。

セキュリティは別の問いを立てる必要がある。

ソフトウェアサプライチェーンのセキュリティは向上しているものの、その多くは依然として実行自体を制御するのではなく、実行前に影響特性をチェックするにとどまっている。

ソフトウェアコンポーネントリスト(SBOM)、署名、ソースコードは、セキュリティチームがコードの構成、出所、およびビルド日についてより高い確信を持つための情報源となります。しかし、ソースコードを知っていても、プログラムが実行されたときに何が起こるかはわかりません。

プログラムはこれらのチェックをすべて通過しても、リスクを生み出す可能性があります。正当なビルドプロセスであっても、実行中にポリシーに違反する可能性があり、AIが生成したスクリプトは、意図したタスクを完了する際に、データやシステムを危険にさらす可能性があります。したがって、依存関係リストがクリーンであることは、安全な動作の証明にはならず、 AIツールを使用する場合でも、プログラミング標準を妥協しないことの重要性が強調されます。

実施後の情報開示は遅すぎる。

検知と対応は依然として必要だが、それらは脅威が既に環境に侵入した後に行われる。不審な挙動が明らかになる頃には、マルウェアは機密情報にアクセスしたり、システムの状態を変更したり、ネットワーク接続を開いたり、継続性ポイントを確立したりしている可能性がある。

人工知能はこの時間枠を大幅に短縮します。コードは人間がレビューするよりもはるかに速く作成、変更、展開できます。実行後の証拠が出てくるのを待つことで、攻撃者は自由に行動できる十分な時間的余裕を得られます。

意思決定プロセスをより早い段階に移行させる必要がある。「このソフトウェアが不正な動作をした場合に、それを封じ込めることができるか?」と問うのではなく、「そもそもこのような動作を許容すべきなのか?」と問うべきだ。

これは既存の制御システムを交換するという意味ではなく、重要なセキュリティゲートの位置を変更するという意味です。

プログラミング命令に対する信頼度ゼロ

ゼロトラストの原則は、暗黙の信頼を否定することで、組織のセキュリティを根本的に変革しました。ユーザー、デバイス、セッション、アクセス要求は、見慣れたものだからといって安易に信頼されるのではなく、確立されたポリシーに基づいてすべて検証されなければなりません。

ソフトウェアの実装においても、同レベルの検証が求められる。

既知のリポジトリから入手した、信頼できる発行元によって署名されている、ビルドパイプラインを通過した、あるいは過去に悪意のある動作を示していないといった理由だけで、コードを信用すべきではありません。これらは有用な指標ではありますが、決定的なものではありません。

ゼロトラスト・フォー・コードの原則は、この問題に対処するものです。プログラムが実行される前に、その想定される動作がポリシーに照らして評価されなければなりません。動作が許容範囲内であれば、実行を続行できます。そうでなければ、その要素はブロック、制限、隔離されるか、レビューのために上位レベルにエスカレーションされる必要があります。この必要性は、単なるポリシーにとどまらない、人工知能のための明確なルールとフレームワークを確立することの重要性を浮き彫りにしています。

組織はまず、コードが環境に入り込む、あるいは高い権限で実行される経路をそれぞれ定義することから始めることができます。これには、リポジトリ、オープンソースパッケージ、コンテナ、継続的インテグレーション/継続的デプロイメント(CI/CD)パイプラインといった正式な開発チャネルに加え、メール添付ファイル、ダウンロードファイル、マクロ、ブラウザ拡張機能、エンドポイントインストーラ、サードパーティ統合、AIや自動化ツールを介して挿入されるスクリプトなども含まれます。

次に、これらの経路が継承された信頼に依存している箇所を特定することが極めて重要です。ソフトウェアが信頼できるソースから提供された、署名されている、ビルドプロセスを経た、または悪意のある履歴がないという理由で実行が許可されている場合、この制御は不完全です。要素の実行を許可する前に、動作を評価する必要があります。これはまた、AIベンダーへの依存度の高まりから生じる脆弱性の連鎖を浮き彫りにします。

人工知能が正当なコードと悪意のあるコードの両方を作成する役割を担うようになるにつれ、組織は既存のチェックを通過したコードの実行を容認することはもはやできません。実装は、十分に検討されたセキュリティ上の決定となる必要があります。

PC、Mac、モバイルデバイス向けの最適なインターネットセキュリティスイートを一覧にしました。

コメントは締め切りました。