学号20189220 2018-2019-2 《密码与安全新技术专题》第六周作业
课程:《密码与安全新技术专题》
班级: 1892
姓名: 余超
学号:20189220
上课教师:张健毅
上课日期:2019年2月26日
必修/选修: 选修
1.本次讲座的学习总结
本次讲座主要学习了什么是漏洞挖掘、常见漏洞挖掘技术、漏洞挖掘示例、攻防示例。
安全漏洞
1.安全漏洞是指受限制的计算机、组件、应用程序或其他联机资源的无意中留下的不受保护的入口点。漏洞是硬件软件或使用策略上的缺陷,他们会使计算机遭受病毒和黑客攻击。
2.漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。具体举例来说,比如在Intel Pentium芯片中存在的逻辑错误,在Sendmail早期版本中的编程错误,在NFS协议中认证方式上的弱点,在Unix系统管理员设置匿名Ftp服务时配置不当的问题都可能被攻击者使用,威胁到系统的安全。因而这些都可以认为是系统中存在的安全漏洞
常见安全漏洞包括
SQL注入:几乎每一个网站后台开发人员都听到的一个词,并且都很敏感,但是不知道是什么原因造成的很多程序员却在实际开发过程中经常忽视这个问题。前段时间部门一位新同事,据说是5年工作经验,在对他的代码做评审时,我们发现所有的DAO层实现都是直接拼接SQL和参数,总监多次提醒他这个问题,但他也没有发现,直到总监说出SQL注入这个词。
会话固定:这是一种会话攻击,通过该漏洞攻击者可以劫持一个有效的用户会话。会话固定攻击可以在受害者的浏览器上修改一个已经建立好的会话,因此,在用户登录前可以进行恶意攻击。
路径访问,或者“目录访问”。该漏洞旨在访问储存在Web根文件外的文件或者目录。
弱密码,字符少、数字长度短以及缺少特殊符号。这种密码相对容易破解。
硬编码加密密钥,提供一种虚假的安全感。一些人认为在存储之前将硬编码密码分散可以有助于保护信息免受恶意用户攻击。但是许多这种分散是可逆的过程。
常见的漏洞挖掘技术
手工测试:定义:由测试人员手工分析和测试被测目标,发现漏洞的过程,是最原始的漏洞挖掘方法。【凭经验依次检验每个可能产生漏洞的脆弱点】优点:人-主观能动性-显而易见和复杂不易见明显没有、没有明显; 缺点:人-无规律可循、不可大规模等。
补丁对比:定义:一种通过对比补丁之间的差异来挖掘漏洞的技术。文本(难定位,输出难理解)汇编指令(易理解,输出范围大,难定位)结构化(迅速直观,流行)。优点:发现速度快;缺点:已知漏洞;常见工具:PatchDiff2、bindif
程序分析:包括静态和动态
静态定义:是指在不运行计算机程序的条件下,通过词法分析、语法分析、语义分析、控制流分析、污点分析等技术对程序代码进行扫描,验证代码是否满足规范性、安全性等指标的一种代码分析技术。 优点:覆盖率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等
漏洞挖掘的方法
(1)白盒测试
白盒测试是一个极端,它需要对所有的资源进行充分的访问,这包括访问源代码、设计规约,甚至有可能还要访问程序员本人。
(2)黑盒测试
黑盒测试是另一个极端。黑盒,顾名思义,就是看不到盒子内部的情况,只能了解外部观察到的东西。所以作为终端用户,可以控制输入,从黑盒子的一端提供输入,从盒子的另一端观察输出结果,而无需了解被控目标的内部工作细节。模糊测试(Fuzzing测试)从某个角度来讲,也可以看做是黑盒测试。
(3)灰盒测试
介于两个极端之间。大致可以定义为:包括了黑盒测试审核,也隐含的提示了具体的功能所预期需要的输入,以及该具体功能的预期输出。所以即便是不知道源代码,也不意味着这种测试方法毫无用处。
漏洞挖掘一般流程
(1)提供源代码的情况
对于提供了软件源代码的情况来说,我们主要是针对软件的源代码进行阅读,找出其中存在安全漏洞的地方,判断该漏洞属于什么类型的漏洞,应当如何测试。然后,运行该软件的可执行文件,测试刚才发现的漏洞是不是能够成功地被触发。如果能被成功触发,那么就证明我们的分析是正确的。
(2)不提供源代码的情况
很多时候,程序的源代码并不容易获得,而在这种情况下,我们主要是向软件提供被刻意修改过的外部数据,同时借助一些工具型软件监视被测试软件在处理这些数据时会不会发生错误。然后,分析这些错误,检查其中哪些属于安全漏洞的范畴,并判断漏洞的类型。
(3)fuzzing测试的工作流程
漏洞挖掘示例
- 何谓文字处理型软件
以保存处理用户的数据信息为主要功能,同时,会将用户的数据信息保存为一定格式的特殊类型文件。这一类的软件统称为文字处理型软件,而那些能够被它们处理的特殊文件则称之为“文档”文件。
如Microsoft Office系列软件、WPS系列软件、永中集成等等都是文字处理型软件。
2.文字处理型软件漏洞的发掘思想
2.1主动的功能测试
针对软件功能进行安全测试的思想就是“主动的功能测试”。
在进行针对某个文字处理软件的功能测试时,首先要做的就是正确使用软件的各种功能。一般来说,为了能够全面了解所要研究的软件功能,需要对软件的帮助文档进行通读,也就是对帮助文档中的所有内容都进行通读。当你在软件的帮助文档中学会正确使用软件的某一个功能的时候,你现在做的就是开始实际操作一遍软件的这个功能。在这个过程中,你可能会发现软件对一些功能是有一定限制的。
“发现软件正确使用过程中的限制问题”,这是我们试图发现软件漏洞最重要的目的。这些被限制的问题很有可能就是我们正在寻找的软件漏洞存在的地方,而发现这一切的一个前提,就是需要对软件的所有功能有一个充分的了解。
虽然这种方法能在最大程度上发现软件存在的安全漏洞,但是过程是十分辛苦和繁琐的,为了能够缓解这种痛苦的漏洞发掘过程,一些安全技术人员提出了另外一种发掘文字处理型软件漏洞的思想,即“被动的输入性测试”。
2.2被动的输入性测试
“被动的输入性测试”的思想来源于对文字处理型软件所能处理的文档文件进行一定的修改,然后利用被测试的文字处理型软件来打开这些被修改过的文档文件,当软件在处理这些被修改的文档文件时,由于该文档文件的格式不正常,往往会导致软件出现问题,有一些甚至就成为安全漏洞。原理如下图:
有了可以用来被修改的原始文档文件,下一步就要对特殊文档文件进行一定的修改。由于特殊文档文件之间存在一定的差别,所以修改的方法分为以下两种情况:
(1)明文式特殊文档文件修改
思路:抓住明文格式的特殊文件中的关键字来进行超长数据修改或者过大、过小数据修改,然后让文字处理型软件来打开这个修改后的特殊文件,从而发现该软件中可能存在的安全问题。
(2)非明文式特殊文件修改
采用非明文保存数据信息的益处:
出于商业利益考虑
出于安全考虑
对于非明文的特殊文件,在进行软件漏洞测试的过程中,往往采用“直接暴力式修改”的方法来进行测试。
在获得一个非明文保存数据的特殊文件时,可以将其看作一个由十六进制编码的文件,因为无论是明文的数据还是非明文的数据信息,对于计算机来说其最终都是由0和1代表的数据,为此,十六进制的编码方式可以使得我们从计算机的角度来阅读非明文的特殊文件。而“直接暴力式修改”的意思就是采用直接修改这些十六进制编码的方法来进行对文字处理型软件的安全测试。
2.学习中遇到的问题及解决
- 问题1:漏洞挖掘的类型有哪些?
问题1解决方案:
暴力破解漏洞
sql注入漏洞
命令执行漏洞
xss漏洞(跨站脚本)
csrf漏洞(跨站伪造请求)
xxe漏洞
文件上传漏洞
文件包含漏洞
各cms的公开漏洞
大佬的漏洞清单。那么有可能除了上面那些,还多了下面这几项
逻辑漏洞
ssrf漏洞
信息泄露
js文件可能存在的未授权访问
组合漏洞
- 问题2:漏洞挖掘需要具备的知识?
问题2解决方案:
从事漏洞挖掘工作需要具备的知识是极其广泛的,并且随着时间在不断改变,也取决于你所研究的对象(web程序、桌面程序、嵌入式等等)。不过,万变不离其宗,所需要掌握的知识领域却总可以认为是确定的,我认为大致可以分为以下四个方面:
(1) 程序正向开发技术。这是一个开发者需要掌握的能力,包括编程语言、系统内部设计、设计模式、协议、框架等。拥有丰富编程经验与开发能力的人在漏洞挖掘过程中往往比那些只对安全相关领域有所了解的人员对目标应用能有更深入的理解,从而有更高的产出。
(2)攻防一体的理念。这些知识涵盖了从基本的安全原则到不断变换的漏洞形态及漏洞缓解措施。攻击和防御结合的理念,能够有效帮助研究者既能够发现漏洞,同时也能够快速给出有效的漏洞缓解措施和规避方法。
(3)有效使用工具。能够高效的使用工具能够快速将思路转化为实践,这需要通过花时间去学习如何配置和使用工具,将其应用于自己的任务并构建自己的工作流程来不断积累经验。更进一步,需要深入掌握所使用工具的原理,以及如何对其进行二次开发,以使得其能够更加高效的应用于当前的工作实际。事实上,我认为面向过程的学习方法往往比面向工具的学习方法更加高效以及有价值,当自己发现一个在使用一个工具遇到瓶颈时,先不要退缩,尝试去改造它,或者通过自己动手实践去完成能够适应当前工作的工具,这往往能够帮助快速积累大量实践经验。帮助我们以后更加高效的去实践漏洞挖掘工作。
(4)对目标应用的理解。最后,也是最重要的,作为一个漏洞挖掘人员,对自己研究的应用程序在安全性方面必须要比这个程序的开发者或维护者有更深的理解。这样你才能尽可能的发现这个程序中的漏洞并修复它。
3.本次讲座的学习感悟、思考等
通过对漏洞挖掘的学习,我发现漏洞的复杂性分布非常广。一方面,有很多漏洞非常简单与直观,并且利用代码一目了然,比如说经典的sql注入。另一方面,在系统中有的看似并不相关,并且就其自身而言并非不安全,但是当这些东西以一种特定的方式结合起来的时候,就有可能引发大的漏洞,比如说条件竞争,或者一些其他的复杂的逻辑漏洞。各种眼花缭乱的安全漏洞其实体现的是人类在做事的各种环节上犯过的错误,通过改进工具流程制度可以得到某些种程度的解决,但有些涉及人性非常不容易解决,而且随着信息系统的日趋复杂,我们可以看到更多的新类型漏洞,这个领域永远都有的玩。
4.漏洞挖掘的最新研究现状
- 第一篇
1首先我找了一篇发布在2014 IEEE Symposium on Security and Privacy的论文“Modeling and Discovering Vulnerabilities with Code Property Graphs”。
2作者信息:Fabian Yamaguchi ; Nico Golde ; Daniel Arp ; Konrad Rieck
3.今天遇到的绝大多数安全漏洞都是代码不安全的直接结果。因此,计算机系统的保护关键取决于严格识别软件中的漏洞,这是一个需要大量专业知识的繁琐且容易出错的过程。不幸的是,单个漏洞足以破坏系统的安全性,因此审计的大量代码会攻击攻击者的卡片。在本文中,我们提出了一种有效挖掘大量漏洞源代码的方法。为此,我们引入了一种新的源代码表示,称为代码属性图,它将经典程序分析的概念,即抽象语法树,控制流图和程序依赖图合并为一个联合数据结构。这种全面的表示使我们能够通过图遍历优雅地为常见漏洞建模模板,例如,可以识别缓冲区溢出,整数溢出,格式字符串漏洞或内存泄露。我们使用流行的图形数据库实现我们的方法,并通过识别Linux内核源代码中18个以前未知的漏洞来证明其功效。
本文使用流行的图形数据库实现我们的方法,并通过为几种众所周知的漏洞类型设计图形遍历来证明其实用价值,例如缓冲区溢出,整数溢出,格式字符串漏洞或内存泄露。作为展示案例,本文分析了Linux内核的源代码 - 一个庞大且经过良好审计的代码库。本文发现,2012年Linux内核报告的几乎所有漏洞都可以使用其代码属性图中的遍历来描述。尽管开源社区为提高内核的安全性做出了相当大的努力,但这些遍历使我们能够发现Linux内核中18个先前未知的漏洞,从而在实践中展示了代码属性图的功能。
总之,本文对漏洞发现问题做出以下贡献:
代码属性图。本文引入了一种新颖的源代码表示,它将抽象语法树,控制流图和程序依赖图的属性组合在一个联合数据结构中。
遍历漏洞类型。本文展示了常见类型的漏洞可以优雅地建模为代码属性图的遍历,并产生有效的检测模板。
高效实施。本文通过将代码属性图导入图形数据库来证明,可以在大型代码库(如Linux内核)上有效地执行遍历。
使用本文的方法找到的Linux内核驱动程序中的缓冲区溢出漏洞
- 第二篇
- 第二篇论文我找的是发布在2017 IEEE Symposium on Security and Privacy (SP)上的论文,论文的题目为Your Exploit is Mine: Automatic Shellcode Transplant for Remote Exploits
2作者信息:Tiffany Bao ; Ruoyu Wang ; Yan Shoshitaishvili ; David Brumley
3 开发远程攻击并不容易。它需要全面了解漏洞和精密技术,以绕过防御机制。因此,攻击者可能更愿意重用现有漏洞利用并对从头开发新漏洞利用进行必要的更改。一个这样的改编是在原始漏洞利用替换shellcode中替换原始shellcode(即,作为漏洞利用的最后一步执行的攻击者注入的代码),从而导致执行所需动作的修改漏洞。攻击者与原始漏洞利用作者相对。我们称之为shellcode移植。当前的自动shellcode放置方法是不够的,因为它们过度约束替换的shellcode,因此不能用于实现shellcode移植。例如,这些系统将shellcode视为集成内存块,并要求修改后的漏洞利用的执行路径必须与原始漏洞相同。为解决这些问题,我们提出ShellSwap,一个使用符号跟踪的系统,结合shellcode布局修复和路径揉合来实现shellcode移植。我们对20个漏洞和5个shellcode的组合评估了ShellSwap系统,这些漏洞是独立开发的,与原始漏洞不同。在100个测试用例中,我们的系统成功生成了88%的漏洞。结合shellcode布局修复和路径揉捏来实现shellcode移植。我们对20个漏洞和5个shellcode的组合评估了ShellSwap系统,这些漏洞是独立开发的,与原始漏洞不同。在100个测试用例中,我们的系统成功生成了88%的漏洞。结合shellcode布局修复和路径揉捏来实现shellcode移植。我们对20个漏洞和5个shellcode的组合评估了ShellSwap系统,这些漏洞是独立开发的,与原始漏洞不同。在100个测试用例中,我们的系统成功生成了88%的漏洞。
具体来说,我们的论文做出了以下贡献:
本文设计了ShellSwap系统,这是第一个端到端系统,可以修改观察到的漏洞并用任意替换shellcode替换其中的原始shellcode。我们的系统显示自动漏洞利用是可能的:即使对安全漏洞了解甚少的人也可以为他们的自定义用例改进漏洞利用。
本文提出了新的系统方法来利用原始漏洞利用的信息来防止ShellSwap退化为低效的符号探索,并修改替换shellcode而不改变其语义以适应原始漏洞隐含的约束。这些方法对ShellSwap的性能至关重要。
本文在100个案例--20个原始漏洞中评估我们的系统,每个漏洞包含5个不同的shellcode。本文的系统在88%的测试集中成功生成了修改后的漏洞,并且所有新漏洞都按预期工作。本文还将本文的系统与先前的技术水平进行了比较,本文发现以前的方法仅适用于本文测试集的31%。事实上,ShellSwap的成功率几乎是之前解决方案的三倍,这意味着shellcode移植中固有挑战的影响被低估了,未来针对这一问题的工作将是有益的。
使用Shellcode替换方法修改Shellcodel漏洞利用程序
实验结果表明:
此表显示了易受攻击的二进制文件,其漏洞的类型,每个二进制文件的原始漏洞利用数量,尝试的漏洞修改总数(每个二进制文件的每个原始漏洞利用一个替换shellcode)以及已成功修改的漏洞利用数量由systemm和shellswap生成
表V显示了每个替换shellcode实例和每种方法的时间成本。布局修复的平均时间成本为19.73秒,而路径捏合的平均时间成本为9426.99秒。两者之间的巨大差异是因为后者需要一次或多次符号跟踪迭代,正如我们之前所讨论的那样,这是一个非常耗时的过程。我们将进一步的性能改进作为未来的工作,并注意可以应用于此问题的相关工作中的示例优化。
- 第三篇
- 第三篇论文我找的是发布在2015 IEEE Symposium on Security and Privacy上的论文,论文题目为Controlled-Channel Attacks: Deterministic Side Channels for Untrusted Operating Systems。
2作者信息:Daniel Votipka ; Rock Stevens ; Elissa Redmiles ; Jeremy Hu ; Michelle Mazurek - 流行的功能丰富的商品操作系统中存在大量安全漏洞,这激发了从应用程序的可信计算基础中排除这些操作系统的长期工作,同时保留了许多优点。传统应用程序继续在不受信任的操作系统上运行,而小型超级遮阳板或可信硬件则阻止操作系统访问应用程序的内存。在本文中,我们介绍了受控通道攻击,这是一种新型的旁道攻击,它允许不受信任的操作系统从Overshadow,Ink Tag或Haven等系统上的受保护应用程序中提取大量敏感信息。我们实施对Haven和Ink Tag的攻击,并通过从广泛部署的应用程序库中提取完整的文本文档和JPEG图像的轮廓来展示它们的强大功能。鉴于这些攻击,目前尚不清楚Over shadow的保护未经修改的遗留应用程序与现有硬件上运行的传统操作系统的愿景是否仍然可行
文做出以下贡献:
本文引入受控通道攻击是对屏蔽系统的严重威胁,系统设计人员应该将其考虑在内。
本文针对广泛使用的库设计了几种具体的受控通道攻击。
本文在Haven和InkTag上有效地实施了这些攻击。
攻击模型:
我们假设攻击者控制操作系统。但是,我们将监视器组件和应用程序受保护环境中运行的任何代码保持不变。我们的攻击所针对的屏蔽系统类具有以下属性:
a)操作系统的内存资源管理
系统使用虚拟内存。操作系统可以使用请求分页将物理内存分配给各种应用程序。因此,操作系统根据其资源管理任务控制虚拟到物理存储器映射。屏蔽系统可以约束操作系统,以防止它读写应用程序存储器并确保应用程序地址空间的完整性。例如,不允许操作系统将特定页面映射到应用程序不期望的地址。但是,操作系统能够回收物理页面,从而删除虚拟到物理页面映射。它还必须能够恢复页面映射以处理页面错误。为此,操作系统必须能够获取发生页面错误的页面的虚拟基地址。我们不会假设页面内的偏移知识。
b)申请
该系统支持大部分未修改的遗留应用程序。此类应用程序通常不会采取特殊措施来模糊其内存访问模式(除了针对缓存侧通道攻击而加密的加密代码之外)。我们假设遗留应用程序是公开的,并且攻击者知道目标应用程序二进制文件的确切版本。在我们的攻击中,我们对应用程序的源代码进行了手动分析。这对开源软件来说不是问题。二进制代码的手动分析也是可能的,虽然更加繁琐。
引言中引用的大多数屏蔽系统满足这两个条件。这包括我们实施攻击的Haven和InkTag。相比之下,像Flicker [38]或TrustVisor [37]这样的系统不包含在此类中,因为它们需要对遗留应用程序进行重大修改,并且在Flicker的情况下,仅支持具有静态资源的单个受保护区域。
对应用程序的攻击的实施
显示了我们针对攻击的三种开源应用程序的版本。我们使用相同的版本来攻击Haven和InkTag。对于Haven,我们使用Microsoft Visual Studio的C / C ++编译器(版本18.00.30501)[4]编译了开源代码,并使用Windows附带的系统二进制文件(例如,ntdll.dll和kernel32.dll)。对于InkTag,我们在uClibc工具链[6]中使用了GCC编译器(版本4.4.5)。
我们的攻击对代码优化非常敏感,因为它可能会消除一些我们可能用于推理的控制转移。例如,如果被调用者被内联到调用者中,则函数调用将消失。如果调用者和被调用者位于同一内存页面上,我们可能无法跟踪函数调用,编译器经常对其进行性能优化。为了使我们的攻击尽可能真实,我们在Windows和Linux上使用了与其他二进制文件相同的编译器选项。对于在Haven上运行的Windows二进制文件,我们使用了Microsoft Visual Studio C / C ++编译器的完整优化(即/ Ox)ox和内联(即/ Ob2)选项。对于在InkTag上运行的Linux二进制文件,我们在GCC编译器中使用了二级优化(即-O2),其中内联的可能目标包括指定的内联函数,
我们构建了简单的控制台应用程序来驱动库。FreeType源包没有命令行应用程序。我们编写了一个简单的命令行应用程序,它为输入文件中的每个字母调用FreeType库,以使用Times New Roman字体(一种TrueType字体格式的流行字体)将其呈现到位图缓冲区。Hunspell源包中包含一个命令行应用程序,可对输入文件进行拼写检查。我们将它与源包中的en_ US字典一起使用。对于libjpeg,我们编写了一个简单的命令行应用程序,它调用libjpeg库来解码JPEG图像并将结果保存到BMP文件中。
在Windows上实施ASLR攻击
出于评估目的,我们在Windows上实施了ASLR攻击,因为Haven和InkTag不支持ASLR。我们使用Windows内核APls(例如,PsSetCreateProcessNotifyRoutineEx)来跟踪流程创建,并在创建时识别目标流程。然后我们使用Windows内核API(例如,PsSetLoadImageNotifyRoutine)来跟踪为目标进程中的可执行文件分配的内存区域。我们使用第VA节中描述的相同方法来直接操作页表。我们通过设置Non-Executable位(第63位)来限制对存储器页面的访问。这使我们可以避免数据页上不必要的页面错误。我们ASLR攻击的原型是作为内核驱动程序实现的。它有1644行C代码和156行汇编代码。部分代码与我们在Haven上的实现共享。
总结:本文介绍了受控通道攻击作为一种新型的屏蔽系统攻击,并证明受控通道攻击是一种真正的威胁,必须在这些系统的设计中加以解决。我们针对三个广泛使用的应用程序库设计特定的受控通道攻击,并在两个最现代和最复杂的屏蔽系统上实现和执行它们。我们的攻击能够从这些系统上的受保护进程中提取整个文档和JPEG图像的近似版本。我们还讨论了一些潜在的缓解措施。
- 第四篇
- 这是一篇发布在2016 Third International Conference on Digital Information Processing, Data Mining, and Wireless Communications (DIPDMWC)的论文,论文题目为Practical studying of Wi-Fi network vulnerabilities
- 作者信息如下:Aigerim Ismukhamedova ; Yelena Satimova ; Andrei Nikiforov ; Natalia Miloslavskaya
3.目前,人们非常关注针对恶意软件,病毒等的操作系统(OS)保护.Wi-Fi是最受欢迎和需要的连接到互联网的方式,其在许多公司和个人中使用。Wi-Fi是一种广泛使用的技术,在不同的情况下,它需要额外的软件来进行受保护的安装。Wi-Fi网络可能被破解,个人数据可能被盗或受到损害。本文考虑了Wi-Fi网络用于教育目的的黑客攻击过程。一些黑客技术显示为在实验室工作中实施。
工作实施方案:
A. Wi-Fi适配器的操作模式
由于Wi-Fi使用范围很广,因此应该应用一些Wi-Fi适配器来检测在实验室工作期间转发到范围内设备的信号。由于天线(Wi-Fi适配器)可能无法提取某些数据包,因此驱动程序可以在三种模式下运行:客户端,监视器和混杂模式(图1显示了不同模式下的程序包拦截)。
截获的数据包
当学生执行演习时,他需要在监视器(黑客)模式下传输网络(无线)卡。每个Wi-Fi适配器都会检测到在客户端模式下工作时转发给它的任何信号。不适合该适配器的适配器包将被丢弃,其余的包将按原样到达操作系统。在此模式下,损坏的包裹被丢弃并且操作被认为是正常的。
在监控模式(rfmode)中,驱动程序不对包进行过滤,并且天线捕获的所有信息都传递给OS。具有错误校验和的包不会被丢弃并且可以看到,即使用Wireshark。
中间件是混杂模式:驱动程序传输包,这些包通过与OS相关的网络连接接收,但与正常操作相反。发往其他网络客户端的包不会被丢弃,其他网络的包将被忽略。很明显,这种方案在用户成功连接并登录到网络时起作用。与监控模式相比,此选项由少量适配器支持。当在此模式下以及在客户端模式下操作时,驱动程序从发送的数据包中删除低级别信道标题[5]。
在客户端模式中,用户对不适合他的分组不感兴趣,因为在混杂模式中,用户必须连接到网络。除了受损的软件包和标题802.11之外,监控模式与客户端类似,甚至超过了大部分适配器支持的混乱机制。这里出现的唯一问题是并非所有适配器都能在监控模式下同时传输数据[6]。
下一步是研究加密算法(ENC):
OPN - 没有加密的网络是没有意义的。
WEP - 使用WEP加密的网络。事实上,这样的网络对于这项任务是有价值的。
WPA / WPA2 - 具有WPA / WPA2加密的网络,以及用于保护数据的加密技术:
WEP - 统计上用于保护无线网络的最常用方法。它提供所有网络流量的加密。它没有身份验证 - 如果您不知道密钥,您将无法解密数据。缺点是算法非常弱 - 密钥在不到5分钟内被攻击者破解。
WPA和WPA2预共享密钥 - 强大的系统身份验证和数据加密。通过共享密钥进行访问。只要系统容易受到暴力攻击,保护级别就是公钥的复杂性。
WPA和WPA2企业版 - 以前系统的变体,但外部验证器802.1x EAP用于确认身份,允许使用证书,智能卡等[8]。
找到密码
上述实验室工作向学生展示了他们的Wi-Fi网络是如何容易被破坏的,他们的个人数据可能被盗或受到损害。在实验室工作之后,他们开始明白Wi-Fi作为一项广泛使用的技术需要额外的软件来进行受保护的安装。他们接受过训练,可以使用一些技术来抵消特定的攻击。在未来,计划通过测验添加实验室工作来估计学生的知识并扩展一系列教育任务。实验室工作很可能成为关于Wi-Fi网络安全的单独教育课程的基础
- 第五篇
- 这是一篇发布在2017 IEEE International Conference on Intelligence and Security Informatics (ISI)上的论文,论文的题目为Hacking social network data mining
2.作者信息:Yasmeen Alufaisan ; Yan Zhou ; Murat Kantarcioglu ; Bhavani Thuraisingham
3.多年来,社交网络数据一直被开采以预测个人的特征,如智力和性取向。虽然挖掘社交网络数据可以向用户提供许多有益的服务,例如个性化体验,但是当用于做出关键决策(例如就业)时,它也会损害用户。在这项工作中,我们研究了将数据挖掘技术应用于社交网络数据以预测各种个体特征的可靠性。尽管此类数据挖掘应用程序取得了初步成功,但在本文中,我们展示了现有最先进的社交网络数据挖掘技术在面临恶意攻击时的漏洞。我们的结果表明,做出关键决策,如就业或信贷审批,仅基于社交网络数据挖掘结果在此阶段仍为时过早。具体来说,我们探索Facebook喜欢的数据来预测Facebook用户的特征,包括他们的政治观点和性取向。我们对预测模型执行多种类型的恶意攻击,以衡量和了解其潜在漏洞。我们发现基于社交网络数据的现有预测模型可以很容易地被操纵,并提出一些对策来防止一些提议的攻击。
在本文中,我们全面研究了应用于社交网络数据的数据挖掘模型对不同类型的恶意攻击的鲁棒性。我们研究了使用其功能预测不同类别用户的可行性。我们仔细研究可以使用这些功能成功预测的这些用户类,并研究操纵这些功能以欺骗数据挖掘模型是多么容易。我们执行几种不同类型的攻击来衡量现有技术数据挖掘模型的稳健性。我们的工作表明,使用统计数据挖掘模型挖掘社交网络数据容易受到这些攻击,因为通过对训练或测试数据的简单操作,预测准确性会降低。
我们研究了两种不同攻击类别的影响。第一类是逃避攻击,由单个用户编辑,他们编辑他们的个人资料信息以防止任何可能暴露他们隐私的预测。这种攻击的影响是个人用户本地的,它可以导致较少的目标广告,以换取更多的隐私。第二类是中毒攻击其中对手操纵属于真实或虚假用户组的数据以降低预测模型的全局分类准确度。攻击者可以使用中毒攻击来影响数据挖掘性能。例如,一个恐怖组织可以发动这种协调攻击,以愚弄“这是一个恐怖主义相关的概况”预测模型。这是一种更严重的攻击,对使用预测模型测试的所有用户产生全局影响。
我们会检查不同的指标,以评估功能的重要性,并针对每次攻击匹配最佳评估指标。我们使用Facebook喜欢在两个分类任务上展示我们的结果:政治观点(民主党与共和党人)和性取向(直接与同性恋)。对于每个任务,我们认为一个类是目标类,另一个类是相反的类。例如,对于政治观点,我们认为“民主主义者”是我们的目标阶级,而“共和主义者”则是相反的阶级。我们随机选择目标和相反的类,没有特别的理由支持一个而不是另一个。最后,我们提出了各种对策来防止一些提议的攻击。我们报告了这些对策在降低各种环境下攻击严重性方面的成功。
对政治观点(PV)和性取向(SO)的模仿攻击
在本文中,我们分析了Facebook的喜好以及它们在预测不同类别中不同用户时的用处。我们表明,单独使用喜欢,我们可以高精度地预测政治观点和性取向。我们对这些可预测的用户进行了多次攻击,以衡量预测模型的脆弱性。我们的结果表明,这些模型容易受到不同类型的攻击。因此,构建在社交网络数据上的数据挖掘模型很容易被恶意攻击者操纵。我们还提出了防范逃避和中毒攻击的对策。这些对策成功地降低了所讨论攻击的严重性。未来可能的方向是研究用户社交网络的影响。即使用户没有喜欢,他们可以通过他们连接的人来描述[22],[23]。使用这些社交链接和邻居可以使预测模型更加健壮,因为攻击者难以控制他们的邻居。
总结
漏洞挖掘技术脱胎于软件测试理论和软件开发调试技术,可以大大提高软件的安全性。网络安全界的第三方机构、技术爱好者也利用该技术寻找各种软件漏洞,并及时发布给大众,为提高信息安全整体水平做出了贡献。但漏洞挖掘也是一把双刃剑,已经成为黑客破解软件的主流技术。漏洞挖掘技术的发展前景是广阔的,随着信息安全越来越被重视,软件开发技术越来越先进,新的分析手段会随之出现。
参考资料
- Modeling and Discovering Vulnerabilities with Code Property Graphs
- Your Exploit is Mine: Automatic Shellcode Transplant for Remote Exploits
- Controlled-Channel Attacks: Deterministic Side Channels for Untrusted Operating Systems
- Practical studying of Wi-Fi network vulnerabilities
- Hacking social network data mining