安全領域的 CTF (Capture the Flag) 競賽是怎麼組織?怎麼進行的?
本題來自知乎圓桌 ?白帽黑客與安全,歡迎關注討論。
我是兩屆浙江大學信息安全奪旗賽(ACTF、ACTF | 主頁)的組織者之一,也參與了國內第一個世界範圍內的CTF比賽BCTF的組織和出題工作,覺得在這方面還是有一些經驗可以和大家分享~
首先從抽象的角度來看,要做一個CTF比賽,除非你是DefCON CTF那樣全球知名的比賽,不然肯定需要有一定吸引力的獎品。那麼你的第一件工作就是評估自己能把比賽做成什麼樣,寫個計划出來(這點可能和創業有點像?),然後去尋找贊助商。
第二,CTF比賽的精髓在於題目的內容,你和你組織比賽的團隊能否出到高水平的題目,來讓大家享受你的比賽?千萬不要出一些無聊的題目來噁心大家,浪費大家的時間。CTF比賽的題目質量是CTF比賽是否能辦的好的關鍵。出題需要提前規劃好題目類型,難度階梯,負責人需要不停push大家,題目出好之後需要互相驗題來檢查是否有未預期漏洞或者一些bug。
第三,能不能把一切有趣的故事穿插進你的CTF比賽中,讓大家有玩遊戲的代入感?這點上俄羅斯的一些比賽做的很棒,並且把故事的線索藏在了互聯網的很多角落,出成了一個個小的recon類題目,趣味性十足。
第四,對於CTF比賽的組織者而言,如何有效的阻止參賽人員作弊,也是個比較困難的問題。
進行時的問題主要是通過控制放題目的節奏來控制比賽節奏,同時對出現的問題(某些題目掛掉,某些題目出現未預期漏洞需要進行處理,平台被人DDoS,平台的功能出現問題等)進行應急響應。同時還要在irc或者QQ群里和參賽選手交流,比賽結束後還要花一定時間檢查是否有人作弊。
對於線下比賽來講,要準備的事情有更多。
產生的額外問題有:比賽時間的選擇(選手是否有空聚在一起比賽),選手的交通和住宿問題,選手比賽期間的餐飲,線下一般是攻防,則需要稍微複雜些的網路環境(是否配置容災環境,能否防止隊伍之間相互干擾),線下比賽的觀賞性(一般需要做一些可視化效果)。
首先對大的安全公司來說,資源人才儲備比較多,出題的方向也就比較多,比如web,加密,逆向方向,可以根據各部門的自己的特長,把每個方向的題都出到極至。
但是實際情況往往也並不如此,就好像皇馬,集合了許多大牌球星,但是往往也有失利在小隊的情況,問題主要是各部門間的合作,以及對ctf的重視上。
組織的話,一般是每個人出題,出完題找開發匯總,開發評估下,你出的題是否好實現,最後部署。當時整套ctf,不光要有題,一般也有積分榜,討論組,在線直播等。
其他組織的出題方應該也是大同小異,組織者通過熟人或者其他渠道找各個方向擅長的人來出相應的題目,搭建環境,開發好答題系統,反作弊系統等等,裡面涉及很多規則。定好比賽的獎品,頒獎儀式等。線下比賽,選手聚集到一起的話會更麻煩寫,因為會有自稱攪屎棍選手,內網開嗅探黑其他選手的情況。小弟我剛好認識一些朋友有組織過 CTF 競賽. (最近也在準備下一個競賽)
CTF 比賽分線上和現場兩種, 線上比較簡單, 主要兩件事情:
1.競賽系統 (大多為 Jeopardy 類型的解題競賽)
2.題目準備 (例如五種類型, 每個類型 1-5 題)
現場比賽就相當複雜了, 首先第一大問題是需要經費:
1.場地
2.機器設備線路
3.所有工作人員, 隊伍的旅費, 住宿等等
4.比賽期間現場所有花費
經費就讓很多人打消了舉辦現場競賽的念頭,
1.比賽環境建置: 每隊隊伍使用的 gamebox 的設計和製作, 各隊 service 監控, 記分板等等程式的開發.
2.出題: 通常現場賽都是 attack and defence 類型, 這類型的出題難度又更高.
3.現場競賽維運, 溝通, 狀況排除.
這往往直接影響整個比賽的水準(平), 細節非常重要, 例如系統環境設定, 穩定度, 題目難度分配等等.
而且能到決賽的隊伍都相當強, 如果籌備團隊技術不是在同一個水平, 比賽可能就不是那麼精彩.
我當時準備過一場校級 CTF,題目很簡單:把對方的 Tomcat Web 伺服器關掉,只要伺服器 Web 頁面超過 30 分鐘看不見就算輸。
當時的比賽環境雙方都有一台目標伺服器,一台對外網的出口路由器。第一階段是網路配置,兩隊允許用機房裡能找到的任何設備(兩層及三層交換機、備用伺服器、備用路由器、PC 等等)組建網路,並保證通過外網可以互相看到對方 Tomcat Web 伺服器的頁面(允許反向代理)。第二階段是攻擊,雙方竭盡全力通過各種網路探測和入侵手段,從外網出口向內進攻。
推薦閱讀:
※安全團隊的 CTF 得分能代表哪方面的實力水平?
※某國公安偵查到該國IM上一則關於搶劫的聊天信息,現實技術上是如何實現的?
TAG:網路安全 | CTFCaptureTheFlag |