IAST(インタラクティブアプリケーションセキュリティテスト)とは?
インタラクティブアプリケーションセキュリティテスト(IAST)は、静的アプリケーションセキュリティテスト(SAST)と動的アプリケーションセキュリティテスト(DAST)を組み合わせて、アプリケーションの脆弱性をより効果的に発見する方法です。
IASTの特徴には以下が含まれます:
- IASTツールは、アプリケーションが実行されている間にセンサーや監視コンポーネントを内部に追加することで動作します。これらのツールは、テストが自動化されているか人によって行われているかに関わらず、アプリの動作を監視します。このアプローチにより、IASTはコードの実行、ユーザー入力、およびアプリがデータをリアルタイムでどのように処理するかをチェックできます。
- IASTはコードベース全体を自動的にスキャンするわけではなく、テスト中にアプリケーションがどれだけ広範囲に行使されるかによってカバレッジが決まります。テスト活動が広範であるほど、脆弱性のカバレッジは深くなります。
- IASTは通常、QAまたはステージング環境で展開され、自動または手動の機能テストが実行されます。
サイバーセキュリティにおけるIASTの重要性
SASTは、アプリケーションを実行せずにソースコード、バイトコード、またはバイナリを分析し、コーディングエラーを発見するのに非常に効果的ですが、誤検知を生むことがあり、実行時に特有の問題を見逃すことがあります。
DASTは、アプリケーションが実行されている間に外部からテストを行い、実行時にのみ現れる問題を明らかにすることができますが、内部のロジックやコード構造に対する深い可視性には欠けています。IASTはこれらの技術の強みを組み合わせることで、そのギャップを埋め、以下を提供します。
- 脆弱性の発生源や経路に関するより深い洞察。
- SASTやDAST単独と比較して改善された検出精度。
- 実行時の活動とコード分析を関連付けることによる誤検知の削減。
IASTの仕組み
- インストゥルメンテーション: IASTはインストゥルメンテーションを使用します。つまり、センサーやモニタリングコードがアプリケーションに埋め込まれ(通常はQAまたはステージング環境で)、テスト中の動作を観察します。
- モニタリング: データフロー、ユーザー入力、コードの動作をリアルタイムで観察し、テストや手動操作によってアプリケーションが動作する様子を監視します。
- 検出: 不適切な設定、未サニタイズのデータフロー、またはインジェクションリスクなどの脆弱性をフラグします。
- 報告: 検出された問題に対処するための実行可能な所見と修正ガイダンスが開発者に提供されます。
例
機能テスト中に、QAチームがログインフォームと対話します。IASTツールは、ユーザー入力がサニタイズされずにデータベースクエリに流れ込むことを検出し、潜在的なSQLインジェクションリスクを示します。チームは脆弱性レポートとセキュリティ問題を修正するための実行可能なステップを受け取ります。