ActiveX控件中不安全方法漏洞的检测技术
软件安全漏洞检测技术研究

软件安全漏洞检测技术研究一、引言随着互联网的迅速发展,软件安全问题日益突出,黑客攻击、病毒传播等威胁用户的安全和隐私。
软件安全漏洞检测技术的研究与应用逐渐成为信息安全领域的热门话题。
本文将从软件漏洞的定义和分类入手,介绍常见的软件安全漏洞检测技术和漏洞检测实例分析,并分析当前漏洞检测技术的局限和未来发展趋势。
二、软件漏洞的定义和分类软件漏洞是指在软件设计、开发或维护过程中存在的错误、疏忽或缺陷,它们可被黑客或病毒利用,以获得未经授权访问、篡改或破坏系统的权限。
根据漏洞产生原因和影响范围的不同,软件漏洞可分为以下几类:1. 输入验证漏洞该类漏洞主要是因为开发人员未对用户输入数据进行充分的验证和过滤,导致用户可以通过特定的输入陷阱欺骗服务器或程序,从而绕过安全措施,获取非法权限或窃取敏感数据。
2. 访问控制漏洞该类漏洞主要是由于访问控制机制的缺陷导致的。
攻击者可以通过非法的访问手段绕过授权管理机制,获取不应有的数据或权限。
3. 缓冲区溢出漏洞该类漏洞是指当输入的字符长度超出程序分配的缓冲区大小时,溢出的数据将被写入到相邻的内存空间中,从而导致程序崩溃,或者执行恶意代码,破坏整个系统。
4. 代码注入漏洞该类漏洞主要是由于程序没有对用户输入的数据进行过滤和校验,导致攻击者可以在输入的数据中加入特定的代码,从而达到注入或者执行非法代码的目的。
三、常见的软件安全漏洞检测技术为了保障软件安全,软件漏洞检测技术得到了广泛应用。
目前常用的软件安全漏洞检测技术如下:1. 符号执行技术符号执行技术主要是通过对程序代码进行符号执行,从而生成可达路径,并利用路径约束求解器对每一条路径进行求解,以找到程序中可能产生错误的分支和数据。
通过该技术,可以精确地找出程序中及其子系统中的漏洞,并生成相应的测试用例。
2. 静态代码分析技术该技术主要是基于程序代码结构的分析,对源代码进行扫描,检查程序中可能产生漏洞的地方,并且推导出程序中潜在的运行错误。
ActiveX漏洞手工挖掘调试指导

ActiveX漏洞手工挖掘调试指导shineast [/shineastdh]概述:ActiveX控件漏洞手工挖掘调试思路整理如下:(1)下载并安装欲测试的软件,或直接注册要测试的控件,通常是一个dll文件或ocx文件;(2)使用COM Explorer软件查看ActiveX控件中的各种属性,包括ProgID,CLSID,Version,TypeLib,File Location等等;(3)通过VS2005对象浏览器查看控件中的变量、函数、函数参数,从中寻找可能存在漏洞的函数;(4)进行漏洞的测试;(5)编写漏洞利用网页。
本指导主要介绍前3部分,使你能够快速建立调试环境,至于漏洞的测试和网马的编写那是你们的事情啦!哈哈!举例说明:这里用今年的一个暴风影音的mps.dll ActiveX控件栈溢出漏洞为例说明以上步骤(1)到步骤(3)的详细过程。
(1)控件注册测试一个ActiveX首先需要在本地注册这个控件,有两种方法来注册这个控件:一是,对于可以直接注册的控件,注册时可以使用控件注册命令regsvr32,具体命令就是:regsvr32 mps.dll。
关于regsvr32的帮助如下:因此,卸载mps.dll就是:regsvr32 /u mps.dll。
二是,比较笨,直接把软件安装一边不就完事了。
这种方法虽然比较麻烦,但是绝对没问题,因为有的控件确实不能单独注册,需要关联其他的程序、资源、控件等。
因此直接安装软件比较牢靠。
(2)查看控件属性任何一个控件一旦被注册进系统,都会在系统注册表中留下记录。
还是用暴风的mps.dll为例,知道这个控件的文件名和路径,如何寻找他在注册表中的记录呢?最笨的办法就是在注册表中搜索。
打开注册表,搜索关键字:D:\Program Files\StormII\mps.dll搜索完毕,发现有三个结果,分别是:仔细观察,你会发现这三个的CLSID、ProgID属性是不同的。
服务器安全漏洞的检测与修复方法

