天天看點

萬字實錄:從DDCTF大賽看目前網絡安全新趨勢 | 硬創公開課總結文+視訊(下篇)

  如果說,滴滴出行(以下簡稱滴滴)是近幾年來讓大家出行發生翻天覆地變化的一家公司,想必你不會反對。

據滴滴給出的官方資料,滴滴全平台上每天超過2000萬訂單。與此而來的是,這麼多乘客的消費資料和個人資訊,滴滴怎麼守護?

萬字實錄:從DDCTF大賽看目前網絡安全新趨勢 | 硬創公開課總結文+視訊(下篇)

快速增長的滴滴意識到了這一點。2016年9月底,矽谷安全教父弓峰敏與網絡安全資深專家蔔峥加盟滴滴,弓峰敏出任滴滴資訊安全戰略副總裁和滴滴研究院副院長,負責制定資訊安全戰略和研發下一代資訊安全技術,蔔峥則擔任滴滴資訊安全副總裁,全面上司資訊安全團隊。今年3月9日,滴滴又宣布在加利福尼亞矽谷成立滴滴美國研究院,重點發展大資料安全和智能駕駛兩大核心領域。

弓峰敏表示:“滴滴平台從乘客到司機到合作夥伴,涉及大量金融付費交易的過程,帶來資訊保護以及類似身份資訊偷盜、欺詐犯罪等有關問題,滴滴需要保護客戶資訊、避免付費和交易過程中的欺詐以及個人賬戶資訊洩露等,而最讓人振奮的是,滴滴不隻是解決出行問題,同時還能解決更大的問題,從國家到全球層面,包括城市發展、交通、環境保護等社會問題,這是極大的挑戰!”

随後,滴滴在 5 月 17 日啟動了首屆滴滴資訊安全闖關賽 (ddctf),5月30日已結束。

先挖網絡安全大佬,再通過大賽尋找優秀的網絡安全人才進行儲備,滴滴走了一條“肉眼可見”重視安全的道路。

但是,别人怎麼分析都是“邊角料”,我們看滴滴自己怎麼說。

6月8日,雷鋒網宅客頻道(微信id : letshome)邀請滴滴公司三位安全研究人員來一場硬創公開課,聊了聊如何看待目前網絡安全新趨勢,以及滴滴接下來怎麼做。

王宇 : 在 black hat usa2014 演講和出任 geekpwn 活動評委

楊軍鋒 : 獲微軟 mitigationbypass bounty

翟津健:斯坦福大學計算機專業

劉潇鋒:滴滴出行資訊安全工程師,多年web安全建設、攻防溯源、安全研究經曆。

萬字實錄:從DDCTF大賽看目前網絡安全新趨勢 | 硬創公開課總結文+視訊(下篇)

[從左到右依次為翟津健、楊軍鋒、王宇、劉潇鋒]

若想獲得此次公開課完整ppt,請在雷鋒網網絡安全頻道的微信公衆号宅客頻道(微信id:letshome)回複“滴滴公開課”。

接上篇

劉潇鋒:這個題如果大家不知道是代碼審計題的時候,還要搞一段時間,才知道這是一個代碼審計的題目,可能以為它是一個很進階的source注入或者是一道組合滲透的題目。我來講講。

這個頁面通路的時候看到的是一個類似于部落格或者是釋出網站的頁面,這個頁面裡面有很多地方可以點,有注冊、登入,下面還有一個地方是顯示開源的位址,這個部落格用哪個開源的php架構搭的。

如果大家用目錄便利這樣的一些工具去掃描的話,可以發現有一個test目錄,在test頁面上面寫了一些系統、環境的資訊,下面有一個php infer的連結,點進去以後這個連結是-test-2 function-php infer。我們簡單地把這個php infer删掉一些字母,或者說我們就像我的ppt裡面寫上xxx的形式,會看到php報錯,報錯這個錯誤看起來就是這個xxx是沒有定義的,我們就可以認為xxx這個地方應該就是一個方法和函數,會把我們輸入的字元串當成一個函數去執行,function這個地方可能是一個controller。下面我就把這個php infer這個地方截了一個圖,給大家看一下,這個地方好像對這道題沒有什麼用處。

我們進一步做一些下面的工作,function既然php infer是可以執行的,它是一個php的内置函數,那我們是不是考慮去調用一些其他的php内置函數。

這個時候我們想到了有get-defined-function,就是腳本裡定義了哪些函數,我們調用一下發現前面很長的都是php的内置函數,最後倒數的這幾行是使用者定義的函數,像addslashes、sample-waf函數。

這裡面我們看到了一個很敏感的叫show-source-code,就是看原代碼的這麼一個函數,我們直接通路這個連結,直接把這個show-source-code放在剛才function後面的部分。這個時候我們就會下載下傳一個壓縮包,我們把它解壓以後就發現了這樣一個目錄的結果,看起來是doctor上搭建的,裡面的檔案目錄架構是有一個文檔,裡面應該是web的主目錄,有一些njx的配置,還有這個架構安裝時候要執行的insor的腳本,還有一個sh腳本。

