栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

(论文笔记02. A Process Coloring Approach(CCF B) 2006)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

(论文笔记02. A Process Coloring Approach(CCF B) 2006)

Provenance-Aware Tracing of Worm Break-in and Contaminations: A Process Coloring Approach(CCF B) 1.Abstract

为了研究自传播网络蠕虫的利用和污染,需要一种来源感知的跟踪机制。来源不明导致难以快速准确地识别蠕虫的入侵点(即,在受感染的主机中运行的远程可访问的脆弱服务),并且会引起大量的日志数据检查开销。本文介绍了一种基于源头感知的蠕虫入侵和污染追踪方法——进程着色(Process Coloring)法的设计、实现和评价。

更具体地说,进程着色为每个远程访问的服务器或进程分配了一个“颜色”,一个唯一的系统范围的标识符。颜色将被派生的子进程继承或通过进程动作间接扩散(例如读或写操作)。

1.1进程着色

进程着色带来了两个优点:

  1. 它可以在详细的日志分析之前,快速基于颜色来识别被蠕虫利用的断点.
  2. 根据关联的颜色对日志数据进行自然分区,有效地减少了需要检查的日志数据量,相应地减少了调查的日志处理开销
1.2基于虚拟机的自省技术

基于虚拟机自省技术(introspection technique),开发了一种防伪的日志收集方法.

2.Introduction 2.1对抗蠕虫病毒的要点

在对抗蠕虫时,以下任务对了解蠕虫的利用细节和从蠕虫污染中恢复受感染的宿主至关重要:

  1. 确定入侵点,即蠕虫通过其感染受害者的脆弱的、远程可访问的服务.
  2. 确定蠕虫在受害者体内驻留期间造成的所有污染和损害。要执行这些任务,需要进行各种入侵分析.
2.2基于日志的入侵分析工具的挑战
  1. 许多工具依赖于外部确定的检测点,从检测点开始对入侵的入侵点进行取证调查。然而,由于蠕虫“从感染到检测”的持续时间可能很长,当这样的检测点被识别时,可能需要几天或几周的时间。因此,希望日志数据包含更多的信息,并提供“线索”,以发起更及时的调查。
  2. 当前操作系统缺乏在日志分析之前对日志数据进行预分类的来源感知机制,系统产生的日志数量巨大,未分类的大容量日志数据可能会导致蠕虫调查持续时间长、开销大。尽管人工调查人员可以提供启发式方法(如Backtracking Intrusions中的“过滤规则”)来减少要检查的日志空间,但这种启发式方法可能会导致蠕虫调查结果的不准确或不完整
  3. 许多基于日志的工具没有解决防伪日志收集,而这在处理高级蠕虫时至关重要。
2.3 进程染色的提出

在本文中,我们提出了进程着色的设计、实现和评价,这是一种有效的来源感知方法,蠕虫入侵和污染调查。更具体地说,进程着色将一个“颜色”,一个唯一的系统范围的标识符,关联到每个远程访问的服务器或进程——一个潜在的蠕虫入侵点。颜色将直接继承任何派生的子进程,或通过进程的操作间接扩散(例如,读或写操作)。结果,任何进程或对象(例如,文件或目录)受彩色进程影响将被相同的颜色污染,这在相应的日志条目中被记录。工艺着色自然带来以下两个关键优势:

  1. Color-based identification of a worm’s break-in point(基于颜色的蠕虫侵入点识别):原来的脆弱服务被蠕虫利用作为侵入点,所有被蠕虫感染的进程和被污染的对象都将被与原来的脆弱服务相同的颜色所污染。通过简单地检查任何与蠕虫相关的日志条目或任何受蠕虫影响的对象的颜色,在详细的日志分析之前,可以立即确定相应蠕虫的切入点(通过被不同的颜色污染来判断是受到了哪个侵入点的影响,注意是不同的侵入点不同的颜色)。
  2. Natural partition of log data(日志数据的自然分类):不需要再查看全部的日志,只需要查看被染上了相同颜色的日志就可以,这样可以减少相关日志数据的数量,减少开销。
2.4 防伪日志收集

本文的模型解决了防伪日志数据记录的重要要求。虚拟机技术,如VMwareDenali、Xen和User-Mode Linux (UML),提供了比系统调用钩子机制更好的检测工具,可以安全地获取和收集内部状态,包括蠕虫利用和污染信息。采用了一种类似于tolivewire[28]的技术,并为umlvirtual machinemonitor(VMM)开发了一个扩展,用于防伪登录

