請奇虎360停止愚弄用戶 立即停止安裝“后門”
2010-02-03 11:42:23近日,360產品陸續出現嚴重缺陷:2月1日360安全衛士被爆存在“本地提權”后門,截止到2月3日11 時,其產品并未修復,而官方宣稱已修復(見 360 的官方報道 http://bbs.360.cn/3229787/34800737.html?recommend=1 )。隨后奇虎360安全衛士又被曝出給用戶電腦安裝“后門”,任意讀取用戶隱私文件。問題暴露后,奇虎 360 不但沒有承認自身問題,反而通過刪除網絡新聞、個人博客、威脅媒體、槍手發帖等手段欺騙用戶,掩蓋事實真相、混淆視聽。瑞星公司本著對所有360用戶安全負責的態度,現公布360 “后門”部分技術細節,請奇虎360盡快停止安裝“后門”,停止侵害用戶權益的行為。
請奇虎 360 公司以嚴謹的態度盡快面對以下問題。第一:請對 360 安全衛士存在的“后門”進行解釋;第二:對 2 月 1 日公布的 360 安全衛士“本地提權”后門仍未修復,卻在官方宣布已經修復的問題做出解釋;第三:請盡快對以上兩大嚴重產品缺陷進行修復。
360 安全衛士“后門”細節分析
360 安全衛士后門程序涉及的主要文件是:在安裝進入系統時自帶的驅動文件 bregdrv.sys 、 bfsdrv.sys ,以及對這兩個驅動文件調用的動態鏈接庫 bregdll.dll 、 bfsdll.dll 。
bregdrv.sys : 360 內核模式驅動,該驅動程序通過調用操作系統的未公開 CmXxx 系列函數來操作注冊表,另外由于操作系統內部本身維護了很多同步數據、緩存數據, 直接調用 CmXxx 系列函數操作注冊表極有可能造成系統內部數據不同步,嚴重影響系統安全性,甚至可能導致用戶正常數據丟失;
bregdll.dll :用戶態動態庫,該動態庫封裝了對 bregdrv.sys 的調用,為用戶態程序提供注冊表操作后門的接口;該動態庫仿照 Windows 操作系統 API 接口(加 B 作為前綴)導出了如下注冊表操作函數, 但與 Windows API 不同的是, bregdll.dll 導出的函數在實現上繞過了操作系統的所有安全檢查,直接調用極為低層的未公開 CmXxx 系列函數實現 :
1.BRegCloseKey 2.BRegCreateKey 3.BRegCreateKeyEx 4.BRegCreateKeyExW
5.BRegCreateKeyW 6.BRegDeleteKey 7.BRegDeleteKeyW 8.BRegDeleteValue
9.BRegDeleteValueW 10.BRegEnumKey 11.BRegEnumKeyEx 12.BRegEnumKeyExW
13.BRegEnumKeyW 14.BRegEnumValue 15.BRegEnumValueW 16.BRegOpenKey
17.BRegOpenKeyEx 18.BRegOpenKeyExW 19.BRegOpenKeyW 20.BRegQueryValueEx
21.BRegQueryValueExW 22.BRegSetValueEx 23.BRegSetValueExW
360 后門部分功能代碼截圖一
通過 CmDeleteKey 實現注冊表鍵值的刪除操作 |
bfsdrv.sys ,該驅動程序通過直接向文件系統發送 I/O 請求包( IRP )來實現文件操作,這種方式可以繞過基于過濾驅動的文件監控(包括卡巴斯基、諾頓等安全軟件)。 由于該程序沒有對調用者進行檢查,導致可以被任意程序(如各種木馬程序等)利用達到修改、刪除用戶正常文件的目的。
bfsdll.dll :用戶態動態庫,該動態庫封裝了對 bfsdrv.sys 的調用,為用戶態程序提供文件操作后門的接口;該動態庫仿照 Windows 操作系統 API 接口(加 FS 或 Bfs 作為前綴)導出了如下文件操作函數, 但與 Windows API 不同的是, bfsdll.dll 導出的函數在實現上繞過了所有文件系統上層的過濾驅動,直接向文件系統發送 I/O 請求包實現 :
1.BfsMoveFileExW 2.FSCloseHandle 3.FSCopyFile 4.FSCopyFileW
5.FSCreateFile 6.FSCreateFileW 7.FSDeleteFile 8.FSDeleteFileW
9.FSFindClose 10.FSFindFirstFile 11.FSFindFirstFileW 12.FSFindNextFile
13.FSFindNextFileW 14.FSGetFileAttributes 15.FSGetFileAttributesEx
16.FSGetFileAttributesExW 17.FSGetFileAttributesW 18.FSGetFileSize
19.FSGetFileSizeEx 20.FSGetLongPathName 21.FSGetLongPathNameW
22.FSGetShortPathName 23.FSGetShortPathNameW 24.FSPathFileExists
25.FSPathFileExistsW 26.FSPathIsDirectory 27.FSPathIsDirectoryW
28.FSReadFile 29.FSSearchPath 30.FSSearchPathW 31.FSSetFileAttributes
32.FSSetFileAttributesW 33.FSSetFilePointer 34.FSSetFilePointerEx 35.FSWriteFile
上述 API 均通過 DeviceIoControl/NtDeviceIoControlFile 來調用驅動提供的不同文件操作功能,這些操作均會繞過基于過濾驅動的文件監控。
bfsdrv.sys 寫文件操作代碼截圖 |
360 安全衛士沒有遵循正常的操作系統安全機制,卻直接繞開了系統安全檢查機制。其不僅具有“后門”功能,而且該程序存在重大安全隱患,利用此程序不需要任何身份認證,可輕易被黑客利用窺視用戶隱私、讀取、修改或刪除用戶電腦中的所有文件和注冊表信息。
例如,任意普通用戶可以在低權限的情況下實現刪除系統安裝的安全軟件,隱藏自己的惡意程序。而通過 bregdrv.sys 對注冊表的操作,可以利用其在系統底層任意操作注冊表的權限,達到更多的目的,如:
l 通過修改注冊表存儲的用戶信息,將 guest 用戶激活并克隆成管理員,但是在系統表面看來, guest 用戶仍然是被禁用的。
通過修改注冊表實現映像劫持,將 sethc.exe (系統粘滯鍵功能)替換成 cmd.exe ,這樣就可以實現在登錄界面上按 5 下 shift 鍵直接呼出一個系統權限的 cmdshell 窗口,執行任意指令。




