版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、漫談主流操作系統(tǒng)中可信路徑安全機(jī)制計(jì)算機(jī)系統(tǒng)中,用戶在一般情況并不直接與內(nèi)核打交道,中間還有一層應(yīng)用層作 為接口在用戶與內(nèi)核之間相互作用著,但這種設(shè)計(jì)能夠保護(hù)內(nèi)核不會被用戶肆意 修改窺測,但也隨之帶來了安全問題,由于應(yīng)用層并不是能完全信任之的,因此 在操作系統(tǒng)安全功能中,往往會提供可信路徑這一功能這也是橘皮書B2級的 安全要求??尚怕窂絫rusted path是怎么樣的概念?顧名思義,它就是這么一種功能的實(shí)現(xiàn): 避過應(yīng)用層,在用戶與內(nèi)核之間開辟一條直接的可信任的交互通道。真的有必要 那么麻煩,不得不在進(jìn)行高風(fēng)險操作時使用可信路徑與內(nèi)核互動嗎?遺憾地告訴 你:確實(shí)是!有經(jīng)驗(yàn)的系統(tǒng)管理員普遍都很清
2、楚來自網(wǎng)絡(luò)的威脅有多么嚴(yán)重。黑 帽子們能使用特洛伊木馬Trojan horse,記錄你在登陸及其它敏感操作時的行動, 從而竊取你的寶貴口令。你一定對ctrl + alt + del三鍵序列極有印象,在DOS年代,我們用它快速重啟機(jī) 器,并稱之為熱啟動,而在WINDOWS 9X時代,我們則用它查看進(jìn)程,不過也 許你沒有注意到,在WINDOWS9X向WINNT過渡后,我們的PC也運(yùn)行著NT內(nèi) 核的WIN2000/XP時,事實(shí)上”ctrl + alt + del三鍵的職能已經(jīng)有了些微改變,微軟 在它的官方文檔中,稱ctrl + alt + del”為 SASSecure Attention Sequ
3、ence,并且將 之列為安全功能-可信路徑的構(gòu)成部分,而在linux下,也有著類似的按鍵序列可 用。Linux環(huán)境下的安全留意鍵 SAKSecure Attention Key,這個SAK是一組鍵,在 我們常見的X86平臺下,它是alt+sysrq+k,而在SPARC下,SAK則是alt+STOP+k, SAK默認(rèn)不打開,需要用echo 1 /proc/sys/kernel/sysrq這條命令激活,當(dāng)然, 你也可以將它寫進(jìn)登錄腳本中,這樣就不必每次麻煩了。對SAK實(shí)現(xiàn)有興趣的朋 友,可以參考參考 linux/drivers/char/sysrq.c 和 linux/drivers/char/t
4、ty_io.c:do_SAK SAK序列鍵其實(shí)是被稱做magic sysrq key中的一組,magic sysrq key還有一些 特殊鍵,與SAK 一樣,它們都是使用alt + sysrq + .格式,其中的.可換為某些 特殊的字母比如i,在MAGIC SYSRQ KEY DOCUMENTATION v1.32手冊上,alt + sysrq +i所代表的行為是Send a SIGKILL to all processes, except for init. 意思就 是向除了 init外的所有進(jìn)程發(fā)送一條kill信號;現(xiàn)在我們看看在MAGIC SYSRQKEY DOCUMENTATION v
5、1.32手冊中對alt + sysrq +k的解釋吧:saK (Secure Access Key) is usefull when you want to besure there are no trojan program is running at console and which could grab your password when you would try to login.It will kill all programs on given console and thusletting you make sure that the login prompt you se
6、e isactually the one from init, not some trojan program.這段話正是SAK的功能寫照:SAK對你確定在登陸時沒有試圖竊取密碼的特洛伊 木馬程序運(yùn)行在當(dāng)前控制臺上,它能殺死當(dāng)前控制臺上的全部應(yīng)用程序,以此令 你確信看到的登陸畫面來自init,而非木馬程序。當(dāng)你按下這組鍵時,也就是引發(fā) 了這一特定事件,那么按照設(shè)計(jì)的流程,系統(tǒng)陷入核心狀態(tài),這時你將可以直接 與內(nèi)核溝通,也就是說,出現(xiàn)在你的“理應(yīng)”是如假包換的真實(shí)登陸提示信息, 為什么是理應(yīng)?我們下文分析:-在討論SAK的脆弱點(diǎn)之前,我們先來看看當(dāng)你按下SAK時,系統(tǒng)發(fā)生了什么事情 吧,當(dāng)系統(tǒng)處
7、在正常狀態(tài)下時,用戶按下鍵盤時,此事件將進(jìn)入核心以解釋,若 其掃描碼對應(yīng)為SAK,則內(nèi)核將找出引發(fā)此SAK的終端,之后為了創(chuàng)建可信路徑, 則需要?dú)⑺浪蟹呛诵倪M(jìn)程,也就是說在此時,任何此終端上用戶建立的進(jìn)程都 將死亡,當(dāng)然,可能存在的木馬進(jìn)程也被殺死了,系統(tǒng)最后將重新打開登陸進(jìn)程, 使用戶獲得放心的交互。注意:1:事實(shí)上這里提到的與內(nèi)核交互,確切地說應(yīng)該是與TCBTrusted Computing Base, 可信計(jì)算基的軟件部分打交道,包括安全內(nèi)核與可信系統(tǒng)程序,TCB事實(shí)上是個 很廣泛的概念,包括了安全內(nèi)核、特權(quán)程序、系統(tǒng)命令與相關(guān)硬件設(shè)備,甚至在 邏輯上包括了系統(tǒng)管理員和安全管理員,離題
8、太遠(yuǎn),請各位對TCB感興趣的朋友 查詢相關(guān)手冊:-2: Q:SAK怎樣判斷該殺死哪些進(jìn)程,以免少殺及誤殺?A:這可真是一個好問題,因?yàn)榫幹频顷懩M器木馬的的黑客必須深刻理解SAK殺 死應(yīng)用進(jìn)程的實(shí)現(xiàn)方式,已此試圖破壞這機(jī)制,事實(shí)上,SAK命令殺死應(yīng)用進(jìn)程 是根據(jù)進(jìn)程的PID來執(zhí)行的,linux系統(tǒng)剛剛啟動時是運(yùn)行在核心狀態(tài)的,這時只 有一個初始化進(jìn)程,初始化完畢時,初始化進(jìn)程將啟動一個init進(jìn)程,自己進(jìn)入 idle循環(huán),init的PID=1,它是一個真正的進(jìn)程,也將是進(jìn)程樹上的根,之后的所 有進(jìn)程都是init進(jìn)程的“子子孫孫”,可以使用pstree命令查看系統(tǒng)中當(dāng)前的進(jìn) 程樹圖,以此了解進(jìn)程
9、間的關(guān)系。剛剛我們已經(jīng)了解了 linux操作系統(tǒng)下的可信路徑的相關(guān)知識,但是我想已經(jīng)有 不少朋友更想了解在WINDOWS NT/2000/XP下的可信路徑的情況,Now,lets go. 在NT系列windows操作系統(tǒng)中的可信路徑的引發(fā)方法是把ctrl+alt+del這三個 鍵同時按下,這稱為標(biāo)準(zhǔn)SASSecure Attention Sequence,當(dāng)系統(tǒng)檢測到一個標(biāo) 準(zhǔn)SAS序列的掃描碼時,將由winlogon進(jìn)程將系統(tǒng)設(shè)置為已注銷、已登陸、已 鎖定三種不同狀態(tài),然后切換當(dāng)前桌面到Winlogon桌面。不過要注意到,WINDOWS 中的可信路徑的實(shí)現(xiàn)似乎與linux下大不一樣。比如在W
10、IN2000下,按下ctrl+alt+del, 切換到winlogon桌面,但是當(dāng)前用戶的進(jìn)程并沒有在這個時候被殺死,比如你 可以聽著mp3按ctrl+alt+del,這樣做你將在winlogon桌面下,照樣聽mp3,如 果其意義是需要注銷再登陸,那自然的,注銷的時候,當(dāng)前用戶的進(jìn)程都會被殺 死,不過那樣的操作從開始菜單中的關(guān)機(jī)命令有什么區(qū)別,并且,我們也可以在 winlogon桌面上邊改密碼邊聽著mp3,不會有木馬在后臺偷偷地記錄嗎?對,用 戶進(jìn)程并不是像在linux下那樣被簡單地殺死,事實(shí)上,在winlogon桌面初始 化過程中,創(chuàng)建了三個桌面:應(yīng)用程序桌面(WindowsWinSta0d
11、efault)、Winlogon 桌 面 (WindowsWinSta0Winlogon) 和 屏 幕 保 護(hù) 桌 面 (WindowsWinSta0ScrenSaver)。而在安全策略上,只有winlogon進(jìn)程可以訪問 到winlogon桌面,其它兩個桌面才允許用戶及其所屬進(jìn)程訪問,因此雖然用戶 進(jìn)程在SAS激發(fā)后并不會被殺死,但它們也不能訪問winlogon桌面以偷竊用戶 口令,這就是“Windows特色的可信路徑實(shí)現(xiàn)道路”:-等等,你也許會想到 GINA木馬,它不就是偽造的登陸窗口嗎?在登陸到WindowsNT時,我們按下ctrl+alt+del這個所謂的可信路徑時,怎么沒有將它殺 掉
12、?事實(shí)上,GINA木馬并不是直接擊敗可信路徑這一功能,而是破壞了可信路 徑下層的TCB,改變了 TCB中軟件結(jié)構(gòu)的一部分!現(xiàn)在我們來回憶一下GINA木 馬的一些細(xì)節(jié),還記得吧?GINAGINA: Graphical Identification and Authentication,圖形身份驗(yàn)證在 windows中,缺省的GINA就是msgina.dll,它是運(yùn)行在winlogon.exe的進(jìn)程空 間中的,由注冊表中HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionWinlogonGinaDLL=yourgina.dll 定義
13、,默 認(rèn)情況下則就是msgina.dll,而GINA木馬的實(shí)現(xiàn)機(jī)理則就是通過修改注冊表,將 原來的msgina.dll替換為自己的木馬GINA,以此實(shí)現(xiàn)將截獲的用戶名和密碼保存在某個文件中,供黑帽子讀取。嚴(yán)格來說這確 實(shí)不算是直接擊敗了 SAS可信路徑功能,因?yàn)楸仨氂衋dministrator權(quán)限才能進(jìn)行 操作注冊表,完成替換系統(tǒng)文件的工作,而這種方式是微軟提供給客戶的一種功 能,方便客戶以自己的方式來進(jìn)行用戶身份驗(yàn)證,比如使用指紋鑒別儀,視網(wǎng)膜 掃校儀等非口令驗(yàn)證方式,只要替換msgina.dll為特定的GINA,就可以完成這種 銜接工作,因此這只是一種功能,不是缺陷,更不能算是漏洞;并且,
14、在WINDOWS 這種操作系統(tǒng)中,若得到了 admin權(quán)限,則再也沒有什么不能做的事。在美國 foundstone公司編撰的黑客大曝光Hacking Exposed一書中,也提到了一個 能捕獲ctrl + alt + del三鍵序列之后的密碼操作的工具,Invisible Keylogger Stealth (IKS),它能遠(yuǎn)程安裝,安裝后需要重啟,之后就能運(yùn)行在后臺,偷偷竊取用戶的 密碼,并將其記錄在iks.dat文件中,且該iks.dat文件是二進(jìn)制格式,需專用的 datview程序解讀,隱蔽性不可謂不好,不過這個程序仍然不是直接擊敗可信路 徑,而是破壞了目標(biāo)機(jī)器的TCB,與GINA木馬類
15、似的,它也需要管理員權(quán)限, 因?yàn)樗腔诰幹圃O(shè)備驅(qū)動程序來實(shí)現(xiàn)其功能的,而在一臺WINNT機(jī)器上安全 設(shè)備驅(qū)動,自然必須管理員才能完成操作。因此這仍然不能算是一個漏洞,從TCB概念的角度來分析也是如此,是TCB中的一部分改變了另一部分,記得我們 前面所說的系統(tǒng)管理員也是TCB的構(gòu)成部分嗎?這里指的系統(tǒng)管理員并非具體 的人,而是擁有管理權(quán)限的帳戶,機(jī)器、程序是不會辨別人類的,誰控制了管理帳戶,機(jī)器就聽誰的指揮。NT系列windows操作系統(tǒng)的啟動過程中關(guān)于SAS的定義過程是:初始化時GINA已經(jīng)收到VOID WlxUseCtrlAltDel(HANDLE hWlx);這個函數(shù)它的作用 就是通知w
16、inlogon.exe,GINA默認(rèn)使用ctrl+alt+del這個標(biāo)準(zhǔn)SAS.如果要用自己定 義SAS序列的話,開發(fā)者必須在編制自己的GINA.dll時自行HOOK熱鍵.并且通過:WlxSasNotify(hGlobalWlx, dwSasType);這個函數(shù)來報告將使用的SAS。GINA將提供給winlogon.exe 一個函數(shù):VOID WINAPI WlxDisplaySASNotice(PVOID pContext);用于顯示歡迎畫面以及驗(yàn)證是否使用了自定義的SAS序列。擊敗可信路徑的方法:在linux等類似UNIX操作系統(tǒng)下,攻擊者必須改變系統(tǒng)核 心,由于核心是絕對信任自身的,而可
17、信路徑引發(fā)時,內(nèi)核將無條件地殺死全部 用戶進(jìn)程,因此邏輯上不存在能夠一直潛伏在系統(tǒng)中,當(dāng)可信路徑引發(fā)時也不會 被殺死的應(yīng)用層木馬,因此唯一能夠擊敗可信路徑的方法是使用內(nèi)核級別的 ROOKIT,它們能夠修改系統(tǒng)內(nèi)核,使用程序重定向或者其它形形色色可能的辦法來欺騙TCB 和用戶;在WINNT操作系統(tǒng)下,事實(shí)上已經(jīng)有很多程序可以屏蔽掉ctrl+alt+del 這個標(biāo)準(zhǔn)SAS組合鍵,但是用戶發(fā)現(xiàn)這一組合鍵也被屏蔽,肯定會馬上意識到系 統(tǒng)已經(jīng)被人做了手腳,因此事實(shí)上還是無法真正擊敗可信路徑;不過我們已經(jīng)注 意到在windowsXP下,按下ctrl+alt+del標(biāo)準(zhǔn)SAS組合鍵的并不是直接進(jìn)入 winl
18、ogon桌面,而是調(diào)出任務(wù)管理器,因此可以設(shè)想劫持ctrl+alt+del組合鍵, 調(diào)出木馬任務(wù)管理器,這樣也具有一定的欺騙能力。由于winlogon桌面只能由 winlogon唯一一個進(jìn)程可以對其進(jìn)行訪問和操作,所以理論上只有獲得winlogon 在內(nèi)存中的物理地址,才可能對其動手腳,這可夠麻煩的,目前也未見有針對 windowsNT可信路徑的攻擊方法,只有一些替換GINA什么的攻擊,而前面我們已經(jīng)分析過,對GINA的攻擊并不能算是真正擊敗了可 信路徑安全機(jī)制,可見即使在今天,主流操作系統(tǒng)的可信路徑實(shí)現(xiàn)上還沒有發(fā)現(xiàn) 能被攻擊者輕易利用的漏洞。倒是在linux等類UNIX操作系統(tǒng)上,SAK的實(shí)現(xiàn)上 存在拒絕服
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年液壓氣壓剎車系統(tǒng)項(xiàng)目評估分析報告
- 叉車貨物裝卸合同范本
- 北京市養(yǎng)老服務(wù)合同簽約辦法
- 食品安全專題報告
- 腎性水腫的護(hù)理和治療
- 經(jīng)電子纖支鏡治療
- 頸椎病康復(fù)診療范圍
- 網(wǎng)上書店系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文
- 關(guān)于如何管理情緒
- 結(jié)核與抗結(jié)核病藥
- 大學(xué)美育(同濟(jì)大學(xué)版)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 中國急性缺血性卒中診治指南(2023版)
- 勞動法律學(xué)習(xí)試題
- 過敏性休克完整版本
- 口腔診所器材清單
- 服裝企業(yè)生產(chǎn)排期、進(jìn)度計(jì)劃表
- 招商銀行無追索權(quán)公開型國內(nèi)保理業(yè)務(wù)操作規(guī)程
- 產(chǎn)品合格證模板
- 天然基礎(chǔ)基坑3M深土方開挖專項(xiàng)方案
- 氧氣吸入操作常見并發(fā)癥預(yù)防及處理
- 外貿(mào)銷售合同
評論
0/150
提交評論