Sploitus

Exploit for supply-chain-guard

kitploit · 2026-08-25

Exploit Code

MARKDOWN628 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-ERIS-THS-SUPPLY-CHAIN-GUARD
# Supply Chain Guard (SCG)

> **npm/yarn および Python (pip/poetry/uv) サプラむチェヌン攻撃向けむンシデント察応ツヌルキット — 無料、ロヌカル、䟝存関係䞍芁。**

SCG は、カバレッゞで商甚ツヌルず競合するスキャン゚ンゞンでは**ありたせん** 。これは Claude Code スキルおよびスタンドアロンシェルツヌルキットであり、3぀のこずをうたく行いたす: **(1)** 特定のむンシデントが発生した際に、高速で再珟可胜な _初動察応_ を提䟛する「今すぐ自分のマシンが圱響を受けおいるか」、**(2)** 既存の OSS スキャナヌ`npm audit`、`osv-scanner`、`pip-audit`を1぀の構造化されたパスにたずめ調敎する、**(3)** 特に AI 開発環境向けに、ハヌドに埗られた _蚭蚈衛生_ の教蚓を文曞化する — これは䞀般的なスキャナヌではカバヌされない内容です。

これは、以䞋を含む実際のむンシデント䞭に構築および匷化されたした:

  * **some-email@example.com RAT むンシデント (2026-03-31)** — npm メンテナアカりント乗っ取り (UNC1069/DPRK-APT) により、ファントム䟝存関係 RAT が泚入されたした
  * **Starlette BadHost (CVE-2026-48710, 2026-05-22)** — Python HTTP フレヌムワヌクの Host ヘッダヌパスむンゞェクション → SSRF/RCE。FastAPI、vLLM、LiteLLM、そしおより広範な AI ゚ヌゞェント゚コシステムに圱響を䞎えたす



## v4 の新機胜 (2026-05-27)

  * **Python サプラむチェヌンスキャン** — `scripts/project-scan-py.sh` で pip-audit / osv-scanner / CVE フラグ付きバヌゞョン怜出を実行
  * **CVE フラグ付きバヌゞョンレむダヌ (L3-CVE)** — 厳密な semver 仕様評䟡により、既知の脆匱なバヌゞョンの正芏パッケヌゞを远跡 (BadHost CVE-2026-48710 を暙準装備)
  * **蚭蚈衛生ガむドラむン** — stdio 優先の MCP トランスポヌト、バヌゞョン固定芏埋、GCP デフォルト Compute SA の匷化 (SKILL.md §D.7 DesignHygiene を参照)
  * **Guild-CLI Devil レンズ統合** — guild-cli ワヌクフロヌから SCG を Devil レンズずしお呌び出し可胜 (以䞋の「Guild-CLI Devil 統合」を参照)



* * *

## 目次

  * なぜこれが存圚するのか
  * SCG が既存ツヌルず異なる点
  * SCG の本質そうでないもの
  * アヌキテクチャ
  * クむックスタヌト
  * スキャンモヌド
  * 脅嚁むンテリゞェンス
  * Devil Gate フレヌムワヌク
  * スタンドアロンスクリプト
  * CI/CD 統合
  * 察応プレむブック
  * IOC リファレンス
  * 免責事項
  * 制限事項
  * 完党性怜蚌
  * ラむセンス



* * *

## なぜこれが存圚するのか

2026幎3月31日、広く利甚されおいる `axios` npm パッケヌゞ (v1.14.1 および v0.30.4) が、**UNC1069/DPRK-APT** Google Threat Intelligence Group によるに起因するメンテナアカりントの乗っ取りにより䟵害されたした。この攻撃は、ファントム䟝存関係 (`some-email@example.com`) を泚入し、`postinstall` スクリプトを介しおクロスプラットフォヌム RAT を展開したした。これは正圓なシステムプロセスに停装されおいたした。

**Supply Chain Guard (SCG)** は、このむンシデント䞭に以䞋を提䟛するために構築されたした:

  1. **即時怜出** — 今すぐ自分のマシンやプロゞェクトが圱響を受けおいるか
  2. **構造化評䟡** — 深刻床はブラスト半埄は
  3. **ガむド付き察応** — 安党確認付きのステップバむステップの修埩手順
  4. **継続的防埡** — 再発防止のための8ゲヌト怜蚌フレヌムワヌク



* * *

## SCG が既存ツヌルず異なる点

SCG は既存のセキュリティツヌルの代替ではありたせん。耇数の怜出レむダヌを構造化された怜蚌フレヌムワヌクずガむド付き修埩ず組み合わせおおり、**アクティブなむンシデント䞭** や、既存のツヌルず䜵甚した定期的なチェックずしお䜿甚するように蚭蚈されおいたす。

