能力值:
( LV2,RANK:10 )
|
-
-
2 楼
被压缩过的东西,用特征码好像不好对应吧
|
能力值:
( LV13,RANK:220 )
|
-
-
3 楼
整个apk做md5。没啥不好对应的啊
|
能力值:
(RANK:270 )
|
-
-
4 楼
主要的问题正如你所说,出在样本捕获上。类似于DroidDream的植入型病毒同时植入到多个app中,像Pjapps、Geinimi等更是已经出现了百余变种,几乎不可能完全捕获,即便捕获,还需要人工分拣判定。所以仅靠apk的md5,漏报是必然的。
解包->dex格式识别->用恶意代码的class和method名来判定,是目前的一种主流做法,可以实现精确地判定。文件哈希是辅助手段,而且不一定是apk的哈希,例如F-Secure就是对classes.dex做哈希的。
|
能力值:
( LV9,RANK:260 )
|
-
-
5 楼
学习了!这种方式确实比整个apk校验md5值强大很多,类似于特征码识别了。不知这样的检测是否耗时?另外说到Geinimi,大牛觉得它是手动植入app的呢,还是自动感染的?现在似乎Android App还没有一款真正意义上的“病毒”,因为无法实现自我复制通过感染其他app来传播自己。
|
能力值:
(RANK:270 )
|
-
-
6 楼
在宿主系统上感染的,没有出现。有两点原因:
1、Android本身的安全机制限制。比如说,权限是在软件安装时注册到系统中的,安装完以后即便“感染”,也无法获取运行所需权限。签名是否一个问题,还没有考虑过。
2、dex格式的问题。结构性比较强,交叉索引很多,而且对所有符号和名字信息要求排序,所以直接“感染”dex文件的难度极大。但也不是没可能,只是没出现。而我认为没出现的原因是,不必这么做,已经可以攻击了。
dex格式对Android安全的意义,几乎相当于PE格式对Windows安全的意义,这个应该是重点学习和研究的对象之一。但是大家似乎都把注意力放到了如何用smali等工具上了。
时间问题我没有测试过。但个人的感觉是,Android中使用的格式,例如axml、dex等,都专门为解析而做了优化,毕竟经常要在移动设备中解析。所以做这种解析获得精确的检测效果,是值得的。
没做geinimi的家族分析,所以还有一个问题没法回答。
|
能力值:
( LV9,RANK:260 )
|
-
-
7 楼
恩,签名、权限……对Android已安装程序的感染现在确实还没有很好的办法。可能也是因为这个原因,所以大家都没将精力放在dex格式解析上来吧!不过dex格式解析,对恶意App的扫描识别,应该也是必须的。
有机会大家可以一起研究讨论下!
|
能力值:
( LV13,RANK:220 )
|
-
-
8 楼
通过牛牛的指引,恶补了下Apk反编译用的几种方法,如下:
1.apktool+auto_sign
2.batsmali+smali
3.dex2jar+jd_gui
4.模拟器中自带的dexdump.exe
(另:AXMLPrinter2.jar还原.xml文件)
上面的4种方法均可以获取apk中用到的class及method。个人感觉dex2jar+jd-gui更牛。apktool+auto-sign可以用来感染apk。
但上述方法基本均是手动或弄个批处理。如何用代码实现classes.dex文件中class,method名的查找呢?
|
能力值:
( LV13,RANK:220 )
|
-
-
9 楼
classes.dex做hash,跟apk直接hash,感觉并无本质区别嘛。还是不能解决变种问题。
|
能力值:
( LV9,RANK:260 )
|
-
-
10 楼
我理解bughouse的意思:目前主流的解决变种问题的方法是“解包->dex格式识别->用恶意代码的class和method名来判定”。而“文件哈希是辅助手段”。
|
能力值:
( LV13,RANK:220 )
|
-
-
11 楼
这个我能理解。只是想想这个dex的hash跟apk面临着一样的问题。而且还得从apk中解压。而效果跟apk做hash一样。
不知这个主流的class+method名方法,怎么用程序实现?
|
能力值:
(RANK:270 )
|
-
-
12 楼
dex解析需要自己写代码,没有现成的工具。
Android源码中包含了相关文档、解析源码(有点乱),至少不需要对格式做逆向了。
apktool是一个集成工具。
dex2jar的结果有很多错误,请参考我在本版另一帖的说明。不要太依赖这个……
只有smali和ddx是严格按照dalvik指令格式解析的,是一种精确的解码。也因为如此,所以可以将smali文件再编码为dex代码执行。
签名可以作为白名单,权限可以作为启发式,但全线本身不是本质性的恶意,所以不能作为决定性因素。
对classes.dex做哈希只是F-Secure的一种策略。zip解包是任何反病毒引擎都要做的,而且是迭代地解,用dex便于实现归一化的检测策略。
解释一下这个意思:在这种策略下,引擎结构是:只要是压缩包就解开,直到不是压缩包为止,然后哈希再到库里匹配。
而不用这种策略,引擎结构式:对压缩包,判断是正常压缩包,还是apk文件,如果是前者,解包并继续迭代,如果是后者,对apk文件做哈希。。。
|
能力值:
( LV13,RANK:220 )
|
-
-
13 楼
用class+method做特征,要是加了混淆呢?
|
能力值:
( LV9,RANK:260 )
|
-
-
14 楼
有道理。那就直接反编译过来,扫描检查smali代码。定义某种方法或类的调用组合关系为恶意行为。
|
能力值:
( LV13,RANK:220 )
|
-
-
15 楼
看来得研究下batsmali,或者dex格式了。
|
能力值:
( LV9,RANK:170 )
|
-
-
16 楼
回贴关注一下。
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
文件md5比较快但无法扫描变种,但如果每个apk都解压缩扫描class,在手机上执行消耗太大吧
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
我是来学习各种回复的。
|
能力值:
( LV2,RANK:10 )
|
-
-
19 楼
综合说来,看雪上的人还是比较牛的,并且能坦诚的讨论一些问题,这是我这么多年来没有离开这个论坛的原因。
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
楼主加油 ,classes.dex做哈希只是F-Secure的一种策略。这个我能理解。大家可以一起研究讨论
|
能力值:
( LV3,RANK:20 )
|
-
-
21 楼
现在的手机查毒功能都特别的快 一般都在半分钟之内完成 比如LBE 这样的软件在查毒的时候不是对其中的方法都检查吧
|
能力值:
( LV7,RANK:100 )
|
-
-
22 楼
如何检测APP,比较复杂,手法也很多。回头我几篇文献吧,国外研究的不少!
|
能力值:
( LV3,RANK:20 )
|
-
-
23 楼
目前在对权限方面做些研究。看了几篇不错的文章,对恶意软件所申请的权限和正常软件申请的权限做了统计分析,从中可以看得出,有些权限是基本存在于恶意软件而极少存在于正常软件中的;并且,恶意软件在申请的权限数量上也大大多于正常软件。 我认为权限的检测在恶意程序的检测中也是很有必要作为一部来考虑的。
对恶意样本的md5检测确实主要依赖于搜集到的样本库,这个功能也挺好实现,实际操作表明速度还是很快的,基本不费时间,所以可以作为检测的第一步。
版主所说的使用权限做启发式能否再详细说明下? 谢谢
|
|
|