From security
Audit supply chain security posture of a project. Checks lockfile integrity, dependency pinning, typosquatting risks, GitHub Actions SHA pinning, and vulnerability scanning configuration. Use when reviewing dependencies, onboarding a new project, or after adding new packages. Triggers: "supply chain check", "dependency audit", "security review", "サプライチェーンチェック", "依存関係の監査"
npx claudepluginhub tqer39/claude-code-marketplace --plugin securityThis skill uses the workspace's default tool permissions.
プロジェクトのサプライチェーンセキュリティを監査し、改善提案を行う。
Writes articles, guides, blog posts, tutorials, and newsletters in a voice from examples or brand guidance. For polished long-form content with structure, pacing, and credibility.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Executes repo commands, inspects git state, debugs CI failures, and pushes narrow fixes with exact proof of execution and verification. Use for command runs, repo checks, or evidence-based changes.
プロジェクトのサプライチェーンセキュリティを監査し、改善提案を行う。
| 事例 | 攻撃手法 | 教訓 |
|---|---|---|
| axios (npm) | axio, axois 等のタイポスクワットで env 変数を窃取 | 依存の追加時に名前検証が必須 |
| trivy (GitHub Actions) | trivy-action@master のタグ書き換えによる改竄 | Actions は full SHA でピン留めすべき |
| LiteLLM (PyPI) | litelm タイポスクワットで post-install リバースシェル | pip-audit + hash pinning が有効 |
プロジェクトルートをスキャンし、使用技術を特定する:
package.json / pnpm-lock.yaml / package-lock.json / yarn.lock → Node.jspyproject.toml / uv.lock / requirements.txt / Pipfile.lock → Pythongo.mod / go.sum → Go.github/workflows/*.yml → GitHub Actionsrenovate.json / renovate.json5 / .renovaterc → Renovate確認項目:
git ls-files で確認)npm ci または --frozen-lockfilepnpm install --frozen-lockfileuv sync --frozen--require-hashes判定:
Node.js:
package.json の dependencies で ^ / ~ を使用しているものを列挙devDependencies は ^ を許容(ただし警告は出す)Python:
pyproject.toml / requirements.txt でバージョン未固定のものを列挙--require-hashes または uv.lock)判定:
新規追加された依存パッケージについて、以下をチェック:
axios → axio, axois, axios-httpslitellm → litelm, lite-llmrequests → request, requesteslodash → lodas, lodashsexpress → expres, expresss手順:
git diff で lockfile の差分から新規追加パッケージを抽出.github/workflows/*.yml を走査し:
uses: でタグ参照しているものを全て列挙(例: actions/checkout@v4)actions/checkout@<40-char-sha>)actions/checkout@abc123 # v4)判定:
actions/*)がタグ参照 → MEDIUM改善提案:
helpers:pinGitHubActionDigests の追加を提案CI 設定ファイル(.github/workflows/*.yml)で以下の存在を確認:
npm audit / pnpm audit / yarn auditpip-audit / uv pip audittrivy / grype / snyk判定:
npm audit signatures の CI 組み込み有無判定:
# Supply Chain Security Audit Report
## Summary
- Critical: N件
- High: N件
- Medium: N件
- Low: N件
## Findings
### [CRITICAL] Lockfile が未コミット
- **対象:** package-lock.json
- **リスク:** CI と開発環境で異なるバージョンがインストールされる可能性
- **対策:** `git add package-lock.json` でコミットする
### [HIGH] GitHub Actions がタグ参照
- **対象:** .github/workflows/ci.yml
- **行:** `uses: aquasecurity/trivy-action@master`
- **リスク:** タグ書き換えによるコード注入(trivy 事例参照)
- **対策:**
```yaml
uses: aquasecurity/trivy-action@<SHA> # master
```
...(以下同様)
--fix オプション付きで呼ばれた場合も、変更内容をユーザーに提示して確認を取る