**SCG を䜿甚すべき堎合:**

  * サプラむチェヌンむンシデントが発生し、今すぐ自分のマシンずプロゞェクトを確認する必芁がある堎合
  * 䟵害が完党に察凊されたこずを確認するための、構造化された繰り返し可胜なプロセスが必芁な堎合
  * SaaS 䟝存関係なしでロヌカルで実行される軜量チェックが必芁な堎合



**他のものを䜿甚すべき堎合:**

  * 継続的なリアルタむムモニタリングが必芁 → Snyk、Socket.dev
  * ラむセンスコンプラむアンススキャンが必芁 → Snyk、FOSSA
  * npm/yarn を超えたカバレッゞが必芁 → osv-scannerpip、cargo、go などをサポヌト



* * *

## SCG の本質そうでないもの

私たちは、限界に぀いお正盎でありたいず思いたす。SCG は3぀のものです:

  1. **コヌドずしおのむンシデント察応プレむブック。** 名前付きむンシデントaxios RAT、Shai-Hulud、新しい CVEが発生したずき、SCG は「圱響を受けおいるか、もしそうならどうするか」を実行可胜なチェックリストに倉換したす — 8぀の怜蚌ゲヌト、重芁床マトリックス、そしお _すべおの砎壊的行動_ に明瀺的な `[y/N]` 確認を必芁ずする修埩スクリプト。これが SCG の䞻な䟡倀です: 商甚モニタリングツヌルでは察応できない、高速で構造化された _初動察応_ です。

  2. **既存の OSS スキャナヌのオヌケストレヌタヌ。** L1/L2 レむダヌは `npm audit` / `pip-audit` / `osv-scanner` をラップしたす。生の怜出力のほずんどは借甚したものです。SCG の貢献は、それらを1぀のパスにバンドルし、レゞストリツヌルでは行わないファむルシステム/IOC チェックを远加し、出力を読みやすく実甚的にするこずです。

  3. **実際の蚭蚈衛生の教蚓の文曞化** SKILL.md §D.7— 私たちが実際に遭遇たたは調査した事項: MCP トランスポヌトの遞択、GCP デフォルト SA の匷化、むンストヌル時実行ベクトル、および AI 開発ツヌルを暙的ずする脅嚁Shai-Hulud が `.claude/settings.json` を読み取る、SANDWORM_MODE が MCP 蚭定を汚染する。このニッチ — AI 支揎開発のためのサプラむチェヌン衛生 — は、SCG が真に差別化されおいる分野です。




### SCG が意図的にそうでないもの

  * **カバレッゞ競合盞手ではありたせん。** 脅嚁デヌタベヌス`SKILL.md` D.2、L3 静的リストは**手動でメンテナンス** されおいたす — 私たちが読んだむンシデントを保持しおおり、ラむブの商甚フィヌドが远跡する数䞇の悪意のあるパッケヌゞではありたせん。手動キュレヌションリストは、新しい脅嚁の実際のペヌスに _぀いおいくこずはできたせん_ 。私たちはそれを装いたせん。
  * **行動分析゚ンゞンではありたせん。** SCG は既知のパタヌンにマッチしたす。難読化されたペむロヌドや、公開アドバむザリのない真のれロデむは、蚭蚈䞊範囲倖です。
  * **継続的モニタリングではありたせん。** むンシデント䞭たたは定期的なスむヌプずしお実行するポむントむンタむムチェックであり、䟝存関係グラフを監芖するサヌビスではありたせん。



### SCG の今埌

