涉诈APP安装包解析及信息应用探究
2023-01-04黄娟娟陈东明邓旭龙
黄娟娟,陈东明,邓旭龙
(1湖南警察学院,湖南 长沙 410138;2 湖南省公安厅刑侦总队,湖南 长沙 410001)
近年来,“互联网+”产业新模式在推动经济增长的同时也为诈骗活动提供了契机,诈骗犯罪者利用虚拟网络实施犯罪,行为更加隐蔽,给案件侦破工作带来极大难度,严重侵害人民群众的财产权益,影响社会和谐稳定,社会反响极为强烈。根据公安部的数据,2020年全国共破获电信网络诈骗案件25.6万起,抓获犯罪嫌疑人26.3万名[1]。
为加大打击力度,公安部提出“2021年实现电诈案件现场必勘”,牢固树立“手机是电诈案件第一现场”理念。通过对被害人手机中涉网电子数据的勘查,可为侦办涉网新型犯罪案件提供证据与线索。根据公安部网站信息,2020年以来,通过虚假APP实施的电信网络诈骗案件高发多发,诈骗团伙利用虚假APP实施的电信网络诈骗案件占该类案件约60%[2]。经查询,发现仅2021年有1篇关于安卓手机APK程序逆向分析取证的研究,暂无关于涉诈APP安装包解析及其信息在打击电信网络诈骗犯罪中应用的专门研究。而侦查部门过去主要是对资金流和信息流进行研判,对涉诈APP相关信息缺乏知识支撑,面对勘查到的海量涉诈APP数据无处下手,导致大量有效信息被搁置。因此,有必要重视对涉诈APP相关信息的研究。
本文针对涉诈APP安装包的解析方法及其优缺点进行分析,并对解析信息在公安工作中的应用进行了初步探讨,对侦查和预防打击此类犯罪有一定指导作用。
一、APP安装包解析的含义与重要性
(一)APP安装包解析的含义
APP是Application的缩写,是指为完成某项或多项特定工作的计算机或移动设备程序。随着移动互联网和智能手机的迅速崛起,我国移动APP数量已超402万,类型多种多样[3]。据调查,当前电信网络诈骗案件中,手机APP安装包常见有安卓系统的APK和IOS系统的IPA两种文件格式。由于安卓系统的开放性,使得当前APK文件在查获的涉诈安装包中占比最大。
APP安装包解析是指使用APP解析工具,对APP安装包进行反编译,发现制作APP文件过程中使用了哪些第三方网络服务。例如:网页数据的统计、消息推送服务等,并据此找出犯罪团伙使用第三方网络服务的账号ID。
(二)APP安装包解析的重要性
1.涉诈APP是实施电信网络诈骗犯罪的主要工具。随着信息技术快速发展,各类APP已成为满足人民群众获取信息、投资理财、贷款转账等各类需求的重要渠道,在给日常生产生活带来便利的同时,也被一些不法分子用于违法犯罪活动。电信网络诈骗类案件中,犯罪分子经常采用诱使被害人访问或运行非法APP访问网站或平台,从而控制、影响被害人,实现骗取、盗取、敲诈财物的非法目的。2020年以来,一半以上的电信网络诈骗案件使用了虚假APP,其中,各类虚假交友、刷单、购物、理财的涉诈APP已经成为当前电信网络诈骗犯罪链条中的关键环节。
2.涉诈APP安装包可通过现场勘查直接获取。由于涉诈APP是被害人受诱骗安装在自己的终端设备上,因此,往往在报案时,可以通过专门的设备采集到程序安装包,即使程序已被卸载,也可以通过分发链接或二维码等信息获取涉诈APP的安装包。因此,涉诈APP安装包可通过对被害人手机进行现场勘查直接获取,获取率高,为快速打击和预防犯罪提供线索。
3.涉诈APP安装包解析信息与犯罪各环节联系紧密。被害人终端设备中的涉网电子数据向前可溯源至推送APP或网址的分发服务器或平台开发者,向后可追踪至犯罪主网站并关联网站搭建、管理、运作者,横向可辐射到APP封装打包、关联第三方服务商。因此,安装包解析信息可反映出实施电信网络诈骗不同环节多团伙信息,通过对被害人手机中涉诈APP的勘查和解析,可为全链条打击电信网络诈骗案件提供证据与线索。
二、涉诈APP安装包解析方式比对
APP安装包解析包括静态解析和动态解析两种方式,但由于大部分勘查人员不了解动、静态解析的原理、方法及区别,实践中常出现因解析不及时、不全面或方法错误而错失重要信息的现象。
(一)解析原理
1.静态解析原理
静态解析是指通过搭建反编译环境,对APP安装包进行反编译,对反编译出来的资源文件、源代码进行分析,分析出打包数据、号码、域名等信息的过程。主要借助相关技术手段对APP安装包进行静态分析,通过Apktool、dex2jar、jd-gui、jadx-guibat、Androidkiller、IDApro等工具进行反编译处理[4]。
正常的APK文件主要是以zip格式进行压缩捆绑的文档,里面主要包含AndroidManifest.xml、Classes.dex和res等文件。在反编译后会得到明文的AndroidManifest.xml,里面定义各组件、组件权限和启动位置、软件基本信息等,通过对该xml文件的分析,可以获取到软件名称、包名等基本信息,同时对包含的各个组件进行分析。
正常的IPA文件实质也是一个zip格式文档,IPA解包后并非直接放置于APPlications目录下,而是放在一串由随机码构成的目录下,在那串随机码目录下,除了IPA本身的三个组件之外,还有Library、Documents、tmp三个目录,因此对IPA文件的解析只能在特定的沙盒中进行。
2.动态解析原理
动态解析,主要是在虚拟机或者沙箱(Sandbox)环境中执行APP程序,在执行过程中,取证系统会完整地记录恶意程序的所有恶意行为[5]。对涉诈APP的动态解析主要是指通过搭建网络抓包环境,将APK文件安装到手机或模拟器上运行,对手机或模拟器进行网络抓包,分析网络抓包数据,分析出号码、IP、域名、第三方服务ID等信息的过程。所谓抓包就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,经常被用来进行数据截取等,也用来检查网络安全。通过对抓获的数据包进行分析,得到有用的信息。
目前流行的抓包工具有很多,比较出名的有wireshark、sniffer、httpwatch、iptool等,通过抓包工具可以查看网络数据包内容。如不借助专业分析平台,手工动态分析技术门槛很高,需要专业知识进行环境的搭建、通过各类抓包工具进行抓包分析。
(二)解析流程
1.静态解析流程
静态解析的流程为:一是搭建反编译环境,便于后续操作,这是解析的前提条件,如利用Apktool、dex2jar、jd-gui、jadx-guibat进行解析,前提是配置好JAVA环境,Androidkiller只能在windows平台使用;二是利用相应的解析工具对APP安装包进行反编译,对反编译出来的资源文件、源代码进行审计和分析;三是对解析出的打包数据、号码、域名等进行分析。
只要能获取用于安装涉诈APP的程序包,即使涉诈APP的后台已经关闭,程序无法运行,也能开展静态解析。手工静态分析技术门槛高,一般需要专业知识和一定的编码能力及逆向分析能力,通过各类反编译工具进行逆向分析,提取打包信息、域名等有效线索。
2.动态解析流程
动态解析需要在涉诈APP还能运行的情况下进行。动态解析的流程为:一是要构建一个APP运行的虚拟环境,这是进行动态解析的必要前提;二是将手机APP安装到手机或模拟器上运行,进行网络数据交互;三是利用抓包工具对手机或模拟器进行网络抓包,获取网络数据;四是通过对抓包数据的分析,得出号码、IP、域名、第三方服务ID等信息。
(三)解析信息
1.静态解析信息
静态解析主要能解析出APP基本信息、打包信息等相关信息。
(1)APP基本信息,主要包括APP名称、版本、权限信息、APP的安装包名、安装包MD5值、签名信息及签名的MD5值。
(2)打包信息,APP封装打包(下简称“打包”)就是利用打包工具,将手机网站/H5封装打包为一个手机应用安装程序。一般常用的第三方打包平台有数字天堂、柚子(北京)、不凡、第八区、成都七扇门等。解析出来的打包信息主要包括打包工具、打包公司、打包ID、打包时间等信息,在APP进行加密等情况下需要开展动态解析才能实现打包信息的解析。
2.动态解析信息
动态解析除了能解析出上述静态解析的部分数据,还能解析出静态解析无法获取的后台应用服务器信息、第三方服务ID等数据。
(1)后台应用服务器信息。就是APP启动后连接互联网服务器的域名和IP,是侦查破案和获取证据的主要线索。可以从“域名运营商”或者“服务器提供商”处获取使用者的相关信息。
(2)第三方服务信息。诈骗团伙在开发诈骗APP的时候,可能需要使用非常多的正规软件服务公司提供的第三方服务,即云服务,来实现一些功能。比如:在线打包编译、客服、地图、推送、统计、短信、社交分享等等,这些云服务平台的账号申请都是根据相关法规进行了真实身份信息录入的,这个也为APP溯源提供了可能性,而且这也是诈骗团伙最容易忽略的地方。
其中,非常重要的一类第三方服务就是客服信息,客服的购买者属于开发者,而直接使用人则为实施诈骗的人,在分析研判时,应注意区别,不要搞混淆。
综上所述,应通过动、静态解析相结合的方式,尽可能全面地分析源码和恶意行为,从中挖掘出开发涉诈程序的团伙信息和使用涉诈程序进行诈骗的团伙信息。由于涉诈APP存活时间都很短,达到诈骗目标后,或发现被侦查时即关停服务器,存活期往往只有几周甚至更短。而动态解析必须在APP还能运行的情况下进行抓包,因此,接到被害人报案应立即进行采集和动、静态解析,防止涉诈APP的后台关闭、程序无法运行后,大量关键数据无法被解析出来,丢失重要线索。
(四)解析难点
1.静态解析难点
(1)阅读代码耗时费力。通过静态解析得到的代码往往是由冗长复杂的字符串组成,在大量的字符串中寻找目标信息,工作量大,耗时长。
(2)APP反调试。APP反调试是指对关键信息输入及内存传输做加密处理,防止攻击者通过内存注入等方式窃取使用者输入的账号、密码等可静态获取的关键信息,通过反调试技术,对内存信息访问做严格控制,保护内存中临时存在的敏感信息不被读取,杜绝对运行时程序数据做动态调试分析,这给动静态解析均带来了难题。
(3)APP代码被混淆加固。APP代码混淆技术是一种使用最广泛的APP的应用代码保护技术,混淆过的APP安装包难以从中恢复源码和获取通信接口信息,给逆向设下了障碍。这是当前很多涉诈APP安装包无法解析出有效数据的主要原因。
2.动态解析难点
(1)搭建环境要求高。动态分析如果不借助专业分析平台,手工动态分析技术门槛很高,且操作过程复杂,往往需要花费大量时间,一般手工利用专业知识进行环境搭建和抓包分析一个APP一般需要2天或以上时间。运用专业平台开展动态分析,可以大大减少分析时间和对人员的要求。
(2)分析环境不够纯净。为了防止APP被逆向分析,有一些APP会选择加固,给APP加一个壳,来隐藏代码,提升逆向难度。或者通过使用CDN(ContentDeliveryNetwork),即内容分发网络,隐藏网站真实IP,加大解析难度。
(3)APP存活周期短。动态解析需要在APP还能运行的情况下进行,如果APP已经失活,则无法进行动态解析。
从动、静态解析的原理、流程和难点,可以发现要利用通用软件手工进行动、静态解析,对于非专业人员,几乎难以完成,而且耗时、费力。随着涉及APP诈骗案件数量的激增,现在很多专业公司都开发出简单、易操作的解析平台。如:高奈特、美亚柏科、平航、奇安信、白虹等公司研发的解析平台,大大降低了工作难度和人员门槛,使得广泛开展涉诈APP安装包解析研判工作成为可能。但这些平台一般采用的算法不够全面,因此,在面对不断升级加密方式的涉诈APP,常出现解析不出关键信息的情况,还有待不断改进算法,提升解析能力。
三、涉诈APP解析信息应用探究
2021年出台的《公安机关刑事技术部门支撑侦办电信网络诈骗案件工作机制》中提出“要充分利用嫌疑人语音、涉诈APP包名、MD5值、嫌疑人使用的虚拟身份ID、客服ID、涉诈网址或IP地址、涉案账号等勘验信息开展案件串并,并及时开展信息研判”“要汇总涉诈APP包名、域名和IP地址等要素信息,及时推送省级反诈部门,建立黑样本库,开展预警封堵”。文件中多次提到涉诈APP信息,但关于具体应用的方法,暂缺乏相关研究。笔者认为涉诈APP解析信息可从以下几方面开展应用:
(一)串并案分析
APP的基本信息有APP名称、版本、权限信息、APP包名、安装包MD5值、签名信息及签名的MD5值等。其中,每个APP的包名、MD5值都是唯一的,但打包用的签名信息可以用公共签名,也可以借用别人的签名,或使用自己的签名信息,因此,利用签名信息及签名的MD5值进行串并案时,需要视情况而定。此外,为躲避侦查打击,涉诈APP往往变异非常快,经常通过更换APP名、包名、服务器、页面等,就快速包装出一个全新的APP。因此,在进行串并案分析时,除了用APP名或包名,还可以用APP的MD5值、签名信息等其他数据进行综合研判,以免遗漏案件信息,尽可能获取更多的案件信息,增加侦查线索。
总的来说,可以利用涉诈APP安装包动、静态解析出来的信息进行串并案分析时,APP名、包名、MD5值以及具有个体特征的签名信息是核心关键信息,其他相同的数据越多,依据越充分。仅通用型签名信息、主域名、域名注册商、主服务器IP、服务器运行商、第三方服务商等信息相同或部分相同时,还需依据其它信息进一步确认。
同时,应理解APP解析出来的APP名、包名、MD5值、签名、域名以及IP地址等信息反映的均是开发者的信息,不要与使用者弄混淆。也就是说,利用这些信息串并成功的案件,仅反映这些涉诈APP可能是同一个开发团队开发的,但不能说明是同一个诈骗团伙在使用,且实际办案发现,往往不是同一个诈骗团伙使用,办案人员应正确理解和使用串并案信息。
(二)提供侦查线索和证据
诈骗团伙在开发用于诈骗的APP时,会使用或嵌入很多第三方服务,如打包、客服、地图、支付等服务,必然会在很多正规公司留下诸如注册信息、购买信息和使用信息等信息。因此,可以根据涉诈APP动、静态解析出来的数据进行研判,再利用解析出来的信息,去相关的网站或服务公司查询或调证,获取相关信息及其在这些公司平台留下了的注册信息、购买信息和使用信息。这个过程往往需要多次研判、调证,才能找到将虚拟身份与真实身份关联的线索。该过程虽然比较耗时,但还是应该尽量做到每案研判,不放过任何有价值的线索。
由于不同类型的平台提供的服务类型也不同,使得调证反馈的数据内容有一定差别,但总体上可归为三类:注册信息、支付信息和使用信息,其中,注册信息包括账户名称、注册邮箱、注册手机号码、地址等;支付信息包括账号或银行卡号、支付记录、支付时的IP地址等;使用信息包括登录记录、聊天记录、交易记录等。上述不同类型的数据,可以从不同方向为侦查提供线索、为讼诉提供证据。
1.注册信息
反馈的注册信息主要包括注册人姓名或企业名称、身份证号码、企业基本信息、注册邮箱、注册手机号码、注册时网络环境、注册时间等等与注册相关的信息。
对于这些反馈信息,应正确理解与应用,如对于个人或单位、手机号码要进一步查实是否与案件相关;注册邮箱、手机号码等可以用来串并案件;网络环境一方面需进一步核查登录位置,另一方面还可以用来分析同网络环境的相关设备,扩大侦查范围;域名注册信息是购买人的登记信息,而备案信息是开发者的登记信息等。
2.支付信息
由于诈骗团伙从开发到使用都需要使用很多正规公司提供的服务,就需要为每项服务支付费用,必然会留下各种支付信息。办案单位可以通过合法手续去相关服务公司调证,可以获取到这类信息,如购买域名、租用服务器、打包、分发、客服以及其他各种第三方服务留下的支付信息。
通过支付信息可以再次到相关支付平台或银行调证,很可能就能关联实名,再进一步查实关联的实名人是否与案件有关联。通过这种方法,很可能就能查实涉案相关人员的真实身份。
支付信息是将虚拟身份与真实身份能关联起来的非常重要的途径,应尽量查证解析及调证出来的所有支付信息。
3.使用信息
如果是远程利用网络实施犯罪活动,就必然会留下网络上的痕迹,如登录记录、交易记录、聊天记录等。其中,登录记录可以反映出登录位置,还可以用来扩大线索,查找同案人员;交易记录可以反映出收货地址、购买服务等,还可以通过分析交易记录,发现新的线索,如通过充值记录显示的其他手机号码、QQ号码等,作为查证是否为同伙的依据,扩大侦查范围,勾画犯罪团伙的组成;聊天记录不仅完整记录了诈骗的实施过程,还可以从中扩大侦查范围,如交易账号、手机号码、嫌疑人语音等,涉案可疑账号可以进行资金的分析研判以及冻结,语音可以进行声纹比对、查找实施诈骗的嫌疑人。
使用信息更多地反映出使用者的信息,较多直接关联到实施诈骗的团伙。
(三)预警反制
对诈骗团伙开发的诈骗APP安装包进行动、静态解析后,会得到APP包名、签名信息、服务器信息、客服系统、打包工具、推送平台等信息,利用这些信息进行调证后可能得到开发者在开发APP过程中使用的注册信息、支付信息和使用信息等,这些信息不仅可以帮助侦办案件,还可以用于进行预警反制。
1.被害人预警
可以根据涉诈APP解析得到的服务器访问记录、客服访客记录等信息,搭建预警模型及时发现潜在的被害人信息,再将潜在的被害人信息分级推送给各地公安机关,由各地公安机关通过电话劝阻、短信劝阻或者上门劝阻等方式对潜在被害人进行预警,避免更多的人被诈骗。
2.态势预警
通过对录入侦办平台的电信网络诈骗案件APP安装包进行解析,密切关注发案态势以及电信网络诈骗案件最新的手段变化,以便与公安机关及时研究手段变化、掌握规律特点,依托互联网大数据、云计算、云储存等建立打击模型并不断丰富完善,研究相应的打防策略,出台有针对性的方针策略。在目前的解析过程发现APP安装包呈现出从解析难度小到加壳、反APP调试、代码混淆加固等解析难度增加的变化,电信网络诈骗逐渐专业化。
3.拦截封堵
可以依据解析信息,应建立拦截封堵长效机制,注重前期预警平台的使用和完善,需要各地反诈中心与金融、网络等监管部门打通信息壁垒。从被害人报警发现警情,对采集到的被害人手机中的涉诈APP当场解析,并将相关信息及时推送预警平台。依据相关信息,第一时间阻断资金流转,避免造成财产损失;同时通过大数据发现已安装、使用涉诈APP的潜在受害者,提前拦截封堵,将犯罪扼杀在摇篮里。
由于涉诈APP常伪装成正规的贷款类、投资理财类、股票类APP,如伪装成安逸花、有钱花、平安好贷等正规APP的涉诈APP已多达几十甚至上百种,其软件界面与正规软件非常相似,极具迷惑性,使群众防不胜防。因此,接处警民警应掌握一些快速鉴别涉诈APP的技巧,在接到报案时,能快速判断是否涉诈,及时预警止损。
公安部门应会同中央网信办,建立涉诈APP网站域名的快速封堵的工作机制,通过解析发现的涉诈网站域名,推送给网信办,由他们进行快速封停封堵,使其他人无法登录该网站,避免被骗,努力做到诈骗网站登不上、诈骗资金转不出。
(四)信息应用要点
以上信息往往需要综合应用,配合其他平台信息,才能最大限度发挥信息的作用。如:据湖南省某市公安机关的上报材料,2021年,受害人刘某经人介绍参与炒比特币赚钱,通过某涉诈APP被骗137万元。接警后,民警立即采集了受害人手机中的涉案电子数据,并及时解析出涉诈APK的打包公司及客服公司的注册信息,据此进行第一轮调证。依据从两家公司调证反馈信息中的支付信息开展第二轮调证,查到两名嫌疑人的真实信息及绑定的4个手机号码和12张银行卡。根据本案涉诈APP制作过程中涉及的注册和支付人员身份信息、手机号码逐一开展信息研判工作,发现打包手机号实名绑定的黄某与打包注册人张某联系频繁,且根据黄某的消费记录、物流信息、交通信息和资金流信息等,判断出其有重大作案嫌疑;根据其他信息,还研判出其他嫌疑人5人,现抓捕4名嫌疑人。通过后台客服聊天数据,串并案件409起,全部涉案金额达9000余万。本案是当地市公安局成立刑事技术研判专班首次通过网络流信息开展电诈案件分析研判的成功案例。刑事技术在本案中发挥了举足轻重的作用,包括全面快速地采集涉诈信息、精准解析涉诈APK、“调证—研判—再调证—再研判”的全方位多角度调证以及数据碰撞,充分运用部刑专、云镜、云脉、云搜、无糖、IP高精准定位等内外网系统、小程序进行信息研判,最终获取涉案的关键证据和涉诈人员所在位置等。由于应用网络流开展研判的专业性比较强,因此,成立专门的信息研判专班是快速成功破获此类案件的基础。
近年来,经公安机关侦查发现,涉诈APP多由诈骗网站制作而成,一些技术开发人员在非法利益驱使下沦为诈骗团伙帮凶,并从编写程序代码,到租用服务器、购买域名、域名解析,再到APP封装和分发等,形成了一个分工明确的专业化犯罪链条[6]。APP技术开发及上线涉及的技术含量高、隐蔽性强,成为犯罪链条的关键一环,因此,应重视对APP技术开发、域名解析等黑灰产业关键环节的打击。对于涉及APP的电信网络诈骗案件,应创新打法战法,借助先进科技手段提升侦查能力,拓展侦查思维,以快制胜,将涉诈APP安装包解析信息作为侦查破案的切入点,对信息进行分析研判、调查取证,深挖信息,并将信息充分应用于串并案、侦查破案和预警反制等几个方面,为预防、打击、封堵电信网络诈骗犯罪提供线索,为诉讼提供证据。