DEFCON CTF Finals 2022 - 遊記、反思、回顧

10 minute read

DEFCON CTF Finals 2022 - 遊記、反思、回顧

好久沒有寫 blog,這裡都快要變成年刊了,剛好今年八月的時候 217 x Balsn x TSJ 組成大聯隊參加 DEFCON CTF Finals,重返賭城拉斯維加斯參與比賽。由於我不確定這篇文章的讀者會是誰,那就自取所需吧,文章的前半會是我睽違約三年沒有出國的旅遊紀錄,後半則是跟這次的比賽相關的一些心得。

如果對比賽的細節、行程有興趣的,可以參考 [1],還有 Kaibro 跟 Huli 的遊記 [4, 5]。

睽違三年的出國旅遊

黃金 24 小時

DEFCON CTF 的決賽在美國 Nevada 的賭城拉斯維加斯,雖然早在 2017、 2018 的決賽我就已經去過幾次,但今年這可是我睽違三年的出國旅遊!看看 COVID-19,都已經是 ‘19 了,疫情襲擊的這三年,不知道扼殺了我多少出國的機票,這次理所當然要把握出國玩一下!

有一點跟前幾年不一樣的,是我的身份,我從學生變成了社會人士,意味著我要跟公司請假。雖然我打著為國爭光的名號,嘗試請公假,公司 HR 竟然回覆我「就算是去比奧運,也建議你請自己的假」,話都說這麼死了我也沒什麼搞頭,我就把公司的特休一口氣請完,請了約八天的大長假,赫然發現才八月中已經累積請了 21 天假了……

更慘的是,這次由於行程安排,遲在出發前兩週敲定,我們的行程可以說是非常糟糕。雖然是 7 天的行程,但因為前後都是坐紅眼班機,加上美國國內來不及訂班機的緣故,需要搭乘長途遊覽車 (~ 5hr+),再扣掉比賽以及餐旅行程的話,我們能夠自由活動的時間大概是 Day 2 的 1 AM (紅眼班機所以是 1 AM) 到 Day 3 的 6 PM,扣掉睡覺的話,大概只有約 24 小時的「旅遊」時間,所以其實沒有太多時間可以玩。

Good Trip

Nevada 是美國知名的大麻友善的州之一,想當然我們有機會當然是要來當一下飛人,這次抽的是 @w 推薦的店 Reef Dispensaries。這裡有賣很多種類的大麻以及其加工食品,pre-roll 就是預先捲好的,跟煙一樣可以直接抽,還有 edible,例如一些糖果或是蛋糕可以吃,最方便的其實是電子煙,可以合法抽不會被發現,但我不想抽這麼多,所以選擇 pre-roll。

這次店員推薦的 6.25 USD 的 pre-roll 叫做 “Secret Sauce”,我抽的當下第一口就感覺到後悔,萬分後悔。除了抽起來非常的嗆,有種喉嚨快燒起來,我的肺都快要爆炸了,這很明顯就是給老菸槍抽的,對我這個不抽煙的人來說簡直是火烤刑。我勉強抽了三分之二就把他丟了,正當我心裡還在後悔這次的飛行體驗的時候,感覺就來了。我們因為都有點ㄎㄧㄤ,所以花了一些時間才走回旅館,我立刻打開電腦,撰寫所謂的秒記 (相對於日記而言),每秒持續的紀錄我現在的感覺。

  • 幻覺與幻聽:剛飛起來的時候,就是感覺頭脹脹像是浮起來一樣,遠端的視線會變得有些模糊,開始看到類似幻覺的畫面。例如我覺得遠方的黃光,光很像穿著反光背心的警衛,當我這麼想的時候,它會放大我腦中思考的並具現化出來,我就會看到這個幻覺,前面的人就好像真的是穿著反光背心的警衛一樣,幸好一旦靠近,確認真的只是黃色的警示燈之後,幻覺就不復存在。這點一樣放大到我的聽覺,一旦我覺得門外的人聲是兩個警衛在對話,我彷彿可以聽到「Show me your ID please」,雖然我知道這是幻聽,但跟真的聽到是沒有什麼差別的。

  • 時間感:它讓我的腦袋對時間感遲鈍化,覺得時間變慢,例如我可能只是花五分鐘去充行動電源,把別人沒在充電的線拔下來,插上我的行充,這兩個簡單的步驟,我卻感覺花了快半個小時在做這件事情。因為口渴我還從房間出去,去同一層樓旁邊的電梯買可樂,來回也是五分鐘的事情,卻有過了一個小時的感覺,看著手錶只覺得不可思議。

  • 思考飛越:在做一件事情的時候,我會思考跟這件事有關的其他事情,然後就這樣無止盡延伸下去。我當下正在用電腦打字並撰寫我的感受,我腦袋同時會思考,為什麼我要用 markdown 寫這篇文章?新注音為什麼選字一直錯?我要不要「新注音為什麼選字一直錯」這件事情打到筆記裡?這篇文章被別人看到會怎麼樣?我要直接公開這篇文章嗎?…….這些思考的連結速度是非常快的,某些事情有關聯,某些則是飛越式的聯想,腦中的想法不停的轉動,絲毫沒有停下來的意思,難怪許多藝術創作者要仰賴大麻。