服务器安全漏洞的检测与修复方法服务器安全是一个至关重要的问题,因为一个存在漏洞的服务器可能会导致数据泄露、系统瘫痪以及其他潜在的风险。
因此,及时检测和修复服务器安全漏洞至关重要。
本文将介绍一些常见的服务器安全漏洞检测与修复方法。
一、漏洞扫描工具漏洞扫描工具是检测服务器安全漏洞的首选方法之一。
这些工具能够自动扫描服务器系统和应用程序,寻找已知的漏洞。
一旦发现漏洞,管理员可以根据扫描报告进行及时修复。
常见的漏洞扫描工具包括OpenVAS、Nessus等。
二、操作系统和应用程序的及时更新服务器的操作系统和应用程序需要及时更新到最新版本,以确保安全性。
供应商经常发布新的软件版本,修复已知的漏洞,并提供更好的安全功能。
管理员应该定期检查操作系统和应用程序的更新,并及时进行升级。
三、加强访问控制访问控制是保护服务器的重要层面之一。
通过合理的访问控制策略,可以限制未授权的访问和减少潜在的安全风险。
管理员应该强化访问密码的复杂性,采用双因素认证等安全措施,限制用户对服务器的访问权限,并定期审查和更新访问控制策略。
四、配置安全防火墙安全防火墙是保护服务器免受未经授权访问和恶意攻击的关键工具。
管理员应该配置防火墙以过滤网络流量,禁止未授权的访问,允许合法的服务和端口访问,并定期审查和更新防火墙策略。
五、加密通信加密通信可以确保服务器与客户端之间的数据传输安全。
通过使用SSL/TLS协议等加密技术,可以有效防止敏感信息的泄露和拦截。
管理员应该配置服务器以支持加密通信,并要求使用加密协议进行访问。
六、日志监控与分析日志监控与分析可以及时识别服务器安全漏洞和潜在的攻击行为。
管理员应该开启日志记录,定期审查服务器的日志文件,及时发现并应对异常活动。
此外,使用日志分析工具可以帮助管理员自动化监控与报警,提高安全响应的效率。
七、定期备份与灾难恢复计划定期备份服务器数据是防止数据丢失的重要步骤之一。
管理员应该制定灾难恢复计划,包括定期备份数据、测试备份的完整性和可用性,并建立恢复过程以应对潜在的安全事件。
常见安全漏洞检测指南

常见安全漏洞检测指南现今互联网安全面临各种威胁,包括黑客攻击和钓鱼等,加强安全措施以保护个人和企业信息安全变得越来越迫切。
常见的安全漏洞检测是非常必要的,因为这是一种确保您网站、服务器、应用程序和其他 IT 系统保持高度安全的方法。
本文将介绍一些最常见的安全漏洞检测指南。
1. 网站漏洞扫描网站漏洞扫描可以揭示网站和其他 Web 应用程序中的安全漏洞。
这种扫描会检测诸如 SQL 注入、跨站点脚本攻击(XSS)和跨站点请求伪造(CSRF)等常见的安全漏洞。
这种扫描器还可以确定您网站上的漏洞,以及安全漏洞的类型和严重程度。
一些知名的网站漏洞扫描器包括 OWASP ZAP 和 Nikto。
2. 网络和服务器漏洞扫描网络和服务器漏洞扫描器是检测网络和服务器中的安全漏洞的一种工具。
这种扫描器可以检测弱密码、过期的软件程序以及开放的端口等常见的安全漏洞。
使用这种漏洞扫描器可以帮助您防止它们被滥用。
一些知名的漏洞扫描器包括 Nessus 和 OpenVAS。
3. 恶意软件检测恶意软件检测是一种检测计算机、服务器和网络上的恶意软件的技术。
这种检测可以检测恶意软件,如病毒、木马、蠕虫和间谍软件等。
一些知名的恶意软件检测工具包括 Malwarebytes 和 Bitdefender。
4. 社会工程学测试社会工程学测试是一种分析组织的安全策略和员工意识,评估这些策略是否可以有效地保护机构的信息,以及是否足以保护企业重要资产。
社会工程学测试可以通过模拟钓鱼邮件、电话钓鱼、网络钓鱼等方式进行,分析员工的反应和应对方案。
这种测试可以帮助组织了解其在保护其信息资产方面的薄弱环节,以及如何加强其员工的安全意识。
5. 手动漏洞测试手动漏洞测试是一种测试方式,通过模拟攻击来评估计算机系统的安全性能,并评估安全防御措施的可靠性、完整性和有效性。
这种测试可以通过模拟黑客攻击的方式来进行,更全面地测试系统的安全性。
手动漏洞测试需要由经验丰富的安全专家完成,因为这种测试需要较多的技术知识和经验。
组件安全性检测与漏洞修复技术

