SlideShare a Scribd company logo
1 of 56
www.cloudsec.com/tw | #CLOUDSEC
從 HITCON 駭客戰隊
挑戰美國CGC天網機器人探討自動攻防技術發展
(Autonomous Hacking and Patching)
李倫銓
HITCON CTF 領隊
感謝趨勢科技支持台灣資安人才挑戰世界駭客競賽
2016/8/25 Cloudsec 2016 2
• HITCON CTF領隊與競賽負責人
• 交大資工所,台大電機所博士候選人,
目前任職 聯發科技 IT 部門。
• 專長:網路安全相關技術、惡意程式
與流量分析、雲端服務規劃與研究。
2016/8/25 Cloudsec 2016 3
這場talk是講八月在DEFCON的兩個比賽
1. DARPA 辦的 CGC (第一次辦)
2. LegitBS 辦的 DEFCON CTF 2016
2016/8/25 Cloudsec 2016 4
DARPA CGC
(Cyber Grand Challenge)
2013-2016
2016/8/25 Cloudsec 2016 5
DARPA 這個 CGC 企劃究竟是什麼?
CGC (Cyber Grand Challenge)
歷史上第一次完全由電腦互打的競賽,完全沒有人類參與
2016/8/25 Cloudsec 2016 6
• 2003年1月25日,SQL Slammer 蠕蟲短短10分鐘內,
感染七萬多台主機。
• 2010 MS LNK漏洞MS10-045,微軟Patch一次還不夠,
2015年又被挖出沒修好。
2016/8/25 Cloudsec 2016 7
NSS 這張圖顯示了當exploit 出現時,大部分的IPS無法偵測
來源: DARPA2016/8/25 Cloudsec 2016 8
FireEYE 2014年這張圖顯示,大量惡意程式生成期越來越短
來源: DARPA
2016/8/25 Cloudsec 2016 9
DARPA 認為光靠人類是不夠的,只有靠電腦的
秒級的速度和有系統的判斷,才能控制威脅。
2016/8/25 Cloudsec 2016 10
我知道你心裡會想到這個
天網要來毀滅人類了
2016/8/25 Cloudsec 2016 11
當然 ~ DARPA 也想到了…
2015 CTF 比賽結束的時候,主辦單位對我們說:
“2016 的CTF ,來自全世界的駭客隊伍將
一起對抗來自 DARPA 的自動攻擊機器人!”
2016/8/25 Cloudsec 2016 12
+ =
最強人類駭客大賽
DEFCON CTF
CGC機器人冠軍
參在一起做成…
然後就
…. 搞死我們了
2016/8/25 Cloudsec 2016 13
人類
人類
人類
人類
機器冠軍
DEFCON CTF 2016 的概念
就是一個機器人邀請人類去
他家打牌的概念。用的是他
的牌、牌桌也是他的。
CGC賽制
2016/8/25 Cloudsec 2016 14
CGC 背景介紹
2016/8/25 Cloudsec 2016 15
DECREE 環境 -
因為真實世界作業系統發展至今,太
過複雜而且已經有各種保護機制,但
DARPA給了一個簡單的起點
• DECREE上面的程式漏洞沒辦
法用在真實世界的作業系統,
真實世界的程式漏洞沒辦法
用在DECREE裡面
• DECREE是 Opensource
單純性
限制性
2016/8/25 Cloudsec 2016 16
Text vs Code of trivial program
來源: DARPA2016/8/25 Cloudsec 2016 17
Graph of trivial program
既有 OS 環境太複
雜,導致分析分
支太大無法運算
來源: DARPA
2016/8/25 Cloudsec 2016 18
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
CGC 預賽與決賽
2016/8/25 Cloudsec 2016 20
David Brumley, CMU - CTF (PPP)
CTF (shellphish)
前天opensource
Dawn Song, Berkeley
師
徒
對
決
喬治亞理工
2016/8/25 Cloudsec 2016 21
Forallsecure
MAYHEM
Techx
XANDRA
SHELLPHISH
Mechnical phish
1
2 32016/8/25 Cloudsec 2016 22
全場動畫呈現 CRS 分析、攻擊、與存活
2016/8/25 Cloudsec 2016 23
CRS 對程式的分析過程可以透過trace呈現出來
2016/8/25 Cloudsec 2016 24
剛剛噴的流量,裡面其實是參雜著存活檢測(Polls) +各隊攻擊封包(POV)
2016/8/25 Cloudsec 2016 25
每一個CB都需要通過數個Poll檢查
服務被打爆就裸出來
齒輪代表
修補中
2016/8/25 Cloudsec 2016 26
Availability
Security
Evaluation
除了會用不同方法檢查是否符合功
能完整性,還會看time, memory
usage, and space efficiency,大概共
有10-30個檢查
例: 12/25
0~1
1 or 2
1~2
X
X
服務有沒有被打下來
1 or 2
攻擊可以成功打幾隊?
例:4/6 (打下四隊)
Scoring 評分系統有三大指標
X
1002016/8/25 Cloudsec 2016 27
2016/8/25 Cloudsec 2016 28
來源: DARPA2016/8/25 Cloudsec 2016 29
原 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
要自動化前,讓我們先了解人類如何找
漏洞、修復漏洞、寫出exploit
2016/8/25 Cloudsec 2016 31
人類分析binary已經有很多好工具了
2016/8/25 Cloudsec 2016 32
2016/8/25 Cloudsec 2016 33
2016/8/25 Cloudsec 2016 34
再來看,機器如何自動化?
• 如何 Crash binary ?
• 動態分析 / Fuzzing
• Symbolic Execution
• 如何自動 Patch? Generic patch?
• 如何自動分析 Network 封包並 Replay?
2016/8/25 Cloudsec 2016 35
如何自動 Patch? Generic patch?
But!! 可能程式中有很多這種區塊,
大量的對不確定記憶體存取加上
檢查,會有效能問題。
而CGC的poll檢查就包括了執行效
能!!
來源: forallsecure
假設ecx指向下一個寫入的位置,並在這程式存在out-of-
bound read/write, 那我們可以插入一段程式去做檢查
來patch掉這個漏洞
2016/8/25 Cloudsec 2016 36
來源: DARPA2016/8/25 Cloudsec 2016 37
CRS 設計 – 以ShellPhish 為例
來源:shellphish
http://angr.io
2016/8/25 Cloudsec 2016 38
人類 VS 機器 - 獲勝的關鍵 – Binary 複雜度
• 人類
• 優勢:
• 人類擅長分析以前沒出現
過的pattern
• 可以適應主辦程式寫錯
• 劣勢:
• 要睡覺
• 錢給少,心就委屈,然後
就會犯錯
•機器
• 優勢
• 能處理大量題目
• 速度快、能升級
• 劣勢
• 目前難以處理較為複雜的題目
• 沒辦法適應環境變化或錯誤
• 李師父,攻他電路
2016/8/25 Cloudsec 2016 39
辦 CGC 比賽還有一個關鍵,就是
DATA SET(題目) 的完整性
CGC Binary是否足以代表目前幾個重要的漏洞問題?
Buffer overflow?
Stack overflow ?
Heap overflow?
Memory leakage?2016/8/25 Cloudsec 2016 40
Finalists POV
來源: DARPA
題目
2016/8/25 Cloudsec 2016 41
Finalists – POV on bottom, avail on Top
來源: DARPA
題目
2016/8/25 Cloudsec 2016 42
Finalists – CWE-120 Buffer Overflow
來源: DARPABO分布2016/8/25 Cloudsec 2016 43
Finalists – CWE-121 Stack Overflow
來源: DARPA2016/8/25 Cloudsec 2016 44
Finalists – CWE-122 Heap Overflow
來源: DARPA2016/8/25 Cloudsec 2016 45
Finalists – CWE-125 Out of Bounds Read
來源: DARPA2016/8/25 Cloudsec 2016 46
Finalists – CWE-787 Out of Bounds Write
來源: DARPA2016/8/25 Cloudsec 2016 47
Finalists – CWE-476 Null point Deref
根據各隊解題狀況
的數據顯示,機器
非常擅長處理這類
漏洞
來源: DARPA2016/8/25 Cloudsec 2016 48
整場 CTF 賽事感想
1. 0day 不值錢,天才都哭了,你會replay就有機會
2. CTF主辦單位題目難度無法提高,因為竟然要考慮
到機器的心情
• 美國大駭客 Geohot、韓國天才 Loki 無法發揮人類最
高智商,loki 打完生氣到跑回飯店。
3. 難度沒提高也就算了,D1 , D2機器人線還沒接好
所以沒發揮機器人優勢
• 也不知道還能不能看到下次機器人發揮的機會
2016/8/25 Cloudsec 2016 49
2002-2016年 DEFCON CTF 前三名國家來看資安
人才發展
2016 PPP USA b1o0p CHINA DEFKOR South Korea
Taiwan
Taiwan
台灣CP值
真的還不
錯,值得
繼續投資
2016/8/25 Cloudsec 2016 50
那麼回到大家關注的問題,機器人打得贏人嗎
• 其實這次比賽並不完整,因為線沒接好
• 冠軍Mayhem 斷線兩天,第二天結束還可以打贏美國兩隊
(Dragon Sector 和 Samurai ) XDDD
第一天抱怨API
第二天抱怨流量沒進來
2016/8/25 Cloudsec 2016 51
然後~~~~ CTF 最後一天接上完整流量
• Mayhem 竟然 9 個 binary 它找到 7 個
exploit,6 個上 patch。
秘辛#1 : 機器人冠軍Mayhem在
打 CGC 聽說打了一半就當機,最
後還拿CGC冠軍。
八卦是-> 前面的binary聽說比較簡單
2016/8/25 Cloudsec 2016 52
秘辛#2 :
• PPP的 Patch 留有後門。賽制中你可以拿其他隊的patch自己用,
所以全場很自然的會去抓第一名隊伍(which is PPP)的patch來
用,結果安裝他的patch之後全場都被他打,這招打得全場呱呱
叫。據說~~ Mayhem機器人也有這個功能
2016/8/25 Cloudsec 2016 53
Conclusion
• DARPA 已經release CGC相關資源,包括初賽題目、計分狀況、比賽規則、
DECREE github 相關code、決賽題目等等。
• 第三名CGC隊伍 Shellphish 前天公開他們的機器人原始碼
• 自動化攻防究竟會不會打敗人類? 電腦會不會統治世界?
• DARPA的成功在於,
• 找到一個好理由,讓大家投入自動化挖洞研究
• 設計一個好賽制,讓大家自己拼命去爭取那200萬美金
• 拉DEFCON CTF下水,讓機器人當一隊,還說是全人類要挑戰電腦,創造議
題
• CGC企劃,成功把產業趨勢、學術研究上最難的dataset驗證、CTF
大賽串起來,造成相當的話題,便是給予資安環境相當高的貢獻
• 簡單/固定樣式的洞 -> 交給機器人 。複雜/創新的洞 -> 交給人類
2016/8/25 Cloudsec 2016 54
Script
kiddies
以前
已知漏洞
Metasploit
未來
Script
kiddies
未知漏洞
Mayham
Take Control ?? 小孩也行
2016/8/25 Cloudsec 2016 55
Any Question?
alan@hitcon.org

