安全測試怎麼入門?
測試新手,想學安全測試,請教安全測試怎麼入門?
對於安全測試,我曾經在一些公開課上做過很詳細的描述,也寫過一些入門的文章:
安全測試公開課錄音:上面這個錄音是關於黑客攻擊歷史、攻擊方式的介紹,有助於大家對黑客攻擊有一個初步了解,為安全測試做一個準備;為什麼要進行安全性測試? web安全測試的啟蒙教育吧,比較簡單的讓大家了解下sql注入等安全測試內容;
安全測試電子書下載:這是我個人總結的一些電子書資料,想要對安全測試有更深入學習的話可以從這些資料中獲得啟示;言歸正傳,安全測試作為一門越來越受關注的測試技術,至少近年來我的體會是更多的人加入安全測試領域,原因?需求量越來越大,人才缺口卻越來越明顯。
隨著互聯網的發展,安全問題也顯得越來越重要。一個大型的互聯網站點,如果你每天查看日誌,都會有很多嘗試攻擊性的腳本,如果你的網站沒有?好吧,那隻能證明你的網站影響力還不夠大。實際上,很多所謂的安全測試工程師僅僅停留在使用一些自動化審計工具來檢測系統,並對工具檢測出來的bug進行梳理,然後把它提給開發人員。這樣好不好?
我經常跟一些同行朋友說,安全測試的核心在什麼,在於指導開發人員去寫出安全漏洞較少的代碼。使用自動化工具自然是一時簡單,實際上並不能起到安全測試的真正目的,因為你不懂原理,不懂代碼,當開發人員也對於安全一竅不通的時候,根本沒辦法解決你從自動審計工具上整理下來的bug。安全測試涵蓋的範圍很廣,在某種程度上你需要有比性能測試、自動化測試等更為廣泛的基礎知識。在這裡我簡單給大家一個自學路線:
1. 掌握更多的軟體基本知識。例如http協議、http狀態碼、資料庫操作、中間件、伺服器、linux、python等基礎知識。2. 學習了解安全漏洞的原理。各種注入、跨站、繞過等等黑客技術的原理和實現。3. 學習安全漏洞的測試方法。基於原理,了解學習最簡單有效的安全漏洞測試方法,可以結合使用部分半自動化工具等。
4. 了解安全漏洞的防範知識。安全人員要知其然,還要知其所以然,不僅要知道如何去測,還要知道如何去改。教開發碼代碼,這才是你應該到達的境界。5. 學會監控。更多時候不管是面對一個系統,還是一個蜜罐,你都要用監控的方式來查看「腳本小子」們到底在用什麼方式嘗試攻擊你的系統,從而採取最合理的方式去避免攻擊。上面的自學路線說的比較寬泛,你可以閱讀安全測試自學路線來獲取更詳細的自學信息。當然除了自學外,也可以加入一些qq群等,與同行更多交流,互相學習。移動應用安全測試一般都會做以下三種方式進行檢測:
靜態分析: 利用apktool、dex2jar、jd-gui、smali2dex等靜態分析工具對應用進行反編譯,並對反編譯後的java文件、xml文件等文件靜態掃描分析,通過關鍵詞搜索等靜態方式將具有安全隱患的代碼進行摘錄並存入到檢測平台後台,為後續的安全檢測報告提供數據依據。
動態分析:對應用軟體安裝、運行過程的行為監測和分析。檢測的方式包括沙箱模型和虛擬機方式。虛擬機方式通過建立與Android手機終端軟體運行環境幾乎一樣的虛擬執行環境,手機應用軟體在其中獨立運行,從外界觀察應用程序的執行過程和動態,進而記錄應用程序可能表現出來的惡意行為。
人工檢測: 專業安全人員對待檢測應用,對其進行安裝、運行和試用,通過在試用過程中,逐步掌握應用的特點,並通過專業經驗,來圈定檢測重點。人工專業檢測在涵蓋基礎檢測和深度檢測的全部檢測項的同時,兼顧側重點檢測,給予應用更全面、更專業、更貼合應用的量身打造的檢測服務。
比如就有愛內測:http://www.ineice.com
推薦閱讀:
※web安全怎樣有實踐經驗?
※Web 安全是建立在內核等技術的基礎上的,所以 Web 安全相對低級?
TAG:Web安全測試 |