组件安全性检测与漏洞修复技术组件安全性检测与漏洞修复技术是确保软件系统安全的关键环节。
本文将探讨组件安全性检测的重要性、面临的挑战以及实现有效漏洞修复的技术和方法。
一、组件安全性检测概述组件安全性检测是指对软件系统中使用的第三方组件进行安全评估,以识别潜在的安全漏洞和风险。
这些组件可能包括库、框架、工具等,它们在软件开发过程中被广泛使用,但同时也可能引入安全问题。
1.1 组件安全性的核心问题组件安全性的核心问题主要包括以下几个方面:- 依赖性风险:软件系统对第三方组件的依赖可能带来安全风险。
- 漏洞隐藏:第三方组件可能存在未公开的安全漏洞。
- 更新滞后:组件的更新可能不及时,导致已知漏洞长时间未被修复。
1.2 组件安全性检测的应用场景组件安全性检测的应用场景非常广泛,包括但不限于以下几个方面:- 软件开发前期:在软件开发的早期阶段进行组件安全性检测,可以避免引入不安全的组件。
- 持续集成/持续部署(CI/CD):在CI/CD流程中集成组件安全性检测,确保部署的软件始终安全。
- 安全审计:定期进行组件安全性检测,作为安全审计的一部分,及时发现并修复安全问题。
二、组件安全性检测技术组件安全性检测技术是一系列用于识别和评估软件组件安全的方法和工具。
2.1 静态代码分析静态代码分析是一种不执行代码而分析源代码的技术,可以识别出潜在的安全漏洞和编码问题。
2.2 动态代码分析动态代码分析是在代码执行过程中进行的分析,可以发现运行时的安全问题,如内存泄漏、缓冲区溢出等。
2.3 组件依赖图谱分析组件依赖图谱分析是通过构建组件之间的依赖关系图,分析整个系统的安全性,识别出潜在的安全风险。
2.4 漏洞数据库查询利用漏洞数据库查询可以快速识别已知的组件漏洞,并评估其对系统的影响。
2.5 机器学习与机器学习与技术可以提高组件安全性检测的准确性和效率,通过模式识别和异常检测来发现新的或未知的安全漏洞。
三、漏洞修复技术与策略漏洞修复是组件安全性检测后的重要步骤,需要采取有效的技术和策略来修复发现的安全漏洞。
网络安全漏洞检测工具

