アプリケーションセキュリティ
IAST(対話型アプリケーションセキュリティテスト)
別称: 対話型解析, ランタイムコード解析
定義
稼働中のアプリケーション内部に計装を仕込み、トラフィックやテストで動作している間にコード実行を観察するセキュリティテスト手法。
IAST エージェントは、言語ランタイムのフックを通じてアプリケーションプロセスに読み込まれ、データフロー、関数呼び出し、HTTP リクエストをリアルタイムに観察します。SAST の内部視点と DAST のランタイムコンテキストを組み合わせるため、汚染された入力が実際に危険なシンクに到達するかどうかを確認でき、誤検知を大幅に削減し脆弱な行を特定できます。本番ではなく機能テストや QA フェーズで実行するのが一般的です。Java、.NET、Node.js、Python など計装が容易な言語に向いており、Contrast Security、Checkmarx CxIAST、Seeker などのツールがあります。
例
- QA 環境の Java サービスに Contrast Security エージェントを取り付け、E2E テスト中に XSS を検出する。
- Cypress のシナリオ実行中に Seeker を使い、Node.js API の SQL インジェクションを確認する。
関連用語
SAST(静的アプリケーションセキュリティテスト)
ソースコード・バイトコード・バイナリを実行せずに自動解析し、インジェクションや安全でない API、弱い暗号などのセキュリティ欠陥を検出する手法。
DAST(動的アプリケーションセキュリティテスト)
稼働中のアプリケーションにネットワーク経由でアクセスして行うブラックボックス型のセキュリティテストで、ランタイムでのみ現れる脆弱性を検出する。
RASP(ランタイムアプリケーション自己防御)
稼働中のアプリケーション内部に組み込まれ、実行コンテキストを監視してインジェクションやデシリアライゼーションなどの悪意ある挙動をリアルタイムにブロックする防御機構。
ファジング(Fuzz Testing)
プログラムに大量の不正・ランダム・想定外な入力を与え、クラッシュ・メモリ破壊・セキュリティ脆弱性を自動的に発見するテスト手法。
Secure Coding
Secure Coding — definition coming soon.
OWASP Top 10
OWASP Top 10 — definition coming soon.