课程:《密码与安全新技术专题》
班级: 1892班
姓名: 李炀
学号:20189215
上课教师:谢四江
上课日期:2019年5月7日
必修/选修: 选修
1.本次讲座的学习总结
讲座主题:漏洞挖掘及攻防技术
安全漏洞介绍
- 安全漏洞:指信息系统在设计、实现或者运行管理过程中存在的缺陷或不足,从而使攻击者能够在未授权的情况下利用这些缺陷破坏系统的安全策略。
- 安全漏洞是网络攻击和防御的关键点。
- 攻击:根据目标存在的漏洞,编写攻击程序(exploit)。
- 防御:提前挖掘出漏洞,并修复。
- 安全漏洞威胁极大,影响范围极广。
- 安全漏洞危害等级划分以10.0为最高级,表示最具有危害性。
- 安全事件举例
- HeartBlood漏洞
- 2014年9月,Bash软件被曝出存在一系列漏洞,可以导致远程攻击者在有漏洞的系统中执行任意代码。
- 各种脱库事件
- 棱镜门
漏洞挖掘技术
- 常见漏洞挖掘技术如下:
手工测试
补丁比对
程序分析
二进制审核
模糊测试
- 手工测试:由测试人员手工分析和测试被测目标,发现漏洞的过程,是最原始的漏洞挖掘方法。
- 优点:人的主观能动性,可以根据经验找到很多不明显、复杂不易见的漏洞。
- 缺点:无规律可循、不可大规模进行等。
- 补丁对比:一种通过对比补丁之间的差异来挖掘漏洞的技术。
- 优点:发现速度快。
- 缺点:只能发现已知漏洞,无法发现新漏洞。
- 常见工具:PatchDiff2、 bindiff。
- 程序分析:分为静态和动态。
- 静态程序分析:是指在不运行计算机程序的条件下,通过词法分析、语法分析、语义分析、控制流分析、污点分析等技术对程序代码进行扫描,验证代码是否满足规范性、安全性等指标的一种代码分析技术。
漏洞挖掘技术研究进展
漏洞挖掘技术进展方向向着AI、机器学习、深度学习发展。
- 二进制程序函数识别
二进制程序函数识别是二进制分析的基础,对于软件漏洞分析与修复,甚至恶意软件检测、协议逆向等都至关重要。由于二进制代码缺少高级语言程序中的信息,函数的识别往往比较困难,现有的反汇编分析工具具有识别正确率低的缺陷。- 使用循环神经网络算法RNN进行二进制程序函数识别的模型训练。
- 函数相似性检测
- 测试用例生成
- 在软件漏洞挖掘中,构造代码覆盖率高或脆弱性导向型的测试输入能提高漏洞挖掘的效率和针对性。
- 可以使用机器学习来指导生成更高质量的测试输入样本
- 测试用例帅选
- 路径约束求解。
漏洞挖掘示例
- 路由器协议漏洞挖掘
- 系统架构如下
2.学习中遇到的问题及解决
- 问题1:循环神经网络RNN的结构
- 问题1解决方案:
- RNN之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。
- RNN结构图
3.本次讲座的学习感悟、思考等
这次讲座为我们介绍了漏洞挖掘技术,对于漏洞挖掘我一直都比较有兴趣,但是一直感觉没有入门,这次讲座让我对漏洞挖掘的技术和发展方向都有了很多的了解,漏洞挖掘本身也是一项比较有趣味性的工作。安卓平台的Xposed框架我之前也有用过,但应该是系统版本的原因,基本上模块都用不了,以后有机会还是要在自己感兴趣的地方花一些时间。
4.最新研究现状
论文1:Identifying SCADA vulnerabilities using passive and active vulnerability assessment techniques点此查看
作者:Sagar Samtani ; Shuo Yu ; Hongyi Zhu ; Mark Patton ; Hsinchun Chen
会议名称:2016 IEEE Conference on Intelligence and Security Informatics (ISI)
研究进展:
监控和数据采集(SCADA)系统旨在允许人工操作员监督,维护和控制关键基础设施。近年来,SCADA系统与互联网的连接性有所增加。虽然这种连接提供了更高的便利性,但也增加了它们对网络攻击的敏感性。这篇论文研究的目的是利用被动和主动漏洞评估技术来识别支持Internet的SCADA系统的漏洞。
论文收集了物联网搜索引擎Shodan的大型SCADA设备测试平台,并使用Nessus和国家漏洞数据库(NVD)评估其漏洞。
- 被动评估(NVD)显示,1,707/20,461(8.34%)设备包含在NVD中列出的漏洞信息。主动评估(nessus)
- 主动评估结果显示,论文收集的SCADA设备中有4,009/20,461(19.59%)具有“严重”,“高”,“中等”或“低”风险。具体而言,182个设备具有“严重”风险,189个具有“高”风险,2,77个具有“中等”风险,901个具有“低”风险。另外5,101台设备返回了对扫描的信息响应。然而,应该注意的是,Nessus是内部网络扫描工具,由于所扫描的SCADA设备可以在开放的互联网上访问,与这些漏洞相关的风险可能明显高于Nessus所表明的严重程度。
论文能够识别出众多漏洞,包括使用默认用户名和密码以及PLC和HMI等SCADA组件上的过时软件。未来有很多能够扩展的方向,比如在通过在Shodan的设备横幅数据上使用文本和数据挖掘技术,可以从Shodan数据库中识别出超出API提供的附加SCADA设备;还可以进行纵向分析,以了解SCADA漏洞如何随着时间的推移而发生变化和演变。所有这些扩展将有助于更深入地了解物联网上的SCADA漏洞。
论文2:Time-related vulnerability lookahead extension to the CVE点此查看
作者:Thanapon Bhuddtham ; Pirawat Watanapongse
会议名称:2016 13th International Joint Conference on Computer Science and Software Engineering (JCSSE)
研究进展:
论文介绍了四种类型的信息,如过时的平台日期,签名版本的过期,系统运行时间,以及与时间相关的软件到期日的漏洞,并扩展了主动的漏洞趋势分析,可以通过CVE标准引用,但有更多的细节或扩展,称为与时间相关的CVE扩展漏洞(T-CVE)。
为了评估T-CVE的严重性,论文提出了基于通用漏洞评分系统(CVSS)实现的与时间相关的漏洞评分系统(TVSS)。TVSS提供了一个评分T-CVE的框架,包括以与时间相关的方式衡量影响水平的指标,该指标与组织的业务或任务依赖于每种类型的T-CVE的风险密切相关。对于评分计算,系统应具有表VII中的准备情况信息,以支持执行漏洞扫描。最后论文对T-CVE进行了趋势分析。
本篇论文的工作不是要取代CVE,而是对CVE进行扩展。未来的工作将包括其他组件实现,以补充T-CVE,如TVSS评分方程和映射到定性评级量表等。
论文3:Automatic Detection and Correction of Vulnerabilities using Machine Learning点此查看
作者:Robin Tommy ; Gullapudi Sundeep ; Hima Jose
会议名称:2017 International Conference on Current Trends in Computer, Electrical, Electronics and Communication (CTCEEC)
研究进展:
论文提出了Bug Terminating Bot(BTB)是一种开发为Web应用程序的漏洞扫描程序,用于查找和修复目标Web应用程序中的漏洞。BTB发现了Web应用程序中的漏洞,并提出了有助于消除漏洞的潜在修复程序。BTB使用支持向量机学习算法来分析结果。
论文实现了BTB程序,使用c#作为编程语言,使用visual studio 2015集成开发环境(IDE)将BTB原型实现为Web应用程序,使用SQLserver作为后端数据库。
论文根据扫描的时间跨度计算了性能因子。
论文4:A new method to construct the software vulnerability model点此查看
作者:Xiang Li ; Jinfu Chen ; Zhechao Lin ; Lin Zhang ; Zibin Wang ; Minmin Zhou ; Wanggen Xie
会议名称:2017 2nd IEEE International Conference on Computational Intelligence and Applications (ICCIA)
研究进展:
论文通过考虑漏洞的原因和特征,提出了一种新的漏洞模型构建方法。首先分析了软件漏洞的成因和特点,并建立了正式的漏洞模型。根据软件漏洞的原因和特点,建立了漏洞模型,并通过形式化方法推导出软件漏洞。使用软件漏洞数据集验证了所提模型的有效性和效率。此外,还设计并实现了原型系统。实验结果表明,该模型在检测软件漏洞方面比其他方法更有效。
漏洞模型:
论文5:Secure Mobile IPC Software Development with Vulnerability Detectors in Android Studio点此查看
作者:Xianyong Meng;Kai Qian;Dan Lo;Hossain Shahriar;Md Arabin Islam Talukder;Prabir Bhattacharya
会议名称:2018 IEEE 42nd Annual Computer Software and Applications Conference (COMPSAC)
研究进展:
移动应用程序的安全威胁正在爆炸式增长。移动应用程序漏洞和安全缺陷可能为黑客轻松攻击移动应用程序敞开大门。必须在开发生命周期的早期解决安全软件开发问题,而不是在攻击后修复安全漏洞,尽早消除可能的安全漏洞将保护我们的软件,并通过潜在的恶意攻击来缓解安全风险威胁。论文重点关注意图IPC静态代码分析和意图IPC漏洞检测器开发与FindSecurityBugs Android Studio插件,用于Android移动软件开发,基于OWASP 2017十大移动风险,增加安全漏洞检查覆盖率。
本文探讨了Android常见的IPC漏洞,并在Android Studio IDE中展示开发的带有开源FindSecurityBugs插件的IPC探测器。
参考资料
- 深度学习之RNN(循环神经网络)
- 深度学习_RNN循环神经网络,序列模型
- sql脱库的几种方法
- Identifying SCADA vulnerabilities using passive and active vulnerability assessment techniques
- Time-related vulnerability lookahead extension to the CVE
- Automatic Detection and Correction of Vulnerabilities using Machine Learning
- A new method to construct the software vulnerability model
- Secure Mobile IPC Software Development with Vulnerability Detectors in Android Studio