近日,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后门部分功能代码截图一
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来调用驱动提供的不同文件操作功能,这些操作均会绕过基于过滤驱动的文件监控。
360后门部分功能代码截图二
360安全卫士没有遵循正常的操作系统安全机制,却直接绕开了系统安全检查机制。其不仅具有“后门”功能,而且该程序存在重大安全隐患,利用此程序不需要任何身份认证,可轻易被黑客利用窥视用户隐私、读取、修改或删除用户电脑中的所有文件和注册表信息。
例如,任意普通用户可以在低权限的情况下实现删除系统安装的安全软件,隐藏自己的恶意程序。而通过bregdrv.sys对注册表的操作,可以利用其在系统底层任意操作注册表的权限,达到更多的目的,如:
通过修改注册表存储的用户信息,将guest用户激活并克隆成管理员,但是在系统表面看来,guest用户仍然是被禁用的。
通过修改注册表实现映像劫持,将sethc.exe(系统粘滞键功能)替换成cmd.exe,这样就可以实现在登录界面上按5下shift键直接呼出一个系统权限的cmdshell窗口,执行任意指令。