课程:《密码与安全新技术专题》html
班级: 1892算法
姓名: 王子榛api
学号:20189206安全
上课教师:王志强bash
上课日期:2019年5月7日网络
安全漏洞是指受限制的计算机、组件、应用程序或其余联机资源的无心中留下的不受保护的入口点。漏洞是硬件软件或使用策略上的缺陷,他们会使计算机遭受病毒和黑客攻击。架构
是指信息系统在设计、实现或者运行管理过程当中存在的缺陷或不足,从而使攻击者可以在未受权的状况下利用这些缺陷破坏系统的安全策略。机器学习
安全漏洞时网络攻击和防护的关键点,针对安全漏洞,一方面能够进行攻击(根据目标存在的漏洞,编写攻击程序);另外一方面能够进行防护(提早挖掘出漏洞,并进行修复)。网络安全事件层出不穷的根本缘由在于安全漏洞的存在。ide
国家信息安全漏洞函数
基于静态分析的漏洞挖掘技术:
所用工具主要包括:
基于动态程序分析的漏洞挖掘技术:
定义:在运行计算机程序的条件下,验证代码是否知足规范性、安全性等指标的一种代码分析技术。通常经过插桩技术分析程序的异常行为。
插桩技术:插桩技术是指在保证被测程序逻辑完整性的基础上在程序的关键位置插入一些“桩”,即加入一些测试代码,而后执行插桩后的程序,经过“桩”的执行获取程序的控制流和数据流信息进而分析程序的异常行为
工具:Android: Xposed
漏洞挖掘技术的研究进展向深度学习方向发展
其研究进展为
从图中能够看到,主要应用场景在:二进制程序函数识别、函数类似性检测、测试输入生成、测试输入筛选、路径约束求解、漏洞程序筛选、源代码漏洞点预测。
二进制程序函数识别是二进制分析的基础,对于软件漏洞分析与修复,甚至恶意软件检测、协议逆向等都相当重要。因为二进制代码缺乏高级语言程序中的信息,函数的识别每每比较困难,现有的反汇编分析工具具备识别正确率低的缺陷。
以后Shin等用循环神经网络算法改进了ByteWeight方案的性能,在模型训练时间上有了数量级上的提高,并取得了更高的准确率。
测试用例(Test Case)是将软件测试的行为活动作一个科学化的组织概括,目的是可以将软件测试的行为转化成可管理的模式;同时测试用例也是将测试具体量化的方法之一,不一样类别的软件,测试用例是不一样的。不一样于诸如系统、工具、控制、游戏软件,管理软件的用户需求更加不一样的趋势。
在软件漏洞挖掘中,构造代码覆盖率高或脆弱性导向型的测试输入能提升漏洞挖掘的效率和针对性,利用机器学习知道生成更高质量的测试输入样本。Godefroid等首次把模糊测试中的高结构化样本生成问题转换成了NLP领域的文本生成问题。接下来不断提出了深度神经网络指导磨合测试输入样本。
模糊测试,特别是代码覆盖率指导的模糊测试,侧重于筛选能够覆盖新路径的样本为种子文件,但对种子文件变异时并无充分利用程序数据流等信息指导变异,这使得变异盲目低效,生成样本冗余。
具有路径约束求解能力是符号执行比模糊测试等漏洞挖掘技术更先进的体现,也使得符号执行在理论上具有了系统性探索程序执行路径的能力。
但约束求解也存在着路径爆炸,效率较低等问题。Chen等提出了Angora,采用污点追踪测试输入中影响条件分支的字节,而后使用梯度降低的方式对变异后生成的路径约束进行求解。
选择路由器协议漏洞挖掘的缘由是,路由器协议存在着大量漏洞,下图所示为路由器的漏洞挖掘系统架构
针对于SNMP协议,测试目标以下
结果发现,路由器协议漏洞以下:
随着NFC手机的流行和推广,这种近距离双向高频无线通讯技术,可以在移动终端、智能标签等设备间进行非接触式数据交换,同时NFC技术具备通讯距离短、一次只和一台设备链接、硬件安全模块加密等特色,具备较好的保密性和安全性。
漏洞挖掘系统架构以下:
测试过程以下
测试结果发现了诸多漏洞,有的漏洞是设计缺陷,可能会影响用户的使用体验,可是不会形成严重问题,有的漏洞则会形成拒绝服务,致使系统崩溃等问题。
从图中能够直接看出来,黑盒测试就当整个程序是个黑盒子,咱们看不到它里面作了些什么事情,只能经过输入输出看是否能获得咱们所需的来测试。而白盒测试能够当盒子是透明的,里面的一切咱们都看的清楚,从而咱们能够经过去测内部结构来测试。
黑盒测试又称为功能测试、数据驱动测试或基于规格说明书的测试,是一种从用户观点出发的测试。测试人员通常把被测程序看成一个黑盒子。
在漏洞挖掘中,要熟悉自动化黑盒测试和手动黑盒测试
这是一种在不考虑代码自己的状况下寻找程序漏洞的方法,它最主要是侧重于跟应用程序的交互方面。在这种方法中,咱们须要从程序的用户接口/界面发动攻击,并观察该程序的响应状况,而无需分析应用程序的内部结构或代码。而手动黑盒测试通常是我在拿到一个待测Web应用时最早采用的测试方法,由于这种方法能够帮助我迅速对测试目标的总体状况有一个大概的认识。
自动化黑盒测试的测试规模和范围通常来讲都比较合适。通常来讲,咱们在进行其余测试方法(例如手动测试)的过程当中,咱们能够设置一个模糊测试器/扫描器并让它们在后台自动进行漏洞扫描。不过在漏洞报告生成以后,别忘了对扫描结果进行检查和分析以免假阳性或漏洞重复率太高,不过具体状况还得取决于你所使用的技术和工具。
问题2解决方案:
Fuzz这个名词来自于Professor Barton Miller。在1989年一个风雨交加的夜晚,他登录一台本身的主机,不知道怎么回事,信号经过猫传到主机上,雷电一闪,把里面的高位变低位,低位至高位了,结果到了主机之后改变了。他突发奇想,把这种方式做为一种测试的方式来作。
那么什么是Fuzz Test就是用大量的测试用例一个一个试,尽量多得找出有可能出问题的地方
经常使用的Fuzz工具,通常会包含4个部分:
Generate lots of malformed data as test cases,要生成大量的测试用例。这个测试用力是malformed的,一个软件首先要找到输入点,而后把数据丢进去,这个数据有多是一个文件,有多是一个数据包,有多是测试表里面的一个项,有多是临时文件里面的一个东西,总之是一种数据,要定义malformed这种非正常的数据。
Drop the test cases into product,把它丢进去,看这个产品怎么反应。
Monitor and log any crash/exception triggered by malicious input.
Review the test log, investigated deeply.
经过王志强老师的讲解咱们对漏洞挖掘有了一个初步的了解,同时,课上老师展现的漏洞攻击的小视频也能够看出,漏洞挖掘的重要性,漏洞就像是“兵家必争之地”,不只仅安全工做人员须要测试找出系统的漏洞,同时漏洞也是黑客们的主要攻击目标,一个系统漏洞可能致使的威胁是很大的,因此,不断改进漏洞挖掘技术,大规模大范围的漏洞挖掘仅仅靠手工工做是远远不够的,能够看到结合机器学习的漏洞挖掘技术正是这几年的研究方向,提升漏洞识别的准确性和提升速度,是网络攻防的任务所在。
互联网审查实践的规模和多样性使得难以精确监控审查的地点,时间和方式,以及审查的内容。执行测量的潜在风险使这个问题更具挑战性。所以,许多关于审查制度的报道开始和结束只有少数几个有利位置的轶事或短时间研究。
文章寻求持续监控有关互联网可达性的信息,以捕捉跨区域和ISP的审查的开始或终止。为了实现这一目标,引入了Augur —— 一种利用TCP / IP侧通道测量两个互联网位置之间可达性的方法和附带系统,而无需直接控制任一位置的测量有利位置。使用这些辅助通道,结合经过不涉及我的用户来确保安全性的技术,咱们开发可扩展的,统计上可靠的方法来推断网络层过滤,并实现可以执行全局审查的连续监视的相应系统。咱们对17个天内近180个国家的互联网范围内的中断测量结果进行了测试,以反映已被频繁封锁的网站;咱们还肯定了链接中断最为广泛的国家。
为了扰乱路径两端的IP ID值,测量机器将TCP SYN数据包发送到一个主机,该站点; TCP SYN数据包携带第二台机器(反射器)的(欺骗性)源IP地址。 咱们称之为注射。 若是没有进行过滤,从测量机器到站点的SYN数据包将从站点到反射器引出SYN-ACK,这反过来会引发从反射器到站点的RST。 当反射器向站点发送RST数据包时,它使用新的IP ID。若是反射器基于单个计数器生成数据包的IP ID值,则测量机器能够观察反射器是否生成带有后续探测的RST数据包,由于 IP ID计数器将增长2。 图1显示了“无方向阻塞”方案中的此过程。
假设过滤发生在站点和反射器之间的路径上(即图1中所示的另外两种状况之一)。将阻塞表示为从站点到反射器的路径,做为入站阻塞。在入站阻止的状况下,站点的SYN-ACK数据包将不会到达原点,从而阻止反射器处的预期IP ID增量。在没有其余流量的状况下,IP ID计数器将递增1。在图1的第二部分中展现了这一点。
实验中每一个反射器的IP ID加速几率的CDF。
全球热图,显示在世界各国为任何反射器过滤的站点百分比。 中国的平均过滤量最高,5%的可衡量站点由国内的解析器过滤。
Tor(The Onion Router)是第二代洋葱路由(onion routing)的一种实现,用户经过Tor能够在因特网上进行匿名交流。Tor专门防范流量过滤、嗅探分析,让用户免受其害。最初该项目由美国海军研究实验室赞助。2004年后期,Tor成为电子前哨基金会的一个项目。
Tor易受网络级攻击者的攻击,他们能够观察通讯的两端以对用户进行去匿名化。最近的工做代表Tor很容易受到先前未知的主动BGP路由攻击(称为RAPTOR攻击)的攻击,这些攻击将Tor用户暴露给更多网络级别的攻击者。本文旨在减轻和检测对Tor的这种主动路由攻击。首先,提出了一个关于Tor网络对主动BGP前缀攻击的弹性的新测量研究。具备高Tor带宽的AS对攻击的弹性可能低于其余AS。其次,提出了一种新的Tor保护继电器选择算法,该算法结合了继电器的弹性以主动减轻这种攻击。证实该算法成功地将Tor客户端的安全性平均提升了36%(某些客户端高达166%)。最后,构建了一个实时BGP监控系统,能够经过执行AS原点检查和新颖的检测分析来实时检测Tor网络上的路由异常。咱们的监控系统成功检测到模拟攻击,模拟攻击是在多种已知攻击类型以及真实世界的劫持攻击以后建模的,同时具备较低的误报率。
下图表示了与Tor相关的AS的劫持恢复力:
每一个AS的劫持恢复能力和相应的带宽:
劫持不一样客户端的顶级带宽AS的恢复能力:
在这项工做中,提出了主动和被动的对策,以保护Tor免受主动BGP路由攻击。首先,评估了Tor网络目前对劫持和拦截攻击的弹性状态。观察到一些具备高Tor带宽的AS具备相对低的弹性。接下来,提出了一种新的Tor保护中继选择算法,能够主动减轻路由攻击。该算法成功地增长了Tor客户端对前缀劫持攻击具备弹性的可能性。最后,提出了一个实时监控系统,该系统使用多种新的检测机制来提醒用户实时发生潜在的劫持攻击。对监控系统进行了评估,发现它可以检测出真实世界攻击后模拟的模拟攻击,以及真正的劫持攻击(由咱们执行),误报率能够忽略不计。总的来讲,文章工做是第一个主动减轻Tor上的主动路由攻击的工做,也是第一个为Tor量身定制的实时监控系统。
Addition
恶意软件分析是计算机安全的重要任务;它提供了必要的理解,以设计有效的对策和缓解策略。当前恶意软件的复杂程度和复杂程度继续显着发展,正如最近发现的“Regin”恶意软件系列引人注目地说明的那样。这种复杂性使得手动恶意软件逆向工程的繁琐且耗时的任务变得更加困难和具备挑战性。经过使分析人员可以推断二进制代码的高级,更抽象,反编译能够加速这一过程。虽然已经取得了重大进展,可是现有的反编译器仍然会产生很是复杂和难以理解的代码,恶意软件分析师仍然常常回到分析汇编代码。
在本文中,咱们提出了几个保留语义的代码转换,使反编译代码更具可读性,从而帮助恶意软件分析师理解和对抗恶意软件。咱们已将优化实现为学术反编译器DREAM的扩展。为了评估咱们的方法,咱们进行了第一次用户研究,以测量反编译器的恶意软件分析质量。咱们的研究包括基于咱们从独立恶意软件专家得到的真实恶意软件样本的6个分析任务。咱们评估了三个反编译器:领先的行业反编译器Hex-Rays,最早进的学术反编译器DREAM,以及咱们的可用性优化反编译器DREAM ++。结果代表,咱们的可读性改进对咱们的参与者分析恶意软件样本的程度有显着影响。 DREAM ++显着优于Hex-Rays和DREAM。与使用DREAM相比,使用DREAM ++参与者解决了比使用Hex-Rays和2倍多任务时多3倍的任务。
平衡反编译器和难度级别的顺序。 每一个水平序列中的节点表示由一个参与者执行的任务。 字母表示用于任务的反编译器,颜色表示任务难度级别:中(黑色)或硬(红色)。
首先,本文建立了许多新颖的可读性代码转换,以提升恶意软件分析的反编译代码的质量。转换简化了程序表达式和控制流程。 它们还根据变量和常量的上下文为变量和常量指定有意义的名称。 其次,经过该领域的第一个用户研究验证了改进,包括学生和专业恶意软件分析师。 结果清楚地代表,本文的反编译方法提供了重大改进,DREAM ++优于DREAM和HexRays。
长期以来,缺少用于评估工具和技术的地面实体语料库阻碍了自动化漏洞发现的工做。缺少基本事实使得工具的做者和用户没法测量诸如未命中和误报率等基本量。在本文中提出了一种新的动态污点分析技术LAVA,它经过快速自动地将大量实际错误注入程序源代码来生成地面真实语料库。每一个LAVA错误都伴随着一个触发它的输入,而普通输入则极不可能这样作。这些漏洞是合成的,但咱们认为,这些漏洞仍然是现实的,由于它们深深嵌入到程序中并由实际输入触发。使用LAVA,咱们在八个真实世界的程序中注入了数千个错误,包括bash,tshark和GNU coreutils。在初步评估中,咱们发现一个突出的模糊器和基于符号执行的错误查找器可以找到一些但不是全部注入LAVA的错误,而且有趣的模式和病理在其性能中已经很明显。咱们的工做构成了按需生成大型groundtruth漏洞语料库的方法的基础,能够进行严格的工具评估并为工具开发人员提供高质量的目标。
LAVA实施架构。 PANDA和Clang用于执行动态污点分析,将潜在的错误注入识别为DUA攻击点对。其中每一个都经过Clang执行的相应源代码更改进行验证。 最后,针对目标输入更改测试每一个潜在的错误二进制文件,以肯定是否实际致使缓冲区溢出。
在LAVA-M语料库中发现的错误
在本文中介绍了LAVA,这是一个能够快速将大量实际错误注入C程序的全自动系统。 LAVA已被用于向开源Linux C程序中引入超过4000个实际缓冲区溢出,这些程序包含多达200万行代码。咱们使用LAVA语料库来评估最早发现的bug查找工具的检测能力。基于污点的措施用于识别用于建立新漏洞的攻击者控制数据的LAVA功能强大,可用于注入许多不一样的漏洞,但可能存在基本限制; LAVA不会很快将逻辑错误注入程序。尽管如此,LAVA已准备好当即用做针对任务关键代码中仍然丰富的严重漏洞类别的现实地面实况漏洞的按需来源。
在发现漏洞和修补程序问题之间常常会有至关长的延迟。缓解此漏洞窗口的一种方法是使用配置解决方法,以防止以某些功能丢失为代价执行易受攻击的代码 - 但只有在可用时才会执行。因为应用程序配置并不是专门用于缓解软件漏洞,发现它们仅覆盖了25.2%的漏洞。为了最大限度地减小补丁延迟漏洞并解决配置解决方法的局限性,本文提出了快速响应安全解决方案(SWRR),旨在以及时、安全和不引人注目的方式消除安全漏洞。与配置变通方法相似,SWRR经过防止以某些功能丢失为代价执行易受攻击的代码来中和漏洞。可是,关键的区别在于SWRR在应用程序中使用现有的错误处理代码,这使得它们可以以最少的应用程序知识和最少的开发人员工做进行机械插入。这使SWRR可以实现高覆盖率,同时仍然快速且易于部署。与配置变通方法相似,SWRR经过防止以某些功能丢失为代价执行易受攻击的代码来中和漏洞。可是,关键的区别在于SWRR在应用程序中使用现有的错误处理代码,这使得它们可以以最少的应用程序知识和最少的开发人员工做进行机械插入。这使SWRR可以实现高覆盖率,同时仍然快速且易于部署。
比较解决新发现的漏洞的不一样方法。
Talos的工做流程
本文描述了Talos的设计和实现,这个系统可使安全和精确的SWRR保护软件漏洞不被攻击者利用。主要结论是,SWRR是一种快速,安全且低成本的解决方案,能够在补丁可用以前继续使用应用程序。为了得出这个结论,在五个真实世界的应用程序中测试了320个SWRR,发现它们中的大部分都是不引人注目的,而且SWRR能够禁用75.1%的潜在漏洞。这代表,与传统的配置解决方案相比,SWRR能够在2.1倍以上的漏洞中发挥做用。还重现了11个漏洞及其漏洞,并尝试使用Talos配备的SWRR和不带SWRR的应用程序。咱们发如今全部11个案例中,应用程序的安全性获得维护,而且在8个案例中,应用程序保留了其所有或大部分功能(除了易受攻击的代码)。本文将Talos视为解决prepatch漏洞窗口的第一步。提升SWRR有效性的最佳途径是改进识别错误处理代码或SWRR能够将执行重定向到的其余安全代码路径,这将为SWRR提供更好的基本覆盖,从而提升其有效覆盖率。