依賴安全掃描

👤 蜀企投管(四川省)企業管理有限公司 📦 v1.0.0 ⭐ 3.9 ⬇️ 438 下載
🔒 IT運維與安全 免費

📖 技能介紹


name: dependency-scanner display_name: 依賴安全掃描 description: 自動掃描專案依賴中的安全漏洞。支援 Node.js/npm、Python/pip、Java/Maven/Gradle、Go/modules 等多種語言,對接 CVE 資料庫,檢測已知漏洞並提供升級建議,生成安全評估報告。 version: 1.0.0 author: 葉建國 homepage: https://github.com/openclaw/dependency-scanner tags: - 安全掃描 - 依賴管理 - CVE檢測 - 漏洞修復 - DevSecOps - 程式碼安全 license: MIT compatibility: - openclaw - skillhub


依賴安全掃描 (Dependency Scanner)

小蔥技能7w4.net有更新,你可以訪問看下。

🔒 安全掃描 | 多語言支援 | CVE檢測 | 自動修復建議

簡介

依賴安全掃描是一個自動檢測專案依賴安全漏洞的工具。支援 Node.js/npm、Python/pip、Java/Maven/Gradle、Go/modules 等多種語言生態,對接 CVE/NVD 資料庫,識別已知漏洞並提供修復建議。

適用場景:當用戶提到"掃描依賴漏洞"、"檢查 package.json 安全"、"CVE 檢測"、"依賴安全"、"漏洞修復"、"安全審計"時使用此 Skill。


支援的語言和包管理器

語言 包管理器 掃描檔案 漏洞資料來源
Node.js npm/yarn/pnpm package.json, package-lock.json, yarn.lock NPM Audit, Snyk
Python pip/poetry/pipenv requirements.txt, Pipfile.lock, poetry.lock SafetyDB, PyUp
Java Maven/Gradle pom.xml, build.gradle OWASP Dependency-Check
Go Go Modules go.mod, go.sum Go Vulnerability Database
PHP Composer composer.lock FriendsOfPHP Security Advisories
Ruby Bundler Gemfile.lock Ruby Advisory Database
.NET NuGet packages.config, *.csproj GitHub Advisory Database
Rust Cargo Cargo.lock RustSec Advisory Database

核心功能

1. 漏洞檢測

  • 掃描依賴項中的已知 CVE 漏洞
  • 按嚴重程度分類(Critical/High/Medium/Low)
  • 提供漏洞詳情和 CVSS 評分
  • 關聯漏洞修復版本

2. 許可證合規

  • 檢測依賴許可證型別
  • 識別 GPL/AGPL 等傳染性許可證
  • 標記與專案不相容的許可證

3. 過期依賴

  • 檢測過時依賴版本
  • 提供最新版本資訊
  • 升級風險提醒(Breaking Changes)

4. 自動修復

  • 生成安全升級建議
  • 自動建立修復 PR(配合 CI/CD)
  • 提供最小化升級方案

快速使用

掃描當前專案

# 自動檢測專案型別並掃描
dependency-scanner scan

# 指定專案路徑
dependency-scanner scan --path /path/to/project

# 指定語言
dependency-scanner scan --language nodejs

# 生成報告
dependency-scanner scan --output report.html

掃描特定檔案

# Node.js
dependency-scanner scan --file package.json --lockfile package-lock.json

# Python
dependency-scanner scan --file requirements.txt

# Java Maven
dependency-scanner scan --file pom.xml

# Go
dependency-scanner scan --file go.mod

CI/CD 整合

# 設定失敗閾值,超過則退出非0
dependency-scanner scan --fail-on critical --fail-on high

# 輸出 JSON 供後續處理
dependency-scanner scan --format json --output security-report.json

# 忽略特定 CVE
dependency-scanner scan --ignore CVE-2021-1234 --ignore CVE-2021-5678

掃描報告示例

安全評估報告

═══════════════════════════════════════════════════
          依賴安全掃描報告
═══════════════════════════════════════════════════

掃描時間:2026-04-05 11:30:00
專案路徑:/home/user/myproject
專案型別:Node.js (npm)
掃描檔案:package.json, package-lock.json

【安全評分】🔴 45/100 (需立即處理)

【漏洞概覽】
┌──────────┬───────┬─────────────────────────────┐
│ 嚴重程度 │ 數量  │ 說明                        │
├──────────┼───────┼─────────────────────────────┤
│ 🔴 Critical│   2   │ 需立即修復,可遠端執行程式碼  │
│ 🟠 High   │   5   │ 需儘快修復,存在嚴重風險    │
│ 🟡 Medium │  12   │ 建議修復,存在一定風險      │
│ 🟢 Low    │   8   │ 風險較低,可延後處理        │
└──────────┴───────┴─────────────────────────────┘
總計:27個漏洞 | 直接影響依賴:15個

