大數(shù)據(jù)環(huán)境下來自安全軟件的鼎力相助_第1頁
大數(shù)據(jù)環(huán)境下來自安全軟件的鼎力相助_第2頁
大數(shù)據(jù)環(huán)境下來自安全軟件的鼎力相助_第3頁
大數(shù)據(jù)環(huán)境下來自安全軟件的鼎力相助_第4頁
大數(shù)據(jù)環(huán)境下來自安全軟件的鼎力相助_第5頁
已閱讀5頁,還剩46頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、沙箱逃逸:來自安全軟件的鼎力相助安全軟件指的是 名字里帶“安全”字樣的 Internet Security Total Security Maximum Security 有顯著安全影響的軟件在AV-Test列出的殺毒軟件里55%有漏洞數(shù)據(jù)來自 2015 年 12 月 Home User Product Test 中列出的產(chǎn)品Windows 上的沙箱 早期原型可能來自 HIPS 軟件 例如 System Safety Monitor(還有人記得么?) 兩大流派 基于內(nèi)核鉤子,例如 Sandboxie 應(yīng)用層沙箱,依賴于系統(tǒng)訪問控制Windows 上的應(yīng)用層沙箱 最早見于 Internet Ex

2、plorer 7 保護模式 David LeBlanc 在 Practical Windows Sandboxing 中進行了詳細介紹 后來被 Google Chrome 使用 現(xiàn)在在 Microsoft Office, Adobe Reader 等軟件中大量使用沙箱相關(guān)的 API 支持WindowsNTTokenWindows2000Job ObjectWindows XPRestrictedTokenSAFERWindowsVistaIntegrity LevelWindows 8AppContainerProcessMitigationOptionsWindows 10Silo一個常見的

3、應(yīng)用層沙箱實現(xiàn) Restricted Token 限制對安全對象的訪問 Job Object 限制進程數(shù),Win32k 相關(guān)的功能 獨立的桌面、窗口站 限制窗口消息、窗口鉤子、鍵盤鉤子 Low Integrity Level 又一層對安全對象的訪問限制 給新創(chuàng)建的對象加上標簽 AppContainer 限制對象名稱空間 限制網(wǎng)絡(luò)訪問各種作死姿勢花樣作死“我們需要聊聊”式作死 高權(quán)限組件和低權(quán)限組件 它們需要交流信息 但卻不知道正確的方式 作死BitDefender Total Security 幾乎所有內(nèi)核對象都設(shè)置了 ALL APPLICATION PACKAGES ACE 命名管道 .pi

