大學畢業了。回頭看這四年,還是覺得一切有點不真實,除了大一之外,後來每個學期都過得很快,甚至有很多段落都有點模糊了,直到重新回想這些經歷,才發現自己在大學裡面有了些許的成長,也讓我對於資安這個領域有了更深的認識和興趣。

剛進大學的我

剛透過特殊選才進入大學時,我對大學生活除了充滿期待,也有不少不安。

從國中開始就想成為軟體工程師,但那時其實不知道資訊工程底下還有哪些領域,也沒有什麼具體目標,只知道自己或許喜歡寫程式。也因為高中時已經接觸過一段時間的競程,大一程式設計課的許多內容和題目對我來說並不陌生。雖然學起來相對輕鬆,卻也少了一點挑戰和成就感,有時甚至會覺得有些無聊。 相較之下,數學課和物理課反而帶來不少挑戰。只是當時的我對這些科目沒有太大的興趣,所以大多抱持著「能順利修過就好」的想法(其實很多課後面也是 XDD)。 不過也因為課業之外還有一些餘裕,我開始把時間投入其他地方,嘗試參加社團、比賽,以及各種原本沒有接觸過的活動。當時只是想多看看、多試一點,沒想到這些課堂外的經歷,後來反而成為我大學生活中最重要的一部分。

黑客社的影響

一開始會想加入黑客社,是因為以前就聽過社團的名氣,也有認識的學長在裡面擔任幹部。當時只是想多接觸資訊工程的不同領域,或許也順便認識一些有共同興趣的人,沒想到最後竟然因此踏進了高中時完全沒想過自己會走上的資安領域。 但剛開始接觸 CTF 時,即使是最簡單的題目,我也常常要一邊查資料、一邊慢慢摸索才能解出來。看到很多人好像很快就知道該從哪裡下手,自己卻連題目在做什麼都不太確定,多少還是會覺得挫折。 不過,隨著解過的題目越來越多,我也逐漸開始上手。尤其接觸 Reverse 和 Pwn 之後,或許是對於 C/C++ 比較熟悉的關係所以比較好上手,學習的過程也變得越來越順。從一開始什麼都要查,到後來能在一些線上 CTF 中獨立解出題目,這些小成果讓我開始覺得,或許資安也是一個可以嘗試的領域。 後來,我也開始和社團朋友一起參加比賽。雖然當時的成績不太好,但大家一起讀題、交換想法,在卡了很久之後終於找到突破口的感覺,直到現在都還是讓我很懷念。即使近年 LLM 已經逐漸改變了 CTF 的解題方式,我仍然很珍惜那段和大家一起腦力激盪、共同解出題目的經歷。 再後來,我獲得社團學長的信任,接下學術部長的工作,開始負責課程與教學。第一次站到分享知識的那一側時,其實有點害怕,也很擔心自己講得不夠清楚。不過,在一次次準備教材與實際授課之後,我也慢慢習慣了這個角色,甚至開始有了到校外資安社團授課的機會。

image

競賽中的成長

除了資安之外,競程也是我大學生活中很重要的一部分。 高中就開始接觸競程的我,在大學還沒正式開學前就找到了隊友,沒想到這支隊伍一路組到了大四。這幾年間,我們參加了 PUPC、NCPC、ICPC、TOPC 等大大小小的比賽,幾乎只要有機會參加的都去打過了。

image

或許我們的成績沒有到特別突出,而我也不是隊伍裡貢獻最多的人,甚至有時候比賽打到一半,腦袋還會突然當機。不過,很謝謝隊友一直以來的陪伴與包容,讓我們能夠從剛進大學一路比到畢業。 到最後,真正記下的或許不只是成績,而是一起討論、一起比賽的過程。能夠和同一群隊友一起走過四年,對我來說真的是一件很幸運的事情。 資安相關競賽則是另一種不同的體驗。雖然沒有固定的隊伍,但我也陸續參加了 AIS3 EOF、神盾盃、金盾獎、技能競賽、韓國金盾、POC CTF、picoCTF、MyFirstCTF、T 貓盃之類的,以及因為畢業專題的關係有參與過一些專題類型的競賽,也因此有機會和不同的人合作。

image image

雖然成績大多數都有點慘,但對當時的我來說,只要能夠好好比賽,持續進步,甚至是進決賽,都是很重要的里程碑。可能是比起最後拿到什麼名次,這些經歷更重要的地方,是讓我學會如何和不同的人一起面對問題,也慢慢習慣在不確定中尋找答案。

各種 part-time job 與社群的經驗

