origin



2014年8月,有一群對資安技術充滿熱誠,以學生為主的台灣HITCON駭客團隊,在美國拉斯維加斯舉辦的DEF CON CTF 駭客競賽,獲得了第二名的成績,是國內資安史重要的里程碑。這種駭客競賽,參加的選手需同時具備演算法分析、程式設計、系統程式概念、系統漏洞分析、系統防禦和攻擊程式撰寫能力等等,這種競賽可說是全方位的電腦科學競技,各國為了培養這類高階資安技術人才,均舉辦此類CTF (Capture the Flag)駭客競賽來厚植防禦能量。

Rule

競賽規則

競賽時間: 1/17 9:00~17:00 & 1/18 9:00~15:00
測試時間: 1/16 全天開放 vpn 連線測試,20:00~22:00 開放一個服務,進行測試賽
*非比賽時間關閉服務

  • 本次比賽類型為 Attack & Defense,每支隊伍負責維護一台 server (gamebox) 上的數個 service。比賽中攻擊其它隊伍的 service,並且修補自己 service 的漏洞

  • 每支隊伍會收到一組 OpenVPN key 及設定檔用來進入比賽時的網路,一個 token 用來在上傳 flag 時識別上傳的隊伍,以及一組 ssh key 用來登入 gamebox

  • 主辦方會對各隊 service 進行測試,在修補漏洞或加固時要注意避免影響 service 的「預期行為」。例如,一個 buffer overflow 的漏洞顯然不是設計者預期該有的行為可以修掉,方法「可能」是加大 buffer 或是限制 input 長度。也因此,裁判方不會試圖觸發漏洞或讓 service crash。

  • 裁判方的 check script 會不斷修改並加強,請隨時注意 patch 過的 service 運作是否正常

  • 每支隊伍的所有設備會在 10.217.x.0/24 的網域下,包括 gamebox 以及連上比賽網路的個人主機。數字 x 為隊伍的編號。

  • Gamebox 位於 10.217.x.201,環境為 Ubuntu 12.04 64bit
    登入 gamebox: ssh -i key.pem ctf@10.217.x.201
    Gamebox 上可以利用 su -u serviceX 切換至該服務的 user,也可以利用 chown 做權限的設定
    Gamebox 上不提供 root,也禁止以任何方式提權

  • 禁止以大量的連線、流量或 fork bomb 等資源消耗型攻擊進行 DOS 或 DDOS,但利用 service 本身漏洞造成 service crash 或結果不正確,是允許的行為 Service 本身必需在裁判方提供的 server 上運行

  • 原則上任何對 service 加固的方式都是允許的,但當裁判認定加固方式過於白爛時,會要求參賽隊伍移除 (e.g. 將服務用 qemu 包起來) (註: 原則上 service 的設計會儘量讓這類防禦方式無效)
  • 裁判方不提供備份及救援 (除非遭受前述不合法的攻擊方式),請自行做好備分及權限控管

  • 所有進出 gamebox 的流量由裁判方紀錄,參賽隊伍並可以利用 sftp 從 10.217.x.1 下載。每個回合為一個 pcap 單檔,每個單檔延遲3回合開放,保留 30 分鐘

  • 測試時間的環境會跟實際比賽時相同,可以多加利用

  • 主辦方保留解釋及修改比賽規則的權利

  • 計分方式

    每隊初始分數為 10000 分。5 分鐘為一個回合,每個回合、每個 service 獨立計分,方法如下

  • 每隊每個 service 有一個 flag,每回合會更新
  • 假設隊伍 A 利用 service 的漏洞入侵後取得 B 隊的 flag 並在該回合內上傳至評分系統,視為 A 對 B 入侵成功,B 為「被入侵」
  • 如果 service 沒有通過裁判方的檢查,視為 service down
  • 「被入侵」以及「service down」皆扣 15 分
  • 「被入侵」隊伍所失的 15 分,由所有入侵該隊的隊伍平分
  • 「service down」隊伍所失的 15 分,由其它該 service 正常的隊伍平分
  • 計分為浮點數,惟僅顯示整數部份

  • 計分示例: A 入侵 B, C, D; B 入侵 C 但自己也 service down; C service down 則
  • 各隊失分 (被入侵 + service down):
  • A = -0 -0, B = -15 -15, C = -15 -15, D = -15 -0
  • 各隊得分 A(入侵 B + 入侵 C + 入侵 D + service 正常) =15 + 15/2 + 15 + 30/2 B(入侵 C) =15/2 C = 0 D(service 正常) = 30/2
  • 總分變化: A = 52.5, B = 22.5, C = -30, D = 0

  • 10.217.1.201 為 NPC 隊伍之 gamebox,該隊伍 service 不會做加固,且 flag 會更新,分數計算視為一般隊伍。參賽隊伍亦可善加利用 NPC 進行測試。


    競賽獎勵

    第一名:獎金 新台幣 8,000 元
    第二名:獎金 新台幣 4,000 元
    第三名:獎金 新台幣 2,000 元
    第四~七名: 獎金 新台幣 1,000元


    競賽時如遇到任何問題請透過 IRC: chat.freenode.net#ctctf 詢問

    Screenshots

    Attack animation

    實時攻擊動畫,服務狀態顯示

    Customize Planet

    隊伍自定圖案產生星球

    More information



    臺大電腦安全課程: 課程網頁

    交大程式安全課程: 課程網頁


    hitconctf@googlegrounps.com