這個時候我們就是想到了這個架構是下面寫的開源架構是speed的架構搭建的,這個時候我們通路一下speed架構,就會跳轉到gitignore,我們發現這個gitignore上面的speed架構和我們下載下傳的源碼的目錄結構是一緻的,那麼我們現在就可以斷定就是用這個架構搭的。是以我們可以推斷出這是一個源碼審計題。是以我剛才問軍鋒,我說這個題如果不告訴大家是代碼審計題,可能大家真的要找好久才知道。

接下來我們有了開源的架構原代碼,還有了從工具伺服器上下載下傳的原代碼,這樣我們首先想到的是做一個對比,我們下載下傳的代碼和網上的開源代碼有什麼差別,因為網上的代碼已經push上面已經有兩年了。比較一下這個代碼最核心的部分是一個叫speed的php的檔案,在那個lib目錄下,它比網上的版本多了幾十行,最重要的部分就是我截圖的這個部分,多了一個addslashes這樣的函數,多了一個sample-waf函數。最下面就是全局的,把get-post-cookie全局的輸入變量都做了轉義,有一個全局的jpc轉義。

接下來我們看一下maincontroller裡面的php,因為這個controller是在未登入狀态下的一些邏輯,都在這裡面。這裡面要提一下,大家到這個地方有沒有一些什麼腦洞或者是什麼想法?為什麼這是一個源碼審計的題,我們要從網上下載下傳了這麼一個源碼,又要加全局轉義的功能?感覺上好像是對這個開源架構更增加了一些安全防護的方式,因為轉義了,可以防止source注入。會不會大家想到的,這樣做其實題目已經對你進行了提示?既然他做了轉義,我們反方向想,是不是這個轉義由于這麼做了,反倒是容易被繞過了,可以被我們source注入攻擊利用。然後我們就去找,找哪些函數可能跟這個轉義有沖突,就是就找到了json-encode,就是json編碼的這樣一個函數。

我們知道jpc轉義是把單引号、雙引号、斜線、空字元會在前面加一個斜線做一個轉義,但是json-encode也是會對斜線做再一步,在前面再加一個斜線。是以說這樣的話,就相當于是json-encode加了斜線吃掉了前面那個addslashes斜線,這樣的話到資料庫之前,相當于是這兩個斜線互相吃掉了,剩了一個引号,我們的引号就會保留下來,類似于source注入裡面的寬位元組,由于前面多了一個東西,就是把本來轉義的字元給轉義掉了,我們的注入字元反倒留了下來。

這樣可能說得比較抽象,如果大家不看原代碼,我們一般拿到這樣一個web程式,都會對各個接口和參數做便利,灌入各種特殊符号,如果大家在這裡加一個單引号,也會發現這個問題,這就是在右邊的箭頭标出的。

單引号在addslashes的時候就已經被轉義了一次,這個斜線,然後再在json-encode前面又加了一個斜線。是以說這個語句如果推到資料庫那邊執行的話,相當于這個單引号會被保留下來,和最前面的單引号配成一對。

我們相當于已經找到了這個注入點,就是在這裡,我們可以利用它。但是這裡有一個問題,可能大家容易忽視的,就是說在這個php代碼的邏輯上,如果你要能執行最下面的update這一步的邏輯,一定要先通過上面這個slect的邏輯。如果在執行slecl邏輯的時候,實際上還沒有執行json-encode這樣一個編碼。這就是說到前面這個slecl語句的時候,我們輸入的單引号實際上是隻做了一次轉義的,這樣的話到了資料庫裡面,它是不是會報錯,因為這個id沒有查到的話,就不會往下面執行了,也就是說我們可能執行不到下面了,這就設計到source對類型的一個強制轉換。

左邊的截圖就是大家從源碼裡下載下傳下來以後看到的我們在資料庫裡面建立的source語句,這個id實際上是一個整形,如果我們的引号前面又被轉義多了一個斜線字元的話,在做整形轉換的話,隻要前面有整數,後面那個字元串就都忽略掉了。即使大家沒有注意到,但是這個地方的整形也是沒有問題,不會觸發錯誤、沖突。

接下來我們怎麼去注入,我們發現有sample-waf這樣一個函數,前面是對一些關鍵字做過濾,這個過濾還好,最要命的是下面有一個我們這個字元串的長度還受到了限制,35個字元,看起來基本上複雜的source語句都構造不了了。這個時候怎麼辦?感覺注入點很雞肋,注入不了任何東西。這個時候我們就想一下,架構我們是用的pdo驅動來實作的跟資料庫的通信,pdo和masecal通信的時候,實際上是支援堆疊查詢的,也就是stacked queries,如果是masecal i的話,這個還不支援,pdo是可以的。

