安全性 – 如何针对Linux KVM编写模糊测试?

应该是这样的情况,
Linux内核,当它是主机内核时,不应受客户内核在虚拟机内执行的内容的不利影响.

我想通过模糊从客户内核到主机内核的接口来测试该属性.我似乎很清楚,测试需要在客户内核中运行(例如,在内核模块中),生成任意代码,然后执行该代码.如果主机内核崩溃(或做“有趣”的事情),测试将失败.

所以,我的问题是:

>您知道任何已经完成此项测试的测试吗?
>是否有预期会导致我需要避免的主机内核崩溃的指令?
>在Linux内核中生成垃圾的最佳方法是什么?
>一旦我生成垃圾,我该如何执行它?

目前,我只想专注于一般的模糊测试方法.在我进行此测试后,我将更改它以在内核中手动模糊不同的虚拟化指令和驱动程序.

更新:在进一步考虑之后,使用完全垃圾进行模糊测试是行不通的,因为我将比我预期的崩溃我的主机更频繁地崩溃我的客户机.所以,我想我需要从一开始就接受这种手术.有什么建议?

最佳答案 在很大程度上发现0天的严重性是关于编写富有想象力的测试.当您构建测试系统时,您需要识别其攻击面.在Web应用程序中,这很简单,GET / POST请求.对于像VM这样的东西,它更复杂.提供给您的实际硬件是由KVM创建的幻觉.在某些时候,与该设备的数据交互将由主机处理.

其他重要资源正在寻找已在目标中找到的漏洞.程序员经常会犯很相似的错误,类似的错误也很常见. These CVE’s: CVE-2010-0297 CVE-2010-0298 CVE-2010-0306 CVE-2010-0309,是LInux的KVM漏洞的一个很好的例子.突出的两个硬件设备是CPU和USB,它们都受到了损害.

一个非常强大的模糊测试平台是Peach.许多测试可以单独使用XML创建,但是如果你知道python你可以扩展peach来做任何事情.

点赞