劉琦 趙冬雪 田燕 周福海
1. 河南警察學院 2. 河南省鄭州市公安局 3. 重慶市華信司法鑒定所
隨著信息技術的不斷發展,互聯網逐步向傳統行業延展,隨后引起這些行業的產業結構變革,并掀起了互聯網發展熱潮。傳統社會資源源源不斷融入互聯網,大量ICP服務公司如雨后春筍般發展起來。如今,互聯網逐漸形成持續完善的龐大生態體系,不停打造新的價值空間。通過互聯網網站進行數據瀏覽、訪問及交互,已經成為民眾生活、工作、學習中不可或缺的組成部分,滲透到世界的任何角落。隨著互聯網生態體系的不斷發展,流轉于其中的數據呈現出明顯的規模性、高速性、多樣性、價值性發展趨勢。英國維克托邁克舍恩伯格曾提出,數據將成為經濟運行中的根本性資源[1]。眾所周知,數據的發現、獲取、分析、充分利用至關重要[2,3]。但是,由于網站的特殊性,部分特殊網站存活時間過短[4]、其流轉有價值數據具有發現問題困難、保存不易、容易損毀及篡改[5,6]、短時間內部分數據變化非常大等特點,分析起來困難重重,是現階段相關技術研究和應用的熱點難點。
本文從實際需求出發,闡述互聯網網站數據分析面臨的困難;研究網站數據流轉過程,設計提出通用的分析方法;重點闡述了WEB服務器及數據庫等數據分析的關鍵技術。最后,以分析網站服務器鏡像為例,對互聯網網站數據分析的關鍵技術進行實踐及應用。
調研發現,網站架構復雜、開發語言多變、網站相關設置各異、數據提取技術不斷變化、網站源代碼溯源不易等多類問題共生,網站數據提取分析挑戰極大。由于部分數據無法正確提取分析而導致相關工作停滯不前的情況時有發生。
由于工作需求各異,網站架構形式多樣,復雜度高。部分小型網站所有資源集中部署在單一物理設備(服務器)上,而大中型網站則多使用站庫分離部署架構。性能要求更高的部分網站,有的甚至需要實現數據庫讀寫分離,對數據庫進行主從部署,在主從數據庫之間實現數據同步;或者采用應用服務器集群部署,通過負載調度服務器分配支持響應的應用服務器。另外,還有使用反向代理、CDN加速等技術開發的基于代理的網站架構等等??傊?,網站架構復雜多樣,任何從事數據分析的技術人員全面、深入掌握所有類型網站架構的數據分析技術可能性較小,數據提取分析的難度較大。
網站開發包括前端網站程序開發及數據庫代碼開發兩類情況。常用的網站開發語言有Python、PHP、JSP、ASP.NET、Javascript、HTML等多種類型;而數據庫開發語言也有Mysql、Sqlserver、Oracle、mongodb等諸多選擇。表1統計出多種數據庫類型、不同默認目錄、十余種數據文件類型。

?
網站開發涉及語言繁多,標準不統一。從事網站數據提取分析工作的人員,即使熟悉多種開發語言,工作中也有可能出現技術盲點,導致數據提取分析進展困難,無法及時、準確獲取需要的有價值數據信息。
首先,網站環境變量設置復雜。若進行網站重構,需要主機地址、賬號、密碼等綁定的環境變量。在做服務器鏡像仿真時,需要將環境變量修改為本機參數進行配置,否則必將報錯而無法正常運行。通常,環境變量設置步驟繁冗,容易出錯。另外,要多次嘗試獲取網站首頁頁面。部分網站首頁命名并非熟悉的index開頭的名字。掛接網站入口html文件時,沒有標準規范,有時甚至需要一個一個文件嘗試,耗時耗力,分析起來非常麻煩??傊?,網站多類設置繁冗,任何地方出錯都會導致數據分析工作停滯不前。
隨著網站建設技術的逐步提升,網站建設關鍵技術發生了深刻變革。這無疑對服務器鏡像仿真、數據庫數據及后臺賬號密碼的獲取等關鍵步驟的實現,提出了更高的技術要求。不少服務器采用云服務器集群架構,涉及分布式架構、負載均衡、前后端分離等技術,數據存儲與查詢更是采用多種數據分析引擎,如Mysql, redis, MongoDB, Elasticsearch等。技術不停的更新迭代,疲于進行數據分析的工作人員很難有充足的時間不斷研究及提升自身技術、保持知識體系的先進性。有些時候由于獲取互聯網網站采用的技術過于先進,甚至出現數據分析人員面對海量電子數據根本沒有適合工具可用的尷尬情況,這直接導致了有價值數據信息無法快速、精確、有效獲取。更有甚者,部分有價值情報線索深深隱藏于海量數據中,由于數據挖掘不利,“需要的數據無法提取分析,提取的數據都是不需要的”情況亦有出現。
不少網站源代碼一經開發,廣泛傳播。出于成本、開發時間等因素,同類網站代碼重復應用的特征非常明顯。所以,擬分析的網站源代碼數據具有明顯的多次開發痕跡,相當一部分源代碼無法正常調用,冗余代碼較多,疊加了大量需要分析的無效數據。這不僅加大了數據分析人員的工作量及數據提取分析的難度,更因為多樣、復雜特征并存使得網站追蹤溯源顯得異常困難。

