如何寻找安全漏洞之——黑客们如何挖掘漏洞

看到本文的题目你会不会虎躯一震呢?感觉——it’s imposible!,but it is so easy to get in。。。
以前我们总是听到“挖掘漏洞”,“某某公司出现了提权漏洞”,我们会问一句“你咋知道这是漏洞?你怎么知道漏洞在哪?”,当然回答这个很简单啦,因为漏洞在代码中,但是上百万行的代码谁知道哪里有漏洞?这个嘛。。。人做不到软件可以搞定一切啊!当然漏洞挖掘的前提是你要懂得如何发动溢出攻击,否则怎么提权?还有一些常用的命令语句。最最重要的是你要知道什么样的代码具有漏洞。这样子,时间久了之后我们可以自定义语法格式,那些黑客大牛们都是拥有自定义的一套常见漏洞代码数据库的。我们也可以建立噢~~
所以,本文要说的就是几款专门用来分析代码的工具,也是软工的工程师们做安全评测的工具。这些东西用好了就是安全评测工具,漏洞挖掘工具,用不好呢?漏洞挖掘机,黑客利剑。
FormatGuard:Linux下防止格式化字符串攻击的工具,是对glibc的增强。具体通过预处理提供的宏功能来对类printf函数中的参数个数进行计数,通过glibc提供的parse_printf_format函数来对转换说明符进行计数。如果转换说明符的数目大于提供给printf的参数个数,_proteced_printf函数认为可能遭受格式串攻击,发出警告。但该工具不能分析类vprintf函数(而此类函数却大量存在)。
LibFormat:Unix中提供了一个有用的环境变量LD_PRELOAD,它允许我们定义在程序允许前优先加载的动态链接库。主要思想,通过动态连接器将自己插入到程序中,在程序以后的运行中如果发现了包含%n的格式串出现在可写内存中,则终止程序。但对读操作却无能为力,而且遇到的任何%n格式串,都会终止程序,误报高。
ANTLR:识别和处理编程语言是 Antlr 的首要任务,编程语言的处理是一项繁重复杂的任务,为了简化处理,一般的编译技术都将语言处理工作分为前端和后端两个部分。其中前端包括词法分析、语法分析、语义分析、中间代码生成等若干步骤,后端包括目标代码生成和代码优化等步骤。Antlr 致力于解决编译前端的所有工作。使用 Anltr 的语法可以定义目标语言的词法记号和语法规则,Antlr 自动生成目标语言的词法分析器和语法分析器;此外,如果在语法规则中指定抽象语法树的规则,在生成语法分析器的同时,Antlr 还能够生成抽象语法树;最终使用树分析器遍历抽象语法树,完成语义分析和中间代码生成。整个工作在 Anltr 强大的支持下,将变得非常轻松和愉快。另外,Antlr的词法分析器生成器,可以很容易的完成正则表达式能够完成的所有工作;除此之外使用 Anltr 还可以完成一些正则表达式难以完成的工作,比如识别左括号和右括号的成对匹配等。
GOLD:它是一个较为复杂的分析器,支持很多语言,包括:Assembly – Intel x86 、ANSI C、C#、D、Delphi、Java、Pascal、Python、Visual Basic、Visual Basic .NET、Visual C++、所有.NET语言、所有ActiveX语言。是个免费的软件。
Its4:读取一个或多个C/C++源程序,将每个源程序分割成函数标志流,然后检查生成的标志是否存在于漏洞数据库中,从而得到每个源程序的所有错误警告列表,并带有相关的描述。其规则库vulns.i4d定义了各种函数的危险等级,描述等,通过规则匹配来报出风险,但它不能理解程序上下文意思,存在很大的误报。
Flawfinder:词法扫描和分析,内嵌了一些漏洞数据库,如缓冲区溢出、格式化串漏洞等,扫描快,按照代码中漏洞的风险等级对漏洞进行划分,可以快速找到存在的问题,误报较高
Rats:扫描C、C++、Perl、PHP和Python开发的源程序中潜在的漏洞,扫描规则比较粗糙
以上就是常见的C /C++常用的代码分析工具,漏洞存在于代码中,挖出来就是我们成绩,大家一起努力噢~
当然还有很多好用的东西,比如:pc-lint、splin 这两个工具。总之我们可以把静态分析工具,动态分析工具都拿来用上,漏洞就是这么挖出来的,所以有人说漏洞挖掘很枯燥,但是有很多人确实乐此不疲的!
附图:(语法分析流程)
这里写图片描述

  • 9
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
模糊测试是一种测试方法,通过输入非正常和不符合预期的数据来探测软件应用的安全漏洞。它是一种自动化的测试方法,广泛应用于软件开发、信息安全和网络安全领域。模糊测试的目标是发现软件中的潜在安全漏洞,以帮助开发者及时修复并改进软件的安全性。 模糊测试通过生成大量的随机、异常和非法输入数据,将其输入到被测软件中,然后监测软件的行为和反应。如果软件在处理这些异常输入时出现异常崩溃、内存溢出、拒绝服务等异常行为,那么就可能存在安全漏洞。通过分析异常行为,测试人员可以推断出可能存在的安全漏洞,并进行修复。 模糊测试的优势在于它可以自动化地生成大量的测试输入数据,大大提高了测试的覆盖率。它可以有效地发现软件中隐藏的安全漏洞,包括缓冲区溢出、代码注入、SQL注入、跨站脚本攻击等常见的安全问题。与传统的手工代码审查相比,模糊测试可以更全面、更高效地发现安全漏洞。 模糊测试是一把强力的武器,对于提高软件的安全性至关重要。它可以帮助开发者在软件发布之前,尽早发现并修复存在的安全漏洞,从而减少软件被黑客利用的风险。同时,模糊测试还可以帮助企业和组织提升对系统和应用的信心,保障信息安全。 总之,模糊测试是一种强制发掘安全漏洞的利器。它通过生成大量的异常输入数据,并监测软件的行为,可以有效地发现软件中的潜在安全问题。作为软件开发和信息安全领域的重要工具,模糊测试在保障软件安全方面发挥了重要作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值