基于模拟登录技术的云数据提取与分析方法研究

2022-09-09 05:51丁兆锟林思成王丹
电子技术与软件工程 2022年12期
关键词:聊天记录扫码邮件

丁兆锟 林思成 王丹

(南京拓界信息技术有限公司 江苏省南京市 210014)

1 云数据简介

1.1 本地数据存储

在传统手机取证中,常见的取证方式是逻辑备份提取、文件系统提取、芯片模式提取、物理镜像提取等,其主要目的是获取手机存储芯片(ROM)和存储卡(SD Card)中的数据,获取的数据类型分为结构化数据和非结构化数据,结构化数据如关系型数据库中的文字、二维表格等,非结构化数据如图片、语音、视频等,不同的获取方式提取到的数据量也各不相同,但共同点是获取的数据都是基于手机存储中已有的数据,删除数据的恢复也是基于已有数据库或镜像文件完成。

以Android版微信为例,文字聊天的内容直接存储在微信开源数据库中,数据库文件后缀名为.db。聊天内容存储的数据库在手机中的完整路径为/data/data/com.tencent.mm/MicroMsg/*/EnMicroMsg.db,其中*代表的是一串根据微信名加密得到的32 位字符。微信的语音聊天数据存储在微信数据包中的voice2子文件夹中,一般使用以msg为文件名开头的.amr音频文件进行存储,聊天中发送的视频、图片、表情包等,可在image2、video 等子文件夹等中查看相关信息。

本地数据存储的优点是原始数据文件均存放于手机本身,即使离线状态也能够查看其内容;缺点是会占用大量手机存储空间,并且如果手机损坏或丢失,则手机数据也无法找回。

1.2 云端数据存储

随着近几年各手机厂商推出云存储服务,使得手机本地的部分数据能够同步到云端服务器中进行存储和查看,同时基于数据安全的考虑,部分软件厂商的数据则是直接存储于云端服务器中,本地并不会保存。目前云端数据主要分为以下几类:

1.2.1 手机云备份及网盘文件

手机云备份,部分手机品牌也叫手机云服务、云空间等,是手机厂商提供的一种云存储方式,需注册账户登录后使用,一般初始存储空间为5GB,可以定期将手机中的基本数据,如短信、通讯录、通话记录、相册等自动备份至云服务器中。

云备份功能主要用于更换新手机后快速恢复用户数据。在云备份中还可以使用网盘功能,用户可选择文件手动上传,与云备份数据共享存储空间。使用账号登录对应云服务官网后可查看或下载备份数据及网盘文件。除了手机厂商外,部分软件厂商也提供了手机数据备份及网盘功能,如百度网盘,阿里云盘等。

1.2.2 云聊天记录

一些聊天通讯软件中,为了便于用户在多台设备中查看聊天记录,会自动将最近时间段内的聊天记录同步至云端服务器中,当用户更换设备登录聊天账号时,新设备中就会默认同步云服务器中存储的聊天数据。用户也可根据需要手动选择是否开启及同步记录的时间范围,如腾讯QQ的聊天记录设置项,默认为开启最近7天的聊天记录同步。

1.2.3 账单信息

涉及资金交易类的应用程序,会记录用户的账单或订单信息,如微信、支付宝、京东等,但出于数据安全的考虑,大部分APP会将订单数据存储在云端服务器中,用户查询订单时,APP向服务器发送请求,服务器验证通过后发送订单信息,用户即可查看实时订单数据。但当手机无法访问网络时,服务器无法收到订单请求,因此,手机处于离线状态时无法查看订单数据。

1.2.4 邮件信息

用户在收发邮件时,一般会在手机端、PC端、网页端等不同形式的客户端中完成,因此,用户的邮件信息会永久保存在提供邮件服务厂商的云服务器中,用户无论在任何平台登录邮箱账户,都能够查询到以往所有的邮件信息,但需要注意的是,邮件中的部分附件信息是有保存期限的,一般为一个月,超过保存期限的附件将无法下载。同时,在手机端的邮件程序中,只会离线存储用户最近收发和查看过的邮件信息,超过一定时间后的邮件在离线状态也无法查看。

云数据存储的优点在于数据备份于云端,多设备数据共享方便,也无需担心数据丢失问题,同时能够节省手机存储空间;缺点是手机离线时无法查看、扩展云空间需要额外收费、以及云端数据的隐私安全等问题。

2 基于模拟登录技术的云数据提取方法

通过对云数据类型的分析可以发现,所有云端数据的查看和下载都需要验证登录成功后,云服务器端才能够将相应数据返回给用户。而模拟登录技术可以通过程序执行的方式,模拟人为的操作流程和数据提交过程,最终成功登录到云服务器端。因此,基于模拟登录技术并结合不同的登录验证方式,可以采取验证码模拟登录、扫码模拟登录、缓存数据模拟登录以及仿真模拟登录的方式进行提取。

2.1 验证码模拟登录技术

验证码登录是基于用户的手机号码作为唯一标识符进行登录验证,其过程包括验证码申请和验证码校验两个阶段。主要涉及智能终端、服务器和短信平台之间的交互。智能终端负责发送验证码申请和验证码校验请求,服务器负责生成验证码,处理验证码申请和验证码校验请求。短信平台负责通过短信设备发送短信验证码。验证码交互流程如图1所示。

图1:验证码交互流程

验证码模拟登录是通过云账户绑定的手机号接收短信验证码进行登录取证的,以小米云服务为例,首先分析小米云服务网页版,得到小米账号登录的Web API接口,参照网页版登录逻辑,在登录参数中嵌入对应的手机号码,并构造相应的HTTP请求参数和请求签名,向小米服务器发送请求,

请求发送短信验证码接口成功之后,即可利用短信验证码发送登录请求。如果所有相关的请求都能获得正常的响应,那么则表示登录成功,然后就可以获取账号的个人信息,并利用登录成功的Cookies访问小米云服务内的各项内容并进行提取工作,如图2所示。

图2:小米云服务取证内容

2.2 扫码模拟登录技术

验证码模拟登录适用于大部分云账户的登录取证,在已掌握SIM卡的情况下可以很容易的进行操作,但未知密码时还可采用扫码登录进行取证。扫码登录作为一种新的登录方式,它不仅更为便捷,其不需再次输入用户信息直接扫码登录的方式更意味着减少了账户泄密的风险,相比传统登录方式而言更加安全。

扫码登录的基本原理是手机客户端扫描二维码并从中解析出数据,然后把数据发送给服务器,服务器收到手机客户端发送来的数据后,对数据进行验证匹配,浏览器根据服务器的响应进行相应操作,具体实现过程如下:

(1)用户请求扫码登录时,服务器会生成一个包含唯一标识符的二维码,并在终端页面进行展示;

(2)用户在智能终端中打开对应程序,并调用摄像头扫码页面二维码;

(3)智能终端程序将扫描到的二维码标识符以及当前已登录用户的相关数据发送至服务器;

(4)服务器校验智能终端程序发送的数据后建立相应的映射关系;

(5)服务器将登录信息相关数据发送至页面请求并进行加载。

以钉钉扫码模拟登录取证为例,首先对钉钉网页端验证码图片进行解析,得到包含验证码信息的字符串,通过对钉钉网页抓包,分析对应的数据包内容,与得到的验证码字符串做对比,定位生成验证码字符串的请求,通过程序模拟请求过程可以得到验证码字符串,此时调用函数将字符串转换成二维码,并且打开图片,然后再模拟网页扫码登录的逻辑,对钉钉服务器相关接口进行轮询,当用户在手机端确认登录时,轮询请求结果会从“未登录”转换成“登录成功”并且返回当前用户登录信息,将返回信息清洗筛选,设置为浏览器的Cookies。

上一步已经完成了钉钉模拟登录中的HTTP协议注册信息,但钉钉登录还使用了WebSocket网络协议,且HTTP和WebSocket是两个不同的网络协议 ,所以不仅要设置登录用户信息的Cookies,还需要建立WebSocket连接才能与服务器进行通信,换而言之就是通过HTTP请求之后还需要在WebSocket注册用户登录信息。通过抓包分析可以获取对应WebSocket请求头用来建立连接,当判断登录信息成功后,就能够通过发送不同的WebSocket请求,获取当前用户账户下对应的联系人、聊天记录等数据。

2.3 缓存数据模拟登录技术

缓存数据登录主要是对手机中存储的程序数据包进行分析,找出本地缓存的Cookies文件,并利用其进行模拟登录验证,从而获取云端数据信息。以Android版京东为例,首先分析其支持的登录方式,可以选择短信、验证码以及第三方服务商登录。根据密码登录的校验规则,首先将账号、密码以及HTTP请求相关参数,经过APP内部加密生成密文MD5校验码,并且拼接到请求参数中,再向京东服务器发送请求。

京东服务器会根据请求中的参数,采取同样的加密方式,生成加密校验码。其收到请求中的校验码与其服务器自己计算出的校验码对比,结果不相同则拒绝请求,反之,接受登录请求,并且返回账户Cookies至京东APP端并存储。此时可以通过获取到数据包中的Cookies,构造校验码,以获取账户信息、订单数据等内容。

2.4 仿真模拟登录技术

仿真登录的方式在传统手机取证过程中就有应用,一是能够解决部分小众APP出现时间短、分析工作滞后于软件版本的问题,二是对本地加密数据的解密起到了一定作用。在对云数据进行提取时,也能够通过模拟器仿真的方式,在模拟器中实现用户本地与云端数据的提取工作。目前,在PC端运行Android系统主要采用虚拟仿真的手段来实现,具体方法有:

(1)采用Android开发工具Android Virtual Device(简称AVD),是一套用于Android系统开发与调试的虚拟机工具。AVD 能够模拟ARM架构的硬件环境,从而将Android系统直接运行在计算机平台上,但其缺点是运行速度较慢,导致效率不高;

(2)采用API接口翻译模式,将Android系统的底层API接口直接翻译为Windows API,此方法对计算机硬件本身要求不高,兼容性较好。但由于Android底层API接口数量大,导致翻译开销较大,在性能方面欠佳;

(3)采用在Windows内核底层插入Android驱动模块的模式,创建一套完整的虚拟环境运行Android系统,借助CPU 虚拟化技术的硬件加速性能,能够实现较好的效率与兼容性,但对计算机的CPU硬件性能要求较高。

3 云数据分析方法

云数据的获取为后续数据分析利用提供了必要的前提条件。利用云数据本身存在的属性,就能从多个维度对该人物进行刻画,得出较为全面且完整的人物画像。

3.1 聊天记录分析

对聊天记录类的云数据进行分析,可以找出一部分手机本地存储中没有的记录。当用户手机中没有缓存较早时间段的历史聊天记录时,利用云数据提取其所有云端聊天记录内容,就能够发现其本地未缓存的聊天数据。但需要注意的是,用户如果在手机联网状态下删除了某条聊天记录,则云服务器中对应账户的记录消息也将同步删除。

通过云数据与本地数据结合进一步分析,可以得出其常用聊天软件的群聊成员邀请关系、群主账户信息等,如图3所示,针对某微信群进行详细分析,准确获取群聊人员结构,直属上下级等情况。

图3:群成员关系

基于群聊数据建立多种分析模型,还能够找到其多个群间关系、共同群成员、群热点时间段、时间活跃度及活跃成员数据。

3.2 经济行为分析

资金交易类APP的订单数据与云聊天记录的处理方式不同。若用户在手机端手动删除某个订单数据,则在手机端刷新查看后也无法获取该项删除的订单数据,但在厂商的云端服务器中仍然存在,因此,利用云数据获取技术,从云端服务器中获取用户的账单信息,就能够恢复出已删除的订单数据。

资金订单数据能够有效分析出用户在一段时间的交易行为,进一步分析交易金额区间和频繁交易对象,并以图表方式对经济数据进行可视化处理,如图4所示,清晰展示资金来源及流向,就能够快速分析出案情所需重要证据,减少人工检索的时间成本,对案情的快速研判决策起到一定辅助作用。

图4:经济行为分析

3.3 地理位置分析

在云数据中,涉及到位置信息的数据有很多,例如手机云服务中的照片拍摄地点经纬度信息,订单类云数据中出行APP的机票、火车票站点信息、酒店订单信息,打车APP中的起始、终点位置信息,购物APP中的订单收货地址等。通过对这些位置信息的进一步分析,就能够掌握其常驻地、出行轨迹、通联范围等。

3.4 邮箱信息分析

对于邮件类APP,大部分软件都提供了“已删除”的分类,用户手动删除的邮件并不会立刻删除,而是会暂时存放于“已删除”目录下,此时可在已删除邮件中通过“移动”功能将其移回删除前的存放位置,但已删除邮件的存放期限一般只有7-30天,超过期限后的邮件将会彻底删除,云数据取证能够获取到已删除且未超过期限的邮件,但对于彻底删除的邮件,还需要结合本地数据库的相关文件,才能实现部分数据的恢复。

4 结语

随着智能终端及云存储技术的不断发展,用户的账户数据会越来越多的从本地迁移或备份到云端服务器中,以便满足用户数据安全备份及多终端设备共享数据的需求。因此,本文首先介绍分析了云数据存储的方式,并基于模拟登录技术原理,提出了对应的云数据提取技术与方法,实现了智能终端设备的聊天记录、资金信息、行为轨迹、邮件信息等云数据的提取与分析,为新形势下智能终端设备中的云数据提取分析工作提供一定的思路与方法。

猜你喜欢
聊天记录扫码邮件
脐橙连上物联网 扫码便知“前世今生”
山之高
储存聊天记录用掉两个半三峡水电站电量
基于James的院内邮件管理系统的实现
来自朋友的邮件
一键备份手机QQ聊天记录
CMailServer
一封邮件引发的梅赛德斯反弹
中国进入“扫码”时代
两种基于Windows系统的QQ聊天记录删除恢复方法比较