一种针对Twitter的分析取证方法与流程

文档序号:12121477阅读:1190来源:国知局

本发明涉及电子数据取证技术,具体涉及推特(Twitter)应用的取证。



背景技术:

推特(Twitter)是一个社交网络和一个微博客服务,它可以让用户更新不超过140个字符的消息。Twitter作为世界上一个广受欢迎的社交工具,不免也会被犯罪人员利用作为相互联系的工具。

Twitter在使用过程中,会在手机上保存登陆的用户账号信息,还保存用户关注的其他用户以及被哪些其他用户所关注;另外当前用户与其他用户的私信信息也会在本地有缓存记录。用户所发表过的推文以及查看过的推文均会在设备上保留一定的缓存数据。

随着智能终端的高速发展,Twitter应用得到更为广泛的应用,成为一款非常流行的社交软件。

由此对Twitter在使用过程中所产生的数据进行分析,将会显得极为重要。但是现有的一些数据取证方案在实际使用过程中存在取证速度慢,以及取证内容比较的少,无法对智能终端中Twitter应用进行全面有效的数据取证。



技术实现要素:

针对现有针对Twitter应用的取证技术所存在的问题,需要一种新的取证方法,以进行全面有效的数据取证。

由此,本发明实际要解决的技术问题是提供一种针对Twitter的分析取证方法,该方法能够对智能终端中Twitter应用进行全面有效的数据采集和分析。

为了达到上述目的,本发明提供的一种针对Twitter的分析取证方法,其包括:

获得运行Twitter的智能终端的最高管理权;

据此提取Twitter在智能终端中运行的数据信息;

进行数据分析,取证Twitter用户的账号信息、用户关注的联系人账号和发布的消息,以及用户与好友的私信内容和用户的搜素历史记录。

优选的,所述分析取证方法中对于已经获取到Root权限或者支持Recovery模式的Android智能终端,直接通过ADB命令,即可从系统/data/data目录下提取到应用的数据信息。

优选的,所述分析取证方法中对于已经越狱的iOS智能终端,在系统/AppDomain目录下定位到Twitter的路径,然后遍历路径获取账号信息、联系人、好友和搜索历史信息。

优选的,所述分析取证方法中提取Twitter的运行数据信息的过程如下:

(1)使用数据线连接智能终端和控制主机,判断智能终端类型为IOS智能终端或者Android智能终端;

(2)若为Android智能终端,则判断Android智能终端是否Root,若系统已Root或越狱,可以直接获取操作系统文件信息,直接提取Twitter应用数据文件;若Android系统未Root,尝试通过Adb命令对Twitter应用程序及其数据进行备份;

若为IOS智能终端,则判断IOS智能终端是否越狱若IOS系统未越狱,尝试使用itunes进行应用数据的备份;

(3)将Twitter的应用数据从智能终端、备份或镜像中复制到连接智能终端的控制主机上:

若为Android智能终端,提取系统:/data/data/com.twitter.android/目录下的文件;

若为IOS智能终端,提取系统:/AppDomain/com.atebits.Tweetie2/目录下的文件。

优选的,所述分析取证方法对Twitter用户的账号信息、用户关注的联系人账号和发布的消息进行关联。

优选的,所述分析取证方法支持对通信消息中发送的图片进行查看。

优选的,所述分析取证方法进行数据分析的过程如下:

1.提取当前账号信息:

针对Android智能终端,遍历系统下database文件夹,分析每个db文件的命名是否为[Twitter ID]-***.db这样的结构,如果匹配则通过String.Split(‘-’)函数提取出字符串数组,其中字符数组中的第一个元素作为当前登陆用户的ID;接着,以当前登录的用户ID作为查询关键词从users表中可以获取登陆用户信息;

针对IOS智能终端,遍历系统下database文件夹,分析每个文件夹的命名是否为[Twitter用户名称]-[Twitter用户id]这样的结构;如果匹配通过String.Split(‘-’)解析该文件夹的名称提取出字符数组,其中数组中的第一个元素为登录用户信息,第二个元素是用户登录ID。

2.提取联系人,好友信息及发布信息:

针对Android智能终端,在users表中分析提取好友信息,并根据该好友信息在status表中对应的提取关注的好友发布的消息;

针对IOS智能终端,在users表中分析提取好友信息,并根据该好友信息在status表中对应的提取关注的好友发布的消息;

3.提取通信信息:

针对Android智能终端,提取分析messages表中sender_id、recipient_id、created和content字段,基于sender_id字段获得消息发送者的ID,基于recipient_id字段获得消息接收者的ID,基于created字段获得通信时间信息,基于content字段获得通信的文本内容和图片的URL;