More Related Content

Similar to 從 HITCON 駭客戰隊 挑戰美國CGC天網機器人探討自動攻防技術發展 (Autonomous Hacking and Patching)

Spirent_securityLab-服務介紹_2022.pdf
Spirent_securityLab-服務介紹_2022.pdfSpirent_securityLab-服務介紹_2022.pdf
Spirent_securityLab-服務介紹_2022.pdfssuserdfa916
 
2016 前端潮玩意兒
2016 前端潮玩意兒2016 前端潮玩意兒
2016 前端潮玩意兒Maxis Kao
 
[2013 syscan360] Jonathan Brossard_katsuni理论介绍以及在沙盒和软件仿真方面的应用
[2013 syscan360] Jonathan Brossard_katsuni理论介绍以及在沙盒和软件仿真方面的应用[2013 syscan360] Jonathan Brossard_katsuni理论介绍以及在沙盒和软件仿真方面的应用
[2013 syscan360] Jonathan Brossard_katsuni理论介绍以及在沙盒和软件仿真方面的应用Moabi.com
 
twMVC#33玩轉 Azure 彈性部署
twMVC#33玩轉 Azure 彈性部署twMVC#33玩轉 Azure 彈性部署
twMVC#33玩轉 Azure 彈性部署twMVC
 
