Snyk 導入指引

導入效應

效應 說明
全方面安全掃描 掃描 Dependency、Container、IaC、Secret、Code 五大面向
自動修復 PR 偵測漏洞後自動建立 Fix PR,含升級建議
優先級排序 依可利用性(Exploitability)和影響程度排序漏洞
開發者友善 IDE 整合,在寫碼時即時提醒漏洞
License 合規 檢查依賴的 License 是否符合企業政策
CI/CD 門檻 設定 vulnerability threshold,阻斷含高危漏洞的 Pipeline

1. 安裝 Snyk CLI

# macOS / Linux
brew install snyk

# Windows
choco install snyk

# npm
npm install -g snyk

2. 認證

# 登入 Snyk(需免費帳號)
snyk auth

# 使用 API Token(CI 用)
export SNYK_TOKEN=your-api-token
snyk auth $SNYK_TOKEN

3. 掃描 Dependency

# 掃描專案
snyk test

# 自動修復
snyk wizard

# 只顯示高危漏洞
snyk test --severity-threshold=high

4. 掃描 Container

# 掃描 Docker Image
snyk container test my-app:latest

# 掃描 Dockerfile
snyk container test my-app:latest --file=Dockerfile

5. 掃描 IaC(Infrastructure as Code)

# 掃描 Terraform
snyk iac test terraform/

# 掃描 Kubernetes YAML
snyk iac test k8s/

# 掃描 CloudFormation
snyk iac test cloudformation/

6. 掃描 Secret

# 掃描 git 歷史中的 Secret
snyk code test

# 掃描特定目錄
snyk code test src/

7. Maven 整合

<plugin>
    <groupId>io.snyk</groupId>
    <artifactId>snyk-maven-plugin</artifactId>
    <version>2.4.0</version>
    <configuration>
        <failOnIssues>true</failOnIssues>
        <severityThreshold>high</severityThreshold>
    </configuration>
</plugin>
mvn snyk:test

8. CI 整合

8.1 Azure Pipeline

- stage: SecurityScan
  jobs:
    - job: Snyk
      steps:
        - script: |
            npm install -g snyk
            snyk test --severity-threshold=high
          env:
            SNYK_TOKEN: $(SNYK_TOKEN)
          displayName: 'Snyk Dependency Test'
        - script: |
            snyk container test $(DockerImage) --severity-threshold=high
          env:
            SNYK_TOKEN: $(SNYK_TOKEN)
          displayName: 'Snyk Container Test'

8.2 GitHub Actions

- name: Snyk Security
  uses: snyk/actions@master
  env:
    SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
  with:
    args: --severity-threshold=high

9. Snyk UI 功能

功能 說明
Project Dashboard 視覺化所有專案的漏洞狀態
Fix PRs 自動建立修復 Pull Request
Jira 整合 漏洞自動建立 Jira Ticket
License 允許清單 設定哪些 License 可使用
通知設定 Email / Slack / Teams 通知

10. 漏洞優先級

等級 說明 建議動作
Critical 可被利用且影響嚴重 立即修復
High 高度可利用 24 小時內修復
Medium 有條件可利用 一週內修復
Low 難以利用 排入 Backlog

11. 與 OWASP Dependency Check 比較

特性 Snyk OWASP Dependency Check
掃描速度 較慢(同步 NVD)
自動修復 Fix PR
容器掃描
IaC 掃描
Secret 掃描
雲端 UI
開源免費 有限制 完全免費

12. 參考資源