iT邦幫忙

2026 iThome 鐵人賽

DAY 3
0
Security

[自學筆記] 還在路上!我的 IPAS 資訊安全工程師初級備考紀錄系列 第 3

Day 3:存取控制七大門神,一碗差點被搶先端出去的牛肉湯

  • 分享至 

  • xImage
  •  

開場:AI 差點搶跑,我把稿子按住了

老實講,Day 3 這篇文章昨天晚上就有一版初稿了。AI 把 DAC / MAC / RuBAC / RBAC / CBAC 做成卡片、配好生活比喻、對完 115-1 考古題,看起來像是可以直接發的成品。

我把它擋下來了。原因很單純:那份初稿是「AI 覺得資訊夠了」,不是「我覺得想通了」。 我當下的原話是這樣:

「討論:依照你的做法,第三天內容,我根本沒有下多少指令,那就方向指引也不是我講的,鐵人賽文章卻說是我說的。我認為 Day 3 還沒這麼快產出來,應該是我和 AI 共同針對考前衝刺筆記持續討論,完成最終版本後,整理人機協作的重點及獲得的知識!」

這句話點出兩個問題。第一,那份初稿的敘事把 AI 自己延伸出來的規劃講成「我下的指令」,這是假透明,我不接受。第二,七大門神卡片背得再熟,也只是條件反射,沒有回答「為什麼會有這麼多模型」。所以那版稿子撤回,Day 3 真正的產出,是接下來這一輪磨了好幾回合的討論。

這篇文章,就是那個討論的真實記錄。


第一幕:兩份規劃案打架,找資安老師來評審

磨稿之前,桌上其實擺著兩份完全不同性格的規劃案。

規劃案 A:七大門神速殺卡,DAC/MAC/RuBAC/RBAC/CBAC/ABAC/RiBAC 排排站,一張快篩表對照,配 115-1 考古題逆向拆解。手機滑一滑就能刷,命中率高,通勤時間就能背。

規劃案 B:從「什麼是存取控制、目的為何、為什麼重要、失控會怎樣、可以怎麼管理」這條世界觀路線出發,帶進爆炸半徑(Blast Radius)、治理生命週期(Recertification/Deprovisioning)這些概念,講的是因果,不是名詞卡。

這兩份我自己都覺得有道理,但也都看得出破綻,於是找了 codex exec 模擬台灣知名資安教師的教學風格,請她針對兩案給評審意見。

老師的評語很直接:規劃案 A 訓練的是條件反射,考官只要把題幹從「這是什麼」換成「為什麼會這樣」,反射動作就當機;規劃案 B 是「懂了就一輩子不會忘」的深度架構,但對一個 25 天衝刺、下班已經半瞇眼的考生來說,等於叫人在最累的時候啃一整塊生牛肉,會在第 10 天就棄賽。

她給的處方箋是「先立骨、後填肉、再磨反射」:用規劃案 B 的世界觀先搭一條邏輯骨架,再把規劃案 A 的七大門神卡片掛上去背,最後治理生命週期當睡前彩蛋題。整份報告她自己形容成「把兩碗好料燉成一碗牛肉湯」,這個比喻好懂到我直接拿來當這篇文章的架構。

https://ithelp.ithome.com.tw/upload/images/20260904/20171720AQJHo6qOlt.jpg

不過骨架立完之後,我沒有照單全收往下走,因為我對「有條理」這件事有自己的堅持:

「可是我覺得『什麼是存取控制?目的為何?為什麼重要?會有什麼影響?可以怎麼管理?不同管理方式的差異性為何?』也很有條理。」

於是最終定稿的第一段骨架,不是濃縮版的「兩問精華」,而是把這六個問題完整走一輪,只是保持垂直卡片、不塞寬表格,確保手機讀起來還是輕的。這是我跟 AI 對節奏最直接的一次拉鋸,AI 提效率,我要條理,最後折衷在「深度不砍,排版要輕」。


第二幕:拷問一條虛線——RBAC 為什麼連到 ABAC?

世界觀骨架立好之後,AI 把七大門神畫成一條「權力集中度光譜」,DAC → RBAC → MAC 一路排過去,另外又拉了一條虛線,從 RBAC 指向 ABAC。我看到這條虛線第一反應是懷疑,虛線一定要有因果支撐,不能只是排版好看:

「為什麼 rbac 會有一個虛線到 abac?」