是以我們想的是,我們用insert的方式去插入到資料庫當中,插入一個驗證碼,就是邀請碼,正好湊了一個不到35個字元的payload,正好通過了,就是插入到code這張表裡,code這個字段值是117,這個表、字段都可以從源碼當中找到。

這樣成功以後,我們就可以走注冊那個流程,把我們剛才的那個insert進去的邀請碼填寫進去,随便寫一個使用者名和密碼,就可以登入了。登入以後還是在頁面裡面沒有找到任何關于flag的資訊,這時候我們就會審計usercontroller這個腳本,因為這是登入以後的controller。我們會找到這裡有一個檔案包含,但是這個檔案包含也是比較雞肋的,因為它的前後端全部寫死了,就是受限制了,是以說後面隻能是php的檔案,我們有全局的轉義,是以你做空字元00這種就不能被截斷。這個東西怎麼用呢?

既然檔案包含不能包含出一些惡意的腳本,那我們就想想能不能用檔案包含漏洞去提取出一些明擺的資訊。這個時候我們發現有一個admin這樣一個目錄,就是管理者,我們猜這個flag在這個管理者的目錄下會存在一些資訊,我們找到了這個管理者的一個模闆,叫index-index.html。

這個架構如果大家審計了一下它的代碼,會發現它基于這些html模闆做了一些處理,生成一個中間檔案,這個中間檔案是一個php檔案。這個時候我們就懷疑能不能根據他的代碼規則生成中間的php檔案,從裡面找到flag,這是我們的思路。

我們就繼續看原代碼。在編譯生成中間檔案的時候,就是conpio的時候,這個是對模闆檔案的絕對路徑做了一次md5,再加上模闆檔案最後修改時間的時間戳,再加上檔案名和php。實際上這個檔案已經在背景生成了,我們怎麼去構造出這個檔案名,然後去通路它,就可以了。

下面其他的檔案路徑、文明什麼的都好辦,就是最後的修改時間,靜态檔案的修改時間可以在http的傳回頭有一個last-modified的字段裡面提取出來。

大家看一下上面那個代碼裡面,filemtime這個地方傳回的是一個unist的時間戳,但是我們下面是jmt的标準時間,是以說這個需要調用str to time的函數轉化成unist的時間戳,最後我們生成了這樣一個腳本,這個腳本我們用booker去抓包,然後把name的參數給改成腳本,我們最後再傳回到頁面裡面就發現了這個flag,這道題就結束了。

楊軍鋒:謝謝劉老師。接下來由我來給大家講講,這道題目叫findkey,其實是win32的程式。通常我們分析第一步是什麼,就是搜集資訊,就是從字元串、導入表等等各方面去搜集資訊,你會在檢視字元串引用的時候,可能會留意到openssl的這個版本,靜态連結了openssl的庫。

你可以自己選擇制作ida的flirt簽名檔案,也可以下載下傳别人制作好的,上面的link就給了很多openssl的ida的簽名,你可以下載下傳這個庫。其實整個代碼整個程式是非常短小的,ida裡面你把簽名弄好之後,一看就很清晰。把它化簡之後的整個邏輯就是這麼一個數學題,很多同學可能要罵我,這其實就是一個求離散對數的題目。

眼尖的同學可能一眼就看出來這個p很明顯就不是素數,我們嘗試去分解的時候,發現它常常被分解成比較小的因子,這個問題就可以在短時間内輕易求解。

我們看的一個最簡單的解法是來自玩這次ctf比賽第二名的複旦大學這位同學,他提供了這麼一個很短小的方案,其實就是一個數學求解軟體,應該是求解類的軟體,借助于它的幫助,就這麼一句話,就能夠求出這裡的p其實就是前面的x。

這個函數使用了這兩個算法,一個叫pohlig-hellman,然後大步小步這個算法求解。數學原理我在這裡就不展開了,因為它确實比較長,涉及到的數學原理的東西比較複雜,感興趣的同學可以去了解這道題目所涉及到的這些離散對數求解、攻擊的算法和原理,都可以去了解了解,去看一看。

有兩、三位同學問到這道題目的意義在哪兒。是這樣的,2015年的時候我們在野外見到一些exploit kit,嘗試阻礙研究院的研究員重放流量,裡面就使用了這麼一個不安全的模數,最後導緻研究員可以輕而易舉地分解這個模數把問題降級之後再快速求解。

很奇怪的是,在2016年,也就是說在去年openssl想要出現了一個基本上是完全跟我們這個題目數學抽象描述完全一模一樣的漏洞——cve20160701,雖然說看起來這個問題确實很低級,所有的密碼學課本裡面都告訴我們要選一個大的數的p,也就是說模數避免被攻擊,但是事實上我們在現實裡面實驗室的實踐裡面能夠到處看得到不安全的實作。

這就是為什麼我們出了這道題目,希望每一個同學都知道在你實作這個算法的時候,最好最好不要自己去實作,因為你自己去實作,很有可能會因為你的一些疏忽導緻了不安全的因素。

