A Study of Network Forensic Investgation in Docker Environments
Docker环境下的网络取证研究
摘要
网络罪犯利用越来越多的技术(如虚拟机或基于容器的基础设施)进行恶意活动。 这些虚拟环境的固有动态简化了恶意服务的快速创建,并隐藏了所涉及的系统,这是以前没有的技术。 虚拟化的主要用途,尤其是容器,有助于软件开发人员和管理员创建新的应用程序、执行测试、调试他们的代码,并基于提供的容器映像安装预定义的服务。 Docker作为最著名的容器技术,提供了大量现有的容器模板,为实现高度动态的环境铺平了道路。 作为虚拟机,基于容器的环境大多是短暂的按需基础架构,可能被网络罪犯用来执行其恶意活动。 尤其是虚拟层和容器的短暂性阻碍了任何类型的数字调查或取证分析。 本文分析了Docker环境下网络取证调查的不同方法。iptables是一个防火墙规则数据库 虚拟化需要适应性的数据包捕获技术,如iptables操作、访问内部网桥或虚拟网络集成电路以及使用基于软件的技术。 我们建议在Docker集群中使用进一步的监控过程来实现有效的数据包捕获并收集所有相关的网络数据包。 因此,我们根据相关容器的参数定义了适当的数据包捕获技术。
关键词: docker,网络取证,虚拟化
l文章原文:战神19号:第14届可用性、可靠性和安全性国际会议记录2019年8月货号:44第1-7页 https://doi.org/10.1145/3339252.3340505
源码: https://github.com/dfeu/MonDock
1 介绍
自2000年代初以来,随着虚拟机使用的增加,虚拟化的使用变得越来越重要。 虚拟化促进了服务器和所需服务的快速供应,另一方面通过提高这些系统的整体资源利用率来减少硬件设备的数量。 但是虚拟机的操作开销仍然很高,一个只有几个依赖项的小型web服务需要完整的操作系统安装和配置,包括安全问题、程序依赖项和必要的配置。 如果出现安全更新、错误修复或系统升级,则必须重新安装、重新配置或重新投资相关服务。
本文其余部分的结构如下。 在本节中,我们将描述Docker提供的不同网络技术,以互连正在运行的容器,并解释网络取证调查。 在第2节中,我们列出了与虚拟环境中的数字调查相关的相关工作。 在第3节中,我们讨论了在基于Docker的容器环境中捕获相关网络数据包的不同技术。 在第4节中,我们评估了不同的技术,并提出了MonDock,一个监控Docker群集的工具。 第五部分,总结了我们的论文,并对未来的研究进行了概述。
1.1 Docker-Networking
容器有助于在现代it环境中提供比过去几年任何其他技术都更快、更容易的应用程序。 容器将应用程序的代码、所需库及其依赖项合并到一个软件中,该软件在不同的计算环境(如Linux或微软视窗)上运行,没有任何更改。 随着基于容器的技术(如Docker)的使用,服务的提供变得更加容易和快速,开销也更少。
Docker已经成为快速和高动态数据中心容器的领先实现[4]。 借助Docker,用户、开发人员或管理员能够灵活、几乎独立于操作系统地安装、配置和维护他们所需的服务。
**Linux Containers:一种基于容器的操作系统层级的虚拟化技术
OpenVZ是开源软件,是基于Linux平台的操作系统级服务器虚拟化解决方案**
其他系统如Linux Containers (LXC) [2]、jalls[9]或OpenVZ [25]比较老,但它们使用类似的方法。 Docker以及其他容器技术减少了总体资源使用,提供了改进的可扩展性和可用性,并实现了底层操作系统的独立性,这增加了现代it基础架构的灵活性。 Docker提供了各种联网方式,每种方式都取决于运行容器的数量及其交互。 单一运行的容器通过所谓的docker0接口连接,该接口由相关主机上的docker软件创建。
**eth0是光纤以太网接口卡。学名Fiber Ethernet Adapter0, 遵循以太网通信协议进行信号传输,一般通过光纤线缆与光纤以太网交换机连接。**
docker0是一个虚拟的以太网桥,一端与主机相连,另一端与连接到容器的具有唯一名称的虚拟网络接口卡(vNIC)相连。图1显示了这种类型的互连。
Docker使用网络名称空间为独立的容器创建独立的网络。 每个容器都有一个分配的vNIC,vNIC连接到一个独立的名称空间,因此它有自己的ip地址、路由表、ARP表和网络设备。 连接到相同名称空间的容器的行为类似于基于硬件的网络,因此这些容器能够在这个虚拟环境中进行通信,而无需进一步的管理工作。 用户能够在Docker环境中创建自己的网络,这进一步增加了容器环境的灵活性。
默认情况下,外部主机无法访问Docker容器。 通过创建到所用端口1的端口转发,Docker方便了对内部容器的外部访问。 在这种情况下,Docker使用netfilter/iptables将网络数据包转发到指定的端口。
如果创建了一个Docker集群,Docker会创建一个覆盖网络,用于该集群的相关容器的通信。 所有连接到覆盖网络的容器都能够使用相同的传出ip地址,这增加了可用性。 除此之外,群管理器通过将公共ip地址分配给所涉及的服务来提供入口负载平衡。 在内部,管理器将请求分配给分配的群成员,这实现了内部负载平衡[6]。 因此,这两种技术都提高了服务的操作可用性。
1.2 Network Forensics
**网络取证是对网络流量进行分析,以收集内部和法律调查中使用的信息。除了用于调查目的外,网络取证也是用于系统安全的入侵者检测