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 [email protected]
    Gamebox 上可以利用 su -u serviceX 切換至該服務的 user,也可以利用 chown 做權限的設定
    Gamebox 上不提供 root,也禁止以任何方式提權
    scoreboard 位於 10.217.0.100,會公布隊伍的分數以及即時戰況
    成功獲取 flag 後,可以透過 scoreboard 的 submit 頁面,或是 " curl '10.217.0.100/team/submit_key?token=[team_token]&key=[round_key]' " 提交 key
  • 禁止以大量的連線、流量或 fork bomb 等資源消耗型攻擊進行 DOS 或 DDOS,但利用 service 本身漏洞造成 service crash 或結果不正確,是允許的行為
  • Service 本身必需在裁判方提供的 server 上運行

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

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

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

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