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