博客首页|TW首页| 同事录|业界社区
2010-09-30

    在360推出360隐私保护器不久,就有网友将写字板的文件名修改成QQ.exe。结果360隐私保护器同样认为这是腾讯QQ,还分析出这个改名后的写字板在“泄密”隐私。有意思的如果将360自己旗下的程序文件名修改成QQ.exe之后,在使用360隐私保护器监控查看,还真的没有任何泄密事件发生了。

    难道360是这天下唯一不会“泄密”用户隐私的软件公司吗?后来经过专业软件工程师分析,360隐私保护器只是在设计的时候玩了个小聪明,在360隐私保护器开启之后,它会先提取软件的版权信息,如果软件版权信息中有360公司的字样,那么360隐私保护器就会自动“闭眼”,当什么都没有看见。而如果非360公司的版权信息,360隐私保护器则会将所有自己认为“泄密”的信息爆出来。

    我们随后做了一个测试,我们先将360软件管理程序的名称修改为QQ.exe,再通过eXeScope或Restorator 这样的PE文件资源编辑工具打开360软件管家,然后在资源编辑软件中找到360软件管家的版权信息部分,将版权信息中部分含有“360”数字的版权信息全部修改替换成任意其他文字后(图1图2图3)。此时再次打开360隐私保护器,并运行我们修改完版权信息的360软件管家,结果此时360隐私保护器果然不再认识自己的同门兄弟,开始疯狂的“曝光”360软件管家“窃取用户隐私”的丑闻(图4图5)。





    其实之所以出现这种情况,主要是因为360隐私保护器完全是一个偷换概念的产品。在360隐私保护器主程序“360PrivacyCtrl.exe”启动后会首先调用LoadLibraryW 加载360PrivacyMon.dll 然后GetProcAddress 获取60PrivacyMon.dll的导出函数 StartMonitor 和StopMonitor 的地址 。通过调用StartMonitor实现监控 StartMonitor在内部调用SetWindowsHookExW注册一个WH_CBT的消息钩子,当有新的进程启动时,360PrivacyMon.dll就会被加载到该进程的内存中去。

    然后360PrivacyMon.dll会判断一下当前进程的名字是否是QQ.exe。如果是则  inlinehook  Kernel32.dll导出的函数CreateFileW拦截QQ.exe对文件的访问。

    其实说白了,就是监控QQ程序的CreateFileW动作,但是无奈这个动作时Windows操作系统中所有软件都需要用到的,因此360隐私保护在遇到自家兄弟之后,也无奈的袒露了事情的真相,原来它自己也“不干净”。而且值得玩味的是,360隐私保护器要做到大爆QQ“窥视”信息,它自己必须先通过Hook钩子真正“窥视”QQ在干什么,所以真的就如同耶稣说的那样“你们中间谁是没有罪的,谁就可以先拿石头打她。”

    所以从技术上来说,目前的360隐私保护器所使用的技术,根本无法判断出某款软件是否真的窃取了用户的隐私,对于用户而言,这些所谓的窥视数据不过是一些毫无用处的垃圾数据而已。反倒是360在明明知道这些数据并不是自己所宣传的情况下,仍然说这款软件在保护用户的隐私,这种行为实在非常可疑,有恐吓和误导用户之嫌。

    做这个试验并不是想打压谁,只是我们认为安全企业心中一定要有个信念,这个信念用兄长教导我们的话就是“惩恶”。用唐伯虎的话说,就是“闲来写幅丹青卖,不使人间造孽钱”。倘若现代社会人人都可以本着这个原则,不使造孽钱,恐怕中国的社会定然翻天覆地现亘古未有之巨变。

2010-09-13

在和同事从长春到哈尔滨的路上掀起了一场争论,争论的开端由头是我们如果自己创业,那么会选择做什么软件作为方向。阿龙童鞋认为,他首先会义无反顾的抛弃现在的PC终端,快乐而充满希望的去投奔手机的怀抱。在投奔手机怀抱之后,目标就是成为手机软件中的平台–做一款手机软件管理软件。

为这个我们争论了起来。我认为现在个人公司做手机软件管理压根儿没有任何前途,首先从竞争对手来看,首先想到了中国电信有天翼空间,中国联通一直吵嚷着要上马沃商城,中国移动有MM。这三个产品基本上都是希望能够做国内最大的移动终端应用服务提供上,尤其是联通的沃商城,貌似成为苹果App Store平台在中国的翻版。

从现实来看,三大运营商都占有天时和地利这两方面的优势,天时的优势在于3G牌照通过之后,目前3G手机的普及率在逐渐的缓步推高,智能手机也开始越来越普及。地利的优势则在于,电信运营商自己做移动应用服务,收费的门口和分成等一系列跟金钱挂钩的环节都自然而然的能够顺畅打通。

