Web安全職業發展路線解讀
同學,恭喜你,經過幾年的學習與奮斗,你即將成為一名Web安全工程師,幸運而不幸。
幸運的是,這是一個朝陽行業,正在飛速發展,行業里機會很多,國家政策大力支持。相信選擇了這個行業的你,骨子里有一種『極客基因』,擁有著破壞力巨大的黑客技術,卻又心向光明。在這個網絡愈加重要的時代,我們在努力把我們的網絡安全建設得更好,你將成為我們新的一份子。
不幸的是,這個行業剛剛起步,并不是所有企業都需要安全工程師,好的崗位競爭激烈。而作為安全從業者更是有著一般的計算機從業人員所沒有的風險,需要步步小心,可能某些行為會游走在法律邊緣,稍有不慎便會越界,這不是在危言聳聽。
各位同學有的是安全專業出身,有的則是傳統計算機專業或其他專業,而在走出校園前,大家學到的更多的是基礎知識,很少會有老師提及安全行業工業界的形式。下面,我會就Web安全目前的形式以及如何提升自己的競爭力兩個方面進行詳細的介紹,一文使你快速了解整個行業。
一、Web安全的形式
1x01 行業形式
計算機圈的職業向來火爆,如果問如何看哪個方向是目前比較火的——看各大培訓機構最新開設的培訓班準沒錯。是的,Web安全是目前較為火熱的行業之一,各大培訓機構也紛紛開設相關的課程。
目前,對于網絡安全國家是非常重視的,2017年還專門出臺了《中華人民共和國網絡安全法》,安全不再是『黑客』的專屬詞,開始逐漸走向正規化。國家推動所導致的直接結果為:
市場對于安全人才需求激增,安全相關的崗位明顯增加
各大CTF層出不窮,甚至有很多都是由官方機構牽頭主辦的
HW行動常規化,良性循環導致需要越來越多的人進入這個行業
總體而言,安全行業整體發展很好,對于不了解安全行業而想多找找機會的同學,歡迎大家成為我們的一員。
1x02 就業前景
雷軍曾說過,『站在風口上,豬都能飛』,選對行業是一個非常重要的事。一個非常現實的問題就是:有些行業的上限就很低,985應屆生的薪資甚至比不上一些身在明星行業的雙非學校應屆生。
在眾多計算機相關的行業中,安全確實是比不上算法的,但能和開發55開,在運維與測試之上。在北京,Web安全行業的應屆畢業生薪資普遍在8000-15000,本科生和碩士的區別不是很明顯。
目前行業急需更多人才,每年很多信息安全專業畢業生都沒有進入安全行業,而是成為了程序員。就現在來說,Web安全的行業紅利仍在,目前入行仍可分得一杯羹(去大廠容易、晉升容易)。
1x03 職業風險
『在互聯網上肆意的掃描,尋找漏洞,賺取漏洞賞金。。』安全圈一直以來就是這么發展過來的。
但自從《網絡安全法》正式發布后,互聯網漏洞就成為了一個非常敏感的東西,本就介于灰色地帶的它被徹底劃分到違法的一側。
任何未授權的測試都不要進行,不然可能面臨刑事責任。即使是有授權的測試,也不要去大批量獲取數據,證明有危害即可。
二、提升自己的競爭力
相信很多同學都有過這樣的感受,那就是你已經到達了瓶頸,不知道該怎么提升自己了——這也是我曾經所擁有過的困惑。
這是因為安全行業現在是個朝陽行業,新人多,社區整體的傾向是偏向于萌新的,因此多是初級教程,偶爾能看到一兩篇稍深入的文章,卻不成體系,很難再想剛開始入門時那樣快速進步了。
技術總是不進則退的,本篇文章的重點便是這一節,干貨滿滿,教你如何自成體系,從三大方面吸收經驗平衡發展自己,在進入行業的同時提升自己的實力。
2x01 技術實力
技術人員始終是以技術為核心的,在工作中,我們不僅要完成好本職工作,更要關注安全社區的動態、安全知識的發展,不斷的充實自己。否則,如果工作挑戰性不足的話,很容易就會止步不前。
10年前,絕大多數網站都存在SQL注入漏洞與XSS漏洞,那是個阿D明小子一把梭的年代。就算那個年代的黑客大神來到10年后的今天,相信他也難以找到一份Web安全相關的工作,這便是時代進步所導致的技術淘汰性。
發展技術實力可以從以下四方面入手:

