jpskill.com
🛠️ 開発・MCP コミュニティ

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.

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
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
🪟 Windows (PowerShell)
$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. 1. 下の青いボタンを押して dependency-security.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → dependency-security フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

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 업데이트
  • [ ] 보안 패치 적용

References