手動キュレヌションデヌタベヌスはカバレッゞで勝おないため、私たちは意図的に SCG が _眮き換えにくい_ 分野に投資しおいたす。垞に負ける分野ではありたせん:

  * **より深いむンシデント察応プレむブック** (#1) — より良い初動察応の人間工孊、より倚くのむンシデントテンプレヌト
  * **AI 開発環境の衛生** (#3) — Claude Code / Cursor / MCP サヌバヌおよび類䌌ツヌルを暙的ずする脅嚁の怜出ずガむダンス。商甚サプラむチェヌンスキャナヌはほずんどこれに察応しおいたせん



静的脅嚁 DB (#2) は泚目すべきむンシデントが発生したずきに曎新され続けたすが、これは競争しようずする方向では**ありたせん** 。

* * *

## アヌキテクチャ

SCG は **ドメむン駆動蚭蚈 (DDD)** アヌキテクチャに埓い、3぀のレむダヌで構成されおいたす:``` +-----------------------------------------------------+ | Domain Layer | | Threat models, known threats DB, severity matrix, | | Devil Gate definitions | +-----------------------------------------------------+ | Application Layer | | Use cases, scan pipeline, response protocols, | | Devil execution loop | +-----------------------------------------------------+ | Infrastructure Layer | | Scanner scripts (npm audit, OSV, static list, | | IOC filesystem, network, lockfile integrity) | +-----------------------------------------------------+

root@kitploit:~
    
    
    ### スキャンパむプラむン
    
    同じ5局パむプラむンが䞡方の゚コシステムに適甚され、各局で゚コシステム固有のスキャナヌが䜿甚されたす```
    L1 ──→ L2 ──→ L3 ──→ IOC ──→ LF ──→ assess(SeverityMatrix) ──→ VERDICT
    

䞡方のパむプラむンは同じSeverityMatrixずDevil Gate Frameworkにフィヌドしたす。

* * *

## クむックスタヌト

### Claude Codeスキルずしお

`SKILL.md` を Claude Code スキルディレクトリにコピヌしおください:```bash

# Global (all projects)

cp SKILL.md ~/.claude/skills/supply-chain-guard.md

# Or project-specific

mkdir -p .claude/skills cp SKILL.md .claude/skills/supply-chain-guard.md

root@kitploit:~
    
    
    その埌、Claude Code で呌び出しおください```
    > /supply-chain-guard
    > "Check this project for supply chain issues"
    > "Is my machine affected by the axios compromise?"
    

### スタンドアロンスクリプトずしお```bash

# Environment-wide scan (IOC + all projects) [READ-ONLY]

./scripts/env-scan.sh

# npm/yarn project scan (requires package.json in cwd) [READ-ONLY]

./scripts/project-scan.sh

# Python project scan (requires pyproject.toml / requirements*.txt / poetry.lock / uv.lock in cwd) [READ-ONLY, added in v4]

./scripts/project-scan-py.sh

# IOC-only scan (filesystem + network artifacts) [READ-ONLY]

./scripts/ioc-scan.sh

# Remediation (interactive, every action requires confirmation)

./scripts/respond.sh --critical # Full RAT cleanup (npm + Python) ./scripts/respond.sh --high axios 1.14.0 # Pin npm package to safe version ./scripts/respond.sh --high urllib3 2.7.0 # Pin Python package (auto-detects pip/poetry/uv)

root@kitploit:~
    
    
    > **Python の修埩は保守的に蚭蚈されおいたす。** npm の堎合、`--high` は自動的にオヌバヌラむドを適甚したす。Python の堎合は *ガむド* したす。぀たり、マネヌゞャヌpip/poetry/uvを怜出し、正確なピン留めコマンドを衚瀺し、安党なステップロックファむルの倉曎や venv の再構築コマンドは実行せず、衚瀺のみのみを適甚したす。これにより、断片化された Python パッケヌゞング゚コシステム党䜓で誀怜出が匕き金ずなり、副䜜甚ずしお匷制再むンストヌルが発生するのを防ぎたす。
    
    polyglot リポゞトリnpm + Pythonの堎合、関連するサブディレクトリから䞡方のプロゞェクトスキャナを順次実行したす。
    
    > **安党性蚭蚈:** すべおのスキャンスクリプトは厳密に読み取り専甚です。決しお倉曎、削陀、むンストヌルは行いたせん。修埩スクリプト`respond.sh`のみが砎壊的操䜜を実行し、**すべおのアクションには明瀺的な `[y/N]` の確認が必芁**で、デフォルトは NO です。
    
    ---
    
    ## スキャンモヌド
    
    ### 環境スキャン`env_scan`
    
    開発マシン党䜓を䟵害の兆候に぀いおスキャンしたす。
    
    | チェック項目 | 説明 |
    |-------|-------------|
    | **IOC: ファむルシステム** | RAT バむナリ、氞続化機構、ステヌゞングファむル |
    | **IOC: ネットワヌク** | アクティブな C2 接続IP + ドメむン |
    | **IOC: プロセス** | 実行䞭の悪意のあるプロセス |
    | **プロゞェクト暪断** | すべおの `package-lock.json` ファむルを䟵害バヌゞョンに぀いおスキャン |
    | **悪意のあるパッケヌゞ** | 既知の悪意のあるパッケヌゞ名がロックファむル内に存圚するか |
    
    **トリガヌ:** "この PC", "環境チェック", "マシン党䜓"
    
    ### プロゞェクトスキャン — npm/yarn`project_scan`
    
    単䞀の npm/yarn プロゞェクトの詳现スキャン。`package.json` が含たれるディレクトリから実行したす。
    
    | å±€ | スキャナ | 説明 |
    |-------|---------|-------------|
    | **L1** | `npm audit` | npm レゞストリ経由の既知の脆匱性 |
    | **L2** | `osv-scanner` / OSV.dev API | Google のオヌプン゜ヌス脆匱性デヌタベヌス |
    | **L3** | 静的リスト | ハヌドコヌドされた既知の悪意のあるパッケヌゞチェック |
    | **IOC** | ファむルシステム + ネットワヌク | RAT アヌティファクト怜出 |
    | **LF** | ロックファむル敎合性 | `npm ci --dry-run` + 敎合性ハッシュ数 |
    
    **トリガヌ:** "このプロゞェクト", "npm audit"、たたはカレントディレクトリに `package.json` が存圚する
    
    ### プロゞェクトスキャン — Python`project_scan_py`、v4 で远加
    
    単䞀の Python プロゞェクトの詳现スキャン。`pyproject.toml`、`requirements*.txt`、`poetry.lock`、たたは `uv.lock` が含たれるディレクトリから実行したす。
    
    | å±€ | スキャナ | 説明 |
    |-------|---------|-------------|
    | **L1** | `pip-audit` | PyPI Advisory DB 経由の既知の脆匱性オプション — 未むンストヌルの堎合は SKIP、`pip install pip-audit` 掚奚 |
    | **L2** | `osv-scanner` | Google のオヌプン゜ヌス脆匱性デヌタベヌス、`uv.lock` / `poetry.lock` / `requirements*.txt` に察しおオプション — 未むンストヌルの堎合は SKIP |
    | **L3-MAL** | 静的悪意リスト`_L3_LIST` | 既知の乗っ取られた / タむポスクワッティングパッケヌゞ名。PEP 621 リスト、Poetry むンラむン、requirements 圢匏の宣蚀に䞀臎[PR #4](https://github.com/eris-ths/supply-chain-guard/pull/4) 参照。ヒットした堎合は FAIL |
    | **L3-CVE** | 静的 CVE フラグ付きバヌゞョンリスト`_L3_CVE_LIST` | 正芏パッケヌゞの既知の脆匱バヌゞョン䟋`starlette<1.0.1` for [BadHost CVE-2026-48710](https://cryptobriefing.com/starlette-badhost-vulnerability-ai-agents/)。Python の `packaging` ラむブラリによる厳密なセマバヌ評䟡。確認された䞀臎で FAIL。パッケヌゞが宣蚀されおいるがロックファむルがない堎合は譊告バヌゞョン評䟡䞍可 |
    | **IOC** | ファむルシステム + プロセス | Python 版アヌティファクトチェック䞍正なスクリプト、䞍審なプロセス |
    | **LF** | ロックファむル敎合性 | `uv.lock` / `poetry.lock` / `requirements*.txt` が正垞にパヌスされ、固定バヌゞョンが含たれおいるこずを確認 |
    
    **トリガヌ:** "このプロゞェクト" + Python ファむルが存圚する、たたはカレントディレクトリに `pyproject.toml` / `requirements*.txt` / `poetry.lock` / `uv.lock` のいずれかが存圚する
    
    > **䟝存関係に぀いお:** L1`pip-audit`および L2`osv-scanner`は、それぞれの CLI が存圚しない堎合、ヒントず共に正垞に SKIP したす。L3 は垞時皌働する局であり、倖郚ツヌルは䞍芁ですが、正確な L3-CVE 評䟡には `pip install packaging` が必芁です。
    
    ---
    
    ## 脅嚁むンテリゞェンス
    
    ### 既知脅嚁デヌタベヌス
    
    | ID | 日付 | パッケヌゞ | 脅嚁アクタヌ | ベクタヌ |
    |----|------|---------|-------------|--------|
    | **T001** | 2026-03-31 | `some-email@example.com`, `some-email@example.com` | UNC1069/DPRK-APT | メンテナ乗っ取り → ファントム䟝存関係 → RAT |
    | **T002** | 2018-11 | `some-email@example.com` | 䞍明 | 䟝存関係むンゞェクション → 暗号資産窃取 |
    | **T003** | 進行䞭 | `crossenv`, `loadsh`, `crypto-js-esm` | 各皮 | タむポスクワッティング → postinstall デヌタ流出 |
    
    ### T001 キルチェヌンaxios RAT```
    Credential theft → npm publish (bypass CI) → Inject phantom dep (plain-crypto-js)
        → postinstall exec → RAT drop → C2 beacon (sfrclak.com:8000) → Persist
    

### 安党なバヌゞョン

パッケヌゞ| 安党| 䟵害枈み  
---|---|---  
axios (latest)| `1.14.0` (正確) たたは `>=1.14.2`| `1.14.1`  
axios (レガシヌ)| `0.30.3` (正確)| `0.30.4`  
  
### 勧告ID

  * GHSA-fw8c-xr5c-95f9
  * MAL-2026-2306



* * *

## Devil Gate Framework

SCGは、**8ゲヌト怜蚌フレヌムワヌク** を䜿甚しおおり、4぀のカテゎリに分類され、収束ルヌプを持぀シリアルチェヌンずしお実行されたす。

### ゲヌト

### チェヌン実行```

S1: Dependency (G1+G2) → S2: Runtime (G3+G4) → S3: Integrity (G5+G6) → S4: Environment (G7+G8) → Any fail? → Fix → Re-run entire chain → All pass? → "No concerns" → Done → 3 rounds without convergence? → Escalate to user

root@kitploit:~
    
    
    ### 重倧床マトリクス
    
    | レベル | 条件 | アクション |
    |-------|-----------|--------|
    | **重倧** | RATアヌティファクトが怜出された、たたは悪意のあるパッケヌゞがむンストヌルされおいる | ネットワヌク隔離 → プロセス匷制終了 → 氞続化削陀 → 再むンストヌル |
    | **高** | 䟵害されたバヌゞョンが䜿甚䞭 | 安党なバヌゞョンを固定 → 䞊曞き → `npm ci` → 怜蚌 |
    | **äž­** | 疑わしいpostinstallスクリプト | 手動レビュヌ → ホワむトリストに远加たたは削陀 |
    | **䜎** | ロックファむルのドリフト | `npm ci` で再同期 |
    | **クリア** | すべおのチェックに合栌 | アクション䞍芁 |
    
    > **安党性:** 重倧/高の応答は砎壊的な操䜜を含みたす。SCGは垞に調査結果を提瀺し、修埩を実行する前に明瀺的なナヌザヌ確認を求めたす。
    
    ---
    
    ## スタンドアロンスクリプト
    
    ### `scripts/env-scan.sh`
    
    完党な環境スキャン。IOCアヌティファクトをチェックし、`$HOME`蚭定可胜以䞋のすべおのロックファむルをスキャンし、䟵害されたパッケヌゞを報告したす。```bash
    ./scripts/env-scan.sh [scan_root_dir]
    # Default: $HOME
    

### `scripts/project-scan.sh`

プロゞェクトレベルのスキャン。`package.json`を含むディレクトリから実行したす。```bash cd my-project /path/to/scripts/project-scan.sh

root@kitploit:~
    
    
    ### `scripts/ioc-scan.sh`
    
    IOCのみのスキャン。既知のC2むンゞケヌタヌに察しお、ファむルシステムのアヌティファクト、実行䞭のプロセス、ネットワヌク接続をチェックしたす。クロスプラットフォヌムmacOS/Linux/Windows、PowerShell経由。```bash
    ./scripts/ioc-scan.sh
    

### `scripts/respond.sh`

察話的な修埩。 **すべおの砎壊的な操䜜には、`[y/N]` の確認が必芁ですデフォルトNO。**```bash

# CRITICAL: Full RAT cleanup (kill → remove → reinstall)

./scripts/respond.sh --critical

# HIGH: Pin compromised package to safe version

./scripts/respond.sh --high axios 1.14.0 # npm ./scripts/respond.sh --high event-stream 3.3.5 # npm ./scripts/respond.sh --high urllib3 2.7.0 # python (pip/poetry/uv auto-detected)

root@kitploit:~
    
    
    `--critical`モヌドの手順
    1. ネットワヌク隔離`/etc/hosts` 経由でC2ドメむンをブロック
    2. RATプロセスを匷制終了
    3. 氞続化の陀去LaunchAgents / crontab / スケゞュヌルタスク
    4. `node_modules` ずロックファむルを削陀し、npmキャッシュをクリア
       - **4bPython** pipキャッシュを消去安党、自動venv再構築は手動手順ずしお衚瀺
    5. 䟝存関係の再むンストヌル
    6. 確認スキャンのプロンプト`project-scan.sh` および/たたは `project-scan-py.sh`
    
    各ステップは、アクションが実際に必芁かどうかを確認し䟋RATプロセスが実行されおいない堎合は「匷制終了」をスキップ、確認を求める前に実行される内容を正確に衚瀺したす。
    
    **HIGH**モヌドでは、npmは自動的にオヌバヌラむドを適甚したすPythonはガむドされたすマネヌゞャヌを怜出→pinコマンドを衚瀺→安党なステップのみ適甚。Pythonの修埩に関する泚意に぀いおは、[Quick Start](#quick-start)を参照しおください。
    
    ---
    
    ## CI/CD統合
    
    ### GitHub Actions```yaml
    name: Supply Chain Guard
    on:
      pull_request:
        paths:
          - 'package.json'
          - 'package-lock.json'
          - 'yarn.lock'
    
    jobs:
      scg-scan:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v4
    
          - name: Setup Node.js
            uses: actions/setup-node@v4
            with:
              node-version: '20'
    
          - name: Install dependencies (hardened)
            run: npm ci --ignore-scripts
    
          - name: Run SCG project scan
            run: |
              chmod +x ./scripts/project-scan.sh
              ./scripts/project-scan.sh
    
          - name: Run IOC scan
            run: |
              chmod +x ./scripts/ioc-scan.sh
              ./scripts/ioc-scan.sh
    

### 堅牢化の掚奚事項```bash

# Always use in CI:

npm ci --ignore-scripts # Block postinstall execution

# npm ci already enforces lockfile integrity by design (errors on mismatch)

# Yarn equivalent:

yarn install --frozen-lockfile --ignore-scripts

root@kitploit:~
    
    
    > **アクションはタグではなくSHAで固定するこず。** 䞊蚘の䟋では可読性のために `actions/checkout@v4` を䜿甚しおいたすが、タグは倉曎される可胜性がありたす。本番環境では、アクションのサプラむチェヌン攻撃を防ぐために、完党なコミットSHAで固定しおください
    > ```yaml
    > - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683  # v4.2.2
    > - uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af  # v4.1.0
    > ```
    
    ---
    
    ## 察応プレむブック
    
    ### CRITICALRAT怜出の堎合
    
    > **パニックにならないでください。** 以䞋の手順を順番に実行しおください。各ステップでは明瀺的な確認が必芁です。
    
    1. **ネットワヌク分離** — `/etc/hosts` でC2ドメむンをブロック
    2. **プロセスの匷制終了** — RATプロセスを終了 (`com.apple.act.mond`, `ld.py`, `wt.exe`)
    3. **氞続化の削陀** — LaunchAgents、crontab、スケゞュヌルタスクを削陀
    4. **npmのクリヌン** — `node_modules` ず `package-lock.json` を削陀し、npmキャッシュをクリア
    5. **再むンストヌル** — 新芏 `npm install && npm ci`
    6. **再スキャン** — パむプラむン党䜓を再実行し、CLEARを期埅
    
    ### HIGH䟵害されたバヌゞョンがむンストヌルされおいるの堎合
    
    1. **respond.shを䜿甚しお安党なバヌゞョンを固定**   ```bash
       ./scripts/respond.sh --high axios 1.14.0
    

これは、`overrides` (npm) たたは `resolutions` (yarn) を package.json に远加し、再むンストヌルを行い、確認を求めたす。

  2. **手動で** `package.json` 内で: ```json { "overrides": { "axios": "1.14.0" } } 

root@kitploit:~




Yarn: `{ "resolutions": { "axios": "1.14.0" } }`

  3. **再むンストヌル** : `npm ci`
  4. **確認** : スキャンを再実行



* * *

## IOC リファレンス

### ファむルシステム䞊の痕跡

### 氞続化機構  
  
### ネットワヌク指暙

皮類| 倀  
---|---  
C2 ドメむン| `sfrclak.com`  
C2 IP| `142.11.206.73`  
C2 ポヌト| `8000`  
  
### 停装手法

プラットフォヌム| 停装察象  
---|---  
macOS| Apple システムプロセス (`com.apple.act.mond`)  
Windows| Windows Terminal (`ProgramData 内の wt.exe`)  
  
* * *

## 出力圢匏```

SCG ────────────────────────────────── [L1:audit] CLEAR|!!sev [L2:osv] CLEAR|!!vuln-ids [L3:static] CLEAR|!!pkg [IOC:fs] CLEAR|!!C:artifact [IOC:net] CLEAR|!!C:c2 [LF:integ] CLEAR|!!drift ─── Devil Gate(8) ──────────────────── G1:direct_dep G2:transitive G3:rat_fs G4:postinstall G5:lockfile G6:provenance G7:network G8:cicd ─── Devil Chain(R.N) ───────────────── S1:dependency → S2:runtime → S3:integrity → S4:environment ─── Loop ───────────────────────────── R.N → converge|continue [VERDICT] CLEAR|HIGH|CRITICAL ───────────────────────────────────────

root@kitploit:~
    
    
    ---
    
    ## 参考文献
    
    | 出兞 | 説明 |
    |--------|-------------|
    | [Zenn (JP)](https://zenn.dev/gunta/articles/0152eadf05d173) | 日本語による初期報告 |
    | [Elastic Security Labs](https://elastic.co/security-labs/axios-one-rat-to-rule-them-all) | 技術的分析RATの逆アセンブル、C2プロトコル、タむムラむン |
    | [SANS](https://sans.org/blog/axios-npm-supply-chain-compromise-malicious-packages-remote-access-trojan) | ゚ンタヌプラむズIR手順 |
    | [Huntress](https://huntress.com/blog/supply-chain-compromise-axios-npm-package) | YARA眲名 |
    | [Elastic Detections](https://elastic.co/security-labs/axios-supply-chain-compromise-detections) | SIEM怜出ルヌルYARA/osquery/KQL |
    | [Semgrep](https://semgrep.dev/blog/2026/axios-supply-chain-incident-indicators-of-compromise-and-how-to-contain-the-threat/) | 静的解析ルヌル、封じ蟌めガむド |
    | [SOCRadar](https://socradar.io/blog/axios-npm-supply-chain-attack-2026-ciso-guide/) | IOCタむムラむン付きCISOガむド |
    | [Wiz](https://wiz.io/blog/axios-npm-compromised-in-supply-chain-attack) | クラりド圱響分析、コンテナスキャン |
    | [NVD CVE-2026-48710](https://nvd.nist.gov/vuln/detail/CVE-2026-48710) | **䞀次情報** — NVD正芏゚ントリ公開日2026-05-26、CVSS 3.1基本倀6.5 MEDIUM、AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N |
    | [GHSA-86qp-5c8j-p5mr](https://github.com/Kludex/starlette/security/advisories/GHSA-86qp-5c8j-p5mr) | **䞀次情報** — `Kludex/starlette`に関するGitHub Security Advisory公開日2026-05-21「Hostヘッダヌの怜蚌欠劂によりrequest.url.pathが汚染され、パスベヌスのセキュリティチェックをバむパスする」 |
    | [Starlette v1.0.1 release notes](https://github.com/Kludex/starlette/releases/tag/1.0.1) | **䞀次情報** — 修正リリヌス公開日2026-05-21。`starlette>=1.0.1`および掚移的解決のために`fastapi>=0.119`をピン留め |
    | [Starlette BadHost coverage (KuCoin)](https://kucoin.com/news/flash/starlette-vulnerability-exposes-millions-of-ai-agents-to-hackers) | 二次情報 — Python゚コシステムぞの圱響、AI゚ヌゞェント関連の枠組み |
    | [BadHost AI agent analysis (CryptoBriefing)](https://cryptobriefing.com/starlette-badhost-vulnerability-ai-agents/) | 二次情報 — FastAPI / vLLM / LiteLLMの䞋流ぞの圱響枠組み |
    
    ---
    
    ## Guild-CLI Devil 統合
    
    [guild-cli](https://github.com/eris-ths/guild-cli)たたはDevilレンズワヌクフロヌを公開するプロゞェクトを䜿甚しおいる堎合、レビュヌパスの際にSCGをセキュリティレンズの䞀぀ずしお呌び出すこずができたす。
    
    ### 掚奚される呌び出しパタヌン```bash
    # Inside a guild-cli review session, in the project root:
    ~/path/to/supply-chain-guard/scripts/project-scan.sh       # for npm/yarn projects
    ~/path/to/supply-chain-guard/scripts/project-scan-py.sh    # for Python projects
    
    # Capture the scan output as evidence for a judgment:
    SCG_OUTPUT=$(~/path/to/supply-chain-guard/scripts/project-scan.sh 2>&1 || true)
    
    # (a) Record it as a new judgment (fast-track — no prior review needed):
    gate fast-track --from "$USER" \
      --action "SCG supply-chain scan (Devil lense)" \
      --reason "$SCG_OUTPUT"
    
    # (b) Or attach it as the Devil lense on an existing review request <id>:
    gate review <id> --lense devil --verdict concern --note "$SCG_OUTPUT"
    

> Flag notes (verified against guild-cli): `gate review` **requires** an existing `<id>`, `--lense` (guild-cli spells it "lense"), and `--verdict` (`ok` / `concern` / `reject`). It has no `--area` flag. To log a fresh finding with no prior review object, use `gate fast-track` as in (a).

### Why pair SCG with Devil

Devil's Advocate ("壊しにいく") and SCG share the same posture: **assume the worst, scan systematically, then converge**. SCG provides the supply-chain dimension of a Devil pass — what the project's dependencies might be doing behind your back — alongside other lenses (security / correctness / architecture / user / operations).

### Limitations of the Devil pairing

  * SCG runs read-only; the Devil lense won't push fixes. Use `respond.sh` separately when remediation is required (with explicit user confirmation)
  * SCG output may exceed Devil context budgets in large repos; pipe through `tail -50` if needed
  * For polyglot repos, run both `project-scan.sh` and `project-scan-py.sh` and merge findings



* * *

## Disclaimer

SCG is a detection tool, not a security guarantee. Being upfront about what it can and cannot do is part of the design.

**This software is provided "as-is" without warranty of any kind.** By using Supply Chain Guard, you acknowledge and agree to the following:

  * **Not a substitute for professional security.** SCG is a supplementary detection tool, not a comprehensive security solution. It does not replace professional incident response, endpoint detection and response (EDR) software, or security audits.
  * **No guarantee of detection.** A `CLEAR` verdict means no matches were found against the tool's known threat patterns. **It does not mean your system or project is free from compromise.** Novel, unknown, or modified attacks may not be detected.
  * **No guarantee of remediation.** The remediation steps provided (`respond.sh`) address known indicators of specific threats. They may not fully remove all traces of a sophisticated compromise. If you suspect active compromise, engage a professional incident response team.
  * **Use at your own risk.** The authors are not liable for any damages, data loss, or security incidents arising from the use or inability to use this tool. This includes but is not limited to: false negatives (missed detections), false positives (incorrect detections), or unintended consequences of running remediation scripts.
  * **Not legal or compliance advice.** This tool does not satisfy regulatory, compliance, or legal requirements for security scanning. Consult appropriate professionals for compliance needs.



* * *

## Limitations

Understanding what SCG **cannot** do is as important as knowing what it can.

### Detection Boundaries

### Threat Database Freshness

The Known Threats database (`D.2` in SKILL.md) is **manually maintained**. It is not connected to any live threat feed. There is inherent latency between a new supply chain incident being discovered and this database being updated.

  * **Last updated:** 2026-05-27 (v4: Python support, BadHost CVE-2026-48710 added)
  * **Coverage:** 3 npm threat families (T001-T003) + 4 Python hijacked/typosquat entries + 1 Python CVE-flagged version entry (BadHost)
  * **Python coverage scope (v4):** primarily lockfile-based scanning (uv.lock / poetry.lock / requirements.txt). The CVE-flagged version layer is **best-effort** — it only flags packages that match `_L3_CVE_LIST` entries with strict semver-spec evaluation, and depends on `packaging` being installed for accurate version matching



Always cross-reference with live sources such as npm advisories, OSV.dev, and vendor security blogs listed in the References section.

### False Positive Risk

The following IOC paths may, in rare cases, conflict with legitimate software:

IOC Path| Potential False Positive  
---|---  
`/tmp/.npm-cache/`| Legitimate npm caching in non-standard configurations  
`/tmp/ld.py`| Unrelated Python scripts with the same filename  
Process name `wt.exe`| Legitimate Windows Terminal if located in ProgramData  
  
**Always verify IOC findings before running remediation.** The `ioc-scan.sh` script reports findings for human review — it does not take any action. The `respond.sh` script requires explicit confirmation for every destructive action (default: NO) precisely because of this risk.

### Network Scanning Limitations

  * `lsof`-based network checks only detect **currently active** connections. A C2 beacon that connects intermittently may not be active at scan time.
  * DNS cache checks are best-effort and OS-dependent. Cleared caches will not show historical connections.
  * Encrypted or tunneled C2 traffic cannot be detected by port/IP matching alone.



### Scope

  * **npm/yarn and Python (pip/poetry/uv).** Does not cover cargo, go modules, or other package ecosystems.
  * **Known threats only.** This is a pattern-matching tool, not a behavioral analysis engine.
  * **Point-in-time scan.** Results reflect the state at the moment of execution. Continuous monitoring requires repeated execution or integration with CI/CD.



* * *

## Integrity Verification

Verify that your copy of SCG has not been tampered with. Compare these SHA-256 checksums against your local files:

``` 

67ac6216cbe18fdf7050fd267bce4157c016e5c60cd4f84f63b8cf71e80ae3b9 scripts/env-scan.sh da01f8362563b55b1553f923a748f07d24f24522366e0545e6ba0c09801f8e54 scripts/project-scan.sh 77e7ebba6d44ea020e511a49bc2cbc974d01495de40d35e8dfb7fcc93008954b scripts/project-scan-py.sh 82aaa4ed898ce354addc064ccf84cca9a498ef4e90fe58613e1110146577609f scripts/ioc-scan.sh 72ed333838b5584c3b1faf889edc81b0e3195c27396c3b36c62aaebf5f952117 scripts/ioc-scan.ps1 0e6b30e57c959180e22e0ba16f860e9fdc7304045947995084703fb14381d12e scripts/respond.sh a44be79d909058c9d216e7cbc5cca736cf8816a492c8d35a6b90c74c042abf5b SKILL.md

root@kitploit:~
    
    
    <!-- CHECKSUMS-END -->
    
    確認するには:```bash
    shasum -a 256 scripts/*.sh scripts/*.ps1 SKILL.md
    

> **泚蚘:** これらのチェックサムは最新リリヌスに察応しおいたす。ファむルをロヌカルで倉曎した堎合、チェックサムは異なりたす。SCG が曎新されるず、このセクションはコヌドの倉曎ずずもに曎新されたす。

* * *

## ラむセンス

MIT

* * *

**Built byEris** — あなたの䟝存関係が他人の攻撃面になるべきではないからです。