劉琦 趙冬雪 田燕 周福海
1. 河南警察學(xué)院 2. 河南省鄭州市公安局 3. 重慶市華信司法鑒定所
隨著信息技術(shù)的不斷發(fā)展,互聯(lián)網(wǎng)逐步向傳統(tǒng)行業(yè)延展,隨后引起這些行業(yè)的產(chǎn)業(yè)結(jié)構(gòu)變革,并掀起了互聯(lián)網(wǎng)發(fā)展熱潮。傳統(tǒng)社會(huì)資源源源不斷融入互聯(lián)網(wǎng),大量ICP服務(wù)公司如雨后春筍般發(fā)展起來(lái)。如今,互聯(lián)網(wǎng)逐漸形成持續(xù)完善的龐大生態(tài)體系,不停打造新的價(jià)值空間。通過(guò)互聯(lián)網(wǎng)網(wǎng)站進(jìn)行數(shù)據(jù)瀏覽、訪問(wèn)及交互,已經(jīng)成為民眾生活、工作、學(xué)習(xí)中不可或缺的組成部分,滲透到世界的任何角落。隨著互聯(lián)網(wǎng)生態(tài)體系的不斷發(fā)展,流轉(zhuǎn)于其中的數(shù)據(jù)呈現(xiàn)出明顯的規(guī)模性、高速性、多樣性、價(jià)值性發(fā)展趨勢(shì)。英國(guó)維克托邁克舍恩伯格曾提出,數(shù)據(jù)將成為經(jīng)濟(jì)運(yùn)行中的根本性資源[1]。眾所周知,數(shù)據(jù)的發(fā)現(xiàn)、獲取、分析、充分利用至關(guān)重要[2,3]。但是,由于網(wǎng)站的特殊性,部分特殊網(wǎng)站存活時(shí)間過(guò)短[4]、其流轉(zhuǎn)有價(jià)值數(shù)據(jù)具有發(fā)現(xiàn)問(wèn)題困難、保存不易、容易損毀及篡改[5,6]、短時(shí)間內(nèi)部分?jǐn)?shù)據(jù)變化非常大等特點(diǎn),分析起來(lái)困難重重,是現(xiàn)階段相關(guān)技術(shù)研究和應(yīng)用的熱點(diǎn)難點(diǎn)。
本文從實(shí)際需求出發(fā),闡述互聯(lián)網(wǎng)網(wǎng)站數(shù)據(jù)分析面臨的困難;研究網(wǎng)站數(shù)據(jù)流轉(zhuǎn)過(guò)程,設(shè)計(jì)提出通用的分析方法;重點(diǎn)闡述了WEB服務(wù)器及數(shù)據(jù)庫(kù)等數(shù)據(jù)分析的關(guān)鍵技術(shù)。最后,以分析網(wǎng)站服務(wù)器鏡像為例,對(duì)互聯(lián)網(wǎng)網(wǎng)站數(shù)據(jù)分析的關(guān)鍵技術(shù)進(jìn)行實(shí)踐及應(yīng)用。
調(diào)研發(fā)現(xiàn),網(wǎng)站架構(gòu)復(fù)雜、開(kāi)發(fā)語(yǔ)言多變、網(wǎng)站相關(guān)設(shè)置各異、數(shù)據(jù)提取技術(shù)不斷變化、網(wǎng)站源代碼溯源不易等多類(lèi)問(wèn)題共生,網(wǎng)站數(shù)據(jù)提取分析挑戰(zhàn)極大。由于部分?jǐn)?shù)據(jù)無(wú)法正確提取分析而導(dǎo)致相關(guān)工作停滯不前的情況時(shí)有發(fā)生。
由于工作需求各異,網(wǎng)站架構(gòu)形式多樣,復(fù)雜度高。部分小型網(wǎng)站所有資源集中部署在單一物理設(shè)備(服務(wù)器)上,而大中型網(wǎng)站則多使用站庫(kù)分離部署架構(gòu)。性能要求更高的部分網(wǎng)站,有的甚至需要實(shí)現(xiàn)數(shù)據(jù)庫(kù)讀寫(xiě)分離,對(duì)數(shù)據(jù)庫(kù)進(jìn)行主從部署,在主從數(shù)據(jù)庫(kù)之間實(shí)現(xiàn)數(shù)據(jù)同步;或者采用應(yīng)用服務(wù)器集群部署,通過(guò)負(fù)載調(diào)度服務(wù)器分配支持響應(yīng)的應(yīng)用服務(wù)器。另外,還有使用反向代理、CDN加速等技術(shù)開(kāi)發(fā)的基于代理的網(wǎng)站架構(gòu)等等??傊?,網(wǎng)站架構(gòu)復(fù)雜多樣,任何從事數(shù)據(jù)分析的技術(shù)人員全面、深入掌握所有類(lèi)型網(wǎng)站架構(gòu)的數(shù)據(jù)分析技術(shù)可能性較小,數(shù)據(jù)提取分析的難度較大。
網(wǎng)站開(kāi)發(fā)包括前端網(wǎng)站程序開(kāi)發(fā)及數(shù)據(jù)庫(kù)代碼開(kāi)發(fā)兩類(lèi)情況。常用的網(wǎng)站開(kāi)發(fā)語(yǔ)言有Python、PHP、JSP、ASP.NET、Javascript、HTML等多種類(lèi)型;而數(shù)據(jù)庫(kù)開(kāi)發(fā)語(yǔ)言也有Mysql、Sqlserver、Oracle、mongodb等諸多選擇。表1統(tǒng)計(jì)出多種數(shù)據(jù)庫(kù)類(lèi)型、不同默認(rèn)目錄、十余種數(shù)據(jù)文件類(lèi)型。
?
網(wǎng)站開(kāi)發(fā)涉及語(yǔ)言繁多,標(biāo)準(zhǔn)不統(tǒng)一。從事網(wǎng)站數(shù)據(jù)提取分析工作的人員,即使熟悉多種開(kāi)發(fā)語(yǔ)言,工作中也有可能出現(xiàn)技術(shù)盲點(diǎn),導(dǎo)致數(shù)據(jù)提取分析進(jìn)展困難,無(wú)法及時(shí)、準(zhǔn)確獲取需要的有價(jià)值數(shù)據(jù)信息。
首先,網(wǎng)站環(huán)境變量設(shè)置復(fù)雜。若進(jìn)行網(wǎng)站重構(gòu),需要主機(jī)地址、賬號(hào)、密碼等綁定的環(huán)境變量。在做服務(wù)器鏡像仿真時(shí),需要將環(huán)境變量修改為本機(jī)參數(shù)進(jìn)行配置,否則必將報(bào)錯(cuò)而無(wú)法正常運(yùn)行。通常,環(huán)境變量設(shè)置步驟繁冗,容易出錯(cuò)。另外,要多次嘗試獲取網(wǎng)站首頁(yè)頁(yè)面。部分網(wǎng)站首頁(yè)命名并非熟悉的index開(kāi)頭的名字。掛接網(wǎng)站入口html文件時(shí),沒(méi)有標(biāo)準(zhǔn)規(guī)范,有時(shí)甚至需要一個(gè)一個(gè)文件嘗試,耗時(shí)耗力,分析起來(lái)非常麻煩??傊?,網(wǎng)站多類(lèi)設(shè)置繁冗,任何地方出錯(cuò)都會(huì)導(dǎo)致數(shù)據(jù)分析工作停滯不前。
隨著網(wǎng)站建設(shè)技術(shù)的逐步提升,網(wǎng)站建設(shè)關(guān)鍵技術(shù)發(fā)生了深刻變革。這無(wú)疑對(duì)服務(wù)器鏡像仿真、數(shù)據(jù)庫(kù)數(shù)據(jù)及后臺(tái)賬號(hào)密碼的獲取等關(guān)鍵步驟的實(shí)現(xiàn),提出了更高的技術(shù)要求。不少服務(wù)器采用云服務(wù)器集群架構(gòu),涉及分布式架構(gòu)、負(fù)載均衡、前后端分離等技術(shù),數(shù)據(jù)存儲(chǔ)與查詢(xún)更是采用多種數(shù)據(jù)分析引擎,如Mysql, redis, MongoDB, Elasticsearch等。技術(shù)不停的更新迭代,疲于進(jìn)行數(shù)據(jù)分析的工作人員很難有充足的時(shí)間不斷研究及提升自身技術(shù)、保持知識(shí)體系的先進(jìn)性。有些時(shí)候由于獲取互聯(lián)網(wǎng)網(wǎng)站采用的技術(shù)過(guò)于先進(jìn),甚至出現(xiàn)數(shù)據(jù)分析人員面對(duì)海量電子數(shù)據(jù)根本沒(méi)有適合工具可用的尷尬情況,這直接導(dǎo)致了有價(jià)值數(shù)據(jù)信息無(wú)法快速、精確、有效獲取。更有甚者,部分有價(jià)值情報(bào)線索深深隱藏于海量數(shù)據(jù)中,由于數(shù)據(jù)挖掘不利,“需要的數(shù)據(jù)無(wú)法提取分析,提取的數(shù)據(jù)都是不需要的”情況亦有出現(xiàn)。
不少網(wǎng)站源代碼一經(jīng)開(kāi)發(fā),廣泛傳播。出于成本、開(kāi)發(fā)時(shí)間等因素,同類(lèi)網(wǎng)站代碼重復(fù)應(yīng)用的特征非常明顯。所以,擬分析的網(wǎng)站源代碼數(shù)據(jù)具有明顯的多次開(kāi)發(fā)痕跡,相當(dāng)一部分源代碼無(wú)法正常調(diào)用,冗余代碼較多,疊加了大量需要分析的無(wú)效數(shù)據(jù)。這不僅加大了數(shù)據(jù)分析人員的工作量及數(shù)據(jù)提取分析的難度,更因?yàn)槎鄻?、?fù)雜特征并存使得網(wǎng)站追蹤溯源顯得異常困難。
網(wǎng)站是互聯(lián)網(wǎng)上根據(jù)一定規(guī)則,使用HTML等工具開(kāi)發(fā)的用于展示特定內(nèi)容網(wǎng)頁(yè)的集合[7]。使用網(wǎng)站,可以使得人們獲取相應(yīng)信息數(shù)據(jù)、享受相關(guān)網(wǎng)絡(luò)服務(wù)、進(jìn)行信息共享交流等等。網(wǎng)站數(shù)據(jù)提取分析是指基于先進(jìn)的信息化技術(shù)手段(采用將鏡像硬盤(pán)掛接到業(yè)務(wù)服務(wù)器上直接分析或重構(gòu)網(wǎng)站等方法),從實(shí)際需求出發(fā),提取、分析所需要的數(shù)據(jù)信息的過(guò)程。其數(shù)據(jù)流轉(zhuǎn)及分析流程如下述。
網(wǎng)站中的數(shù)據(jù)一般由前端網(wǎng)頁(yè)文件、源代碼文件及后臺(tái)數(shù)據(jù)庫(kù)文件組成。前端網(wǎng)頁(yè)文件及代碼文件構(gòu)成WEB服務(wù)器,提供前臺(tái)頁(yè)面展示、瀏覽等服務(wù)。已知常用的數(shù)據(jù)流轉(zhuǎn)為:數(shù)據(jù)通過(guò)WEB代碼程序,控制其在后臺(tái)的調(diào)用,生成應(yīng)用服務(wù)日志文件及配置文件;后臺(tái)數(shù)據(jù)庫(kù)服務(wù)器用于管理數(shù)據(jù)庫(kù)表文件,實(shí)現(xiàn)表中數(shù)據(jù)的增刪改查,根據(jù)應(yīng)用服務(wù)器中指令代碼,回傳數(shù)據(jù)庫(kù)表數(shù)據(jù),并生成數(shù)據(jù)庫(kù)日志文件及配置文件,實(shí)現(xiàn)數(shù)據(jù)流轉(zhuǎn)。
總結(jié)筆者前期的工作經(jīng)驗(yàn),本文提出如下網(wǎng)站數(shù)據(jù)提取分析的工作思路:拿到互聯(lián)網(wǎng)網(wǎng)站數(shù)據(jù)硬盤(pán)后,首先要進(jìn)行數(shù)據(jù)備份,制作HASH文件,進(jìn)行摘要驗(yàn)證,保證原始數(shù)據(jù)沒(méi)有經(jīng)過(guò)修改。通過(guò)專(zhuān)用工具掛接服務(wù)器數(shù)據(jù),進(jìn)行仿真鏡像。將主機(jī)系統(tǒng)仿真運(yùn)行后,獲取WEB應(yīng)用服務(wù)器及數(shù)據(jù)庫(kù)服務(wù)器控制權(quán)限。開(kāi)啟服務(wù)后,進(jìn)入后臺(tái),分別進(jìn)行應(yīng)用服務(wù)器、數(shù)據(jù)服務(wù)器數(shù)據(jù)提取及分析,關(guān)鍵是注重網(wǎng)站首頁(yè)入口,網(wǎng)站源代碼,數(shù)據(jù)庫(kù)表等相關(guān)數(shù)據(jù)的獲取與分析。
基于上述工作思路,本文提出一種通用的分析流程,具體如下。首先,分析應(yīng)用服務(wù)器。應(yīng)包括對(duì)WEB應(yīng)用服務(wù)器網(wǎng)頁(yè)文件、代碼文件、生成的日志、配置文件的分析,聚焦WEB應(yīng)用服務(wù)器中的特殊功能模塊。其次,分析數(shù)據(jù)庫(kù)服務(wù)器。應(yīng)包括數(shù)據(jù)庫(kù)服務(wù)器所使用的語(yǔ)言環(huán)境、數(shù)據(jù)庫(kù)表數(shù)據(jù)、日志數(shù)據(jù)、配置數(shù)據(jù)等等。獲取登錄賬號(hào)、IP地址、資金流轉(zhuǎn)等數(shù)據(jù)信息。如圖1所示。
基于上述流程,實(shí)現(xiàn)網(wǎng)站數(shù)據(jù)的提取與分析。
依據(jù)技術(shù)規(guī)范《SF/Z JD0400001-2014 電子數(shù)據(jù)司法鑒定通用實(shí)施規(guī)范》及《GBT-29362-2012 電子物證數(shù)據(jù)搜索檢驗(yàn)規(guī)程》等文件,使用數(shù)據(jù)分析典型工具、搭建系統(tǒng)平臺(tái),包括專(zhuān)用工作站(Windows Server 2008 R2 Service Pack1)、文件制作工具(AccessData FTK Image V4.2.0.13)、分析工具(取證大師V6.1.80018RTM)、數(shù)據(jù)庫(kù)環(huán)境(MySQLV5.7.30)、數(shù)據(jù)庫(kù)查詢(xún)工具(Navicat V15.0.14)、文件校驗(yàn)工具(HashMyFilesV2.31)等工具的使用、鏡像文件的制作、hash校驗(yàn)的完成、系統(tǒng)平臺(tái)的搭建等等。對(duì)某網(wǎng)站硬盤(pán)數(shù)據(jù)提取分析的技術(shù)方法如下:
通過(guò)分析工具找到網(wǎng)站首頁(yè)等html前端網(wǎng)頁(yè)文件,分析源代碼程序,發(fā)現(xiàn)網(wǎng)站源代碼、數(shù)據(jù)庫(kù)表的存儲(chǔ)路徑,獲取網(wǎng)站賬號(hào)密碼等關(guān)鍵數(shù)據(jù)信息,為數(shù)據(jù)提取分析奠定基礎(chǔ)。提取分析方法如下:
使用“取證大師”加載文件,掃描硬盤(pán)備份后,分析出“m_3goo_com_XXXXXX_XXXXXX.sql.gz”文件為數(shù)據(jù)庫(kù)備份文件,路徑為:“wwwackupdatabase”,文件物理大小為5,771,264字節(jié),邏輯大小為5,771,004字節(jié)。挖掘出“m.pjtrkm.cn”文件夾內(nèi)的文件為網(wǎng)站源代碼文件,發(fā)現(xiàn)其路徑為“wwwwwwrootm.pjtrkm.cn”;找到網(wǎng)站源代碼文件記錄數(shù)據(jù)庫(kù)信息的文件“develop.php”,發(fā)現(xiàn)其路徑為:“wwwwwwrootm.pjtrkm.cnApplicationCommon Conf”。通過(guò)上述工作的開(kāi)展,找到數(shù)據(jù)硬盤(pán)中的關(guān)鍵數(shù)據(jù)路徑信息,獲取關(guān)鍵信息,實(shí)現(xiàn)網(wǎng)站復(fù)原,為數(shù)據(jù)提取分析提供保障。
1. 提取及分析網(wǎng)站所具備的股票分析功能源碼
從實(shí)際需求出發(fā),在源代碼路徑“m.pjtrkm.cn ApplicationHomeController”中深挖網(wǎng)站中股票相關(guān)功能代碼。隨后發(fā)現(xiàn),該網(wǎng)站源碼文件中僅存在定時(shí)自動(dòng)獲取股票實(shí)時(shí)數(shù)據(jù)行情的功能,未發(fā)現(xiàn)與正規(guī)券商進(jìn)行交易數(shù)據(jù)交換的功能接口,因此不可能具備股票預(yù)測(cè)功能。
2. 提取及分析網(wǎng)站掛接的支付接口及入金接口功能源碼
在查找掛接支付接口及入金接口、進(jìn)行數(shù)據(jù)分析的過(guò)程中,發(fā)現(xiàn)路徑“m.pjtrkm.cnApplicationApiController”中名為“IndexController.class.php”的文件;路徑“m.pjtrkm.cn ApplicationPayController”中名為“QuickPayController.class. Php”的文件;路徑“m.pjtrkm.cnApplicationPay Controller”中名為“ErpPayController.class.php”的文件都存在支付接口功能,能提供銀聯(lián)支付、支付寶支付、銀生網(wǎng)關(guān)支付、九派網(wǎng)支付、國(guó)付寶網(wǎng)關(guān)支付、官網(wǎng)自定義入金接口支付接口。
上述數(shù)據(jù)分析工作說(shuō)明,該網(wǎng)站具備實(shí)時(shí)獲取股票信息的功能,支持多種支付方式,但不具備股票預(yù)測(cè)功能。
在工作站上搭建MySQL數(shù)據(jù)庫(kù)服務(wù)器,對(duì)獲取的“m_3goo_com_XXXXXXX_XXXXXX.sql.gz”數(shù)據(jù)備份文件進(jìn)行解壓后,使用Navicat工具,在MySQL數(shù)據(jù)庫(kù)環(huán)境中進(jìn)行數(shù)據(jù)還原。之后,獲取網(wǎng)站管理人員層級(jí)式的賬號(hào)、地址等數(shù)據(jù)及資金流轉(zhuǎn)等數(shù)據(jù)。此網(wǎng)站數(shù)據(jù)庫(kù)基于MySQL的資金流轉(zhuǎn)分析如下:
使用SQL語(yǔ)句關(guān)聯(lián)查詢(xún)“m_3goo_com120”數(shù)據(jù)庫(kù)中“it_users”表用戶(hù)表“id”字段、“it_bank_card”表銀行卡表“uid”字段、“it_money_log”用戶(hù)資金變動(dòng)記錄表“uid”字段、“it_withdraw”表出金記錄表“uid”字段、“it_agent_user”表代理管理員表“agent_code”字段關(guān)聯(lián)查詢(xún),提取相關(guān)用戶(hù)的關(guān)鍵數(shù)據(jù)信息。
通過(guò)查詢(xún)獲取用戶(hù)ID號(hào)、用戶(hù)名、代理編號(hào)、余額、占用資金、凈入金、出金、最后登錄地址等等。進(jìn)一步挖掘,對(duì)“m_3goo_com120”數(shù)據(jù)庫(kù)“it_withdraw”出金記錄表“it_money_log”用戶(hù)資金變動(dòng)記錄表中該用戶(hù)的充值金額、儲(chǔ)金金額進(jìn)行關(guān)聯(lián)查詢(xún),分析資金變動(dòng)明細(xì)。
部分核心SQL語(yǔ)句如下:
SELECT IFNULL(SUM(amount),0)充值到賬金額合計(jì),
(SELECT IFNULL(SUM(amount),0) FROM 'it_withdraw'WHEREpay_status=1 AND status=1 AND uid=187)出金金額合計(jì),
(SELECT IFNULL(SUM(fee),0) FROM 'it_withdraw'WHEREpay_status=1 AND status=1 AND uid=187)出金續(xù)費(fèi)合計(jì),
FROM 'it_money_log'WHERElog_id=0 AND uid=187如圖2所示。
通過(guò)分析網(wǎng)站數(shù)據(jù),明確了該用戶(hù)資金進(jìn)賬的全過(guò)程。
使用類(lèi)似分析過(guò)程,基于SQL語(yǔ)句,分析資金進(jìn)賬。將“m_3goo_com120”數(shù)據(jù)庫(kù)中“it_users”表用戶(hù)表“id”字段、“it_bank_card”表銀行卡表“uid”字段、“it_money_ log”用戶(hù)資金變動(dòng)記錄表“uid”字段、“it_withdraw”表出金記錄表“uid”字段、“it_agent_user”表代理管理員表“agent_code”字段進(jìn)行關(guān)聯(lián)查詢(xún),經(jīng)查詢(xún)會(huì)員信息記錄條數(shù)為:769,分析數(shù)據(jù)庫(kù)中會(huì)員充值記錄、出金記錄知,會(huì)員充值記錄條數(shù)為1089,出金記錄條數(shù)為396。充值到賬金額合計(jì)為:450853840.48,出金金額合計(jì)為18791651.01,出金手續(xù)費(fèi)合計(jì)為:434.00元。會(huì)員資金統(tǒng)計(jì)涉及核心代碼如下:
SELECT IFNULL(SUM(amount),0)充值到賬金額合計(jì),
(SELECT IFNULL(SUM(amount),0) FROM 'it_withdraw'WHEREpay_status=1AND status=1)出金金額合計(jì),
(SELECT IFNULL(SUM(fee),0) FROM 'it_with draw'WHEREpay_status=1 AND status=1)出金續(xù)費(fèi)合計(jì),
FROM 'it_money_log'WHERElog_id=0
通過(guò)對(duì)互聯(lián)網(wǎng)網(wǎng)站數(shù)據(jù)的深入分析,實(shí)現(xiàn)互聯(lián)網(wǎng)網(wǎng)站會(huì)員資金流轉(zhuǎn)全過(guò)程的還原與分析。
上述互聯(lián)網(wǎng)網(wǎng)站數(shù)據(jù)涉及到的提取分析技術(shù),本文使用服務(wù)器鏡像工具仿真主機(jī)系統(tǒng)后,實(shí)現(xiàn)了應(yīng)用服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器的仿真,并從仿真平臺(tái)系統(tǒng)源碼中分析出網(wǎng)站特殊功能源代碼,根據(jù)分析人員工作經(jīng)驗(yàn),主導(dǎo)基于SQL關(guān)聯(lián)查詢(xún)技術(shù)方法,從后臺(tái)數(shù)據(jù)庫(kù)中挖掘管理人員登錄地址,并分析出相關(guān)人員的資金流轉(zhuǎn)。
由于互聯(lián)網(wǎng)網(wǎng)站的特殊性,不同于傳統(tǒng)數(shù)據(jù),其流轉(zhuǎn)數(shù)據(jù)的提取分析技術(shù)難度大、需求強(qiáng)、復(fù)雜多變、規(guī)律難尋、容易篡改損毀,困難重重。但網(wǎng)站數(shù)據(jù)的提取與分析是相關(guān)工作的核心步驟,能夠順利提取有價(jià)值的數(shù)據(jù)信息意義重大。本文從實(shí)際需求出發(fā),總結(jié)互聯(lián)網(wǎng)網(wǎng)站數(shù)據(jù)分析面臨的困難,設(shè)計(jì)提出一種數(shù)據(jù)分析的方法流程,闡述了實(shí)際數(shù)據(jù)分析的過(guò)程中從應(yīng)用服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器提取分析數(shù)據(jù)的工作流程、技術(shù)方法等等。該方法思路清晰、可操作性強(qiáng),以期為相關(guān)工作人員成功破獲此類(lèi)案件提供參考借鑒。