而现实局面来看,中国电信的天翼空间目前非常有优势,天翼空间已经上线,而且还允许联通和移动的手机登录商城,摒弃了门户之见。这样天翼就有一个6亿的手机用户群体和自己旗下5000万的宽带用户。这种潜在用户数量和拓展能力自然就会成为第一道门槛,将大多数想染指手机软件平台的人的想象终结。这是实打实的种子用户拼比,没有这些种子用户,产品很难成功。

此外天翼空间还支持手机和pc终端下载。关键是阿龙认为的必杀技免费已经被中国电信实现。天翼空间支持70%以上的免费软件和免费下载,相比苹果在国外推的App Store更加吸引国人。阿龙认为,这种门槛还是可以越过,最终可以通过软件应用性等方法直接比拼软件的易用性和可用性。

但是从现在手机市场的结构来看,如果仅仅是软件管理的应用性达到了要求,但是作为平台软件,自己绝对不能够仅靠功能性需求来满足整个市场的期望。最终真正比拼的还是谁能够提供更多好玩好用的第三方软件,第三方软件作者往往希望软件能够实现分成,所以从最初投入肯定是财大气粗的电信运营商的怀抱,而不是用户。只有有足够多的第三方软件作者开发的软件,谁才能够成为最终的移动终端之王。

除了天翼空间之外还有移动的MM,MM最大的特点是支持的机型比较多。联通的沃商城虽然只限于iphone用户使用,但相信联通目前绝对是墙头草心态,风吹向哪边,就可以倒向哪边的。软件管理目前的对手绝对是这三家运营商,从市场切分方面就不可能给其他厂商太多利益,小厂商和个人用户拿到的最终只是一些面包屑。

而且从目前三家运营商操作的力度上而言,电信、移动和联通都在开发自己的智能手机平台,如果三家运营商的智能手机可以非常低的价格或免费赠送给年费套餐用户,让软件集成到套餐中,这个市场基本上是中国电信、中国联通和中国移动的盘中餐了。而且即便运营商不染指,也会有大票的手机制造商等着蜂拥进入。

所以从目前看来,这场战争只是天翼空间、移动MM和沃商城的战争,其他人是不可能成为手机平台上的,顶多和运营商合作分一些汤羹面包屑,这就不错了。而通过三家运营商的线上商店做一下比较,不难发现其中存在的问题:移动MM只针对自己的用户,受众多但是突破性不大;联通沃商城,基于Iphone手机的在线商城,基本照搬app-store的运营模式,没有特色的照搬很难短期内达到良好的效果;天翼空间的”全网全终端”、”全开放”的概念的提出,确为中国的市场找到了一条适合自己市场的新的理念和道路。之前看到的电信集团张新的专访,着实验证了我们的推论。有兴趣的,不妨也看一看,分享一下链接:http://tc.people.com.cn/GB/183747/183748/200388/index.html