這個問題逼出了整篇筆記裡我覺得最值得記住的一段因果鏈。RBAC 的管理成本低,是因為一個角色對應一組固定權限,人員調職換角色就好,不用逐檔案改權限。但業務一旦切得夠細,比如要區分「在家辦公的會計」跟「在公司辦公的會計」,RBAC 只能不斷新建角色。打個比方,在權限失控的極端情況下,一間 500 人的公司甚至可能衍生出上千個特定角色,這就是角色爆炸(Role Explosion)

ABAC 沒有把 RBAC 幹掉,它做的事情是把角色收編降級成屬性之一。放行條件從「你是什麼角色」,演化成「職務 + 地點 + 裝置 + 時間」一起算:

RBAC 角色持續暴增
        |
        v
角色收編為屬性之一
        |
        v
放行=職務+地點+裝置
        |
        v
       ABAC

這條虛線代表的不是「哪個模型比較潮」,而是靜態職務管理走向動態零信任的一條演化通道。理解了這條因果,七大門神就不再是七張孤立的卡片,而是同一條光譜上不同代次的解法——這正是規劃案 B 想教的東西,也是規劃案 A 的快篩卡沒辦法給你的。


第三幕:ASLR / KASLR 避坑——飯店天天換房號的防小偷哲學

世界觀跟光譜都立穩之後,我丟出另一個純技術面的問題,因為 115-1 科二 Q15 這題把 SELinux 放進選項,怎麼看都像陷阱:

「what is ASLR / KASLR?」

答案要從攻擊者的必要條件講起。傳統 Buffer Overflow 要能得逞,攻擊者除了要能溢位覆寫返回位址,還得精確知道或猜到要跳轉去哪個記憶體位址才能執行 Shellcode。如果位址是固定的,這件事很容易;ASLR(Address Space Layout Randomization)做的事,就是讓作業系統每次啟動程式時,隨機重新分配堆疊、堆積跟共享函式庫的位址。KASLR 則是把這個隨機化推進到作業系統核心空間。

生活比喻就是飯店防小偷:小偷昨天踩點,記下你住在 302 號房;今天飯店系統把所有房號重新洗牌,你被分到 815 號房。小偷照著昨天的舊地圖摸黑闖進 302 號房,結果只撞上一面新砌好的水泥牆,警鈴大作直接被抓。

無ASLR:房號固定302
小偷按舊地圖精準闖入
        |
        v
   得逞,攻陷主機

有ASLR:房號每次隨機
小偷憑舊地圖撞牆
        |
        v
   當機,攻擊失敗

https://ithelp.ithome.com.tw/upload/images/20260904/20171720ubLpvvl2h1.jpg

那為什麼不能選看起來很威的 (D) SELinux?因為 SELinux 是強制存取控制(MAC)的實作,管的是「Apache 這支程式能不能讀 /etc/shadow」這種權限圍籬,它根本不負責隨機化記憶體位址。如果核心位址沒被隨機化,攻擊者一樣能精準跳轉、直接把核心打穿提權,底層一旦淪陷,上層 SELinux 的規則照樣可以被繞過。

這題的考場金句是:控制措施必須對準攻擊前提。 題幹問的是「怎麼讓猜核心位址這件事變難」,唯一對準這個前提的答案,只有 ASLR / KASLR。SELinux 很強,但它是防別的攻擊面,不是防這一題。


帶得走的硬核乾貨:存取控制七大門神垂直快篩卡

決策依據速查
owner分享  -> DAC
標籤比對    -> MAC
固定規則    -> RuBAC
職務角色    -> RBAC
簽章宣告    -> CBAC
多重屬性    -> ABAC
風險分數    -> RiBAC

🟦 DAC|自主存取控制

  • 誰決策:資源擁有者(Owner)。
  • 依據:擁有者自行授權,通常靠 ACL。
  • 致命缺點:權限蔓延,手滑分享就外洩。
  • 反例:檔案標「極機密」連作者都不能私自分享,那是 MAC。

🟥 MAC|強制存取控制

  • 誰決策:中央安全政策。
  • 依據:比對主體許可等級與客體安全標籤。
  • 致命缺點:僵化、維護成本高,SELinux 是代表實作。
  • 反例:依「是不是公司電腦、人在不在台灣」放行,是 ABAC 不是 MAC。