雖然聽我敘述起來,我好像整個人快ㄎㄧㄤ了,但大麻有趣的地方是,我的理性依舊存在,我依然能夠近乎百分之百的掌握我的理性,並做出日常必要之行為,當然身體能不能完成是另外一回事 XD。比起菇菇或是其他藥效更強的東西,它讓我得以在理性的疆界安然遊走,且大概數個小時旅程就會開始返航,是很棒的一次飛行體驗。

Gambling

來到 Las Vegas 怎麼能不賭一下呢?除了隨處可見的電子老虎機之外,這次終於脫離學生身份,有點閒錢可以上牌桌跟真人荷官開賭,雖然我對賭博本身沒有太大興趣,但剛好有同學想要拿一點真的籌碼回去紀念,我們就一起上桌賭了。

我們挑了一桌 minimal bet 20 USD ,且沒有人的輪盤去玩,因為我知道賭博期望值是負的,我越分攤風險壓越會趨近期望值,不如直接追求短期的波動的的最大值,我拿著手上的 20 USD 押了輪盤的所有綠色 0、幸運數字 8 以及我高中的幸運數字 23 ,抱持著做紀念的心情隨便玩。

我其實根本不 care 輪盤上的小球落在了哪一個數字,遲至荷官告訴我 lucky 的時候,我才意識到我竟然得到幸運女神的眷顧,輪盤開出的是一個數字 8,荷官把一個水晶的瓶子放在旁邊,我直接讓桌上的 8 USD 籌碼翻了 36 倍變成 288 USD!

Damn, this is easy money.

我知道我嘗到了短期波動的高點,沒有道理一股腦兒的繼續玩下去,期望值並沒有飛離我的腦海。我馬上就高歌離席,厚臉皮的見好就收,直接告訴荷官我要 cash out 閃人了。本金 30 USD (當初多換的 10 USD 完全就是紀念意義XD) 最後翻成 288,直接爽賺 258 USD,Las Vegas 這七天的吃飯費用我應該是直接回本,可能還有倒賺。

賭博嘗到甜頭時,確實會開心一下,畢竟我可是花了兩分鐘就爆賺約 7500 台幣,不過這股開心不是來自於報酬,比較像是體驗到這種賭博獲勝新奇的感覺,那個倍率真的是太誇張了。我知道輪盤賭博的樂趣,終究不在遊戲本身,看一顆球在輪盤上滾動,絕不是有趣的地方,重點在那吸引人的賠率,以及不成比例的回報,還有期待自己能夠戰勝期望值的心情,賭博的魔力就在此吧,怪不得有多少人,陷在這個名為沼澤的機器裡。

後來同房的其他人,也都去玩電子的老虎機、21 點等等,我不知道這些機器是不是有針對小金額投注,增加了中獎率,幾乎所有人都是賺錢……,看著大家大喊 easy money 開心的手舞足蹈,感嘆賭場真是個不可思議的地方,我再不小心贏個幾次,會不會也陷入泥淖呢?

The Dark Side of the Moon

