编者按
“
智能设备
”“
无人机
”,组合起来进行非接触式犯罪活动,对公民隐私、国家安全带来了巨大威胁。是时候公布对这对“
黄金组合
”的取证技术了。
ICCL:“
中央警察大学
”资讯密码暨建构实验室(台湾)
作者写在前面的话
无人机在消费型市场近年来大幅增长,许多消费者开始使用无人机进行空拍摄影,相对地也衍生出不少问题,例如操作不当肇事、误入禁航区等。耽无人机更引起了犯罪者的极大关注。犯罪者开始利用无人机的特性进行非法活动,在国外已有不少犯罪者使用无人机进行走私、贩毒、运送违禁品等案例,在国内除不当违规行为外,也有以无人机非法侵入军事基地、营区进行摄影等情况的出现。
本文将介绍无人机组成操作及取证方式,并通过模拟情境,说明其相关应用,借以说明如何通过取证所得的证据证明无人机所有者与无人机之连结关系。
相关知识说明
以下说明无人机的基本组成,并以DJI SPARK(
大疆掌上智能无人机
)为例介绍无人机操作相关工具。
无人机的基本组成
飞行器机架(Flying Platform)
飞行控制系统(Flight Control System)
推进系统(Propulsion System)
遥控器(Remote Controller)
遥控讯号接收器(Radio Receivers)
云台相机(Camera Gimbal)
DJI SPARK无人机本机包含飞行器机架、飞行控制系统、由螺旋桨及马达组成推进系统,遥控讯号接收器及整合式云台相机,机身另有Micro USB连接埠可用USB传输线与电脑连结,以及microSD卡插槽插入microSD卡储存DJI SPARK无人机进行摄影与拍照的多媒体文件。
DJI SPARK无人机操作简介
关于DJI SPARK无人机的操作,首先须有智能手机安装DJI Go 4 App来作为无人机的遥控器,在开启DJI SPARK无人机电源后,先以智能手机Wi-Fi连结无人机的Wi-Fi SSID并输入密码完成连接,再开启DJI Go 4 App进行DJI SPARK无人机的控制操作,可进行控制飞行、摄影及拍照等功能。另外,也可查看DJI SPARK的飞控序列号(Flight Controller Serial Number)和电池的SN(Serial Number),如图1~3所示。
▲图1 DJI Go 4 App操作画面
▲图2 显示飞控序列号
▲图3 查看电池序号
DJI SPARK无人机管理工具—DJI Assistant 2
DJI Assistant 2是DJI无人机的管理工具程序,将DJI无人机使用USB传输线与安装DJI Assistant 2的电脑连结,可通过DJI Assistant 2进行下列功能(图4):
▲图4 DJI Assistant 2操作画面
‧Firmware Update:进行无人机软件更新。
‧Data Upload:将无人机内存的飞行记录下载至电脑。
‧Black Box:将无人机的黑盒子资料下载至电脑。
‧WiFi Settings:设定修改无人机的Wi-Fi SSID和密码。
实验流程介绍
本文实验以iOS移动设备安装DJI Go 4 App操控DJI SPARK无人机进行飞行,并在飞行过程进行摄影和拍照,之后再分别对iOS移动设备、DJI SPARK无人机,以及DJI SPARK无人机上的microSD卡进行取证分析。
iOS取证
iOS取证方式采用逻辑取证,将iOS移动设备(iOS版本为12.0)使用iTunes(版本12.9.0.167,自Microsoft Store安装)程序进行备份,备份文档预设储存在“%USERPROFILE%\Apple\MobileSync\Backup\{UDID}”资料夹内。通过Manifest.db可得知备份资料夹内文件fileID及相对路径(relativePath)的对应,如图5所示。
▲图5 开启Manifest.db
其中在
“SystemConfiguration/com.apple.wifi.plist”文档内可查看iOS移动设备Wi-Fi连接过之SSID和BSSID,如图6所示从中可以找出连接过DJI SPARK无人机SSID “Spark-500***”与BSSID“60:60:1f:**:**:**”。
▲图6 查看com.apple.wifi.plist
在“Library/Application Support/bindInfo.plist”文档内,则可查询到DJI SPARK的飞控序列号“0BMLE*********”,如图7所示。
▲图7 查看bindInfo.plist内容
在“Documents/FlightRecords/”内有名为“DJIFlightRecord_yyyy-mm-dd_[hh-mm-ss].txt”的飞行记录文件,该文档为二进制文档(Binary file),可使用CsvView程序(Version 3.6.1,下载网址为https://datfile.net)开启导出CSV文档。
该CSV档共有274列,
通过
“CUSTOM.updateTime”、“OSD.latitude”、“OSD.longitude”、“OSD.height [m]”、“DETAILS.droneType”、“DETAILS.aircraftSnBytes”以及“DETAILS.batterySn”等列的信息可得知飞行时间、纬度、经度、高度、无人机机型Spark、无人机飞控序列号“0BMLE*********”以及电池序号“0C0AE9********”。其中要注意的是,“CUSTOM.updateTime”列显示时间的时区为GMT,换算成北京时间(
原文中标为“台湾时间”,为便于理解,编者将其统一修订为“北京时间”,下同。
)必须加8小时,如图8所示。另外,也可以使用CsvView内的GeoPlayer程序将飞行记录视觉化,如图9所示。
▲图8 查看飞行记录文档
图9 飞行记录视觉化
除此之外,在“Documents/videoCache/”内有文件名为“yyyy_mm_dd_hh_mm_ss.mp4”(图10),其内容为使用DJI Go 4 App操控DJI SPARK无人机进行飞行摄影之影片文档,如图11所示。
▲图10 在“Documents/videoCache/”内可以找到yyyy_mm_dd_hh_mm_ss.mp4
影片文档
▲图11 开启无人机摄影文档
DJI SPARK无人机取证
如图12所示,查看DJI SPARK无人机机身,有预设Wi-Fi SSID “Spark-500***”和密码“eb1b****”之信息,并有无人机机身序号“0ASUE9M*******”。
图12 无人机机身信息
DJI SPARK无人机若使用DJI Assistant 2(图13),点选Data Upload下的Save To Local,可以将飞行记录导出成文件名为“DJI_ASSISTANT_EXPORT_FILE_yyyy-mm-dd_hh-mm-ss.FLY***.DAT”的文档。
▲图13 使用DJI Assistant 2
该文档为二进制文档(Binary file),可使用CsvView程序开启导出CSV文档,而此CSV档共有211个列,其中通过栏列名“GPS(0):Long”、“GPS(0):Lat”、“GPS:dateTimeStamp”以及“GPS(0):heightMSL”等信息可得知经度、纬度、飞行时间以及高度。其中,“GPS:dateTimeStamp”栏显示时间的时区为GMT,若换算成北京时间须加8小时,如图14所示。
▲图14 飞行记录
此外,通过列“eventLog”以及“Attribute|Value”内容的Mc ID,可得知无人机飞控序列号“0BMLE*********”,如图15所示。
▲图15 查看无人机SN信息
另外,也可以使用CsvView内的GeoPlayer程序将飞行记录视觉化,如图16所示。
▲图16 飞行记录视觉化
使用DJI Assistant 2来操控DJI SPARK无人机时,若点选Black Box下的Save to Local,则可将无人机相关系统Log档导出,如图17~18所示。
▲图17 切换至Black Box画面
▲图18 找出无人机相关系统Log档
这些文档为加密文档,可使用DJI_ftpd_aes_unscramble(https://github.com/jezzab/DJI_ftpd_aes_unscramble)程序解密为明文,其中,在fatal.log文档内以“set_softap_config”字串搜寻,可得到DJI SPARK无人机设定过的Wi-Fi SSID和密码,如图19所示。
▲图19 找出无人机设定过的Wi-Fi SSID和密码
此外,以“reset_wlan_config”字串搜寻,可得到DJI SPARK无人机预设之Wi-Fi SSID及密码,如图20所示。