人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當(dāng)前位置:蘿卜系統(tǒng) > 網(wǎng)絡(luò)技術(shù)教程 > 詳細(xì)頁面

漫談Windows、Linux 系統(tǒng)中“可信路徑”安全機制

漫談Windows、Linux 系統(tǒng)中“可信路徑”安全機制

更新時間:2021-02-04 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

網(wǎng)絡(luò)技術(shù)是從1990年代中期發(fā)展起來的新技術(shù),它把互聯(lián)網(wǎng)上分散的資源融為有機整體,實現(xiàn)資源的全面共享和有機協(xié)作,使人們能夠透明地使用資源的整體能力并按需獲取信息。資源包括高性能計算機、存儲資源、數(shù)據(jù)資源、信息資源、知識資源、專家資源、大型數(shù)據(jù)庫、網(wǎng)絡(luò)、傳感器等。 當(dāng)前的互聯(lián)網(wǎng)只限于信息共享,網(wǎng)絡(luò)則被認(rèn)為是互聯(lián)網(wǎng)發(fā)展的第三階段。
 計算機系統(tǒng)中,用戶在一般情況并不直接與內(nèi)核打交道,中間還有一層應(yīng)用層作為接口在用戶與內(nèi)核之間相互作用著,但這種設(shè)計能夠保護(hù)內(nèi)核不會被用戶肆意修改窺測,但也隨之帶來了安全問題,由于應(yīng)用層并不是能完全信任之的,因此在操作系統(tǒng)安全功能中,往往會提供可信路徑這一功能[這也是橘皮書 B2 級的安全要求]。

    可信路徑[trusted path]是怎么樣的概念?顧名思義,它就是這么一種功能的實現(xiàn):避過應(yīng)用層,在用戶與內(nèi)核之間開辟一條直接的可信任的交互通道。真的有必要那么麻煩,不得不在進(jìn)行高風(fēng)險操作時使用可信路徑與內(nèi)核互動嗎?遺憾地告訴你:確實是!有經(jīng)驗的系統(tǒng)管理員普遍都很清楚來自網(wǎng)絡(luò)的威脅有多么嚴(yán)重。黑帽子們能使用特洛伊木馬[Trojan horse],記錄你在登陸及其它敏感操作時的行動,從而竊取你的寶貴口令。

    你一定對"ctrl + alt + del"三鍵序列極有印象,在DOS年代,我們用它快速重啟機器,并稱之為"熱啟動",而在WINDOWS 9X時代,我們則用它查看進(jìn)程,不過也許你沒有注意到,在WINDOWS9X 向WINNT過渡后,我們的PC也運行著NT內(nèi)核的WIN2000/XP時,事實上"ctrl + alt + del"三鍵的職能已經(jīng)有了些微改變,微軟在它的官方文檔中,稱"ctrl + alt + del"為SAS[Secure Attention Sequence],并且將之列為安全功能-可信路徑的構(gòu)成部分,而在linux下,也有著類似的按鍵序列可用。

    Linux 環(huán)境下的安全留意鍵—— SAK[Secure 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實現(xiàn)有興趣的朋友,可以參考參考 linux/drivers/char/sysrq.c和 linux/drivers/char/tty_io.c::do_SAK
SAK序列鍵其實是被稱做"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 SYSRQ KEY DOCUMENTATION v1.32》手冊中對"alt + sysrq +k"的解釋吧:

"sa'K' (Secure Access Key) is usefull when you want to be
sure 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 thus
letting you make sure that the login prompt you see is
actually the one from init, not some trojan program. "

    這段話正是SAK的功能寫照:SAK對你確定在登陸時沒有試圖竊取密碼的特洛伊木馬程序運行在當(dāng)前控制臺上,它能殺死當(dāng)前控制臺上的全部應(yīng)用程序,以此令你確信看到的登陸畫面來自init,而非木馬程序。當(dāng)你按下這組鍵時,也就是引發(fā)了這一特定事件,那么按照設(shè)計的流程,系統(tǒng)陷入核心狀態(tài),這時你將可以直接與內(nèi)核溝通,也就是說,出現(xiàn)在你的“理應(yīng)”是如假包換的真實登陸提示信息,為什么是理應(yīng)?我們下文分析:->

    在討論SAK的脆弱點之前,我們先來看看當(dāng)你按下SAK時,系統(tǒng)發(fā)生了什么事情吧,當(dāng)系統(tǒng)處在正常狀態(tài)下時,用戶按下鍵盤時,此事件將進(jìn)入核心以解釋,若其掃描碼對應(yīng)為SAK,則內(nèi)核將找出引發(fā)此SAK的終端,之后為了創(chuàng)建可信路徑,則需要殺死所有非核心進(jìn)程,也就是說在此時,任何此終端上用戶建立的進(jìn)程都將死亡,當(dāng)然,可能存在的木馬進(jìn)程也被殺死了,系統(tǒng)最后將重新打開登陸進(jìn)程,使用戶獲得放心的交互。

注意:
1:事實上這里提到的與內(nèi)核交互,確切地說應(yīng)該是與TCB[Trusted Computing Base,可信計算基]的軟件部分打交道,包括安全內(nèi)核與可信系統(tǒng)程序,TCB事實上是個很廣泛的概念,包括了安全內(nèi)核、特權(quán)程序、系統(tǒng)命令與相關(guān)硬件設(shè)備,甚至在邏輯上包括了系統(tǒng)管理員和安全管理員,離題太遠(yuǎn),請各位對TCB感興趣的朋友查詢相關(guān)手冊`:->
2:Q:SAK怎樣判斷該殺死哪些進(jìn)程,以免少殺及誤殺?
A:這可真是一個好問題,因為編制登陸模擬器木馬的的黑客必須深刻理解SAK殺死應(yīng)用進(jìn)程的實現(xiàn)方式,已此試圖破壞這機制,事實上,SAK命令殺死應(yīng)用進(jìn)程是根據(jù)進(jìn)程的PID來執(zhí)行的,linux系統(tǒng)剛剛啟動時是運行在核心狀態(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)程間的關(guān)系。

    剛剛我們已經(jīng)了解了linux操作系統(tǒng)下的可信路徑的相關(guān)知識,但是我想已經(jīng)有不少朋友更想了解在WINDOWS NT/2000/XP下的可信路徑的情況,Now,let's go.

    在NT系列windows操作系統(tǒng)中的可信路徑的引發(fā)方法是把 ctrl+alt+del這三個鍵同時按下,這稱為標(biāo)準(zhǔn)SAS[Secure Attention Sequence],當(dāng)系統(tǒng)檢測到一個標(biāo)準(zhǔn)SAS序列的掃描碼時,將由winlogon 進(jìn)程將系統(tǒng)設(shè)置為已注銷、已登陸、已鎖定三種不同狀態(tài),然后切換當(dāng)前桌面到 Winlogon 桌面。不過要注意到,WINDOWS中的可信路徑的實現(xiàn)似乎與linux下大不一樣。比如在WIN2000下,按下ctrl+alt+del,切換到winlogon桌面,但是當(dāng)前用戶的進(jìn)程并沒有在這個時候被殺死,比如你可以聽著mp3按ctrl+alt+del,這樣做你將在winlogon桌面下,照樣聽mp3,如果其意義是需要注銷再登陸,那自然的,注銷的時候,當(dāng)前用戶的進(jìn)程都會被殺死,不過那樣的操作從開始菜單中的關(guān)機命令有什么區(qū)別,并且,我們也可以在winlogon桌面上邊改密碼邊聽著mp3,不會有木馬在后臺偷偷地記錄嗎?對,用戶進(jìn)程并不是像在 linux 下那樣被簡單地殺死,事實上,在winlogon 桌面初始化過程中,創(chuàng)建了三個桌面:應(yīng)用程序桌面(\Windows\WinSta0\default)、Winlogon桌面(\Windows\WinSta0\Winlogon)和屏幕保護(hù)桌面(\Windows\WinSta0\ScrenSaver)。而在安全策略上,只有winlogon進(jìn)程可以訪問到winlogon桌面,其它兩個桌面才允許用戶及其所屬進(jìn)程訪問,因此雖然用戶進(jìn)程在SAS激發(fā)后并不會被殺死,但它們也不能訪問winlogon桌面以偷竊用戶口令,這就是“Windows特色的可信路徑實現(xiàn)道路” :->

    等等,你也許會想到GINA木馬,它不就是偽造的登陸窗口嗎?在登陸到windowsNT時,我們按下ctrl+alt+del這個所謂的可信路徑時,怎么沒有將它殺掉?事實上,GINA木馬并不是直接擊敗可信路徑這一功能,而是破壞了可信路徑下層的TCB,改變了TCB中軟件結(jié)構(gòu)的一部分!現(xiàn)在我們來回憶一下GINA木馬的一些細(xì)節(jié),還記得吧?

    GINA[GINA: Graphical Identification and Authentication,圖形身份驗證 ] 在windows中,缺省的GINA就是msgina.dll ,它是運行在winlogon.exe的進(jìn)程空間中的,由注冊表中\(zhòng)HKEY_LOCAL_MACHINE\Softwar
e\Microsoft\Windows NT\CurrentVersion\Winlogon\GinaDLL=yourgina.dll 定義,默認(rèn)情況下則就是msgina.dll,而GINA木馬的實現(xiàn)機理則就是通過修改注冊表,將原來的msgina.dll替換為自己的木馬GINA,以此實現(xiàn)將截獲的用戶名和密碼保存在某個文件中,供黑帽子讀取。嚴(yán)格來說這確實不算是直接擊敗了SAS可信路徑功能,因為必須有administrator權(quán)限才能進(jìn)行操作注冊表,完成替換系統(tǒng)文件的工作,而這種方式是微軟提供給客戶的一種功能,方便客戶以自己的方式來進(jìn)行用戶身份驗證,比如使用指紋鑒別儀,視網(wǎng)膜掃校儀等非口令驗證方式,只要替換msgina.dll為特定的GINA,就可以完成這種銜接工作,因此這只是一種功能,不是缺陷,更不能算是漏洞;并且,在WINDOWS這種操作系統(tǒng)中,若得到了admin權(quán)限,則再也沒有什么不能做的事。在美國foundstone公司編撰的《黑客大曝光》[Hacking Exposed]一書中,也提到了一個能捕獲ctrl + alt + del 三鍵序列之后的密碼操作的工具,Invisible Keylogger Stealth (IKS),它能遠(yuǎn)程安裝,安裝后需要重啟,之后就能運行在后臺,偷偷竊取用戶的密碼,并將其記錄在iks.dat 文件中,且該iks.dat 文件是二進(jìn)制格式,需專用的datview程序解讀,隱蔽性不可謂不好,不過這個程序仍然不是直接擊敗可信路徑,而是破壞了目標(biāo)機器的TCB,與GINA木馬類似的,它也需要管理員權(quán)限,因為它是基于編制設(shè)備驅(qū)動程序來實現(xiàn)其功能的,而在一臺WINNT機器上安全設(shè)備驅(qū)動,自然必須管理員才能完成操作。因此這仍然不能算是一個漏洞,從TCB概念的角度來分析也是如此,是TCB中的一部分改變了另一部分,記得我們前面所說的系統(tǒng)管理員也是TCB的構(gòu)成部分嗎?這里指的系統(tǒng)管理員并非具體的人,而是擁有管理權(quán)限的帳戶,機器、程序是不會辨別人類的,誰控制了管理帳戶,機器就聽誰的指揮。

    NT系列windows操作系統(tǒng)的啟動過程中關(guān)于SAS的定義過程是:
初始化時GINA已經(jīng)收到VOID WlxUseCtrlAltDel(HANDLE hWlx);這個函數(shù)它的作用就是通知winlogon.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);
用于顯示歡迎畫面以及驗證是否使用了自定義的SAS序列。


    擊敗可信路徑的方法:在linux等類似UNIX操作系統(tǒng)下,攻擊者必須改變系統(tǒng)核心,由于核心是絕對信任自身的,而可信路徑引發(fā)時,內(nèi)核將無條件地殺死全部用戶進(jìn)程,因此邏輯上不存在能夠一直潛伏在系統(tǒng)中,當(dāng)可信路徑引發(fā)時也不會被殺死的應(yīng)用層木馬,因此唯一能夠擊敗可信路徑的方法是使用內(nèi)核級別的ROOKIT,它們能夠修改系統(tǒng)內(nèi)核,使用程序重定向或者其它形形色色可能的辦法來欺騙TCB和用戶;在WINNT操作系統(tǒng)下,事實上已經(jīng)有很多程序可以屏蔽掉 ctrl+alt+del這個標(biāo)準(zhǔn)SAS組合鍵,但是用戶發(fā)現(xiàn)這一組合鍵也被屏蔽,肯定會馬上意識到系統(tǒng)已經(jīng)被人做了手腳,因此事實上還是無法真正擊敗可信路徑;不過我們已經(jīng)注意到在windowsXP下,按下ctrl+alt+del標(biāo)準(zhǔn)SAS組合鍵的并不是直接進(jìn)入winlogon桌面,而是調(diào)出任務(wù)管理器,因此可以設(shè)想劫持ctrl+alt+del組合鍵,調(diào)出木馬任務(wù)管理器,這樣也具有一定的欺騙能力。由于 winlogon 桌面只能由winlogon唯一一個進(jìn)程可以對其進(jìn)行訪問和操作,所以理論上只有獲得winlogon 在內(nèi)存中的物理地址,才可能對其動手腳,這可夠麻煩的,目前也未見有針對windowsNT可信路徑的攻擊方法,只有一些替換GINA什么的攻擊,而前面我們已經(jīng)分析過,對GINA的攻擊并不能算是真正擊敗了可信路徑安全機制,可見即使在今天,主流操作系統(tǒng)的可信路徑實現(xiàn)上還沒有發(fā)現(xiàn)能被攻擊者輕易利用的漏洞。倒是在linux等類UNIX操作系統(tǒng)上,SAK的實現(xiàn)上存在拒絕服務(wù)問題,按下它可能突然導(dǎo)致系統(tǒng)重啟,另外在一些較低內(nèi)核版本中,如果還沒有運行X,就輸入SAK,字母密鑰可能產(chǎn)生轉(zhuǎn)義序列;而運行X時輸入SAK,可能無法關(guān)閉X,即使它已經(jīng)被殺死。如果你發(fā)現(xiàn)SAK在你的系統(tǒng)上運行不正常,也可以通過手動編輯sysrq.c文件來屏蔽它。

    可信路徑這一安全機制在現(xiàn)代操作系統(tǒng)的發(fā)展上,已經(jīng)是看的見風(fēng)景的房間,雖然現(xiàn)在并沒有什么程序或方法能直接擊敗它,但這并不說明它就是絕對安全的,從橘皮書的角度來看上,現(xiàn)在WINDOWS和UNIX兩大主流操作系統(tǒng)中,在定義層面上對它的實現(xiàn)還不嚴(yán)格,我們不妨翹首以待可信路徑這一機制的實現(xiàn)越來越安全。



網(wǎng)絡(luò)的神奇作用吸引著越來越多的用戶加入其中,正因如此,網(wǎng)絡(luò)的承受能力也面臨著越來越嚴(yán)峻的考驗―從硬件上、軟件上、所用標(biāo)準(zhǔn)上......,各項技術(shù)都需要適時應(yīng)勢,對應(yīng)發(fā)展,這正是網(wǎng)絡(luò)迅速走向進(jìn)步的催化劑。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 呈贡县| 定襄县| 镇坪县| 西盟| 海盐县| 香格里拉县| 太康县| 达州市| 玉山县| 武强县| 仲巴县| 茶陵县| 马鞍山市| 襄汾县| 波密县| 镶黄旗| 华亭县| 龙川县| 肃南| 古田县| 家居| 青田县| 林芝县| 泾阳县| 南汇区| 抚州市| 沙坪坝区| 山阳县| 璧山县| 什邡市| 景宁| 大兴区| 旬阳县| 东阿县| 洛宁县| 龙井市| 巴林左旗| 信宜市| 南康市| 康乐县| 郓城县|