针对国外一款超火约会软件Tinder的取证分析

2015-12-30 151853人围观 ,发现 1 个不明物体 终端安全

Tinder是一款拥有数百万用户的热门交(yue)友(pao)软件。

有时使用在线约会软件会面临巨大危险,特别是当性瘾者、追踪癖利用这些应用程序寻找目标。Tinder会与用户的Facebook相连,进而明确用户真实身份。随着利用这些软件开展暴力、谋杀、性交易等犯罪活动的出现,执法部门必须针对这些网上交友相关犯罪活动做好准备,本文讨论了iOS系统中的Tinder应用程序的一些数字取证分析。

我们使用运行了iOS 9.1系统的iPod Touch 5用于研究。安装了Tinder 4.7.1版本,并使用BlackLight Release 3.1进行逻辑获取。

关于Tinder你需要知道这些

在应用程序的潜在配对中,并不显示用户的姓;
每个Tinder用户资料,都与一个手机号和一个Facebook账户关联;
每个Tinder用户的ID都是一个长度为25的字母数字字符串;
每次“配对成功”都会产生一个“Match”ID,是一个长度为50的字母数字字符串;
你可以同时使用多个设备登录Tinder;
你必须超过13岁才能注册;在13-17年龄组的用户会看到同龄的用户。但是,如果一个在13-17年龄组的17岁用户配对成功之后,发现对方竟然18岁,这样的配对关系仍会保留。

为了方便研究,我进行了简单分类。Tinder应用程序的数据可以从/mobile/Applications/com.cardify.tinder这里找到。最为有用的文件如下所示:

1、Tinder2.sqlite
2、com.cardify.tinder.plist
3、com-facebook-sdk-AppEventsTimeSpent.json

用户设置及数据

用户可以自行决定约炮的地理半径、性别以及年龄范围。所有这些可变量都被存放于com.cardify.tinder.plist。这个plist是动态更新的。新键的介入将会带来更多的可用数据。最为重要的是,如果你注销再进行重新登录,设置以及用户信息会进行恢复。

表(1):与设置、用户数据相关的工件

建立一条时间线

Tinder中保存了大量的时间戳,包括创建一个时间戳、首次登陆时间戳以及最后一次暂时时间戳。此外,每一个“Match”都会产生一个时间戳,每个文本也会有各自的时间戳。所有的时间戳都可以用来建立时间线。值得注意的是,时间戳既可以存储于Unix Epoch中,也可以存放于Cocoa(Webkit)时间格式中。

表(2):时间戳工件

潜在“配对成功”

Tinder2.sqlite是存放“Match”的宝库,包含了“Match”、照片以及文本。所有近期的“Match”都存放于ZUSER表中。ZUSER中包含了出生日期、用户ID、地理距离、名字、工作、大学、Instagram账户ID等等信息。

这里要注意一下出生日期:

在Unix epoch上出生日期被记录为负值,例如:-391046400 = 1957年8月11日。与Unix Epoch将1970年定为起始年不同的是,Tinder将2001年定为起始年。因此,1957奶奶8月11日+31年=1988年8月11日。(毕竟约炮还是一个相对年轻的活动)

潜在“配对成功”图片

这些图片并不存储在设备上,它们从images.gotinder.com中提取。每个图片都遵循如下格式:

images.gotinder.com/USER-ID/PHOTO-ID.jpg

访问images.gotinder.com/USER-ID,你会得到一个“访问被拒绝”的提示。如果不清楚照片ID,那么似乎是无法下载某已知Tinder账号的所有照片。在文件Tinder2.sqlite中发现的表ZPHOTO存放了所有潜在配对ID的照片,其中还包含可以在任何浏览器中打开的URL链接。

“配”还是“不配”

每个“配对成功”都会产生一个50个字母数字构成的字符串ID。每个配对ID包含了用户双方的ID,而排列次序取决于谁先“喜欢”谁。然而,这并没有得到详尽的测试进行证明。除此之外,在表ZMATCH中找到了创建“配对成功”的时间戳。

如果在配对之后发生“不匹配”,则没有针对“匹配成功”可操作的数据。但是,值得注意的是sqlite的可恢复碎片文件中显示了“配对成功”ID。由于我们通过Match ID包含了两个用户ID,我们便可以从恢复的片段中确定这两个“配对成功”的用户。

知道Tinder ID后,我们便可以找到用户名字和其他ZUSER表中的数据。如果出于某些原因,“match”没有出现在表ZUSER中,配对这的名字可以在 /mobile/Library/SpringBoard/ApplicationShortcuts/com.cardify.tinder.plist中找到。

文本

文本可以在Tinder2.sqlite的表ZMESSAGE下找到。如果两个用户都选择了“不匹配”,文本会被删除。而这些删除的文本同样可以从可恢复sqlite文件片段中找到,但是,无法根据这些找到特定用户或者Tinder ID。

表ZMESSAGE与恢复文件

本地数据

Tinder似乎并不保存用户的GPS坐标,至少在本次研究中没有发现可以恢复的数据。Tinder在表ZUSER中存储了用户与潜在对象的距离;这个距离四舍五入至最接近的英里数。举个例子,如果用户与炮友间的距离是0.75英里,则Tinder保存的“距离英里”(distancemiles)值为1,这个值可以在表ZUSER中找到。

在卸载和删除情况下的数据恢复

在卸载或者删除应用程序后,这里有三种情况。

·未卸载程序,删除用户账号
·未删除用户账户,进行卸载
·删除账户,并且卸载程序

案例1:com.cardify.tinder.plist保留了Tinder用户ID。这可能会成为非常有用的证据。利用Tinder用户ID和一些其他的信息,便可获取调查线索。这里没有其他可以恢复的数据了。

案例2:存留的几个安装指导可以帮助Tinder。这些指导可以通过以下途径获取:

/mobile/Library/com.apple.itunesstored/itunesstored2.sqlitedb
/mobile/Library/TCC/TCC.db
/mobile/Library/Preferences/com.apple.Duet.plist
/mobile/Library/Preferences/addaily.plist
/mobile/Library/FrontBoard/applicationState.plist

卸载时间戳似乎可以在/mobile/Library/com.apple.itunesstored/itunesstored2.sqlitedb这里找到。然而,这个工件还没被进行广泛的测试,因此能否被直接应用还存有疑问。Tinder用户ID无法在这种情况下进行恢复。

在itunesstored2.sqlitedb中发现卸载时间戳

案例3:无法恢复用户ID,但是在案例2中提到的安装指导。

存储

一个用户可以同时在多个设备登录Tinder账号。在这种情况下,受害者/嫌疑人的电话无法使用时,可以在测试设备上安装Tinder,然后使用该用户的Facebook登陆凭证进行登录。双因素身份验证并不要求登录时使用其他设备惊醒验证。同时,Tinder上并没有任何通知说该账号在多个设备上登录。所有的“成功匹配”和用户账号设置都没有被删除,这些数据会被“保留”。

*原文地址:parthasarathyalwar,哆啦A梦编译,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)

发表评论

已有 1 条评论

取消
Loading...
css.php