はたらクラフト

AI任せのセキュリティ対策は不完全。Cloudflare公式スキルで対策

開発・運用の仕組み化

アプリやホームページのセキュリティ対策を、Claude CodeやCodexなどのAIエージェントに任せている方は多いと思います。

「AIに一通りのセキュリティ対策をさせれば十分」と思っていないでしょうか。

Cloudflareは公式ブログで、AIによるセキュリティ対策には2つの問題があると指摘しています。ない脆弱性を作り出して報告することと、ある脆弱性を見落とすことです。

この記事では、この2つの問題と、それを解決するよう設計されたCloudflare公式のセキュリティ監査スキルの仕組み、導入と使い方、注意点を解説します。

動画で見たい方はこちら。

問題1:AIは存在しない脆弱性を作り出す

AIが自ら書き換えたコードの欠陥を最初からあった脆弱性として報告する流れ

Cloudflareの公式ブログには、AIの性質についてこう書かれています。「モデルにバグを探せと言えば、コードにバグがあろうがなかろうが見つけてくる」。

Cloudflareが実際にAIにセキュリティ監査をさせた検証では、驚くべき行動が見られました。

AIは自分でソースコードを書き換えて攻撃が通るようにし、いま自分で作ったバグを最初からあったかのように報告してきたのです。

問題2:AIは脆弱性を見落とす

コード10万行の大部分をAI監査が見落とす様子

2つ目の問題は逆で、脆弱性があるのに見落とすことです。

同じCloudflareのブログによると、10万行のコードをAIエージェント1つに監査させた場合、有効に調べられるのは表面の0.1%程度です。

なぜ0.1%なのか。AIのコンテキストウィンドウ、つまり記憶領域が、0.1%を読んだ時点でいっぱいになるからです。

コンテキストがいっぱいになると、AIは記憶を圧縮して要約し、細部の情報を忘れてしまいます。

AIに詳しい方なら、サブエージェントを使って複数のAIでセキュリティ調査をすれば、コンテキスト不足は起こらないと思うかもしれません。

しかし、サブエージェントを使ってもAI間の情報の受け渡しはコンテキストを要約するので、細部の情報が失われます。

Cloudflare公式のセキュリティ監査スキルは2つの問題を仕組みで防ぐ

Cloudflare公式のセキュリティ監査スキルは、この2つの問題を解決するよう設計されています。

スキルの内容は、AIに「セキュリティ監査のやり方」を教える手順書です。商用利用可能で無料で使えます。Claude CodeやCodexなど、複数のAIエージェントに対応しています。

作り出しを防ぐ:別のAIが検証し、攻撃が通ったものだけを脆弱性とする

検証AIの疑いの目と実際の攻撃で脆弱性を確定させる二段階フィルター

1つ目の「脆弱性を作り出す」問題には、敵対的検証実際に試すという2つのアプローチで対策しています。

敵対的検証とは、その仕事をしたのとは別の第三者が、仕事の内容を批判的な立場で評価することです。

このスキルでは、調査担当のAIが出した報告を、検証担当の別のAIが「本当に正しいのか」と疑いながら評価します。

もう1つの「実際に試す」は、調査で見つかった脆弱性を実際に攻撃してみて、攻撃が成功したものだけを「確定(confirmed)」とする仕組みです。

手つかずの元コードに対して動く攻撃の証明がなければ、偽の発見として扱います。AIがコードを書き換えて作ったバグは、ここではじかれます。

見落としを防ぐ:構成図と調査台帳でシステム全体を網羅する

担当AIの調査結果を別AIが確認し見落としを防ぐ調査台帳の仕組み

2つ目の「脆弱性を見落とす」問題には、システムの構成図と、どこまで見たかを管理する調査台帳で対策しています。

スキルはまず、システムの構成図(architecture.md)と調査台帳(coverage-ledger.json)を作ります。台帳の単位ごとに担当のAIを分け、調査した内容を全て台帳に記録していく流れです。

さらに、台帳に抜けがないかを別のAIが探します。台帳の調査結果がシステム全体を網羅していれば、見落としの心配はありません。

導入はAIへの依頼1つ。Node.jsがあれば動く

導入は簡単です。公式リポジトリのREADMEに記載の1コマンドでインストールでき、Node.js(無料)の環境があればすぐに使えます。

AIに以下の指示をして、導入を任せてもOKです。

https://github.com/cloudflare/security-audit-skill のREADMEを読んで、このセキュリティ監査スキルをこのプロジェクトにインストールして。Node.jsが入っていなければ先に入れて

使い方:コード全体の監査と、機能を絞った質問

コード全体監査と機能を絞った質問という2通りの使い方

インストールできたら、AIに以下のような指示をするとスキルが使われます。

コード全体を見てもらう指示の例は以下です。

このコードベースをセキュリティ監査して

特定の機能をピンポイントで見てもらうこともできます。

このお問い合わせフォームのセキュリティ上の弱点は?

監査は1回で終わりにせず、定期的に繰り返してください。Cloudflareのテストでは、1回の実行で見つかった脆弱性は、複数回実行した合計のおよそ半分でした。

同じアプリへの再実行は前回の台帳を引き継ぐので、回を重ねるほど網羅が進みます。

詳しい使い方は、AIに公式リンクhttps://github.com/cloudflare/security-audit-skillを渡して聞くのがおすすめです。

注意点:見つけた脆弱性を実際に試すにはサンドボックス環境が必要

サンドボックスの条件が自分のPCを守る仕組み

注意点が1つあります。見つかった脆弱性を実際に攻撃して試すところまでやるには、サンドボックス環境が必要です。

サンドボックス環境とは、今使っているパソコンとは別の隔離された環境のこと。そこで何か問題が起きても、自分のパソコンには影響しません。

スキルは、外部ネットワークの遮断や書き込み先の限定などの条件を満たすサンドボックスがないと、対象のコードを実行しません。

サンドボックス環境はDockerなどで作るのが一般的です。Docker Desktopは、従業員250人未満かつ年商1,000万ドル未満の企業と個人利用なら無料で使えます。

用意もAIに頼めばやってくれます。

https://github.com/cloudflare/security-audit-skill が要求するサンドボックス環境を、Dockerで用意して

まとめの前に、お知らせを

無料メルマガで実務で使えるAI活用を毎日配信中。1分で登録できます。

超実践AI論Substacktaichiaiworker.substack.com

ながら聞きで、AIを仕事に活かす方法がわかるポッドキャストをSpotifyでも配信しています。

超実践AI論Spotifyopen.spotify.com

まとめ:Cloudflare公式スキルでAIに正しいセキュリティ監査をさせる

この記事の要点は次の4つです。

  • AIのセキュリティ対策には、ない脆弱性を作り出す、ある脆弱性を見落とすという2つの問題がある
  • Cloudflare公式のセキュリティ監査スキルは、別のAIによる敵対的検証と実際の攻撃で作り出しを防ぎ、構成図と調査台帳で見落としを防ぐ
  • 導入はAIへの依頼1つ。Node.jsがあれば動き、コード全体の監査も機能を絞った質問もできる
  • 見つけた脆弱性を実際に試すにはサンドボックス環境が必要

まずはこのスキルをインストールして、自分のアプリの機能を1つ調査させてみてください。「セキュリティ対策をして」だけでは見つからなかった穴が、見つかるかもしれません。

この記事をシェア

自分の業務アプリを、AIで自力で作る

AIで自分の業務アプリを作り、自力で修正もできるまでを、経歴10年のITエンジニアが1対1で個別サポートします。残り5名までモニター価格です。