2010-09-03

  这几天各大杀毒厂商都在炒作Dll劫持,这种攻击方式好像在2002年就出现过。其实攻击的方法说白了就是偷梁换柱。将一些恶意的DLL文件伪装成Windows的动态链接库,由于某些软件在调用Windows动态链接库的时候会先搜索本目录下的,因此就导致了伪装DLL文件的执行。

  这样说或许有些人还是不明白,我举一个简单的例子:假如你安装了酷狗播放器,而酷狗播放器在播放音乐的时候必须调用Windows系统下一个标准动态链接库mp3play.dll,那么黑客就自己开发一个恶意的mp3play.dll,然后再找一个MP3歌曲,将这个恶意的DLL和歌曲放在同一个文件夹下,然后打包压缩发给受害者。

  如果受害者用右键将这个压缩包中的MP3文件和DLL文件都解压缩到了一个目录中(90%的人会这样干),那么当受害者点击这个MP3文件的时候,酷狗就会先去寻找mp3play.dll进行加载,而微软设计的加载顺序是先从默认文件本身的目录进行寻找,于是那个虚假的、恶意的mp3play.dll就先被加载运行了。

  大致是这样的一个过程。我的同事找来了一个不错的文章,给大家转载一下,让大家更加了解DLL劫持吧。

  (注:下文为转载)

  一 回顾DLL挟持的发展

  2010年08月24日 微软发布安全公告2269637,提到三方软件编程不安全存在一个DLL挟持的缺陷可以导致远程攻击

  2010年08月24日 流行的漏洞信息共享网站exploit-db马上就爆出多个DLL挟持漏洞涉及的软件有:Wireshark(免费嗅探器),Windows Live email(邮箱客户端), Microsoft MovieMaker(视频编辑处理),Firefox(网页浏览器), uTorrent (BT下载工具),PowerPoint 2010(办公软件)等

  2010年08月25日-26日 漏洞信息共享网站exploit-db继续爆出Winamp,Google Earth,Photoshop等软件存在DLL挟持漏洞,同时发布这个blog之前笔者的电脑中已经发掘存在的流行软件有,QQ影音,QQ音乐,美图****,ppstream等

  二 新老DLL挟持的攻击原理分析和防御

  1 动态链接库文件通常加载顺序如下

  windows xp sp2系统以上会默认开启SafeDllSearchMode,安全dll搜索模式下DLL文件的搜索顺序如下所示

  (1)可执行程序加载的目录(可理解为程序安装目录比如 C:\Program Files\uTorrent)

  (2)系统目录(即 %windir%\system32 )

  (3)16位系统目录(即 %windir%\system)

  (4)Windows目录(即 %windir%)

  (5)运行某文件的所在目录,比如C:\Documents and Settings\Administrator\Desktop\test)

  (6)PATH环境变量中列出的目录

  2 老DLL挟持触发的原理解析和防御(漏洞触发在DLL搜索流程的第一层,运行程序即加载病毒)

  (1)老DLL挟持的特点:

  为了增加触发的概率,通常会使用usp1.dll,ws2_32.dll,lpk.dll等应用程序所必须的系统dll文件,然后利用DLL搜索第一顺位是程序安装目录,在程序安装目录释放一个同名DLL文件,抢先加载恶意病毒DLL文件,从而达到破坏的作用。这里可执行程序相当于恶意dll的加载器

  (2)老DLL挟持病毒利用回顾重现

  2007年罗姆病毒(ws2_32.dll导致很多杀毒软件无法打开),2009年春节猫癣病毒(usp10.dll导致很多用户重装系统都无法解决病毒问题)

  通常使用老DLL挟持的病毒木马会枚举电脑里面的所有exe目录,然后将恶意的usp10.dll释放到每个exe所在的目录。当用户执行一个应用程序的时候,将会把恶意的usp10.dll文件优先加载从而感染系统

  根据前面介绍的DLL加载顺序,运行程序的时候会优先到程序执行的目录下加载必须文件,下图显示了utorrent.exe在安装目录下的找到了usp10.dll文件并把它加载到内存中。

  (3)老DLL挟持的通用免疫方案

  可以通过编辑HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs来添加需要面议的DLL文件,比如:新建一个ws2_32 指向ws2_32.dll

  3 新DLL挟持触发的原理解析和防御(漏洞触发在DLL搜索流程的第五层,运行图片即加载病毒)

  (1)新DLL挟持的特点:

  应用程序为了扩展或者兼容等目的需要加载相应的DLL文件,但是因为某些原因导致这个DLL文件默认不存在于当前系统,比如plugin_dll.dll文件默认情况下不存在utorrent的安装目录,dwmapi.dllxp环境下不存在(Vista以上系统存在),ie6环境下没有ieframe.dll(ie7以上版本存在)。正是因为程序需要的DLL文件在DLL搜索顺序的(1)-(4)中都不可能存在,此时就会尝试加载文件所在目录下的恶意dll文件,从而达到破坏的作用。这里运行的文件(比如mp3)相当于触发者,根据文件关联它会启动一个应用程序去播放mp3文件。而因为应用程序存在DLL挟持漏洞(比如QQ影音),此时QQ影音就会因为设计上的不足导致成为恶意DLL的加载器。相当于老DLL挟持,简直达到了运行图片/视频文件就会执行恶意文件的目的,当然前提是大灰客们能猜中你电脑里面的默认查看的软件是否存在DLL挟持漏洞了,目前已经发现的存在DLL挟持缺陷的主要有以下几类

  ① 特定系统环境下的文件

  典型的有dwmapi.dll文件,xp环境下不存在,vista以上版本存在,也就是说需要触发这个漏洞的系统环境只能是XP系统

  ② 特定软件版本下的文件

  典型的有:ieframe.dll,IE6下不 存在,ie7以上版本有,也就是说触发漏洞的电脑IE必须是IE6版本

  ③ 特定的库文件

  典型的有:mfc80chs.dll

  ④ 程序自己需要的dll文件,可能是为了功能扩展或者兼容

  典型的有:plugin_dll.dll

  ⑤ 其它未知

  (2)新DLL挟持利用重现

  通常灰客们会先通过DLL挟持挖掘工具寻找存在DLL挟持漏洞的流行应用程序,然后构造相应的文件上传到网络上供用户下载(具体的传播方式请看下一章),如果用户的电脑存在漏洞那么运行相应文件的时候就会执行存在漏洞的程序,从而使得恶意dll被不知不觉加载

  根据前面介绍的DLL加载顺序和新DLL挟持的特点,程序在前四个流程都没有找到需要的文件,只能勉为其难的在第五流程-当前文件目录下加载恶意dll文件,下图就显示了uTorrent加载plugin_dll.dll顺序(前四个流程都是 name not found)并且加载当前目录下恶意plugin_dll.dll文件(第五流程显示的是success )的过程

  (3)新DLL挟持的免疫

  目前微软没有提供有效的免疫方案可以使用,建议升级你常用软件到最新版本.

  三 新DLL挟持可能存在的攻击方式

  exploit-db公布了存在DLL Hijacking的大量常用软件,这些软件里面有视频音频播放器,图像设计浏览软件,IM聊天工具,文字处理软件,网页浏览器,下载软件,杀毒软件。根据在下的一点拙见如果病毒作者想要利用这个漏洞来实现广泛传播的话主要有几种方式。

  1 BT下载大片传播

  挖掘出支持BT下载的流行软件(比如uTorrent )的DLL Hijacking漏洞,然后构造一个恶意dll文件(估计会设置隐藏属性,这样你解压以后将不会看到这个文件)和BT种子文件打包成压缩包上传到网上供用户下载,用户一旦下载了这个压缩包双击BT种子文件的时候会调用uTorrent 打开,uTorrent 运行的时候由于设计上的不河蟹根据dll加载的顺序最后会将种子所在目录的恶意dll加载

  2 美女图片分享传播

  挖掘出流行图片浏览工具(比如美图****)的DLL Hijacking漏洞,然后构造一个恶意dll文件(估计会设置隐藏属性,这样你解压以后将不会看到这个文件)和图片文件打包成压缩包上传到网上供用户下载,用户一旦下载了这个压缩包,解压浏览美女靓照的时候可能会调用图片浏览工具打开从而触发漏洞加载恶意dll文件

  3 软件下载包含的网页文件传播

  挖掘出流行网页浏览工具(比如firefox)的DLL Hijacking漏洞,然后构造一个恶意dll文件(估计会设置隐藏属性,这样你解压以后将不会看到这个文件),应用程序和htm等网页文件打包成软件压缩包并上传到网上供用户 下载。用户一旦下载了这个软件压缩包,解压以后运行安装必看.htm之类的网页文件会调用网页浏览工具打开从而触发漏洞加载恶意dll文件

  4 热门视频音频文件传播

  挖掘出流行视频音频播放工具(比如QQ影音)的DLL Hijacking漏洞,然后构造一个恶意dll文件(估计会设置隐藏属性,这样你解压以后将不会看到这个文件)和rmvb等视音频文件打包压缩包并上传到网上供用户 下载。用户一旦下载了这个压缩包,解压播放相应视频的时候从而触发漏洞加载恶意dll文件

  5 目前公布的部分软件列表

  Google Earth

  Nullsoft Winamp 5.581

  Media Player Classic 6.4.9.1

  Mozilla Thunderbird

  Microsoft Office PowerPoint 2007

  Adobe InDesign CS4

  Nvidia Driver

  Adobe Illustrator CS4

  Adobe Premier Pro CS4

  Skype <= 4.2.0.169

  TechSmith Snagit 10

  Safari v5.0.1

  uTorrent

  Microsoft Visio 2003

  Adobe Photoshop CS2

  avast! <= 5.0.594

  Adobe Dreamweaver CS5

  Opera v10.61

  Firefox <= 3.6.8

  四 DLL安全编程,避免产生DLL挟持问题

  更多信息请访问http://msdn.microsoft.com/en-us/library/ff919712(VS.85).aspx

  (1) 调用LoadLibrary, LoadLibraryEx, CreateProcess的,或者 的ShellExecute 等涉及到模块加载的函数的时候,指定DLL加载的完整路径,貌似应该有API可以获取当前程序运行的目录的

  (2)考虑使用 的DLL重定向 或 Manifests文件 ,以确保您的应用程序使用正确的DLL。

  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs

  (3)确保DLL安全搜索模式被激活。未使用安全搜索设置的话,第二加载项就是当前目录。

  HKLM\System\CurrentControlSet\Control\Session Manager \ SafeDllSearchMode

  (4)从搜索列表中取消当前目录,可以通过调用SetDllDirectory 参数设置为一个空字符串