如何開始學習Android上的漏洞挖掘?


好久沒寫答案了,看到有大牛關注這個問題就來回答一下,就當一個年末總結,也給熟人看看,就不匿了。

從開發和逆向轉過來搞漏洞快半年了,最深的感觸是在安卓這一塊,普通大眾對於安全的認識尚處於迷信階段。各種新聞媒體對於惡意軟體和漏洞的報道嚴重失真,導致恐慌產生。就連安全圈的朋友也對這一塊存在大量誤解,很多人將其他平台的理解帶到安卓上來,然而實際上PC或者網路上之所以問題層出不窮,最根本的原因是歷史遺留的難題產生的一種困境,而現代化的移動端操作系統是一個受限更多的環境,基於以往環境的經驗,安全發展速度相當快。不僅是新聞媒體,每當移動端有安全事件發生時,就有一些半吊子偽專家為了各種各樣的私利出來當攪屎棍,混淆本來就混沌的公眾視聽。有一些錯誤認識在公眾心裡已經定型了,說出來也許毀三觀,但在安卓上,手機root之後更安全。除非有影響力的圈內大牛出來糾正才能引領輿論,我們這些還沒幹出成果的基層研究員說什麼都沒人相信。

我們團隊移動端這塊還在起步階段。由於業務需求,主要是搞應用層安全。我們這一塊有一個將會開源的安卓漏洞掃描平台還在研發,技術重點是靜態代碼審計,但是靜態代碼審計大家都懂的,如果沒有符號執行或者污點擴散分析等理論支撐,僅僅靠缺陷模式匹配有很多漏洞都掃不出來。實際上現在市面上免費的安卓漏掃平台都是只能掃風險,掃出來的漏洞大都屬於不可利用、很難利用甚至誤報。真正能掃出高危漏洞的工具只在一些有多年挖洞經驗的系統安全研究團隊里,人家也不可能放出來,只能自己慢慢搞。搞安卓真正有意義的只有兩個東西,加固和系統漏洞。花大量時間去搞應用層的本地漏洞其實意義不大,但每個移動端安全團隊都有這樣的業務,開發一個自動化的風險監測工具就足夠了,我們現在實際上是在追人家多年前的腳步。

挖漏洞真的是一件需要信仰和決心才能幹的事。工作了,學習的激情已大不如以前,幹什麼都變得浮躁。特別是如果有一類事情就只有你能幹,那麼每個人都會想讓你干點活。細小的事情堆起來,很難專心於一樣技術,也無暇顧及與人之間的情感,甚至沒有時間讓你難過。可能是每一個想搞系統漏洞的人都遇到的難題吧。


我覺得初學者最好不要上手就去搞漏洞挖掘,因為漏洞挖掘需要很多的系統基礎知識和一些理論知識做鋪墊,而且難度較大。。。較合理的途徑應該從漏洞利用入手,不妨分析一些公開的cve漏洞,如20143153,20147911,20153636等。目前這些漏洞都有比較好的資料,分析研究的多了,對漏洞的認識自然就不同了,然後再去搞挖掘就會易上手一點!我現在也是按照這樣的路線走。。,


我也是只知道一個大概,答主隨便看看就好:Android漏洞挖掘現在主流的是動態分析和靜態分析,靜態分析需要學習Java的一些逆向技術,控制流,數據流分析方法。動態分析可以研究一些動態分析工具,污染分析,程序插樁。


深入學習了解安卓系統內核。學習模糊測試理論,工具及方法。學習以往歷次黑帽大會中各種大神的思路方法。學習CVE中爆過的安卓系統漏洞以及google security patch


可以看看《安卓攻防權威指南》,很不錯的一本書。


推薦閱讀:

原運維人員一年經驗,請問在公司里轉型安全測試,如何快速上手?
如何使用Pilz的安全繼電器?(內有接線圖)
在美國的公共場合,遇到危險的言行應該如何應對?
電子銀行卡,電子身份證等是否可行,為什麼沒有推廣使用?
在飛機墜落時臨近飛機快要著地的瞬間跳下飛機是不是可以只受到小額跌落傷害呢??

TAG:黑客Hacker | 安全 | Android | 軟體安全 | 漏洞挖掘 |