Blockchain Demystified
Blockchain Demystified Blockchain Demystified
Blockchain Demystified slidejean
 
Ms open camp 2016
Ms open camp 2016Ms open camp 2016
Ms open camp 2016Ascii Huang
 
SRE CH12 - Effective Troubleshooting
SRE CH12 - Effective TroubleshootingSRE CH12 - Effective Troubleshooting
SRE CH12 - Effective TroubleshootingRick Hwang
 
程式人雜誌 -- 2013年3月號
程式人雜誌 -- 2013年3月號程式人雜誌 -- 2013年3月號
程式人雜誌 -- 2013年3月號鍾誠 陳鍾誠
 
一個微信專案從0到000的效能調教
一個微信專案從0到000的效能調教一個微信專案從0到000的效能調教
一個微信專案從0到000的效能調教Bruce Chen
 
企業導入容器經驗分享與開源技能培養
企業導入容器經驗分享與開源技能培養企業導入容器經驗分享與開源技能培養
企業導入容器經驗分享與開源技能培養Philip Zheng
 
Pytorch cnn netowork introduction 20240318
Pytorch cnn netowork introduction 20240318Pytorch cnn netowork introduction 20240318
Pytorch cnn netowork introduction 20240318FEG
 
C/C++调试、跟踪及性能分析工具综述
C/C++调试、跟踪及性能分析工具综述C/C++调试、跟踪及性能分析工具综述
C/C++调试、跟踪及性能分析工具综述Xiaozhe Wang
 
大鱼架构演进
大鱼架构演进大鱼架构演进
大鱼架构演进Jun Liu
 
初探 Data API Builder:在幾分鐘內將資料庫轉換成 REST 和 GraphQL 不再是夢想
初探 Data API Builder:在幾分鐘內將資料庫轉換成 REST 和 GraphQL 不再是夢想初探 Data API Builder:在幾分鐘內將資料庫轉換成 REST 和 GraphQL 不再是夢想
初探 Data API Builder:在幾分鐘內將資料庫轉換成 REST 和 GraphQL 不再是夢想Alan Tsai
 
202203-技术沙龙-k8s-v1.pptx
202203-技术沙龙-k8s-v1.pptx202203-技术沙龙-k8s-v1.pptx
202203-技术沙龙-k8s-v1.pptxQiming Teng
 
Foundation of software development 2
Foundation of software development 2Foundation of software development 2
Foundation of software development 2netdbncku
 
常用开发工具介绍
常用开发工具介绍常用开发工具介绍
常用开发工具介绍haozes
 
2018 VLSI/CAD Symposium Tutorial (Aug. 7, 20:00-21:00 Room 3F-VII)
2018 VLSI/CAD Symposium Tutorial (Aug. 7, 20:00-21:00 Room 3F-VII)2018 VLSI/CAD Symposium Tutorial (Aug. 7, 20:00-21:00 Room 3F-VII)
2018 VLSI/CAD Symposium Tutorial (Aug. 7, 20:00-21:00 Room 3F-VII)Simen Li
 

Similar to 從 HITCON 駭客戰隊 挑戰美國CGC天網機器人探討自動攻防技術發展 (Autonomous Hacking and Patching) (20)

Spirent_securityLab-服務介紹_2022.pdf
Spirent_securityLab-服務介紹_2022.pdfSpirent_securityLab-服務介紹_2022.pdf
Spirent_securityLab-服務介紹_2022.pdf
 
Hello openstack 2014
Hello openstack 2014Hello openstack 2014
Hello openstack 2014
 
【HITCON FreeTalk】Supply Chain Attack
【HITCON FreeTalk】Supply Chain Attack【HITCON FreeTalk】Supply Chain Attack
【HITCON FreeTalk】Supply Chain Attack
 
2016 前端潮玩意兒
2016 前端潮玩意兒2016 前端潮玩意兒
2016 前端潮玩意兒
 
[2013 syscan360] Jonathan Brossard_katsuni理论介绍以及在沙盒和软件仿真方面的应用
[2013 syscan360] Jonathan Brossard_katsuni理论介绍以及在沙盒和软件仿真方面的应用[2013 syscan360] Jonathan Brossard_katsuni理论介绍以及在沙盒和软件仿真方面的应用
[2013 syscan360] Jonathan Brossard_katsuni理论介绍以及在沙盒和软件仿真方面的应用
 
twMVC#33玩轉 Azure 彈性部署
twMVC#33玩轉 Azure 彈性部署twMVC#33玩轉 Azure 彈性部署
twMVC#33玩轉 Azure 彈性部署
 
Blockchain Demystified
Blockchain Demystified Blockchain Demystified
Blockchain Demystified
 
Ms open camp 2016
Ms open camp 2016Ms open camp 2016
Ms open camp 2016
 
SRE CH12 - Effective Troubleshooting
SRE CH12 - Effective TroubleshootingSRE CH12 - Effective Troubleshooting
SRE CH12 - Effective Troubleshooting
 
程式人雜誌 -- 2013年3月號
程式人雜誌 -- 2013年3月號程式人雜誌 -- 2013年3月號
程式人雜誌 -- 2013年3月號
 
一個微信專案從0到000的效能調教
一個微信專案從0到000的效能調教一個微信專案從0到000的效能調教
一個微信專案從0到000的效能調教
 
企業導入容器經驗分享與開源技能培養
企業導入容器經驗分享與開源技能培養企業導入容器經驗分享與開源技能培養
企業導入容器經驗分享與開源技能培養
 
Pytorch cnn netowork introduction 20240318
Pytorch cnn netowork introduction 20240318Pytorch cnn netowork introduction 20240318
Pytorch cnn netowork introduction 20240318
 
C/C++调试、跟踪及性能分析工具综述
C/C++调试、跟踪及性能分析工具综述C/C++调试、跟踪及性能分析工具综述
C/C++调试、跟踪及性能分析工具综述
 
大鱼架构演进
大鱼架构演进大鱼架构演进
大鱼架构演进
 
初探 Data API Builder:在幾分鐘內將資料庫轉換成 REST 和 GraphQL 不再是夢想
初探 Data API Builder:在幾分鐘內將資料庫轉換成 REST 和 GraphQL 不再是夢想初探 Data API Builder:在幾分鐘內將資料庫轉換成 REST 和 GraphQL 不再是夢想
初探 Data API Builder:在幾分鐘內將資料庫轉換成 REST 和 GraphQL 不再是夢想
 
202203-技术沙龙-k8s-v1.pptx
202203-技术沙龙-k8s-v1.pptx202203-技术沙龙-k8s-v1.pptx
202203-技术沙龙-k8s-v1.pptx
 
Foundation of software development 2
Foundation of software development 2Foundation of software development 2
Foundation of software development 2
 
常用开发工具介绍
常用开发工具介绍常用开发工具介绍
常用开发工具介绍
 
2018 VLSI/CAD Symposium Tutorial (Aug. 7, 20:00-21:00 Room 3F-VII)
2018 VLSI/CAD Symposium Tutorial (Aug. 7, 20:00-21:00 Room 3F-VII)2018 VLSI/CAD Symposium Tutorial (Aug. 7, 20:00-21:00 Room 3F-VII)
2018 VLSI/CAD Symposium Tutorial (Aug. 7, 20:00-21:00 Room 3F-VII)
 

從 HITCON 駭客戰隊 挑戰美國CGC天網機器人探討自動攻防技術發展 (Autonomous Hacking and Patching)