密码与安全新技术专题之漏洞挖掘

学号 2018-2019-2 《密码与安全新技术专题》第6次作业

课程:《密码与安全新技术专题》
班级: 1892
姓名: 李熹桥
学号:20189214
上课教师:王志强
上课日期:2019年5月7日

1.本次讲座的学习总结

1.1安全漏洞介绍

  • 安全漏洞定义:
    指信息系统在设计、实现或者运行管理过程中存在的缺陷或不足,从而使攻击者能够在未授权的情况下利用这些缺陷破坏系统的安全策略。
  • 安全漏洞事件
    • HeartBlood漏洞
    • Bash漏洞
    • 脱裤门:天涯、CSDN、人人、多玩、cnbeta、QQ关系数据库、携程;
    • 棱镜门

1.2漏洞挖掘技术

常见漏洞挖掘技术如下:手工测试、补丁比对、程序分析、二进制审核、模糊测试

  1. 手工测试:由测试人员手工分析和测试被测目标,发现漏洞的过程,是最原始的漏洞挖掘方法。
    • 优点:人的主观能动性,可以根据经验找到很多不明显、复杂不易见的漏洞。
    • 缺点:无规律可循、不可大规模进行等。
  2. 补丁对比:一种通过对比补丁之间的差异来挖掘漏洞的技术。补丁技术是实际漏洞挖掘中运用得十分普遍,对于定位漏洞的具体位置、寻找漏洞解决方式具有十分积极的现实意义。
    • 优点:发现速度快
    • 缺点:已知漏洞
    • 常用工具:PatchDiff2、bindiff
  3. 程序分析:是指在不运行计算机程序的条件下,通过词法分析、语法分析、语义分析、控制流分析、污点分析等技术对程序代码进行扫描,验证代码是否满足规范性、安全性等指标的一种代码分析技术。
    密码与安全新技术专题之漏洞挖掘_第1张图片
    • 优点:漏洞检测范围大,覆盖率达100%,自动化程度高
    • 缺点:存在漏报和误报的可能性
    • 数据流分析:Fortify SCA、Coverity Prevent、FindBugs等
    • 污点分析:Pixy、TAJ(基于WALA)
    • 符号执行:Clang、KLEE
    • 模型检测:BLAST、MAGIC、MOPS
  4. 动态程序分析:在运行计算机程序的条件下,验证代码是否满足规范性、安全性等指标的一种代码分析技术。
    • 一般通过插桩技术分析程序的异常行为。插桩技术是指在保证被测程序逻辑完整性的基础上在程序的关键位置插入一些“桩”,即加入一些测试代码,然后执行插桩后的程序,通过“桩”的执行获取程序的控制流和数据流信息,进而分析程序的异常行为。
    • 优点:自动化程度高、覆盖率较高
    • 缺点:漏报和误报、冗余代码导致时间开销增大
    • 工具: Android——Xposed
  5. 二进制审核:源代码不可得,通过逆向获取二进制代码,在二进制代码层次上进行安全评估
    • 存在问题:逆向会导致信息丢失,理解困难,甚至引入逻辑错误
    • 二进制及编辑工具: IDA Pro、Ollydbg、UltraEdit、Hex Workshop以及WinHex
  6. 模糊测试:通过向被测目标输入大量的畸形数据并监测其异常来发现漏洞
    • 关键:测试用例构造,自动化
    • 优点:无需源码、误报低、自动化程度高
    • 缺点:覆盖率低
    • 工具:Peach、Sulley、Autodafe、SPIKE等

1.3漏洞挖掘示例

1.3.1 路由器协议漏洞挖掘

  1. 系统架构:
    密码与安全新技术专题之漏洞挖掘_第2张图片

  2. 攻击结果如下:
    • 当远程向路由器的161端口发送大量畸形SNMP Get/Set请求报文时,畸形的数据包中包含长格式化字符串“%s…”的SNMPv1 GetRequest报文, Cisco路由器和华为路由器的进程Agent出现CPU使用率异常,分别为98%和100%。
    • 当远程发送SNMP空数据包时, Cisco路由器和华为路由器的CPU使用率出现异常,但远小于100%,发生“轻度拒绝服务”。该异常并不会造成路由器拒绝服务,但会导致路由器产生一定的丢包和网络的不稳定,并对网络的性能造成影响。
    • 当远程发送一个畸形ASN.1/BER编码(超长字符串)的SNMP数据包时, wireshark捕获并解析数据包,导致wireshark 1.4等多个版本栈溢出,导致空指针引用并崩溃。此漏洞是由国家计算机网络入侵防范中心渗透测试小组使用PROTOS工具发现(CVE-2010-3445),在本次实验中,使用生成的畸形数据包重现了该漏洞,使用Ollydbg调试发现ESP空指针异常。
    • 当向SNMP协议端口(161)远程发送一个使用“\x”等字符构造的畸形UDP数据包, 科来网络分析系统7.2.1及以前版本均会因边界条件检查不严导致崩溃,该漏洞的bugtraq ID为49621, CNNVD编号为CNNVD-201109-233。

