1. 程式人生 > >(解讀)什麼是滲透測試(Penetration Testing)?

(解讀)什麼是滲透測試(Penetration Testing)?

(解讀)什麼是滲透測試(Penetration Testing)?

 

滲透測試(Penetration Testing),也稱為Pen Testing,是測試計算機系統、網路或Web應用程式以發現攻擊者可能利用的安全漏洞的實踐。滲透測試可以通過軟體應用自動化或手動執行。無論哪種方式,該過程都包括在測試之前收集關於目標的資訊,識別可能的入口點,試圖闖入(虛擬的或真實的)並報告結果。 

讓我們看看WIKI上的英文解釋(翻譯後)

滲透測試是對計算機系統的授權模擬攻擊,用於評估系統的安全性。執行測試以識別兩個缺點(也稱為漏洞),包括未授權方訪問系統的特徵和資料的可能性,以及優點,使得能夠完成完整的風險評估。該過程通常識別目標系統和特定目標,然後審查可用資訊,並採取各種手段來實現該目標。滲透測試目標可以是白盒(提供背景和系統資訊)或黑盒(只提供基本資訊或除了公司名稱不提供任何資訊)。灰盒穿透測試是二者的結合(其中目標有限的知識與審計人員共享)。滲透測試可以幫助確定一個系統是否容易受到攻擊,如果防禦足夠,以及測試是否打敗了哪些防禦(如果有的話)。滲透測試發現的安全問題應該報告給系統所有者。滲透測試報告也可以評估對組織的潛在影響,並提出降低風險的對策。

美國國家網路安全中心(National Cyber Security Center)將滲透測試描述如下:“一種方法,通過試圖破壞某個IT系統的部分或全部安全性,使用與對手相同的工具和技術,來獲得對該IT系統的安全性的保證。”

滲透測試的目標根據針對任何給定參與的已批准活動的型別而有所不同,其中主要目標是發現可被邪惡行為者利用的漏洞,並將這些漏洞與建議的緩解策略一起通知客戶。 滲透測試是全面安全審計的一個組成部分。例如,支付卡行業資料安全標準要求在定期日程表和系統更改之後進行滲透測試。缺陷假設方法是一種系統分析和滲透預測技術,其中通過對系統的規範和文件的分析來編譯軟體系統中的假設缺陷列表。然後,根據所估計的缺陷實際存在的概率,以及在控制或折衷的範圍內易於利用該漏洞,對假設缺陷列表進行優先順序排序。優先順序列表用於指導系統的實際測試。 

為什麼需要滲透測試?

從滲透測試的定義描述可以看出其目的。例如:Web應用程式滲透測試是通過在內部或外部模擬未經授權的攻擊來訪問敏感資料的。網路滲透幫助終端使用者發現黑客從因特網訪問資料的可能性,發現他們的電子郵件伺服器的安全性,並且也瞭解網站託管站點和伺服器的安全程度。當我們談論安全時,我們聽到的最常見的詞是漏洞。當我剛開始做安全測試的時候,我經常對這個詞感到困惑,我相信你們中的很多人會陷入同樣的困境。

什麼是漏洞(Vulnerability)?

可以這樣簡單的解釋,漏洞是用於識別系統中可能使系統暴露於安全威脅的缺陷的術語。

漏洞掃描和滲透測試有什麼區別?

 

漏洞掃描允許使用者發現應用程式中的已知弱點,並定義修復和提高應用程式整體安全性的方法。它基本上查明是否安裝了安全補丁,系統是否正確地配置為使攻擊變得困難。而滲透測試主要模擬實時系統,幫助使用者瞭解系統是否可以被未經授權的使用者訪問,如果是,那麼會造成什麼損害,以及哪些資料等。因此,漏洞掃描是一種偵測控制方法,它提出了改進安全程式和確保已知缺陷不重新出現的方法,而滲透測試是一種預防控制方法,它給出了系統現有安全層的總體檢視。雖然,這兩種方法都有其重要性,但它將取決於作為測試的一部分真正期望的內容。作為測試人員,在我們開始測試之前,必須明確測試的目的。如果您清楚目標,那麼您可以很好地定義是否需要進行漏洞掃描或滲透測試。

實施滲透測試的重要性如下:

  • 滲透測試有助於識別未知的漏洞。
  • 幫助檢查總體安全政策的有效性。
  • 幫助測試公開的元件,如防火牆、路由器和DNS
  • 讓使用者找出最易受攻擊的路線 
  • 幫助發現可能導致敏感資料被盜的漏洞。

如果你看看當前的市場需求,手機使用量已經急劇增加,這正成為攻擊的主要潛在因素。通過手機訪問網站容易受到更頻繁的攻擊,從而破壞資料。滲透測試因此變得非常重要,以確保我們建立一個安全的系統,使用者可以使用,沒有任何擔心黑客或資料丟失。

WEB系統滲透測試方法

該方法只是一組關於應該如何進行測試的安全行業指南。有一些建立良好且著名的方法和標準可以用於測試,但是由於每個Web應用程式需要執行不同型別的測試,所以測試人員可以通過參考市場上可用的標準來建立他們自己的方法。

一些安全性測試方法論和標準如下:

  • OWASP (Open Web Application Security Project)
  • OSSTMM (Open Source Security Testing Methodology Manual)
  • PTF (Penetration Testing Framework)
  • ISSAF (Information Systems Security Assessment Framework)
  • PCI DSS (Payment Card Industry Data Security Standard)