除了社團和比賽,大學期間的我也到處兼差,做過校內外助教、電腦教室維護,以及資安中心的網站、網路與 App 安全檢測之類的工作。 一部分是因為當時對單純念書沒有太大的興趣,另一部分則是想趁著還有時間,多嘗試一些不同的事情。由於一些程式相關課程對我來說相對熟悉,也因此受到老師的注意與邀請,在修完課程後的下一個學期,開始擔任程式設計、資料結構等課程的助教。 成為助教之後,我才慢慢發現,自己會寫和能讓別人理解其實是兩件完全不同的事情。無論是設計題目、回答學生的問題,還是嘗試用更簡單的方式解釋一個觀念,都會迫使我重新整理那些原本以為自己已經懂了的內容。 後來,我也開始有到校外資安社團授課的經驗,也有擔任過 AIS3 Junior 的助教,同時也有參加更多資安研討會、課程與社群活動的機會。這些經驗讓我逐漸走出原本熟悉的校園環境,也認識了許多比自己厲害、願意分享經驗的人。 到了大三,我參加 AIS3 與好厲駭導師培訓,進而進入讀書會接觸更進階的內容。雖然直到現在仍然常常覺得很難,但也正是從這裡開始,我對資安的理解不再只停留在 CTF,而是慢慢走向真實世界的漏洞研究。

AIS3 計畫對我的幫助

AIS3 以及後來參與的好厲駭導師培訓,是我大學四年中很重要的一部分。從暑期營隊、AIS3 Junior 助教,到進入讀書會接受導師指導,每一段經歷都在不同階段推了我一把。 一開始參加 AIS3 暑期營隊,表面上是希望學到更多資安知識,實際上多少也有點想證明自己可以靠 pre-exam 進入營隊。沒想到進去之後,不只從課程中學到許多技巧,也認識了不少朋友。 後來,連續三屆擔任 AIS3 Junior 助教,開始協助別人學習的人。 不過,對我影響更深的,則是好厲駭的導師培訓。 剛進入培訓時,我對資安的接觸大多還停留在 CTF,對真實世界的漏洞研究幾乎沒有什麼概念。很幸運地,我在導師媒合時媒合到 Angelboy。而當時接到的任務聽起來很單純,就是在讀書會裡好好聽、好好學,可以開始從 CTF 轉向真實世界的漏洞研究。 實際開始之後,其實每次讀書會的內容都比想像中困難很多。有些東西第一次聽時完全不知道在說什麼,只能回去繼續查資料、重新理解,然後在下一次讀書會再試著跟上。老實說,到了現在還是常常覺得很難,但和剛開始時相比,至少已經不再完全是什麼都不懂的人了。 從一開始只熟悉 CTF 題型,到後來真的能在軟體、函式庫、工具中找到一些漏洞,這段距離對我來說其實走了很久。很謝謝導師一路以來的指導與肯定,也很幸運能連續兩年獲得表現優異獎。這些肯定並不代表我做得足夠好,但讓我知道,自己正朝著想走的方向前進。

image

實習

其實從大三開始,我就一直尋求實習的機會。雖然當時對資安有了興趣,但對於自己能不能在這個領域找到實習,還是有點不確定。 也因為研究方向的關係,其實實習機會不多,尤其是 binary analysis、reverse、漏洞研究這類的職缺更是少之又少。 過程中陸陸續續投了 TeamT5、DEVCORE 等(本來還有要投 Trapa,但職缺收掉了),而最後都因為能力的關係所以沒有拿到實習機會。雖然有點失落,但也因此讓我更清楚自己在資安領域的不足之處,也知道自己需要加強哪些技能。 後來持續的進步,並在某個比賽的企業媒合中,意外與如梭有了接觸的機會,雖然是紅隊公司,不過或許是由於研究方向對於公司相對特殊或是只是實習的原因,所以最後有拿到實習機會。 而自己在實習的過程中也相對自由,可以自己選定研究目標、方向,並進而自我學習與研究,而最後也有找到一些不錯的漏洞,算是某程度上的實習成果,也有開始嘗試回報一些 bug bounty program,賺到一些零用錢。 到現在還是很感謝公司、主管、同事給予的幫助與機會。

總結

回頭看,或許大學四年並沒有哪一個瞬間,讓我突然找到自己真正想走的方向。 更多時候,是因為加入社團、參加比賽、接下教學工作,或是在讀書會裡聽見一段當下還不太理解的內容,才讓下一步慢慢出現在眼前。 這四年中,遇到了許多隊友、社團夥伴,以及願意指導我的前輩和導師。 而我目前仍然有很多不足,也還有很多想學的東西。不過,至少和剛進大學時相比,現在的我已經更清楚自己喜歡什麼,也更願意為了想走的方向持續投入。 現在的我,也有了下一步的落腳處、進修點,希望可以一切順利,繼續在資安領域中學習與成長。

下一站,研究所繼續啟程。