vulnhunt代码审计系统.pdf

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
vulnhunt代码审计系统

软件安全测试新武器--VulnHunt 代码审计系统 基于动态污点传播的测试技术 信息系统与网络特别是互联网的发展,促进了社会各个领域的发展,也使得 人类社会对此产生了极大的依赖。而由于网络通信协议及信息系统软、硬件及其 他方面存在的漏洞,也使得信息系统与网络特别脆弱,直接威胁到国家安全、经 济建设、社会秩序、公众利益及公民的个人利益。目前,对于漏洞信息的公布已 经逐渐商业化,成为国与国之间在现代战争中的秘密武器之一,造成漏洞无法及 时得到修复或者根本得不到修复,网络安全形势日趋严峻。 软件安全测试是修复安全威胁,保证软件能够安全使用的最主要的手段,如 何进行高效的安全测试成为业界关注的话题。多年的安全测试经验告诉我们,做 好软件安全测试的必要条件是:一是充分了解软件安全漏洞,二是拥有高效的软 件安全测试技术和高可扩展性的测试工具。 1. 安全主要漏洞与测试方法分析 软件安全保证的主要目的就是为了防止黑客或者恶意的内部人员对软件进 行攻击,并保证软件在受到恶意攻击的情况能够正常运行。而攻击者主要是通过 对软件系统输入恶意的数据来进行攻击。因此,软件主要的安全问题来源于外部 的输入数据。国际CVE 组织收录的安全漏洞基本上都是跟外部输入数据有直接或 间接的关系。其构成严重安全漏洞主要有: 命令注入(Command Injection) 跨站脚本(Cross-Site Scripting) 格式化串(Format String ) 缓冲区溢出 (Buffer Overflow) 整型溢出(Integer Overflow) 整数符号扩展(Signed Integer Extern) 双重释放内存(Double Free) 释放内存后再使用(Use After Free) 数组索引越界(Array Index Overflow) Directory Traversal Sql Injection 所以做好外部输入数据安全测试是软件安全测试中最重要的工作,那么目前 主要安全测试方法有: 1.静态的代码安全测试:主要是通过对软件系统的源代码进行安全扫描, 根据程序中数据流,控制流,语义等信息与其特有软件安全规则库进行匹对,从 中找出代码中潜在的安全漏洞。静态的源代码安全测试是非常有用的方法,它可 以在编码阶段找出所有可能存在安全风险的代码,这样开发人员可以在早期解决 潜在的安全问题。而正因为如此,静态代码测试比较适用于早期的代码开发阶段, 而不是测试阶段。同时,由于关系到开发部门,测试部门,管理部门等多个部门 的工作,在实际的贯彻实施工作上有一定的难度。 2.动态的渗透测试:渗透测试也是我们常用的安全测试方法。使用自动化 工具或者人工的方法模拟黑客的输入, 对应用系统进行攻击性测试,从中找出 运行时刻所存在的安全漏洞。这种是测试的特点就是真实有效,一般找出来的问 题都是正确的,也是较为严重的。但渗透测试 一个致命的缺点就是,但由于模 拟的测试数据只能到达有限的测试点,覆盖率很低。根据美国权威机构统计,渗 透测试的覆盖率只能达到20%-30%。漏报率比较高。 2. Dynamic Taint Propagation 方法 分析两种常用的安全测试的方法,对于外部输入数据的测试都有一定的不足 之处,那么如何才能对外部输入数据进行较好的安全测试呢?业界提出了动态污 染传播的方法(Dynamic Taint Propagation)。 动态污染传播方法,主要通过跟踪外部输入的数据在程序中的传播过程, 和最终执行的情况来分析是否存在安全漏洞和存在什么类别的漏洞。如下图1, 它不需要任何特殊的攻击性的测试数据,它假定由外部输入的数据都是不可信 的、污染的数据,为数据打上污染的标记,在程序中传播的过程中,如果经过了 严格的,我们可以依赖的安全验证,我们就认真它不再是污染的,去掉污染标记, 否则污染标记在整个传播过程都会被继承下来。一旦有污染标的数据被送到执行 代码中执行的时候 就判断这里可能存在一个安全漏洞。 图1:污染数据的传播过程图 实现动态污染传播方法来进行测试,首先要对污染源的标记,在程序运行过 程中碰到外部输入的数据,需要标记污染源;其次污染数据进行传播, 数据在程 序中传播的过程中,当数据从污

文档评论(0)

xxj1658888 + 关注
实名认证
内容提供者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档