20189224 2018-2019-2 《密码与安全新技术专题》第六次作业
课程:《密码与安全新技术专题》
班级: 1892
姓名: 史馨怡
学号:20189224
上课教师:王志强
上课日期:2019年4月23日
必修/选修: 选修
1.本次讲座的学习总结
安全漏洞:是指信息系统在设计、实现或者运行管理过程中存在的缺陷或不足,从而使攻击者能 够在未授权的情况下利用这些缺陷破坏系统的安全策略
常见漏洞挖掘技术
手工测试:由测试人员手工分析和测试被测目标,发现漏洞的过程,是最原始的漏洞挖掘方法
优点:利用人的主观能动性,根据经验找到很多不明显、复杂不易见的漏洞。
缺点:没有规律可循、不可大规模进行等。
补丁对比:一种通过对比补丁之间的差异来挖掘漏洞的技术。
优点:发现速度快。
缺点:只能发现已知漏洞,无法发现新漏洞。
常见工具:PatchDiff2、 bindiff。
程序分析:静态和动态
静态程序分析:是指在不运行计算机程序的条件下,通过词法分析、语法分析、语义分析、控制流分析、污点分析等技术对程序代码进行扫描,验证代码是否满足规范性、安全性等指标的一种代码分析技术。
优点:覆盖率100%,自动化程度高
缺点:漏报和误报(RICE,程序分析问题不可判定)
工具:
数据流分析:Fortify SCA、Coverity Prevent、 FindBugs等
污点分析:Pixy、TAJ(基于WALA)
符号执行:Clang、KLEE
模型检测:BLAST、MAGIC、MOPS
动态程序分析:在运行计算机程序的条件下,验证代码是否满足规范性、安全性等指标的一种代码分析技术。一般通过插桩技术(插桩技术:在保证被测程序逻辑完整性的基础上在程序的关键位置插入一些“桩”,即加入一些测试代码,然后执行插桩后的程序,通过“桩”的执行获取程序的控制流和数据流信息,进而分析程序的异常行为。)分析程序的异常行为
优点:自动化程度高、覆盖率较高
缺点:漏报和误报(RICE,程序分析问题不可判定;冗余代码增加了时间开销
工具:
Android:Xposed
二进制审核:源代码不可得,通过逆向获取二进制代码,在二进制代码层次上进行安全评估
优点:同静态审核
缺点:逆向导致信息丢失,理解困难,甚至引入逻辑错误。
二进制及编辑工具:
IDA Pro、Ollydbg、UltraEdit、 Hex Workshop以及WinHex
模糊测试:通过向被测目标输入大量的畸形数据并监测其异常来发现漏洞
关键:测试用例构造,自动化。
优点:无须源码、误报低、自动化程度高
缺点:覆盖率低
工具:Peach、Sulley、Autodafe、SPIKE等
漏洞挖掘技术研究进展
发展方向:AI——机器学习——深度学习
(1)二进制程序函数识别
二进制程序函数识别是二进制分析的基础,对于软件漏洞分析与修复,甚至恶意软件检测、协议逆向等都至关重要。由于二进制代码缺少高级语言程序中的信息,函数的识别往往比较困难,现有的反汇编分析工具具有识别正确率低的缺陷。
使用循环神经网络算法RNN进行二进制程序函数识别的模型训练。
(2)测试用例生成
在软件漏洞挖掘中,构造代码覆盖率高或脆弱性导向型的测试输入能提高漏洞挖掘的效率和针对性。
可以使用机器学习来指导生成更高质量的测试输入样本
(3)测试用例筛选
(4)路径约束求解。
模糊测试,特别是代码覆盖率制导的模糊测试(如 AFL),侧重于筛选可以覆盖新路径的样本为种子文件 ,但对种子文件变异时并没有充分利用程序数据流等 信息指导变异,这使得变异盲目低效,生成样本冗余.具备路径约束求解能力是符号执行比模糊测试等漏洞挖掘技术更先进的体现,也使得符号执行在理论上 具备了系统性探索程序执行路径的能力约束求解
问题:路径爆炸,效率较低
Angora:采用污点追踪测试输入中影响条件分支的字节,然后使用梯度下降的方式对变异后生成的路径约束进行求解
漏洞挖掘示例
(1)路由器协议漏洞挖掘
1)当远程向路由器的161端口发送大量畸形SNMP Get/Set请求报文时,畸形的数据包中包含长格式化字符串“%s…”的SNMPv1 GetRequest报文, Cisco路由器和华为路由器的进程Agent出现CPU使用率异常,分别为98%和100%。
2)当远程发送SNMP空数据包时, Cisco路由器和华为路由器的CPU使用率出现异常,但远小于100%,发生“轻度拒绝服务”。该异常并不会造成路由器拒绝服务,但会导致路由器产生一定的丢包和网络的不稳定,并对网络的性能造成影响。
3)当远程发送一个畸形ASN.1/BER编码(超长字符串)的SNMP数据包时, wireshark捕获并解析数据包,导致wireshark 1.4等多个版本栈溢出,导致空指针引用并崩溃。此漏洞是由国家计算机网络入侵防范中心渗透测试小组使用PROTOS工具发现(CVE-2010-3445),在本次实验中,使用生成的畸形数据包重现了该漏洞,使用Ollydbg调试发现ESP空指针异常。
4)当向SNMP协议端口(161)远程发送一个使用“x”等字符构造的畸形UDP数据包, 科来网络分析系统7.2.1及以前版本均会因边界条件检查不严导致崩溃,该漏洞的bugtraq ID为49621, CNNVD编号为CNNVD-201109-233。
(2)NFC漏洞挖掘
目标选择:NFC手机系统和应用
1)NFC服务拒绝服务,Google原生漏洞,影响Android4.4以下支持NFC的所有版本,此外,包含三星、华为、小米、联想等定制系统。
2)打开手电筒,华为、小米等定制系统设计缺陷,在启动com.android.systemui的包时,可导致MIUI系统在触碰该标签时自动打开系统手电筒。
3)打开蓝牙,逻辑漏洞,使用系统版本为Android4.1.3以下等多个版本的NFC手机触碰蓝牙配对标签,导致蓝牙被自动打开。
4)打开wifi,逻辑漏洞,受影响的系统是MIUI系统5.30等多个版本。使用手机触碰包含wifi连接报文的标签后,系统wifi会被自动打开。
5)应用程序拒绝服务漏洞,报文解析错误
6)屏幕亮度漏洞,设计缺陷,使用NFC手机触碰标签可以将屏幕亮度设置在0-255的任意
2.学习中遇到的问题及解决
- 常见的安全漏洞有哪些?
- 解决方案:
常见的安全漏洞主要包括:网络中的协议漏洞、操作系统的漏洞、应用软件系统的漏洞、配置不当引起的漏洞、管理方面引起的漏洞
网络协议中的漏洞
TCP/IP协议不提供安全保证,网络协议的开放性方便了网络互连,同时也为非法入侵者提供了方便。非法入侵者可以冒充合法用户进行破坏,篡改信息,窃取报文内容。
操作系统的漏洞
UNIX系统可执行文件目录如/bin/who,可由所有的用户进行读访问,这就违背了"最少特权"的原则。有些用户可以从可执行文件中得到其版本号,从而知道了它会具有什么样的漏洞。如通过Telnet就可知道SENDMAIL版本号。
应用软件系统的漏洞
任何一款软件由于设计上的缺陷都或多或少存在一定的漏洞,这种漏洞可以造成系统本身的脆弱。通常该漏洞分为两种:一是由于操作系统本身设计缺陷造成的安全漏洞,并影响到运行在该系统上的应用程序;二是应用程序本身设计漏洞。如NT和WIndows95机上的所有浏览器,都有一个相似的弱点,对于一个HTML 页上的超级链接,浏览器都首先假设该链接是指向本地机器上的一个文件。如果这台机器是一个SMB(指服务器消息块)服务器,它将随意发送用户的名字和口令。这种对身份验证的自动反应和发送对用户来说,是完全透明的,用户根本不知道什么事情发生。
配置不当引起的漏洞
由于安全策略设置的不完整,系统有时候会在安全策略未发挥作用的时候运行,而管理人员很难发现,直到系统出现问题才有所觉察。
管理方面引起的漏洞
管理制度的缺失,管理人员失误等会造成漏洞的发生。
3.本次讲座的学习感悟
本次讲座中王老师为我们讲解了漏洞挖掘的概念技术及研究现状,安全漏洞是网络攻击和防御的关键点,将安全漏洞挖掘与机器学习深度学习技术结合是未来的发展趋势。这次讲座由于身体原因没有现场听到老师的讲解十分遗憾,但是老师的讲解ppt十分详细清晰,让我对漏洞挖掘的技术和发展方向都有了更多的了解,非常感谢老师的讲解。
4.漏洞挖掘问题最新研究现状
- **An integration testing framework and evaluation metric for vulnerability mining methods[J].
- China Communications, 2018, 15(2):190-208.
- Jin L, Chen J, Huang M, et al.**
研究进展:
软件漏洞挖掘是检测软件中是否存在漏洞的重要方法,也是确保信息系统安全的重要途径。随着信息技术和软件产业的快速发展,大多数软件在投入使用前还没有经过严格的测试,因此攻击者会利用软件中隐藏的漏洞。因此,积极检测信息系统安全维护中的软件漏洞对我们具有重要意义。文中研究了一些常用的漏洞检测方法和检测工具,并分析了每种方法在不同场景下的优缺点并在漏洞评估中为不同的采矿方法设计了一套评价标准,还提出并设计了一个集成测试框架,在该框架上可以测试典型的静态分析方法和动态挖掘方法并进行比较,从而可以对实验结果进行直观的比较分析,实验结果表明最终的测试结果将作为一种指导形式,以帮助选择最合适和有效的方法或漏洞检测活动中的工具 - **A Vulnerability Model Construction Method Based on Chemical Abstract Machine[J].
- Wuhan University Journal of Natural Sciences, 2018, 23(2):150-162.
- Li X , Chen J , Lin Z , et al. **
研究进展:
没有有效的模型来揭示漏洞的原因和特征。 文章提出了一种漏洞模型构建方法,用于实现漏洞属性的描述和漏洞模型的构建。 构建了基于化学抽象机(CHAM)的漏洞模型,实现了漏洞模型的CHAM描述,并讨论了漏洞模型的框架。 通过 进行案例研究验证了所提出模型的可行性和有效性。 此外,还基于所提出的漏洞模型设计并实现了原型系统。 实验结果表明,该模型在检测软件漏洞方面比其他方法更有效。 - ** Software vulnerability: Definition, modelling, and practical evaluation for e-mail transfer software[J].
- International Journal of Pressure Vessels and Piping, 2006, 83(4):256-261.
- Kimura M .**
研究进展:
文章提出了一种定量评估软件漏洞的方法。通过扩展IPO(输入 - 程序 - 输出)模型的概念,定义了软件漏洞并构建随机模型。并通过分析从其发布说明中收集的实际安全漏洞数据来评估邮件发送系统的软件漏洞。此外文章还展示了估计的软件可靠性与分析系统的脆弱性之间的关系。 - **Hypothesizing and reasoning about attacks missed by intrusion detection systems[J].
- ACM Transactions on Information and System Security, 2004, 7(4):591-627
- Ning P , Xu D .**
研究进展:
在过去几年中已经提出了几种警报关联方法,以从入侵检测系统(IDS)报告的低级入侵警报构建高级攻击场景。但是,所有这些方法都严重依赖于底层IDS,并且无法处理IDS错过的攻击。为了提高入侵警报关联的性能并减少漏攻的影响,文章提出了一系列技术来假设和推理IDS可能遗漏的攻击。此外文章还讨论了推断假设攻击的属性值,通过原始审计数据验证假设攻击以及整合假设攻击以生成简明攻击场景的技术。文章的实验结果证明了这些技术在构建高级攻击场景中的潜力。
参考资料
- Jin L, Chen J, Huang M, et al. An integration testing framework and evaluation metric for vulnerability mining methods[J]. China Communications, 2018, 15(2):190-208.
- Li X , Chen J , Lin Z , et al. A Vulnerability Model Construction Method Based on Chemical Abstract Machine[J]. Wuhan University Journal of Natural Sciences, 2018, 23(2):150-162.
- Kimura M . Software vulnerability: Definition, modelling, and practical evaluation for e-mail transfer software[J]. International Journal of Pressure Vessels and Piping, 2006, 83(4):256-261.
- Ning P , Xu D . Hypothesizing and reasoning about attacks missed by intrusion detection systems[J]. ACM Transactions on Information and System Security, 2004, 7(4):591-627.
- Ikeda, Kazuki. [Advances in Computers], || Security and Privacy of Blockchain and Quantum Computation[J]. Advances in Computers, 2018.