這個 subsection 是我最近看了不少錫蘭的影片 [6] 有感而發,這位國外的 YouTuber 在紀錄環島的影片中,跟計程車司機聊了許多台灣的黑道文化,也在某個縣市的酒店遇到了一些惡意的人。他知道台灣最美麗的風景是人,騎腳踏車摔倒的時候路人貼心的遞上了 ok 蹦,初次見面的粉絲熱情的招待這位來自異國的旅人,他也看到了台灣陰影下的另一面。

很多時候我們去旅遊,造訪一個沒去過的城市時,我們往往只會看到,或是有意無意的被侷限,所以只能看到,城市以那光鮮亮麗的一面,它以最美的姿態擁抱來訪的旅人們。城市的文化以及面貌,以一種極為精雕細琢的方式展現,彷彿是為我們這些異國的訪客進行的展演。然而一旦多造訪這個城市幾次,或是能夠有機會在這個國家居住一些時日,我們這才得以一窺這座城市的全貌,一窺城市中那刻意被隱藏的角落。

對我來說,這才是這個城市他最原始的文化以及容貌,我並不厭惡那些黑暗,它自始至終都是城市的一部分,有了陰影,城市才是立體的。

Las Vegas 終究是個極度資本主義化的觀光區,一路上的商店裡面賣的都是粗製濫造的紀念品,Les Vegas 跟加州的紀念品,只差在上面的字母拼寫不同罷了。路上穿著火辣的兔女郎、兜售 CD 的饒舌歌手、打扮成曼威英雄的人們,他們的東西或服務都是免費贈送的,但是要給高額且不合理的小費,這不成文的規定坑殺了多少肥羊般的遊客們。

美國人力的服務除了貴之外,效率也其差無比,遑論觀光區。看看入關的自助機大概壞了一半,海關只有兩個人且效率之緩慢令人嘆為觀止;旅館 check-in 的櫃台只有三個人,還有根本不能用的自助機器,那些自助機器的最後一步往往都還是人工,check-in 大概要花我們整整兩個小時。

整座城市瀰漫著難聞且廉價的煙味,還有到處聞的到大麻味,路邊一堆喝醉或是抽壞掉的怪人:摸每個路過的人手臂的女性,很想要把唱片塞到我手中的男子,路邊搖搖晃晃自言自語的遊民。美國可能本來怪人就很多了,觀光區更是如此,若有心造訪一些治安比較差的地方應該更明顯。

Well, US in a nutshell……


DEFCON CTF Finals 2022 心得與反思

這次比賽是由古生代 217 (雖然 217 參與比賽的人馬很少),中生代 Balsn ,以及新生代 TSJ 組成跨世代大聯隊 [9] 聯袂參加 DEFCON CTF ,大部分都還是以 Balsn + TSJ 的人馬為主。

聯隊賽前一天早上拍的照片,因為我們要帶機器的原因,當天早上比較晚到,有些人例如我就沒有出現照片裡面 XD

Why I’m here again

在桃園機場準備出發的時候,有個隊員隨口問了我,是什麼又把我吸引過來打這場 DEFCON CTF,這真是大哉問。其實我也不知道,感覺自從研究所畢業就脫離 CTF 圈一陣子了,似乎沒有理由再參加,更何況還是要在疫情期間飛去美國打。不過驅使我來的,是心底那混砸了好多個不同的聲音:一是有種要退休前再幹一票的感覺,說實話搞不好這將會是我人生倒數的幾場 CTF,二來是有股衝動,想要辦家家酒似的的當一次 leader 的角色。因為今年幾乎沒有太多資深的 HITCON or 217 的人參加,我覺得是個很好的機會貢獻我的能力,也是給我自己的挑戰。

說到貢獻這點,身為 web 仔的我,其實每年的 DEFCON CTF Finals 通常沒有太多事情可以做,我能為隊伍貢獻最多的只有 infra,也就是自動化腳本、比賽中監控的各種工具等等。今年想要再多做一點,除了 infra 上我能貢獻的 engineering excellence,我覺得能為 team 貢獻最多的,大概就是我的 soft skills ,亦是給自己一個挑戰,嘗試看看自己有沒有組織領導 team 的能力。

