iOS版本Telegram深度解析
Decoding iOS Telegram

2020-1-27 by 高田鑑識

根據Statista的資料,截至2019年底Telegram每月的活躍用戶約有兩億人口,在即時通訊軟體的人口使用排名上為第六名。但也因為著Telegram三大特點,隱私性、跨平台與開源的用戶端程式碼(自由及開放原始碼軟體),再加上採用自行開發的MTProto網路傳輸協定,用戶可以相互交換加密的自毀訊息,相較於其它競爭對手,Telegram可有效避免政府的監控與追蹤,導致Telegram也是罪犯優先採用的通訊App。

Statistic: Most popular global mobile messenger apps as of October 2019, based on number of monthly active users (in millions) | Statista
Find more statistics at Statista

圖一、即時通訊軟體世界排行

Cellebrite支援Telegram資料提取與解析,以便鑑識人員深入了解犯罪嫌疑人的日常活動,包括他們的聯絡人,聊天,頻道,通話,位置,甚至是用於上鎖Telegram App的密碼。在需要明確或確鑿證據的調查過程中,取得如此大量的數位資料是無價的。

UFED Physical Analyzer 7.19版中,Cellebrite針對Telegram支援了重要數位證據解析,如用戶帳號資訊與聯絡人。在之後的更新中,支援了聊天資訊,而在7.22版本中,支援了更多不同的附件檔案格式的解析。

接下來讓我們探討犯罪與危險分子如何利用Telegram點對點加密機制交換訊息,以及如何在調查過程中解析來自Telegram的數位資料。

犯罪分子使用Telegram的4種主要方式

Telegram提供加密聊天功能原本是為了用戶隱私與避免政府追蹤,但對於犯罪分子則利用此功能隱藏了涉及恐怖主義,盜竊和毒品市場的非法活動。甚而之,毒販還利用Telegram的自動聊天機器人,讓買家透過街頭塗鴉找到毒品交易商的Telegram帳戶名稱,藉著匿名聊天進行販毒交易。

1. 毒品交易市場

在Telegram上販售毒品,大多數皆採用「dead drop」方式交易毒品與金錢。為了避免身分曝光,毒品會先安置在公開場所,如公園並透過Telegram告知買家正確位置。而付款方式則透過加密貨幣來支付,加深金流朔源的難度。也因為Telegram秘密聊天(secret chats)的隱私性,啟用前身份驗證較為簡易等,增加犯罪者大幅從其他的即時聊天軟體移至到Telegram平台上的誘因。

2. 恐怖份子

恐怖組織ISIS在Telegram自建的頻道(channel)上吸引了超過10,000多名關注者,並透過加密方式在全球各地傳播圖片,影片和文宣。 Al-Qaeda基地組織也是透過Telegram與記者進行交流與政治宣傳。

3. 虐待兒童

虐待和兒童性剝削內容一直都是暗網(Dark Web)上最大的交易項目。戀童癖現在也湧向Telegram來換購虐待兒童的內容,並使用YouTube上的關鍵字和隱密鏈接將有興趣的團體引向封閉群組。而面對這樣的濫用,Telegram會主動在一個小時內刪除虐待兒童的內容和散布的帳號,不幸的是現在內容傳遞方式都是在幾分鐘內就完成了。

4. 販售個資

Telegram也已成為出售個資和信用卡資訊的天堂。通常犯罪集團會先以“免費品嚐”的形式提供給感興趣的客戶,資訊可以包括全名,銀行帳號與身分證等。隨著2019年在暗網上提供超過2,300萬張被盜的信用卡和提款卡資訊,Telegram等平台已是銷售不法交易的第一手和最後一里渠道。

iOS Telegram版本歷史

2018年1月,Telegram發布了iOS版本的Telegram X App。Telegram X採用Apple Swift程式語言開發,相較於舊版本的Objective-C程式語言有更高的執行效率。 但在2018年10月,Telegram終止了Telegram X iOS版本的更新,並建議用戶安裝回Telegram App。而新版本的Telegram也改以 Swift 重新編寫,將效能與省電再往上推一個層次,並承襲著以往安全、簡單、方便為主軸的理念,決不遜色於目前台灣所流行的 Line、Facebook Messenger 或國外的 WeChat、WhatsApp 等通訊軟體。

鑑識人員需注意事項

UFED Physical Analyzer已支援Telegram X與5.0以上版本的資料解析。若有一個行動裝置上同時有Telegram X與Telegram 5.0,UFED PA皆會正常解析並呈現內容,但需注意若Telegram資料介於2018一月至十月,鑑識人員須合併兩個App的資料才可建構出完整的用戶活動紀錄。

Telegram 5.0的開發語言與資料庫結構皆與Telegram X相同,UFED PA 7.22之後的版本皆可提取出完整的數位證據。

Telegram專有格式和獨特的資料庫結構說明

Telegram 5.0以上版本檔案皆存放在「telegram-data」資料夾下。因Telegram支援多重登入,可以在一個裝置上使用多個電話號碼登入Telegram,每個登入的帳號皆會產生資料夾,其命名格式為「account-######」,而該用戶的檔案與資料庫皆儲存於此。而「accounts-metadata」下記錄著帳號一般資訊。

表一、telegram-data資料夾

表二、資料庫位置

早期版本的Telegram採用Objective-C開發,資料庫(tgdata.db)為結構化資料(Structured Data)。基本上是先有結構,欄位名稱要先定義,才有資料。優點是查詢資料快速,使用較少的空間;缺點是彈性較低,增加新的欄位比較麻煩,在資料交換上的規定也比較嚴格。

訂單編號項目單價購買數量總金額
A001排骨便當802160
A001火腿便當903270
A002今日特餐70170

表三、結構化資料範本

Telegram 5.0以上版本資料庫名稱為db_sqlite,其中所有表(Table)採用「t0」,「t1」,「t2」…方式命名。每個表內只有兩欄(columns),第一個為「key」,欄位型態為整數或BLOB。第二個為「value」,欄位型態為BLOB。

從Telegram公開的原始碼上得知,表「t2」為用戶資料,內容採序列化方式(serialized)記錄。

圖二、表t2-用戶資料清單範例

t2表內帳號953096753的第二欄位「value」內容採Hex呈現如下

圖三、表t2-「value」欄位內容

最後透過PA解析,帳號資訊可從「聯絡人」列表下的「Telegram」類別整理後呈現。

圖四、解析後的聯絡人資訊

以下為包含附件的聊天內容解析:

圖五、聊天內的附件清單

結論

UFED PA 7.22版本後Cellebrite對於Apps的解析能力再次加深,對於犯罪分子利用其他合法平台來進行非法活動,Cellebrite將持續針對提取,解碼和分析提供更深度的支援,讓鑑識人員得以找出關鍵證據並協助打擊犯罪。