针对IOS智能终端,提取分析messages表中text、date、recipientId以及senderId字段,基于text字段获取发布消息正文,基于date字段获取消息发送时间,基于recipientId字段获取发布消息接收者的ID,基于senderId字段获取消息发送者的ID;

4.提取搜索历史信息:

针对Android智能终端,提取分析search_queries表表中name和time字段,基于name字段获取搜索内容信息;基于time字段获取搜索时间信息;

针对IOS智能终端,首先提取名称格式为“app.acc.[Twitter用户名]-[TwitterID].detail.**”的文件,导出到创建的案件目录下;接着通过plist库解析该文件,通过关键词“$objects”解析出一个plist数组,然后在该数组第5个元素,通过关键词“recentSearches”得到一个数值;最后以该数值作为搜索历史在数组中存放的位置信息,在数组中提取搜索历史信息。

本发明提供的取证方案,完善了处理智能终端的手段,提高了取证的速度,对Twitter应用中的关注对象、好友、通信信息和搜索历史进行了分析,可以将账号、好友和通信信息进行关联,并且支持对通信消息中发送的图片进行查看。再者本方案支持Android和iOS系统的取证,取证内容多。

具体实施方式

为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实例,进一步阐述本发明。

本实例提供的针对Twitter的分析取证方法,其能够分别针对Android智能终端和IOS智能终端(如iPhone手机)下Twitter应用,取证Twitter用户的账号信息、用户关注的联系人账号和发布的消息,用户与好友的私信内容和用户的搜素历史记录。

本取证方法在智能终端(Android智能终端或IOS智能终端)的最高管理权状态,对智能终端中Twitter应用数据进行取证,如下:

对于已经获取到Root权限或者支持Recovery模式的Android智能终端,直接通过ADB命令,即可从/data/data目录下提取到应用的数据信息;

对于已经越狱的iPhone手机,在/AppDomain目录下定位到Twitter的路径,然后遍历路径获取账号信息、联系人、好友和搜索历史信息。

以下具体说明本实例分别针对Android智能终端和IOS智能终端(如iPhone手机)下Twitter应用取证的过程。

整个取证过程包括数据提取阶段和数据分析阶段。

一、数据提取阶段:

(1)使用USB线连接智能终端和计算机,判断智能终端类型为IOS或者Android;

(2)若为Android智能终,则判断Android智能终端是否Root,若若Android系统已经Root,可以直接定位到Twitter的存储路径进行数据获取;若Android系统未Root,尝试通过Adb命令对Twitter应用程序及其数据进行备份,通过备份的方法定位到Twitter数据的路径然后进行数据获取;

若为IOS智能终端,则判断IOS智能终端是否越狱,若系统已Root或越狱,可以直接获取操作系统文件信息,直接提取Twitter应用数据文件;若IOS系统未越狱,尝试使用itunes进行应用数据的备份;

(3)将Twitter的应用数据从智能终端、备份或镜像中复制到连接智能终端的控制主机上:

若为Android智能终端,提取Android系统:/data/data/com.twitter.android/目录下的文件;

若为IOS智能终端,提取IOS系统:/AppDomain/com.atebits.Tweetie2/目录下的文件。

二、数据分析阶段:

1、提取当前账号信息。

(1)Android智能终端上,Twitter的数据库以及用户使用痕迹存储在/data/data/com.twitter.android/文件夹下,此文件夹下的databases文件夹是取证过程中最为关注的目录,用户的账户信息、使用痕迹信息等均存储在这个文件夹下的数据库中。Twitter的用户使用痕迹数据库使用当前登录的用户ID作为文件名,因此数据库的名字通常为[Twitter ID]-***.db。且Twitter登陆用户的详细数据存储在数据库的users表中。

为此,针对Android智能终端上的数据库,本实例通过遍历database文件夹,分析每个db文件的命名是否为“[Twitter ID]-***.db”这样的结构,如果匹配则通过String.Split(‘-’)函数提取出字符串数组,其中字符数组中的第一个元素作为当前登陆用户的ID。接着,提取到的当前登录的用户ID作为查询关键词从users表中可以获取登陆用户信息。

(2)iOS智能终端上,Twitter的数据库以及用户使用痕迹存储在/AppDomain/com.atebits.Tweetie2/Library/Caches/databases/文件夹下。Twitter账号登录后,会在databases文件夹下产生一个当前登录的用户名称和用户id组合作为名字的文件夹,文件夹名称格式通常为[Twitter用户名称]-[Twitter用户id]。