還有一些理由是,雖然自許自己能夠在離開學校後,繼續走在資安的路上,但因為各種原因,我還是選擇暫時背棄了資安這條路,先來浸泡所謂的大公司文化。我個人當然是希望未來的職涯,能繼續往資安發展,但我心裡似乎總是告訴自己,一旦在這些舒適的的大公司待久了,最後可能會被困在沼澤裡,扼殺掉資安發展的可能性,所以我還是繼續並盡可能參與這些活動,不想就這樣變成那些大公司模子所刻出來的人們。

賽前準備

初賽一如往常,集合大家的力量並順利的殺進決賽,等計畫以及行程確定,我大概還有兩個月的時間可以準備以及分工賽前的事項,以及準備 infra 的各種工作。兩個月說長不常、說短不短,好消息是我們基本上可以沿用前幾年的工具,不需要重造輪子;壞消息是我已經不再是少年,上班的時間扣掉,我其實沒有多少時間可以做事。如果組織架構變成我一個 lead 整個 infra 的 members ,我肯定會忙不過來,因此勢必要引入額外的一層。最後的架構就是 infra team 大致上分成 DevOps team,負責處理比賽相關自動化腳本、數據分析、送 flag 等,以及 NASA (inspired by NTU CSIE Network Administration and System Ministration [7]),負責處理 VPN、網路、系統、以及維護非比賽直接相關的自動化工具如 slack bot。我分別找了之前的經驗豐富的 @Gary 負責 DevOps 以及技術非常全面的 @Link 來當 NASA 組長。

很快的,我就意識到這個團隊顯而易見的問題,套一句公司某主管的話,這其實像是一個志工團體的概念,即使你身為一個 leader 並分工的很精確,但成員畢竟還是志願性質,且成員數量龐大,又是聯隊,關係非常繁雜,跟大家不熟的情況下,成員其實並沒有責任或是義務要幫忙。我們能做的,除了期望能者多勞,願意付出的人就多做一點外,對於那些產出比較低的人,我的工作就是想辦法把他安排到他產出比較高的地方。一個低產出的人,我通常解釋為他對這個東西沒有興趣,例如一個解 pwn 的人,比起 automation,他可能對寫 shellcode 自動化更有興趣,產出也更多,與其 blame 他在 automation 低產出,不然讓他幫忙做 shellcode。

雖然這的確一種類志工團體,但我認為我們還是有非常好的開始。我覺得這類團體要能夠成功,跟學校社團一樣,勢必要有一些核心幹部、充滿熱情願意付出的人,姑且撐他們為第一圈、最接近核心的成員,這些重要的棟樑便是支撐整個團隊的地基,很慶幸這個大聯隊中,的確有很多出色的幹部角色,對我來說能夠找到許多第一圈的成員,這已經是很好的開局了。剩下的問題是就是「第二圈」的成員,這些成員的熱情次於第一圈的人,對於參與比賽本身有熱忱,但沒有強烈意願在賽前花費大量時間準備,一言以蔽之,他們的想法會傾向於「我是來幫忙」的感覺,對團隊本身沒有太多認同感。可惜的是,鑑於我對大家能力、個性實在是不熟悉,我遲至直到接近比賽的前幾天才對隊員有比較全面的認識,行前準備的時候大半時間,我都還是在摸索每個人的做事風格、熟悉的技術領域、能力、以及對於比賽本身的熱忱、願意投注的時間等等,這讓分工紊亂、不對的人分配到不對的事情,團隊的效率其實非常低落,幾乎都只有第一圈的人能夠有產出,第二圈的成員是一種想幫也幫不上忙的狀態,我沒有要 blame 成員的意思,而是突顯分工上的問題,這大概是賽前準備最致命的問題之一。

賽後與團隊的反思

關於最後比賽成績,我們在十六個隊伍中排名第九,第一名又是由經驗豐富的 PPP 聯隊勝出,我有一個很好的比喻:我們就像是棒球世界排名第九的國家,去跟其他世界排名第一到十六的隊伍一起打排名賽,最後拿了第九名回來,沒有超出期待的表現,也沒有犯下致命的失誤,可以做的更好,也絕對有進步的空間。

