Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,347 views

Published on

人類戰隊大戰天網系統 – DEFCON CTF 2016 vs CGC 冠軍

Published in: Internet

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

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

×