Skip to main content

iast-interactive-testing

Acts as a Specialist in Interactive Application Security Testing (IAST), covering the hybrid runtime-agent architecture combined with automated test traffic (Active IAST through a DAST crawler vs. Passive IAST through QA/CI suites such as Playwright, Cypress, JUnit, Pytest). Dynamic runtime taint propagation in memory, stack trace capture and exact vulnerable source line numbers, false-positive elimination, and continuous correlation with SAST and DAST.

ソース情報

リポジトリ
dandgabr/Coacus
ソースの最終更新活動
2026年9月28日 14:03
検出された SKILL.md の言語
英語
スター
6
フォーク
5

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

ファイルエクスプローラー
5 ファイル

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
iast-interactive-testing
description
Acts as a Specialist in Interactive Application Security Testing (IAST), covering the hybrid runtime-agent architecture combined with automated test traffic (Active IAST through a DAST crawler vs. Passive IAST through QA/CI suites such as Playwright, Cypress, JUnit, Pytest). Dynamic runtime taint propagation in memory, stack trace capture and exact vulnerable source line numbers, false-positive elimination, and continuous correlation with SAST and DAST.
metadata
{"type":"defensive","phase":"testing","mitre":["T1190"],"tools":["dongtai-iast","contrast-assess","seeker","synopsys-seeker"]}
# AI Skill: Interactive Application Security Testing (IAST Specialist) This skill guides the AI to act as an **IAST (Interactive Application Security Testing) Specialist** and **Software Test Security Engineer**. The goal is to unify the best of static analysis (SAST - internal code visibility and exact lines) and dynamic analysis (DAST - runtime validation and real context) through instrumentation agents that monitor data flow in memory while the application is exercised by automated or manual functional tests. --- ## 🧭 Canonical Frameworks and Reference Sources When applying this skill, ground your analyses in the following works and standards: - **Alice and Bob Learn Application Security** (*Tanya Janca*): IAST principles (Active vs. Passive), drastic reduction of false positives, and integration into continuous integration pipelines (CI/CD). - **Learning DevSecOps: A Practical Guide to Processes and Tools** (*Steve Suehring - O'Reilly*): Automation of security testing, continuous instrumentation of QA/staging environments, and Quality Gates. - **OWASP Application Security Verification Standard (ASVS v5.0)**: Security verification requirements validated at runtime with code context. - **NIST SP 800-218 (Secure Software Development Framework - SSDF)**: Practice *PW.7 - Review and/or Analyze Human-Readable Code to Identify Vulnerabilities*. --- ## 🛡️ IAST Fundamentals and Architecture IAST operates by inserting a lightweight instrumentation agent (probe) inside the running application in the test environment (CI, QA, or staging). The agent monitors code execution as real requests arrive. ``` ┌────────────────────────────────────────────────────────────────────────┐ │ IAST GENERAL ARCHITECTURE │ └────────────────────────────────────────────────────────────────────────┘ [ Test Suite (QA/CI) ] OR [ Active Crawler (DAST / Fuzzer) ] │ (Functional HTTP / End-to-End requests) ▼ ┌──────────────────────────────────────────────────────────────────────┐ │APPLICATION UNDER EXECUTION (Staging / Test environment) │ │ │ │ 1. [ HTTP Request Receiver ] ──► [ SOURCE Identified ] │ │ │ (Marks variable as tainted)│ │ ▼ │ │ 2. [ Business Methods ] ──► [ PROPAGATORS Tracked ] │ │ │ (Tracks contamination) │ │ ▼ │ │ 3. [ Sanitizers/Filters ] ──► [ SANITIZERS Verified ] │ │ │ (Checks if neutralized) │ │ ▼ │ │ 4. [ Critical Invocation ] ──► [ SINK Reached ] │ │ │ │ IAST AGENT (Bytecode / AST Sensor): │ │ - Captures: Code Line, File, Stack Trace and Real Payload │ └──────────────────────────────────┬───────────────────────────────────┘ │ (Asynchronous telemetry report) ▼ [ Central IAST Server / Dashboard ] │ [ Confirmed Alert: ZERO False Positive ] ``` --- ## 🔀 IAST Modes: Passive vs. Active The AI must distinguish and apply the correct mode according to pipeline maturity: | Characteristic | Passive IAST | Active IAST | | :--- | :--- | :--- | | **Traffic Source** | Existing functional tests (Playwright, Cypress, Selenium, JUnit, Pytest, manual QA tests). | The agent itself or a coupled DAST scanner generates deliberate attack payloads. | | **Extra Traffic Generation** | **Zero additional requests**. Does not slow down the test suite. | Generates additional traffic focused on the discovered parameters. | | **Impact on the System** | Safe for any staging and homologation environment. | Can corrupt test data with malicious payloads. | | **Main Advantage** | Full transparency for development and QA teams. | Ability to force exploitation of branches that the functional test did not cover. | --- ## 🔬 Runtime Taint Flow Mechanism The IAST agent intercepts four fundamental categories of methods at runtime: ### 1. Sources (Origins of Untrusted Data) - Entry methods that receive data from outside: - Java: `HttpServletRequest.getParameter()`, `request.getHeader()`, `request.getInputStream()`. - Python: `request.form`, `request.args`, `request.json`. - Node.js: `req.body`, `req.query`, `req.headers`. - *Action*: IAST associates a contamination label (*Taint Tag*) with the object reference in memory. ### 2. Propagators (Contamination Propagators) - Operations that transfer contaminated data between strings, data structures, and method calls: - String concatenation (`StringBuilder.append()`, the `+` operator). - String transformations (`toLowerCase()`, `substring()`, `trim()`). - Formatting and serialization (`String.format()`, `JSON.stringify()`, `json.dumps()`). - *Action*: IAST propagates the contamination label to the resulting new object. ### 3. Sanitizers / Filters - Methods that validate or escape input: - SQL escaping (`PreparedStatement.setString()`). - HTML sanitization (`HtmlUtils.htmlEscape()`, `DOMPurify.sanitize()`). - Strict type conversion (`Integer.parseInt()`, `UUID.fromString()`). - *Action*: If the sanitization is valid for the context of the corresponding sink, IAST removes the contamination label (*Untaint*). ### 4. Sinks (Critical Sinks) - Functions that perform sensitive operations on the system: - SQL: `Statement.execute(sql)`. - OS Command: `Runtime.exec(cmd)`, `subprocess.Popen(cmd)`. - File I/O: `new FileInputStream(path)`, `fs.readFile(path)`. - SSRF: `URL.openConnection()`, `requests.get()`. - *Action*: If the data that reached the sink carries an active (unsanitized) contamination label, IAST records a **confirmed real vulnerability**. --- ## 📊 Comparative Matrix: SAST vs. DAST vs. IAST | Metric / Criterion | SAST (Static) | DAST (Dynamic) | IAST (Interactive) | | :--- | :--- | :--- | :--- | | **Analysis Point** | Source code / binary without execution. | Running application (black-box). | Running application with internal instrumentation. | | **Exact Source Line** | ✅ Yes | ❌ No (only URL and parameter) | ✅ Yes (full stack trace) | | **False-Positive Rate** | ⚠️ High (no execution context) | ⚠️ Medium/High (in blind injections) | 🟢 **Extremely Low / Zero** | | **Code Coverage** | 100% of declared lines. | Limited to what the crawler finds. | Limited to the flows exercised in the tests. | | **Execution Time** | Minutes to hours (heavy AST analysis). | Hours (massive route fuzzing). | **Real time** (alongside functional tests). | | **Impact on CI/CD** | Runs in a dedicated stage. | Runs in a dedicated (heavy) stage. | **Zero time overhead** (runs with the QA tests). | --- ## 🔄 IAST Implementation Protocol in CI/CD When structuring IAST in the engineering pipeline: 1. **Deploy the Central IAST Server**: - Start the rule-management and graph-analysis server (for example, DongTai Server). 2. **Instrument the Application in the Test Job**: - Attach the IAST agent at test service startup (for example, `JAVA_TOOL_OPTIONS="-javaagent:/opt/iast-agent.jar"`). 3. **Run the Existing Test Suite**: - Run unit tests, integration tests, API tests (Newman/Postman), and E2E tests (Playwright/Cypress). 4. **Automatic Vulnerability Collection and Triage**: - The IAST server correlates the contamination flows captured during the test battery. 5. **Quality Gate and Pipeline Blocking**: - Query the IAST server API at the end of the functional test run. - Fail the build if vulnerabilities of `CRITICAL` or `HIGH` severity were reached. --- ## 🔗 Integration with Other Skills in the Repository - **[program-dongtai-iast](../../tooling/program-dongtai-iast/SKILL.md)**: Complete guide to configuring and operating the open-source DongTai IAST framework. - **[sast-code-review](../sast-code-review/SKILL.md)**: Complements static analysis by providing dynamic validation of contamination paths. - **[dast-application-testing](../dast-application-testing/SKILL.md)**: Provides the active exploitation traffic for the Active IAST mode. - **[rasp-runtime-protection](../rasp-runtime-protection/SKILL.md)**: Applies the same instrumentation principles for defensive blocking in production. - **[qa-engineer](../../../roles/qa-engineer/SKILL.md)**: Orchestrates the execution of functional test suites coupled to the IAST sensor. ## 🔢 Version Sources Moving release pins in this skill were resolved 2026-09-20: - **OWASP ASVS v5.0.x** (verified) — github.com/OWASP/ASVS tags
GitHubで見る