🟨 RuBAC|規則基準存取控制

  • 誰決策:系統/網路管理員。
  • 依據:固定的 If...Then 規則,如時段、IP、埠號。
  • 致命缺點:不理解業務脈絡,規則衝突難除錯。
  • 反例:只要是會計部就放行,主依據是職務,那是 RBAC。

🟩 RBAC|角色基準存取控制

  • 誰決策:組織管理階層。
  • 依據:使用者被指派的職務角色。
  • 致命缺點:角色爆炸(Role Explosion),這正是那條虛線通往 ABAC 的原因。
  • 反例:同是人資主管,還得公司內網、受管筆電才能看薪資,那是 ABAC。

🟪 CBAC|宣告基準存取控制

  • 誰決策:受信任的身分提供者(IdP)。
  • 依據:Token 內具數位簽章的 claim,如部門、年齡、身分。
  • 致命缺點:仰賴 IdP 私鑰安全,Token 撤銷與過期難處理。
  • 反例:伺服器即時查動態風險分數,那是 RiBAC。

🟧 ABAC|屬性基準存取控制

  • 誰決策:集中政策引擎(PDP)。
  • 依據:主體、客體、環境、動作四大屬性綜合運算。
  • 致命缺點:政策複雜、極度依賴即時情資與裝置狀態。
  • 反例:只看職稱不看環境,那是純 RBAC。

🟫 RiBAC|風險基準存取控制

  • 誰決策:動態風險引擎。
  • 依據:異常行為、地理位置跳變、裝置信譽算出的風險分數。
  • 致命缺點:容易誤殺(擾民)或誤放(漏判),閾值要持續調校。
  • 反例:硬性規定人人早上 9 點打卡,沒有分數運算,那是 RuBAC。

💡 快篩卡拿去背沒問題,但記得它們掛在同一條光譜上:DAC 的極致自由,走到 MAC 的極致中央控管;RBAC 撐不住業務複雜度時,被 ABAC 收編升級;RiBAC 是 ABAC 再加上即時風險運算的動態版本。

考古題對照,看出題官怎麼設陷阱:115-1 科一 Q27 把選項刻意排成 DAC、ABAC、RBAC、MAC 這四個,題幹問的是「零信任架構下,需要同時考慮多重條件動態決定授權」,這句話裡的「多重條件」「動態」正是 ABAC 的核心定義(主體+客體+環境+動作綜合運算),DAC 靠擁有者主觀分享、RBAC 只看職務角色、MAC 只比對固定安全標籤,三者都給不出「動態多條件」,正解就是 ABAC。搭配前面第三幕的 115-1 科二 Q15(ASLR/KASLR vs. SELinux),這兩題剛好各自從「存取控制模型該選誰」跟「控制措施要對準什麼攻擊前提」兩個角度,考同一件事:別被表面看起來很像的選項唬住。


結語:AI 可以幫忙划槳,掌舵的人一直是我

回頭看今天這一輪,AI 做得很好的事情是:整理卡片骨架、跑 codex exec 找出 SELinux 陷阱與考點誤判、把光譜畫成圖、把使用者的六個問題重新組織成有邏輯的段落。這些是划槳的力氣,省下我大把時間。

但每一條虛線是不是該存在、規劃案 A 跟 B 該怎麼取捨、世界觀要不要壓縮成資安老師的兩問精華——這些決定,全部是我自己拍板的。AI 提案,我拷問;AI 給答案,我回頭查學習指引跟 115-1 公告試題核對。這篇文章能發出來,不是因為 AI 一次到位,而是因為它被我踩了好幾次煞車。

最後附上這篇考前衝刺筆記的 HackMD 定稿連結:https://hackmd.io/@lanss/ryyd0lvOMg 。==>未來的我請看這個筆記喔
定稿前我們用 curl 把 HackMD 上的內容抓下來,跟本機 day3/access_control_part1.md 逐字 diff,確認回傳 100% diff exit 0,兩邊內容完全一致,才敢說這份筆記是真的定案,不是「看起來應該對」。

七大門神背起來只是第一步,真正帶得走的是那條「為什麼」的因果鏈——下次看到考題換了皮,你才不會當機。


上一篇
Day 2:自繪航道地圖,逐步充實往終點邁進
系列文
[自學筆記] 還在路上!我的 IPAS 資訊安全工程師初級備考紀錄3
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言