接下來下一道題目是翟老師的比較難的一道安卓題目。

劉潇鋒:其實我覺得這個漏洞是很有意思的,就是cve20160701這個東西我感覺是故意的嗎?

楊軍鋒:我也很難說它是不是故意玩無窮平方,但是它确實出現了這麼一個低級的漏洞。

劉潇鋒:我覺得這幫人的水準不至于犯這麼低級的問題。

楊軍鋒:是以說這個問題很有趣,你跟大家說一下你對這個漏洞的看法吧。

劉潇鋒:不用了,我隻是覺得這幫人應該不至于這麼簡單的一個漏洞放在這個地方,像是留了一個坑。

楊軍鋒:是以說在這裡我們隻能猜測,無法推測最初這個漏洞是怎麼産生的,我們隻是想用這道題來讓所有的同學都意識到安全的理論不代表有安全的實作,更多時候我們看到一個久經考驗的算法在我們實作裡面确實存在這樣或者是那樣的問題,怎麼去降低這種風險?盡可能用成熟的,盡管openssl出過很多問題,就像剛才教授說的,但是我還是應該選擇成熟的庫、成熟的算法、成熟的實作庫去寫程式,來避免犯一些低級的錯誤。

下面把時間交給翟老師。

翟津健:是這樣的,這道題最關鍵的是要找到裡面有一個strite,就是112行,我們翻到android hard有兩頁ppt,第一頁右邊第一行,就是122行這個if53,看129行,是跳着的,兩個兩個的,每四個頭兩個把它做了一下位移,數量就是53,這樣的話就把0到9給映射到了e.rn上面了,是以說這個if其實映射回去的是數字,就是415374的這個。

這個是兩個素數的成績,花幾分鐘的時間把這個成績給破開,破開之後就得到了一個p和q,這是兩個素數,這個p和q的長度足夠長。

接下來我們就翻到android hard的ppt第二頁,右邊上面這個方框就是99行到113行,素數不夠長,你要是想cover這個t的話,就是把它重複寫了五遍,就是第112行這個,其實是一個while lud,編譯出來是這樣子的。寫了五遍之後就成了一個mask。在第77到93行右下腳這個code方框,就是把mask apeline這個xor,最後就出來了這個結果。

楊軍鋒:翟老師這道題目就這麼簡單地講完了?

翟津健:這裡面主要的坑就是p×q,基本就是這樣,一開始我們寫的時候是一個比較大的素數,然後可能要花久一點的時間,可能要花幾個小時,後來我們把它改小了幾位,可能幾分鐘就可以了。

楊軍鋒:有一位同學問到,如何看待國内公司都有各種以攻擊挖洞為主比賽的現狀,兩位老師你們怎麼看待這個現象?第一個問題就是現在國内打 pwn2own 很火,很多國内的實驗室可能一整年的時間就在挖洞打比賽,你們是怎麼看待這個現象的?

王宇:我個人覺得有點兒浪費,或者不叫浪費吧,你花了一年多的精力,别人隻給你大概十萬美元,或者是一共總獎金也就是一百萬美金,實際上是買了整個一個團隊一年多的投入和智力的産出。你從一個更高的角度或者是更商業的角度來看,實際上這是一種變相的從中國市場的套利,套廉價智力的結果,把我們覺得很花精力出來的東西以一個相對比較低廉的價格拱手貢獻給别人了,我是覺得有點兒可惜。

但是如果反過來從另一個角度說的話,比如,一個新的創業公司,類似于像長亭,他們想在國内打出一片天地的話,最好的切入點可能 pwn2own 是一個很好的展示舞台,确實他們去年做得非常棒。幾個人的投入就拿到了三個平台的冠軍,實際上我覺得從個人能力上來講已經是最頂級的水準了。

但是可能這件事情本身來講我覺得還是有更多值得去做的事情,比如,推動整個這個産業的進步的角度來講,但是這個就比較虛了,我還是覺得這種級别的貢獻智力确實是中國和南韓兩個現在勢頭比較強的國家在做貢獻。

這是我的個人看法。

翟津健:我對這方面沒有什麼了解,我覺得王教授講得挺好的。

楊軍鋒:我很認同教授說的這幾個點,但是,我在某一種程度上認為國内的這種存在,不管我認同也好,不認同也好,都會以這種形式繼續存在。對個人來說,我覺得這可能是挺有意思的,你挖洞也好,打比賽也好,對個人來說不是一個壞事,至少我認為可能是你幹得開心,又有錢拿,這個是無可厚非的一個事情。但是對企業來說,對公司來說,它的意義和價值可能是比較有限的。對于個人來說,從比較長遠的角度來看,我們不知道這種模式能夠走多遠,我們都缺乏這種預見性,但是至少在目前看來,它還會繼續存在。

