IAST(Interactive Application Security Testing) いあすと
簡単に言うとこんな感じ!
IASTはアプリが動いている最中に「中から」バグや脆弱性を見張るセキュリティ検査の手法だよ。アプリの内部にセンサーを埋め込んで、実際の通信や処理をリアルタイムで監視するイメージ!外から叩くだけじゃわからない問題も見つけられるんだ。
IASTとは
IAST(Interactive Application Security Testing) とは、稼働中のアプリケーションの内部にエージェント(監視プログラム)を組み込み、実際の処理フローをリアルタイムで解析することで脆弱性を検出するセキュリティテスト手法です。「インタラクティブ」という名の通り、アプリが実際に動作しながらデータを処理する過程を「内側から」観察するのが最大の特徴です。
従来のセキュリティテストには大きく2種類ありました。ソースコードを静的に解析する SAST(Static Application Security Testing) と、外部からリクエストを送って動作を確認する DAST(Dynamic Application Security Testing) です。IASTはこの両者の長所を組み合わせたアプローチとして登場し、「コードの文脈」と「実際の動作」の両方を把握しながら精度の高い検出を実現します。
実務的には、開発・テスト環境のCI/CDパイプライン(継続的インテグレーション/デリバリーの自動化フロー)に組み込んで使われることが多く、QAテストを実施する過程で自動的にセキュリティ検査も並行して行えるのがメリットです。開発の速度を落とさずにセキュリティを確保する DevSecOps(開発・運用・セキュリティを一体化する考え方)との親和性が非常に高い技術です。
IASTの仕組みと構造
IASTの核心は、アプリケーションの実行環境に組み込まれる エージェント です。このエージェントがコードの実行を監視し、データの流れ(特に外部入力がどこを通ってどこに出るか)を追跡します。
| 処理フェーズ | IASTエージェントがやること |
|---|---|
| HTTPリクエスト受信 | 入力データのソース(出どころ)を記録 |
| 関数・メソッド呼び出し | データが通過するコードの経路を追跡 |
| DB・外部API呼び出し | 危険なデータがそのまま渡されていないか確認 |
| レスポンス送信 | 機密情報の漏洩・サニタイズ漏れをチェック |
検出できる主な脆弱性
- SQLインジェクション — 外部入力がSQLクエリにそのまま埋め込まれるケース
- XSS(クロスサイトスクリプティング) — 入力値がHTMLとして出力されるケース
- パストラバーサル — ファイルパスへの不正な入力
- 安全でない暗号化 — 弱いアルゴリズムや不適切な鍵管理
- 認証・セッション管理の不備 — セッションIDの扱いの問題
覚え方:「動かしながら中から見る」
Interactive = 動いているアプリに 対話的 に問いかける
SASTが「設計図のチェック」、DASTが「外から扉を叩く検査」なら、
IASTは「店員として内側に入って接客しながら異常を見つける覆面調査員」!
歴史と背景
- 2000年代前半 — Webアプリケーションの普及に伴い、SQLインジェクションやXSSなどの脆弱性が社会問題化。SASTとDASTが主流の対策手法として発展
- 2012年頃 — Gartner(ITリサーチ企業)がIASTという用語を提唱。「ランタイム解析(実行時解析)」の概念をセキュリティテストに応用する方向性を示す
- 2013〜2015年 — Contrast Security、Seeker(Synopsys)などのIAST専門ベンダーが登場。Java・.NET向けエージェントが本格普及
- 2018年以降 — DevSecOpsの概念が広まるにつれ、CI/CDパイプラインへの統合ツールとしてIASTの需要が急増
- 2020年代 — クラウドネイティブ・マイクロサービス環境への対応が進み、コンテナ内エージェントとして動作するIASTも登場
SAST・DAST・IASTの比較
3つのアプリケーションセキュリティテスト手法には、それぞれ異なる特性と得意領域があります。発注・選定時に「どのフェーズで何を検出したいか」を判断基準にするとよいでしょう。
IASTが特に有効なシーン
- テスト自動化が整っている開発チーム — QAテストと同時にセキュリティ検査が走るため、追加コストが最小化できる
- 複雑なビジネスロジックを持つWebアプリ — 外部から叩くだけでは再現しにくい脆弱性を内部から検出できる
- スピードが求められるアジャイル開発 — リリースサイクルを崩さずにセキュリティを組み込める
IASTの限界と注意点
- エージェントが対応している プログラミング言語・フレームワーク に限定される(Java・.NET・Node.js・Pythonなどが主流)
- テストで実行されなかったコードパスの脆弱性は検出できない(カバレッジ依存)
- 本番環境への組み込みはパフォーマンスへの影響リスクがあり、テスト環境での利用が推奨される
関連する規格・RFC
| 規格・文書 | 内容 |
|---|---|
| OWASP Testing Guide | Webアプリケーションセキュリティテストの包括的ガイドライン。IASTを含む各種テスト手法の実践的な指針を提供 |
| NIST SP 800-115 | 情報セキュリティテストと評価に関する技術ガイド。動的テスト手法の位置づけを定義 |
関連用語
- SAST(静的アプリケーションセキュリティテスト) — ソースコードを実行せずに脆弱性を解析する手法
- DAST(動的アプリケーションセキュリティテスト) — 稼働中アプリに外部からリクエストを送って脆弱性を検出する手法
- DevSecOps — 開発・運用・セキュリティを一体化して継続的に安全なシステムを作る考え方
- CI/CDパイプライン — コードのビルド・テスト・デプロイを自動化する仕組み
- 脆弱性スキャン — システムやアプリの既知の弱点を自動的に探索するプロセス
- SQLインジェクション — 悪意ある入力でデータベースを不正操作する攻撃手法
- XSS(クロスサイトスクリプティング) — Webページに悪意あるスクリプトを埋め込む攻撃手法
- RASP(ランタイムアプリケーション自己保護) — アプリが自分自身の実行時攻撃をリアルタイムで検知・遮断する技術