刘琦 赵冬雪 田燕 周福海
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关联查询技术方法,从后台数据库中挖掘管理人员登录地址,并分析出相关人员的资金流转。
由于互联网网站的特殊性,不同于传统数据,其流转数据的提取分析技术难度大、需求强、复杂多变、规律难寻、容易篡改损毁,困难重重。但网站数据的提取与分析是相关工作的核心步骤,能够顺利提取有价值的数据信息意义重大。本文从实际需求出发,总结互联网网站数据分析面临的困难,设计提出一种数据分析的方法流程,阐述了实际数据分析的过程中从应用服务器、数据库服务器提取分析数据的工作流程、技术方法等等。该方法思路清晰、可操作性强,以期为相关工作人员成功破获此类案件提供参考借鉴。