COPUR/axios-supply-chain-incident-response
GitHub: COPUR/axios-supply-chain-incident-response
针对 axios 供应链投毒事件的零信任应急响应工具包,提供从检测扫描、影响分析到 CI/CD 防护的全流程自动化处置能力。
Stars: 0 | Forks: 0
# Axios 供应链事件应急响应套件
针对涉及以下版本的 axios 供应链事件的零信任响应工具包:
- `axios@1.14.1`
- `axios@0.30.4`
- 恶意依赖 `plain-crypto-js@4.2.1`
本仓库提供:
- 完整的检测扫描以及面向操作的报告输出
- 影响分析(repos、CI/CD、潜在的 secret 泄露)
- 严格的修复操作手册(在不确定的情况下假设已遭到入侵)
- 针对 CI/CD 和运行时操作的预防性防护措施
- 以 Node.js 为核心的工具链,包含 TDD 和覆盖率门禁
## 快速开始
```
npm ci --ignore-scripts
npm run scan -- --roots /path/to/repos --output report.md --json-out report.json
```
输出脱敏处理:
- 报告输出默认经过匿名化/脱敏处理(路径和用户名)。
- 若要禁用脱敏以进行仅限内部的调试,请使用 `--no-anonymize-output`。
扫描器会按以下格式输出报告:
- 第 1 部分:检测结果
- 第 2 部分:风险等级
- 第 3 部分:紧急操作
- 第 4 部分:修复计划
- 第 5 部分:预防措施
JSON 输出还包括:
- `affected_basis`(`direct_compromise_detected`、`assumed_compromise_due_to_uncertainty`、`no_compromise_indicators`)
- `direct_compromise_evidence`
- `uncertainty_evidence`
## 仓库结构
```
.
├── src/lib/
│ ├── anonymize.js
│ ├── guardrail-core.js
│ ├── incident-scan-core.js
│ ├── lockfile-utils.js
│ ├── matrix-core.js
│ └── security-events.js
├── scripts/
│ ├── incident-scan.js
│ ├── guardrail.js
│ ├── run-guardrail-matrix.js
│ └── publish-guardrail-event.js
├── agent/
│ └── security-agent.js
├── policies/
│ └── guardrail-policy.json
├── docs/
│ ├── approach.md
│ └── remediation-runbook.md
├── k8s/
│ └── security-agent-deployment.yaml
├── tests/
│ └── *.test.js
└── .github/workflows/
├── dependency-guardrail.yml
├── guardrail-matrix.yml
└── node-tests.yml
```
## 检测范围
检测器会检查:
- 是否已安装 `axios` 以及存在哪些版本
- 是否有任何项目使用了 `axios@1.14.1` 或 `axios@0.30.4`
- 是否存在 `node_modules/plain-crypto-js`
- 系统级指标:
- Linux:`/tmp/ld.py`
- macOS:`/Library/Caches/com.apple.act.mond`
- Windows:`%PROGRAMDATA%\\wt.exe`
## CI 防护措施
```
npm run guardrail
```
行为:
- 黑名单包/版本 -> 阻断(非零退出码)
- 极新的包(< 策略阈值)-> 隔离
- 其他 -> 放行
## 多仓库 Lockfile 防护措施
使用一条命令运行针对每个 lockfile 的防护检查:
```
npm run guardrail:matrix -- \
--roots /path/to/repos \
--output-dir guardrail-matrix-output \
--policy-file policies/guardrail-policy.json \
--denylist-only \
--max-workers 4
```
启用缓存和时效检查的完整模式:
```
npm run guardrail:matrix -- \
--roots /path/to/repos \
--output-dir guardrail-matrix-output \
--policy-file policies/guardrail-policy.json \
--cache-file /tmp/guardrail-npm-metadata-cache.json \
--age-scope direct
```
产物:
- `summary.csv`
- `summary.json`
- `results/*.json`(每个 lockfile 一个)
产物脱敏处理:
- 矩阵输出默认经过匿名化/脱敏处理。
- 结果文件名为路径安全的哈希值(无宿主路径泄露)。
- 若要禁用脱敏以进行仅限内部的调试,请使用 `--no-anonymize-output`。
性能提示:
- 如果对每个传递依赖评估时效策略,`full` 模式在处理大型 lockfile 时可能会产生高昂开销。
- 请使用 `--age-scope direct` 以实现实际的 CI 执行,同时保留对所有已解析包的黑名单检查。
- 请使用 `--max-workers` 来并行化 lockfile 检查,从而减少大型 mono-repo 集群的实际运行耗时。
## 安全事件流水线
发布防护事件:
```
npm run publish:guardrail-event
```
运行事件代理:
```
npm run agent:start
```
## 测试 (TDD)
```
npm test
```
全局语句、行和分支的覆盖率门禁被强制要求达到 `95%+`。
## 可观测性、自愈与自我改进
启用结构化的运行时遥测和可选的自愈功能:
```
OBSERVABILITY_EVENTS_FILE=.observability/events.ndjson \
OBSERVABILITY_FORMAT=json \
OBSERVABILITY_LEVEL=info \
OBSERVABILITY_SELF_HEAL=1 \
npm run guardrail:matrix -- --roots /path/to/repos --denylist-only --max-workers 4
```
从捕获的运行时事件生成改进建议:
```
npm run observability:insights -- --events-file .observability/events.ndjson --output observability-insights.md
```
强制执行严格的遥测门禁(当事件缺失/格式错误或生命周期事件不存在时失败):
```
npm run observability:verify -- \
--events-file .observability/events.ndjson \
--expected-tools guardrail_matrix \
--min-events 2
```
CI 防护工作流会强制执行此门禁,并将 `.observability/` 作为产物上传以用于事件取证。
## 安全原则
- 依赖安装即代码执行。
- 宁可误报,不可漏报。
- 若存在不确定性,则假设已遭到入侵。
- 切勿仅依赖 `node_modules` 检查。
## 免责声明
本套件属于事件响应自动化支持工具,不能替代专业的取证调查。
标签:Axios, Chrome Headless, CI/CD安全, CISA项目, DevSecOps, GNU通用公共许可证, JSONLines, Kubernetes安全, Llama, Lockfile解析, MITM代理, Node.js, NPM安全, SBOM, StruQ, TDD, Web截图, 上游代理, 子域名突变, 安全策略, 安全运行手册, 容器安全, 密钥泄露检测, 库, 应急响应, 恶意依赖, 提示词设计, 暗色界面, 硬件无关, 网络安全, 自定义脚本, 覆盖门槛, 跌倒检测, 软件物料清单, 隐私保护, 零信任, 风险分析