我覺得他們代表了二進制頂級的水準,确實是二進制的漏洞研究也好,各方面的安全研究也好,他們确實是代表了一個很前沿的水準。

我對這些同學(能搞定并且樂于去搞的同學)是非常尊重的,我們要知道安全除了漏洞之外還有很多其他有趣的方向,因為這幾年這些東西比較火,國内很多實驗室都一直在打,給很多在校的學生造成了一種錯覺,好像現在不打比賽就不叫搞資訊安全,不是這樣的。你看翟老師,翟老師就是屬于正經科班出身,一直奮鬥在資訊安全前線的,他做了很多東西非常有價值。

但是我們想要傳達一種觀念,除了挖洞、打比賽之外,還有很多,比如說做的防禦,或者是非漏洞挖掘以外的一些安全防護,都會産生巨大的價值,不是說安全隻有漏洞挖掘這一條路可以走,不要把安全了解得這麼窄,因為安全是計算機上面的一個分支,但是安全上面又有無數的分支,挖洞比賽隻不過是無數分支當中的一條分支。

就是這樣的,這個問題我們的了解就是這樣的。

王宇:以後的安全人才趨勢是否需要同時具備web安全、二進制安全機器學習的能力?

這個問題問得挺好的,我個人的感覺,因為業界是在快速發展的,可能有一些東西是萬年不變或者是百年、十年不變的,比如說像作業系統的原理、編輯器,但是也有的東西在非常快速地做疊代和變化。是以可能待過的幾家公司給我的感覺,就是工業界可能需要的人才是那種能快速應變,并且基本功紮實,我相信這次比賽如果能打到最後幾關,甚至能把大素數分解的人都能搞定的人,他一定是既熟悉web,也熟悉安卓,哪怕不屬于web,也能用迂回的方法去解決。

實際上他們不會把自己限定在特定的平台或者是特定的領域,遇到了陌生的環境、全新的挑戰,他有迎難而上的勇氣,我覺得這一類的人應該是企業最受歡迎的。不是說萬金油最受歡迎,而是說有勇氣去挑戰未知的領域,并且把這件事情做成的人,這些人絕對是企業最受歡迎的。

是以想達到這個要求,可能既需要你掌握web的東西,二進制的東西也不能完全不會,這兩年機器學習工業界起來得這麼火,完全不懂的話也不是個事。是以我是覺得可能是深度和廣度都需要。

翟津健:我講一下機器學習吧。其實作在機器學習難度越來越低了,技術白菜化,這句話整體改成:其實作在機器學習難度并沒有想象那麼高,最近業界流傳着技術白菜化的說法,

楊軍鋒:大學生一枚,想問問滴滴招聘安全人員的标準,不參加ctf有沒有可能被我們注意到?

翟津健:這個可能也會注意到,不參加ctf的話,像其他各種各樣技能我們都是需要的,比如說medol cqt、大資料。

楊軍鋒:就像翟老師剛剛說的,其實我們ctf打不打其實并不重要,我們更看重基礎能力、溝通能力以及對我們這個行業的熱愛程度,這些都是我們考量的點。除了ctf打進到一個比較好的名次,你也可以通過正常的招聘途徑給我們遞履歷,我們都是很歡迎的。

教授對這個問題有補充嗎?

王宇:我覺得這兩年的招聘應該是非常多樣化,微網誌上各家都在瘋狂地招人,實際上和ctf本身并沒有太大的直接關系,隻要自己準備好,遞一份履歷過來就ok了。

翟津健:我還想補充一點,比如,滴滴和一般企業招人招的是ciquty angner,就是說需要有人寫程式,隻不過正好這個程式是應用在安全領域上面的,是以需要有很多安全的領域知識。同時也要寫程式寫得很快。

王宇:在實際工作中,ctf比賽的技巧能否得到應用?比如說對實戰、挖漏洞是有很大幫助。

翟津健:我覺得 ctf 的比賽還是一個比較抽象的、注重把各種基本的概念都 cover 的,這個技巧肯定工作中或者是這裡、那裡随機地會出現。

楊軍鋒:教授的看法呢?因為我知道教授以前也有打過一些ctf。

王宇:我覺得可能技巧這個東西隻是一個點,有點兒像是特種部隊和正規軍的感覺,特種部隊可能也需要,但是真正兩個國家作戰的話,正規軍的感覺還是和斬首部隊的感覺是不一樣的,可能兩方面都需要,有的時候寫程式的時候需要一些靈感或者是需要一些技巧型的東西去解決。

但是我覺得就像之前有一個問題,是不是ctf才能被企業關注到,如果過于強調技巧,而忽視了另外一樣東西,可能也是走不太遠的,有大規模的工業界代碼的編寫能力。

實際上這兩年ctf比較火之後,對于大學生大規模編碼的能力強調得并不是那麼多了,我記得我們當年畢業那會兒,強調的是畢業的時候要寫十萬行代碼,現在可能是變成要拿ctf多少名,我們那時候強調十萬行代碼,如果你真的能寫夠這麼大量的代碼,并且這個代碼是你這四年不斷累計出來同一個項目或者是幾個項目,對于大項目的管理、架構包括軟體工程的這些感覺應該是有了。