網站是互聯網上根據一定規則,使用HTML等工具開發的用于展示特定內容網頁的集合[7]。使用網站,可以使得人們獲取相應信息數據、享受相關網絡服務、進行信息共享交流等等。網站數據提取分析是指基于先進的信息化技術手段(采用將鏡像硬盤掛接到業務服務器上直接分析或重構網站等方法),從實際需求出發,提取、分析所需要的數據信息的過程。其數據流轉及分析流程如下述。
網站中的數據一般由前端網頁文件、源代碼文件及后臺數據庫文件組成。前端網頁文件及代碼文件構成WEB服務器,提供前臺頁面展示、瀏覽等服務。已知常用的數據流轉為:數據通過WEB代碼程序,控制其在后臺的調用,生成應用服務日志文件及配置文件;后臺數據庫服務器用于管理數據庫表文件,實現表中數據的增刪改查,根據應用服務器中指令代碼,回傳數據庫表數據,并生成數據庫日志文件及配置文件,實現數據流轉。
總結筆者前期的工作經驗,本文提出如下網站數據提取分析的工作思路:拿到互聯網網站數據硬盤后,首先要進行數據備份,制作HASH文件,進行摘要驗證,保證原始數據沒有經過修改。通過專用工具掛接服務器數據,進行仿真鏡像。將主機系統仿真運行后,獲取WEB應用服務器及數據庫服務器控制權限。開啟服務后,進入后臺,分別進行應用服務器、數據服務器數據提取及分析,關鍵是注重網站首頁入口,網站源代碼,數據庫表等相關數據的獲取與分析。
基于上述工作思路,本文提出一種通用的分析流程,具體如下。首先,分析應用服務器。應包括對WEB應用服務器網頁文件、代碼文件、生成的日志、配置文件的分析,聚焦WEB應用服務器中的特殊功能模塊。其次,分析數據庫服務器。應包括數據庫服務器所使用的語言環境、數據庫表數據、日志數據、配置數據等等。獲取登錄賬號、IP地址、資金流轉等數據信息。如圖1所示。