4、peVSSERV 沒有任何安全措施struct message int unknown3;int control_code;int total_length;int unknown2;int path_length;char path1; 發(fā)送控制碼 0 x17a5 即可以當前用戶身份啟動任意進程 CVE-2015-8693 BitDefender 送給我們一年的激活碼(多謝?。〤omodo Internet Security ComodoGeekBuddylauncher.exe launcher.exe 高權(quán)限 launcher_service 的 RPC 客戶端 有數(shù)字簽名驗證 一個程序

5、即可繞過 ComodoGeekBuddyunit.exe 從命令行路徑加載 DLL CVE-2015-8690Total Defense Internet Security 本地 COM 服務(wù)器 ccprovsp.exe 可通過 CoCreateInstance AACF4A1C-BC69-4359-9518-DF3F77E462BF 啟動 IID 5CF74415-61B8-4EF3-95E0-23576BEB31FC 控制碼 0B7C2CB3-E910-4672-9BDF-7E636333DC47 傳入控制碼和文件路徑即可以 SYSTEM 用戶身份啟動任意進程 CVE-2015-8695“

6、這個我也會”式作死 繞過系統(tǒng)默認的安全機制 自己實現(xiàn)各種安全檢查 作死Internet Explorer “權(quán)限提升策略” 控制 EPM 沙箱的權(quán)限提升 HKLM,HKCUSOFTWAREMicrosoftInternet ExplorerLowRightsElevationPolicy GUID AppName AppPath Policy 0 禁用 1 低 2 中,帶提示 3 中,靜默Avast! Internet Security AVASTSoftwareAvastaswWrcIELoader32.exe aswWrcIELoader32.exe 靜默提升到中完整性級別 然而這個文件沒

7、有 AppContainer ACE 在 EPM 中 CreateProcess 會失敗,拒絕訪問 沒關(guān)系,我們可以直接調(diào)用 IEUserBroker 這個功能可以向目標窗口所在進程注入 DLL CVE-2015-8692Panda Internet SecurityPandasecuritytbdtuser.exe 靜默提升到中完整性級別 執(zhí)行任意命令dtuser.exe runappasadmin calc.exe 復(fù)制任意文件dtuser.exe copyfile HP Support AssistantHPSAObjectMetrics.exe 靜默提升到中完整性級別HPSAObjec

8、tMetrics.exeHPSAObjectMetrics:messageid=11&context=0&value=1&launch=C:Windowssystem32calc.exe&params=123“我是上帝”式作死 驅(qū)動程序是安全軟件中權(quán)限最高的組件 但常常很不重視安全問題 多數(shù)安全軟件創(chuàng)建的設(shè)備對象都設(shè)置了Everyone (!) 可訪問 當然他們還會把 IO 控制碼設(shè)為FILE_ANY_ACCESSKaspersky Internet Security Kldisk.sys 創(chuàng)建了設(shè)備 Devicekldiskctl IO 控制碼 0 x8123

9、e040 / 0 x8123e04c 可在任意位置寫入文件(不能覆蓋) 就算是 System32 也可以寫入 DLL 劫持系統(tǒng)程序(如 wmiprise.exe),然后讓services.exe 執(zhí)行 CVE-2015-8691 AVG 和 Avira 存在幾乎一樣的問題 Deviceavgidshrhr, Deviceavipbb CVE-2015-8696, CVE-2015-8689“但我們有安全措施呀!” 許多的安全軟件都喜歡在 IRP_MJ_CREATE 的處理函數(shù)中自己做安全檢查void HandleIrpMajorCreate(PIRP Irp) if (!VerifyProce

10、ss(IoCurrentProcess() Irp-IoStatus = STATUS_ACCESS_DENIED;IoCompleteRequest(Irp);/ 開始執(zhí)行高權(quán)限代碼安全軟件如何信任進程?ObReferenceObjectByPointer /NtOpenProcessNtQueryInformationProcess獲取進程文件路徑NtOpenFileVerifyFile (NtReadFile,RSA_Verify, .)系統(tǒng)如何知道進程文件路徑? EPROCESS-SectionObject-Segment-ControlArea-FilePointer ObQuery

11、NameString FileObject-QueryNameProcedure IopQueryName 往下層文件系統(tǒng)發(fā)送 IO 請求包(IRP) 非常耗時,因此結(jié)果會被緩存又見條件競爭 Windows 允許用 MoveFileEx 移動一個正在運行程序的文件 只需用一個已簽名的文件替換即可繞過 有些服務(wù)也用類似的方式做驗證,同樣可繞過Lenovo System Update 創(chuàng)建沒有安全設(shè)置的命名管道 在管道連接時驗證客戶端進程文件簽名 可用條件競爭繞過 可以以 SYSTEM 用戶身份運行 regedit.exe 但是命令行參數(shù)可以任意指定! 用 IFEO 劫持 regedit.exe

12、即可拿到 SYSTEM 而且它還在用戶可寫的位置創(chuàng)建臨時文件 然后就把臨時文件導(dǎo)入到注冊表里! 利用條件競爭可以寫入任意注冊表位置Lenovo System Update 它還可以安裝任意 INF 文件,沒有檢查! 可以用來加載任意驅(qū)動程序 它還監(jiān)聽 0.0.0.0:20050,并實現(xiàn)了一個控制服務(wù) DownloadBean 和 LaunchIE 下載并以當前用戶身份執(zhí)行任意程序 Trustwave 獨立發(fā)現(xiàn)了這個問題,他們說是本地提權(quán),實際上是遠程代碼執(zhí)行 CVE-2015-7333 / CVE-2015-7334 / CVE-2015-7335/ CVE-2015-7336較好(但無文檔)

13、的做法 查詢無緩存的文件路徑 NtQueryVirtualMemory MemoryMappedFilenameInformation 打開文件,至少需要 FILE_EXECUTE |SYNCHRONIZE NtQueryInformationProcess ProcessImageFileMapping STATUS_SUCCUSS 說明是正確的文件,STATUS_UNSUCCESSFUL 說明不是 重復(fù),直到拿到正確的文件句柄 使用這個句柄做驗證操作安全軟件如何信任路徑?ObReferenceObjectByPointer /NtOpenProcessNtQueryInformationP

14、rocess獲取進程文件路徑CheckPathInInstallationDir哦,你有進程保護? 攻擊者可以從安裝目錄啟動可信進程 不能 OpenProcess 被驅(qū)動程序保護了 但是,CreateProcess 會返回一個完全控制句柄,還記得么? 輕松注入可信進程,與服務(wù)和驅(qū)動程序通訊 可用于 AVG 和 Avira最好(且有文檔)的做法 別通過檢測路徑就信任某個程序 正確使用訪問控制機制隔離權(quán)限邊界 不要自己發(fā)明一些安全檢查為什么會出這種問題?為什么總是出這種問題?真相 安全軟件公司里并非所有的開發(fā)者都是安全專家 其中有許多普通的開發(fā)者犯著常見的錯誤 但他們在犯錯時有最高的權(quán)限“隨便搜一

15、下” 開發(fā)者遇到問題時,首先求助于搜索引擎 常見的結(jié)果通常來自 Stack Overflow、CodeProject 等 特定的錯誤碼可能會搜到個人博客上的解決方案 示例代碼基本上從不考慮安全性問題關(guān)鍵問題 文檔和示例通常跟不上新系統(tǒng)發(fā)布的節(jié)奏 微軟提供的示例通常不完整或不能在新系統(tǒng)上使用 開發(fā)者找不到正確的解決方案時,就會拼湊一些代碼,自己造輪子 你可以說他們沒有遵循 SDL,但代價是由Windows 生態(tài)系統(tǒng)中的所有人來付的D:(A;GA;WD)(A;GA;AN)S:(ML;N微軟的示例代碼“改成下面這樣就好啦,加一個 untrustedintegrity ACEW;S-1-16-0)”操

16、作互斥體時的拒絕訪問錯誤Windows SDK 技術(shù)支持團隊博客神奇的字符串是什么意思?D:(A;GA;WD)(A;GA;AN)S:(ML;NW;S-1-16-0)EveryoneGENERIC_ALLAnonymous LogonGENERIC_ALLUntrusted Integrity LevelNo Write Up微軟的示例代碼“客戶想要我們提供給 Everyone 用戶組和Anonymous 用戶組添加完全控制權(quán)限的示例代碼,這簡直太簡單了。”_tcscat(szStringSecurityDis2,TEXT(D:(A;GA;WD)(A;GA;AN);網(wǎng)絡(luò)程序操作命名管道時的拒絕訪

17、問錯誤Windows SDK 技術(shù)支持團隊博客開發(fā)者才是安全機制的破壞者保護措施訪問控制列表Integrity LevelAppContainer沙箱“解決方案”空 ACL加上 Untrusted IL ACE加上ALL APPLICATIONPACKAGESACE加入沙箱白名單開發(fā)者滿意度很重要 給出完整可用的示例 經(jīng)常更新,讓它們在新系統(tǒng)上可用 做點搜索引擎優(yōu)化自動發(fā)現(xiàn)沙箱攻擊面想法 多合一的通用沙箱測試工具 即使在最惡劣的環(huán)境下也可以運行 例如 Chrome 沙箱 可適應(yīng)不同版本的 Windows Windows 7 Windows 10 TH2 輸出系統(tǒng)對象訪問權(quán)限的詳細報告 報告可以

18、機讀就更好了Chrome 沙箱 無論權(quán)限設(shè)置如何,都無法打開任何文件 nt!ObOpenObjectByName -nt!ObpLookupObjectName nt!ObpCheckTraverseAccess 沙箱內(nèi)沒有 Global? 的 TRAVERSE 權(quán)限 Global? 是全局設(shè)備映射表 DOS 設(shè)備名實際上是 Global? 下的符號鏈接 Global?C: - DeviceHarddiskVolume1以往的相關(guān)項目 Stephen A. Ridley 的 SandKit Python James Forshaw 的 Sandbox Attack Surface Analys

19、isTools C+ & C# 一組小程序的集合測試方法 審核對象的 ACL 快,可靠,有文檔的方法 要是 Broker 進程代理了請求怎么辦? 要是目標進程內(nèi)有令牌和句柄泄露怎么辦? 進程令牌模擬 文檔較少的方法 依然是在不同的執(zhí)行環(huán)境里 進程注入 “微軟概不負責”的方法 測試在目標進程內(nèi)完成如何枚舉系統(tǒng)內(nèi)的所有對象? 進程、線程、Job 文件、目錄、設(shè)備 命名管道、ALPC 端口 符號鏈接、Section 注冊表鍵 會話、窗口站、桌面、窗口 事件、互斥體、信號量 如何枚舉系統(tǒng)內(nèi)的所有對象? 思考:Windows 自己是如何管理這些對象的? 對象管理器 對象樹遍歷 從根目錄開始 也就是 對象目錄如何測試對象訪問權(quán)限? 多數(shù)內(nèi)核對象的系統(tǒng)調(diào)用接口都是一樣的NTSTATUS NtOpen*(PHANDLE ObjectHandle,ACCESS_MASK AccessMask,POBJECT_ATTRIBUTESObjectAttributes) 一個通用的分發(fā)函數(shù)搞定大多數(shù)內(nèi)核對象 NtGenericOpen 其余的用代理函數(shù)處理 用一個數(shù)組存儲對象類型到函數(shù)指針的映射 函數(shù)調(diào)用自動重定向

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論