某游戲公司後台數據庫SQL注入事件分析
人物關系簡介
Blank –SA
Dawn(Boss)
Ryan –DBA
Fred –離開公司的安全顧問
本案例出自於《Unix/Linux網絡日志分析與流量監控》一書,該事例詳細描述了一家公司的後台服務器被入侵,黑客從中獲取了大量游戲幣帳號,並發送郵件相威脅的案例。主要遇到的問題是服務器被SQL注入或受到了SQL注入攻擊
Blank是XX公司的網絡架構師,技術好人緣也不錯,他實際的工作室XX公司的“首席救火隊員”,每件事他都要自己做,就連做網線也不放過。
這一天跟其他日子一樣Blank正在上網,突然他的上司突然打斷了他說
“Blank,我有事找你。”她表情嚴肅地說。
“我剛收到這封電子郵件。”Dawn在和Blank一起去她的辦公桌時邊走邊說。
我發現你的網站有一個安全問題。它洩漏了你所有用戶的記錄和信用卡號。我是一個為了通過咨詢來掙錢的、努力的學生。如果你給我1000萬,那麼我會告訴你怎麼修復這個問題。如果你不給我錢,那麼我就要公開這些信息了。
為了讓你相信,下面是你的幾個客戶。
Shane Mason – 5111111111111111
Dan Burnham – 4111111111111111
Dana Mueller - 5555511111111111
Blank驚呆了。他穿過防火牆獲得了賬號。那些在影視劇裡才有的敲詐勒索事件就出現在Blank的公司。
為了查明原因Blank迅速與公司的DBA聯系,確定了那些用戶賬號和密碼的真實性,結果完全一致。Blank十分害怕下面將要發生的事情。通常來說,壞的事情總是發生在最後。
“嗯,Dawn,我真的不知道。Fred負責所有的安全問題。他離開公司後,沒有人負責這一塊了。
“現在Fred在哪裡?”她問。
“他在某個咨詢公司。我有他的名片。”
“趕快打電話給他,叫他現在到這裡來,”她說。“我不在乎花多少錢。”
“可能我們應該叫警察?”Blank小心地提議到。
“我不想讓這件事洩露出去。我們公司正准備上市,如果他們知道了我們有安全問題,那麼我們就完了。去叫Fred,快!”
Blank快速回到他的寫字間,他的腦中還萦繞著這個事件方方面面的問題。他慢慢整理成堆的商務名片,試圖找到Fred的名片。Blank找出了Fred的名片:“Fred ,CISSP。”Blank想像某一天自己也會成為CISSP。現實把他猛然拽了回來。Blank拿起電話,撥了Fred的電話號碼。
“我是Fred Langston。”
“嗨,Fred,我是XX公司的Blank。”
“嗨,Blank,很高興接到你的電話。真希望你一切都好。”Fred興高采烈地說
“一點也不好,Fred。我們有一個安全問題,我們非常需要你的幫助。”
“我已經安排了一個會,五點鐘開完。”
“太好了,Fred。那太好了,我等你。”Blank說。
“同時,我會叫我辦公室的人把我們的標准文書傳真過去, 以備我們的進一步合作。
“Fred,我確實想進一步合作。我們這裡有很大的麻煩了,現在分秒必爭。”Blank懇求道。
“真的?發生了什麼?”
“公司服務器被黑了”
Fred想了一下之後說:“好吧,Blank,給我五分鐘,我會給你回電話的。”
Blank掛斷電話,等了三分鐘,可是他覺得像過了一個小時一樣。電話響了。“我是Blank。”
“嗨,Blank,我是Fred。我在十分鐘之內過去。
Blank快速回到他的寫字間,Blank拿起電話,撥了Fred的電話號碼。
Fred打開門,對Blank今天的落魄感到吃驚。
“嗨,Blank,你把文件簽署好了嗎?”
那麼讓我們開始工作吧。”Blank和Fred占用了一個會議室,迅速開始工作。Blank快速告訴了Fred有關細節。Fred靠在他的椅子上,考慮了一會說:“Blank,你應該叫警察,這是敲詐勒索。”
“Dawn說不能驚動警察,”Blank說。“她不想讓這件事公開。”
“好吧。那麼我需要一個網絡圖、防火牆規則,還有那份電子郵件所有信頭的信息。看我們是否能搞清楚他是怎麼入侵的。”
Blank跑去收集Fred需要的數據。Fred靠在椅子上,清理著他的思路。Fred的思緒飄回到了他在Widgets.com公司的時候,那時他設計網絡的體系結構。他回憶起嚴格的火牆規則和完美的DMZ設計。他懷疑Blank改動了許多設計,因為他當時也負責這事情。Blank拿著一疊紙走進房間。
“這是所有的數據,Fred。”
Fred在桌子上展開了這些文件。下圖是Widgets.com公司的網絡結示意構圖。
Widgets.com公司的WEB防火牆規則:
Conduit permit tcp host 192.150.50.5 eq www any
Conduit permit tcp host 192.150.50.5 eq 443 any
如下是Widgets.com公司的數據庫防火牆規則:
Conduit permit tcp host 192.150.52.4 eq 1443 host192.168.50.5
下面是Fred從Blank那裡得到的帶有全部頭信息的電子郵件:
Received: fromns1.widgets.com(10.1.2.11[10.1.2.11])by mx01.widgets.com with SMTP (MicrosoftExchang internet Mail Service Version 5.5 .2656.59) id R44ZWRCF2;Mon,13 Mar2010 14:57:00-0400
Received: fromweb21501.mail.webmail.com(web21501.mail.webmail.com[10.163.169.12])
by ns1.widget.com(8.11.6/8.11.2) withSMTP id g81J4PM30909
for
Message-ID:<[email protected]>
Received:from [10.9.212.210] by web21501.mail.webmail.com via HTTP;Sun,01 Sep 201011:54:30 PDT
Date:Mon,13 Mar 2010 11:54:30 -0700(PDT)
From:KunFoo
subject:Security Issue
To:[email protected]
MIME-Version:1.1
conten-type:mutipart/alternative;boundary="0-259684995-1030906470=:84428"
--0-259684995-1030906470=:84418
content-Type:text/plain;charset=us-ascii
--0-259684995-1030906470=:84418
Conten-Type:text/html;charset=us-ascii
I have discovered a securityproblem whith your web site. It reveals all your user records and credit cardnumbers I am a struggling student thatmaked money going consulting .I will tell you how to fix this problem if youpay me $150000.If you decide not to pay me I will go public with thisinfomation. In case you are curious here are a few of your customers.
Shane Mason - 5111111111111
Dan burnham - 4111111111111
Dana Mueller -3111111111111
Fred認真檢查了網絡圖和防火牆規則。“我走後你改動了什麼嗎,Blank?”
“不,伙計,我太忙了,一直忙著救火,沒有空改任何東西。應該還和以前都一樣。”
“那補丁呢?”Fred問。
“所有的Windows Server 2003服務器都運行了最新的補丁,我很肯定SQL服務器是打了補丁的。”
“好吧,看起來惟一能進入的通道就是Web服務器。讓我們從那裡著手。”
Fred從他的背包裡抽出筆記本電腦,開始了工作(黑色瑞士***牌雙肩背包裡抽出筆記本電腦)。“我准備檢查一下Web服務器的漏洞(采用了什麼方法檢查Web服務器漏洞的),“他說。“這些天誰看了Web服務器的日志?”
“我很肯定負責市場的Alex看了它們。”Blank說。
“好的。我需要最近幾周的日志。”
Blank再一次走出門。Blank開始跑來跑去一點一點收集文檔。他拿回來一大堆的設備歸檔日志,扔在Fred面前。
“這是你要的所有日志。”
Fred開始反復查閱Blank獲得的日志記錄,但是在這些日志中絲毫沒有找到線索, Fred都快要發瘋了,這時候,Ryan沖進門來。
“Blank,我有事找你。昨天晚上SQL服務器發生了奇怪的事情。”
“我現在真的沒有時間,Ryan,”Blank呻吟道。
“你發現了什麼,Ryan?”Fred迫不及待問到。
“只是一些奇怪的錯誤,”Ryan邊說邊遞過來一張紙。下面就是他發現的代碼:
3/12/10 1:24:12 AMecom systemFailure:80040E14 Microsoft OLE DB Provider for ODBC Drivers->AuthenticateCustomer[Microsoft][ODBCSQL Server Driver][SQL Server]Line 1: Incorrect syntax near`:`.
3/12/10 1:24:36 AMecom systemFailure:80040E14 Microsoft OLE DB Provider for ODBCDrivers->AuthenticateCustomer[Microsoft][ODBC SQL Server Driver][SQLServer]Line 1: Incorrect syntax near`,`.
3/12/10 1:24:55 AMecom systemFailure:80040E14 Microsoft OLE DB Provider for ODBCDrivers->AuthenticateCustomer[Microsoft][ODBC SQL Server Driver][SQLServer]Line 1: Incorrect syntax near the keyword`OR`.
3/12/10 1:25:10 AMecom systemFailure:80040E14 Microsoft OLE DB Provider for ODBCDrivers->AuthenticateCustomer[Microsoft][ODBC SQL Server Driver][SQLServer]Line 1: Incorrect syntax near the keyword`UNION`.
3/12/10 1:25:19 AMecom systemFailure:80040E14 Microsoft OLE DB Provider for ODBCDrivers->AuthenticateCustomer[Microsoft][ODBC SQL Server Driver][SQLServer]Line 1: Incorrect syntax near the keyword`)`.
3/12/10 1:25:32 AMecom systemFailure:80040E14 Microsoft OLE DB Provider for ODBCDrivers->AuthenticateCustomer[Microsoft][ODBC SQL Server Driver][SQLServer]The identifier that starts with `UNION ALL SELECTO ther Field FROMOt` istoo long. Maximum lenth is 30.
3/12/10 1:25:10 AMecom systemFailure:80040E14 Microsoft OLE DB Provider for ODBCDrivers->AuthenticateCustomer[Microsoft][ODBC SQL Server Driver][SQLServer]Line 1: Incorrect syntax near `UNION SELECT NAME,PASSWORD,FROM USERSWHERE`:`.
3/12/10 1:25:31 AMecom systemFailure:80040E14 Microsoft OLE DB Provider for ODBCDrivers->getParNo [Microsoft][ODBC SQL Server Driver][SQL Server]Invalidobject name `USERS`.
這時Fred眼前一亮。他從光盤上打開IIS服務器的日志文件,開始一頁一頁地看,直到找到第一個SQL服務器錯誤的時間記錄:
03/12/2010 1:24 10.9.212.210W3SVC1 WWW-2K WWW-www.widgets.com 80 POST/catalog/search.asp501 749 492 32 www.widgets.comMozilla/5.0+(compatible;+MSIE+5.1;+Windows+98)
“啊哈!”Fred大叫一聲。
他似乎有了重大發現,接下來該怎麼辦?在《Unix/Linux網絡日志分析與流量監控》一書中進行詳細分析。