3.Process Coloring Approach(进程着色方法) 3.1 Initial Coloring(初始化着色)

颜色分配发生在服务器进程启动后,但在服务客户端请求之前,蠕虫入侵系统会选择利用一个系统进程的薄弱点,所以被利用的这个进程所执行的操作都会导致相应颜色的扩散,因此,被相应颜色染色的进程,系统资源,日志实体等就可以为蠕虫的入侵提供证据。
本文采用的是:在操作系统的内核中定义一个区域(第4部分讲的是在PCB中加了一个区域)来记录进程的当前颜色(一个系统级范围的唯一标识符)。
之所以没有选择用PID(进程标识符)来及记录的原因是:即时PID可以唯一表示一个进程,但是他并不适合来表示染色。

  1. PID并不能表达入侵断点的信息 (比如僵尸网络,很难仅仅通过PID或者其父进程的PID就知道起入侵点)
  2. 进程可能会动态地将Customized Code注入一个活动进程得代码空间,这样PID就不能表示出前一个进程对后一个进程的影响(什么意思?没懂)。
3.2 Color Diffusion Model(颜色扩散模型)

在一些进程被Initial Color(初始着色)之后,颜色就会通过被染色得进程得一些活动来扩散到其他的进程上,本文研究的是蠕虫病毒,所以研究的重点是那些通过系统级的共享资源(比如文件,目录,套接字Socket)被染色的进程,通常蠕虫病毒的扩散都需要伴随着一些系统调用,通过系统调用去影响系统资源。

下表给出了一虚拟操作的染色扩散方法:

这种进程颜色的扩散会带来很多很多信息流,信息流中有着各种具体/隐藏的信息,本文指考虑通过系统调用接口来传递的信息流(进程作为Subjects,中间资源作为Objects),下面介绍两种基于系统调用的颜色传播方法:

  1. Direct diffusion(直接扩散):

1.1 Process spawning(进程增殖):如果一个进程使用fork, vfork, clone 等系统调用,那么创建的子进程就会继承父进程的颜色
1.2 Code injection(代码注入):一个进程通过注入代码来改变其他进程的内存空间,从而改变他的功能,那么这个被注入代码的进程的颜色也将得到相应的更新
1.3 Signal processing(信号执行) :进程可以发送一些特殊信号(比如kill消灭进程),因此来影响这个信息流执行的过程(颜色怎么染色这里没有说,不过参照Table1来看,destory应该是不需要染色的,直接把进程销毁了)

  1. (Indirect diffusion)非直接的扩散:从进程S1到S2可以被表示为S1->O->S2,这个O就是一个中间资源( intermediate resource),比如在进程运行过程中有些资源会动态的创建,当进程终止就会消失,还有一些资源会持续的存在(比如进程从资源中获取输入)并且在之后影响其他进程,这就属于非直接的传播,为了支持这种非直接的传播的影响的记录,为这种中间资源丰富(enhance)一个系统数据结构,之后一旦这个有进程从这个被"tainted"(污染)的资源获取输入的进程,那么这个进程就被被染上和这个资源相同的颜色

Example:

比如上图这个例子,这个蠕虫病毒通过利用Apache这个易受攻击的服务来作为切入点,在图中,椭圆代表Process,正方形代表File,菱形代表网络套接字Socket,在一开始Apache进程被染成RED,在成功利用这个点之后httpd" process (PID: 2568, color:
RED) 执行(sys-execve syscall) 影响了 “bin//sh” (2568, RED),然后执行(sys_execve
syscall)到了进程"/binhash -i" (2568, RED),然后这个进程进一步Spawns出了两个新的进程:进程 “/bin/rm-rf/tmp/.bugtraq.c” (2586, RED) and 进程 “/bin/cat” (2587, RED),他们的颜色是继承他们的父类2568的RED,之后2587进程执行write操作更新文件 (/tmp/.uubugtraq),所以这个文件也被污染为RED,然后这个文件将会被用来产生蠕虫进程来感染其易受攻击的主机。通过这种非直接的传播,被污染的程序也会被染上相同的颜色。

3.3 Log Information Collection(日志信息的收集)

进程染色使用**系统调用拦截(syscall interception)**来产生日志实体,并且用进程的颜色来标记他们。

