[我研究] Detecting Malicious Java Code Using Virtual Machine Auditing

Sunil Soman, Chandra Krintz, Giovanni Vigna@UCSB

关键字:

1. fine-grained access to app execution event

2. auditing

3. JVM


本项研究的原因:

所有在JVM上运行的程序在操作系统看,都是以一个JVM的Process在跑;但是实际上,JVM跑的多个Application是以Java Thread在跑。所以,提出了Thread level auditing。

主要工作:

JVM Auditing Mechanism

里面包含event driver,监控的事件有class event、system call event、JNI event和Thread Interaction event。

然后从event stream里面检测malicious java code。

相关工作:

1. intrusion detection

2. safe execution of mobile program

2.1. type-safety, load-time verification [5, 31, 40, 22, 46, 48, 11, 21, 27, 4]

2.2. mobile code的执行会不会危害到其下的系统(我理解为OS)

2.2.1. Stack inspection [16]

2.2.2. proof-carrying code [42, 10, 9]

2.2.3. software fault isolation [53]

2.2.4. code replacement [7]

3. thread termination technique

三个抽象层次的auditing:

OS level auditing

JVM level auditing

Java本身具备的安全机制:

Java authentication [17]

Java access control [2]


可利用的资源:

开源JVM - JikesRVM[1]:这个东西原来是IBM自己开发的东西,名字叫做Jalapeno;后来开源了,将名字改为了Jikes Research Virtual Machine。

STAT[26]:一个signature-based intrusion detection framework

未来工作:

第一部分 - 扩展与优化

1 支持更多event

2 reduce overhead of instrumentation

3 publish-subscribe支持

第二部分 - 关联不同层次trace,更加有效的intrusion detection

1 JVM-level trace

2 application-level trace

3 OS-level trace

posted @ 2011-08-29 16:32  shengying  阅读(248)  评论(0编辑  收藏  举报