获取至少 GCC 9 版本的
s390x-linux-gnu-gcc。最新的 Debian/Ubuntu/Fedora 发行版应该在gcc-s390x-linux-gnu软件包中提供足够新版本的交叉编译器。获取 Linux 内核源码:
git cl……  [阅读更多]
Found bugs2024-04-29
panicall 已经将 syzkaller ([1] (video), [2]) 移植到
Darwin/XNU,并发现了 50 多个漏洞),包括在 苹果安全更新中提到的CVE-2018-4447和CVE-2018-4435。 然而,他并没有将他的工……  [阅读更多]
Linux-specific syzkaller internals2024-04-29
可以使用 syzkaller 对一些 Linux 内核系统调用接口进行模糊测试:
Linux kernel configs2024-04-29
syzkaller推荐的内核配置一览。参考配置详见 syzbot config。启用覆盖率收集对于提高模糊测试的有效性极其重要:
CONFIG_KCOV=y CONFIG_KCOV_INSTRUMENT_ALL=y CONFIG_KCOV_ENABLE……  [阅读更多]
Kernel Memory Leak Detector2024-04-28
Kmemleak (Kernel Memory Leak Detector) 提供了一个类似可追踪的垃圾收集器的方法来检测可能的内核内存泄漏。与之不同的是,孤立对象不会被释放,只会在
/sys/kernel/debug/kmemleak中报告。相似的方法也……  [阅读更多]syzkaller 已支持对网络栈的外部模糊测试。 这是通过使用 TUN/TAP 接口来实现的. 它允许设置一个虚拟网络接口,并将从外部网络接收到的数据包发送到内核。 这触发了真实数据包通过真实网络接口传递的相同路径(除了驱动层)。
您需要启用
CONFIG……  [阅读更多]
Linux is a CNA2024-04-23
CVE 组织最近宣布,Linux 内核已然正式成为 CVE 编号机构(CNA)。作为 CNA,Linux 具有在其软件产品中发现的漏洞分配 CVE 编号的权限,并向 CVE 数据库做出贡献。
这是一个趋势,越来越多的开源项目开始成为 CNA,以便自己管理对其……  [阅读更多]
Troubleshooting2024-04-19
如果您在运行 syzkaller 时遇到问题,请检查以下几点。
检查 QEMU 是否能成功启动虚拟机。例如,如果
IMAGE设置为虚拟机的磁盘映像(根据image选项的配置值),并且KERNEL设置为测试内核(根据kernel选项的配置值), ……  [阅读更多]
Program syntax2024-04-18
Syzkaller 使用一种紧凑的的领域特定语言(DSL)来记录其执行的程序(如记录到 log0 等输出文件)、测试其代码并将程序持久化地存储在语料库中(指 corpus.db)。此页面提供了对相关程序语法的简要描述。一些有用的信息也可以在样例程序和程序的反……  [阅读更多]
How to set up syzkaller2024-04-17
How to use syzkaller2024-04-06
启动
syz-manager命令如下:./bin/syz-manager -config my.cfgsyz-manager进程将启动虚拟机并在其中进行模糊测试。-config命令行选项给出了配置文件的位置,并于此处给出详细描述。 Syzka……  [阅读更多]
Research2024-04-02
Undefined Behavior Sanitizer - UBSAN2024-03-20
本文介绍的 UBSAN 是一种动态的未定义行为检查工具。
UBSAN 使用编译时插桩捕捉未定义行为。编译器在可能导致未定义行为的操作前插入特定检查代码。如果检查失败,即,检测到未定义行为,则 __ubsan_handle* 函数将被调用打印错误信息。
GCC……  [阅读更多]
How syzkaller works2024-03-06
有关 Syzkaller 工作原理的通用描述如下.
关于 Linux 内核特有的内部机制可以在此处找到。
Syzkaller 系统的进程结构如下图所示,其中红色标签表示对应的配置选项。
syz-manager进程负责启动、监视以及重启虚拟机实例,并在每……  [阅读更多]
Executing syzkaller programs2024-03-02
本文描述了如何执行现有的 syzkaller 程序用以复现 bug。通过这种方式,你可以重放一个单独的程序或一个包含多个程序的完整执行日志。
Linux Kernel CVE Assignment2024-02-21
Common Vulnerabilities and Exposure(CVE®)编号是作为一种明确的方式来识别、定义和登记公开披露的安全漏洞。随着时间的推移,它们在内核项目中的实用性已经下降,CVE编号经常以不适当的方式和不适当的原因分配。因此,内核开发……  [阅读更多]