安全數據科學家的日常:需要做什麼?將面對哪些挑戰?
- 2020 年 4 月 8 日
- 筆記
導讀:目前網絡安全領域的工作崗位遠遠多於合格的人選,所以好消息是網絡安全還是一個適合涉足的領域。壞消息是要保持最新狀態所需的技能在快速變化。通常情況下,需求是發明的動力。
隨着對熟練網絡安全專業人士的需求遠遠超過目前所能供應的,數據科學算法正通過提供有關網絡威脅的新見解和預測來填補這一鴻溝。
本文作者分享了自己成為專業安全數據科學家的職業道路。你將看到作為一名安全數據科學家的日常生活是何種狀態,以及成為一名高效的數據科學家需要做什麼。我們還分享了如何處理數據科學問題,以及在不可避免的挑戰面前如何應對的技巧。
作者:約書亞·薩克斯(Joshua Saxe)
來源:大數據DT(ID:hzdashuju)

01 成為安全數據科學家之路
正因為安全數據科學是一個全新的領域,成為一名安全數據科學家可以有很多途徑。許多人通過科班的正規培訓成為數據科學家,也有許多人自學成才。
像我便是一個例子,我成長於20世紀90年代,那時我學會了用C語言和彙編語言編程。後來,我獲得了人文學科學士學位和碩士學位,然後作為一名安全軟件開發人員重新進入技術領域。在此過程中,我通過業餘時間自學了數據可視化和機器學習,最終進入安全研發公司Sophos成為了一名正式的安全數據科學家。
與我合著出版《基於數據科學的惡意軟件分析》一書的Hillary Sanders在大學學習統計學和經濟學,她曾做過一段時間的數據科學家,後來就職一家安全公司從事數據科學家的工作,而她就是在這份工作中學習了安全知識。
我們在Sophos的團隊非常多樣化。我們的同事們擁有不同學科的學位:心理學、數據科學、數學、生物化學、統計學和計算機科學。
雖然安全數據科學偏向於那些在科學定量化方法方面受過正規訓練的人,但同時也需要具有不同背景的人加入進來。雖然科學和定量化訓練有助於學習安全數據科學,但從我個人的經驗來看,只要你願意自學,你也可以以非傳統的背景進入我們的領域並取得優異成績。
能否精通安全數據科學取決於一個人不斷學習新事物的意願。這是因為在我們這個領域,實踐知識和理論知識同樣重要,你要通過實踐而不是僅僅通過學校的學習來獲得實際有用的知識。
樂於學習新事物也很重要,因為機器學習、網絡分析和數據可視化技術都在不斷變化,所以你在學校學到的東西很快就會過時。例如,深度學習在2012年左右才開始成為一種趨勢,此後迅速發展,因此幾乎所有在那之前畢業的數據科學專業的人都必須自學這些非常有用的思想。
這對於那些希望進入安全數據科學專業的人來說是個好消息。因為那些已經在這個領域工作的人也必須要通過不斷自學新技能,而你正好可以通過了解這些技能來邁出你的第一步。
02 安全數據科學家的一天
安全數據科學家的工作是將技能應用到各種困難的安全問題上。這些技能的應用會連同其他技能一起,形成一個更大的工作流以方便真正去解決問題。根據我們的經驗以及其他公司或組織的同行們的經驗,圖12-1可以描述安全數據科學家的典型工作流。