基于上述流程,實現網站數據的提取與分析。
依據技術規范《SF/Z JD0400001-2014 電子數據司法鑒定通用實施規范》及《GBT-29362-2012 電子物證數據搜索檢驗規程》等文件,使用數據分析典型工具、搭建系統平臺,包括專用工作站(Windows Server 2008 R2 Service Pack1)、文件制作工具(AccessData FTK Image V4.2.0.13)、分析工具(取證大師V6.1.80018RTM)、數據庫環境(MySQLV5.7.30)、數據庫查詢工具(Navicat V15.0.14)、文件校驗工具(HashMyFilesV2.31)等工具的使用、鏡像文件的制作、hash校驗的完成、系統平臺的搭建等等。對某網站硬盤數據提取分析的技術方法如下:
通過分析工具找到網站首頁等html前端網頁文件,分析源代碼程序,發現網站源代碼、數據庫表的存儲路徑,獲取網站賬號密碼等關鍵數據信息,為數據提取分析奠定基礎。提取分析方法如下:
使用“取證大師”加載文件,掃描硬盤備份后,分析出“m_3goo_com_XXXXXX_XXXXXX.sql.gz”文件為數據庫備份文件,路徑為:“wwwackupdatabase”,文件物理大小為5,771,264字節,邏輯大小為5,771,004字節。挖掘出“m.pjtrkm.cn”文件夾內的文件為網站源代碼文件,發現其路徑為“wwwwwwrootm.pjtrkm.cn”;找到網站源代碼文件記錄數據庫信息的文件“develop.php”,發現其路徑為:“wwwwwwrootm.pjtrkm.cnApplicationCommon Conf”。通過上述工作的開展,找到數據硬盤中的關鍵數據路徑信息,獲取關鍵信息,實現網站復原,為數據提取分析提供保障。
1. 提取及分析網站所具備的股票分析功能源碼
從實際需求出發,在源代碼路徑“m.pjtrkm.cn ApplicationHomeController”中深挖網站中股票相關功能代碼。隨后發現,該網站源碼文件中僅存在定時自動獲取股票實時數據行情的功能,未發現與正規券商進行交易數據交換的功能接口,因此不可能具備股票預測功能。
2. 提取及分析網站掛接的支付接口及入金接口功能源碼
在查找掛接支付接口及入金接口、進行數據分析的過程中,發現路徑“m.pjtrkm.cnApplicationApiController”中名為“IndexController.class.php”的文件;路徑“m.pjtrkm.cn ApplicationPayController”中名為“QuickPayController.class. Php”的文件;路徑“m.pjtrkm.cnApplicationPay Controller”中名為“ErpPayController.class.php”的文件都存在支付接口功能,能提供銀聯支付、支付寶支付、銀生網關支付、九派網支付、國付寶網關支付、官網自定義入金接口支付接口。
上述數據分析工作說明,該網站具備實時獲取股票信息的功能,支持多種支付方式,但不具備股票預測功能。
在工作站上搭建MySQL數據庫服務器,對獲取的“m_3goo_com_XXXXXXX_XXXXXX.sql.gz”數據備份文件進行解壓后,使用Navicat工具,在MySQL數據庫環境中進行數據還原。之后,獲取網站管理人員層級式的賬號、地址等數據及資金流轉等數據。此網站數據庫基于MySQL的資金流轉分析如下:
使用SQL語句關聯查詢“m_3goo_com120”數據庫中“it_users”表用戶表“id”字段、“it_bank_card”表銀行卡表“uid”字段、“it_money_log”用戶資金變動記錄表“uid”字段、“it_withdraw”表出金記錄表“uid”字段、“it_agent_user”表代理管理員表“agent_code”字段關聯查詢,提取相關用戶的關鍵數據信息。
通過查詢獲取用戶ID號、用戶名、代理編號、余額、占用資金、凈入金、出金、最后登錄地址等等。進一步挖掘,對“m_3goo_com120”數據庫“it_withdraw”出金記錄表“it_money_log”用戶資金變動記錄表中該用戶的充值金額、儲金金額進行關聯查詢,分析資金變動明細。
部分核心SQL語句如下:
SELECT IFNULL(SUM(amount),0)充值到賬金額合計,
(SELECT IFNULL(SUM(amount),0) FROM 'it_withdraw'WHEREpay_status=1 AND status=1 AND uid=187)出金金額合計,
(SELECT IFNULL(SUM(fee),0) FROM 'it_withdraw'WHEREpay_status=1 AND status=1 AND uid=187)出金續費合計,
FROM 'it_money_log'WHERElog_id=0 AND uid=187如圖2所示。

通過分析網站數據,明確了該用戶資金進賬的全過程。
使用類似分析過程,基于SQL語句,分析資金進賬。將“m_3goo_com120”數據庫中“it_users”表用戶表“id”字段、“it_bank_card”表銀行卡表“uid”字段、“it_money_ log”用戶資金變動記錄表“uid”字段、“it_withdraw”表出金記錄表“uid”字段、“it_agent_user”表代理管理員表“agent_code”字段進行關聯查詢,經查詢會員信息記錄條數為:769,分析數據庫中會員充值記錄、出金記錄知,會員充值記錄條數為1089,出金記錄條數為396。充值到賬金額合計為:450853840.48,出金金額合計為18791651.01,出金手續費合計為:434.00元。會員資金統計涉及核心代碼如下:
SELECT IFNULL(SUM(amount),0)充值到賬金額合計,
(SELECT IFNULL(SUM(amount),0) FROM 'it_withdraw'WHEREpay_status=1AND status=1)出金金額合計,
(SELECT IFNULL(SUM(fee),0) FROM 'it_with draw'WHEREpay_status=1 AND status=1)出金續費合計,
FROM 'it_money_log'WHERElog_id=0
通過對互聯網網站數據的深入分析,實現互聯網網站會員資金流轉全過程的還原與分析。
上述互聯網網站數據涉及到的提取分析技術,本文使用服務器鏡像工具仿真主機系統后,實現了應用服務器、數據庫服務器的仿真,并從仿真平臺系統源碼中分析出網站特殊功能源代碼,根據分析人員工作經驗,主導基于SQL關聯查詢技術方法,從后臺數據庫中挖掘管理人員登錄地址,并分析出相關人員的資金流轉。
由于互聯網網站的特殊性,不同于傳統數據,其流轉數據的提取分析技術難度大、需求強、復雜多變、規律難尋、容易篡改損毀,困難重重。但網站數據的提取與分析是相關工作的核心步驟,能夠順利提取有價值的數據信息意義重大。本文從實際需求出發,總結互聯網網站數據分析面臨的困難,設計提出一種數據分析的方法流程,闡述了實際數據分析的過程中從應用服務器、數據庫服務器提取分析數據的工作流程、技術方法等等。該方法思路清晰、可操作性強,以期為相關工作人員成功破獲此類案件提供參考借鑒。