1.3.2 NFC漏洞挖掘

  1. 系统架构
    密码与安全新技术专题之漏洞挖掘_第3张图片
  2. 攻击结果如下:
    • NFC服务拒绝服务,Google原生漏洞,影响Android4.4以下支持NFC的所有版本,此外,包含三星、华为、小米、联想等定制系统。
    • 打开手电筒,华为、小米等定制系统设计缺陷,在启动com.android.systemui的包时,可导致MIUI系统在触碰该标签时自动打开系统手电筒。
    • 打开蓝牙,逻辑漏洞,使用系统版本为Android4.1.3以下等多个版本的NFC手机触碰蓝牙配对标签,导致蓝牙被自动打开。
    • 打开wifi,逻辑漏洞,受影响的系统是MIUI系统5.30等多个版本。使用手机触碰包含wifi连接报文的标签后,系统wifi会被自动打开。
      -应用程序拒绝服务漏洞,报文解析错误
    • 屏幕亮度漏洞,设计缺陷,使用NFC手机触碰标签可以将屏幕亮度设置在0-255的任意值,突破应用程序的亮度值限制(5-100)。

2.学习中遇到的问题及解决

  • 问题1: 拒绝服务有哪几类
  • 问题1解决方案:
    拒绝服务的分类
  1. Synflood: 该攻击以多个随机的源主机地址向目的主机发送SYN包,而在收到目的主机的SYN ACK后并不回应,这样,目的主机就为这些源主机建立了大量的连接队列,而且由于没有收到ACK一直维护着这 些队列,造成了资源的大量消耗而不能向正常请求提供服务。
  2. Smurf:该攻击向一个子网的广播地址发一个带有特定请求(如ICMP回应请求)的包,并且将源地址伪装成想要攻击的主机地址。子网上所有主机都回应广播包请求而向被攻击主机发包,使该主机受到攻击。
  3. Land-based:攻击者将一个包的源地址和目的地址都设置为目标主机的地址,然后将该包通过IP欺骗的方式发送给被攻击主机,这种包可以造成被攻击主机因试图与自己建立连接而陷入死循环,从而很大程度地降低了系统性能。
  4. Ping of Death:根据TCP/IP的规范,一个包的长度最大为65536字节。尽管一个包的长度不能超过65536字节,但是一个包分成的多个片段的叠加却能做到。当一个主机收到了长度大于65536字节的包时,就是受到了Ping of Death攻击,该攻击会造成主机的宕机。
  5. Teardrop:IP数据包在网络传递时,数据包可以分成更小的片段。攻击者可以通过发送两段(或者更多)数据包来实现TearDrop攻击。第一个包的偏移量为0,长度为N,第二个包的偏移量小于N。为了合并这些数据段,TCP/IP堆栈会分配超乎寻常的巨大资源,从而造成系统资源的缺乏甚至机器的重新启动。
  6. PingSweep:使用ICMP Echo轮询多个主机。
  7. Pingflood: 该攻击在短时间内向目的主机发送大量ping包,造成网络堵塞或主机资源耗尽

3.本次讲座的学习感悟、思考等)

看了几篇论文发现,近几年软件漏洞不断增加,因此自动化漏洞检测是十分重要的。有些算法是将源代码、类名、方法等形成特征,进行二分类。有些使用传统的SVM分类器,有些使用新的神经网络来提取特征。目前漏洞检测的错误还有一定的空间有待提高,所以很多方法还是需要结合一些传统的方法。软件的漏洞增多的同时,硬件漏洞也不容忽视,需要不断扫描改正,防止漏洞引发大范围的影响。

