by Spark Zheng @ CUHK
第一天 7月26日
会议开始,先去注册领了所有paper的纸质版和一堆乱七八糟的礼品。随后chair讲了一下会议paper的来源,大多数来自德国和美国。另外Android是今年很热的一个关键词。
Keynote: Industrial Control Systems Security
Corrado Leita (Symantec Research Labs)
这是请Symantec的研究员来做的一个演讲,主要内容是ICS(不是ice cream sandwich,是industrial control system)。同时也对病毒的发展历史做了个介绍,还分析了最近特别火的flame病毒。还有他们的WINE计划,可以在www.symantec.com/WINE找到介绍。
Using File Relationships in Malware Classification
这篇记不大清了,因为我把打印版的paper集扔到旅店没拿(太沉了),网上也找不到pdf和ppt……估计过两天能在库里搜到。是微软研究院的人做的利用文件之间的关系给malware分类。比如说A zip文件包含了a、b、c三个文件,另一个B zip文件包含了a、b、d文件,然后这两个Zip之间就会有相似性。当然也可以运用到Android上,因为apk本身就是个zip嘛。
Understanding DMA Malware
这篇paper介绍了一种开机自动加载进入内存的病毒。DMA means Direct Memory Access。这种病毒已经无限接近于硬件病毒了,无视操作系统(最新的windows和linux都ok),可以进行键盘记录。运行的时候会扫描内存,寻找感兴趣的string,记录下来,或者记录键盘的敲击。
Large-Scale Analysis of Malware Downloaders
这篇paper的作者首先介绍了一下他们实验室已经做了好多年的malware dynamic的研究并拥有n多w样本。于是在这n多w样本中找出了11个至少活跃了一年的和18个依然活跃的downloader。随后对这些downloaders进行分析,找到了219依然活跃的C&C servers, 还进行了一些对于加密信息传输的研究。
Invited talk: The state of mobile security
这是邀请来的一个speaker,是iseclab的成员。从IOS和Android的基础讲起,把几乎所有的安全问题都讲了一遍,用到了好多用ida分析的例子。其中还讲到了怎么让apktool反编译失败dex,是在dex的指令序列里加入一些奇怪的跳转。还有ios的好多exploits和病毒,还有Android的静态和动态分析的内容(比如他们实验室研发的app分析系统:http://anubis.iseclab.org/)。这是一个非常好的一个talk,但他留下来的ppt只有首页,所有的内容都没给,我也没录音。看样子想了解他讲的东西只能通过他的主页找了:http://www.iseclab.org/people/pizzaman/
Juxtapp: A Scalable System for Detecting Code Reuse Among Android Applications
这是一个UC Berkeley的phd讲的找code reuse的系统。和jiang的fuzzy hashing那篇几乎没啥区别,除了算法从fuzzy hashing变成了feature hashing。并且对于const string混淆的应对能力弱到爆。不过这位童鞋也意识到了这点,估计是看了我的那篇paper,于是又透漏了好多他们现在做的工作,比如说用文件结构树来比较,以及对付混淆的方法。
ADAM: An Automatic and Extensible Platform to Stress Test Android Anti-Virus Systems
这是我的那篇文章,讲的是用3种repackaging和4种code obfuscation的方法来对Android malware进行混淆,不需要源代码(因为基于reverse engineering),全自动。类似于smali版本的proguard。 随后用了222*8个sample测试了40种anti-virus products. 通过结果,我们分析出大多数的anti-virus不是靠简单的apk md5或者dex md5来当作signature的。不过有很多是采用固定地址的binary code of dex file来取signature。但是rebuilt的过程会改变class order,所以如果class order变了,取的signature就会改变。还有许多anti-virus engine是采用方法名啊,类名啊,一些string啊来当signature的。缺点也很明显,容易被混淆击败,并且有很多的false positive。比如说你建个有com.geinimi package的app,里面一句代码也不写,却会有很多杀软报告这是geinimi的病毒。比较失败的是:我怕时间不够用,于是讲得很快,结果没有控制好时间,15分钟就讲完了,然后一群对对我进行了长达15分钟的Q&A……
然后有一段poster和discussion的部分,讲完筋疲力尽,木有参加,果断回去睡觉了。
第二天 7月27日
Invited talk: Defending Against Return-Oriented Programming
讲了一下exploit的历史,然后讲了现有的ROP的攻击方法和例子,同时提出了一种based on local machine的defense方法,也发布了一个系统用来防止文件被用来进行ROP exploit, 当然也有破解方法,那就是based on local machine的ROP compiler……更神级的东西了。很牛B的talk。于是去网上查了一下,发现这是今年oakland的paper,怪不得这么强大。
Read the paper. Get the (Orp: in-place binary code randomizer) code from http://nsl.cs.columbia.edu/projects/orp/.
A Static, Packer-Agnostic Filter to Detect Similar Malware Samples
讲了一种静态的方法,不用运行程序,也不用unpack pack过的程序来进行malware的相似度检测。大概是利用了一些加密原理的缺陷,然后不需要解密就可以进行相似度检测。大概是这样,这篇木有仔细听。
Experiments with Malware Visualization
说是malware变种比较的Visualization。其实就是字符串比较的Visualization而已。把malware的指令啥的转换成字符串,然后采用图像中常用的一种pin的算法,生成一个二维图。然后观察图像能发现很多有趣的现象,可以通过看的方式发现一些变种和原始病毒的变化。其实没啥用我感觉,PE的malware多的都几百万了,怎么可能看的过来。
Tracking Memory Writes for Malware Classification and Code Reuse Identification
虽然是篇short paper,但却非常有意思,讲的是如何利用动态的memory读写序列来进行malware的classification。首先是比较相似度的方法,大概是:先用虚拟机跑malware,记录malware对memory的读写操作,然后这个行为可以看成是一个字符串。随后进行一次快速比较,用来快速找出哪些section有大概的相似性,因为这个string可能非常长,要是进行完全匹配太浪费时间。随后利用一种diff-based LCS approach(改进后的LCS算法)进行完全匹配,最后计算得分(0~1)。
然后利用这种比较相似度的方法做了两个app:一个app是进行malware分成N组的clustering。Clustering就是data mining提到的,把一堆malware分成N组,但与classification不同的是不对分类器进行训练(training and testing)。首先是用pre-clustering来选出N个cluster leader, 然后采用Inter-cluster merging 来对剩下的malware进行分组(找最接近的cluster leader)。另一个app是Code Reuse Identification。这里除了基本的比较相似度以外还利用了一种map back的approach来找到是哪里的代码被reuse了,而不单单是知道code被resuse了。最后又做了一些实验来证明这个方法的有效性。
System-level Support for Intrusion Recovery
这个有点像mac的time machine,在server端同步着一个相同的虚拟镜像,同时记录memory和desk的各种行为。如果anti-virus发现病毒的话,立刻使用最新的没被感染的镜像开始回滚,同时模拟记录的操作执行到当前状况,但删除了malware对系统所做的那些行为。Q&A一直围绕着怎么样判断哪些行为是恶意行为讨论了很久。
NetGator: Malware Detection Using Program Interactive Challenges
这篇好像是讲利用malware不像人一样智能,在访问网络的时候加了一层检测,因为是人为加的,malware之前的设定并不知道,所以恶意行为无法执行。类似于防止CSRF的攻击?比如说app正常访问Internet相当于穿过一扇门,但我们系统设定app必须穿过两道门才能访问Internet,然后malware执行的时候不知道,就无法产生恶意行为。类似于一种变相的防火墙吧。
SmartProxy: Secure Smartphone-Assisted Login on Compromised Machines
就是让smartphone变成一个硬件防火墙。 电脑连接smartphone用手机的3G上网或者电脑的网络先经过smartphone,然后再上网。这个让我想到了Ubuntu出的那个smartphone版的ubuntu系统,以后办公室只有个显示器键盘鼠标就够了,然后大家都用自己手机当主机用。
BISSAM: Automatic Vulnerability Identification of Office Documents
这个是讲一个自动漏洞检测系统来找word, excel啥的office文件的一些漏洞。
Self-organized Collaboration of Distributed IDS Sensors
听了一天已经听晕了,梦游中……
Shedding Light on Log Correlation in Network Forensics Analysis
大概是在snort基础上搞了个log的规范,然后可以对茫茫多的log用decision tree或者SVM (各种data mining)进行分类,就可以让随后的入侵检测分析变得很简洁方便有效率。
OK,终于结束了。同时宣布了下一次DIMVA13的举办时间和地点:2013年7月在德国柏林.
能否提供这些paper的下载
过去几年,DIMVA都不提供论文的公开下载,而是结集出版。从学校数据库找吧。。