系统调用拦截目前一般是采用系统调用为基础的钩子机制:

  1. Original system calls基本系统调用图

  2. Wrapped system calls包装系统调用

    这种方式会更改系统调用表,并且将回应调用(corresponding calls)重定向到它自己的实现,不幸的是,如果之后系统调用表被更改,那么之前的重定向和拦截也将变得无效(也就是说这种方法是更改系统调用表,当表变化之后,那么之前的拦截也就消失),这种方式容易遭受re-hooking attack

  3. Intercepted system calls拦截系统调用

    这种方式会在唤醒系统调用调度器之前或者之中拦截系统调用,这种方法也有更好的抗干扰性,但是仍然有可能被攻击。

本文的设计思路是:基于虚拟机的自省(introspection)机制,和图C的区别在于: interception happens not in the syscall dispatcher, but on the virtual machine virtualization path(拦截并不是发生在系统调用器上的,而是发生在虚拟机的虚拟路径上)这种拦截是虚拟机底层实现的一部分,因此有更加强大的抗干扰能力。

关于每个被拦截的系统调用的信息(例如当前进程、系统调用号、参数、返回值和返回地址)形成一个日志条目,该日志条目用当前进程的颜色标记。

4. Implementation(实现)

模型利用了UserMode Linux (UML),这是一个开放源代码的evm实现,其中客户操作系统直接在主机操作系统未更改的用户空间运行(And only considers the ext2 file systerrt)

4.1 Process Color Setting(进程着色设置)

在这个模型中为进程控制块(PCB)多加了一个数据结构-Color,同时增加了两个系统调用来利用使用这个Color属性(sys setcolor 和 sys getcolor),但是两种系统调用的接口一但暴露就有可能被蠕虫病毒利用,从而隐藏他们的攻击,所以本文对这个问题的解决方法是:在系统拦截中创建并维护一张分离的颜色映射表,使得进程染色这个过程只能够在服务开始的某一个时间段进行。

4.2 Color Diffusion(给出颜色扩散的具体操作)

Direct diffusion:

  1. 如果一个进程是被(fork/vfork/cIone) 这种系统调用创建的,那么继承其父类的颜色。
  2. 这里先介绍一下petrace(ptrace 提供了一种机制使得父进程可以观察和控制子进程的执行过程,ptrace 还可以检查和修改子进程的可执行文件在内存中的image及子进程所使用的寄存器中的值。通常来说,主要用于实现对进程插入断点和跟踪子进程的系统调用), 如果一个进程正在被系统调用petrace操作,那么染色将取决于系统调用的参数,如果调用参数是:(ptrace_peektext,ptrace_peekdata,ptrace_peekuser),也就是说这些都是主进程从子进程读取一些信息,子进程的颜色将被染色到主进程。相反,如果执行的参数是像(ptrace_poketext,ptrace_pokedata,ptrace_pokeuser)这种系统调用,相当于是对进程写入,那么主进程的颜色就会被染色到子进程中。
  3. 对于Signal processing,发送信号的进程的颜色将会被扩散到接受信号的进程中
  4. sys_waitpid和 sys-wair4 这样的系统调用也会导致颜色从子进程到父进程的扩散

Indirect diffusion:
非直接的扩散主要是通过中间资源实现的,

  1. 对于持续性资源,文件和目录是两个最容易被蠕虫利用的,由于它们是一种持续性的资源,所以它们的颜色需要被持续的更新记录,由于直接扩充数据结构可能会导致读写文件等过程或者底层文件系统的崩溃,所以本文作者通过观察索引结点的数据结构发现i_file_acl这个区域在ext2 文件系统中是没有用的,所以不需要额外添加数据结构,直接使用这个数据结构作为记录颜色的数据结构。
  2. 对于持续性资源,当前的模型只支持套接字、共享内存和管道。但是,对于其他非持久性资源,添加一个新的字段来记录是很容易的。
4.3 Log Collection(日志收集)

日志收集机制基于底层虚拟机实现,即uml(UML这里不是统一建模语言,而是UserMode Linux的缩写,从字面上看,是在用户态运行linux内核,即将内核当作一个应用程序在跑,这样我们就可以用调试应用层程序的方法调试内核),如图4所示。uml采用基于系统调用的虚拟化方法,在主机操作系统的用户空间中支持虚拟机。

利用ptrace的能力,会有一个特殊的线程被创建来拦截VM中任何进程发出的系统调用,并将它们重定向到用户操作系统内核。系统调用日志收集的拦截器位于系统调用虚拟化路径上。因此,它可以抵抗VM内部运行的恶意进程的篡改。

而且,一旦拦截器收集了一定数量的日志数据(例如16K),日志数据将被下推到主机域(Host domain)。这样做的一个重要的好处是,在主机域中对日志文件的分析不会中断VM的正常执行。这就产生了基于染色日志数据的外部运行时系统监控(external runtime system monitoring)的可能性。(应该是说这样处理带染色的日志数据开销会比较合理吧)

