前言

Hi 大家好,我是梅森。今年暑假我參加了教育部的 AIS3 新型態資安實務暑期課程,為期七天,我選的是跨域組。跨域組的必修課比較偏資安在醫療跟企業管理上的應用,不過選修時間可以自由跑班,所以我幾乎每個技術場都跑去聽了。

這篇我想照之前寫 2024 AIS3 Junior 心得的習慣,先用日期把七天流水帳記一遍,後面再專門寫我們的專題。因為老實說,專題才是這次我花最多力氣,也最有感觸的部分。

上課的階梯教室,前面一整排大螢幕
上課的階梯教室,前面一整排大螢幕

住宿

這次住在交大的十二舍。宿舍本身中規中矩,重點是十二舍樓下的環境意外地漂亮,晚上收工後在附近走一走蠻放鬆的,是這幾天少數能喘口氣的地方。

十二舍的走廊。連夜趕專題的那幾天,這條路我來回走了無數次
十二舍的走廊。連夜趕專題的那幾天,這條路我來回走了無數次

Day 1

第一天上午先是課程介紹跟開幕,接著就直接進馬聖豪的 Windows 核心安全主修課。下午是奧義智慧帶的用 LLM 做威脅情資分析,還有戴夫寇爾的 Hack Your Own Kernel 進階攻防。晚上則是破冰跟助教說明。

第一天的課排得非常滿,內容也很硬,但聽起來很過癮。這種一整天被高濃度資安知識轟炸的感覺,其實就是我來 AIS3 想要的。

上課用的桌子,筆電加一台外接螢幕就是我這幾天的戰鬥位
上課用的桌子,筆電加一台外接螢幕就是我這幾天的戰鬥位

Day 2

早上是調查局的資安宣導跟遠傳電信的電信資安攻防,後者講到偽基地台跟詐騙簡訊,蠻貼近生活的。下午進入選修時段,同一個時段會同時開好幾門課,跨域組可以自己挑要聽哪一場。那兩個時段開的課,有 Web 安全基礎跟語言模型攻擊,也有量子電腦的資安威脅跟 Linux 核心訓練。我就趁這個機會到處跑班,把想聽的技術課都掃了一遍,這也是我覺得 AIS3 很棒的一點。

晚上是產業鏈結交流會,好幾間資安公司都來擺攤。現場有動力科技跟酷澎,還有戴夫寇爾跟中華資安,可以直接跟業界的人聊資安工作到底在做什麼。

選修課上在筆電上解題,右邊那張是即時排行榜
選修課上在筆電上解題,右邊那張是即時排行榜

Day 3

這天整天都是選修,我聽了許建隆老師的智慧醫療資安,也去看了逆向工程跟威脅情資紅隊實驗。晚上是趙正宇的菁英講座,題目叫 From Zero Knowledge to Zero Day Hunter,講怎麼從零走到挖 0 day,聽完很有感。

大概也是從這天晚上開始,我們正式進入了熬夜趕專題的節奏。白天上課,晚上就窩在一起弄專題,睡眠時間開始直線下降。

大概第二三天開始就是這種狀態,累到直接趴在桌上
大概第二三天開始就是這種狀態,累到直接趴在桌上

Day 4

第四天最熱門的無疑是 Orange Tsai 的 PHP 攻防,教室整個坐滿。我還趁機讓 Orange 在我的名牌上簽了名,這張名牌我到現在都還留著。除此之外還有惡意程式鑑識跟酷澎周彥儒的威脅建模。晚上是社團之夜,各地的資安社群聚在一起交流。

AIS3 新型態資安實務暑期課程的識別旗
AIS3 新型態資安實務暑期課程的識別旗

Day 5

從第五天開始就是整天的專題時間了。這幾天基本上就是不停地寫,不停地測,卡關了再想辦法解開。中間肚子餓了,我還騎了 oloo 一路衝到清大去買晚餐,買完再騎回來繼續弄,現在回想起來也是蠻有趣的畫面。

深夜的宿舍,螢幕還亮著,專題還沒完
深夜的宿舍,螢幕還亮著,專題還沒完

Day 6

第六天是專題發表。發表完的那一刻整個人瞬間鬆掉,於是晚上就跟朋友跑去逛新竹的廟口跟巨城,好好放鬆了一晚。連續熬夜好幾天之後,那頓晚餐吃起來特別香。

產業交流跟專題討論時的教室
產業交流跟專題討論時的教室