▲圖12-1 安全數據科學工作流的模型
如圖12-1所示,安全數據科學工作流涉及五個工作領域之間的相互作用。第一個領域是確定問題,涉及明確數據科學可以解決的安全問題。例如,我們可能假設,可以基於數據科學識別魚叉式網絡釣魚郵件,而識別用於混淆已知惡意軟件的特定方法,則是一個需要研究的問題。
在這個階段,任何關於某個問題可以用數據科學解決的猜測都只是一個假設。當你有一個鎚子(數據科學)時,每個問題都可以看起來像釘子(機器學習、數據可視化或網絡分析問題)。
我們必須考慮這些問題是否真的最適合使用數據科學方法來解決,請記住可以構建一個數據科學解決方案原型,通過測試這個解決方案來更好地理解數據科學是否真的提供了最佳解決方案。
當你在一個組織或機構內工作時,在確定一個好的問題的過程中,經常需要同那些並非數據科學家的合作者進行溝通交流。
例如,在我們公司內部,我們經常與產品經理、管理人員、軟件開發人員和銷售人員打交道,他們認為數據科學就像一根可以解決任何問題的魔杖,或者認為數據科學類似於「人工智能」,具有某種神奇的能力來實現不現實的結果。
在與這些非專業的合作者交流時,切記要誠實地面對數據科學方法的能力和局限,保持敏銳、謹慎的態度,這樣你才不會去追逐錯誤的問題。你應該拋棄那些沒有數據來驅動數據科學算法的問題、缺乏有效評價方法的問題,以及那些明顯可以通過手工方法就能更好解決掉的問題。
例如以下的這些問題,別人提出後我們應當拒絕:
- 自動識別可能向競爭對手泄露數據的員工。針對這個問題缺乏足夠的數據來驅動機器學習算法,然而可以通過數據可視化或網絡分析來解決這一問題。
- 解密網絡流量。機器學習的數學機理決定了它根本無法解密軍用級加密數據。
- 根據員工生活方式的詳細背景知識,自動識別那些針對特定員工的人工特製釣魚郵件。同樣,這也是因為沒有足夠的數據來驅動機器學習算法,而這個問題則可以利用可視化技術對時間序列或郵件數據進行分析來解決。
一旦你的確成功確定了一個潛在的安全數據科學問題,你的下一個任務就是確定數據源,以便可以使用數據科學技術來解決該問題。
如圖12-1中的步驟2所示。當一天的工作結束時,如果你還沒能獲得你可用來訓練機器學習模型、提供可視化或驅動網絡分析的數據源,以解決你所選擇的安全問題,那麼數據科學很可能並不能幫你解決這一問題。
在選定了問題並確定了一個足以構建一套數據科學解決方案的數據源之後,就可以開始構建你的解決方案了。在實際應用中,一個解決方案在圖12-1所示步驟3和步驟4之間不斷地循環:構建某個東西,然後對它進行評價,再對它進行改進,再重新對它進行評價,依此迭代下去。
最後,一旦你的系統準備好了,就可以部署它了,如圖12-1中的步驟5所示。當系統處於部署狀態時,如果有新的數據源可用,你必須重複之前的步驟來集成新的數據,嘗試新的數據科學方法,並重新部署系統的新版本。

