[原创]BlackHat后续:可绕过杀软的免杀工具AVPASS?360:独家解析
发表于:
2017-8-18 11:11
6940
[原创]BlackHat后续:可绕过杀软的免杀工具AVPASS?360:独家解析
BlackHat 后续:可绕过杀软的免杀工具AVPASS ?360:独家解析
杀毒软件和病毒的对抗是一个长期的攻防过程,病毒想要入侵设备,安全软件永远是它绕不过去的一道坎。然而,在今年的全球黑客大会 BlackHat USA 2017 上,有黑客发布了一个名为 AVPASS 、用来帮助病毒绕过 Android 杀软检测的免杀工具,并宣布在 github 上公开 AVPASS 大部分的源代码。这意味着更多的病毒制作者可以利用这些代码,伪装自己的病毒,继而逃过杀毒软件的“法眼”。
据该黑客介绍, AVPASS 是一个可以探测 Android 杀毒软件的检测模型,并结合探测到的信息和混淆技术,构造特定 APK 来绕过杀毒软件检测的工具。 AVPASS 不 仅可以推测出杀毒软件使用的特征,还可以推导出绕过规则,因此,(理论上)它可以自动变形 APK ,使得任何杀软将一个恶意 APP 误认为一个正常 APP 。
对此,国内领先的移动安全机构 360 手机卫士团队和 360 烽火实验室宣布:他们在第一时间关注了 AVPASS 的发布,并对其进行了测试分析。 360 分析发现,对于采用 AVPASS 工具混淆过的 APK , 360 手机卫士的 QVM 杀毒引擎基本可以识别和查杀。同时 由于 AVPASS 修改的只是静态代码,因此对沙箱的正常识别不会造成影响。
解析: APK 易容绕过杀软 波及安全行业
AVPASS 使用 python 语言编写,可以在 Linux 、 macOS 、 Windows 上进行安装。 360 手机卫士团队研究发现,目前对 AVPASS 支持最好的系统是 Linux 。
图 1 : APK 混淆模块的部分代码
病毒传播者利用 AVPASS 的 13 个的 APK ( Android 安装包)混淆模块,可以自动生成各种混淆的 APK 。通过将不同的混淆方法及组合应用于病毒 APK 中,就可以产生大量的病毒 APK 变种,进而可以利用杀毒软件对这些病毒 APK 变种的扫描结果推导出杀毒软件的绕过规则,以此构造特定 APK 来绕过杀毒软件。
图 2 :通过 AVPASS 生成的病毒 APK 变种
为了更好地使用这个功能, AVPASS 还对开发者给出很多“贴心的建议”:尽量使用不同家族的病毒 APK ,以获得更好的结果。 AVPASS 使用 OBFUSCATION_LIST 配置中定义的不同混淆方法的组合生成变种。如果配置了 7 个混淆方法,最终会生成 127 个变种。由于混淆方法的个数是相对固定的, AVPASS 推荐开发者使用 100 以上的病毒 APK 作为输入来推到杀毒软件的检测特征和绕过规则。
接下来, AVPASS 就可以在某种程度上推测出杀毒软件的绕过规则,其基本思路如下:
将各种不同的混淆方法和混淆方法的组合应用于病毒 APK ,生成大量变种,然后将其传到 VirusTotal 并获得各家杀毒软件的扫描结果,通过分析各家杀毒软件检出与否,判断出各种混淆方法或者混淆方法的组合能否绕过该杀毒软件。
图 3 : AVPASS 中用于绕过杀毒软件的部分代码
推断杀毒软件的绕过规则的代码位于源代码目录中的 infer_rules.py 文件中,其使用方法也非常简单:只需要确保病毒在 VirusTotal 上的扫描结果在同一个目录中,直接运行下面这条指令即可:
$ python infer_rules.py -i output
执行命令后会生成一个名为 inferered_rules.pkl 的文件,里面存储着针对每一个杀毒软件的推断结果。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课