问题标签 [fuzzing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
standards - 在哪里可以找到 H.264 标准?
我想为 H.264 写一个小模糊器,但我不知道文件格式。请给我标准,以便伪造正确(因此不正确)的 h.264 文件。
谢谢马蒂亚斯
mpeg-4 - MPEG4 AVC 标头大小?
只有一个问题:.mp4 文件的标头的字节大小是多少?
目标是模糊这个标题。
谢谢卡尔
security - 您如何通过测试驱动开发确保安全编码?
我一直在跟上最新趋势,即测试驱动开发 (TDD)。我所做的大部分开发都是使用 C 或 C++ 进行的。让我感到震惊的是,常见的 TDD 实践和常见的安全编码实践之间存在非常明显的冲突。TDD 的核心是告诉你,你不应该为没有失败测试的东西编写新代码。对我来说,这意味着我不应该编写安全代码,除非我有单元测试来查看我的代码是否安全。
这带来了两个问题:
如何有效地编写单元测试来测试缓冲区溢出、堆栈溢出、堆溢出、数组索引错误、格式字符串错误、ANSI、Unicode 和 MBCS 字符串大小不匹配、安全字符串处理(来自 Howard 和 LeBlanc 的“编写安全代码” )?
在标准 TDD 实践中的什么时候应该包括这些测试,因为大部分安全性是非功能性的。
令人惊讶的是,我发现讨论 TDD 和安全性的研究很少。我遇到的大部分是 TDD 论文,它们在非常高的层次上提到 TDD 将“使您的代码更安全”。
我正在寻找上述问题的任何直接答案,与此相关的任何研究(我已经看过但没有找到太多),或者 TDD 大师居住的任何地方,以便我可以去敲他们的门(实际上)和看看他们有没有好的答案。
谢谢!
编辑:
Fuzzing 的话题已经出现,我认为这是解决这个问题的一个很好的方法(一般来说)。这就提出了一个问题:模糊测试是否适合 TDD?模糊测试在 TDD 过程中的什么位置合适?
参数化单元测试(可能是自动化的)也出现在我的脑海中。这可能是一种在测试过程早期获得类似模糊结果的方法。我也不确定它在哪里适合 TDD。
编辑2:
到目前为止,谢谢大家的回答。在这一点上,我对如何利用参数化测试作为我们函数的伪模糊器非常感兴趣。但是,我们如何确定要编写哪些测试来测试安全性?我们如何确保我们充分覆盖了攻击空间?
It is a well known problem in software security that if you protect against 5 attack scenarios, the attacker will just look for, and use, a 6th attack. It is a very difficult cat-and-mouse game. Does TDD give us any advantage against this?
junit - Junit - 程序验证与白盒模糊测试?
我知道程序验证是计算机工程的一个分支——但它在现实世界代码库中的实际应用受到组合爆炸的限制。
我还理解,作为设计软件更改的一部分,对于现有 Java 框架的修改,提前考虑算法的白盒、边界和黑盒测试是有帮助的。(有些人称之为吊床驱动的开发 - 在编码之前思考。)
假设您采用这种想法并将其嵌入到 junit 样式测试中,我假设内容的计算机科学名称严格来说是“白盒测试/模糊测试”,不足以构成“程序验证”。
所以我的问题是 - junit 测试 - 白盒模糊测试或程序验证?
ruby - 使用 Ruby 模糊 FTP 服务器
嘿,我是 Ruby 新手,并试图通过将一些 progs 从一种语言移植到另一种语言来学习。现在我正在 Ruby 中开发一个 FTP 模糊器,它反映了这个 perl 脚本:
这是我的 Ruby 等价物:
当我运行程序时,我收到以下错误:
我已经将问题追溯到该ftp.list(buffer)
行,但无法提出一个 Ruby 解决方案来完成$ftp->list($buffer)
perl 中的功能。
建议?
security - 如何针对 Linux KVM 编写模糊测试?
当 Linux 内核是主机内核时,应该不会受到来宾内核在虚拟机中执行的内容的不利影响。
我想通过模糊从客户内核到主机内核的接口来测试该属性。我似乎很清楚,测试需要在来宾内核中运行(例如,在内核模块中),生成任意代码,然后执行该代码。如果主机内核崩溃(或做一些“有趣”的事情),测试就会失败。
所以,我的问题是:
- 您是否知道已经完成此任务的任何测试?
- 是否有预期会导致我需要避免的主机内核崩溃的指令?
- 在 Linux 内核中生成垃圾的最佳方法是什么?
- 一旦我生成了垃圾,我该如何执行它?
目前,我想只关注一般的模糊测试方法。稍后,在我让这个测试工作后,我将对其进行更改,以通过手术对内核中的不同虚拟化指令和驱动程序进行模糊测试。
更新:在进一步考虑之后,用完全垃圾进行模糊测试是行不通的,因为我的客户机器崩溃的频率比我预期的主机崩溃的频率要高。所以,我认为我需要从一开始就通过外科手术来解决这个问题。有什么建议吗?
xml - 模糊测试 XML 解析器
我想对 XML 解析器进行模糊测试,并想知道是否有一些合适的模糊器。
不仅可以生成随机垃圾,而且可以利用现有的模式规范,如 XSD 或 DTD,这将是一件好事。
security - Fuzzing/逆向工程虚拟机
我是逆向工程的初学者/中级人员,我正在努力成为专家。我想在虚拟机上做一个项目,专门逃避它们,想知道是否可以对它们应用模糊测试。例如对虚拟机内部的网络和 I/O 设备进行模糊测试,然后评估结果。这会是发现 VM 漏洞的有效方法吗?
另外,我将如何调试 VM 和管理程序?
我希望寻找参考和良好的指示。
非常好,正是我想要的,谢谢。另一个问题是如何调试 vbox 和 qemu 之类的东西,这是在虚拟机还是主机中完成,还是提供了工具?这是我唯一不确定的部分。
android - 用户界面模糊测试 - Android
有什么方法可以对任何应用程序的 UI 部分进行模糊测试?基本上我只想向应用程序抛出一些随机的用户输入数据(即按下按钮、选择工具、将查询插入文本框......),看看它是否在某个时候抛出错误。
这完全有可能吗?可以在 Android SDK 上完成吗?
linux - 对 Linux 内核进行模糊测试:处于危险之中的学生。
我目前在一所大学攻读计算相关学位,我目前的项目专注于寻找 Linux 内核中的漏洞。我的目标是对内核(针对 3.0 版)进行静态审计和“模糊测试”,以试图找到漏洞。
我的第一个问题是“简单”是否可以对 Linux 内核进行模糊测试?我听说有人对大量协议等进行模糊测试,但对内核模块却很少。我也明白,在 Linux 系统上,所有东西都可以看作是一个文件,因此肯定可以通过该接口输入到内核模块,不是吗?
我的第二个问题是:您建议使用哪种模糊器?如前所述,存在许多模糊协议的模糊器,但是我认为其中很多在攻击内核模块时没有用。显然有诸如 Peach fuzzer 之类的框架,它允许您从头开始“创建”自己的 fuzzer,并且据说非常出色,但是我反复尝试安装 Peach 无济于事,我发现很难相信它是合适的考虑到我在安装它时已经遇到的困难(如果有人知道任何体面的安装教程,请告诉我:P)。
我会很感激你能为我提供这个问题的任何信息。鉴于我选择的主题的广度,任何关于方向的想法总是非常感谢。同样,我想请人们不要告诉我从其他地方开始。我确实了解手头任务的规模,但无论如何我仍会尝试(我是一个蓝天思想家:P AKA 固执如牛)
干杯
史密斯