PANDAcap:简化熊猫执行痕迹捕获的框架

2020-06-06 19:59:26

PANDAcap是一个用于简化捕获PANDA执行跟踪的框架。PANDAcap的主要目标是使创建熊猫跟踪的数据集变得更容易。PANDAcap提供对Docker的支持以及对Docker容器和用于捕获跟踪的VM的运行时自定义的支持。它依赖于recctrl Panda插件来自动启动和停止记录。该插件是为与PANDAcap一起使用而开发的,后来与熊猫主线合并。

Manolis Stamatogiannakis,Herbert Bos和Paul Groth。PANDAcap:一个简化全系统跟踪收集的框架。摘自“第13届欧洲系统安全研讨会论文集”,欧洲安全委员会,20,希腊,伊拉克利安,2020年4月。doi:10.1145/3380786.3391396,预印本:vusec.net。

@inProcestions{anda acap-eurosec20,作者={Stamatogiannakis,Manolis and Bos,Herbert and Groth,Paul},title={{PANDAcap:A Framework for Streaming Collection of Full-System Traces}},booktitle={第13届欧洲系统安全研讨会论文集},Series={EuroSec';3380786.3391396},年份={2020},月份={4月},地址={希腊赫拉克利安},url={https://doi.org/10.1145/3380786.3391396},doi={10.1145/20},关键词={框架,熊猫,记录和回放,码头,蜜罐,数据集},}。

@DataSet{Pandacap-Eurosec20-DataSet,Author={Stamatogiannakis,Manolis and Bos,Herbert and Groth,Paul},Title={PANDAcap SSH Honeypot DataSet},年份={2020年},月份={4月},出版商={Zenodo},版本={1},URL={https://doi.org/10.5281/zenodo.3759652}doi={10.5281/zenod.3759652},}。

您可以从以下链接之一下载EuroSec论文中描述的熊猫踪迹的SSH蜜罐数据集:

注意:好的文档是很难做的。如果一条信息似乎丢失或不够清楚,可以随时使用问题跟踪器或贡献拉取请求。

像往常一样建造熊猫并安装它。您在配置过程中指定的安装路径不能与您要在docker映像中安装Panda的位置不同。请确保在内部版本中包含recctrl插件。

检查此回购中的Makefile.vars。注释中提供了每个变量的用法文档。

如果需要覆盖文件中的任何变量,请创建一个名为Makefile.local.vars的新文件,并在其中指定它们所需的值。

运行make。这将构建一个包含指定的熊猫构建的Docker映像。您可以使用make lsimg检查这一点。

运行Make Help将提供通过Makefile可以执行哪些操作的概述。

PANDAcap在baseimage-docker的基础上构建了一个docker镜像,这是一个最小的基于Ubuntu的镜像,具有一些与docker相关的增强功能,其目的是为记录熊猫踪迹提供一个独立的环境。

我们没有在Dockerfile中包含细粒度的命令,而是选择将它们压缩到shell脚本中,在单个引导步骤中调用这些脚本。这避免了在构建时创建冗余的映像检查点,而且也比在Dockerfile中滥用&;&;操作符更优雅。

Panda源代码附带了几个Dockerfile,可用于创建DockerImage。但是,这些docker文件主要用于在可重现的环境中构建PANDA。这意味着在生成的映像中拖入了许多构建时依赖项,导致不必要的膨胀。我们认为,要创建包含Panda的数据集,最好是只包含运行Panda所需的内容的更简单的映像。

虽然我们感谢Docker提供的便利,但我们也认识到,在我们的研究领域中,我们可能只是偶尔需要它。为此,除了包装在anda acap.py脚本中的功能之外,我们还在主PANDAcap Makefile中打包了几个与Docker相关的有用命令。下面提供了一些可用的命令。运行Make Help提供了所有可用命令的概述。

映像创建和清理清理文件:删除中间文件,强制它们在您选择构建目标的下一个文件中重新创建。

shell实用程序zsh-%:使用docker exec在%指定的容器上启动登录zsh。规范可以是容器ID或容器名称。

ssh-%:使用ssh以root身份连接到%指定的容器。规范应为容器名称。

lean-ssh:从ssh Authorized_keysfile中删除具有活动网络配置的所有容器的主机密钥。这在您修改引导脚本然后重新构建映像时非常有用。请注意,这会影响具有活动网络配置的任何和所有容器。

如上所述,Makefile.vars和Makefile.local.vars是配置PANDAcap的入口点。通过使用j2cli解析Makefilevariables并将其呈现为JJA2模板,可以将在那里定义的变量向下传递,并由PANDAcapp的其他部分使用,这是通过使用j2cli来解析Makefilevariables并将它们呈现到JJIA2模板中来实现的。