2017-2018-2 20179215 《密码与安全新技术》第5周做业

2017-2018-2 20179215 《密码与安全新技术》第5周做业html

课程:《密码与安全新技术》java

班级: 1792python

姓名: 袁琳android

学号:20179215编程

上课教师:谢四江windows

上课日期:2018年5月10日sass

必修/选修: 必修安全

学习内容总结

1.概念

安全漏洞:是指信息系统在设计、实现或者运行管理过程当中存在的缺陷或不足,从而使攻击者可以在未受权的状况下利用这些缺陷破坏系统的安全策略。安全漏洞是网络攻击和防护的关键点。网络

  • 攻击:根据目标存在的漏洞,编写攻击程序(exploit)。
  • 防护:提早挖掘出漏洞,并修复。

2.常见漏洞挖掘技术

(1)手工测试数据结构

手工测试是由测试人员手工分析和测试被测目标,发现漏洞的过程,是最原始的漏洞挖掘方法。

  • 优势:能发挥人的主观能动性
  • 缺点:人无规律可循、不可大规模

(2)补丁比对

补丁对比是一种经过对比补丁之间差别来挖掘漏洞的技术。

  • 优势:发现速度快
  • 缺点:只能发现已知的漏洞

常见工具:PatchDiff二、bindiff

(3)程序分析

包括静态和动态。

定义:是指在不运行计算机程序的条件下,经过词法分析、语法分析、语义分析、控制流分析、污点分析等技术对程序代码进行扫描,验证代码是否知足规范性、安全性等指标的一种代码分析技术。

  • 优势:覆盖率100%,自动化程度高
  • 缺点:漏报和误报(RICE,程序分析问题不可断定)

工具:

  • 数据流分析:Fortify SCA、Coverity Prevent、FindBugs等
  • 污点分析:Pixy、TAJ(基于WALA)
  • 符号执行:Clang、KLEE
  • 模型检测:BLAST、MAGIC、MOPS

(4)二进制审核

定义:源代码不可得,经过逆向获取二进制代码,在二进制代码层次上进行安全评估

  • 优势:同静态审核
  • 缺点:逆向致使信息丢失,理解困难,甚至引入逻辑错误。

二进制及编辑工具:IDA Pro、Ollydbg、UltraEdit、Hex Workshop以及WinHex

(5)模糊测试

定义:经过向被测目标输入大量的畸形数据并监测其异常来发现漏洞

关键:测试用例构造,自动化。

  • 优势:无须源码、误报低、自动化程度高
  • 缺点:覆盖率低

工具:Peach、Sulley、Autodafe、SPIKE等

3.漏洞挖掘示例

  • 路由器协议漏洞挖掘
  • NFC漏洞挖掘

(1)路由器协议漏洞挖掘

  • 目标选择:Cisco为例

  • 系统架构

  • 实验

  • 结果

当远程向路由器的161端口发送大量畸形SNMP Get/Set请求报文时,Cisco路由器和华为路由器的进程Agent出现CPU使用率异常,分别为98%和100%。
当远程发送SNMP空数据包时,Cisco路由器和华为路由器的CPU使用率出现异常,但远小于100%,发生“轻度拒绝服务”。

当远程发送一个畸形ASN.1/BER编码(超长字符串)的SNMP数据包时,wireshark捕获并解析数据包,致使wireshark 1.4等多个版本栈溢出,致使空指针引用并崩溃。

当向SNMP协议端口(161)远程发送一个使用“\x”等字符构造的畸形UDP数据包,科来网络分析系统7.2.1及之前版本均会因边界条件检查不严致使崩溃。

(2)NFC漏洞挖掘

  • 目标选择:手机

NFC(Near Field Communication)技术是一种近距离的双向高频无线通讯技术,可以在移动终端、智能标签(Tag)等设备间进行非接触式数据交换。

NFC技术具备通讯距离短、一次只和一台设备链接(1V1)、硬件安全模块加密等特色,具备较好的保密性和安全性

  • 系统架构

  • 实验

  • 结果

4.常见工具-Android

(1)静态分析工具

Androguard是一个静态工具集。

包含Androaxml、Androapkinfo、Androcsign、Androdd、Androdump、Androgexf、Androlyze、Andromercury、Androrisk、Androsign、Androsim、Androxgmml、Apkviewer;

功能:反汇编/反编译/静态分析apk/类似度对比/测试混淆程度/恶意代码检测/………………………