是以我覺得兩方面都需要,技巧的東西也需要,但是實戰工作中正規的東西也是需要的。

另外挖洞的話,我這麼幾年至少感覺是有兩到三類人在挖洞中是比較活躍的。

第一,騰訊科恩實驗室的吳石老師強調的是用farsin的算法極大的覆寫目标所有的分支路徑,找到盡可能多的有效組合反複打某些出問題的點。

第二,google有幾個家夥,他們的那些漏洞選的點,你一看他的漏洞,就發現這些漏洞不是那麼好通過farsin的方法找到的,再去跟他聊你會發現他對于整個系統的架構很了解,特别是他對于系統的設計某些子產品銜接的地方可能會考慮得不周到,這點他可能比寫代碼的人要考慮得過。是以反過來他是從更高的角度,或者是從設計的角度去回報漏洞挖掘。是以我覺得這樣的人可能對于程式的架構包括一個system應該怎樣去設計,他可能更了解一些,但是這樣的人就不是偏重于技巧型的人,我覺得這樣的人是需要大量的時間累出來的。

但是我覺得不應該把任何一類人一棍子打死,如果能把向邊結合得比較好的話,那應該是最頂級的人才。

楊軍鋒:接下來那道題目就是關于機器學習了,我相信這個翟老師有很多話可以講。

翟津健:我可以簡單講一下,現在不但是有公司在用實際的基于機器學習的防護系統,而且我覺得這個市場已經比較擁擠了,我感覺我見到的大部分公司都在用實際的基于機器學習的防護系統,這個不但是一個有沒有的問題,而是一個你做得好不好的問題,你做得不好,就被好的打下去了。

楊軍鋒:第七道題目是搞web的同學,web安全會不會像其他人說的那樣子?因為相比二進制做的人多就沒有未來了。

劉潇鋒:因為現在國内網際網路公司web安全的需求量還是很大的,而且現在大部分都是靈活開發,是以一個公司有大量的産品線,每個産品線每天疊代的速度也很快,這樣這個代碼安全上的品質就需要web安全工程師來提供保障,其實這個挑戰也是挺大的。

我覺得從技術上來說,可能它沒有二進制研究系統化那麼深入,但是從整體的難度來說,我覺得還是很有難度的,因為web安全還包括很多語言,包括很多服務端web的組建容器,這些都考慮進來的話,其實web安全工程師需要掌握的知識量還是很大的。

而且我再提一下,我覺得企業當中實戰上來說,從web安全的角度和ctf的差別,我覺得ctf比賽每道題是有解的,但是實際的企業當中安全是無解或者是短期内無解的,我們要考慮到各種場景和各方的需求,然後去想到一個更綜合能解決這些問題的方法,這個難度和挑戰可能要比解一道ctf題更複雜,可能需要的能力像剛才教授說的,各方面溝通、快速解決問題的能力這方面都要經過訓練,是以web安全我覺得未來還是很有前景的。

楊軍鋒:教授你對這個問題有補充嗎?

王宇:我沒怎麼搞過web。

楊軍鋒:搞這樣的肯定是他們說的黑站,挂一個黑頁,說這個網站是我黑的,留一個qq号。

王宇:想做好的話,他的知識儲備絕對不會比做所謂的二進制要來得少。

我覺得剛才那點講得非常棒,就是在企業裡面很多東西實際上不是像做一道題一樣一定會有一個答案,好多東西其實是一個折中的結果,特别是我們大家需要設計一套解決方案或者是設計一套系統,不可能解決現有的所有問題,一定是在各個問題間尋找一個平衡點,這種東西你想把某些東西做得更好的話,意味着你需要犧牲一些别的方面的能力或者是性能。是以可能确實打ctf的學生到企業來之後,可能會發現這點是有極大的不同。

翟津健:這點我了解挺深刻的,因為我覺得企業裡面你不知道答案,你可能做到最後99%的時間都扔掉了,最後由于你的重大技術突破,有可能是你吃飯、走路的時候突然想起來了什麼,把這個問題解決掉了,再加上最後還剩下1%的時間你可能就是憑code編得比較快,或者是手快,最後總算在 deadline 之前做好了,我覺得大部分人遇到的情況是這樣的。

楊軍鋒:很好,我個人覺得這個問題是問web安全,剛才兩位老師補充了一下,ctf和企業實際的需求之間的差異。我個人覺得市場需求會決定web安全持續地占有很重要的位置,我們現在很多資料,安全是什麼?安全必須要附在資訊上面才會有意義,沒有獨立的安全,你光是空談安全是沒有用的,我們所有的安全都是圍繞着資訊,我們如果畫三個同心圓的話,資訊是在最裡面,安全是外圍的,如果沒有資訊在中間,其實安全就沒有意義了。

