AI 対応アプリケーションのためのアプリケーション セキュリティのベスト プラクティスを実装する

完了

AI 対応アプリケーションはまだアプリケーションであるため、セキュリティで保護されたコーディングやその他のアプリケーション セキュリティのベスト プラクティスに従うことはまだ重要です。 AI では、プロンプト インターフェイス、エージェント ツール呼び出し、モデル エンドポイントなどの新しい攻撃対象領域が導入されますが、これらは従来のすべてのアプリケーション セキュリティ リスクと共に存在します。 組織は、AI セキュリティを別の規範として扱うのではなく、AI 固有のコンポーネントをカバーするように既存のセキュリティ プラクティスを拡張する必要があります。

セキュリティで保護されたソフトウェア開発ライフサイクル (SDLC)

AI アプリケーション開発プロセスのすべての段階でセキュリティを統合します。

  • 設計フェーズ: AI 固有の脅威 (プロンプトインジェクション、データポイズニング、モデル盗難) を含む脅威モデリングを実施します。 機密データを処理するコンポーネントと外部システムと対話するコンポーネントを特定します。
  • 開発フェーズ: セキュリティで保護されたコーディングプラクティスに従います。 処理する前に、プロンプトを含むすべての入力を検証します。 AI オーケストレーターとツール エンドポイントの間で渡されたデータをサニタイズします。
  • テスト フェーズ: セキュリティ テストに AI 固有のテスト ケースを含めます。プロンプトインジェクションの試行、脱獄シナリオ、データ流出プローブと、従来の脆弱性テストを含めます。
  • 展開フェーズ: 最小特権アクセスを適用し、転送中と保存中のデータを暗号化し、ライブになる前に監視を構成します。
  • 運用フェーズ: 異常を監視し、パッチを迅速に適用し、AI コンポーネントを含む定期的なセキュリティ レビューを実施します。

セキュリティが CI/CD パイプラインに埋め込まれる DevSecOps アプローチを採用することで、セキュリティ要件と開発速度のバランスを取るのに役立ちます。

AI エージェント ツールのセキュリティ

外部ツール (API、データベース、ファイル システム) を呼び出すことができる AI エージェントには、追加のセキュリティ制御が必要です。 各ツールの相互作用は、特権エスカレーションまたはデータ漏洩の潜在的なポイントです。

  • 機能マニフェスト: エージェントが呼び出すことができる各ツールの機能マニフェストを定義します。 承認されたアクションのみを一覧表示し、他のすべてのアクションを既定で禁止します。
  • スコープ指定された有効期間の短い資格情報: 有効期間の長い資格情報ではなく、ツールの呼び出しごとに有効期間の短いスコープトークンを使用します。 これにより、トークンが侵害された場合のブラスト半径が制限されます。
  • サンドボックス実行: サンドボックス実行環境でエージェント関数を実行して、ランタイムを分離し、承認されていないシステム呼び出しを防ぎます。
  • 入出力サニタイズ: エージェント オーケストレーターとツール エンドポイントの間で渡されるすべてのデータをサニタイズして検証します。 これにより、インジェクション攻撃がツール チェーンを通過するのを防ぐことができます。
  • 監査ログ: すべてのツール呼び出しを監視および監査します。どのツールが呼び出されたか、どのデータにアクセスされたか、どのエージェント ID によってアクセスされたかをログに記録します。 これにより、インシデントの調査に必要なフォレンジック トレイルが提供されます。

マニフェスト、資格情報、サンドボックスなど、AI エージェント ツールのセキュリティ制御の図。

最小限の特権の原則

すべての AI システム コンポーネントに対して最小特権アクセスを一貫して適用します。

  • ユーザー、アプリケーション、AI エージェント、およびサービス アカウントのアクセス許可を、その機能に必要な最小限に制限する
  • ロールベースのアクセス制御 (RBAC) を使用して、エージェントを構築した開発者のアクセス許可とは別に、エージェント レベルでアクセス許可を管理する
  • 不要なアクセス許可を定期的に確認して取り消す
  • 1 つの ID が広範なアクセスを持たないことを保証することで、侵害されたアカウントの爆発半径を減らす

データの保存と転送をセキュリティで保護する

AI パイプライン全体でデータを保護する:

  • モデル ファイル、トレーニング データ、会話ログ、API ペイロードなど、保存中および転送中の機密データを暗号化する
  • AI システム コンポーネント間のすべてのデータ交換にセキュリティで保護されたプロトコル (TLS 1.2 以降) を使用する
  • シークレット、API キー、資格情報を専用のシークレット管理システムに格納します。コード、構成ファイル、プロンプトには保存されません
  • 会話ログと対話データに保持ポリシーを適用して露出を最小限に抑える

監視と可観測性

セキュリティの異常に対する AI アプリケーションの動作を監視します。

  • 脱獄、迅速な挿入、またはデータ流出の試行の兆候に対するモデル応答パターンを追跡する
  • エージェント ツールの呼び出しによる予期しない動作 (承認されていないエンドポイントの呼び出し、異常に大きなデータ転送、スコープ外のアクション) を監視する
  • API 呼び出しの急激な急増や、モデル抽出攻撃を示す可能性がある異常なクエリ パターンなど、異常な使用パターンのアラートを設定する
  • ユーザー ID、エージェント ID、実行されたアクション、アクセスされたデータをキャプチャする包括的な監査ログを保持する

定期的なセキュリティ テストと監査

AI 固有のシナリオを含む継続的なセキュリティ評価を実施します。

  • 脆弱性評価: モデル サービス フレームワーク、ベクター データベース、オーケストレーション ツールなど、AI システム コンポーネントで既知の脆弱性をスキャンする
  • 侵入テスト: 侵入テストに AI 固有の攻撃シナリオ (プロンプトインジェクション、脱獄、データ流出) を含める
  • コード レビュー: セキュリティ上の欠陥に対するプロンプト構築、ツール呼び出しルーティング、およびデータ取得を処理するコードをレビューする
  • レッド チームの演習: セキュリティ コントロールの有効性をテストするために、定期的な AI に重点を置いた赤いチーム演習を実施します。 このラーニング パスの次のモジュールでは、AI レッド チーミングについて詳しく説明します。