论文部分内容阅读
安全漏洞是指信息系统在设计、实现或者运行管理过程中存在的缺陷或不足,从而使攻击者能够在未授权的情况下利用这些缺陷破坏系统的安全策略。它是研究安全问题的生命线,是网络攻击和防御的核心问题。随着移动通信技术和互联网技术的快速发展和相互融合,安全漏洞导致的信息泄露、金钱损失等问题愈加严重,如何发现漏洞、修复漏洞、加强防御等问题成为安全研究的热门领域。全文从安全漏洞的角度针对系统和应用的协议漏洞挖掘和相关安全技术进行研究,主要研究工作可分成五个部分,概述如下:第一部分:首先,本文基于模糊测试(Fuzzing)技术设计了一个协议漏洞挖掘体系,完整的概述了协议漏洞挖掘的过程和方法,包括漏洞和目标调研、测试用例生成、测试、监控、调试、漏洞分析和利用、漏洞上报、漏洞修复等,为协议漏洞挖掘工作提供了理论指导和设计标准。其次,针对当前通用协议测试框架存在的测试用例构造策略单一、单维、监控和调试等问题,本文设计了一个协议漏洞挖掘框架GPVDF(General Protocol Vulnerability Discovering Framework),并提出种测试用例构造和测试算法GTFTCG (General Three-stage Fuzzing Test Cases Generator)。与相关工作对比,该算法使用手工分析和构造、基于生成和变异结合的多维策略构造测试用例,改善了单一和单维的测试用例构造策略,并且在测试之前加入了手工分析RFC文档和已知漏洞数据等知识,在测试之中加入了数据包的校验和模块,大大提高了测试用例的接受率和有效性,提高了漏洞挖掘的检出率。在测试过程中,使用手工分析和测试技术,该技术能够检测Fuzzing技术无法发现的安全漏洞。此外,根据不同的数据字段类型,设计了一个公共的畸形数据库,为协议或文件格式的测试用例构造提供了数据来源。第二部分:针对当前路由器安全研究工作存在单一的测试用例构造策略、缺少监控和调试、通用性差、测试成本高等的问题,基于GPVD框架设计了一个针对路由器和应用程序的通用协议漏洞挖掘架构,并开发了一个工具GRPFuzzer(General Router Protocol Fuzzer)。首先,通过调研目标协议和协议相关的历史漏洞知识,根据GTFTCG算法构造测试用例和测试,改善了测试用例构造策略。其次,在测试过程中,使用Dynamips模拟路由器等网络设备,减少了测试的硬件成本。再次,采用发送数据包、监控CPU和日志等多种方式检测路由器和软件的异常,能够检测拒绝服务漏洞、路由器重启、进程僵死等异常,提高了漏洞检出率;同时,基于Dynamips-mod和OllyDBG开发的调试模块可以分别调试路由器和相关应用程序,解决了相应的调试问题。最后,针对SNMP(Simple Network Management Protocol)协议,分析协议的各个字段和己知漏洞知识,构造了SNMP协议的测试用例库,选择Cisco和华为的两款核心路由器,以及Wireshark和科来网络分析系统两款软件进行测试,发现了一些大量的拒绝服务漏洞。第三部分:针对当前NFC(Near Field Communication)安全研究工作存在的自动化程度低、生成策略单一、缺少监控手段、监控手段单一、移植性差等问题,根据GPVD框架设计了一个NFC应用安全漏洞挖掘系统GNFCVulFinder。该系统采用GTFTCG算法构造测试用例,解决了测试用例构造策略单一的问题,优化了测试用例构造策略:采用数据包逆向和数据包嗅探两种手段辅助分析和构造数据报文,不仅有助于分析被测协议的字段,还能够检验测试用例的正确性和一致性,有助于提高测试用例的有效性;基于读卡器ACR ACS 122U的标签模拟和基于进程控制的触碰操作模拟,实现了测试的自动化,并支持多个系统平台,解决了移植差的问题;采用logcat/Xapspy和进程操作两种方式监控测试目标,能够详细监测目标的日志和异常状态,解决了目标异常监控的问题;针对使用NFC数据交换格式(NFC Data Exchange Format)协议的NFC系统和应用程序,构造了一个NDEF测试用例数据库,可以用于不同操作系统平台下各类NFC系统和应用的测试,节省了测试用例构造的时间开销和人力成本。针对Android、Windows Phone等智能终端系统和应用程序进行了系统化的测试,发现了WiFi打开、蓝牙打开、手电筒打开、屏幕亮度、拒绝服务等大量的安全漏洞,并提出了相应的建议和解决措施。第四部分:针对发现的己知和未知漏洞,分別提出不同的利用方式和修复方式,并基于NFC技术提出一种新的攻击模型和相应的防御系统。针对发现的SNMP漏洞,通过网络Socket技术实现了针对路由器和应用程序的漏洞利用程序,并提出过滤特殊字符、限速、阻塞端口、编写ACL表等多种修复措施。针对发现的NDEF漏洞,提出了“NFC测试程序直接加载”、“NFC应用程序写入标签”、“NFC设备模拟标签”三种漏洞利用方式;根据协议解析、设计缺陷、泛洪攻击等漏洞类型,分别提出了相应的修复措施。利用URL跳转漏洞、Android系统设计缺陷、己知、VebView漏洞,首次提出一种新的基于NFC技术的攻击形式和攻击模型,实现远程执行任意代码的目的;针对新的攻击形式,从被动防御的角度提出相关漏洞修复的措施,从主动防御的角度设计了恶意URL主动防御架构,并利用支持向量机(Support Vector Machine)算法开发了恶意URL检测系统,在执行NFC标签内容前检测URL的恶意性,为近场通信提供了安全保证。第五部分:针对URL检测系统无法检测应用程序的行为,提出一种新的Android恶意行为检测算法。该算法使用系统调用序列和控制流序列表征Android应用程序的行为,能够在一定程度上抵御混淆和加密攻击,并能够防止因未触发恶意行为造成的漏报。同时,该算法使用已知的Android样本数据集,训练出一个恶意行为特征基和阈值,并通过归一化压缩距离算法比较应用程序的相似度判断应用程序的恶意性,减少了恶意软件的比较次数和比较时间,提高了检测速度和效率。最后,根据提出的算法,开发了一个Android恶意行为检测系统SCADet,并在华为U8860真机上进行分类,证明了系统的有效性。