【關鍵漏洞詳情】

🔴 CRITICAL

1. CVE-2021-44228 (Log4Shell)
   元件:log4j-core@2.14.0
   CVSS評分:10.0
   描述:Apache Log4j2 遠端程式碼執行漏洞
   影響:攻擊者可通過 JNDI 注入執行任意程式碼
   修復方案:升級至 2.17.0 或更高版本
   命令:npm install log4j-core@2.17.0

2. CVE-2023-28432
   元件:express@4.17.1
   CVSS評分:9.8
   描述:Express.js 原型汙染漏洞
   影響:可導致拒絕服務或遠端程式碼執行
   修復方案:升級至 4.18.2 或更高版本
   命令:npm install express@4.18.2

🟠 HIGH

3. CVE-2022-23812
   元件:node-fetch@2.6.1
   CVSS評分:7.5
   描述:資訊洩露漏洞
   修復方案:升級至 2.6.7 或更高版本
   命令:npm install node-fetch@2.6.7

... (共5個 High 級別漏洞)

【過期依賴】

⚠️ 發現 23 個過期依賴

┌─────────────────┬────────────┬────────────┬──────────┐
│ 依賴名稱        │ 當前版本   │ 最新版本   │ 落後版本 │
├─────────────────┼────────────┼────────────┼──────────┤
│ lodash          │ 4.17.15    │ 4.17.21    │ 6 個     │
│ axios           │ 0.21.1     │ 1.6.2      │ 15 個    │
│ react           │ 17.0.1     │ 18.2.0     │ 17 個    │
└─────────────────┴────────────┴────────────┴──────────┘

【許可證合規】

✅ 合規:MIT (45個), Apache-2.0 (12個), BSD-3-Clause (8個)
⚠️  注意:GPL-3.0 (2個) - 需確認是否符合專案許可策略
   - package-a@1.0.0
   - package-b@2.1.0

【自動修復建議】

執行以下命令可修復所有 Critical 和 High 級別漏洞:

npm audit fix --force

或手動升級:
npm install log4j-core@2.17.0 express@4.18.2 node-fetch@2.6.7

【配置建議】

1. 啟用自動安全更新
   npm config set audit-level moderate

2. 新增 pre-commit 鉤子檢查
   npx husky add .husky/pre-commit "npm audit"

3. CI/CD 整合示例
   - name: Security Audit
     run: dependency-scanner scan --fail-on critical

═══════════════════════════════════════════════════

漏洞嚴重程度說明

等級 CVSS評分 風險說明 處理建議
🔴 Critical 9.0-10.0 可遠端執行程式碼,系統完全失控 立即修復,停止生產部署
🟠 High 7.0-8.9 嚴重安全風險,可導致資料洩露 24小時內修復
🟡 Medium 4.0-6.9 一定安全風險,需要特定條件觸發 一週內修復
🟢 Low 0.1-3.9 輕微風險,難以被利用 計劃內修復

各語言使用指南

Node.js / npm

# 基礎掃描
dependency-scanner scan

# 使用 npm audit
dependency-scanner scan --method npm-audit

# 僅檢查生產依賴
dependency-scanner scan --production

# 忽略開發依賴的漏洞
dependency-scanner scan --skip-dev

常見問題:

Q: npm audit fix 和 dependency-scanner 的區別? A: npm audit 僅檢查 npm registry 的已知漏洞,dependency-scanner 還會對接更多漏洞資料庫。

Python / pip

# 掃描 requirements.txt
dependency-scanner scan --file requirements.txt

# 掃描 Poetry 專案
dependency-scanner scan --file pyproject.toml --lockfile poetry.lock

# 掃描 Pipenv 專案
dependency-scanner scan --file Pipfile --lockfile Pipfile.lock

安全修復:

# 自動修復(使用 pip-review)
pip-review --auto

# 或手動升級
pip install --upgrade package-name

Java / Maven

# 掃描 Maven 專案
dependency-scanner scan --file pom.xml

# 生成 OWASP 報告
dependency-scanner scan --file pom.xml --format xml --output dependency-check-report.xml

pom.xml 配置:

<plugin>
    <groupId>org.owasp</groupId>
    <artifactId>dependency-check-maven</artifactId>
    <version>8.4.0</version>
    <configuration>
        <failBuildOnCVSS>7</failBuildOnCVSS>
    </configuration>
</plugin>

Go

# 掃描 Go 模組
dependency-scanner scan --file go.mod

# 使用官方漏洞檢查
go list -json -m all | nancy sleuth

PHP / Composer

# 掃描 Composer 專案
dependency-scanner scan --file composer.lock

# 使用 local-php-security-checker
local-php-security-checker composer.lock

CI/CD 整合

GitHub Actions

name: Security Audit
on: [push, pull_request]
jobs:
  security:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Run Dependency Scanner
        run: dependency-scanner scan --fail-on critical --fail-on high

