0
《親愛(ài)的,熱愛(ài)的》開(kāi)播后,網(wǎng)安圈誕生了一個(gè)新梗:你打籃球像 CXK,你打 CTF 像 HYT。
XSWL。
上述飯圈用語(yǔ),請(qǐng)讀者自行搜索其中內(nèi)涵。
本來(lái),大家以為網(wǎng)絡(luò)安全的春天到了,竟然都有偶像劇以網(wǎng)絡(luò)安全領(lǐng)域大的“CTF”為背景偷偷摸摸談戀愛(ài)了啊。
這個(gè)行業(yè)要火!
沒(méi)料到,電視劇其實(shí)是高端黑。

國(guó)內(nèi)頂尖 CTF 戰(zhàn)隊(duì)、騰訊某戰(zhàn)隊(duì)一位不愿透露姓名的 CTFer 小 A 對(duì)雷鋒網(wǎng)吐槽:“怎么辦,我已經(jīng)入行遠(yuǎn)遠(yuǎn)超過(guò)六年,我是不是要干不下去了?”
不靠譜的電視劇,你知道你傷害了多少 CTFers 的心嗎?
太多梗了,我們不一一吐槽,本文的目的是好好科普一下,什么是真正的 CTF 和真正的 CTF 選手。白帽黑客教主 TK 曾來(lái)雷鋒網(wǎng)直播講課,好好地科普了一下 CTF,我們先重溫一下:
這個(gè)概念是從歐美傳過(guò)來(lái)的,字面上是“奪取旗幟”,原本是西方的一種傳統(tǒng)戶(hù)外游戲,相當(dāng)于我們的丟沙包或者跳大繩。原始的 CTF 每個(gè)隊(duì)伍真的有一面旗幟。比賽目標(biāo)就是奪取位于對(duì)方“基地”的旗幟,并帶著旗子安全返回自己的基地,當(dāng)然,實(shí)際規(guī)則還要更復(fù)雜一些,比如還有“監(jiān)獄”的概念。
后來(lái),“奪旗”的概念也被引入信息安全攻防比賽。因?yàn)樵诒荣愔校x手需要通過(guò)解開(kāi)題目,或攻破目標(biāo)奪得“Flag”。
現(xiàn)在,我們用 CTF 來(lái)代指信息安全領(lǐng)域的奪旗比賽。
CTF 的比賽形式有以下幾種:
1.真的是“題目”的解題模式,包含逆向、漏洞利用、密碼學(xué)、web、雜項(xiàng),難度不一,分值不一,越難的題目分值越多。
逆向題一般是一個(gè)二進(jìn)制程序,F(xiàn)lag 就藏在這個(gè)文件里,需要選手有高超的逆向技巧,找出 Flag。
漏洞題一般也是給二進(jìn)制程序,選手需要從程序中找出漏洞,并寫(xiě)出漏洞利用的攻擊代碼。雖然做漏洞題一般也需要逆向技巧,但對(duì)漏洞技術(shù)要求更高,用寫(xiě)出的漏洞利用代碼實(shí)際攻擊成功,才能取得 Flag。
算法題是指算法分析題,給你一段某種算法處理過(guò)的數(shù)據(jù),選手需要對(duì)付一個(gè)或多個(gè)算法。
審計(jì)題給出的文件就多種多樣了。可能是一張隱藏了信息的圖片,看起來(lái)像風(fēng)景照或者人像,但其中有線(xiàn)索指向某個(gè) Flag 。也有可能給你一個(gè)網(wǎng)絡(luò)數(shù)據(jù)包,包含大量網(wǎng)絡(luò)通信數(shù)據(jù),需要你分析。
還有一些難以歸類(lèi)的題目,或者由幾類(lèi)題型組合的題,稱(chēng)為綜合題。
解題模式是比較常見(jiàn)的模式,不少 CTF 都選擇這種模式,特別是在預(yù)賽階段。
2.攻防模式。
這個(gè)模式更加熱鬧和刀光劍影。因?yàn)椋娴氖顷?duì)伍之間進(jìn)行攻防。攻防模式一般可以分為三種:
第一種,每一支隊(duì)伍一同攻擊同一個(gè)目標(biāo),考驗(yàn)攻擊能力;
第二種,所有參賽隊(duì)伍進(jìn)行防守,遭受攻擊,考驗(yàn)防守能力;
第三種,結(jié)合前兩種,綜合考驗(yàn)攻防能力。這種模式對(duì)技術(shù)、戰(zhàn)術(shù)、策略要求更高。一般是回合制,一個(gè)回合五分鐘??梢园凑兆约旱牟呗赃x擇優(yōu)先攻擊或防守,打誰(shuí)不打誰(shuí),隊(duì)伍自己決定,一個(gè)回合暫停一次。
還有一種模式,這種模式在國(guó)內(nèi)不常見(jiàn),稱(chēng)為“King of The Hill”,我把它叫做“山大王”——大家同時(shí)攻擊一個(gè)服務(wù)器,比誰(shuí)占領(lǐng)服務(wù)器的時(shí)間長(zhǎng),保持自己的控制權(quán),不被別人干掉。這其實(shí)和傳統(tǒng)奪旗更像,守好自己搶奪的東西,也被人稱(chēng)作“懶人的 CTF”,因?yàn)檎碱I(lǐng)方有很大優(yōu)勢(shì),有時(shí)候可以打得比較悠閑。
近幾年,國(guó)際、國(guó)內(nèi)的CTF種類(lèi)越來(lái)越多。舉辦CTF的組織方各有目的,有些有政府背景,比如,韓國(guó)的 Codegate CTF;有些是戰(zhàn)隊(duì)辦的,比如,PPP 的 PlaidCTF,這種比較常見(jiàn);有些是企業(yè)辦的,比如騰訊的 TCTF ;有些是安全會(huì)議牽頭辦的,比如著名的 DEF CON CTF,實(shí)際具體操辦的也是戰(zhàn)隊(duì)。DEFCON CTF是目前還在辦的歷史最悠久的CTF。最早一屆DEFCON CTF 是 1996年辦的。
剛才提到的這些都是公開(kāi)的 CTF。還有一類(lèi)是不公開(kāi)的 CTF,不會(huì)公開(kāi)征集報(bào)名,開(kāi)展預(yù)賽之類(lèi)。比如,有些國(guó)內(nèi)、國(guó)外企業(yè)會(huì)舉辦面向內(nèi)部員工的 CTF。
另外,從公開(kāi)信息可以了解到,美國(guó)國(guó)防部從 2014 年開(kāi)始舉辦名為“CyberStakes”的 CTF 。美國(guó)國(guó)防部有一個(gè)網(wǎng)絡(luò)安全人才的培養(yǎng)計(jì)劃,目標(biāo)是花3年時(shí)間在美國(guó)軍隊(duì)里培養(yǎng) 4000 名安全專(zhuān)家。而且標(biāo)準(zhǔn)很具體,要求會(huì)挖漏洞,會(huì)寫(xiě)Exploit。訓(xùn)練的一個(gè)環(huán)節(jié)就是CyberStakes”。而且他們邀請(qǐng)了 David Brumley 教授來(lái)授課。這位教授是 2016 年 CGC 最后 7 支入圍隊(duì)伍之一 ForAllSecure 的創(chuàng)始人。CGC 是 CTF 歷史上的轉(zhuǎn)折點(diǎn),不再只是人和人打,而是和機(jī)器打。他們招募了一些隊(duì)伍設(shè)計(jì)了一套系統(tǒng),和人類(lèi)戰(zhàn)隊(duì)打 CTF。就像阿法狗與人類(lèi)下圍棋一樣。不過(guò),CGC 最后的戰(zhàn)勝隊(duì)還是人類(lèi)隊(duì)伍。雖然機(jī)器隊(duì)伍沒(méi)有橫掃千軍,但也不是最后一名,還是有兩支人類(lèi)隊(duì)伍輸給了機(jī)器。
在安全攻防領(lǐng)域,至少在 CTF 領(lǐng)域,目前人類(lèi)雖然依然保持優(yōu)勢(shì),但畢竟也有兩支失敗的隊(duì)伍,所以,大家要努力。
研究安全技術(shù)過(guò)程中訓(xùn)練出來(lái)的思維能力是很有用處的,即使以后不去做網(wǎng)絡(luò)安全。我經(jīng)常跟大家講的一個(gè)案例是,1996 年成立的黑客技術(shù)團(tuán)體“w00w00”的成員中至少包括:
WhatsApp 的聯(lián)合創(chuàng)始人
Jan KoumNapster(世界最早的音樂(lè)共享平臺(tái)) 的聯(lián)合創(chuàng)始人
Shawn FanningArbor Networks 的聯(lián)合創(chuàng)始人
Dug SongNmap 的開(kāi)發(fā)者
Gordon Fyodor LyonCounterTack 的 CTO Michael A. DavisGoogle 元老
David McKayYammer 安全主管
Josha BronsonAccuvant Labs 的 Joshua J. Drake
Veracode 的 Andrew Reiter
這個(gè)團(tuán)體不是特別大,卻出了這么多人才。有些人后來(lái)雖然沒(méi)有從事網(wǎng)絡(luò)安全的工作,但在自己的工作崗位上做得非常出色。
如果,你不但對(duì)安全感興趣,而且想未來(lái)從事安全工作,那么就要明白,CTF中的技術(shù)對(duì)安全工作來(lái)說(shuō)一部分,不是全部。工作中遇到的有些問(wèn)題可以用 CTF中涉及的知識(shí)解決。還有很多問(wèn)題則需要用到 CTF 之外的技能。
打 CTF 是非常好的安全技術(shù)能力訓(xùn)練方式,優(yōu)秀 CTF 選手在從事安全技術(shù)工作時(shí)也會(huì)有很大優(yōu)勢(shì)。不過(guò)大多數(shù)現(xiàn)實(shí)中的安全技術(shù)工作其實(shí)沒(méi)有 CTF 中的問(wèn)題那么困難,但會(huì)復(fù)雜得多。另外,打 CTF 的目標(biāo)是得分,處理現(xiàn)實(shí)安全問(wèn)題的時(shí)候要考慮更多因素,比如,解決問(wèn)題的同時(shí)還要保持業(yè)務(wù)運(yùn)行。
除了和 CTF 相關(guān)的技術(shù)能力,從職業(yè)的角度看,通用能力也很重要。比如,很基本的三點(diǎn):能想清楚、能寫(xiě)清楚、能講清楚,這體現(xiàn)了你邏輯是否嚴(yán)密、語(yǔ)句是否通順、表達(dá)是否清晰。有些通用能力對(duì)專(zhuān)業(yè)能力提升也有幫助,比如分析能力、判斷能力、規(guī)劃能力、搜集能力、學(xué)習(xí)能力、提煉能力。無(wú)論以后你想從事什么工作,在學(xué)生時(shí)代加強(qiáng)這些能力的培養(yǎng),對(duì)你整個(gè)人生都會(huì)有很大的幫助。
“一血”指在 CTF 及相關(guān)衍生比賽最先解出一道新賽題的“動(dòng)作”。在一些比賽中,拿下一道賽題的“一血”,可能有加分,但更多地是,證明了此題有解,且第一個(gè)解題者思維敏捷,是榮譽(yù)的象征。在2017年6月此次的 TCTF 中,先拿下“一血”的選手會(huì)奪得一枚紅色的“旗幟”,隨后成功解答者會(huì)奪得綠色的旗幟。
“一血”出來(lái)后,其他尚未解出題目的隊(duì)伍也會(huì)盯上這道題?!安势祜h飄,紅旗不倒”在這里,絕對(duì)是句好話(huà)。
是的,讓人大跌眼鏡的是,一道題被你解出后,如果其他高手也解出了這道題,那么你獲得的分?jǐn)?shù)會(huì)按相應(yīng)比例減少……你要問(wèn)了,相應(yīng)比例是多少?看主辦方心情和偏好。
業(yè)內(nèi)人士把經(jīng)常參加 CTF 大賽的選手稱(chēng)為“賽棍”,此稱(chēng)呼無(wú)褒貶,純屬調(diào)侃。
一般 CTF 有常見(jiàn)的兩種比賽模式,一是攻防對(duì)戰(zhàn)模式,就是高手PK,看誰(shuí)先攻下對(duì)方的“老巢”,還有一種解題模式,雖然也是高手對(duì)決,看誰(shuí)分?jǐn)?shù)最多。
還有一種就是“攪屎棍”,指在參賽過(guò)程中對(duì)平臺(tái)發(fā)起攻擊的的選手,這種攻擊通常屬于搞破壞。為此,在 CTF 等賽事的比賽過(guò)程中,要有維護(hù)人員“震場(chǎng)子”,及時(shí)發(fā)現(xiàn)“攪屎棍”的蛛絲馬跡,維護(hù)平臺(tái)穩(wěn)定和賽事的正常進(jìn)行。
納尼?黑客高手對(duì)決也有“潛規(guī)則”?是的!
正經(jīng)的規(guī)則是,在 CTF 中,黑客賽隊(duì)對(duì)決之前不會(huì)像武林高手那樣“互報(bào)名號(hào)”,甚至不會(huì)交流。直接在賽題中“廝殺”。
“潛規(guī)則”之一是,雖然在 CTF 比賽中,DEFCON CTF 比賽不限制戰(zhàn)隊(duì)選手?jǐn)?shù)量,其他一些比賽會(huì)限制賽隊(duì)選手人數(shù),比如,4名。
但是,一般 CTF 比賽時(shí)常從 24 小時(shí)—36 小時(shí)不等,幾個(gè)“老司機(jī)”在短時(shí)間內(nèi)也無(wú)法解出一些很難的賽題,因此,在線(xiàn)上比賽時(shí),請(qǐng)外援也無(wú)法知道。線(xiàn)下比賽時(shí),有時(shí)選手會(huì)傳送題目請(qǐng)外援。
這種被有些主辦方默許,還有一些主辦方當(dāng)然是拒絕的。比如,曾經(jīng)有個(gè)戰(zhàn)隊(duì)在某次比賽中因?yàn)檎?qǐng)了“外援”,本來(lái)取得了第一名的成績(jī),被發(fā)現(xiàn)后取消了部分成績(jī),艱難地成為了……第二名。
如果對(duì)手實(shí)在很強(qiáng),解出了自己所不能解答的題,你不需要像武林高手那樣低頭認(rèn)輸,只要說(shuō)為對(duì)方“端茶倒水”“搖扇子”即可,“端茶倒水”即表示膜拜。
無(wú)論是 24 小時(shí)、48 小時(shí),甚至挑戰(zhàn)選手體力極限的 72 小時(shí),在比賽中間的夜晚,一定是一個(gè)“繼續(xù)參賽”的不眠夜。
小 A:肯定不是的啊,我們一般最多派出4名隊(duì)員坐鎮(zhèn)現(xiàn)場(chǎng)打比賽,其他人都在酒店房間窩著,穿著拖鞋打比賽,隊(duì)服,呵呵。。。我們不化妝、也不做頭發(fā)的。耳機(jī)嘛,可能會(huì)戴的,但是是大家嫌棄現(xiàn)場(chǎng)環(huán)境太吵,戴上耳機(jī)聽(tīng)歌來(lái)著,戴耳麥就有點(diǎn)夸張了,我們一般都現(xiàn)場(chǎng)交流,要么線(xiàn)上溝通戰(zhàn)況,我們也不坐電競(jìng)椅,不過(guò)主辦方要是熱情,可以?xún)?yōu)化一下配置。
哦,隊(duì)服是有的,只在合影時(shí)穿一下。
小 A:記住電視劇里的那三行命令,可以?huà)呙枳约旱亩丝冢▏δ槪?,其?shí)如果真的要防的話(huà)用一行
iptables -I INPUT -p tcp -s 192.168.233.0/24 --dport 10000 -j DROP。
小 A:我也沒(méi)有(圍笑臉)。
小 A:我只能說(shuō),那是一類(lèi)比較健康的 CTFer,我都通宵打比賽了,頭發(fā)也沒(méi)梳,臉也沒(méi)洗,我們都是輪流睡覺(jué),你說(shuō)呢?
小 A 的若干群友:
“加班才是福報(bào)”
“bug 都修不完還鍛煉”
“以后寫(xiě)個(gè)wp,下面沒(méi)準(zhǔn)有人評(píng)論,這是我家愛(ài)豆寫(xiě)的exp,請(qǐng)單推哦”
參考文章:黑客高手對(duì)決常用術(shù)語(yǔ)及行規(guī),一般人我不告訴他
白帽黑客教主 TK 告訴你,黑客的游戲 CTF 究竟是什么 | 硬創(chuàng)公開(kāi)課總結(jié)文+視頻
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。