首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >最好的方法是在Linux上通过fuzzing发现的分类崩溃?

最好的方法是在Linux上通过fuzzing发现的分类崩溃?
EN

Security用户
提问于 2011-09-09 02:15:57
回答 4查看 4.6K关注 0票数 14

在进行模糊测试时,很容易产生许多错误(许多崩溃)。因此,重要的是要有一种方法来对检测到的每个bug进行分类,这样我们就可以对它们进行排序,并将精力集中在那些最有可能表示可利用安全漏洞的漏洞上。

是否有任何工具可以使分阶段过程自动化?我最感兴趣的是Linux工具。

在Windows上,我们有一个好了!可利用分析器,它分析一个崩溃的程序执行,以确定它是否代表一个可能是可利用的、可能不可利用的错误,等等。

EN

回答 4

Security用户

回答已采纳

发布于 2012-04-25 18:02:04

CERT的开源Linux分类工具可以用来对通过模糊处理发现的bug进行分类。这些工具包括一个GDB扩展,它类似于MSEC的可利用性,但适用于Linux。

http://www.cert.org/blogs/certcc/2012/04/cert_分流_工具_10.html

票数 4
EN

Security用户

发布于 2011-09-09 02:42:31

这是我所知道的最好的启发。在瓦兰模校核下运行该程序,然后查看Valgrind输出的警告。我们可以把它们分为几个类别:

  • 无效的写:看看地址。如果地址很小(例如,在0x0到0xFFF之间),则这是一个空指针取消引用:可能不可利用,优先级较低。否则,这是一个不受限制的写入:潜在的可利用性,严重的高优先级错误.
  • 无效阅读:查看地址。如果地址很小(比方说,在0x0到0xFFF之间),那么这就是空指针取消引用:可能不可利用,优先级低。否则,这是一种超限阅读:如果你运气不好,可能会被利用,但通常这些错误是不可利用的;称它为中优先级。
  • 无效的free():这可能是一个没有双重错误的漏洞,而且很有可能被利用。高度优先。
  • 根据具体情况,不匹配free() / delete / delete[]:潜在可利用性。中等优先。
  • 条件跳转或移动取决于未初始化的值(S):虽然有时可以利用这些bug,但利用这些漏洞并不一定,也不太容易。通常,这些都是良性假阳性。中到低优先级。
  • 赛斯·帕拉姆。指向未初始化字节(S)或Syscall param .包含未初始化的字节(S):与上面相同。中到低优先级。
  • 源和目的地重叠在.:极不可能被利用。低优先级。
  • 内存泄漏:(例如,仍然可以到达、绝对丢失、间接丢失、可能丢失):非常不可能被利用。低优先级。

这是我所知道的最好的启发式方法。我不知道有什么工具可以为您实现它,但是自己编写脚本并不太困难。有没有人知道Linux/Unix系统有更好的分阶段、启发式或工具?

票数 10
EN

Security用户

发布于 2011-09-09 19:22:56

我喜欢使用桃毛绒平台。这包括一个测试工具,它将记录来自崩溃的内存,并将它们链接到模糊测试用例。当流程崩溃时,测试工具将重新启动并继续运行,直到测试完成为止。

据我所知,可利用性是很独特的。瓦兰在判断诸如悬挂指针这样的缺陷时很有用。判断崩溃是否可被利用的老式方法是通过查看EIP,0x41414141总是一个受欢迎的景象。但是,应用程序可能会在函数返回之前崩溃,因为您已经覆盖了堆栈上的指针。因此,即使是像EBX0x41414141这样的通用寄存器的读/写崩溃也可能是可利用的,而且该进程在返回之前就崩溃了。请确保查看调用堆栈,以查看它是否已损坏。

票数 5
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/6998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档