1
本文作者: 李勤 | 2016-09-19 19:18 |
零基礎(chǔ)如何做黑客?這個話題你應(yīng)該在知乎看到過很多次。
當(dāng)然,黑客的分類很多,出于不想見到警察蜀黍的原因,本文探討的是黑客界比較友好的白帽子。當(dāng)然,有愿意聊聊的黑帽子,歡迎來跟雷鋒網(wǎng)編輯探討人生。你敢來,我敢寫。
《漏洞戰(zhàn)爭:軟件漏洞分析精要》的作者林大夫是鵝廠安全從業(yè)者,他打死不承認(rèn)自己是枚白帽子,更愿意用“安全從業(yè)者”這個稱呼來定位自己。不過,從一名大夫(對,你沒有看錯,我說的是醫(yī)生)到一名安全從業(yè)者,由他來指導(dǎo)一名小白如何成為小白帽,還是很有信服力的。
這是一個身在曹營心在漢的故事。
林大夫在踏上這條道路前,先被五年制醫(yī)學(xué)院收了編。
——一個醫(yī)學(xué)生為什么會轉(zhuǎn)行做安全?
——因為小說看多了。
事實上,有這么一個不太妥當(dāng)?shù)睦?。如果你剛交了一個為了結(jié)束單身生活而交的女朋友,突然又遇到了內(nèi)心的女神,那么你是不是會對女神朝思暮想,做一些和女神能勾搭上的事情?別說謊,說的就是你。
專業(yè)與愛好的博弈,尤其在學(xué)生時代,無異于此。
大一時,由于喜歡看黑客小說,林大夫就去圖書館找一些黑客書籍學(xué)習(xí),每天中午都不休息,幾乎天天都泡在圖書館看書,甚至翹課去看計算機(jī)書,《黑客傳說》《地獄黑客》《指間的黑客》……讓他著了迷。
作為學(xué)生黨,手里沒有太多錢,林大夫在大四才買上計算機(jī),之前只能去網(wǎng)吧、學(xué)校機(jī)房或者借用舍友的計算機(jī)。
讀者應(yīng)該可以感同身受——借來的書才是真正看得又快又好的書,沒有條件創(chuàng)造條件也要學(xué)才能學(xué)得深刻。
結(jié)果,當(dāng)年,林大夫就用諾基亞手機(jī)看完了《Windows程序設(shè)計》、《Windows核心編程》和《Windows環(huán)境下32位匯編語言程序設(shè)計》。后來干脆網(wǎng)購紙質(zhì)書來看,只有一個原因——因為這樣比在網(wǎng)吧看電子書更實惠。
除了節(jié)流是硬道理,“開源”也是一條重要途徑。來,我們記下這句話,愛看書的小伙子運氣不會太差,因為說不定還能用來賺錢。
林大夫就是這樣,在大學(xué)期間,他常給《黑客防線》雜志投稿,一方面可以提高個人技術(shù),一方面可以用稿費作生活補貼。后來,用稿費和哥哥的經(jīng)濟(jì)支持,他買下了第一臺屬于自己的計算機(jī)。后來,《漏洞戰(zhàn)爭:軟件漏洞分析精要》這本書有一半內(nèi)容是在那臺計算機(jī)上完成的。
”在求學(xué)這條道路上,我一直是一個人默默地前行著,就連一塊生活了幾年的舍友也不知道我在學(xué)習(xí)安全方面的知識,我買的一堆計算機(jī)書籍一直藏在宿舍衣柜最里面。在此過程中,自己走過很多彎路,甚至多次差點放棄,但很慶幸最后還是堅持下來了,并直至今日,依然在安全這條道路上前行著……“
在圈內(nèi)朋友的建議下,林大夫在大五(醫(yī)學(xué)五年制)上學(xué)期開始找安全相關(guān)的工作,最終順利拿到鵝廠的offer。
林大夫告訴雷鋒網(wǎng)——
”那年我還在廈門市第二醫(yī)院骨傷科實習(xí),門診部剛好不是特別忙,我在給一位腰椎患者做完針灸后,就接到來自騰訊安全中心的面試電話。然后趁主任不在,偷偷躲到門診部后面的樓梯口進(jìn)行電話面試,整個面試過程還算比較順利,第二天騰訊安全中心就來電說希望我到深圳總部面試。
HR面試我時,是以腰椎間盤突出的話題開場的,也算是一次別開生面的面試經(jīng)歷。
回到廈門后,我跟帶教老師說明了轉(zhuǎn)行情況,之后有上手術(shù)臺的機(jī)會,我都會主動讓給其他同班同學(xué),讓他們有更多上臺練手的機(jī)會,而我自己自然有更多的時間去專研安全技術(shù)?!?/p>
聽完林大夫的故事,你是否覺得這又是一個“別人家的孩子”?沒關(guān)系,在小白下定決心走向這條道路前,我們再來看看一個黑客的日常,看是否能吸引到你。
如果想成為一名專業(yè)安全從業(yè)者,請走A口,如果想當(dāng)業(yè)余白帽子,請走B口。
A口:攻防兼?zhèn)涫腔疽螅芏鄷r候研究攻擊技術(shù)是為了更好地防御。經(jīng)常要對業(yè)務(wù)產(chǎn)品作安全評估,針對漏洞制定修復(fù)方案,對于上線后的產(chǎn)品還要作安全監(jiān)控,有時大半夜服務(wù)器被入侵,還得爬起來加班。
或許有時就是下面這幫白天不用上班/課的業(yè)余愛好者搞的?!执蠓蛘f。
B口:更多人熱衷于研究攻擊技術(shù),因為攻擊更容易引起別人的興趣。據(jù)說成都那邊有一些白天搞站,晚上賣燒烤的白帽子,但他們在技術(shù)上其實與安全職業(yè)者沒什么區(qū)別,只是他們不用過多考慮產(chǎn)品安全防御的問題,他們可以刷刷各大SRC平臺或者國外其它漏洞獎勵平臺,如HackOne等。
總而言之,業(yè)余愛好者可以讓安全職業(yè)者加班,但安全職業(yè)者卻不能。林大夫很“沮喪”——可見有時職業(yè)者的地位比業(yè)余者還低。
當(dāng)然,雷鋒網(wǎng)宅客頻道編輯并沒有鼓勵你走上“業(yè)余者”的道路,如果你像《微微一笑很傾城》里的黑客KO一樣能做得一手好燒烤除外,這樣也許成都特別歡迎你。
如果A或B選項都能接受,我們再看看看你是否一定要是“別人家的孩子”才能走上這條道路。
Q:林大夫,具備什么潛質(zhì)或者特質(zhì)的人適合做黑客?或者根本沒有限制?
A:平常我們所謂的聰明人,大體可以分為三種:神經(jīng)型(先天智商高,比如著名數(shù)學(xué)家天才約翰納什)、經(jīng)驗型(后天長期經(jīng)驗習(xí)得,比如“日本壽絲之神“小野二郎)和反省型(自我反省、監(jiān)控和管理,比如“股神”巴菲特)。
這三類人里,我覺得對安全人才最重要的是經(jīng)驗型,靠的是后天長期不斷地學(xué)習(xí)和積累,很多時候根本談不上比智商;而反省型的人才可能更適合搞安全領(lǐng)域技術(shù)研究的,不斷地從錯誤中總結(jié)和啟發(fā),研究一些新的技術(shù),比如,不斷地改進(jìn)現(xiàn)有的漏洞挖掘和利用思路,以發(fā)現(xiàn)更多的漏洞,制定出更加全面的防御方案。當(dāng)然,這類人也需要后天長期學(xué)習(xí)。
所以,做安全最重要的是持之以恒的學(xué)習(xí)能力,以及不斷自我總結(jié)和提升的反省能力。
如果非要提供一種簡易衡量和測試方法來判斷小白適不適合進(jìn)軍安全領(lǐng)域的話,林大夫認(rèn)為,或許可以對實習(xí)生或畢業(yè)生嘗試下面這種方法:為測試者分配一項無任何相關(guān)安全領(lǐng)域知識的項目,看其如何在最短的時間內(nèi)完全所需知識儲備的學(xué)習(xí),并以最快的速度完成項目工作。
在判斷自己是否適合踏上“征程”的這一刻,我們將迎來一個干貨分享——到底怎么學(xué)才能成為黑客?
——少年,我看你骨骼精奇,是個當(dāng)黑客的好材料。
——嗯?
——所以,不如來我們黑客教育學(xué)校吧?!
——滾!
看到這段對話,想必你要會心一笑,當(dāng)年號稱“系統(tǒng)全面、包教包會、價格優(yōu)惠”的黑客教育平臺,基本上該進(jìn)去的都進(jìn)去了,你懂的……
這條道路看上去行不通,我們換一條。
安全可以細(xì)分很多領(lǐng)域,比如Web安全、軟件安全、移動安全、無線安全、網(wǎng)絡(luò)安全……林大夫建議,根據(jù)自己興趣選擇就是了,但相信依然會有很多人搞web,因為“黑站”酷炫。
小白進(jìn)階,總會遇到諸多困惑,林大夫的心得如下:
1、 初學(xué)時經(jīng)常會找一些帶有”黑客“字眼的書名或文章來學(xué)習(xí),但慢慢會發(fā)現(xiàn),最后還是回歸到一些計算機(jī)基礎(chǔ)課程上面,比如C、匯編和系統(tǒng)原理等等;
2、 “用以致學(xué)“可能比”學(xué)以致用“效率更高,就是在需要用的時候,帶有目的去專門學(xué)習(xí)相關(guān)知識,然后運用到實踐中,比如開發(fā)個工具之類的,這種方式往往比學(xué)了之后等待被用,更高效,更掌握得牢固;
3、 遇到解決不了的技術(shù)問題和困惑是再所難免的,有時不妨先放一放,學(xué)習(xí)一段時間后再回頭看看,如果解決了也是一種進(jìn)步,當(dāng)然也可以上一些論壇(比如看雪)去請教他人;
4、 最后就是堅持、堅持、再堅持地不斷學(xué)習(xí)……
那么,到什么程度可以把手伸向漏洞?
林大夫說——
從事Web安全可能更容易入門,但時間久了,會遇到瓶頸,屬于“前期英雄”。
從事二進(jìn)制安全入門門檻高,需要較長的學(xué)習(xí)時間,拼的是技術(shù)底子,屬于“后期英雄”;
如果是想盡早有漏洞產(chǎn)出,可能Web漏洞是最好的選擇方向,對于初學(xué)者可以幫助樹立信心和興趣??梢愿恍¦eb安全教程或書籍,針對一些漏洞實驗平臺進(jìn)行實踐,比如WebGoat。
Fuzzing(模糊測試)是當(dāng)前主流的軟件漏洞挖掘技術(shù),一般不根據(jù)漏洞類型來劃分,而是依據(jù)攻擊面來開發(fā)相應(yīng)的Fuzzer工具,或者基于開源Fuzzer做二次開發(fā)。當(dāng)然,最理想的還是各種通用型的Fuzzer,只不過越通用,可能被挖過,被撞洞的機(jī)率就越大。挖洞都是拼思路,思考一條少有人走過的路,然后開發(fā)相應(yīng)的fuzzer,或許就能有所收獲。
在向白帽子進(jìn)階的過程中,有一件事林大夫和雷鋒網(wǎng)編輯要友情提醒:
白帽子被捕事件與烏云升級事件再次敲響警鐘,一切非授權(quán)的滲透測試都是非法的。很多白帽子沒有認(rèn)清測試與入侵的區(qū)別,有的人都拖了別人數(shù)據(jù)庫,仍美其名為”友情測試“,即使是授權(quán)的測試行為,如果測試過程中仍采用破壞式、入侵式的手段,廠商依然可以追究法律責(zé)任?!俺鰜砘?,早晚要還的!”
不要碰黑產(chǎn),不要搞入侵破壞,才能在安全這條道路上走得更久更遠(yuǎn)。
最后,附上林大夫在2014年個人博客上撰寫的安全書籍閱讀心得,各取所需,豐儉由人。
1.移動安全篇
國內(nèi)移動安全書籍很少,主要還是以國外的居多,雖然大部分未引進(jìn),但是很多可以在網(wǎng)上找到高清彩色英文原版,有些可能就是官方自己發(fā)出來的。雖然國外這方面的書籍多,但看過幾本Andorid安全書籍,感覺還是一般,深度不夠,比如《Android Security:Attacks and Defenses》《Android Apps Security》《Mobile Application Security》《Mobile Malware Attacks and Defense》,國內(nèi)的《移動互聯(lián)網(wǎng)之智能終端安全揭秘》也是不推薦,過多列點組裝,缺乏個人主觀理解,《Android安全機(jī)制解析與應(yīng)用實踐》更是別買,學(xué)術(shù)派寫的wiki式書籍。
筆者推薦幾本:《Android Security Cookbook》《Android 軟件安全與逆向分析》主要是講Android應(yīng)用安全,Android系統(tǒng)安全的書籍尚無專著出版,不過4月份《Android Hacker’s Handbook》就要出版了,看目錄還是感覺蠻有料的,iOS安全書籍相對少一些,主要有《iOS Hacker’s Handbook》(主要講系統(tǒng)安全,別買中文版,譯者缺乏軟件安全基礎(chǔ),錯誤太多,令人不忍直視)、《iOS應(yīng)用安全攻防》(英文版,偏向應(yīng)用安全)、 《iOS應(yīng)用逆向工程:分析與實戰(zhàn)》(iOS應(yīng)用逆向方面的書籍),其它關(guān)于Android與iOS開發(fā)的書籍,網(wǎng)上電子版很多,自己挑著看 吧,移動安全方面的書籍,我大多是看電子書,買的紙質(zhì)書基本都是不行。所以目前,移動安全書籍,還是盡量看國內(nèi)英文原版吧,如果對Android安全感興 趣的,看下《Android Hacker’s Handbook》一書(補充:目前網(wǎng)上已有電子版)。
2.程序設(shè)計篇
此處 程序語言主要以C、ASM為主,畢竟自己主要也只是學(xué)這兩門語言,其它腳本語言,如PHP、ASP就不提了。關(guān)于C語言的書籍就有傳說中的 “C語言四大名著”,即《C程序設(shè)計語言》《C和指針》《C陷阱與缺陷》《C專家編程》,感覺在C編程上這幾本書就夠用了,至于數(shù)據(jù)結(jié)構(gòu)和算法可參 考其它國外名著。國產(chǎn)的編程書籍沒幾本可出手的,關(guān)于C入門書籍,很多人會推薦譚浩強那書,最初我也是讀這本書入門的,但后來慢慢地發(fā)覺那書不是很好,錯誤不少,編程風(fēng)格也不好。對于那些寫著精通XXX、24小時XXX、30天XXX、XXX從入門到精通,這些書都是拿書名來忽悠人的,純粹是作者用來騙稿 費的,對比一下那些國外名著的書名就知道了,一本好書一般是不會用那些土名字的。
我很贊成——半年之內(nèi)不接觸的技術(shù),就不用去買這方面的書籍了。關(guān)于ASM主要就《80x86匯編語言程序設(shè)計》《windows環(huán)境下的32位匯編程序設(shè) 計》這兩本,匯編語言的書籍相對會少一點,一些網(wǎng)上書店的程序設(shè)計一欄中甚至沒有asm一類。很多編程書籍的內(nèi)容寫的都是千篇一律,比如C語言書籍, 不外乎都是些變量、數(shù)組、指針這些,但是某些書籍中就會有提到編程風(fēng)格、內(nèi)存優(yōu)化、樹、鏈表、折半搜索法,GDB調(diào)試,linux方面的知識,比如《c primer plus》《C和指針》,這些也算是書本的一個亮點。關(guān)于windows編程,首推《windows程序設(shè)計》上下冊、《windows核心編程》,其它的感覺也沒必要看太多,還是以實踐為主。
編程書籍由于附有很多代碼,在電腦上看電子版的感覺很傷眼,容易眼疲勞,有必要的話,可以買實體書來看,而且在實際應(yīng)用中,有時可以再拿出來參考參考,方便查閱。與此同時,也要奉勸大家“紙上得來終覺淺,絕知此事要躬行”,特別是對于編程學(xué)習(xí)者,一定要動手寫代碼,光看書是沒用,這也是我曾經(jīng)犯過的錯誤!而且有些書是用來參考查閱,不是用來看的,不然即使你把那些牛書都看完 ,到最后也可能連幾句代碼也寫不出來,最后受傷的永遠(yuǎn)是你自己!
3.逆向工程篇
關(guān)于逆向工程這方面的書籍,自然是首 推看雪出版的《加密與解密》,在這方面,看雪的實力不會比國外的差,那里是逆向?qū)W習(xí)交流的好場所。在加解密第3版出版的時候就曾出現(xiàn)過山寨版的,因此大家 在購買時得看清楚了,最好到正規(guī)的書店購買,目前可能網(wǎng)上買不到了,不過網(wǎng)上有電子版。另外,這方面的書籍還有《黑客反匯編揭密》《黑客調(diào)試技術(shù)揭密》 《逆向工程揭密》,國內(nèi)出版的《軟件調(diào)試》也是本牛書,彌補了國內(nèi)這方面的空缺。還有出版的《IDA權(quán)威指南》也是本不錯的書籍,詳細(xì)講解了IDA的 方方面面,看了之后,你會發(fā)現(xiàn),會用IDA與不會用的差別有多大了。
看雪翻譯小組也曾出版過一本《IDA Pro代碼破解揭秘》,不過這書我也沒看過。在逆向工程這方面的書籍也差不多就這么幾本了,其它像加解密入門實戰(zhàn),加密與解密實戰(zhàn)超級手冊,加解密全攻 略……這些基本上都可以摒棄,基本都是抄看雪加解密一書上的東西,大家無須花金錢、時間和精力在此上面。關(guān)于獲取最新書訊的方法,大家可以訂閱互動出版網(wǎng) 計算機(jī)新書的RSS,只要有計算機(jī)新書出來立馬就知道了,它上面經(jīng)常更新,不過很也是應(yīng)用技術(shù)書籍,對于這些書籍,很多是沒必要買的,比如什么 windows 7使用大全,精通注冊表,windows操作XXX,有必要的話,直接百度、google就行了,沒必要花錢去買這類書籍。
4.腳本安全篇
在 腳本攻防方面的書籍,最早的曾云好寫的《精通黑客腳本》,這書寫得相當(dāng)全面,由淺入深,雖然不厚,但排版密集,內(nèi)容還是很多的,只是紙質(zhì)不太好,很 粗糙,里面有很多滲透實戰(zhàn)案例,當(dāng)年國內(nèi)這方面的法律還不是很嚴(yán)格,若是放在今天,可能里面一些內(nèi)容會被刪除掉。另外大家也可看看老外的 《黑客攻防技術(shù)寶典:WEB實戰(zhàn)篇》(重點推薦)《xss attack》《sql injection》(中譯本:《SQL注入攻擊與防御》),以及《WEB安全測試》,英文版的網(wǎng)上有電子書。近兩年國內(nèi)出版的,主要就《白帽子講WEB 安全》、《WEB前端黑客技術(shù)》,推薦一閱。
5.系統(tǒng)底層篇
當(dāng)年看的第一本系統(tǒng)原理書籍是《深入理解計算機(jī)系統(tǒng)》,很不錯的一本書。其它此類書籍還有《深入解析windows操作系統(tǒng)》《widnows系統(tǒng)原理與 實現(xiàn)》等,國內(nèi)之前還出了本《windows操作系統(tǒng)原理》,上面還寫著重點大學(xué)計算機(jī)教材,后面看了亂雪博客上一篇文章后才知道那書是抄襲的,還被原作者控告了,最后還賠償了,當(dāng)年我還從頭看完了。
關(guān)于溢出攻擊的書籍,國內(nèi)主要有《網(wǎng)絡(luò)滲透技術(shù)》、《0day安全:軟件漏洞分析技術(shù)》《灰帽黑客》,雖然網(wǎng)滲一書很早出版,其中有些已經(jīng)過時,但是其思想是不會過時的。若想獲取最新書籍,最好的方法還是上面說的:訂閱RSS。對于一些不熟悉的技術(shù)書籍,一定要先看完整目錄,然后找找網(wǎng)上是否有電子版的,如果有就先看看再決定是否再買,另外如果你已經(jīng)買或看過同類的經(jīng)典書籍,就需要重新考慮是否真的有必要買 了。講了那么多要花錢的書,下面講講免費的一套,那就《intel開發(fā)手冊》,這一套是由英特爾公司免費向全球贈送的書籍,共五本,之前我還訂了兩套,全都從美國寄到學(xué)校來了,原本以為第一封郵件沒收到,就再發(fā)了一封,沒想到Intel居然連送兩套過來,真是大方得不行?。‖F(xiàn)在他們已經(jīng)不再寄送紙質(zhì)書,僅寄送包含電子版的光盤?!?/p>
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。