来源:信息时代的犯罪侦查,作者:ICCL
“智能设备”“无人机”,组合起来进行非接触式犯罪活动,对公民隐私、国家安全带来了巨大威胁。是时候公布对这对“黄金组合”的取证技术了。
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所示。
▲图20 找出预设的Wi-Fi SSID和密码
使用DJI Assistant 2程序介面时,并无显示DJI SPARK无人机的飞控序列号,可至“%USERPROFILE%\AppData\Roaming\DJI Assistant 2\ALL\log\”资料夹内查看档名为“yyyy_mm_dd@hh_mm_ss.log”的文档,就能够得到以DJI Assistant 2程序设定过的无人机的飞控序列号,如图21所示。
▲图21 找出飞控序列号
microSD内文档取证
如图22所示,操控DJI SPARK无人机进行摄影及拍照的文档,会储存在microSD卡的“\DCIM\100MEDIA”资料夹内。
▲图22 查看无人机拍摄文档
若通过ExifTool Version 11.13程序
(下载网址是https://www.sno.phy.queensu.ca/~phil/exiftool/)
ExifToolGUI Version 5.16程序(下载网址为http://u88.n24.queensu.ca/~bogdan/)来读取这些文档,将可以取得文档建立时间(CreateDate)、GPS座标信息(GPSCoordinats),而Encoder值为Dji AVC Encoder,可判别文档为DJI无人机所产生,如图23所示。
▲图23 找出无人机拍摄文档Metadata信息
实际情境
某军用机场发现遭不明人士操控DJI SPARK无人机闯入,疑似进行拍照摄影情报工作,军方人员立即以无人机防御系统进行捕捉,之后调阅周边路口监视器发现有一台轿车快速驶离、形迹可疑。
经查该车牌号码资料,是一家租车公司所属的租赁车。访查得知,该车系为一外籍人士所租用。“国安”人员立即通报出入境管理部门,在机场将该外籍人士拦获逮捕,扣押该外籍人士身上之iPhone智能手机和笔记本电脑。
初步查看iPhone智能手机上有安装DJI Go 4 App,笔记本电脑上有安装DJI Assistant 2。将捕捉所得DJI SPARK无人机、扣押所得iPhone智能手机及笔记本电脑进行取证,发现DJI SPARK无人机之飞控序列号与扣得iPhone智能手机及笔记本电脑取证所得之飞控序列号相符合,且DJI SPARK无人机的Wi-Fi SSID值与iPhone Wi-Fi连线过的SSID值亦相同,可证明该捕捉所得之DJI SPARK无人机为该外籍人士所有。
另从DJI SPARK无人机上的microSD、iPhone及笔记本电脑上起获其他拍摄军营、军用机场及军港之影像照片文档,从影像照片文档中metadata信息、DJI SPARK无人机及iPhone取证所得之飞行记录进行分析整合,建立犯罪时序地理轨迹,调阅周边监控录像及查访,确认该外籍人士曾在犯罪时地出现。
出示相关证据后,该外籍人士坦承系受外国情治单位指使,以自由行观光名义在台湾进行渗透及情报收集活动。
结语
消费型无人机日趋平价,且轻便及操作方便,吸引越来越多消费者购买使用,相对提高了使用无人机肇事违规发生的数量,也吸引了很多犯罪者注意,使用无人机进行不法行为,甚至造成国家安全隐患。为应对无人机管理相关问题,有关部门开始进行相关修法工作,并开始规划研究无人机注册实名登记的相关规则。2018年,台湾“立法院”通过修正民用航空法部分条文修正案,将无人机纳入管理,并规定重量500克以上无人机都必须登记注册,且“飞安会”也开始进行修正飞航事故调查法,增订调查范围涵盖遥控无人机事故,因此无人机的取证调查是一个新兴的议题及挑战。
本文针对无人机进行取证实验,以了解无人机相关信息及自何处取得,并得知无人机机身序号与飞控序列号并不相同,借此使得证据获取,更加具有辨识度,从而健全了在此类案件中电子取证的程序和质量。
【编者注】文中所引案例纯属虚构,如有雷同,实属巧合。