当前位置:首页 > 通信技术 > 通信技术
[导读]针对ActiveX漏洞被攻击者频繁地使用来攻击系统和由不安全方法引起的漏洞可能会允许远程攻击者任意地访问本地资源的问题,介绍了检查ActiveX控件中不安全漏洞的一般方法,并且使用该方法对几款国内软件进行测试,实验表明该方法能有效挖掘到不安全方法漏洞。

当今软件开发中,面向组件的编程技术应用越来越广泛。但是,组件的使用使编程人员在软件开发过程中提高效率的同时,一并出现的安全性问题也不可忽视。根据NVD(National Vulnerability Database)发布的信息,在2008年1月1日至2009年8月20日之间,共发布了227条描述为在ActiveX控件中引发的漏洞[1]。伴随着网络的普及与基于网络的应用的快速发展,ActiveX控件在应用的数量上非常巨大,而被收入到NVD数据库的只是现存的众多数量的ActiveX漏洞中的极少数部分,还有大量的ActiveX控件的漏洞由于其软件或控件流行范围的局限而不被NVD所关注。
    另一方面,伴随着Windows 2003和SP2在操作系统安全机制上的提升,很多漏洞的利用方式被成功遏制。如今要想在Windows系统中找到能够利用的漏洞已经是一件很困难的事情,因此更多的黑客与安全人员把目光转向了第三方软件。近几年,一些知名的软件公司都曾被发现其注册的ActiveX控件中存在严重的漏洞,鉴于控件的特点,可以说这些漏洞跟IE自身的漏洞没有多大的区别。所以在漏洞挖掘中尽早发现这类漏洞并及时地通知相关厂商,以便做出及时的应对措施显得尤为重要。
1 ActiveX控件
1.1 什么是ActiveX

    ActiveX是微软公司在1996年引进的,它是在组件对象模型(COM)、对象链接和嵌入(OLE)技术的基础上发展而来[2]。COM规范是ActiveX技术的基础,而COM的目的是创建对象和提供接口来实现代码片段的简单复用,而这些接口又能被其他的COM对象或者程序调用,ActiveX就是这项规范与IE的结合。这种结合提供了IE浏览器与第三方软件的接口,使用ActiveX控件可以对IE浏览器进行功能扩展,可建立应用程序与网站之间的联系,而这种联系通过浏览器来实现。比如登录一个在线视频网站的时候,网站正是通过浏览器调用ActiveX控件打开本地的视频资源。
    每一个ActiveX控件通常使用CLSID(Class Identifier)来区别于其他的控件。CLSID是标识一个COM类对象的全球唯一的标识符,它是一个128位的随机数。可以从注册表中的HKEY_CLASSES_ROOTCLSID来读出本机已经注册的CLSID。
    ActiveX控件并不能直接使用,它首先需要在目标机器中进行注册,有很多种方法可以注册控件,除了所有的属于IE和操作系统的控件以外,新安装控件可以通过应用程序的安装注册一些控件;还可以通过网页中<OBJECT>标签中的CODEBASE属性,从指定位置下载并注册控件;另外通过DOS命令regsvr32也能手动注册一个控件。
1.2 脚本安全
    一个ActiveX控件可以被标注为脚本安全SFS(Safe For Scripting),这意味着IE可以通过脚本语言如JavaScript或VBScript调用控件,并设置或获得它的属性。
    有两种方法可以描述一个控件是脚本安全的,第一种方法是使用组件目录管理(Component Categories Manager)来在系统注册表中创建合适的项目。可以通过在这册表编辑器中查看“HKEY_CLASSES_ROOTCLSID<control clsid>Implemented Categories”是否拥有子键7DD95801-9882-11CF-9FA9-00AA06C42C4。第二种方法是通过实现IObjectSafety接口,通过调用IObjectSafety::SetInterfaceSafetyOptions方法来确定控件是否为脚本安全[3]。
1.3 KillBit
    KillBit是注册表中的一项,用来标识控件使得在IE浏览器或者脚本环境运行时不加载控件。当发现有漏洞的控件时,可以先通过设置KillBit来使IE在使用默认设置时永不调用ActiveX控件。KillBit是ActiveX控件的兼容性标志DWORD值在注册表中的特定值0x00000400。针对IE与操作系统的不同,KillBit在注册表中的位置略有不同[4],可分别表示为:
    (1)32位IE/32位Windows:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet
ExplorerActiveX Compatibility
    (2)64位IE/64位Windows:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet
ExplorerActiveX Compatibility
    (3)32位IE/64位Windows:
HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoft
Internet ExplorerActiveX Compatibility
1.4 控件函数枚举
    由于ActiveX遵循COM规范,因此它也像其他的COM控件一样使用相同的方式实现了COM接口,COM接口中很好地定义了一个COM组件中所实现的方法和属性。如果控件实现了IDispatch或者IDispatchEx接口,那么可以通过获得IDispatch接口来枚举出控件的方法、参数以及属性等信息。
2 不安全方法漏洞及检测
2.1不安全方法漏洞

    通过分析NVD以及US-CERT(US-Computer Emer-
gency Readiness Team)中关于ActiveX漏洞的描述信息,ActiveX漏洞与其他的漏洞在类型上大致相同,占据漏洞比例绝大部份的是由于缺乏必要输入验证而带来的缓冲区溢出漏洞。另外还包括由于IE加载恶意网页而引发的在控件实例化过程中造成的崩溃[5]。本文要提到的不安全方法漏洞,也是在ActiveX控件中频频出现的一种漏洞。
    如果一个方法被设计是由IE调用,那么它应该就被标记为脚本安全,微软在MSDN中提供了编写一个安全的控件时对于哪些应该被标为安全提供了指导。但是由于编程人员在安全性上的疏忽,或者根本就不熟悉ActiveX的调用机制,一些标记为脚本安全的方法能够轻易地被远程调用者不加任何限制地调用,或者一些本不应该被IE所使用的方法错误地被标注上了脚本安全,这些方法给系统带来很大的安全隐患。这类漏洞往往表现为任意的注册表读写、本地文件系统的读写、网络端口的开放,执行文件、敏感信息的泄漏等。由于这类漏洞的利用一般非常简单,因此这类漏洞利用门槛很低,危害性极大。