为此,针对iOS智能终端上的数据库,本实例通过遍历database文件夹,分析每个文件夹的命名是否为[Twitter用户名称]-[Twitter用户id]这样的结构;如果匹配通过String.Split(‘-’)解析该文件夹的名称提取出字符数组,其中数组中的第一个元素为登录用户信息,第二个元素是用户登录ID。

然后遍历该文件夹下的文件找到twitter.db,Twitter的关注人、相关人都存在twitter.db。

2、联系人,好友信息及发布信息

(1)在Android智能终端下,申请人通过大量的研究分析发现users表中存储的除了用户登录ID,其他账号信息则为当前登录用户的好友信息,主要包括好友名称,user_id(好友ID),name(好友昵称)等。关注的对象发布的消息ID和信息存储在status表中,status表中主要包括author_id(消息发布者的ID)、content(消息正文内容)以及created(消息的发送时间)等关键字段,但是缺少消息发布者的名字;而status表中的author_id和users表中的user_id是相同。

为此,本实例中针对Android智能终端,首先通过users表中获取当前登录用户的好友信息,并通过Dictionary(即字典,Dictionary里面的每一个元素都是一个键值对,每个键值对由二个元素组成:键和值)将user_id和name对应存储;然后分析status表以获取关注的对象发布的消息ID和信息,在分析status表的时候通过author_id在Dictionary(该Dictionary在通过users表获取用户好友信息时候建立)中查询消息发布者的名字。

(2)在IOS智能终端下,关注的对象发布的消息存储在Status表中,主要包括text(消息正文)、date(消息发布时间)和userId(消息发布者的ID),其中date中存储的是一个Unix时间戳,通过时间戳转换函数成本地时间;创建List<T1>(泛型集合),在这里T1表示的是自定义的包含消息发布者的ID、消息正文和消息发送时间三个数据成员的类名,通过List<T1>可以按需存储关注对象的userId、text和date。好友信息存储在Users表中,主要包括id(用户id)和name(用户名称),创建List<T2>(泛型集合),在这里T2表示的是包含id和name两个数据成员的类名,通过List<T2>可以按需存储用户关注对象的id和name。User表中的id和Status表中的userID是相同的。通过嵌套两个循环,外层遍历List<T2>,内层遍历List<T1>,内层遍历中,查询T1数据结构中的消息发布者的ID与外层遍历的T2数据结构中的id是否相同,如果相同,则能将关注对象的名称、关注对象的发布的消息关联起来。

3、通信信息。

(1)在Android智能终端下,提取分析messages表中sender_id、recipient_id、created和content字段,基于sender_id字段获得消息发送者的ID,基于recipient_id字段获得消息接收者的ID,基于created字段获得通信时间信息,created字段存储的是Unix时间戳,通过时间戳转换成本地时间;基于content字段获得通信的文本内容和图片的URL,打开该URL即可查看图片;

(2)在IOS智能终端下,提取分析messages表中text、date、recipientId以及senderId字段,基于text字段获取发布消息正文,基于date字段获取消息发送时间,基于recipientId字段获取发布消息接收者的ID,基于senderId字段获取消息发送者的ID;创建List<T3>(泛型集合),在这里T3表示的是自定义的包含通信信息正文、通信信息发送时间,通信信息发送者ID,通信信息发送者名称、通信信息接受者ID和通信信息接受者名称的类,通过List<T3>按需存储通信信息。为了将recipientId和senderId与对应的名字关联,需要在分析Users表时创建的泛型集合(List<T2>,在分析关注对象发布消息中已经创建)中通过嵌套循环,外层循环遍历List<T2>,内层循环以T2数据结构成员中的id与List<T3>中的recipientId或者senderId是否相同,如果相同则将recipientId和senderId与对应的名字关联起来。

4、搜索历史。

(1)在Android智能终端下,基于search_queries表来提取用户的搜索历史记录消息,主要包括name(搜索内容)和time(搜索时间)这些字段,其中time中存储的是Unix时间戳,通过时间戳转换成本地时间。

(2)在IOS智能终端下,首先提取名称格式为“app.acc.[Twitter用户名]-[TwitterID].detail.**”的文件,导出到创建的案件目录下;接着通过plist库解析该文件,通过关键词“$objects”解析出一个plist数组,然后在该plist数组第5个元素,通过关键词“recentSearches”得到一个数值;最后以该数值作为搜索历史在数组中存放的位置信息,在数组中提取搜索历史信息。

由上实例可知,本取证方法支持Android和iOS系统的取证,且取证内容多。

以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1