5. evaluation 5.1 实验环境和运行时开销

本文使用McVoy的LMbench[40]进行了一系列实验,这是一套针对UNIX平台各种子系统的基准测试。实验是在运行Linux 2.4.18的戴尔PowerEdge 2650服务器上进行的,该服务器使用2.6GHz Intel Xeon处理器和2GB RAM。
本文进行了三组实验,将LMbenching运行在:

  1. Original Linux kernel (Linux),
  2. Unmodified UML kernel (UML)
  3. Modified UMLkernel with process coloring capability (COLOR)


如上图所示,图( a )是3种方法的进程操作开销,图( b )是context switch times (环境交换次数?)图( c )是文件和虚存的延迟。
从上面这几张图看的出来,由于用户级的应用(UML)使得开销较原始系统有了很大的提升,但是可以看出CLOLR系统对UML来说,开销的增加并不大,原因在于:

  1. 拦截器的位置:通过在系统调用虚拟化路径中定位拦截,我们的原型可以避免额外的上下文切换系统调用,这在其他系统调用拦截方案[39]中是需要的。
  2. 日志数据下推不会在每次系统调用时执行。相反,一个内部缓存(l6K)被维护来分摊整个磁盘写操作。
  3. 我们注意到过程着色并不依赖于特定的虚拟机平台,造成损失降低的主要因素是虚拟机本身而不是过程着色造成的,未来使用性能更强大的虚拟机能进一步增强其效能。
5.2 真实的蠕虫病毒测试

本文测试了三种蠕虫病毒Lion Slapper SARS
使用了一种虚拟分布式的蠕虫场地-vGround,这是一个现实的、受限的、缩小的网络环境,由网络实体和终端主机组成,它们是由具有过程着色能力的虚拟机实现的。
其具有以下优点:

  1. vGround使创建运行真实服务的虚拟机以及作为服务客户端运行的虚拟机变得简单而高效。
  2. vGround通过限制vGround内的所有流量来实现安全的蠕虫实验。
  3. vGround有助于用多载体蠕虫(如拉面蠕虫[4])进行实验,这种蠕虫通过不同的切入点感染不同的宿主(vm)。

进程染色有以下几个关键的好处:

  1. 我们可以在详细的日志分析之前就识别出蠕虫的入侵点
  2. 在染色的情况下,需要被详细审阅的日志会有所减少,由于日志会被染色自然的分类,所以不断增加的后台服务访问( background service accesses)将会进一步减少与蠕虫相关的日志信息(我感觉应该是:访问会导致染色,染色会导致自然分类,从而更好地判断哪些日志是有用的信息,然后减少需要审阅的日志)
  3. 由于日志分析之前就知道入侵点,所以可以进一步根据入侵点过滤掉那些和入侵点有关的正常访问(和蠕虫病毒感染有不同的足迹的正常访问)

下面部分介绍3种蠕虫病毒的调查结果:

5.2.1 Lion Worm Contamination Investigation 5.2.2 Siapper Worm Contamination Investigation 5.2.3 SARS Worm Contamination Investigation

具体不在这里展开

6. Other Applications and Possible Attacks 6.1 Other Applications 6.1.1 Malware investigation

进程染色可以自然支持于恶意软件调查,其目标是:理解恶意软件可能的行为和对系统的影响,从而更好的引导系统从恶意软件的感染里修复自己,着色过程非常有效的暴露了以下两个有趣的异常点:

  1. Color Mixing(颜色混合):就是可能会遇到不同的颜色会扩散到一个已经被染色的进程上的情况,这表明这个进程被另一个不同颜色的其他进程所影响,考虑到最初给相互无关的服务流程分配了不同的颜色,这种跨服务影响很可能是一种异常现象,需要进一步研究调查。
    例子:我们在一个VM中运行Bind和Apache服务,并让Lion蠕虫通过bind vulnerability感染vm。Lion通过替换索引来污染系统。我们观察到记录后续web访问的日志条目带有colors of both Bind and Apache(为什么会这样?)

  2. Dangling File(文件悬挂):识别悬垂文件实际上可以帮助揭示rootkit的存在(不懂!)

6.1.2 Run-time monitoring and log visualization