2.2 ActiveX控件的检测
2.2.1 威胁建模

    威胁建模(Threat modeling)是一个过程,软件开发人员可以使用它来评估,从而减少控件所面临的潜在的威胁[6]。威胁建模来自于软件测试领域,威胁建模的一般步骤是先分解应用程序,建立数据流图,然后识别所面临的威胁,根据威胁识别潜在的漏洞。对于识别潜在的威胁,可以利用Howard和Leblanc提到的STRIDE威胁目录[7]。
    但是由于威胁建模一般是建立在拥有软件设计细节的基础上。作为漏洞挖掘工作,常常面临的只是软件的二进制文件形式,很难得到软件设计的源代码,构建完整的数据流图。因此,基于威胁建模的漏洞挖掘工作,很难建立起准确的威胁模型。
2.2.2 基于STRIDE指导的渗透测试
    渗透测试是指测试人员围绕网络或者系统的安全性展开探测,以发现系统最脆弱的环节[6]。在不安全方法的测试中,函数的参数成为渗透测试的主要入口,分析大量的已公布不安全方法漏洞,发现从暴露的方法名字中,一般就能推断出该方法执行的操作。因为在代码编写时,常常使用有意义的单词来表示方法和参数的名字,如下面的一些例子:
    LaunchExe(BSTR ExeName)
    SaveFile(BSTR FileName,BSTR Url)
    Update(BSTR Url,BSTR LocFile)
    ExecuteCommand(BSTR Command)
    这些函数及参数明显地暗示了函数的功能以及所需参数的意义,应当首先尝试使用合适的值来测试这些方法。而利用威胁建模中的STRIDE威胁目录可以保证测试的全面性。结合ActiveX控件中常常被用来作为功能扩展的方面,应该从表1所列的几个方面来测试确定该控件是否包含了不安全方法。
2.3 测试的一般步骤
    结合ActiveX控件的特点及其安全方法机制,图1所示的基本流程图提出了不安全方法漏洞挖掘的一般步骤。
    其中,检查是否标注为脚本安全一般先看该控件是否实现了IObjectSafety接口,如果没实现则再检查注册表中是否标注脚本安全。在枚举方法中一般可以使用IDispatch接口,但是如果控件没有类型库信息,就要借助一些二进制扫描工具如Strings[8]来搜查ActiveX控件的方法和属性。测试网页中,一般使用<OBJECT CLASSIS="CLSID:"></OBJECT>标签根据提供的CLSID来装载控件,然后可以在脚本语言中对枚举出的函数进行调用。函数调用中要根据测试者之前预测的潜在威胁输入合适的参数,如果测试结果符合预期假设的威胁,则漏洞分析成功,如果测试结果没有实现预期的威胁,则返回查看是否还有其他的潜在威胁可能存在,循环进行测试,直到被测函数被认定不会包含表1中所具有的威胁为止。

3 实验及结果分析
    本文选取了三款国产软件,分别是UUsee2008、暴风影音、迅雷看看。将三款软件安装到机器后,分别枚举控件并且检查每个控件的信息,三款软件共在机器上安装新COM控件60个,其中有2个设置KillBit,10个被标注为脚本安全。详细信息如表2所示,表中可以看到暴风影音没有被标注为脚本安全的控件,在防范不安全方法漏洞方面做得比较好。


    (1)UUSee任意文件下载漏洞
    软件:UUSee2008
    控件名称:UUUpgrade Control
    函数:VARIANT_BOOL Update(BSTRbstrLocalINIFile-
Name,BSTR bstrRemoteINIURL,BSTR bstrDetailURL,short nMode)
    根据函数名字推测可能具有使用远程文件更新本地文件的作用,符合威胁列表中第一条威胁。因此需要编写测试网页对该方法进行测试,测试结果发现存在之前预测的威胁。该漏洞为已公布漏洞,已发布于国内绿盟漏洞数据库上[9]。
    (2)系统信息暴露漏洞
    软件:UUSee2008
    控件名称:UUUpgrade Control
    函数:BSTR GetMacID( )
          BSTR GetHDID( )
    通过分析函数的名字可预测这两个函数可能分别能使远程攻击者得到本地机器的MAC地址和硬盘ID,存在一定的信息暴露危害,测试结果显示符合之前的预测。两个方法存在泄露系统信息漏洞。
    软件:迅雷看看
    控件名称:DapCtrl Class
    函数:long IsFileExist([in] BSTR filePath)
    该函数能够根据攻击者指定的文件路径名称,返回该文件是否存在,返回值为1表示存在,为0表示不存在。这在远程渗透攻击中会给远程攻击者提供帮助。因此存在信息泄漏的危害。
    本文只对ActiveX控件中的不安全方法漏洞的挖掘方法作了介绍,这种漏洞利用难度较易,危害极大。本文
介绍的方法,只能对单个的方法分别进行测试,但是还有一些控件的方法需要调用属性信息或者其他方法的结果,这种方法对造成的漏洞需要先对控件中的方法属性之间利用数据流分析建立起联系,这是以后研究中需要进一步完成的工作。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