4.XX最新研究现状

  • Vulnerability Disclosure in the Age of Social Media: Exploiting Twitter for Predicting Real-World Exploits
    论文从数据收集、分析Vulnerability categories,生成Classifier feature selection、训练模型介绍了Twitter探测仪,对漏洞相关的信息进行定量和定性探索。又针对我们的问题引入了一个威胁模型我们评估了探测器的鲁棒性对抗性干扰。 除了响应优先级之外,本文的检测技术还可用于网络保险的风险建模,并突出了攻击受害者提供的信息的价值。

  • Time-related vulnerability lookahead extension to the CVE
    针对漏洞的软件扫描数据库是所有人都需要的常规活动之一。信息安全管理标准。然而,扫描系统本身的性质是反应性的;必须找到一个漏洞,然后宣布,有(有时没有)修复。然而,有一些信息是重要的、可靠的,并且很容易获得,但是不在漏洞数据库中表示。这种信息是与时间相关的弱点,它意味着随着时间的推移,系统的风险越来越大。
    论文介绍了四种类型的信息,如过时的平台日期,签名版本的过期,系统运行时间,以及与时间相关的软件到期日的漏洞,并扩展了主动的漏洞趋势分析,可以通过CVE标准引用,但有更多的细节或扩展,称为与时间相关的CVE扩展漏洞(T-CVE)。
    为了评估T-CVE的严重性,论文提出了基于通用漏洞评分系统(CVSS)实现的与时间相关的漏洞评分系统(TVSS)。TVSS提供了一个评分T-CVE的框架,包括以与时间相关的方式衡量影响水平的指标,该指标与组织的业务或任务依赖于每种类型的T-CVE的风险密切相关。对于评分计算,系统应具有表VII中的准备情况信息,以支持执行漏洞扫描。最后论文对T-CVE进行了趋势分析。

  • Automatic Detection and Correction of Vulnerabilities using Machine Learning
    论文提出了Bug Terminating Bot(BTB)是一种开发为Web应用程序的漏洞扫描程序,用于查找和修复目标Web应用程序中的漏洞。btb使用机器学习帮助提高性能。btb使用SVM机器学习算法分析结果。BTB原型作为Web应用程序实现,使用Visual Studio 2015集成开发环境
    (ide)使用C作为编程语言。BTB使用作为后端数据库的SQL Server 。BTB发现了Web应用程序中的漏洞,并提出了有助于消除漏洞的潜在修复程序。BTB使用支持向量机学习算法来分析结果。
    论文实现了BTB程序,使用c#作为编程语言,使用visual studio 2015集成开发环境(IDE)将BTB原型实现为Web应用程序,使用SQLserver作为后端数据库。
    如果客户端正在使用任何内容管理系统(CMS),如WordPress,Joomla、Drupal等,扫描仪会自动检测到它。并执行特定于代理的扫描。扫描后执行,生成扫描报告。将所有结果都存储在数据库中,并基于集中修复漏洞的客户端优先级服务器为重新扫描功能确定了一个有效的算法。扫描仪生成的报告将作为输入提供。客户端可以针对该漏洞采取适当的修复。
  • A study on software vulnerability prediction model
    本文介绍了两种类型的软件漏洞模型分别为基于软件度量的软件漏洞预测模型和使用文本分析和软件度量的组合软件漏洞预测模型。
    软件是程序和相关数据的集合。因此,由于资源有限,无法对所有软件组件进行详细的漏洞检查。开发人员只需将检查重点放在软件的易受攻击性上。因此,需要一种机制来检测软件中的易受攻击的文件。该解决方案是一种软件漏洞预测模型。软件漏洞预测模型将软件组件二分类(如模块,文件等)软件漏洞预测模型基于机器学习。分类器经过训练,具有已知的漏洞及其功能。数据库来自于某些公共数据库(如NVD)或来自组织存储库的数据。在软件漏洞预测模型中,使用软件组件的特征到相应状态(易受攻击或不易受攻击)的映射来训练模型。在测试期间,软件组件Ft的特征被作为模型的输入给出,用于预测该组件的漏洞状态Vt。架构为下图:
    密码与安全新技术专题之漏洞挖掘_第4张图片
    在基于文本分析的方法中,完成源代码的文本分析。每个组件都表示为源代码中的一组术语,即令牌,它在源代码中的出现次数。这些令牌及其计数用于构建预测模型。软件的源代码用作预测模型的输入。源代码转换为令牌和频率。在Android中会形成如下示意图:

    论文中是一个两阶段方法,第一阶段六个基础分类器产生输出,在第二阶段组合第一阶段这些输出然后与如那件度量结合。不同的数据集,需要重新训练。对于各种数据集,这些方法产生的精度超过70%。组合方法比单独方法产生更好的结果。分类错误是软件漏洞预测中的一个重要问题。目前还有超过20%的分类错误。
  • Exploiting Trustzone on Android
    本文讲述了一步一步渗透TrustZone的真实故事。 作者的目标是华为HiSilicon使用的可信执行环境(TEE)的实现。 首先,作者发现了在正常世界中获得内核级权限的漏洞。 并发现任何本地应用程序都能够在HiSilicon的TEE中执行shellcode。 这些漏洞影响了华​​为HiSilicon SoC芯片组的所有华为设备。
    利用这些漏洞,本地应用程序能够获取指纹图像或其他加密数据,禁用调制解调器图像和TA的签名验证,将任何模块加载到TEE并修改efuse数据。 即使TrustZone是为解决安全问题而设计的,但仍然可以利用具有安全性问题的实现。华为于2015年5月将CVE ID分配为CVE-2015-4421和CVE-2015-4422。

你可能感兴趣的:(密码与安全新技术专题之漏洞挖掘)