AIリテラシー 脆弱性診断
脆弱性診断とは
脆弱性診断(Vulnerability Assessment)は、システムにセキュリティホールがないかを網羅的にチェックする健康診断のようなプロセスです。AIエージェント自体だけでなく、それが稼働するOS、Webサーバー(Nginxなど)、そしてAIライブラリ(TensorFlow, PyTorch, LangChainなど)のすべてが診断対象となります。
特にAI開発では、オープンソースソフトウェア(OSS)を多用するため、ライブラリに潜む「Supply Chain Risk(サプライチェーンリスク)」が高くなります。診断ツールは、稼働中のサービスのバージョン情報をスキャンし、CVE(Common Vulnerabilities and Exposures)データベースと照合して、危険度が「High」や「Critical」なものが放置されていないかを確認します。
監査における確認事項
監査では、「診断を実施したか」だけでなく、「発見された脆弱性にどう対処したか」を追跡します。全ての脆弱性を即時修正するのは現実的ではないため、「トリアージ(優先順位付け)」が適切に行われているか、リスク受容の承認プロセスが機能しているかがポイントとなります。
実務での課題と対策
「偽陽性(False Positive)」の多さが課題です。ツールが「危険」と判定しても、実際にはその機能を使っていないため影響がない場合があります。対策として、ツールの結果を鵜呑みにせず、セキュリティエンジニアが手動で検証(Verify)するフローを組むか、実際に攻撃コードを流して確認するペネトレーションテストを併用することが推奨されます。
失敗例・トラブル事例
- 古いPickleファイルの放置: PyTorchなどのモデル読み込みに使われるPickle形式には、任意のコードを実行できる脆弱性があります。診断で警告が出ていたにもかかわらず、「社内用だから大丈夫」と放置していた結果、悪意あるモデルファイルを読み込まされ、サーバーが乗っ取られました。
- 診断タイミングの遅れ: リリース直前に診断を行いましたが、大量の脆弱性が見つかり、修正のためにリリースが1ヶ月延期されました。CI/CDパイプラインに組み込んで毎日診断する「DevSecOps」体制が必要でした。