Mais conteúdo relacionado
Semelhante a 從 HITCON 駭客戰隊挑戰美國CGC天網機器人探討自動攻防技術發展(Autonomous Hacking and Patching) (20)
從 HITCON 駭客戰隊挑戰美國CGC天網機器人探討自動攻防技術發展(Autonomous Hacking and Patching)
- 3. • HITCON CTF領隊與競賽負責人
• 交大資工所,台大電機所博士候選人,
目前任職 聯發科技 IT 部門。
• 專長:網路安全相關技術、惡意程式
與流量分析、雲端服務規劃與研究。
2016/8/25 Cloudsec 2016 3
- 6. DARPA 這個 CGC 企劃究竟是什麼?
CGC (Cyber Grand Challenge)
歷史上第一次完全由電腦互打的競賽,完全沒有人類參與
2016/8/25 Cloudsec 2016 6
- 7. • 2003年1月25日,SQL Slammer 蠕蟲短短10分鐘內,
感染七萬多台主機。
• 2010 MS LNK漏洞MS10-045,微軟Patch一次還不夠,
2015年又被挖出沒修好。
2016/8/25 Cloudsec 2016 7
- 12. 當然 ~ DARPA 也想到了…
2015 CTF 比賽結束的時候,主辦單位對我們說:
“2016 的CTF ,來自全世界的駭客隊伍將
一起對抗來自 DARPA 的自動攻擊機器人!”
2016/8/25 Cloudsec 2016 12
- 17. Text vs Code of trivial program
來源: DARPA2016/8/25 Cloudsec 2016 17
- 18. Graph of trivial program
既有 OS 環境太複
雜,導致分析分
支太大無法運算
來源: DARPA
2016/8/25 Cloudsec 2016 18
- 19. Cyber Reasoning System (CRS)
每個隊伍要做出一台
CRS(Cyber reasoning System)
網路推理決策系統,來搶
第一名 200萬美金
這個CRS要做到
• 找出軟體漏洞
• 修補軟體問題 (PCB)
• 分析攻擊
• 設定防火牆
• 製作攻擊( POV)
• Intel Xeon
1280 cores
• 16 TB Ram
• 128 TB storage
2016/8/25 Cloudsec 2016 19
- 21. David Brumley, CMU - CTF (PPP)
CTF (shellphish)
前天opensource
Dawn Song, Berkeley
師
徒
對
決
喬治亞理工
2016/8/25 Cloudsec 2016 21
- 30. 原 Attack defense 賽制 CGC 賽制
題目量 一場約6個services,外加改版
CGC共高達18x個Challenge Binaries
而這次CTF則有9個 CB
題目難度
涵蓋X86、ARM等等真實生活的
程式縮小版
DECREE版本(7 syscalls)的Binary模擬一
般常見服務漏洞撰寫方式
攻擊流量 提供隊伍下載攻擊流量
提供隊伍下載攻擊流量,但不是一般
網路流量,反倒是像input/output值
發動攻擊方
式
隊伍寫出exploit直接打對方隊伍
繳交所謂POV給裁判來統一驗證
POV 有tyep1 type2兩種
存活檢查
由主辦方直接檢測隊伍的
services
繳交PCB(patched Challenge Binary)給
裁判來統一驗證
修補 不給root只能做binary patch
做出PCB繳交給裁判驗證,但是提交
PCB下一回合將會0分,應該是不讓你
自動亂修補
其他 不給root不能設防火牆
可以繳交防火牆規則,用類似regular
expression來阻擋
2016/8/25 Cloudsec 2016 30
- 35. 再來看,機器如何自動化?
• 如何 Crash binary ?
• 動態分析 / Fuzzing
• Symbolic Execution
• 如何自動 Patch? Generic patch?
• 如何自動分析 Network 封包並 Replay?
2016/8/25 Cloudsec 2016 35
- 36. 如何自動 Patch? Generic patch?
But!! 可能程式中有很多這種區塊,
大量的對不確定記憶體存取加上
檢查,會有效能問題。
而CGC的poll檢查就包括了執行效
能!!
來源: forallsecure
假設ecx指向下一個寫入的位置,並在這程式存在out-of-
bound read/write, 那我們可以插入一段程式去做檢查
來patch掉這個漏洞
2016/8/25 Cloudsec 2016 36
- 38. CRS 設計 – 以ShellPhish 為例
來源:shellphish
http://angr.io
2016/8/25 Cloudsec 2016 38
- 39. 人類 VS 機器 - 獲勝的關鍵 – Binary 複雜度
• 人類
• 優勢:
• 人類擅長分析以前沒出現
過的pattern
• 可以適應主辦程式寫錯
• 劣勢:
• 要睡覺
• 錢給少,心就委屈,然後
就會犯錯
•機器
• 優勢
• 能處理大量題目
• 速度快、能升級
• 劣勢
• 目前難以處理較為複雜的題目
• 沒辦法適應環境變化或錯誤
• 李師父,攻他電路
2016/8/25 Cloudsec 2016 39
- 40. 辦 CGC 比賽還有一個關鍵,就是
DATA SET(題目) 的完整性
CGC Binary是否足以代表目前幾個重要的漏洞問題?
Buffer overflow?
Stack overflow ?
Heap overflow?
Memory leakage?2016/8/25 Cloudsec 2016 40
- 42. Finalists – POV on bottom, avail on Top
來源: DARPA
題目
2016/8/25 Cloudsec 2016 42
- 48. Finalists – CWE-476 Null point Deref
根據各隊解題狀況
的數據顯示,機器
非常擅長處理這類
漏洞
來源: DARPA2016/8/25 Cloudsec 2016 48
- 49. 整場 CTF 賽事感想
1. 0day 不值錢,天才都哭了,你會replay就有機會
2. CTF主辦單位題目難度無法提高,因為竟然要考慮
到機器的心情
• 美國大駭客 Geohot、韓國天才 Loki 無法發揮人類最
高智商,loki 打完生氣到跑回飯店。
3. 難度沒提高也就算了,D1 , D2機器人線還沒接好
所以沒發揮機器人優勢
• 也不知道還能不能看到下次機器人發揮的機會
2016/8/25 Cloudsec 2016 49
- 50. 2002-2016年 DEFCON CTF 前三名國家來看資安
人才發展
2016 PPP USA b1o0p CHINA DEFKOR South Korea
Taiwan
Taiwan
台灣CP值
真的還不
錯,值得
繼續投資
2016/8/25 Cloudsec 2016 50
- 52. 然後~~~~ CTF 最後一天接上完整流量
• Mayhem 竟然 9 個 binary 它找到 7 個
exploit,6 個上 patch。
秘辛#1 : 機器人冠軍Mayhem在
打 CGC 聽說打了一半就當機,最
後還拿CGC冠軍。
八卦是-> 前面的binary聽說比較簡單
2016/8/25 Cloudsec 2016 52
- 53. 秘辛#2 :
• PPP的 Patch 留有後門。賽制中你可以拿其他隊的patch自己用,
所以全場很自然的會去抓第一名隊伍(which is PPP)的patch來
用,結果安裝他的patch之後全場都被他打,這招打得全場呱呱
叫。據說~~ Mayhem機器人也有這個功能
2016/8/25 Cloudsec 2016 53
- 54. Conclusion
• DARPA 已經release CGC相關資源,包括初賽題目、計分狀況、比賽規則、
DECREE github 相關code、決賽題目等等。
• 第三名CGC隊伍 Shellphish 前天公開他們的機器人原始碼
• 自動化攻防究竟會不會打敗人類? 電腦會不會統治世界?
• DARPA的成功在於,
• 找到一個好理由,讓大家投入自動化挖洞研究
• 設計一個好賽制,讓大家自己拼命去爭取那200萬美金
• 拉DEFCON CTF下水,讓機器人當一隊,還說是全人類要挑戰電腦,創造議
題
• CGC企劃,成功把產業趨勢、學術研究上最難的dataset驗證、CTF
大賽串起來,造成相當的話題,便是給予資安環境相當高的貢獻
• 簡單/固定樣式的洞 -> 交給機器人 。複雜/創新的洞 -> 交給人類
2016/8/25 Cloudsec 2016 54