競賽規則
競賽時間: 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 分鐘
測試時間的環境會跟實際比賽時相同,可以多加利用
主辦方保留解釋及修改比賽規則的權利