http://code.google.com/p/androguard

(2)动态分析工具

  • DroidBox—Android应用程序动态分析工具

  • Mercury—是一个开源的Android APP应用安全评估框架,它最赞的功能是能够动态的与android设备中的应用进行IPC(组件通讯)包括Activity。

  • TaintDroid —是一动态实时的隐私监控工具。它是利用动态污点分析技术检测隐私数据的。http://appanalysis.org/index.html

(3)逆向分析工具

  • Smali/Baksmali:DEX文件汇编和反汇编工具。

.dex .smali

assembler/disassembler!

http://code.google.com/p/smali/

  • Apktool:是GOOGLE提供的APK编译工具:
    APK Smali/…. 可用于修改APK文件后,从新打包

http://code.google.com/p/android-apktool/

  • Dex2Jar:把apk文件转换成.jar包,配合JD-GUI工具查看和分析java源代码。

http://code.google.com/p/dex2jar

  • JD、Dedexer、Redexer…

5.攻防示例

  • 路由器例子

  • NFC

从被动防护方面来看:

路由器:

  • 过滤特殊字符,eg. 科来网络分析系统对\x的处理;
  • 限制特定端口的传输速率;
  • 阻塞SNMP请求的端口;
  • 折中:编写ACL

NFC:

  • 协议解析:检查长度字段、数值范围、格式化字符串、特殊字符等;
  • 设计缺陷:修改设计逻辑,例如,蓝牙、wifi、屏幕亮度等;
  • 被动防护:滞后性

主动防护:

  • 针对路由器和软件
  • 成熟产品
  • 入侵检测(Snort/OSSEC HIDS/BASE/Sguil……)
  • 防火墙
  • 杀毒软件

学习中的问题和解决过程

模糊测试的框架有哪些?

一、antiparser

antiparser框架以python语言编写,是一个专门帮助模糊测试器建立随机数据的API。该工具能够跨平台,仅仅要求有python解释器就行。

你能够在这个网站获得该框架的源码和一些文档:http://antiparser.sourceforge.net/

说明:

该框架很简单,且缺乏一些自动化功能,文档较少。总的来讲,他不适合作一些复杂的工做。

二、Dfuz

该框架是Diego Bauche用C开发的,常常更新。该框架已经发现了不少漏洞。Dfuz是开源的,能够下载。可是该框架的源代码采用了一种严格的开原许可,未获得做者的容许不可使用复制该框架的源代码。

网站:http://www.genexx.org/dfuz/

说明:

该框架学习曲线比较平坦,开发效率比较高,Dfuz要求开发者彻底使用框架的脚本语言来进行编程,无法利用成熟的语言发挥更大的威力。不过总的来讲仍是能够的。

三、SPIKE

最普遍使用最知名的一个框架。使用C语言编写,提供了一系列容许快速和高效的开发网络协议模糊测试器的API。在SPIKE中,数据结构被分解表示成块,也叫SPIKE,这个块同时包含二进制数据和块大小。

说明:

SPIKE只有零星的文档,一些仍是废弃的,可是咱们能够找到不少工做样例。SPIKE缺少对windows的支持。最大的贡献就是基于块的模糊测试方法。不少其余的模糊测试框架也采用了这样的方法。

四、Peach

python编写的,是一个开源的框架。

Peach体系结构容许研究者聚焦于一个个的特定的协议的子组件,而后组合起来建立完整的模糊测试器。这种方法可能不如基于块的开发速度,可是对代码的复用的支持比其余模糊测试工具好。

说明:

Peach处于活跃开发中,可是文档少,学习起来比较困难。

五、通用目的模糊测试器(GPF)

GPF能够产生无数个测试,无数个变异。(其余的根据规则不会是无数个),该框架主要的有点是能够用很低的成本创建并运行一个模糊测试器,经过GPF的多种模式对外提供功能。

六、Autodafe

这个框架能够简单的描述成下一带的SPIKE,该框架可以对网络协议和文件格式进行模糊测试。他最吸引人的就是调试组件。

其余

经过这一次基于模糊测试的漏洞挖掘与攻防技术的学习,对漏洞挖掘相关的一些基本概念有了必定了解。在将来的若干年中模糊测试技术仍将会是软件测试领域的一个研究热点,甚至可能延伸到硬件测试领域,该领域将会有大量的技术问题值得研究工做者开展进行一步的研究和探讨。

相关文章
相关标签/搜索