<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python | 從安全工程師轉(zhuǎn)型安全研發(fā) 3 年來的小結(jié)

          共 4049字,需瀏覽 9分鐘

           ·

          2021-07-11 09:41

          一、寫在前面

          本篇文章是出于自己的認(rèn)知和觀感,不代表任何立場。寫這篇文章的目的初衷是幫助網(wǎng)絡(luò)安全從業(yè)人員的發(fā)展與提升。

          如果你存在在網(wǎng)絡(luò)安全領(lǐng)域的攻防遇到了瓶頸或在銷售技術(shù)支持類崗位力不從心的感覺,推薦你看這篇文章。當(dāng)然你是校招生那更好了,因為你可以跳過我寫 Python 的階段直接去第二階段深化自己的專業(yè)方向能力。

          二、我轉(zhuǎn)型的動機與原因

          最開始我自己首先是項目經(jīng)理出身在乙方從事安全系統(tǒng)的交付與售后工作,然后從事的是滲透測試與應(yīng)急相應(yīng)的工作。在兩年的實踐過程中我察覺了自己在滲透測試領(lǐng)域能完成基本的滲透測試與業(yè)界頂尖的白帽子相比仍有差距,應(yīng)急響應(yīng)方面雖然在業(yè)界做出了幾個相對能有所交代的case,但總體而言還是基于套路和經(jīng)驗的堆疊感覺還是很快達到了技術(shù)瓶頸。加之當(dāng)年互聯(lián)網(wǎng)甲方的風(fēng)潮,我從乙方轉(zhuǎn)型為甲方。開始接觸安全研發(fā)。簡言之就是攻防領(lǐng)域天賦有限,加之行業(yè)浪潮有了轉(zhuǎn)型。

          三、轉(zhuǎn)型遠期收益和我的看法

          優(yōu)勢:

          研發(fā)工程師是大多數(shù)職業(yè)中發(fā)力最早的行業(yè),對于同齡人而言獲得一份可觀的收入。對自己的人生規(guī)劃如買房、結(jié)婚都有比較好的先發(fā)優(yōu)勢。

          研發(fā)工程師的發(fā)展路徑比較明確,只要用功肯吃苦,肯學(xué)習(xí),主觀能動性強。薪資是一定能追上行業(yè)預(yù)期的,只要技術(shù)過硬在一定年齡前薪水一定是穩(wěn)步上漲的。

          學(xué)習(xí)路徑比較明確,無論Java,Golang,C。網(wǎng)上“八股文”較多。一方面八股文的確提升內(nèi)卷,但積極的一面,即使你在個相對小的平臺也能獲得大廠的知識點與技術(shù)經(jīng)驗。平臺制約相對小一些,即在大公司才能做到業(yè)界核心的項目,小的平臺做不到。在一定年齡內(nèi),自身的能力水平基本上與公司職級崗位成正比,如果在一個中型公司都不能去作為一個系統(tǒng)核心主程,去大公司大概率也無法實現(xiàn)這個目標(biāo)。

          劣勢:

          所有程序員的劣勢,安全研發(fā)都存在。上文一直在強調(diào)在一定年齡內(nèi),請務(wù)必注意這個前提。如果想轉(zhuǎn)型要趁早,中肯建議工作3年轉(zhuǎn)型要慎重,工作5年以上盡量不要轉(zhuǎn)。

          四、如何開展轉(zhuǎn)型工作與制定職業(yè)發(fā)展方向

          這個段落是本文的干貨,會記錄自己幾個階段是如何發(fā)展的,成功的點以及遇到的痛苦。僅供后輩們參考。

          Step 1:安全攻防轉(zhuǎn) python

          我自己解決的問題:

          成功由一個安全人員轉(zhuǎn)型為了Python,Python作為一門工具語言使用場景極廣。從企業(yè)內(nèi)部一個人全棧構(gòu)建一個Web平臺的CRUD,到機器學(xué)習(xí),到大數(shù)據(jù)Spark,F(xiàn)link都有覆蓋的領(lǐng)域。綜合自己的安全業(yè)務(wù)經(jīng)驗滲透攻防等,能很好的把業(yè)務(wù)經(jīng)驗轉(zhuǎn)化為代碼。遇到海量數(shù)據(jù)可以寫個Spark腳本試一下,遇到機器學(xué)習(xí)分類場景可以模型訓(xùn)練下。原來的攻防積累的業(yè)務(wù)場景與腦洞實踐能力獲得了極大的提升。

          做得不好待改進的點:

          我是半路出家程序員。感覺這個階段沒做好的點有兩個

          第一、研發(fā)工具使用生疏:單步調(diào)試,線程調(diào)試等、比如IDE的快捷鍵等,給人觀感不如應(yīng)屆生。

          第二、命名規(guī)范比較粗獷:駝峰大小寫,注釋,Swegger不會用等。會讓有2-3能的程序員看起來有點外行。

          當(dāng)時對自己的能力認(rèn)知不太準(zhǔn)確,當(dāng)時在公司實現(xiàn)了一套堡壘機系統(tǒng),覺得自己技術(shù)非常厲害。實際上只達到了實現(xiàn)功能的研發(fā)水平,無論專業(yè)的大廠方向,還是服務(wù)穩(wěn)定性都很有差距。現(xiàn)在回想起來應(yīng)該多去公司和線上業(yè)務(wù)的程序員溝通,讓他們提出問題并指正。

          Step 2:python 轉(zhuǎn)對應(yīng)場景語言,從做廣到做精

          自己目前在這個階段,已經(jīng)度過了接近三年的時間,這塊由于尚未結(jié)束,身在進展過程中不能更好的客觀復(fù)盤自己做的好與壞。這個段落更多是從安全研發(fā)的視角向大家分享如何從做廣到做精,避免盲目的學(xué)習(xí)各種技術(shù)給企業(yè)與別人一種雜而不精不精的感覺,導(dǎo)致浪費自己寶貴的職場時間與獲得不了良好的職場機會。

          數(shù)據(jù)分析、威脅情報挖掘、風(fēng)控數(shù)據(jù)挖掘等:

          這個領(lǐng)域可以保留自己的Python語言能力,把鉆研語言細節(jié)的精力:如如何更好的寫出高內(nèi)聚,低耦合的代碼轉(zhuǎn)變?yōu)檠芯咳绾胃玫睦矛F(xiàn)有的機器學(xué)習(xí)算法解決實際的業(yè)務(wù)問題。把鉆研語言細節(jié)的精力留出來去學(xué)習(xí)統(tǒng)計方法、機器學(xué)習(xí)算法理論、頂會文章復(fù)現(xiàn)等。數(shù)據(jù)分析重要的是從數(shù)據(jù)中挖掘出來準(zhǔn)確的業(yè)務(wù)詳情而非工程化穩(wěn)定性能力。所以在語言本身,面向?qū)ο螅琧rud性能調(diào)優(yōu)等優(yōu)先級可以先放一放。更多精力留在補算法,補高數(shù),補統(tǒng)計學(xué)原理,補機器學(xué)習(xí)模型經(jīng)驗,補調(diào)參經(jīng)驗,復(fù)現(xiàn)頂會論文等場景上。

          安全服務(wù)系統(tǒng)開發(fā)方向:

          安全服務(wù)系統(tǒng)開發(fā)包括KMS、安全管理平臺、WAF規(guī)則下發(fā)、風(fēng)控攔截系統(tǒng)的開發(fā)等。這一塊更像傳統(tǒng)的BAT、MD后端開發(fā)工程師。目前我自己走的是這個方向,首要任務(wù)是把自己從寫功能提升到寫穩(wěn)定系統(tǒng)的能力上,實現(xiàn)功能只是最簡單的一步,一個KMS可能會耦合大量的在線場景,通過Retry等機制維持4個9是基本要求。這時要提升自己的系統(tǒng)化工程的分析結(jié)構(gòu)能力。

          舉個例子,如WAF這個場景是一個要求最終一致性的場景,即我希望最終每臺機器上跑的規(guī)則是一樣的,并且規(guī)則盡可能的在機器上生效,避免出現(xiàn)規(guī)則下錯無法摘除的場景。那么下發(fā)過程中,我要考慮到各種邊界條件,如網(wǎng)絡(luò)不通,機器假死,而無法下發(fā)策略的情況。我是引入etcd,還是推模型與拉模型結(jié)合。拉模型用http還是rpc等都是需要考慮和學(xué)習(xí)的問題。這塊的技能技術(shù)棧可以參考bilibili和各種公眾號上的大廠架構(gòu)課程與面試課程。

          從語言方法,為了滿足高可用穩(wěn)定,高內(nèi)聚低耦合的系統(tǒng)。我們要從動態(tài)語言去轉(zhuǎn)一門靜態(tài)語言,如Golang或者Java,這個觀點可能不成熟,但現(xiàn)在絕大多在線業(yè)務(wù)使用PHP,Python互聯(lián)網(wǎng)公司在轉(zhuǎn)向GO,Java的公司維持原有Java的技術(shù)棧,在特定的C語言場景選擇Go作為備選。

          學(xué)會估算性能與壓測,要保證說出去的保證,絕對能實現(xiàn)。自己承諾的要求,絕對不出錯。

          網(wǎng)絡(luò)安全研發(fā)(零信任,云原生、抗D、NTA)與服務(wù)器(HIDS)方向:

          如果你在寫Python語言為主的的公司,面臨了Python轉(zhuǎn)Go重構(gòu)服務(wù)端的過程,并且你也參與了一些HIDS的相關(guān)agent的開發(fā)和維護工作的話,走這個方向是比較合適的。否則個人建議是不建議走這個方向的。這塊涉及很多協(xié)議與Linux自身內(nèi)核API的場景,如果作為半路出家的安全研發(fā)學(xué)習(xí)成本是非常高的,而且也要耐得住寂寞。

          在我寫Golang的時候沒有這方面認(rèn)知。這些方向主要的能力主要在于協(xié)議分析能力以及Linux Device Driver等方面的知識。這個方向可以深化Golang語言學(xué)習(xí),有能力可以多看看C語言的項目,很多Golang中的場景最終也是Golang耦合C來實現(xiàn)的。比如Linux agent開發(fā)需要了解hook機制,也需要有用戶態(tài)和內(nèi)核態(tài)的概念,以及Linux開發(fā)常見的系統(tǒng)API接口。網(wǎng)絡(luò)方面要了解具體的協(xié)議結(jié)構(gòu),流量代理,各種高性能網(wǎng)關(guān)等知識。這塊由于我也不太精深,為了方便大家的理解我會給大家推薦幾個項目,供大家參考與學(xué)習(xí)。

          前公司的HIDS項目,設(shè)計到Hook狀態(tài):

          bytedance/Elkeidgithub.com

          美團的HIDS設(shè)計方案:

          保障IDC安全:分布式HIDS集群架構(gòu)設(shè)計tech.meituan.com

          網(wǎng)絡(luò)流量方向可以看下mesh的業(yè)界代理方案,理解網(wǎng)絡(luò)流量:

          istio/istiogithub.com

          前端工程師方向:

          由于在寫Python階段自己是個全棧工程師,接觸了很多Jquery與Js的的知識。如果要走這個方向也是可以的,這時候應(yīng)該把自己的主要前端語言從JQuery轉(zhuǎn)到寫Vue和React。注意跨端穩(wěn)定性與多端適配的學(xué)習(xí)。在大廠前端是一個非常緊缺的崗位,尤其安全部門更加明顯。而且從我的視角,前端的發(fā)展路徑也是比較明確的。因為我對一個好前端未來轉(zhuǎn)型成一個好產(chǎn)品也充滿信心,因為他深知用戶的交互邏輯與習(xí)慣。

          客戶端方向(安卓與IOS和Windows):

          目前客戶端研發(fā)在零信任領(lǐng)域與反作弊設(shè)備指紋方向比較火熱,隨著移動辦公的火熱。不過客戶端的門檻非常高,建議從安全轉(zhuǎn)型過來的工程師不要入這個領(lǐng)域,非常深。基本上Linux device driver與安卓Java開發(fā)的相關(guān)生態(tài)都要掌握。不適合半路出家的程序員。應(yīng)屆生如果做移動開發(fā)或者客戶端方向可以考慮這個方向。

          轉(zhuǎn)型線上開發(fā)工程師脫離安全:

          我承認(rèn)你可能覺得安全研發(fā)太簡單了,沒有太多的高TPS與分布式事務(wù)場景。這塊進入我的知識盲區(qū)了。

          Step 3:從做精到一專多精統(tǒng)籌規(guī)劃

          如果能做精上面的一個方向應(yīng)該已經(jīng)轉(zhuǎn)型為了一個合格的研發(fā)工程師了,慢慢你會發(fā)現(xiàn)一個人的能力太有限了。隨著年齡的發(fā)展,你會發(fā)現(xiàn)在特定的技術(shù)領(lǐng)域是會者不難,難者不會的狀態(tài)。自己會機器學(xué)習(xí),但系統(tǒng)寫不穩(wěn)定。自己系統(tǒng)寫的穩(wěn),但搞不定機器學(xué)習(xí)的算法。這時候你需要一個團隊,也需要從一專變成多精,而多精需要團隊的partner來幫助實現(xiàn)。

          例如做一套可在公司落地的WAF,最低要配置5-6個人的最簡人手,涉及的可能不止安全研發(fā)一個領(lǐng)域的,攻防人才,前端人才,后端人才,產(chǎn)品經(jīng)理可能都是必需的。如何說服你的老板,如何計算ROI,如何定項目的關(guān)鍵節(jié)點預(yù)期,萬一招來的人不符合自己的預(yù)期關(guān)鍵節(jié)點無法交付怎么辦,萬一老板壓排期我該怎么辦等。你可能面臨上面老板給我壓指標(biāo),下面六個兄弟要還房貸期望升職加薪,這比做單點技術(shù)復(fù)雜的多得多。我自己沒有經(jīng)歷過還,希望在未來的文章中能有幸跟大家分享。

          五、寫在最后

          祝每個安全人心懷夢想,追夢成功。在奮斗的道路上,也能滿足自己物質(zhì)生活的需要。

          感謝一路提攜的領(lǐng)導(dǎo)與同事。特別感謝我在上家公司的研發(fā)的領(lǐng)路人五道門,讓我有了火速成長的能力與機會。

          轉(zhuǎn)自:FreeBuf

          https://mp.weixin.qq.com/s/xHjjRVYKzUex7WO_MiRU_g

          瀏覽 72
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  91丨九色丨国产在线 | 天天摸天天射 | 精品人妻伦一二三区久久春菊成人漫画 | 99精产18在线观看 | 欧美一二|