网络安全漏洞检测工具在当今数字化的时代,网络安全已经成为了至关重要的问题。
随着互联网的普及和信息技术的飞速发展,各种网络攻击手段也日益复杂和多样化。
网络安全漏洞就如同网络世界中的“漏洞”,给黑客和不法分子提供了可乘之机。
为了保护网络系统的安全,网络安全漏洞检测工具应运而生。
网络安全漏洞检测工具是一类专门用于发现和评估网络系统中潜在安全漏洞的软件或设备。
它们的作用就像是网络世界中的“安全卫士”,通过各种技术手段对网络系统进行全面的扫描和检测,及时发现可能存在的安全隐患,并提供相应的解决方案。
常见的网络安全漏洞检测工具可以分为以下几类:一、漏洞扫描工具漏洞扫描工具是最常见的一类网络安全漏洞检测工具。
它们通过对目标系统进行自动扫描,检测系统中存在的各种漏洞,如操作系统漏洞、应用程序漏洞、数据库漏洞等。
漏洞扫描工具通常会使用已知的漏洞特征库来进行匹配,同时也会尝试一些常见的攻击手法来发现潜在的漏洞。
常见的漏洞扫描工具包括 Nessus、OpenVAS 等。
Nessus 是一款功能强大的漏洞扫描工具,它支持多种操作系统,并且拥有丰富的漏洞检测插件。
用户可以通过简单的配置,对目标系统进行快速而全面的扫描。
扫描结果会详细列出发现的漏洞信息,包括漏洞的严重程度、描述、解决方案等,方便用户及时进行修复。
OpenVAS 则是一款开源的漏洞扫描工具,它具有强大的漏洞检测能力和灵活的配置选项。
用户可以根据自己的需求定制扫描策略,并且可以通过不断更新漏洞库来保持检测的准确性。
二、Web 应用漏洞扫描工具随着 Web 应用的广泛应用,Web 应用漏洞成为了网络安全的一个重要威胁。
Web 应用漏洞扫描工具专门用于检测 Web 应用程序中存在的漏洞,如 SQL 注入、跨站脚本攻击(XSS)、跨站请求伪造(CSRF)等。
常见的 Web 应用漏洞扫描工具包括 AWVS、Burp Suite 等。
AWVS(Acunetix Web Vulnerability Scanner)是一款知名的 Web 应用漏洞扫描工具,它能够对 Web 应用进行全面的安全检测,包括漏洞扫描、恶意软件检测、网站爬虫等功能。
计算机网络安全漏洞检测技术

计算机网络安全漏洞检测技术在当今数字化时代,计算机网络已经成为人们生活和工作中不可或缺的一部分。
从在线购物到银行交易,从社交媒体到企业运营,几乎所有的活动都依赖于计算机网络的支持。
然而,随着网络的广泛应用,网络安全问题也日益凸显,其中网络安全漏洞是一个关键的威胁。
为了保障网络的安全运行,计算机网络安全漏洞检测技术应运而生。
计算机网络安全漏洞,简单来说,就是计算机系统或网络中存在的弱点或缺陷,这些弱点可能被黑客或恶意攻击者利用,从而导致数据泄露、系统瘫痪、服务中断等严重后果。
因此,及时发现并修复这些漏洞至关重要。
目前,常见的计算机网络安全漏洞检测技术主要包括以下几种:漏洞扫描技术这是一种主动的检测技术,通过自动或半自动的方式,对目标系统进行全面的扫描,以发现可能存在的安全漏洞。
漏洞扫描工具通常会依据预先设定的规则和漏洞库,对系统的端口、服务、软件版本等进行检测,并将检测结果与已知的漏洞特征进行比对,从而确定是否存在漏洞。
漏洞扫描技术的优点是效率高、覆盖范围广,可以快速发现常见的漏洞类型。
但它也存在一定的局限性,例如对于一些新出现的、未知的漏洞可能无法有效检测。
入侵检测技术该技术主要用于实时监测网络中的活动,通过对网络流量、系统日志等数据的分析,识别出可能的入侵行为。
入侵检测系统可以分为基于主机的入侵检测系统和基于网络的入侵检测系统。
基于主机的入侵检测系统主要监测单个主机的活动,而基于网络的入侵检测系统则侧重于监测整个网络的流量。
入侵检测技术能够及时发现正在进行的攻击,并发出警报,以便采取相应的措施进行应对。
然而,入侵检测技术也可能会产生误报或漏报的情况,需要不断优化和改进检测算法。
模糊测试技术这是一种通过向目标系统输入大量的随机数据或异常数据,观察系统的反应,以发现潜在漏洞的技术。
模糊测试技术可以有效地发现那些由于编程错误或异常处理不当而导致的漏洞。
例如,如果一个系统在处理特定类型的异常输入时崩溃或出现错误,那么就可能存在安全漏洞。
网络安全漏洞扫描工具的使用方法与技巧