日志下推机制(这个机制的实现原理到底是什么)和基于颜色的日志分区提供了一种方便的方式,可以从外部监控网络服务器系统的运行状态,而不中断系统的操作,过程着色可用于识别运行时日志颜色所显示的可能异常(例如,颜色混合,特定颜色/服务的日志模式偏离),从而发出更及时的警报。本文作者目前正在使用一种日志可视化工具扩展其原型,这使得管理员更直观地监控系统状态。

6.2 Possible Attacks and Counter-Measures(可能的攻击和对策)
  1. Jamming attack:蠕虫可以故意引入许多噪声日志条目来隐藏它的实际意图。例如,蠕虫可以调用大量无害的或不相关的系统调用,只是为了隐藏其真正的感染尝试。这些日志也会被染上特定的颜色,从而也会触发警报,基于颜色的蠕虫入侵点识别能力在这种攻击下仍然有效,尽管需要更仔细的分析来揭示模糊的意图(我感觉对于这种攻击分析会导致分析大量的无用日志,这一点还没有解决)
  2. Low-level attack:活动的进程和中间资源相关的颜色的完整性对蠕虫研究至关重要。由于当前的原型在被检查的系统内核中维护着颜色信息,因此这些信息有可能被某些低级攻击所操纵。目前已经提出了CoPilot[43]、Livewire[28]和Pioneer[46]等解决方案来解决内核完整性问题,一种可能的对策是创建阴影结构(shadow structure),它由虚拟机监视器(VMM)维护,并且完全无法从虚拟机内部访问。与现有原型相比,影子解决方案在从虚拟机内省收集的底层信息中提取虚拟机操作语义方面面临更大的挑战,这可能会影响蠕虫调查结果的准确性和完整性。
  3. Diffusion-cutting attack:比如通过一个入侵点进行入侵之后盗取了密码,然后使用密码从另外一个入侵点进行入侵,系统是无法将这两个入侵点联系在以前的,然而,第二次入侵的任何异常都会立即暴露负责的登录会话,这也许能够识别被破解的密码。基于第一次入侵的日志数据,管理员可能仍然能够将这两次间断的入侵联系起来。(还是非常的麻烦)
  4. Color saturation attack:如果蠕虫知道配色方案,它可能会尝试从不同的服务获得更多的颜色后,这样相关的颜色不能唯一地识别断点,然而,颜色饱和攻击将立即导致警报颜色混合-会触发进一步的调查。颜色饱和攻击暴露了一个弱点,本文目前的原型使用单一的颜色进行。尽管本文的模型是可以适配多种颜色的(每一个不同的比特位就可以代表一种颜色),但是无法区分继承来的颜色和扩散来的颜色:继承的颜色进程只能从它的父进程继承,不会被它自己或别人的行为改变。另一方面,扩散的颜色通过它自己或别人的动作(例如sys-read sys-write)来反映颜色的扩散。有了这种区别,继承的颜色可以用来划分日志数据,而扩散的颜色可以用来检测颜色饱和度攻击,并自然地识别所有混色点,以便进一步检查受影响的分区。
7 Related Work
  1. 过程着色可以集成到现有的基于日志的入侵调查工具中,从而使它们变得具有来源意识:
    BackTracker识别可能影响这个检测点的文件和进程,并显示的依赖关系图。backtracker的后续工作提出了一种前向跟踪功能,该功能可以在回溯会话之后识别所有可能由入侵造成的损害。BackTracker以及 forward tracking 都需要整个日志数据作为输入。通过过程着色增强,可以首先通过检测点的颜色识别入侵点蠕虫,并通过基于颜色的日志分区减少输入日志数据量,从而实现更高效的回溯和前进跟踪会话。此外,日志条目的颜色和模式可能在运行时提供警报,从而导致更及时的调查。

  2. 进程着色也可以应用于增强文件和事务修复/恢复系统

  3. 过程着色作为一种高级的日志记录机制,可以集成到其他基于虚拟机的网络系统中,为这些系统添加源感知。

8 Conclusion

本文提出进程染色(Process coloring)一种新颖的系统方法,可以感知源跟踪蠕虫入侵和污染。通过为每个远程可访问的服务关联一种独特的颜色(目前我认为是不同的入侵点有不同的颜色,不一定对,我暂时这么理解),并根据系统中进程执行的操作扩散颜色,进程着色实现了两个关键好处:

(1)在详细日志分析之前基于颜色识别蠕虫的侵入点。

(2)基于颜色的flog数据分区。过程着色改进了基于日志的蠕虫调查工具,减少了要处理的条目的数量,并提供了与颜色相关的“线索”,以便更及时地调查。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/450593.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号