开合软件

资金分析研判专家

客服微信
客服微信

查看: 2458|回复: 0

对APK文件的程序功能性鉴定

[复制链接]

82

主题

97

帖子

396

积分

内部人员

Rank: 16Rank: 16Rank: 16Rank: 16

积分
396
发表于 2019-4-19 17:01:07 | 显示全部楼层 |阅读模式

随着智能手机的普及和互联网技术的发展,各种移动终端软件应运而生,在方便人们生活、工作、学习的同时,也给移动网络安全带来了极大隐患。

Android平台兼具开放性和高效性,广受用户青睐,大量智能终端的生产商和开发者加入Android阵营,让其成为黑产分子眼中的香饽饽,成为各种恶意应用和手机病毒的主要攻击对象。

2017年全年,累计截获Android平台新增恶意软件样本757.3万个,平均每天新增2.1万;从手机用户感染恶意软件情况看,累计监测到Android用户感染恶意软件2.14亿。Android平台新增恶意软件主要是资费消耗,占比高达80.2%,相比2016年增加了6个百分点。2017年恶意软件使用了多种新技术,分别是针对系统运行库的攻击,利用Telegram软件协议远控,手机挖矿,手机僵尸网络发起DDOS攻击,使用SOCKS代理和SSH协议穿透内网防火墙,恶意软件多级化,滥用应用多开技术以及高级定向攻击持续化。在恶意样本上利用的安卓漏洞主要有屏幕录制漏洞(CVE-2015-3878)、脏牛漏洞(CVE-2016-5195)、TYPE_TOAST(CVE-2017-0752)和Janus安卓签名漏洞(CVE-2017-13156)。(本段数据来自360互联网安全中心和360烽火实验室出品的安全报告节选)

在历年的送检案件中,我司鉴定所对Android平台恶意软件类案件的鉴定量也为数不少,本文选取了一例关于恶意APK的鉴定作为案例分享。

【案情简介】
犯罪嫌疑人潘某等人以校讯通、违章查询等方式发送含有木马病毒的链接给受害人,诱惑被害人下载安装带有病毒的应用,从而获取被害人的隐私信息,骗取受害人钱财。为鉴定潘某所使用的软件是否留有后门,办案机关委托盘石软件(上海)有限公司计算机司法鉴定所对该APK软件进行鉴定。

【鉴定过程】

1虚拟机创建


使用VMwareWorkstation程序创建新的虚拟机,操作系统为windows7,将相关APK目录文件复制到虚拟机。

2dex文件反编译


在虚拟机中将“校讯通.apk”进行解压,解压后的文件夹中classes.dex文件是java文件编译再打包而成的,使用dex2jar.bat将classes.dex进行解包,产生一个“classes-dex2jar.jar”文件。


3jar文件分析


使用java反编译工具打开生成的jar包“classes_dex2jar.jar”,对jar文件进行分析,发现恶意行为及代码片段由于代码经过混淆,故只对恶意行为进行说明。

隐藏桌面图标:类“com.phone2.stop.activity.MainActivity”,代码截图如下所示:

类“com.phone.stop.db.a.class”为代码保存数据的位置,具有保存数据、提交数据、获取数据的功能,此段代码内定义的方法内含有一个固定的电话号码和邮箱,根据其他类的调用可知,其他模块会调用这些方法向手机号码发送短信或者向邮箱发送邮件,代码截图如下:

短信获取设置:类“com.phone.stop.a.a.class”,

获取短信:类“com.phone.stop.b.b.class”,

获取联系人和手机号码信息:类“com.phone.stop.c.a.class”,

删除短信:类“com.phone.stop.c.f.class”,

发送短信:类“com.phone.stop.e.f.class”,

邮箱设置和发送邮件:类“com.phone.stop.c.b.class”和“com.phone.stop.c.d.class”,

激活设备管理器:类“com.phone2.stop.activity.DeleteActivity”,代码截图如下:

通过对“校讯通.apk”功能分析,可知其代码部分含有恶意功能模块,恶意模块的主要功能有:隐藏桌面图标,激活设备管理器,获取手机中的基本信息、短信、邮件,发送短信,发送邮件。这些恶意功能会造成用户隐私泄露。

经鉴定,送检的APK文件中含有恶意功能模块,恶意功能模块包括:隐藏桌面快捷图标,激活设备管理器,获取手机中的基本信息、短信、邮件,发送短信,发送邮件。这些恶意功能会造成用户隐私泄露。

该案件的主要鉴定方法,是通过对委托方提供的检材样本进行反编译,对反编译后的代码进行解析。通常这类案件为软件功能性鉴定,通过软件的代码分析或者功能验证,确认软件能否实现某种功能。

APK是AndroidPackage的缩写,即Android安装包(apk),通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。把android sdk编译的工程打包成一个安装程序文件,格式为apk。APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是DalvikVM executes的简称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。

apk反编译就是通过使用反编译工具,将apk文件中的源文件和资源反编译出来,得到的源文件和资源文件可以进行处理后再进行编译,以达到个性化定制、汉化apk等目的。

apk相关工具:

1.最典型的apk编译工具的核心是apktool,但是因为操作需要调用cmd命令,所以出现了很多具有可视化界面的各种编译工具,像easyapk、apkdb、doapk。

2.dex2jar.jar,将apk中的classes.dex转化成Jar文件,再通过jd-gui工具反编译jar文件。


回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

快速回复 返回顶部 返回列表