軟體測試 - 滲透測試
軟體測試是一個廣泛的過程,涵蓋了軟體安全功能的驗證。軟體滲透測試是對我們的計算機系統進行的一種模擬網路攻擊,目的是在真正的攻擊者利用這些弱點之前,確定並解決軟體中的弱點。
什麼是軟體滲透測試?
軟體滲透測試主要關注基於 Web 的應用程式安全,其中測試團隊嘗試滲透 API、伺服器等,以檢測程式碼注入風險等弱點,例如來自原始輸入的程式碼注入風險。其結果有助於調整 Web 應用防火牆 (WAF) 配置,並解決任何可以提高軟體安全性的問題。
從 1965 年開始,隨著人們認為互動線路可能被破壞,攻擊者能夠獲取從一個人到另一個人傳輸的資訊,安全問題開始增加。1967 年,許多計算機研究人員在年度聯合會議上討論了滲透通訊渠道的可行性。
在 20 世紀 80 年代,計算機和網際網路的使用量增加,導致網路安全測試變得重要。隨著自動化和工具的引入,滲透測試的概念在 20 世紀 90 年代開始流行。隨著電子商務和網際網路業務的增長,Web 安全的需求也越來越大。
如今,滲透測試已成為網路安全的一部分。無論規模大小,每個組織都對其進行投資以確定和修復其軟體中的弱點。每天都在進行許多改進以改進滲透測試。
軟體滲透測試的階段
軟體滲透測試的階段如下所示:
步驟 1 - 計劃:它涉及計劃和定義滲透測試的範圍和目標。它包括哪些專案(例如網路、軟體等)將成為測試的一部分,以及為此需要採用哪些方法。
步驟 2 - 掃描:利用大量工具和方法來了解軟體對入侵嘗試的反應。靜態分析是在不實際執行程式碼的情況下完成的,以確定程式碼中可能存在的弱點。動態分析透過執行軟體來評估它對各種輸入和條件的行為。
步驟 3 - 獲取訪問許可權:在掃描階段識別出軟體中的所有漏洞後,利用這些漏洞透過使用諸如 SQL 注入、跨站點指令碼等方法來獲取對軟體的未經授權的訪問許可權,以完全控制系統。
步驟 4 - 維持訪問許可權:此階段主要集中在軟體中獲得永久存在。它模擬了真實駭客的實際特徵,這些駭客希望長時間訪問軟體。名為後門、獲取許可權和持續存在的過程用於確保訪問權保持很長時間。
步驟 5 - 測試結果分析:在執行滲透測試時,會生成所有被利用的弱點的報告以及可以訪問的每個敏感資料的詳細資訊等。專家評估報告以瞭解軟體中的安全措施的有效性,並評估修復這些措施的方法。
軟體滲透測試的方法
軟體滲透測試的方法如下所示:
外部測試
它針對的是組織的線上資源,例如網站、電子郵件、域名伺服器 (DNS) 等。主要目的是像真正的攻擊者一樣滲透並獲取敏感資訊。它致力於在實際攻擊者實際使用之前降低風險。
內部測試
它由具有組織內部系統完全訪問許可權的測試人員執行。他模擬內部攻擊,例如透過網路釣魚電子郵件入侵員工帳戶。它檢查內部安全措施的效率,識別其中的弱點,並致力於改進它們。
盲測
它由僅瞭解組織名稱的測試人員執行。他模擬實際攻擊以揭示組織在此時如何應對、檢測和減輕安全漏洞。
雙盲測試
它像演習一樣進行。負責安全的團隊對此攻擊一無所知,似乎毫無準備。它是為了評估整體安全、效率、跟蹤、檢測和在這些實際情況下做出反應。
目標測試
當測試人員和安全官員都意識到此測試時執行,並且他們相互幫助。它更像是培訓或受控練習,安全團隊從測試人員那裡獲得有關改進領域的反饋。
軟體滲透測試的型別
軟體滲透測試的型別如下所示:
1. 黑盒滲透測試
在模擬真實網路攻擊時,攻擊者對目標一無所知。這是一個耗時的過程,因為攻擊者對系統沒有任何瞭解。其目的是檢測軟體中現有的弱點,並模擬攻擊者在沒有任何先驗知識的情況下可以進入軟體的極限。
2. 白盒滲透測試
攻擊者瞭解軟體的原始碼。道德駭客可以完全訪問程式碼,並且可以檢測到由於程式設計錯誤、設定不當和缺乏防禦機制而導致的所有可能威脅。
3. 灰盒滲透測試
攻擊者會獲得有關目標的一些更多詳細資訊,例如IP、子網、網路設定、低階憑據等。他還對將要模擬攻擊的軟體具有一些基本知識。
軟體滲透測試中使用的Web應用防火牆
以下是軟體滲透測試期間使用的不同Web應用防火牆:
- 軟體滲透測試利用WAF詳細資訊(不適用於盲測和雙盲測)來檢測和利用軟體漏洞。
- WAF管理員會考慮滲透測試結果來修改配置,並增強針對測試期間檢測到的弱點的保護。
- 軟體滲透測試根據安全審計的合規性要求(例如PCI DSS和SOC2)進行。
- PCI-DSS 6.6標準強制要求使用經過認證的WAF。但是,軟體滲透測試對於增強WAF設定和安全性非常重要。
軟體滲透測試的優勢
軟體滲透測試的優勢如下:
- 滲透測試可以暴露尚未被檢測到或利用的軟體弱點。
- 滲透測試確定與軟體弱點相關的風險。
- 滲透測試表明攻擊的結果及其發生的可能性。
- 滲透測試突顯了現有安全措施的效率。
- 滲透測試有助於確定改進工作的優先順序。
- 滲透測試可以改進並驗證軟體的整體安全性。
- 滲透測試可以培訓個人瞭解安全漏洞的風險。
軟體滲透測試的劣勢
軟體滲透測試的劣勢如下:
- 如果滲透測試未正確執行,會導致敏感資訊洩露。
- 負責滲透測試的測試人員應該完全值得信任。
- 找到經驗豐富、技能熟練且知識淵博的滲透測試人員並不容易。
- 滲透測試是一個成本高昂的過程。
- 滲透測試可能會影響正常的業務。
- 滲透測試有時無法確定軟體的所有漏洞。
- 有時滲透測試會產生誤報。
- 有時滲透測試會產生漏報。
- 滲透測試結果難以解讀。
軟體滲透測試規則
以下是軟體滲透測試之前需要遵循的規則:
- 應該有一份保密協議(由雙方簽署),其中包含允許進行駭客攻擊的許可權。
- 應該有一個滲透測試的開始和結束日期。
- 應該明確說明滲透測試期間的目標和方法。
軟體滲透測試中使用的工具
以下是軟體滲透測試中使用的工具:
- Nmap
- Burp Suite
- Wireshark
結論
本教程對軟體滲透測試進行了全面介紹。我們首先介紹了什麼是軟體滲透測試,軟體滲透測試的不同階段是什麼,軟體滲透測試的不同方法是什麼,軟體滲透測試的不同型別是什麼,軟體滲透測試期間使用的不同Web應用防火牆是什麼,軟體滲透測試的優勢是什麼,軟體滲透測試的劣勢是什麼,軟體滲透測試之前需要遵循的規則是什麼,以及軟體滲透測試中使用的工具是什麼。這使您對軟體效能測試有了深入的瞭解。建議您不斷實踐所學知識,並探索與軟體測試相關的其他內容,以加深理解並拓寬視野。