下面列出了一些可以作為Web應用程式滲透測試(WAPT)的一部分進行測試的測試場景:

  1. 跨站點指令碼(CSS,Cross Site Scripting)
  2. SQL注入(SQL Injection)
  3. 破損的認證和會話管理 (Broken authentication and session management)
  4. 檔案上載缺陷 (File Upload flaws)
  5. 快取伺服器攻擊 (Caching Servers Attacks)
  6. 安全錯誤配置(Security Misconfigurations)
  7. 跨站點請求偽造(Cross Site Request Forgery)
  8. 密碼破解(Password Cracking)

儘管我已經提到了該列表,但是測試人員不應該盲目地建立基於上述傳統標準的測試方法。       

這裡有一個例子來證明我為什麼這麼說。假設您被要求深入測試一個電子商務網站,現在考慮一下是否可以使用傳統的OWASP方法(如XSSSQL注入等)來識別電子商務網站的所有漏洞。答案是否定的,因為與其他網站相比,電子商務工作在非常不同的平臺和技術上。為了使您的滲透測試電子商務網站有效,測試人員應該設計一種方法,包括缺陷如訂單管理,優惠券和獎勵管理,支付閘道器整合和內容管理系統整合。因此,在決定方法之前,要非常確定要測試哪種型別的網站,以及哪種方法將有助於找到最大的漏洞。       

WEB滲透性測試型別

Web應用程式可以通過兩種方式進行滲透測試。可以設計測試來模擬內部或外部攻擊。 

#1)內部滲透測試

顧名思義,內部筆測試是在組織內部通過內部網路(例如:內部區域網)來完成的,因此它包括測試在內部網上託管的Web應用程式。這有助於發現企業防火牆內是否存在漏洞。我們總是相信攻擊只能在外部發生,而且很多時候內部滲透測試被忽略或者沒有得到重視。基本上,它包括不滿的僱員或承包商的惡意僱員攻擊,這些僱員或承包商可能已經辭職,但知道內部安全策略和密碼,釣魚攻擊的模擬,以及使用使用者特權或誤用解鎖終端的攻擊。

#2)外部滲透性測試

這些攻擊是在組織外部進行的,包括測試託管在網際網路上的Web應用程式。測試人員的行為就像黑客一樣,他們不太瞭解內部系統。為了模擬這種攻擊,測試人員得到目標系統的IP而不提供任何其他資訊。他們需要搜尋和掃描公共網頁,並找到我們關於目標主機的資訊,然後危害找到的主機。基本上,它包括測試伺服器、防火牆和IDS

WEB滲透測試方法

這可以包括三個階段

 

流行的滲透測試工具

能手動執行滲透測試嗎,還是總是通過使用工具進行自動化。毫無疑問,我想你們大多數人都在談論自動化。

這是真的,因為自動化帶來了速度,避免了人工錯誤、出色的覆蓋率以及其他一些好處,但是就滲透測試而言,它確實需要我們執行一些手工測試。手動測試有助於發現與業務邏輯相關的漏洞,減少誤報。 工具容易給出許多誤報,因此需要人工干預來確定它們是否是真正的漏洞。

建立工具是為了自動化我們的測試工作。以下是一些可用於Pentest的工具:

  • Free Pen Test tool
  • Veracode
  • Vega
  • Burp Suite
  • NetSparker
  • Arachni
  • Acunetix
  • ZAP

Burp Suite 和 NetSparker 是我非常喜歡的工具。

理想情況下,滲透測試可以幫助我們建立安全的軟體。但這是一個非常耗費成本的測試方法,所以測試的頻率可以不必太頻繁。       

附:

The process of penetration testing may be simplified into five phases

         偵查(嗅探)收集關於目標系統的重要資訊的行為。此資訊可用於更好地攻擊目標。例如,開源搜尋引擎可用於查詢可用於社會工程攻 擊的資料。 

         使用技術工具來進一步提高攻擊者對系統的知識。 

         使用在偵察(嗅探)和掃描階段收集的資料,攻擊者可以使用有效負載來利用目標系統。 

         維護訪問需要採取步驟,以便能夠持久地在目標環境中收集儘可能多的資料。 

         攻擊者必須清除任何破壞受害者系統的跟蹤、收集的任何型別的資料、記錄事件,以便保持匿名。

一旦攻擊者利用了一個漏洞,他們就可以訪問其他機器,因此該過程重複,即尋找新的漏洞並試圖利用它們。這個過程被稱為-Pivoting。

  1. Reconnaissance-The act of gathering important information on a target system. This information can be used to better attack the target. For example, open source search engines can be used to find data that can be used in a social engineering attack.
  2. Scanning - Uses technical tools to further the attacker's knowledge of the system. For example, Nmap can be used to scan for open ports.
  3. Gaining Access - Using the data gathered in the reconnaissance and scanning phases, the attacker can use a payload to exploit the targeted system. For example, Metasploit can be used to automate attacks on known vulnerabilities.
  4. Maintaining Access - Maintaining access requires taking the steps involved in being able to be persistently within the target environment in order to gather as much data as possible.
  5. Covering Tracks - The attacker must clear any trace of compromising the victim system, any type of data gathered, log events, in order to remain anonymous.

 

(完)