基礎漏洞
首先,我們要做到基礎漏洞了然于胸,且每個漏洞都在實戰中挖到過對應的實例。如OWASP TOP 10相信大家作為一個合格的安全工程師都不會感到陌生,但對于一個漏洞不能浮于表面,我們可以進行以下的『靈魂拷問法』來找到自己的不足:
你能否從原理上解釋此漏洞為何會出現(所有語言層面),而不是只用代碼舉例?
業界目前對于此漏洞最好的修復方式?
此漏洞在實戰中所能造成的最大危害(可以分情況討論)?
在日常滲透中,此漏洞最可能出現在哪些業務場景?
你是否知道關于此漏洞的奇技淫巧(bypass、深度利用方式、在不同語言中的表現等)?
此漏洞在CTF中此漏洞都曾出現過哪些tips?
除以上已知內容外,我們還要時刻關注社區是否出現有關此類漏洞的新技巧。如16年SSRF出現的DNS重綁定。
主流語言安全
語言不同也就意味著特性不同,開發習慣不同,生態不同,自然漏洞點也就不同。如Java安全現在最火熱的點是反序列化漏洞的研究,而PHP則更偏向于語言技巧、特性挖掘所帶來的小Tips。作為一個安全工程師,在熟悉基礎漏洞的前提下,最主要的就是有一個擅長的方向,即XX語言的安全。
如選擇深入研究Java安全方向,則需要從一個開發者的角度開始,對JVM、Java開發生態、Java開發習慣等都有所了解,并且具有操作系統、數據庫等扎實的計算機基礎。深究某個領域不能只看漏洞的表面,一定要從語言的習慣,生態的發展切入。這也是我常強調的,開發與安全不分家的原因,如果沒有開發基礎,你就只能玩玩別人挖出來的漏洞而已。
高影響力漏洞
對于成體系的漏洞,尤其是你所著重發展的語言領域內某重要開源組件的漏洞,一定要親手調試一遍。如研究Java安全,則Struts2、Weblogic系列的漏洞便一定要了然于胸。
調試漏洞的益處有二:
第一,熟知漏洞的原理及利用方式,思考它作為一個非常專業的項目,為何會出現這樣的漏洞?它在哪個方面做的不夠好?這對我們日常進行代碼審計非常有幫助,因為這樣的錯誤點很可能再被我們遇到,它能幫助我們積累特別的審計思路,這樣的經驗多了,也便成了大神。
第二,我們可以熟知開源項目的內部運行原理,得知漏洞爆發的走向。開源項目在哪里做了特別的防御?怎么做的?為什么這樣的漏洞之前你沒有覆蓋到?遺漏了什么?這樣的思考有助于我們挖掘此項目的新CVE,這樣有質量的CVE,能頂的上100個辣雞CMS的CVE。
非主流新興漏洞
關注BlackHat或其他一些安全社區,我們總能發現一些小眾的新興漏洞。有些在特別的場景下具有很高的攻擊力,有些則普遍受用,但危害較低。關注這樣的漏洞有以下好處:
跟得上時代潮流:這很重要!當年Java反序列化漏洞也不是主流漏洞,但如今已經成為Java安全中最受人矚目的點。想象如果你是當年第一批跟著研究這個方向的人——可想而知有多少高質量CVE了吧?
容易有新的發現。一般新型的漏洞的潛在危害大家挖掘的都不是很深,如果著手研究,可能很容易就能發現能夠深入的點,這樣就能很容易寫出高質量文章甚至在各種會議上演講。
2x02社區影響力
告訴大家一個公開的秘密:安全圈其實是個很小的圈子,總是那些人在不同公司間跳來跳去,雖然現在有很多新人涌入,但還是遠遠不夠,可能你今天去別的公司面試,明天你的領導就知道了(面試官和你領導是好友)。圈子小有小的好處——那就是社區影響力更好打造,作用也比想象的要大(想象一下面試直接刷臉刷id)。
那么如何發展社區影響力就是個很重要的事了,我將從以下5個方面來闡述:

開源項目
不是程序猿還需要注重開源項目嗎?答案是肯定的。
開源項目代表的是你的編程水平,安全開發能力。在工業界,不論什么漏洞,最終都需要走向自動化(哪怕是邏輯漏洞,我們可以case by case地實現)。出色的安全開發能力可以使你更容易進入大甲方。下面給想要在開源項目上下功夫又不知道如何開始的同學一些方向:
漏洞的Poc/exp,可以在研究系列漏洞的同時編寫,這樣就能集成一個XX組件一鍵利用工具。
自己的掃描器,不需要大而全,建議小而精,專注而深入的解決某一類漏洞。如低誤報高檢出的DOM型XSS掃描器(并沒有想象中那么簡單,和反射型XSS的檢測不是一個難度級別)。又如基于語法樹的可持續添加掃描規則的白盒自動化審計工具。
能夠防護某一類漏洞的高質量安全組件,如模仿Go語言的html/template寫一套其他語言的(如Python)基于上下文語境識別的自動進行轉義防御XSS的模板引擎。
參會&演講
在各種會議上演講似乎是大佬們的專利,但如果你參加的會議夠多就會發現,很多『會棍』演講的內容,題目看上去高大上,實際上就是提出一個方向,范范的講成果,講理想化,全程完全不和實際技術掛鉤,沒有絲毫價值。是不是瞬間有了一種『我上我也行』的感覺?
當然,有非常多的會議上也是干貨滿滿的,建議大家先從團隊分享、部門分享開始,講自己的小Tips或是某類漏洞的總結,經驗多了后就可以嘗試為一些入門級會議投遞議題。
能夠在會議上做分享的人,要么是有真的干貨,要么是題材足夠熱,要么是title足夠高,如果有機會,大家一定要把握住。
社區&媒體
寫博客,寫分享文章。這是似乎是社區影響力提升中最容易做到,但效果最不明顯的。但毫無疑問,這是一個好習慣,混跡于各種安全社區,在能夠快速了解行業動態,漏洞情報,還可以和各種大佬交朋友,學習經驗。
做安全,絕對不能陷入孤獨的一人狀態。
漏洞挖掘&比賽
通用漏洞及SRC漏洞的重要性不用我多說,大家都明白。這比一般的CTF比賽獎項還要重要一些。
現環境下,不建議直接挖掘互聯網漏洞了,所有的滲透測試工作都必須要在有授權的情況下進行,并且,作為一個安全人需要有底線,知道哪些領域是自己一定不能觸碰的,我們很輕易就能對一個網站造成傷害,要懂得淺嘗輒止。
CVE沒有大家想象的那么難。通用漏洞,如小CMS、小開源項目的漏洞,都是可以申請CVE的,但是比較水,含金量很低,但這至少證明你有獨立代碼審計能力,而不是只會拿個工具跑。
建議大家多挖高質量CVE(如著名開源組件,或Apache基金會名下的項目的漏洞),挖掘思路在上面高影響力漏洞小節中有所提及。
工作
剛從學校步入社會時,學校的title幫你的能力背書,而工作久了,自然需要公司的title幫你背書,當然,還有你在公司的title。同時,搞安全去大廠,和更優秀的人進行思維的碰撞,會更容易擦出耀眼的火花。而且通常來說大廠的項目更加超前,也更容易使大家在工作中的得到提升,專精某一方向。
2x03 通用軟實力

對于這一項我就不細講了,知乎上比我寫得好。
不過當工作年頭長了,級別高了,軟實力真的很重要。雖然很多上升到方法論層面的東西都讓人覺得很扯淡,但只要大家能摸索出屬于自己的方法,就可以感受到它所帶來的價值。當然,剛入行的同學還是著重發展技術實力和社區影響力兩項。