什麼是 CTF 搶旗攻防賽?|專家論點【Huli】

圖片來源:freepik

你有聽過或是在新聞上看過 CTF 這個名詞嗎?CTF 的全名為 Capture The Flag,中文直翻就是「奪旗」的意思。在資安領域中有不少名詞跟術語都是來自軍事領域,例如說負責攻擊的紅隊(Red Team)以及負責防守的藍隊(Blue Team),而奪旗也不例外,顧名思義就是奪下對方的旗幟就能夠獲得勝利。

而 CTF 在資安領域上,簡單來講就是「搶奪旗幟(flag)的比賽」。

舉例來說,今天可能有一道題目,給了你一個網站,你的目標就是入侵這個網站,拿到這台伺服器的管理員權限,拿到以後你可以在只有管理員有權限存取的資料夾中,看到一個檔案叫做 flag,內容會是一段文字,例如說:CTF{I_am_thE_f1ag} 之類的,這一串字就是所謂的 flag,接著把這個 flag 輸入到比賽系統中,就會取得該題的分數,等同於是「搶到了 flag」。

下面是常見的 CTF 比賽系統的截圖,可以看到有很多道題目:

而題目點下去就會有敘述還有相關的網址跟檔案,也有讓你提交 flag 的輸入框:

分數的計算方式主要有兩種,一種採固定分數制,但比較不常見,另一種比較常見的是浮動分數制,隨著解開的人數愈多,分數就會愈少。舉例來說,只有你一個人解開的時候是 500 分,兩個人解開時可能就剩下 476 分,有 100 個人都解開的時候,可能這題就只剩下 50 分。而分數多寡跟解開的順序無關,儘管你是第一個解開的,你最後還是只能得到 50 分。

而題目一般來說常見的有幾種類別,分別是:

  1. Web(網頁相關的題目)
  2. Reverse(逆向工程)
  3. Pwn(binary 有關的題目)
  4. Crypto(密碼學相關)
  5. Misc(其他千奇百怪的題目)

有些比賽可能還會有 Forensics(鑑識)或是 OSINT(利用各種搜尋技巧找到相關答案,有點像人肉搜索那樣)的類型。

以 misc 為例,可能會就給你一個壞掉的 QRCode 讓你去修復,你就要去研究 QRCode 的規格,知道背後的原理,才能開始修復。

而我上面講的這種「解題制」的模式,叫做 Jeopardy,最後比的就是誰的分數高,你解越多題尤其是越多難題,分數就會越高。

而另外一種也很常見的模式叫做 Attack & Defense,有時候簡稱為 A&D 模式,就更有標題所說的「攻防戰」的感覺。在這個模式底下,每一個隊伍都會有一台主機,上面有著主辦單位先寫好的服務,而你的目標就是:

  1. 保障服務穩定運行
  2. 修補服務的漏洞
  3. 攻擊其他隊伍的服務

而「攻擊其他隊伍的服務」,具體來說就是找出漏洞以後入侵,然後拿到放在服務裡面的 flag,一樣把 flag 提交之後就會拿到分數。這種 A&D 模式比起解題制,更講求的是速度跟防禦能力。舉例來說,解題制就算你最後一刻才解開,也還是跟別人拿到同樣分數。但是 A&D 模式你如果晚別人一小時才找到漏洞,就會損失這一小時防禦跟攻擊的分數,所以速度是很重要的。

有一個叫做 CTF TIME 的網站,上面搜集了幾乎所有公開的 CTF 比賽,每一場比賽都會有相對應的權重,決定了每支隊伍最後能獲得的積分,而積分就決定了在上面排行榜的名次。雖然說上面的排行榜就算拿到前十名好像也不會有什麼實質獎勵,但更多的是讓別人認識這支隊伍。

一般來說,大多數 CTF 的比賽時間都會在假日,因為大家才比較有空參與,而比賽時間常見的是 48 小時,例如說週六早上八點開始,週一早上八點結束,也有 24 小時或是更長的。開始時間也不一定,通常看主辦單位的時區而定。

而 CTF 中通常都會有許多題目,所以基本上是以隊伍為單位參賽,每個隊友負責不同的部分,彼此互相合作。通常不會限制隊伍人數,有的隊伍可能 5 個人,有的可能 50 個人也說不定。

除此之外,有幾場比賽也是年度盛事,例如說跟著 DEF CON 一起舉辦的 DEF CON CTF,就被喻為 CTF 界的最高殿堂,資格賽是採 Jeopardy 模式,取前 16 名進入決賽,決賽今年是在美國拉斯維加斯舉行,是 A&D 模式。對比賽內容跟相關遊記有興趣的話,可以參考我今年寫的心得:DEF CON 30 CTF final 遊記

如果你還是學生的話,台灣也有一個專門給學生的 My First CTF。除此之外,台灣其實也有不少針對學生的相關計畫。

介紹完 CTF 以後,我們下一篇文就來介紹一下有哪些相關的學習資源。

瀏覽 1,914 次

覺得不錯的話就分享出去吧!

發佈留言

Back to top button