就團隊而論,大概可以列出幾點,下次可以做的更好的地方,分別是:

  1. A&D CTF 卻以 Jeopardy 的心態去打

  2. 團隊成員彼此不熟悉

  3. 分工混亂且效率不彰

下面三個 subsections 會一一敘述這些團隊上的問題。

A&D CTF 卻以 Jeopardy 的心態去打

不應該把 Attack & Defense CTF 以 Jeopardy 的心態去打:這次的三個聯隊都是常態打 jeopardy 類型的比賽為主,跟 DEFCON CTF Finals 的 Attack & Defense (A&D) 形式迥異,我大致敘述幾點聯隊的狀況,並剖析兩者的不同賽制的優劣。

  1. 聯隊的短期解題效率不高:這裡的短期時間範圍指的是分鐘到數小時,jeopardy 比賽對於短時間內的解題效率其實沒有太大的要求,基本上只要能在 48 hr 解出來就可以拿到分數,然而這在 A&D 無疑是一大致命傷。在 A&D 中,比所有人早 30 min 做出 exploit ,就能占有相當大的優勢,不考慮隱藏 exploit 的話,可以 6 rounds 全吃所有隊伍的攻擊分。

  2. 聯隊中實力強大的隊員,優勢不再明顯:jeopardy 比賽拼的是實力,著重在團隊整體實力的深度與廣度,能否挖出很深的漏洞,以及對於不熟悉的題目,能不能在短時間 (48 hr) 內掌握並解出,因為聯隊有很多實力深不可測的隊員,若是打 jeopardy 的比賽,我們一定有相當大的優勢;但在 A&D 賽至中,這部份的優勢幾乎被稀釋掉,一來是主辦單位這次有很多初階漏洞,二來是比賽的封包是公開的狀態,就算我們造出複雜的 exploit,也沒辦法一舉拉開差距,這點是跟 jeopardy 極為不同的地方。

  3. 實力沒有這麼強的成員,影響力開始變大:同上,jeopardy 很常見的情況是大家靠著幾位大神、強者 carry,分數一路突破天際,實力比較一般的成員,影響不會這麼重大。我要強調,這並不是說這些隊員在 jeopardy 的貢獻不重要,而是指他們對於比賽的整體影響力,相較於 A&D 是比較小的。到了 A&D 賽制,因為強者的影響被稀釋,加上比賽有許多初階漏洞,以及 A&D 比賽中有很多可以分工的事項,還有許多沒有太高技術門檻自動化的 task,這都讓一般的隊員影響力顯著提昇。

團隊成員彼此不熟悉

這是聯隊一定會遇到的問題,團隊成員主要是由 TSJ 以及 Balsn 組成,然而兩邊對彼此其實不太熟悉,想當然最後的合作模式就是 TSJ 內部密切合作,而 Balsn 亦然,兩邊隊員直接的交集不太多。這點跟 Balsn 剛開始跟 HITCON 的合作模式很像,兩邊起初不熟,加上飯店是直接訂不同房間,就變得很像兩邊獨立的隊伍湊在一起打的感覺,離我理想中的團隊尚有一段距離。

還有一個值得分享的現象,成員中有不少資工系的學生,以台大資工系為例,圈子裡有所謂的「強者(大神)文化」[3]:

來說說系上的強者(大神)文化,在我的看法裡,大神們是一群既聰明又先在高中投入資訊領域的人們,是一群可以抱大腿的人們( 小聲),而強者文化這件事在P老師的計算機程式設計課被發揚光大,因為有基礎的人可以去應徵真 強者,等於是免修在資工系最基礎的計程課,也因為這樣我才認知到我跟他們之間的差距非常非常的遙遠。 - [2]

這些實力突出的強者隊員,對於隊伍而言當然是好處,但他們不知道的是,實力比較一般的成員,很多對於他們是以抬頭仰望的方式看待,一些隊員甚至表示「我怕浪費強者的時間」。這對於團隊的溝通沒有助益,一個常見的例子就是可能某個題目大家都在看,所謂的強者可能漏看了一個小細節,但其他人卻沒有提出來,怕浪費他的時間或是他已經知道了,反而導致解題延宕,這在團隊成員彼此不熟系的隊伍更是嚴重,你只知道這個人是個大神,對他完全不熟識,更容易選擇不發言,這大概就是所謂「強者文化」所帶來的負面影響吧。

