[我研究]Identifying Dormant Functionality in Malware Programs

Paolo Comparetti@SecLAB & UCSB

背景

静态分析平台可以防御packingobfuscation技术。但是在小段时间里只能执行一小部分代码。

很多恶意代码都共享代码段。

 

现在的方法

1提高代码覆盖率方面

为了提高静态分析平台中的代码覆盖率,使用多路径(强制)执行,可是代价却很昂贵。

[3, 4](把conditional branch的条件取反)[5](强制执行某条路径)

2行为模型自动抽取方面

一些签名自动抽取 byte strings [7]token sequences [8], control flow graph [9], 但是没有语义;有语义的code template[10]malware blueprints[11],但是只对一种实例(instantiation)建模。

 

 

解决的问题

提高静态分析工具中的代码覆盖率,降低分析的成本。

 

本文的方法

1. Reanimator - (虽然不能发现新的恶意行为)

利用动态执行时发现的恶意行为,对恶意行为对应的二进制部分进行抽取并建模;然后利用这些模型来静态检查其他例子(已经被Unpack的了)中有没有相同但在动态执行的时候没有被检查出来的恶意行为(Dormant Functionality)。

 

2. 自动建模 - functionality-aware

 

关键的步骤

1malware phenotype - 用语言定义specification,描述安全相关行为

[12, 13, 14]

2、与phenotype对应的代码级别的模型genotype

posted @ 2011-09-29 20:45  shengying  阅读(305)  评论(1编辑  收藏  举报