web現在承載的整個資訊越來越多,承載有價值的東西越來越多,從個人電腦到雲端的遷移,我們現在已經可以很明确地看得到了,我覺得web安全這一塊會越來越重要,我個人是這麼覺得的。因為有價值的資訊在往更終端向雲端遷移,是以我覺得搞web安全是有着光明前途的。

劉潇鋒:我還想說一點,就是說像剛才軍鋒說的,它是跟着資訊走,資訊安全,更直白地說,安全也跟着價值走,跟着錢走。

楊軍鋒:對。

劉潇鋒:其實有的時候黑客攻擊的途徑和手段并不是重要的,他的目标其實是重要的,他隻是想拿到你伺服器裡的東西,就有很多種方式,可以通過web漏洞去攻擊,也可以用一個零配直接打掉你的伺服器,但是我覺得從錢或者是從價值的角度來說,web安全和二進制其實不需要區分那麼多的。

楊軍鋒:對,因為黑客永遠都是選那條成本最低、收益最大的路走,通往資訊的路有無數條。

第八個問題,我總是覺得這個問題應該由翟老師回答,大規模攻防研究是什麼樣的現狀?有重大突破嗎?有應用嗎?

翟津健:我隻是單純從大資料這個角度了解,可能通過各種各樣的方式,控制很多電腦進行攻擊或者是防護,再把這些電腦上所一點一滴搜集來的資訊做一個集中彙總,主要方向是這樣的。

楊軍鋒:後面我還看到有一些同學提了一些題目,給學習ctf新手們的一點兒建議,比如說先從哪些方向學習或者是推薦一些必讀書目。這個我個人的建議,我打了一些ctf,也對ctf有一點點了解,但是我畢竟是入門級别的,給不了太多建議,我一點點不成熟的建議,你先做一些ctf的題目,去參與一些ctf的題目,很多過去的ctf賽,他們都會把題目以及一些解題思路放出來,我建議你去看什麼類型的東西,你想做哪個方向,先標明你的目标,你覺得哪個方向最感興趣,標明了再看看,知道自己欠缺哪些知識,就去看看有什麼書可以看。書這種東西你多買點兒不會虧本的,中國的書很便宜,不像其他國家的書特别貴。随便買吧,多練,ctf這種東西要多打,就是勤練,不斷總結,不懂的東西多去總結,看看别人是怎麼總結的,你解不了的問題看别人是怎麼做的,再鍛煉中不斷提升,不要忽略掉對基礎知識的學習,這個畢竟還是最重要的。

兩位老師和劉老師對這個學習ctf的新手都有一些什麼建議?你們都可以補充一下。

翟津健:我覺得這個還是看個人興趣吧,先挑一個個人最感興趣的,像我入手的時候都是從安卓入手的,是以慢慢對這方面感興趣越來越多,随着時間的過去,看一些書。

王宇:我覺得興趣是最好的老師。

楊軍鋒:下一個問題,這位同學是想要學web安全,但是老師讓他從ccna網絡學起,這樣子對嗎?就是那個認證考試。

王宇:我剛剛就想說這個,沒有對錯之分,從哪兒學起隻是一個起點,我相信一定會有從ccna開始學起的人學到業界最頂尖的水準,也有從ccna開始學起,學了一本叫《從ccna到放棄》這本書,不像剛才說的從什麼樣的學習資料開始入手,我覺得興趣是最好的老師,沒有興趣根本堅持不下去的。

楊軍鋒:不要緊,我覺得學不學習ccna這個并不是很重要的,我認識的很多搞web非常好的,或者是搞系統安全搞得非常好的,很多都沒有學過ccna,當然你如果有這個技能是很好的,藝多不壓身,這句話永遠都是對的,你如果有時間、有精力,在時間、精力允許的前提下,我建議你把這些全部都學了,都可以,沒有問題,但是關鍵就是說每個人擁有的時間、可支配的時間和精力是有限的,你選擇怎麼去學,你覺得怎麼學能夠堅持下去,這個可能是你要考慮的問題。

可能你搞web安全可以挑不同的路,我覺得這是你可以嘗試的,因為每個人走的路不一樣,可能你學了ccna之後很有興趣,接着你又想學ccnb,那麼我覺得你就繼續學下去就挺好的,你可能最後成為一個頂級的網絡專家,這也不是一個壞事。華為在大量招人,我們也正在招網絡安全工程師。是以我們急需這種持有華為認證這些的人才也來加入我們,這也是可以的。

是以說可能你偶然間選了一條路,最後你沿着這條路走下去,發現是一條很光明的道路,這也是可以的。是以說先學什麼、後學什麼,這個其實對于我來說沒有太嚴格的定義,可能學了之後你學了一半想放棄,沒關系,再接着學下一本,接着放棄,最後找到适合你的道路。就像我一樣,我學了很多之後發現最适合我的可能是養豬。

