前言:
這篇會記錄來交大的七天生活,比較偏心得日記
不過也是會記錄自己報告內容
AIS3 從第一屆到現在我都有參加... ,不過今年是第一次改成 FINAL Project
往年都是打 CTF ,這算是蠻新穎的
然後因為今年說是會分七類別
- 密碼學
- 逆向
- 數位鑑識
- AI/IOT
- 國家安全
- 軟體工程 (軟體安全?)
其實,我本來以為是分完類別後,七天都上該類別的課程內容
所以還蠻興奮的
結果只是把 Final CTF 改 Final Project 其他都雷同@@
嗯...不過看的出來,工作人員比往年還辛苦
自己去年也有當助教,蠻可以感受的
自己去年也有當助教,蠻可以感受的
-----------------------------------------------------------------------------------------------
住宿生活:這次是來交大十舍住,基本大家應該都在五樓?
其實我本來歷年來 AIS3 都覺得算是放假,畢竟就是不斷的重複
上課聽講 -> 開心吃飯 ,這樣一個 Loop
所以我認為這應該是我這暑假,唯一的一個假期
結果變成我這個暑假,最累的一個禮拜 Orz
環境來講,我覺得交大宿舍比台科大好多了
一樓的交誼廳真心不錯,且住這七天給的冷氣卡,基本花不完
(我們基本都是一回到房間就開到隔天早上離開房間)
(大概是 20:30 -> 隔天 8:30)
至少我房間在離宿時,冷氣卡還剩下 8x 元
---
這次這禮拜真心累,基本流程是
- 起床去買早餐吃
- 上課到中午
- 吃午餐
- 上課到下午五點
- 吃晚餐
- 18:00 - > 21:30 做專案
- 回寢室洗澡、洗衣服
- 22:30 -> 凌晨三點做專案
- 睡覺
雖然真的蠻充實的,但...真的非常累= =
真的很累...
-----
我覺得這次普遍有一個問題,他時程安排是
給你三天,一天三小時的專題時間
換句話說, 3*3 = 9 ,你只有九個小時可以做專題
從 0 開始,九個小時= =
所以我基本看到蠻多人沒在上課都在弄專題
(我自己也是)
就變成基本大多數人根本沒心思上課,我覺得是這次主要的問題
(我不知道別人啦,只是我周遭看到是這樣)
當然也有人是直接拿自己做過得出來丟
這邊就不多說了..
感覺如果下次改成集中上課個三四天後,
再分組一次性一兩天做會比較好一點@@
-------------------------------------------------------------------------------
報告
我這次是分逆向組,然後題目是被大 allen 固定為
拿助教的 little-OS 幫她在 loader.S 那邊加入 secure boot
可以對載入的 kernel 做數位簽章
阿如果不會的話,可以單純收集 UEFI secure boot 相關資料來報告就好
---
結果都沒人要做 UEFI secure boot ,且大家都做出數位簽章
所以在剩下一天多一點點的時間下,題目改為
- 幫 bootloader 中加數位簽章
- 子主題自己隨便想
其實,我到現在還是覺得這是單純用組合語言寫 hash 和 rsa ...
有點看不出來哪裡和逆向有關係就是= =
不過對於寫組語有變強就是了...
這邊記錄一下報告內容
----------------------------------------------------------------------------------
報告內容
(我是覺得做東西要有發想 -> 實作 -> 結尾,所以要先編個故事,就拿 bootkit 來講)
整個報告內容分五部分,第一個部分是講述為何做這題目,那是源自一個攻擊
然後會簡述攻擊歷史,最後引申到解決方案,也就是用 secure boot
那第二部分就是這次的重點,我們會講述我們做的專案,也就是 secure boot
並實際 demo ,第三部分是把我們做的 secure boot 和現行 UEFI secure boot 做比對
第四部份我們想做反例,就是 secure boot 真的這麼完美嗎? 那這邊會舉實際案例並 demo
最後一部分就是寫未來會想做的工作方向
那開始前...
聽說有貓,簡報就會先贏一半,所以我們這邊也先放隻貓
這邊首先要講一下我們為何要做這個
project
,就是研究這個課題的最初的發想
就是,今天駭客想要攻擊你的電腦,那如果說,它攻擊的點,是你一開機啟動的部分
那因為他比後面的保護措施都要早近來
也就等同他可以繞過你在電腦中,做的所有保護措施,所以這是一個很棒的攻擊點
那這個概念,最早可以追溯到 1987 年,那時有個病毒叫做 brain ,那它代表的歷史意義就是
他是首次構思去攻擊系統的啟動部分,那我們稱這種毒為
bootkit
那前一頁說的
brain
,是首次歷史上提出這樣的構想
但真正大家開始對這領域做研究和發展,是到 2005 年的美國黑帽大會上,
有家叫做
eEye Digital 公司展示一個叫做
bootroot
項目
就是,從這時開始,大家從去注意這個 bootkit ,然後對她做研究
那這邊先放一張流程圖,簡單概述一下這種攻擊
基本常見就是他去感染你的 MBR ,往下感染 Bootloader ,之後 patch 系統預設行為
在往後控制系統執行,基本常見大概都是這個樣子
但下一頁是整理從 2007 - 2014 的這種攻擊的個年代里程碑
2007 - 2009 開始多了很多這種毒
2010 - 2012 則是功能比以前更多元,也出現一些歷史上很有名的病毒
那這邊先把前面的介紹做個小結,就是前面的那些攻擊,他們可以攻擊在啟動過程的所有組件
包含像加載的韌體、bootloader、mbr 等,是因為這些組件都沒有經過密碼學驗證,
所以只要駭客可以存取你的電腦,就可以去調整這些組件,就可以攻擊
所以為了解決這樣的問題,使用的就是 secure boot ,就是它會對啟動過程中,
加載的所有組件做密碼學上的數位簽章和驗證
這樣可以確保電腦僅使用製造商或使用者信任的軟體啟動
所以,我這邊就是講了為何做這 project ,從 bootkit 的發想、歷史延伸,
這邊提出解決方案
secure
boot
那這個 secure boot 也是我們這次 project 重點,後面會先做基本介紹和實際 demo
那這邊就先簡單 overview 一下 secure boot 過程
就是開機後,會先抓 MBR ,在抓 Bootloader ,之後 bootloader 載入 kernel
那再載入 kernel 時,會用數位簽章對她做驗證,驗過才載入並執行
那我們這邊的數位簽章採用 md5 做 hash ,用 rsa 算簽章
--
後面這部分是介紹助教的 little-OS ,和我們具體修改哪裡並 DEMO
這邊是給另一個組員講的,就不寫
之後是講現行 UEFI Secure boot 和我們的 secure boot 做比對,這也是另一個人講的
所以就不寫
--
那前面介紹完我們做的 secure boot 和比對現行 UEFI 機制後,我們想要做反例
就是,我們想去思考 secure boot 真的這麼完美嘛?
這邊以 2018 年任天堂的 switch 事件來講
因為時間關係,所以不會講太 detail ,就大概把過程說一下
---
這部分我就不寫了,畢竟這事件真的蠻簡單的
可以直接參考 github
如果看英文很痛苦,也有簡體翻譯,還不錯看
---
講完這事件後,我們有做個 demo
---
未來工作 = 幹話,所以這邊也不描述了@@
---
大概整個報告內容差不多是這樣
--------------------------------------------------------------------------------------
Final Project v.s Final CTF
我周遭的好像都很討厭 Final Project ,而比較想打 CTF XDDDD
可是,我是覺得 Project 比較好,以後履歷上也是一個拿得出來
可以說嘴的東西, CTF 的話嘛......
反正我是比較支持 Final Project ,不過真心累就是了
如果是 Final CTF ,感覺真的還比較輕鬆@@
但從收穫角度看,我覺得 Final Project 可以學到的遠遠比 CTF 多
而且找人來講評真心不錯
所以還是比較推 FINAL Project ,但我好像也沒機會再參加就是了 XD
沒有留言:
張貼留言