dependency-security
Enforce dependency security scanning and SBOM generation. Use when adding dependencies, reviewing package.json, or during security audits. Covers OWASP dependency check, npm audit, and supply chain security.
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o dependency-security.zip https://jpskill.com/download/18871.zip && unzip -o dependency-security.zip && rm dependency-security.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/18871.zip -OutFile "$d\dependency-security.zip"; Expand-Archive "$d\dependency-security.zip" -DestinationPath $d -Force; ri "$d\dependency-security.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
dependency-security.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
dependency-securityフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
依存関係のセキュリティ
依存関係のセキュリティスキャンとSBOM(Software Bill of Materials)の生成を強制するスキルです。
2025年の状況
OWASP Top 10 2025で「Vulnerable and Outdated Components」がA03に上昇 EUサイバーレジリエンス法:2024年からSBOMの義務化開始 サプライチェーン攻撃の急増:2024年比300%増加
コアルール
| ルール | 状態 | 説明 |
|---|---|---|
| npm auditの合格 | 🔴 必須 | high/criticalの脆弱性が0件であること |
| 依存関係の最新化 | 🟡 推奨 | 主要なセキュリティパッチを適用すること |
| SBOMの生成 | 🟡 推奨 | 依存関係リストを文書化すること |
| lockfileのコミット | 🔴 必須 | 再現可能なビルドを保証すること |
セキュリティ監査
npm audit
# 脆弱性検査
npm audit
# 自動修正(可能な場合)
npm audit fix
# 強制修正(メジャーバージョンアップデートを含む)
npm audit fix --force # ⚠️ 注意: 互換性の問題が発生する可能性があります
# JSON出力(CI用)
npm audit --json
結果の解釈
Severity levels:
- critical: 🔴 直ちに修正必須
- high: 🔴 直ちに修正必須
- moderate: 🟡 早急に修正
- low: 🟢 次のアップデート時に修正
CI統合の例
# GitHub Actions
- name: Security Audit
run: |
npm audit --audit-level=high
if [ $? -ne 0 ]; then
echo "Security vulnerabilities found!"
exit 1
fi
依存関係管理
依存関係の更新確認
# 古いパッケージの確認
npm outdated
# 更新可能なパッケージ
npx npm-check-updates
# 対話型アップデート
npx npm-check-updates -i
安全な更新戦略
# 1. 現在の状態を記録
npm outdated > outdated-$(date +%Y%m%d).txt
# 2. patchバージョンのみ更新(最も安全)
npx npm-check-updates -u --target patch
# 3. minorバージョンを更新
npx npm-check-updates -u --target minor
# 4. テストを実行
npm test
# 5. lockfileをコミット
git add package-lock.json
git commit -m "chore: update dependencies (security patch)"
SBOM (Software Bill of Materials)
SBOMの生成
# CycloneDX形式(推奨)
npx @cyclonedx/cyclonedx-npm --output-file sbom.json
# SPDX形式
npx spdx-sbom-generator
SBOMに含まれる情報
{
"bomFormat": "CycloneDX",
"specVersion": "1.4",
"components": [
{
"name": "react",
"version": "18.2.0",
"purl": "pkg:npm/react@18.2.0",
"licenses": [{ "license": { "id": "MIT" } }]
}
]
}
CIでのSBOM自動生成
# GitHub Actions
- name: Generate SBOM
run: npx @cyclonedx/cyclonedx-npm --output-file sbom.json
- name: Upload SBOM
uses: actions/upload-artifact@v3
with:
name: sbom
path: sbom.json
サプライチェーンセキュリティ
Lockfileのセキュリティ
# package-lock.jsonは常にコミット
git add package-lock.json
# CIで正確なバージョンをインストール
npm ci # (npm installではありません!)
.npmrcセキュリティ設定
# .npmrc
# スクリプトの自動実行を禁止
ignore-scripts=true
# 厳格なSSL
strict-ssl=true
# レジストリの固定
registry=https://registry.npmjs.org/
疑わしいパッケージの確認
# パッケージ情報の確認
npm info <package-name>
# ダウンロード数、メンテナンス状況の確認
npx npm-check <package-name>
# ライセンスの確認
npx license-checker
検出パターン
危険信号
🔴 危険:
- critical/highの脆弱性が存在する
- 1年以上更新されていない依存関係
- deprecatedパッケージの使用
- 不明な出所のパッケージ
🟡 注意:
- moderateの脆弱性
- 6ヶ月以上更新されていない
- ダウンロード数が少ない
検査コマンド
# deprecatedパッケージの確認
npm ls 2>&1 | grep -i deprecated
# ライセンス問題の確認
npx license-checker --failOn "GPL;AGPL"
# 依存関係ツリーの確認
npm ls --depth=0
ワークフロー
1. 新しい依存関係を追加する際
追加前のチェック:
1. npm infoでパッケージ情報を確認
2. ダウンロード数およびメンテナンス状況を確認
3. ライセンスの互換性を確認
4. 代替パッケージを検討
追加後:
1. npm auditを実行
2. lockfileをコミット
2. 定期的なセキュリティチェック(週次/月次)
# 1. 脆弱性検査
npm audit
# 2. 古いパッケージの確認
npm outdated
# 3. SBOMの更新
npx @cyclonedx/cyclonedx-npm --output-file sbom.json
# 4. 結果の記録
3. CI/CDパイプライン
name: Security Check
on: [push, pull_request]
jobs:
security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: npm ci
- name: Security audit
run: npm audit --audit-level=high
- name: Check outdated
run: npm outdated || true
- name: Generate SBOM
run: npx @cyclonedx/cyclonedx-npm --output-file sbom.json
ツール推奨
| ツール | 用途 | コマンド |
|---|---|---|
| npm audit | 脆弱性スキャン | npm audit |
| Snyk | 高度な脆弱性分析 | npx snyk test |
| OWASP Dependency-Check | OWASP標準スキャン | CLIツール |
| CycloneDX | SBOM生成 | npx @cyclonedx/cyclonedx-npm |
| npm-check-updates | 依存関係の更新 | npx ncu |
チェックリスト
新規プロジェクト
- [ ] .npmrcセキュリティ設定の適用
- [ ] package-lock.jsonのコミット
- [ ] npm auditの合格確認
- [ ] CIへのセキュリティ検査の追加
依存関係追加時
- [ ] パッケージの信頼性確認
- [ ] ライセンスの互換性確認
- [ ] npm auditの再実行
- [ ] lockfileのコミット
定期点検
- [ ] npm auditの実行
- [ ] npm outdatedの確認
- [ ] SBOMの更新
- [ ] セキュリティパッチの適用
参考文献
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Dependency Security
의존성 보안 스캔 및 SBOM(Software Bill of Materials) 생성을 강제하는 스킬입니다.
2025 Context
OWASP Top 10 2025에서 "Vulnerable and Outdated Components"가 A03으로 상승 EU Cyber Resilience Act: 2024년부터 SBOM 의무화 시작 Supply Chain 공격 급증: 2024년 대비 300% 증가
Core Rules
| 규칙 | 상태 | 설명 |
|---|---|---|
| npm audit 통과 | 🔴 필수 | high/critical 취약점 0개 |
| 의존성 최신화 | 🟡 권장 | 주요 보안 패치 적용 |
| SBOM 생성 | 🟡 권장 | 의존성 목록 문서화 |
| lockfile 커밋 | 🔴 필수 | 재현 가능한 빌드 |
Security Audit
npm audit
# 취약점 검사
npm audit
# 자동 수정 (가능한 경우)
npm audit fix
# 강제 수정 (major 버전 업데이트 포함)
npm audit fix --force # ⚠️ 주의: 호환성 문제 가능
# JSON 출력 (CI용)
npm audit --json
결과 해석
Severity levels:
- critical: 🔴 즉시 수정 필수
- high: 🔴 즉시 수정 필수
- moderate: 🟡 조속히 수정
- low: 🟢 다음 업데이트 시 수정
CI 통합 예시
# GitHub Actions
- name: Security Audit
run: |
npm audit --audit-level=high
if [ $? -ne 0 ]; then
echo "Security vulnerabilities found!"
exit 1
fi
Dependency Management
의존성 업데이트 확인
# 오래된 패키지 확인
npm outdated
# 업데이트 가능한 패키지
npx npm-check-updates
# 대화형 업데이트
npx npm-check-updates -i
안전한 업데이트 전략
# 1. 현재 상태 기록
npm outdated > outdated-$(date +%Y%m%d).txt
# 2. patch 버전만 업데이트 (가장 안전)
npx npm-check-updates -u --target patch
# 3. minor 버전 업데이트
npx npm-check-updates -u --target minor
# 4. 테스트 실행
npm test
# 5. lockfile 커밋
git add package-lock.json
git commit -m "chore: update dependencies (security patch)"
SBOM (Software Bill of Materials)
SBOM 생성
# CycloneDX 형식 (권장)
npx @cyclonedx/cyclonedx-npm --output-file sbom.json
# SPDX 형식
npx spdx-sbom-generator
SBOM 포함 정보
{
"bomFormat": "CycloneDX",
"specVersion": "1.4",
"components": [
{
"name": "react",
"version": "18.2.0",
"purl": "pkg:npm/react@18.2.0",
"licenses": [{ "license": { "id": "MIT" } }]
}
]
}
CI에서 SBOM 자동 생성
# GitHub Actions
- name: Generate SBOM
run: npx @cyclonedx/cyclonedx-npm --output-file sbom.json
- name: Upload SBOM
uses: actions/upload-artifact@v3
with:
name: sbom
path: sbom.json
Supply Chain Security
Lockfile 보안
# package-lock.json 항상 커밋
git add package-lock.json
# CI에서 정확한 버전 설치
npm ci # (npm install이 아님!)
.npmrc 보안 설정
# .npmrc
# 스크립트 자동 실행 금지
ignore-scripts=true
# 엄격한 SSL
strict-ssl=true
# 레지스트리 고정
registry=https://registry.npmjs.org/
의심스러운 패키지 확인
# 패키지 정보 확인
npm info <package-name>
# 다운로드 수, 유지보수 상태 확인
npx npm-check <package-name>
# 라이선스 확인
npx license-checker
Detection Patterns
위험 신호
🔴 위험:
- critical/high 취약점 존재
- 1년 이상 업데이트 없는 의존성
- deprecated 패키지 사용
- 알 수 없는 출처의 패키지
🟡 주의:
- moderate 취약점
- 6개월 이상 업데이트 없음
- 낮은 다운로드 수
검사 명령어
# deprecated 패키지 확인
npm ls 2>&1 | grep -i deprecated
# 라이선스 문제 확인
npx license-checker --failOn "GPL;AGPL"
# 의존성 트리 확인
npm ls --depth=0
Workflow
1. 새 의존성 추가 시
추가 전 체크:
1. npm info로 패키지 정보 확인
2. 다운로드 수 및 유지보수 상태 확인
3. 라이선스 호환성 확인
4. 대안 패키지 검토
추가 후:
1. npm audit 실행
2. lockfile 커밋
2. 정기 보안 점검 (주간/월간)
# 1. 취약점 검사
npm audit
# 2. 오래된 패키지 확인
npm outdated
# 3. SBOM 업데이트
npx @cyclonedx/cyclonedx-npm --output-file sbom.json
# 4. 결과 기록
3. CI/CD 파이프라인
name: Security Check
on: [push, pull_request]
jobs:
security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: npm ci
- name: Security audit
run: npm audit --audit-level=high
- name: Check outdated
run: npm outdated || true
- name: Generate SBOM
run: npx @cyclonedx/cyclonedx-npm --output-file sbom.json
도구 추천
| 도구 | 용도 | 명령어 |
|---|---|---|
| npm audit | 취약점 스캔 | npm audit |
| Snyk | 고급 취약점 분석 | npx snyk test |
| OWASP Dependency-Check | OWASP 표준 스캔 | CLI 도구 |
| CycloneDX | SBOM 생성 | npx @cyclonedx/cyclonedx-npm |
| npm-check-updates | 의존성 업데이트 | npx ncu |
Checklist
새 프로젝트
- [ ] .npmrc 보안 설정 적용
- [ ] package-lock.json 커밋
- [ ] npm audit 통과 확인
- [ ] CI에 보안 검사 추가
의존성 추가 시
- [ ] 패키지 신뢰성 확인
- [ ] 라이선스 호환성 확인
- [ ] npm audit 재실행
- [ ] lockfile 커밋
정기 점검
- [ ] npm audit 실행
- [ ] npm outdated 확인
- [ ] SBOM 업데이트
- [ ] 보안 패치 적용