滲透測試教程:什麼是滲透測試 (PenTest)?
滲透測試
滲透測試,通常稱為PenTest,是一種安全測試,用於查詢入侵者可能在軟體應用程式、網路或線上應用程式中利用的漏洞、風險和威脅。滲透測試的目的是發現並評估軟體程式中所有潛在的安全漏洞。滲透測試的另一個名稱是Pen Test。
入侵者破壞或未經授權訪問網路或其中任何資料的可能性稱為漏洞。漏洞通常在軟體規劃和實施階段偶然發現。常見的威脅包括設計缺陷、配置缺陷、軟體問題等等。滲透分析基於兩種技術:漏洞評估和滲透測試 (VAPT)。
為什麼需要滲透測試?
在商業中,滲透測試至關重要,因為:
金融機構,如銀行、投資銀行和證券交易所,需要確保其資訊安全,而滲透測試對於確保安全至關重要。
軟體系統以前曾遭受攻擊,企業需要了解系統中是否存在任何威脅,以防止進一步入侵。
主動式滲透測試是網路犯罪分子的最大武器。
滲透測試型別
使用的滲透測試型別通常取決於評估的範圍以及企業是否希望模擬員工、網路管理員(內部來源)或外部因素的入侵。滲透測試分為三種類型:
黑盒測試
白盒滲透測試
灰盒滲透測試
在黑盒滲透測試中,分析師對被檢查的過程幾乎一無所知。他負責收集有關所選網路或系統的資料。
在白盒滲透測試中,測試人員通常會獲得有關待評估網路或系統的全面資訊,例如IP地址方案、原始碼、作業系統詳細資訊等等。這可以被視為任何內部因素(組織員工)進行的網路攻擊的原型。
在灰盒滲透測試中,測試人員只獲得系統的一些有限資訊。這是由外部人員進行的入侵,他們已非法訪問公司網路基礎設施文件。
如何執行滲透測試?
為了執行滲透測試,必須執行以下步驟:
步驟1 - 準備階段
確定任務的範圍和方法。
使用當前的安全規則和標準來確定範圍。
步驟2 - 發現階段
儘可能多地收集有關係統的資訊,特別是系統中的資料、使用者和密碼。這被稱為“指紋識別”。
檢查埠並對其進行調查
檢查系統是否存在漏洞。
步驟3 - 攻擊階段
發現各種漏洞的補救措施。要利用系統,必須擁有適當的安全許可權。
步驟4 - 報告階段
分析需要提供具體的成果。
發現的威脅及其對企業的影響
建議和可能的響應
滲透測試的主要目標是收集系統資料。有兩種收集資訊的方法:
就主機而言,“一對一”或“一對多”框架:測試人員以順序方式針對單個目標主機或分層主機系統集合(例如子網)使用功能。
“多對一”或“多對多”模型:測試人員使用多個主機以任意、速率受限和非線性方式執行資料收集過程。
滲透測試工具示例
滲透測試使用許多不同的工具,其中最重要的是:
**NMap** - 此工具用於分析埠、識別作業系統、跟蹤路由和查詢漏洞。
**Nessus** - 這是一款傳統的網路漏洞掃描器。
**Pass-The-Hash** - 此工具主要用於破解密碼。
滲透測試人員的主要職責
滲透測試人員的目標是:
測試人員必須從公司獲取必要的資料才能進行滲透測試。
查詢可能允許攻擊者破壞目標機器的漏洞。
滲透測試人員應該像真正的駭客一樣思考和專業行事。
滲透測試人員的工作必須可重複,以便開發人員可以輕鬆修復。
應提前指定測試過程的開始和結束日期。
測試人員必須對在軟體測試過程中發生的任何系統或資訊洩漏負責。
測試人員應將資料和資訊保密。
測試人員應將資料和資訊保密。
手動滲透測試與自動化滲透測試
下表突出顯示了手動滲透測試和自動化滲透測試的主要區別:
| 手動滲透測試 | 自動化滲透測試 |
|---|---|
| 手動測試需要使用熟練的技術人員來執行測試 | 使用較少的專家技術人員,自動化測試工具可以提供簡潔的結果。 |
| 手動測試需要使用Excel以及其他工具來記錄它。 | 自動化測試工具是集中式和一致的。 |
| 手動測試的樣本結果在每次測試中都不同。 | 自動化測試的結果實際上並沒有彼此不同。 |
| 消費者必須記住清理記憶體 | 自動化測試將執行廣泛的清理工作。 |
滲透測試的缺點
滲透測試無法檢測系統中的所有漏洞。時間、金錢、範圍和滲透測試人員的能力都是有限的。
當我們執行滲透測試時,可能會發生以下負面影響:
資料損壞和丟失
停機時間
成本增加。
結論
測試人員必須像真正的入侵者一樣測試程式或系統,並且他們應該驗證程式碼是否正確構建。如果確實存在適當的安全策略,則滲透測試將有效。滲透測試策略和程式必須井然有序才能提高滲透測試的有效性。這是一本完整的滲透測試入門手冊。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP