CGC 超級挑戰賽¶
本節內容摘自李康教授於 2016 年 8 月 17 日 ISC 互聯網安全大會演講《網絡超級挑戰賽中的漏洞發掘與利用》。
CGC 網絡超級挑戰賽是全球首次機器網絡攻防比賽,比賽過程全自動,無任何人工幹預。考驗機器自動漏洞挖掘、自動軟件加固、自動漏洞利用和自動網絡防護水平。使用簡化的 Linux 操作系統------DECREE,類似 Snort的規則過濾防火牆。對 Linux 二進製程序進行漏洞挖掘。所有參賽隊都沒有程序源碼。
在 2016 年的 CGC 比賽中,挑戰的賽題包含了 53 種 CWE。其中包含 28 個堆溢出漏洞、24 個棧溢出漏洞、16 個空指針訪問漏洞、13 個整數溢出漏洞和 8 個 UAF 漏洞。
攻防過程由組織方發出挑戰程序,各團隊服務器可以向組織方提供補丁程序,防火牆規則和攻擊程序。修補過的程序和防火牆規則會分發給其他團隊。組織方爲每個團隊運行挑戰程序,進行服務測試和攻擊並進行評估。
性能評價指標¶
- 服務正常訪問的反應時間;
- 打補丁頻率;
- 加固程序的效率;
- 成功防禦攻擊的次數統計;
- 攻擊成功次數統計。
明確核心任務¶
拿到二進製程序,進行自動分析,在明確防火牆規則後對程序進行加固並生成攻擊程序。
分析方法¶
- 具體執行-使用正常的執行模式;
- 符號執行-輔助 Fuzzing 階段的路徑選擇;
- 混合執行-帶有具體輸入的符號執行,根據輸入選擇路徑,但保留符號條件。
CGC 經驗總結¶
- 完美防守的難度遠大於生成攻擊的難度;
- 二進制加固程序需要避免功能損失,並最小化性能損失;
- 安全自動化處理的大趨勢已經形成,多數團隊可以在幾秒鐘的時間對簡單應用形成攻擊並生成有效防守;
- 對抗中的策略值得研究,根據自身和對手的攻防能力,對資源和動作進行合理調整。