分工混亂且效率不彰

因為 A&D 賽至極度追求效率,聯隊紊亂的分工成了團隊的致命傷,從大家收集來的 feedback 中,分工上大致上可以分成三個問題:

  1. 協作軟體沒有發揮預期效果:我們的協作軟體 Slack 充滿著各式各樣混雜的資訊,漏洞位置、patch 進度、封包 replay 狀況、逆向的關鍵演算法等,想要關心其他人的進度幾乎只能從頭看到尾,有些檯面下的進度可能是實體口頭 sync 的,discord 語音群組幾乎沒有被使用到。尤其是多個漏洞的情況下,所有漏洞混雜在一個 channel,非常難 follow 討論。

  2. 重工率極高:呼應前面 jeopardy 的心態,每個人都像是獨立的成員,想要靠著一己之類找出漏洞,這讓逆向的題目資訊不透明,且成員之間的資訊落差很大,看封包可能也是類似的情況,完全沒有發揮到團隊該有的優勢。

  3. 題目的角色不明確:如挖洞、寫 exploit、自動化攻擊腳本、分析敵隊攻擊封包、上 patch,完全是沒有固定的流程以及角色,單純是看誰有空誰去做,所以常常會漏掉,有時候還會發生某個簡單的漏洞,已經過了好幾個 round 我們才上 patch 的尷尬場面。

第一個協作軟體的問題,換一個主題式更明確一點的軟體如 Trello、Click up,而不是 Slack 仰賴 thread 為主題的討論,或許是一個不錯的方向。剩下兩個分工上的問題,跟前面提到的幾點,都是環環相扣的,我們很難在不熟的情況下去有效率的分工。理想的解法是安排一位 PM,然而 global 的 PM 是不切實際的,很難有一個人全盤掌握所有題目的資訊,因此必須要讓每個題目都能夠有一個自發性的 PM / leader / captain 的角色,負責組織該題的人力,定義清楚該題成員扮演的角色,誰負責 patch、挖到洞之後的 exploit 撰寫、分析封包、組織找洞的分工等等。

或許這就跟兩個新團隊的合作一樣,需要一段不可避免的磨合期吧,我由衷希望這些問題明年能夠有所改善!

我給自己的反思

