台灣駭客團隊「HITCON」連續第三年出征號稱世界駭客大賽的「DEF CON CTF 2016決賽」,但今年他們的對手不只是各國選手,還包括「電腦」!如果說,今年 3 月南韓棋王李世乭對戰人工智慧 AlphaGo 是圍棋史上新的篇章,那麼 DEF CON 2016 也很可能也將寫下駭客史上新的一頁,而當電腦比世界各國的駭客更厲害,那麼很可能,今後我們再也不用害怕被駭客入侵、攻擊了。
在 HITCON 團隊出發前往美國比賽前夕,科技新報專訪到 HITCON 成員、同時是台灣資安防護龍頭趨勢科技的資安威脅研究員梁偉明(Lucas),以及趨勢科技進階威脅防禦研究核心技術研發部協理林孜穗,跟我們分享這場 DEF CON 首次加入「電腦」隊伍的「人機大賽」將怎麼比、有什麼看頭,以及帶領我們一探「自動化找漏洞」,這項連美國國防部都在研究的計畫,究竟是什麼神祕的玩意。
世界駭客大賽 DEF CON 比找漏洞,搶先攻擊別人別人的漏洞
DEF CON CTF 2016決賽在 8 月 5 日至 7 日開賽,這次將由來自全球 14 支人類組成的駭客隊伍以及 1 支電腦自動化系統,展開攻防大戰。
比賽採攻防搶旗賽(Capture the flag, CTF)模式,每隊擁有一台電腦,大會分批釋出幾個程式做為題目,隊伍在收到程式後開始找漏洞,找到後,就可以立即修補漏洞,並同時寫出攻擊程式攻擊其他隊伍的電腦,成功攻進就算「搶旗」,拿到分數;但也可能碰到別人已經修補好漏洞而攻不進去,得不到分數;或者太晚發現漏洞、太晚修補漏洞而讓電腦被其他隊伍入侵「搶旗」,遭到扣分。整體來看,就是一個比技術、速度、想法的駭客競賽。
來解釋一下「漏洞」是什麼。漏洞其實是就是 BUG,是工程師在寫程式時,沒寫好的地方,輕則在使用者給予指令時,程式不知道該怎麼處理而造成電腦當機,嚴重則會被有心人士/駭客所利用,入侵這個程式,甚至取得電腦權限,然後做盡各種他們想做的壞事,這類漏洞叫做「安全性漏洞」,也是所有資安公司軟體公司最擔心的事情。
找漏洞的三階段演進:人工、自動化、人工智慧
凡是人寫的程式就會有漏洞,至於要怎麼在由數千行、甚至千萬行的程式碼中找出漏洞,總不可能逐行去檢查吧?
梁偉明說明,找漏洞有三個方法:
第一種是完全靠人工,去寫一些工具或程式,裡面可能夾帶程式設計時沒想過會發生的狀況,像是檔案很大的圖片檔或是奇怪的 JavaScript,然後再隨機丟給程式,看他會不會當機,就能找出有沒有漏洞。比較有經驗的人,他會依照不同程式的特性、比較可能發生的漏洞,丟不同類型的指令,這樣就能更容易找出漏洞。
第二種是自動化。同樣是靠人工先寫一些可以測試程式的工具或程式,然後由電腦系統自己丟各種不同的指令給程式,看會不會當機;更進階一點的自動化系統,還可以做 Code Tracing(追溯程式碼)這個步驟,然後依據不同的程式中不同的功能,丟不同的指令來尋找可能的漏洞。
第三種是電腦利用人工智慧的方式包含 Machine Learning 或 Deep Learning,研究各種漏洞的模式(Pattern),最後能在 Code Tracing 之後,找出程式的漏洞。
▲趨勢科技的資安威脅研究員梁偉明(Lucas),連續三年被 HITCON 團隊徵招去參戰世界駭客大賽「DEF CON」,今年也將出發。他擅長找漏洞,也在開發「自動化找漏洞系統」,對這次 DEF CON 的「電腦」對手相當瞭解。(科技新報攝)
電腦也會找漏洞、補漏洞?美國國防部投入研究
在 DEF CON 跟人類隊伍鬥智的電腦隊伍就是上述第二種:自動化找漏洞系統。而這支隊伍,會由 8 月 4 日 DARPA 舉辦的 CGC 競賽的冠軍隊伍出線,到 DEF CON 場上,電腦要在在設計系統的人完全不操作的情況下,自己接收大會來的題目,然後找漏洞、修補漏洞、寫攻擊程式。
在今年的 DEF CON 之前,或許沒什麼人聽過 Cyber Grand Challenge(CGC)。這是由美國國防部高級研究計畫局(DARPA)從 2013 年開始舉辦的比賽,要知道, 21 世紀的戰爭已經不只是坦克、戰鬥飛機、阿兵哥的駁火廝殺,還要加上網路上的攻防戰,因為不論是電腦中的國家機密、軍事機密、商業機密,還是家中 IOT 裝置記錄下的個人隱私,都是國防系統應該要保衛的東西,然而網路攻擊愈加嚴重,過去完全靠資安專家人工找漏洞的方式,已完全無法應付迅速成長的電腦應用以及隨之而來的漏洞,因此 DARPA 希望能靠動化的系統去解決這個問題,終極目標是打造可以防禦的網路環境。
今年的 CGC 共有全世界 100 多個團隊報名參加,經過 3 次初賽後,只有 7 隊進入決賽,而決賽中獲得冠軍的隊伍,將獲得 200 萬美元獎金,並前往 DEF CON 跟來自 14 個國家的駭客精英較勁。
有人說,這是資安界、駭客界的「人機大賽」,就像今年 3 月南韓棋王李世乭對戰人工智慧 AlphaGo 一樣;有人用電影《魔鬼終結者 》裡用來防禦網路最後卻攻擊人類的「天網」(Skynet)來形容電腦隊伍。畢竟過去 CGC 都只有電腦跟電腦打,這次 CGC 冠軍隊伍竟然要踏進駭客界最高殿堂 DEF CON 要踢館,引起不小的話題。
趨勢科技梁偉明:自動化找漏洞系統還不夠成熟
那這場人機大賽,是各國的駭客菁英會獲勝,還是電腦再奪下一城呢?梁偉明本身擅長找漏洞,同時又是自動化找漏洞系統的工程師,在他看來,自動化找漏洞的系統還不夠成熟,在找漏洞的技術上還不如人類。他解釋,基本上現在自動化找漏洞的系統還沒有加入人工智慧、Machine Learning 等技術,因為漏洞的發生並沒有明確的模式足以讓電腦去學習並發展出人工智慧;再來也因為程式碼相當複雜,短則幾百行、長則幾千萬行,電腦自動化系統短時間內無法分析完,複雜的可能要個花個把月才能分析。在看過進入 CGC 決賽 7 支隊伍其中 3 隊公布的系統架構圖,大部分都屬簡單的自動化設計,只由電腦隨機丟指令去找漏動。
不過 DEF CON 的比賽結果梁偉明也難以定論,因為如果題目出得像 CGC 初賽那樣,屬於簡單、程式很小、數量多,而且多是電腦解過的題目,那麼電腦贏面就非常大,因為電腦雖然不夠聰明,但他運算速度會很快、解題也會很快,不過對其他參賽隊伍來說,比賽也會因此很無聊;但如果題目出得像以往一樣很複雜,那麼人類對伍的贏面則非常大。
題目到底會維持 DEF CON 原有水準或是出比較適合現階段 CGC 程度的題目還不知道,但已知競賽環境針對 CGC 而作出調整,像是大會提供每隊的電腦從原本的 Linux 作業系統變成 CGC 用的DECREE(DARPA Experimental Cybersecurity Research Evaluation Environment)作業系統,這麼一來就是從 200 多個指令集變成只有 7 個,函式庫(library)也刪除了。
梁偉明因此笑說,這次雖說是去比賽,但比較像當測試員,「我們就是 CGC 的李世乭」。
趨勢科技:以半自動化出發累積漏洞模式,等待機器學習技術到位時機
不過不管比賽結果怎樣,自動化找漏洞系統是否贏過人類,這都還是個持續發展中的技術。在梁偉明任職的趨勢科技,不僅以人工找漏洞,也開始研究自動化找漏洞系統,因為找到漏洞,就可以反饋到產品裡,提供使用者資訊安全防護。
但是否考慮加入 Machine Learning 技術,挑戰第三階段的找漏洞方式,林孜穗說,像 AlphaGo 這類圍棋對戰的人工智慧系統,也是一步一步從 5X5 的棋盤再到 19X 19,中間過了幾十年;而在自動化找漏洞系統這方面,目前連全自動化都還沒實現,那人工智慧找漏洞系統就更不用說要等到哪一年了,與其現階段砸錢買幾千台電腦來試,倒不如發展半自動化系統有效率的去找漏洞,並在過程中累積足夠的漏洞模式,待哪天學界的人工智慧技術成熟後,趨勢科技累積的知識、工具、模式就能派上用場。
(首圖來源:截取自 DEF CON 官方網站)