Day 7

最後一天是頒獎跟結業。七天說長不長說短不短,但因為後半段幾乎沒睡,體感上其實過得飛快。

晚上的菁英講座,整間教室都在聽
晚上的菁英講座,整間教室都在聽

專題:從完全沒方向到做出一個工控靶場

接下來是這篇的重點。

一開始,我們這組其實完全沒想好要做什麼。討論了一輪,桌上擺過區塊鏈安全跟工業控制安全兩個方向。後來考量到組員本身有一點工控底子,加上我以前做過不少硬體專案,我們決定挑一個比較少人碰的題目,也就是工業控制資安。目標訂成做一套低成本的實體 ICS 靶場。

老實說,一開始我對工控幾乎是零。為了做這個題目,我從頭去把 PLC 跟 SCADA 還有 Modbus 這些工控世界的基本盤搞懂,等於是一邊查一邊學一邊做。

真正上手之後,我把以前做硬體專案累積的經驗整個搬了過來。我們用一塊 NodeMCU-32S 開發板當作 PLC,接上這些裝置:

  • 三顆 LED 指示燈
  • 一顆伺服馬達
  • 一個蜂鳴器
  • 一個按鈕
  • 一顆 DHT11 溫濕度感測器

再用開源的 FUXA 當作 SCADA 監控介面,透過 Modbus 通訊協定去讀取跟控制這些設備。整套兜起來,就是一台放在桌上,看得到也摸得到的迷你工控系統。

我們做的低成本 ICS 靶場,LED 跟伺服馬達還有蜂鳴器跟溫濕度感測器都在上面
我們做的低成本 ICS 靶場,LED 跟伺服馬達還有蜂鳴器跟溫濕度感測器都在上面

有了靶場之後,我們設計了一條循序漸進的攻防流程,從最基礎的設備遙控開始,一路做到 ARP Spoofing 的中間人攻擊嘗試,用來模擬工控網路一旦隔離失效會有多脆弱。

過程當然沒這麼順。ESP32 的連線很不穩,SCADA 系統又跟 Docker 的部署一直打架,我們卡了很久。後來果斷改用 pyModbusTCP 這個函式庫,把硬體的連線邏輯整個重寫一遍,才總算穩下來。

分工上也有一些摩擦。這種短時間高強度的合作,每個人對怎麼分工的想法不太一樣,中間難免有些不愉快。但撇開這些,大家最後還是把各自負責的硬體設計跟 Modbus 建置,還有 SCADA 介面跟答題平台都做完,把一個軟硬體兼具的專題兜了出來。

第六天上台發表,把整套從 SCADA 到 PLC 的流程講給大家聽
第六天上台發表,把整套從 SCADA 到 PLC 的流程講給大家聽

發表完看其他組的成果也很有意思,每一組切入的題目都不一樣。想看我們專題細節的話,完整的程式碼跟韌體都放在 GitHub 上,簡報跟報告也一起附在裡面。

台下看其他組發表,每組的題目都很不一樣
台下看其他組發表,每組的題目都很不一樣

七天下來的心得

七天結束,回頭看收穫比我預期的多很多。

課程的部分,除了吸收到大量又新的資安知識,最特別的是這次讓我踩進了完全陌生的 OT 也就是工控領域。原本這塊對我來說是一片空白,做完專題之後至少不再是零。

但真正讓我印象最深的,其實不是技術,而是怎麼在一個陌生的團隊裡定義自己的角色。從第一天的破冰,到連續好幾夜的合作,再到中間分工的磨合,最後一起把軟硬體都做出來,這整段體驗讓我更清楚,在一個團隊裡除了會寫程式,怎麼溝通,怎麼補位,怎麼把事情推著往前走,同樣重要。

我也在這裡認識了很多很強的人,看到大家對資安的熱情。這種被一群同樣喜歡這個領域的人包圍的感覺,是這七天最珍貴的東西。

最後照慣例附上結業的紀念。這張是 AIS3 給的識別名牌,上面還留著 Orange 的簽名,對我來說算是這七天最好的紀念品之一。

這七天的紀念,跨域資訊安全的識別證,加上 Orange 的簽名
這七天的紀念,跨域資訊安全的識別證,加上 Orange 的簽名

謝謝一路上一起熬夜的組員跟幫過我們的助教,也謝謝看到這裡的你。明年有機會的話,希望能再回到這個場子。