翟津健:我想補充一下,這個跟剛才做項目是類似的,有可能你花了幾年的時間學完之後,突然你學到一定的程度才悟到了,你發現你學的這個東西好象有局限性,就把之前學的這些50%的東西都扔掉了,又趕快學新的更有用的東西。

是以,如何找時間學這些你覺得在五個方向裡最有用的那個方向,如何找時間學這個,比你現在挑一個方向更重要,因為有的時候你可能找不到時間看書,如果你還在上學的話,可能随身可以帶着書,去哪兒也可以看。比如說我在路上看見有的人為了看一會兒書,就停到等紅綠燈30秒的時候,對面一個開車的人就拿出一本書在那兒看,他就是沒有時間學,但是他突然看了這麼多年才發現以前學的都沒有用,他再想看的話,就隻能找各種辦法再來看這個新東西了。

楊軍鋒:其實小傅說過一段話,你學過什麼東西,沒學過什麼東西,其實意義不是那麼大,最重要的是怎麼快速學,怎麼快速去掌握一門新的東西,這也是給到我參考的。

接下來下一個問題,翟老師你來回答吧,資訊安全這個專業适合留學嗎?

翟津健:我覺得如果是資訊安全這個專業的,我還鼓勵可以去探索一下新的領域,因為留學的時候是一個好機會,你可以學你自己想學的東西,計算機隻是工科裡面20多個專業裡面的一個,資訊安全隻是計算機裡面十幾個細分專業裡面的一個。是以你其實不一定知道哪方面最有用,哪方面對你自己最适合,不一定非要找資訊安全這個專業去留學。适不适合留學要看自己。

楊軍鋒:重要還是個人的意向,我覺得你要真的想留學,不管是什麼,隻要你喜歡、你開心就足夠了,沒有更多的,這種人生的選擇,沒有人有預見性,我反複說沒有人能對未來有一個預判,有些人不留學也成功,有些人留學像翟老師這樣子的也成功了,我們對未來永遠都缺乏一個判斷力,在這種人生選擇上面我們基本上是沒有任何的判斷力的。如果你能選一條将來可以後悔的路,可能會好一點,比如說我今天出去留學了,明天不想留了,我跑回來,我覺得你去嘗試更多的可能性之後,你的視野可能會不一樣,我覺得是這樣子,我本人沒有留學過,我隻是覺得是這樣子,個人很愚蠢的一點點看法。

今天由于時間關系,我們最後做一下總結,這次ctf我們看到的一些問題以及玩的一些感受。我先說一下,這次ctf,剛才有人說ctf的技巧在工作中有沒有用,我覺得還是會有一點點用的,至少它對很多你學的東西,你真正去實踐、動手了,你去把它從書本上的知識搬到了實用中來,你在比賽當中把你的知識重新錘煉了一遍,其實就等于加強了你這方面的能力了,我覺得這是ctf對大學生的好處。

而我在這次看到了很多同學的知識面很廣,對各種系統、各種題目web也好、系統安全也好都做得非常好。我個人感覺這是一個行業的進步,就像足球一樣,它的方法一直在進步,包括我們今天資訊安全的行業也是一樣的,從十年前你學資訊安全是摸爬滾打,到今天可以成體系的、比較好的接受這樣子的學習,在這樣子的系統裡面進行學習和提煉,我覺得這是一個行業的進步。就像現在足球它的攻防能力可能比20年前的足球要強一些,整個行業在不斷地變化、前進,這是一個比較好的消息。

兩位老師有什麼感言或者是看法也可以在這裡跟同學們分享。

翟津健:我再補充一下,剛才說到資訊安全專業适不适合留學,我覺得留學的時候他轉系、自由選課都是很普遍的,是以說很有可能你申請的時候是資訊專業,出來就不是了,就是其他的專業了。

王宇:我是幾類人都見過,包括linrups的旋,他是來美國這邊留學的,原來藍蓮花的王若愚他是去ucsb留學,實際上我相信他們一定是在ctf的同時也是能看這個行業最前沿的發展趨勢的。好處肯定是有的,關鍵一點是看适不适合自己的道路,是不是自己真的願意走這條路,還是繞一圈之後再回工業界,這個在于個人的選擇,沒有對錯之分,隻是個人适合不适合。

楊軍鋒:兩位分别談談你們對這次ddctf比賽的一些感受吧,我最大的感受就是累。

王宇:辛苦了。

翟津健:我每天看比賽,同學的人數和水準還是蠻高的。

楊軍鋒:教授呢?

王宇:我的感受和你一樣,我覺得這兩年通過各種ctf的競賽,整個行業年輕人的水準成長得非常快。

楊軍鋒:這是這個行業的好消息。

王宇:就像足球一樣,如果有更多的青少年以一種比較高強度、高水準的訓練的話,我相信這個水準肯定是幾年之内就能上一個台階的。

楊軍鋒:對,這是行業的一個重大利好。