團隊的 retro 上面應該都講的差不多了,剩下來說說我自己的反思,期許能夠做的更好的部份:

  1. 不應過度理想化隊員的狀況

    • 賽前的 infra 準備上,尤其是在 attack manager 的部份,其實我並沒有給隊員非常明確的 task,都只有給大的方向,某種程度上是期望願意投資時間的人,能夠自己跳下去看 source code 或是 pick up 事情來做,然而運作起來當然困難無比,想幫忙的人根本不知道從何開始,甚至連問題要怎麼問都不知道。這點我後來有嘗試補救,包含寫了一份詳細的架構 document、開了一場線上 mini workshop 大致介紹架構,以及再請組長把 task 訂細一點讓大家有明確的事情可以做,但我覺得還是大家還是偏向無所適從。這可能真的要實體碰面 go through 一次 code,或是有個 bi-weekly follow up 大家進度,會比較能改善。

    • 對於比賽的新手,我有意識到他們可能在賽中、賽前會無所適從,所以我請 Balsn 中征戰多次的隊員給了建議、還有請戰場老手給了一個簡短的 presentation,幫助新手建立正確心態,讓他們能發揮能力限制下最大的輸出,最後我也留了一句雞湯給新手們:「Always think: what you can contribute most to the team?」,然而這又是我過度理想的結果,很多人在賽中似乎還是很迷茫,像是到處在瞎忙一樣。可以的話,我覺得我可以為大家再多做一步,扮演一個引水人的角色,至少在大家上了軌道之後再讓他們自己去探索。

  2. 團隊分工而非自幹

    • 又回到這句經典的雞湯「一個人走得快,一群人走得遠」,很多時候我還是會傾向自己把他完成,而不是靠團隊分工,讓成員能夠分擔工作,這點無疑是飲鴆止渴,缺點也在賽中很明顯的暴露出來。因為賽前準備很多東西是我獨立完成沒有分工,成員對某部份的架構完全沒有 knowledge,這讓我要花更多的時間去在賽中或是當天分工,造成團隊的效率降低。

    • 另外就是有分工的話,要盡可能完全授權,並尊重該工作 owner 的想法,不要做過多的干涉。這點剛好今年有個很經典的例子:在網路方面,我個人的 philosophy 其實偏向簡單的架構,就算沒有複雜的功能以及 zero downtime 的備援,在賽中發生意外或是賽至系統架構變動時,因為架構簡單,我們都能夠很彈性的調整。因此,我傾向反對 owner 所設計的網路架構:有良好的備援機制、高效能,但設定跟系統架構上都比較複雜。事後想了一下,我應該只要點到為止,只要做到點出「賽至系統可能會變動這一點」即可,保持中立的態度,剩下的就交給 owner 評估並做最後決定,並尊重他的想法。

  3. 花更多的心力在非技術的問題上

    • 前面所說的心態、分工、不熟的三個問題,這些都是非技術層面上的,今年我覺得自己還是投資太多在 infra 的開發上,非技術的問題,其實值得我投資更多的心力,雖然說賽後我還不至於到自責的程度,但唯獨分工混亂這一點,我是覺得有點可惜。賽前其實就有預見到分工紊亂的可能性,我也有考慮過設立 PM 的相關配套措施,不過因為前幾年的 PM 效率不彰,今年的大家又不熟,PM 更難分配以及調度人手,讓我擔心 PM 最後會不會又淪為虛位元首,另一方面,我也是相信在看某一題的人,能夠自己自動協調分工。賽後的事實證明,這些都是過度理想的假設,一個題目中負責調派指揮的人絕對是今年不可缺少的角色。

    • 另外關於非技術的行程安排上,這次的行程非常雷,除了賽前要做紅眼班機、坐數個小時的遊覽車到 Las Vegas、半夜 check-in,以及不到 36 小時的時間可以調時差,出發前一週才公佈的行程細節、比賽前一天才公佈的拍照行程,完全就是亂成一鍋粥。其實我後來梳理了一陣子,才發現自己之所以對行政團隊非常失望,是因為我給自己的一個任務是,幫大家處理掉所有非技術 (溝通、分工、協作) 的問題,有點像是間接把非技術的行政安排也擔到自己頭上,卻又無能為力只好究責行政團隊的感覺。我在賽前的投影片還提醒大家調時差、囑咐大家玩的時候不要中 COVID 等等,事後想想這些真的有點 over 了,行政團隊完全是我不能控制的範疇。下次或許一個好的作法是,能夠加入行政團隊的 chat group 中,至少能夠一起討論行程,讓一些可以避免掉的意外不會發生。

結語

  • Writing 能力顯著下降,中文現在可能快比英文還爛,我結語不列點都不知道怎麼寫

  • 如果提早知道行程這麼雷的話,我其實根本不會飛美國到現場參賽的,可能也不會有這篇文章

  • 其實現在有點後悔大學沒有好好 build up soft skills,尤其是 leadership

  • 明年我還不知道我會不會繼續參與,但希望明年的 leader 可以改善這些問題

註解與延伸閱讀

  1. 宇翔的 Facebook: DEFCON CTF Final 2022 (Facebook friend only)

  2. Laurice’s Medium: 資工系上的文化

  3. 台大資工系紀實與心得 - 前言與導讀

  4. Kaibro’s blog: DEFCON 30 CTF Final 參加記

  5. Huli’s blog: DEF CON 30 CTF final 遊記

  6. 再次挑戰旺仔小饅頭! - YouTube

  7. NASA 的起源: nasa_12fall - Prof. Hsin-Mu Tsai’s Courses

  8. DEF CON CTF 2022 - CTFTime

  9. DEFCON CTF 2022 Quals 聯隊分佈圖