做開發的如何轉安全?

大三軟體學生,目標明確想做安全,但總是不得其門。曾做ACM一年半但因不滿於小隊背演算法的方法而被踢(做的的確不太好不過代碼能力還是可以的大約7萬行代碼量)。因對Linux感興趣玩了兩年,稍解shell,Python。最近才發現做開發和安全貌似不是一回事,不知道該怎麼學習,有哪位前輩能講講嗎?


我無法解決你的這個問題,期待其他更懂行的人來回答,但是我還是想和題主分享一些東西。

我今年將畢業,我是土木的,自學編程(android這塊)到現在不過一年多,比起題主肯定是差遠了,對於安全方面差的就更多了。

我找了一個創業公司,做軟體開發,主要是java,android這塊,自己也學了點python。沒事的時候寫個小工具玩玩。

我對計算機一直非常感興趣。

真正好好開始學,就是在大三的時候,我開始編程,在公司實習的這段時間真是進步非常之快,超過了之前我一年斷斷續續所學。所以我覺得,要想在某行業進步快,那就得先入行。

比起題主,我的基礎非常之差,我意識到這點之後,然後買了計算機的4本基礎教材《計算機網路》、《數據結構》、《計算機組成與原理》、《計算機操作系統》,現在還沒學完,正在進行中。現在的主要時間放在編程上,有時候休息的時候就看看安全方面的書,跟著操作操作,最近看的有 @餘弦 的《web前端黑客技術揭秘》和 @大風 的《白帽子講web安全》。google每一個不懂的知識點,比較大的知識點就停下來專註學習,比如說javascript,我原來不熟,後來看了《javascript dom編程藝術》,熟悉知識點就繼續。

其實說了那麼多,我就是想說 @黑哥 那句話:堅持整!

開發和安全其實也有相同的地方不是?可以看看這個程序員如何做黑客?

要想成為大俠,光想是么用的,你想再多行俠仗義的場面也成不了大俠,看再多秘籍也是沒用的,看再多秘籍也學不會武功。練就對了。

書讀百遍,其義自現;拳打千遍,其形自見。

希望題主在夢想的路上越走越遠!


雖然不是安全圈子的人,但是出身於一個信息安全小組,身邊很多學習安全的同學,遇到的開發轉學安全的同學也比較多(其實也算不上開發轉安全,本來開發也很弱)。

  我們學校有一個專門培養信息安全方向的班級,每一年會挑選幾十個同學進入這個實驗班,從大三開始學習安全技術。他們大都是沒有安全基礎的人,Web相關的sql注入、xss、webshell、提權等等聽都沒聽過,Windows層面的反彙編、PE文件、病毒原理各種也是一竅不通,很多人連遠程桌面都沒用過,瀏覽器開發者工具也是不熟。

下面談一下在這樣的基礎下如何學習安全?

1. 心態:

  大三開始學習,如果跟一些大一大二就開始學習安全的同學來比,起步確實晚了。所以千萬不要跟那些已經有一兩年積累的人比了。安安心心的閱讀從書本教材,理解案例。保持學習的狀態就行,其實也不累。沒什麼堅持不堅持的,習慣了呆在實驗室11點才回去睡覺了。顯得我好像在努力,也比在寢室擼好多了。

2.書籍:

  就不扯那些計算機基礎學科的書籍了,其他的答案已經有提及了。近年 @大風@餘弦 等互聯網安全公司的人為安全佈道立下了很大的功勞。

  反正《白帽子講web安全》《web前端黑客技術揭秘》在這個班幾乎人手一本,還有不少簽名版。學校指定的教材是《黑客攻防技術寶典WEB實戰篇》《加密與解密》《信息安全標準與法律法規》。

3. 實踐:

  安全這個東西跟開發不一樣。如果沒人指點的話,實踐起來比開發麻煩不少。從2010年開始,信息安全類競賽在國內出現(當然這個是我自認為最早是從我們學校開始的),後續幾年國內很多高校都開始開展相關競賽。多多參加這些競賽,是實踐入門的絕佳途徑。

  對Web層面安全感興趣的,就多重現一下現有的漏洞,自己搭建環境,自己運用一下漏洞,慢慢理解品味。

  對Windows層面安全感興趣的,可以在看雪、吾愛破解這些論壇上,從crackme開始學習。

當然到最後你可能還是無法拿到 3BAT 實習offer。

但是保持你在學校的學習狀態,認真對待大三結束的暑期實習時間,你會進步的超快,等到秋季校招的時候,去閃瞎那些面試官的狗眼吧。

大三起步雖晚,但是我們可以在學校找知識,在實習找自信。

其實題主有7萬行的代碼量,缺的不是技術,我猜就是那點信心吧!加油!

----------

我只是一個切圖的,所以百分之八九十都會誤人子弟,望知友扶正。


這個問題Qcon現場也有人問我,因為參加Qcon好多都是開發者,我的建議是首先可以不要去接觸滲透、黑站之類的事情,而是從程序安全開始 也就是漏洞 開始。因為對於開發者來說 程序那是很熟悉的,然後熟悉下安全漏洞的一些遠離 基本就ok了。再我經歷來看有好幾個大牛都是從開發轉安全的,要不就是本身開發就很牛!

當然「堅持整」然後「整就牛」 !


我記得某大牛說過,沒有黑過別人代碼的程序員是寫不出安全的代碼的!


用黑客的眼光去看待用戶提交的數據,任何用戶可以控制提交的數據都是不安全的。比如購物車買個東西商品的數量是不是整數,是否可以小於0。用戶提交的ip是不是可以偽造,偽造之後不合法可以注入?xss?等等...


題主好好努力,有七萬代碼量只要堅持肯定不會弱的


先從安全開發開始,緊密結合你的特長 有能很好的轉型


首先了解Web安全相關概念,然後熟悉滲透相關工具,要掌握滲透實戰操作,你要關注安全圈的技術文章、安全事件、最新漏洞,

熟悉Windows/Kali Linux

學習Windows/Kali Linux基本命令、常用工具;伺服器安全配置;SecWiki-配置;腳本編程學習;源碼審計與漏洞分析;安全體系設計與開發


推薦閱讀:

利用wooyun進行滲透方面的學習前,有哪些先導的參考書籍?
網路勒索使用比特幣有先例嗎?以後有可能變成慣例嗎?
網路入侵需要什麼基礎知識?
參加黑客馬拉松需要有哪些技能儲備及注意事項?
有人瞧不起碼農,如何反擊?

TAG:黑客Hacker | 信息安全 |