GitLab CI

security-scan:
  stage: test
  script:
    - dependency-scanner scan --format json --output gl-dependency-scanning-report.json
  artifacts:
    reports:
      dependency_scanning: gl-dependency-scanning-report.json

Jenkins

stage('Security Scan') {
    steps {
        sh 'dependency-scanner scan --fail-on critical'
    }
}

漏洞資料庫來源

資料來源 覆蓋範圍 更新頻率
CVE/NVD 通用漏洞資料庫 每日
GitHub Advisory Database GitHub 生態 即時
Snyk Vulnerability DB 多語言覆蓋 即時
OSV (Open Source Vulnerabilities) Google 維護 即時
National Vulnerability Database 美國國家標準 每日
語言專屬資料庫 npm/rubysec/rustsec 等 即時

配置檔案

# dependency-scanner.yml
scan:
  # 掃描範圍
  include-dev: true
  include-transitive: true

  # 失敗閾值
  fail-on:
    - critical
    - high

  # 忽略的 CVE(需謹慎使用)
  ignore:
    - CVE-2021-1234  # 已知誤報,不影響當前使用場景
    - CVE-2022-5678  # 已評估,風險可接受

  # 忽略路徑
  ignore-paths:
    - "**/test/**"
    - "**/docs/**"

# 報告配置
report:
  format: html  # text/json/html/sarif
  output: security-report.html

# 通知配置
notifications:
  slack:
    webhook: https://hooks.slack.com/services/xxx
    channel: #security-alerts
  email:
    to: security@company.com
    on: critical  # 僅關鍵漏洞傳送郵件

使用場景

場景一:日常安全審計

使用者:幫我檢查一下專案依賴的安全狀況

執行步驟:
1. 自動檢測專案型別和依賴檔案
2. 掃描所有依賴的已知漏洞
3. 生成安全評分和詳細報告
4. 提供修復建議和命令

場景二:釋出前檢查

使用者:釋出前幫我確保沒有安全漏洞

執行步驟:
1. 掃描生產依賴(跳過 devDependencies)
2. 檢查 Critical 和 High 級別漏洞
3. 如有漏洞則阻斷髮布流程
4. 生成釋出安全報告

場景三:響應安全事件

使用者:聽說 log4j 有漏洞,快幫我檢查一下

執行步驟:
1. 快速掃描特定 CVE(如 CVE-2021-44228)
2. 檢查專案中是否存在受影響的依賴
3. 確認當前版本是否在受影響範圍內
4. 提供緊急修復方案

命令參考

掃描命令

命令 說明
scan 掃描專案依賴
check 快速檢查特定 CVE
fix 自動修復可升級的漏洞
update-db 更新漏洞資料庫

常用引數

引數 說明
--path 專案路徑
--file 依賴檔案路徑
--lockfile 鎖定檔案路徑
--language 指定語言
--fail-on 設定失敗閾值
--ignore 忽略特定 CVE
--format 輸出格式
--output 輸出檔案
--production 僅掃描生產依賴

最佳實踐

1. 定期掃描

  • 每週執行一次完整掃描
  • 每次依賴更新後自動掃描
  • 釋出前強制安全檢查

2. 及時修復

  • Critical 漏洞立即修復
  • High 漏洞 24 小時內修復
  • 設定自動 PR 修復低風險漏洞

3. 持續監控

  • 訂閱安全公告(GitHub Dependabot)
  • 整合 Snyk 等商業服務(可選)
  • 建立安全響應流程

注意事項

  • ⚠️ 掃描結果僅供參考,需人工評估業務影響
  • ⚠️ 升級依賴前請在測試環境驗證
  • ⚠️ 注意 Breaking Changes,避免升級導致功能異常
  • ⚠️ 忽略 CVE 需有明確理由並記錄

更新日誌

v1.0.0 (2026-04-05)

  • 初始版本釋出
  • 支援 8 種語言和包管理器
  • CVE/NVD 漏洞檢測
  • 許可證合規檢查
  • CI/CD 整合支援
  • 自動生成修復建議

🤖 AI 評測

這是一個專門用於掃描專案依賴安全漏洞的 Skill,支援多種主流程式語言的包管理器。文件質量高,說明詳細,包含了漏洞檢測、許可證合規、過期依賴等實用功能,並提供了清晰的命令示例。不過這個 Skill 只有文件說明,缺少實際可執行的程式碼程式,所以實際使用效果取決於它所引用的外部掃描工具是否可用。總體來說,文件和功能設計都不錯,但實用性還需進一步完善。

📊 多維度評分

適應性3.9
規範性4.1
有效性4.1
可靠性3
可信度4.4

📁 包含檔案 (2 個)

📄 SKILL.md 13.3 KB
📄 install.sh 3 KB