03 高效安全數據科學家的特徵
在安全數據科學中取得成功很大程度上取決於你的態度。在這一節中,我們列出了一些我們自己發現對成功進行安全數據科學工作來說很重要的心理因素。
1. 開放的心態
數據充滿了驚喜,這破壞我們對問題的了解。重要的是,你要對那些證明你某個先入為主的想法是錯誤的數據保持開放心態。如果不這樣做,會導致你最終錯過那些從該數據中得到的重要知識,甚至會把太多的信息讀成隨機噪音來說服你自己相信一個錯誤的理論。
幸運的是,你在安全數據科學領域做的工作越多,你對從數據中「學習」這件事就會越發地開放思想。你會逐漸正確地面對自身所知有限的事實,也會更加擅於從每個新問題中學到更多的知識。隨着時間的推移,你會開始享受並期待數據為你帶來的驚喜。
2. 無窮的好奇心
數據科學項目需要研究數據來發現模式、異常和趨勢,然後利用這些來構建我們的系統,這與軟件工程和IT項目非常不同。識別這些數據中相互關聯和相互作用的機理並不容易:通常需要運行數百個實驗或分析,才能理解數據的總體形狀和隱藏其中的故事。
有些人有一種天生的、近乎成癮的動力,去進行精心設計的實驗並對數據進行更深入的挖掘,而另一些人則沒有這種動力。
前者便是那種傾向於在數據科學方面取得成功的人,正因如此,好奇心便是這個領域的必要條件,因為好奇心區分了我們能夠對數據進行理解的深淺程度。在對數據進行模型構建和可視化分析過程中,你的好奇心越是強烈,最終得到的系統就會越有用。
3. 對結果的痴迷
一旦你定義了一個好的安全數據科學問題,開始迭代地嘗試解決方案並對其進行評價,那麼對結果的痴迷感將會支配你,這一點在機器學習項目上體現得特別明顯。
例如,當我深入參與一個機器學習項目時,我會一周7天、每天24小時地開展着多項實驗。這意味着我可能會在一個晚上醒來很多次來檢查實驗的進度,並且經常需要修復bug,並在凌晨3點重啟實驗。我傾向於每晚睡覺前檢查一下我的實驗,整個周末都會檢查好幾次。
這種全天候的工作流程通常是構建頂級安全數據科學系統所必須的狀態。缺乏這種狀態,人們會很容易滿足於平庸的結果,便無法打破常規,或者克服由錯誤的數據假設造成的阻礙。
4. 對結果的懷疑
人們很容易誤以為自己在一個安全數據科學項目上取得了成功。例如,可能你的評價過程設置不正確,導致系統的準確性看起來比實際情況好很多。基於同訓練數據過於相似或與實際數據差距太大的數據來評價你的系統,是一個常見的陷阱。
你還可能無意中從你的網絡可視化分析中挑選了一些你認為有用的示例,但是大多數用戶並沒有從中發現太多價值。
或者也許你在你的方法上付出了太多的努力,以至於你說服自己統計評價數據是好的,但實際上它們還不足以讓你的系統在實際工作中發揮作用。
很重要的一點是你要對實驗結果保持合理的懷疑態度,以免有一天發現自己已陷入了某種尷尬的境地。

04 未來的工作
本文只是觸及皮毛,如果已經說服你以一種嚴謹的方式從事安全數據科學,我們有兩個建議:
- 首先,將你學到的工具立即應用於你關心的問題上;
- 其次,閱讀更多關於數據科學和安全數據科學的書籍。
以下是一些實際問題的例子,你可以考慮將新技能應用到其中:
- 檢測惡意域名
- 檢測惡意URL
- 檢測惡意電子郵件附件
- 可視化分析網絡流量以發現異常
- 可視化分析電子郵件發件人/收件人模式來檢測釣魚郵件
為了擴展你對數據科學方法的知識,我們建議你從簡單的開始,通過維基百科文章了解更多關於數據科學算法的知識。對於數據科學而言,維基百科是一個令人驚喜的、可免費訪問的並且權威性的知識資源。
對於那些想要在機器學習方面深入學習的人,我們建議他們選擇線性代數、概率論、統計學、圖分析和多變量微積分等方面的書籍,或者參加免費的在線課程。學習這些基礎知識將為你以後的數據科學生涯帶來回報,因為這些內容是這個領域的基礎。
除了關注這些基礎知識之外,我們還建議你參加課程或者閱讀關於Python、Numpy、sklearn、Matplotlib、seaborn、Keras等更加「實用」的書籍,以及涉及的在數據科學社區中大量使用的其他工具。
關於作者:約書亞·薩克斯(Joshua Saxe)是專業安全企業Sophos的首席數據科學家,他在Sophos公司負責領導一個安全數據科學研究團隊。他還是Sophos公司基於神經網絡的惡意軟件檢測器的主要發明者,它可以保護數以千萬計的Sophos客戶防範惡意軟件。在加入Sophos之前,他花了五年時間來管理美國國防高級研究計劃局資助的美國政府安全數據研究項目。
本文摘編自《基於數據科學的惡意軟件分析》,經出版方授權發佈。
延伸閱讀《基於數據科學的惡意軟件分析》
點擊上方鏈接了解及購買
轉載請聯繫微信:DoctorData
推薦語:本書側重在將數據科學應用於惡意軟件,旨在更全面地展示如何將數據科學技術應用於解決重大的網絡安全問題。通過了解惡意軟件的數據科學,你將能夠更好地將數據科學應用到其他網絡安全領域,比如網絡攻擊、釣魚郵件或可疑用戶行為等檢測工作。