下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
windows下的代碼簽名機制
0簽名驗證機制眾所周知,大多數(shù)計算機病毒都是以可執(zhí)行文件的形式存在的。攻擊者可以修改或添加目標(biāo)計算機系統(tǒng)的可執(zhí)行文件,并將惡意代碼嵌入到惡意代碼中。當(dāng)攻擊者獲取程序的執(zhí)行權(quán)限從而成功入侵后,便能控制用戶的計算機并竊取其隱私數(shù)據(jù),給用戶帶來極大的損失代碼簽名機制對可執(zhí)行文件的數(shù)字簽名進行驗證,從而可以判斷文件是否已經(jīng)簽名并且簽名是否有效。微軟公司在Windows平臺下設(shè)計了一種代碼簽名的機制,并且在64位操作系統(tǒng)的平臺下強制性地對涉及到內(nèi)核的驅(qū)動程序進行簽名驗證。1代碼簽名機制1.1處理器訪問模式為了避免用戶應(yīng)用程序訪問或修改關(guān)鍵的操作系統(tǒng)數(shù)據(jù),Windows使用了兩種處理器訪問模式:用戶模式和內(nèi)核模式。對于在內(nèi)核模式下運行的組件,Windows對它們的讀寫系統(tǒng)內(nèi)存并不加以保護1.2驅(qū)動簽名的驗證代碼簽名機制的內(nèi)部工作機制分為初始化和驅(qū)動程序簽名驗證兩個部分。(1)初始化代碼簽名機制的核心在于一個可執(zhí)行映像CI.dll。初始化程序CI!CiInitialize在NT內(nèi)核中導(dǎo)入,并在系統(tǒng)初始化時調(diào)用。在初始化過程中:程序首先檢查自我的完整性并驗證最終分配給模塊的數(shù)字簽名。如果遇到任何異常,則會返回錯誤代碼;如果通過自檢,程序會驗證每一個在啟動驅(qū)動程序列表上的驅(qū)動程序的簽名。(2)驅(qū)動程序簽名驗證初始化結(jié)束后,如果代碼簽名機制中斷了驅(qū)動程序加載的過程,可以推斷系統(tǒng)試圖加載未簽名的驅(qū)動程序,此時將對映像頭部進行驗證,檢查nt!g_CiEnabled是否為TRUE,如果是,則比較nt!g_CiCallbacks[0]指針是否為空,如果不為空,則調(diào)用nt!g_CiCallbacks[0]函數(shù)并退出,否則返回0xc0000428。nt!g_CiEnabled如果不為TRUE,則在分頁池里分配一個字節(jié),把結(jié)果地址存到第一個參數(shù)指定的內(nèi)存中,返回STATUS_SUCCESS。至此,整個代碼簽名的驗證過程結(jié)束。2檢測方法的缺陷雖然代碼簽名機制表面上設(shè)計非常完美,但還是存在一些方法可以繞過,有一些還涉及到Windows的內(nèi)核缺陷。目前繞過的思路有:挖掘已簽名的但是存在安全漏洞的設(shè)備驅(qū)動程序;利用散列值碰撞來偽造簽名或數(shù)字證書。2.1代碼簽名機制的攻擊在驅(qū)動程序的開發(fā)階段,由于程序設(shè)計人員的疏忽,某些驅(qū)動程序可能會存在漏洞。如果帶有漏洞的驅(qū)動程序被簽了合法的數(shù)字簽名并且發(fā)布出來,攻擊者就可以利用這些漏洞獲取計算機的內(nèi)核權(quán)限,關(guān)閉代碼簽名機制SecurStar的DriveCrypt是一個計算機數(shù)據(jù)安全保護工具,在其老版本的64位驅(qū)動DCR.sys中存在漏洞。在一個DCR句柄中,發(fā)送一個經(jīng)過設(shè)計的IoCtl請求,通過此漏洞進入內(nèi)核態(tài),注入ShellCode之后即可關(guān)閉代碼簽名機制。只要用戶安裝了DriveCrypt,攻擊者就可以利用該漏洞關(guān)閉代碼簽名機制?!伴L老漏洞”自1992年就存在于Windows操作系統(tǒng)中,惡意程序通過修改注冊表獲取對電腦系統(tǒng)的控制權(quán)。經(jīng)過Win7到Win8的安全機制大幅提升之后,只有通過一些間接的方法才能利用到這個漏洞。mountmgr.sys負(fù)責(zé)管理驅(qū)動器掛載的相關(guān)工作,Win7下的該驅(qū)動能夠被Win8認(rèn)證通過。Win8自帶的系統(tǒng)驅(qū)動已經(jīng)不存在觸發(fā)漏洞的條件,不過Win7下的該驅(qū)動與Win8存在一些不當(dāng)交互。在管理員模式下,用戶可以先卸載Win8的該驅(qū)動,然后加載Win7的驅(qū)動,進入內(nèi)核態(tài)構(gòu)造ROP鏈代碼來關(guān)閉驅(qū)動程序強制簽名機制上述兩個實例都是安全研究人員發(fā)現(xiàn)的已經(jīng)存在于第三方驅(qū)動中可以利用來關(guān)閉代碼簽名機制的漏洞。如果用戶不經(jīng)常更新驅(qū)動,計算機中存在漏洞的可能性就比較大。如果新版本的驅(qū)動已經(jīng)不存在漏洞,則可以先卸載新驅(qū)動,手動加載有漏洞的老版本驅(qū)動,之后再觸發(fā)漏洞進行攻擊。由上述兩個實例可知,攻擊者可以重點對驅(qū)動程序進行漏洞的挖掘,進而通過驅(qū)動程序中的漏洞對計算機系統(tǒng)發(fā)動攻擊。2.2利用散列值簽名對于軟件程序來說,保持其完整性指的是軟件程序從發(fā)布到用戶的使用過程中不被惡意篡改。一般通過互聯(lián)網(wǎng)發(fā)布的軟件程序都會發(fā)布所對應(yīng)的散列值,通常為MD5或SHA-1算法計算得到的散列值。正規(guī)的軟件開發(fā)商還對這個散列值進行數(shù)字簽名,從而清楚地表明軟件的來源,保證在分發(fā)過程中沒有經(jīng)過惡意的篡改或偽造。在2004年,山東大學(xué)的王小云教授就已經(jīng)研究發(fā)現(xiàn)并實現(xiàn)了MD5散列算法的碰撞。之后來自荷蘭的MarcStevens和他的團隊設(shè)計出了一種“選擇性前綴的MD5碰撞”此研究成果可以有如下實際用途:偽造程序的簽名、偽造數(shù)字證書2.2.1cdb值的比較假設(shè)某攻擊者現(xiàn)在有兩個不同的程序A和B,程序A是一個簡單的計算器,而程序B是一個惡意程序。攻擊者利用“選擇性前綴MD5碰撞”方法,計算填充二進制代碼C和D,使得A||C的MD5值與B||D的MD5值相同。此時,攻擊者使用正規(guī)的數(shù)字證書對程序A(實際上是A||C的MD5值)進行簽名,簽名值為E附在程序A之后,以表明程序A已經(jīng)經(jīng)過數(shù)字簽名。因為程序B簽名值F與E相等,如果把E直接附在程序B之后,并且由MD5值判斷為程序A,而且也會誤以為B程序也是經(jīng)過簽名的程序。通過這種方法,攻擊者可以發(fā)布正常無害的簽過名的程序A給普通用戶,針對特定用戶使用惡意程序B。不過,通過審計可以發(fā)現(xiàn)惡意程序B的簽名所使用的數(shù)字證書為攻擊者所持有,從而可以發(fā)現(xiàn)攻擊者的身份,如圖1所示。2.2.2填充信息的偽造和前一種方法的思路類似,攻擊者事先準(zhǔn)備好兩份數(shù)字證書,其中證書A包含填充信息C,證書B包含填充信息D,并且A||C的MD5值與B||D的MD5值相同。其中證書A的持有者信息是真實有效的,而證書B的信息是攻擊者偽造的(也可以偽造成證書授權(quán)機構(gòu)(CA,CertificationAuthority)代理)。由于簽名使用的加密算法是非對稱的3代碼簽名機制的改進由對代碼簽名機制的介紹可以知道,該機制對于Windows的防護起到了非常大的作用。針對2.1節(jié)中的繞過方法,可以從兩方面進行改進:1)對于設(shè)計代碼簽名機制的微軟來說,可以效仿蘋果的APP審核制度2)對于用戶來說,應(yīng)該及時進行軟件和操作系統(tǒng)的更新,及時打補丁,避免攻擊者利用最新的漏洞進行攻擊。針對2.2節(jié)中的繞過方法,其缺陷主要存在于MD5算法的碰撞性上。代碼簽名機制可以同時使用MD5和SHA-1散列算法,對兩個散列值都進行驗證。MD5、SHA-1算法的碰撞概率都非常小,如果要同時碰撞,可以說概率幾乎為零。4代碼簽名機制的改進通過對代碼簽名機制原理、繞過思路以及相應(yīng)的改進措施和解決方案的分析,得出以下結(jié)論:1)總體來講,代碼簽名機制能夠有效地防止惡意程序在操作系統(tǒng)中運行,在很大程度上幫助用戶抵擋了攻擊者的攻擊行為,完善了計算機操作系統(tǒng)的安全體系。2)代碼簽名機制還存在缺陷。惡意程序可以利用已經(jīng)簽名的驅(qū)動程序的漏洞獲取內(nèi)核態(tài)權(quán)限關(guān)閉代碼簽名機制。利用MD5碰撞可以欺騙該機制,使其認(rèn)為惡意程序無害且合法,從而使惡意程序繞過該機制的檢查,對用戶計算機操作系統(tǒng)產(chǎn)生損害。3)代碼簽名機制
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度建筑工程施工合同履約保證金擔(dān)保協(xié)議3篇
- 二零二五年度農(nóng)場農(nóng)業(yè)保險投保合同
- 2025年度個人之間房屋裝修借款合同范本4篇
- 2025年度苗木種植基地土地流轉(zhuǎn)與租賃合同
- 2025年高端酒店集團品牌合作資金引進居間協(xié)議3篇
- 二零二五年度同安區(qū)二手房交易稅費減免專項合同
- 2025年度投資融資經(jīng)紀(jì)代理委托合同規(guī)范范本3篇
- 上海二手房交易細(xì)節(jié)須知協(xié)議指南(2024版)版B版
- 二零二五年度古典園林羅馬柱安裝服務(wù)協(xié)議3篇
- 專利申請?zhí)幚韺m椃?wù)合同
- 醫(yī)療健康大數(shù)據(jù)平臺使用手冊
- 碳排放管理員 (碳排放核查員) 理論知識考核要素細(xì)目表四級
- 撂荒地整改協(xié)議書范本
- GB/T 20878-2024不銹鋼牌號及化學(xué)成分
- 診所負(fù)責(zé)人免責(zé)合同范本
- 2024患者十大安全目標(biāo)
- 會陰切開傷口裂開的護理查房
- 實驗報告·測定雞蛋殼中碳酸鈣的質(zhì)量分?jǐn)?shù)
- 部編版小學(xué)語文五年級下冊集體備課教材分析主講
- 電氣設(shè)備建筑安裝施工圖集
- 《工程結(jié)構(gòu)抗震設(shè)計》課件 第10章-地下建筑抗震設(shè)計
評論
0/150
提交評論