technine.io
深藍色燈光下,伺服器布滿圓孔的金屬前面板特寫,背景深色,畫面無文字或標誌。

指南

滲透測試是甚麼?與漏洞掃描有何分別

滲透測試是經授權、由人手進行的安全測試,嘗試找出並利用網站、網上應用程式或網絡的弱點。了解它與自動化漏洞掃描的分別、常見類型、測試流程,以及一份有用的報告應包含甚麼。

更新於

滲透測試(penetration test,簡稱 pentest)是一種經授權的安全測試:測試人員模仿真實攻擊者,嘗試找出並利用系統的弱點,然後報告發現了甚麼、應該如何修正。對於經營網站、網店或網上應用程式的企業,它回答一個實際問題:如果有人嘗試入侵,對方可以走多遠?

滲透測試與漏洞掃描的分別

兩者經常被混為一談,但用途不同。

  • 漏洞掃描由工具自動進行,按已知問題清單檢查系統,例如過時的軟件版本、缺少的安全標頭或對外開放的服務。掃描速度快,可以經常執行,但可能出現誤報,一般也不理解應用程式的業務邏輯。
  • 滲透測試由人主導。測試人員會把掃描結果當作參考,再逐項人手核實,把幾個細小弱點串連起來,並測試業務邏輯,例如只要改動網址中的一個號碼,某位客戶能否看到另一位客戶的訂單。

掃描適合用作日常檢查,滲透測試則在某個時間點作較深入的評估。大部分機構兩者都需要。

滲透測試的類型

按測試人員事前掌握的資料,一般分為三種:

  • 黑盒測試:測試人員只有網址等基本資料,情況接近外部攻擊者。
  • 灰盒測試:提供測試帳戶或部分文件,測試集中在已登入用戶能接觸的範圍。
  • 白盒測試:提供架構資料,有時連源代碼也提供,可作最徹底的檢查。

按測試對象,則可分為網上應用程式測試(登入、表格、工作階段、存取控制)、API 測試(每個端點的身份驗證、授權和資料外洩風險)、網絡測試(伺服器、防火牆和對外服務),以及流動應用程式測試(應用程式本身、裝置上儲存的資料及其調用的 API)。

測試範圍與書面授權

安全測試必須得到系統擁有人許可,因此正式的滲透測試會先取得有權批准者的書面授權。如網站放在託管或雲端服務商,也要查閱對方政策,因為部分服務商對安全測試設有規定。開始前,雙方應議定測試規則:

  • 哪些域名、IP 位址、應用程式和環境屬於範圍內,哪些不屬於
  • 測試日期和時段,以及在正式環境還是測試環境進行
  • 不准使用的手法,例如阻斷服務攻擊
  • 緊急聯絡人,以及測試期間發現嚴重問題時如何處理

一般測試流程

  • 界定範圍:議定目標、測試對象、類型和時間。
  • 偵察:整理可被攻擊的範圍,包括子域名、頁面、API 和所用技術。
  • 測試:在議定規則內尋找並嘗試利用弱點。
  • 報告:記錄每項發現、證據和修正建議。
  • 修正:內部團隊或開發商按風險高低先後修正。
  • 重新測試:確認修正有效,而且沒有帶來新的漏洞。

一份好的報告應包含甚麼

報告是測試的主要成果,管理層和開發人員都應看得明白。留意以下內容:

  • 以淺白文字概述整體風險
  • 每項發現的嚴重程度評級,以及對業務的影響
  • 清晰的重現步驟和證據,方便開發人員確認問題
  • 具體的修正建議,而非籠統的提醒
  • 測試範圍和日期,以及未有測試的部分

以下示例僅供說明:一項發現可能寫成「高風險:已登入用戶只要更改 API 請求中的發票編號,即可下載其他用戶的發票」,並附上實際使用的請求、受影響的端點,以及在伺服器端加入權限檢查的建議。

何時測試、多久測試一次

常見的測試時機包括新網站或應用程式推出前、加入新付款流程或登入系統、更換託管等重大改動之後,以及為處理客戶或付款資料的系統定期安排測試。部分行業、客戶或合約可能要求按指定周期測試,具體要求請向你的顧問查詢。

與其他保安措施的配合

滲透測試是一種檢查,不能取代日常的良好做法。CI/CD 流程中的自動安全檢查,可在每次發佈時發現部分問題;回歸測試確保已修正的問題不會再出現。多重身份驗證可減低密碼被盜的影響,零信任則限制單一帳戶能接觸的範圍。滲透測試的結果往往能指出這些措施的不足之處。

如需把安全測試與其他保護措施一併規劃,可參閱 technine.io 的網絡安全及合規服務。

常見問題

只做漏洞掃描足夠嗎?

作日常檢查有用,但業務邏輯和存取控制方面的問題,往往要靠人手才能發現。滲透測試正好補上這部分。

滲透測試會令網站停止運作嗎?

如測試規則已排除具破壞性的手法,並議定好時間,一般不應如此。部分團隊會先在測試環境進行,以減低風險。

通過滲透測試是否代表網站已經安全?

不是。結果只反映測試人員在議定範圍和時間內的發現。新代碼、新功能和新公開的漏洞都可能改變情況,所以重新測試和持續檢查同樣重要。

諮詢WhatsApp