网络安全漏洞扫描工具的使用方法与技巧随着互联网的普及和应用的广泛,网络安全问题也日益严重。
恶意黑客、网络病毒和网络攻击事件的频繁发生对网络安全提出了新的挑战。
为了及时发现和修复可能存在的安全漏洞,网络安全专家和系统管理员需要借助各种网络安全工具来进行漏洞扫描。
本文将介绍网络安全漏洞扫描工具的使用方法和一些技巧,帮助读者有效提高网络安全。
一、什么是网络安全漏洞扫描工具网络安全漏洞扫描工具是一种软件应用程序,通过自动扫描网络中的设备、操作系统和应用程序,寻找潜在的安全漏洞。
这些工具可以扫描网络设备的配置文件、漏洞数据库和漏洞签名等信息,发现潜在的安全威胁并提供相应的修复建议。
二、常用的网络安全漏洞扫描工具1. Nessus:Nessus是一款功能强大的漏洞扫描工具,被广泛用于发现、评估和缓解网络上的安全漏洞。
它可以自动进行扫描,并提供详细的漏洞报告。
Nessus支持多种操作系统和应用程序的扫描,并提供实时更新的漏洞库。
2. OpenVAS:OpenVAS是一个开源的网络漏洞扫描工具,提供了强大的漏洞检测和管理功能。
它能够对目标主机进行端口扫描、服务探测和漏洞扫描,并生成详细的报告。
3. Nmap:Nmap是一个流行的网络扫描工具,用于发现和评估网络上的主机和服务。
它可以探测目标主机开放的端口,确定主机的操作系统类型,并执行一些高级的漏洞探测。
4. Qualys:Qualys是一个云端漏洞扫描服务,提供全面的漏洞管理和安全合规性解决方案。
它可以扫描网络内外的设备,并提供实时漏洞报告。
三、网络安全漏洞扫描工具的使用方法1. 确定扫描目标:在使用任何漏洞扫描工具之前,首先要确定扫描的目标范围。
这包括要扫描的IP地址范围、域名和网络设备。
明确的扫描目标可以提高扫描的准确性和效率。
2. 配置扫描参数:根据实际需求和网络环境,配置合适的扫描参数。
这包括扫描的深度、速度、端口范围和服务类型等。
通常情况下,扫描深度和速度之间存在一定的权衡。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ActiveX控件中不安全方法漏洞的检测技术摘要:针对ActiveX漏洞被攻击者频繁地使用来攻击系统和由不安全方法引起的漏洞可能会允许远程攻击者任意地访问本地资源的问题,介绍了检查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_ROOT\CLSID来读出本机已经注册的CLSID。
ActiveX控件并不能直接使用,它首先需要在目标机器中进行注册,有很多种方法可以注册控件,除了所有的属于IE和操作系统的控件以外,新安装控件可以通过应用程序的安装注册一些控件;还可以通过网页中<OBJECT>标签中的CODEBASE属性,从指定位置下载并注册控件;另外通过DOS命令regsvr32也能手动注册一个控件。
1.2 脚本安全一个ActiveX控件可以被标注为脚本安全SFS(Safe For Scripting),这意味着IE可以通过脚本语言如JavaScript或VBScript调用控件,并设置或获得它的属性。
有两种方法可以描述一个控件是脚本安全的,第一种方法是使用组件目录管理(Component Categories Manager)来在系统注册表中创建合适的项目。
可以通过在这册表编辑器中查看“HKEY_CLASSES_ROOT\CLSID\<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_MACHINE\SOFTWARE\Microsoft\InternetExplorer\ActiveX Compatibility\(2)64位IE/64位Windows:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InternetExplorer\ActiveX Compatibility\ (3)32位IE/64位Windows:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\ActiveX 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) 根据函数名字推测可能具有使用远程文件更新本地文件的作用,符合威胁列表中第一条威胁。