Black Hat USA 2000 - Making Unix Secure for the Internet
三句話摘要
標準作業系統與可信任作業系統的安全比較:如何透過最小權限、強制存取控制與網路標籤原則,根本解決作業系統層級的安全缺陷。 可信任作業系統透過將特權細分、強制安全等級、網路感知隔離三管齊下,實現了即使核心應用被攻破也能自動隔離損害的終極防禦,將安全責任從永無止盡的補丁競賽轉變為架構層級的根本保障。 標準作業系統的三大核心缺陷:root使用者擁有所有權限且無法分割,成為單一攻擊點;自主存取控制(DAC)中檔案所有者可任意改變權限,無法防止資料外洩;網路層與作業系統安全脫鉤,使用者無論從何處連線都擁有相同權限。
重點整理
重點- 1
標準作業系統的三大核心缺陷:root使用者擁有所有權限且無法分割,成為單一攻擊點;自主存取控制(DAC)中檔案所有者可任意改變權限,無法防止資料外洩;網路層與作業系統安全脫鉤,使用者無論從何處連線都擁有相同權限。
- 2
可信任作業系統的解決方案:將root的權限拆解為細粒度的「能力」(如掛載檔案系統、存取特權連接埠),進程可動態釋放不需的能力;強制存取控制(MAC)基於安全等級而非使用者身份,檔案所有者無法改變其MAC設定,有效防止權限提升;網路標籤規則允許根據進來的介面、主機、埠號動態指派使用者的安全等級,使遠端管理員與本地管理員擁有不同權限。
- 3
實戰隔離機制:透過角色化授權(如安全官、系統管理員、操作員各自擁有不同權限集合)、安全閘門(在隔離的子系統間建立受信任的單向通信通道)、CGI守護程式(將CGI功能從Web伺服器完全分離),將被攻破的程序限制在其安全等級內,無論如何都無法逃脫。
實用技巧與重點
乾貨- 軟體與產品
- Argus Systems Group:Pitbull(支援Solaris 7 Spark、x86、正移植Solaris 8與Linux 32/64位元)
- HP:Virtual Vault(Presidium套件)
- 自動化工具:TracePV(遍歷二進位檔並自動設定所需權限)
- 核心概念與機制
- 最小權限原則(Least Privilege)
- 能力/特權(Capabilities):掛載檔案系統、存取特權連接埠、覆寫DAC檢查、關閉系統等可獨立啟用/停用
- 授權(Authorities):附加於使用者ID,用於角色化存取控制
- 強制存取控制(MAC):基於貝爾-拉帕杜拉模型(Bell-LaPadula Model)
- 敏感度標籤(Security Level):分類層級(非密/機密/絕密)+ 隔間/類別(部門、專案等)
- 標籤支配規則:標籤A支配標籤B需同時滿足:(1)分類層級≥ (2)隔間集合為超集或相等
- 進程的三層權限:限制集(上限)、最大權限集、有效權限集
- 檔案的三種權限:固有權限、代理權限、授權權限
- 網路標籤(Network Labeling):根據介面、來源主機、埠號、協定規則動態標籤進來的資料
- 安全閘門(Security Gate):受信任的小型程序,仲裁兩個隔離子系統間的通信
- CGI守護程式:將CGI功能從Web伺服器分離到獨立進程與權限層級
- 部署與設定
- 安裝:作為作業系統之上的軟體層,無需全新安裝
- 集成步驟:(1)識別需特殊系統存取的應用,(2)運行TracePV自動設定權限,(3)無特殊需求的應用無需修改
- 開箱即用鎖定狀態:安裝完成後預設全面保護
- 備份與恢復:可為備份程式設置授權 + MAC保護,限制特定管理員透過特定介面執行
- 維護模式:系統支援特殊運作模式以執行維護操作
- 網路協議支援:IPO Basic、IPSO、SyPO(IP選項層)、SAMP S T6相關內容
- 性能開銷:約5-55%(取決於配置)
- 標籤範例
- 分類層級:TS(Top Secret/絕密)、S(Secret/機密)、C(Confidential/機密)、U(Unclassified/非密)、Impl(Implementation/實作層級)
- 隔間(部門):httpd、mail、user等
結論
結論“可信任作業系統透過將特權細分、強制安全等級、網路感知隔離三管齊下,實現了即使核心應用被攻破也能自動隔離損害的終極防禦,將安全責任從永無止盡的補丁競賽轉變為架構層級的根本保障。”
完整解析
詳細這場由湯普森代表Argus Systems Group主講的演講,從作業系統層級的安全威脅開始談起。演講者指出NSA的一句名言:「沒有安全的作業系統,就無法應付現代運算環境的威脅,任何忽視此事實的安全措施都只能建立在沙土之上。」傳統Unix與Windows NT系統存在三大根本缺陷。
第一個問題是特權集中化。Unix系統中root使用者擁有所有權限——掛載檔案系統、覆寫任何權限檢查、關閉系統等無一不能。這意味著攻擊者只需找到一個setuid程式的缺陷、利用一次緩衝區溢位,或誘騙root程式執行非預期操作,就能瞬間獲得整個系統的控制權。常見攻擊包括:(1)緩衝區溢位,攻擊者將程式碼注入堆疊並覆蓋函式回傳指標;(2)競態條件(TOCTOU),在檔案檢查與建立間隙中插入符號連結,誘導root程式修改系統檔案;(3)誤導root程式讀取敏感檔案如/etc/shadow。
第二個缺陷是自主存取控制(DAC)的無力。檔案所有者可任意修改權限與所有權,使用者可建立setuid shell將權限傳遞給他人,且即使將檔案權限設為000仍可重新修改。更糟的是,無法實現環境感知的權限差異:同一管理員透過內部網路與公開網際網路連線時應擁有不同權限,但Unix系統無法區分。
第三個缺陷是網路層缺乏安全控制。防火牆只能控制誰能連線到哪個服務,一旦連線建立,使用者的權限就完全取決於其帳號,與連線來源無關。
可信任作業系統透過四大機制根本解決這些問題。首先是最小權限原則,將root的無限權限細分為獨立的「能力」——掛載檔案系統、繞過DAC讀取檢查、改變安全等級等,每個程序只獲得必要的能力。進程可在執行完關鍵操作後立即釋放能力,使後續的緩衝區溢位攻擊無法獲得已釋放的特權。以Web伺服器為例,它只需要「繫結特權連接埠」的能力,完成後釋放,即使被攻破也只能執行該使用者的操作。
其次是強制存取控制(MAC),基於貝爾-拉帕杜拉模型實現。系統為每個檔案與進程指派敏感度標籤,由分類層級(如絕密>機密>非密)與隔間集合(如部門、專案)組成。進程只能讀取其標籤所支配的檔案、只能寫入標籤相等的檔案,且檔案所有者無法改變檔案的MAC設定。這種強制性確保使用者無法逃脫其所在的安全等級。
第三是授權機制,將系統內的使用者角色化——安全官可啟動系統、系統管理員可建立帳號、操作員只能重啟。程式可檢查執行使用者是否擁有必要授權,否則拒絕執行或降低權限。透過結合MAC與授權,可實現細粒度的存取控制。
最後也是最強大的是網路標籤。系統根據規則(進來的介面、來源主機、連接埠、協議)對進來的網路資料自動貼標。例如,所有透過公網連線到Web伺服器的資料標為「機密httpd」層級,透過VPN連線則標為「機密vpn」。這樣即使同一使用者從不同網路連線,系統會自動指派不同的安全等級,不需依賴使用者身份識別。一旦連線建立,使用者會被鎖定在其網路規則指定的層級,無法存取超出該層級的資源。
演講透過兩個實戰案例展示這些機制的應用。在基本Web伺服器例子中,系統檔案置於最低實作層(所有層級都能讀但不能寫),Web伺服器與CGI在「機密httpd」層級,內容檔案也在同層級。這樣即使Web伺服器被駭客攻破,攻擊者也只能停留在「機密httpd」層級,無法修改系統檔案、無法提升權限、無法逃脫隔離區。在更複雜的例子中,系統同時運行多個隔離的子系統——使用者子系統(機密user)、郵件子系統(機密mail)、Web伺服器子系統(機密httpd)——各自獨立,網路規則則決定了哪些外部連線可以存取哪些子系統。
演講還介紹了兩個應用層擴展。安全閘門是受信任的小程序,負責在兩個隔離子系統(如Web伺服器與資料庫)間仲裁通信,程式設計師可在其中實現審計、SQL驗證等邏輯。CGI守護程式則將CGI功能從Web伺服器完全分離到獨立進程,運行在不同使用者、不同權限層級,使被攻破的CGI無法信號殺死Web伺服器。
演講最後提及Argus「Argus Revolution」計畫,免費提供Pitbull與可信任作業系統予個人非商業用途,以及Defcon CTF奪旗賽的實踐案例——系統由Pitbull保護,即使參賽者獲得root帳號與密碼,也無法突破MAC隔離區,展示了可信任作業系統如何使傳統的「獲得root=遊戲結束」規則變成過時的觀念。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

