新聞

網站淪陷之深思與啟發

2009 / 01 / 12
Crane
網站淪陷之深思與啟發

你得深思網站淪陷背後的意義。

幾乎每天都有許多網站淪陷或者被利用,很多網站管理者對這些記錄是恨得牙癢癢的,甚至,連被爆料的組織、單位主官也是牙癢癢,因為,記錄就是記錄,記錄永遠在哪裡。
王建民在記錄上,曾經不滿兩局狂失八分,2007年季後賽防禦率19.06(平均每局掉兩分以上)…這些都是超難堪的紀錄,王牌永遠的痛,但王建民永遠說:我會一球一球丟,一個一個的去解決打者,勇敢的面對。做資安不能只想靠橡皮擦跟立可白。
我很喜歡看影集《CSI犯罪現場:邁阿密》,但它另外的紐約及拉斯維加斯系列我就沒那麼喜歡了。在邁阿密系列中的主角何瑞修?肯恩(Horatio Caine)除了有招牌動作外,還有一句常說的話:「那些記錄,只是你最小的問題」,我也想借用這句話。原因如下:

那些記錄,只是你最小的問題
1.公佈的記錄是發現時間,漏洞存在多久了呢?
這問題不知網站管理者及權責主管是否有想過呢?我是光想這問題就快瘋了,很多單位都迅速地給我第一回應:「沒關係,我這台機器上沒有重要的資料」,嘿,老兄,我都還沒問哩。況且,這台機器可以當跳板,滲透更多內部主機的。其實,這問題你知道的,面對現實與真相吧!別讓你的網站一直在裸奔...
2.其間是否另有人滲透進來,擷取他想要的資訊了呢?
這問題可大了,查起來可要人命哩,是否有人力、技術處理這部分呢?需要花多少時間及多少人力,甚至外聘需要花多少預算,查出結果可能還要再花一筆預算,這是管理階層第一個要考慮的。所以,九成九不會想知道這結果的,但深入去查,往往會有許多收穫,了解災損範圍是極重要的一環。我想內部非公開的調查是必須的,因為,還可以查覺整體防禦架構上的漏洞,進而加以改善。詳細了解災損,才能進一步做應變處理,如果個資或客戶資料外洩,該如何修補及因應呢?使用者或客戶出現客訴該如何回應?萬一上媒體又該如何?這再再都與企業形象緊密結合。處理得宜還能化危機為轉機的,但你得先了解整個問題的源由。
3.被公布的記錄,會引起其他有心人士的念頭
這是公開的記錄,大家都會知道,但若沒有這些記錄,你哪時才會知道網站出狀況了;這會不會讓你想到另外一個問題呢?對,會不會你的網站已經出事了,之前有新聞:「台灣網站遭受有史以來最大規模SQL Injection 攻擊」,這是5月份的事,google 搜尋"9i5t.cn"字串,還有一堆網站沒有清除遭植入的惡意字串,還是很多人是不知道自己網站已經出事,所以被公佈出來是好是壞就見仁見智。接下來,網站漏洞問題修復的時間就是關鍵,但往往漏洞問題都找不到,還要如何修復呢?我只能說不修復,「有心人士」還會來複檢的;另外,公開的記錄鐵定也會引來更多「有心人士」的,因為,它代表有漏洞存在,沒理由別人找得到而我卻找不到漏洞,如果找不到哪不就遜掉了,結果就是有更多人來挑戰你的網站。千萬別有僥倖的心態。
4.免費的滲透測試(PT),只是沒給你報告
往好處想,這大概是唯一的。另外,是否還有其它網站有相同漏洞存在?如何避免再次發生?都是該思考的問題。既然已經有人幫你點出問題,就要一次把相關問題根除,借力使力、化危機為轉機。這是很重要的,記錄也可以是警惕自我的一種方式。
5.真的有確實做好漏洞修補作業嗎?
這一點我得特別拿出來再說一次,「移除入侵痕跡」不等於漏洞修補,況且,就連「移除入侵痕跡」也不夠徹底,只移除了表相,如置換的首頁、安插的頁面或字眼,但 WebShell (網頁木馬、網頁後門)可不是這麼容易找的。最重要的,網站淪陷背後的成因往往也沒有加以探究,找到漏洞問題,修補是不是確實呢?這中間有一連串的三道關卡:異常復原、徹底清除及漏洞修復,你完成了嗎?注意,這還不是標準的事件應變處理作業哩。
6.到底誰在為網站安全負責,這才是最大問題
是網站管理者、系統管理者、程式開發者、網管人員、資安人員、稽核人員、資料處理人員...還是使用者。先不用急著找答案,我們先把範圍擴大,觀念同樣擴及到企業或組織的資訊安全誰該負責,我想這大家都知道就是CIO(資訊長)、CSO(安全長)。所以要由管理角度來看的,因為每個企業或組織架構不同,也會有不同權責與權限,但無論如何管理者要要負最大責任,至於誰該負責:
a.擁有控管權力、有能力主導網站的人:大多企業或組織都沒有這號人物,有誰在為網站安全把關。
b.賦予控管權限的人:這個人當然是管理階層,如果沒有a.的人物,企業或組織的管理者當然要負全責。
相關資訊安全人員的角色及應有功能與職責可以參考這篇文(註1),希望你們不會只有採購跟保全人員在做資安。

還有很多記錄,它可能是沒有被公開的,你又該如何面對呢?慶幸嗎?還是警惕呢?資安工作沒有捷徑也沒有速成,攻方每年都在成長與進步,如果你還在原地作資安,無異緣木求魚。至於沒有被公佈出來的,你的網站有多久沒健檢,是不是該關心一下了!做資安,心態最重要。
平常應該要多關心網站運作狀況,是否有任何入侵的蛛絲馬跡,而這些徵兆都不能輕忽之;否則,網站問題將會層出不窮,小則網頁竄改、資料庫被操弄,或植入惡意連結;大則資料庫個資外洩,被詐騙集團利用,甚至機敏資料外洩。這些問題,平常多少一定會有些徵兆的,注意這些徵兆將會是避免事態持續擴大的重要關鍵。
有很多入侵行為,是沒有任何網站內容的竄改的,也就是說,入侵這台主機只是當跳板,但是,可能其他相同網段的網站卻經常出問題,你卻始終找不到真正病因。就像很多疾病,帶原者本身並不發病的,但是接觸的人可就慘了,很多攻擊模式有異曲同工之妙。

7種網站被入侵的徵兆
如果有下列7種徵兆中的一個,幾乎代表網站被入侵了,多個那就肯定被入侵:
徵兆1.網站目錄下是否有多的莫名檔案
這跟網站的版本控制 (Release Management)(註2)有很大的關係,因為,這部份做的好,可以很輕易從網站目錄中,找出被竄改或植入的檔案,也就知道網站被入侵了。不管是比對檔案差異、大小或日期...等,都可以查覺網頁檔案被動過手腳的,這點是最容易發現網站被入侵的,也是最精確的方式之一。無奈,大多數網站的網頁檔案,多是雜亂無章、且龐大,有的還有資料庫檔案在其中,不知道是「誰」放的,也根本沒人知道哪些網頁檔案是屬於正常的。所以,你需要一個乾淨無虞的原始網頁檔案,而不是備份的,因為,備份都是線上的,往往都已經被動過手腳了,備份回存正中入侵者下懷,導致再次的誤事。你有乾淨無虞的網頁原始程式嗎?100% 確定沒被動過手腳的喔。
這點我還要在強調一次,你有乾淨無虞的網頁程式檔案嗎?並配合正確版本控制管理,當網站出現問題時,它將會是非常重要的。
徵兆2.網站主機上是否有多的莫名帳號
如果主機被新增異常帳號,這也是被入侵很明顯的一個徵兆,也可以檢視可疑帳號的登入記錄,判定是否為入侵的帳號;如果網站主機有開遠端管理服務,不管是 3389 或 VNC...等,一旦被入侵,新增帳號就會是很常見的一個行為,對入侵者來說是多一條路可以進入系統。資料庫的部分是否有異常帳號,也是重要徵兆之一,這也表示資料庫中有重要資訊是有心人士想要的,慎之。
徵兆3.資料庫是否有奇怪字串或資料表(Table)
「奇怪字串」,我知道它很模糊、籠統,因為,要植入的字串千奇百怪;如果可以操弄資料庫,那要做啥入侵動作,這可沒有一定的標準程序,甚至有的只是改「商品售價」,這是奇怪字串嗎?不過已經好幾年沒人這樣玩了;這攸關對網站的敏感度,所以,平常需要對被入侵網站的結果呈現,多加觀察,畢竟實際案例是非常好的教材。目前最常見的,是在資料庫中植入惡意連結或入侵字眼,入侵字眼比較容易發覺,網頁上多會有明顯字眼可察覺;惡意連結部分較難查覺,因為它會隱藏在網頁中,甚至做些編碼混淆,你得先了解「網頁掛馬」(註3)的攻擊手法。
徵兆4.Mass SQL Injection 攻擊
我知道看 log files 很辛苦,我也深受其害,所以爆料一下:
SQLInjectionFinder.exe : Tool to help determine .asp pages targeted by recent SQL Injection attacks.(註4)
它會幫你找 Mass SQL Injection 攻擊字串的事件,可以幫你省很多事的,希望對大家有幫助。針對被攻擊的網頁程式碼需要注意是否有漏洞,否則,資料庫可能被操弄。有很多網站被攻擊還不自知,植入的惡意網域可能都已經不生效了,慘。
徵兆5.網站主機之防毒軟體是否有異常警訊
防毒軟體的歷史病毒記錄,是否有發現惡意程式的記錄,這也是被入侵的重要徵兆之一。不是看防毒軟體把惡意程式清除了,然後就裝沒事,要思考惡意程式打哪來,入侵管道才是要關心的重點。很多系統管理者都輕忽這點,問題在防毒軟體沒有 100% 的,更何況入侵者可能知道你安裝了哪家的防毒軟體,也許哪天防毒軟體更新病毒碼了,就「剛好」發現一隻,結果你也「剛好」錯過,這是應驗「防毒產品掃描 95% 是多餘的」嗎?
徵兆6.網頁目錄是否有網頁木馬後門程式
定期使用線上掃毒軟體,如Free Online Virus Scan(註5)或Free Online Spyware Scan(註6)檢查網頁目錄下,是否有惡意程式存在,如果你無法確認網頁目錄是否有可疑程式,這不失為亂槍打鳥的一種方式,但使用上務必小心,不要輕易把惡意程式給刪除了,它可是重要線索及證據。啥...沒看過網馬後門嗎?哇咧!這好像遊客搞不清楚啥是搶匪,連搶匪手上的刀也完全不識,被搶了還以為是借錢的。
徵兆7.系統是否被植入未知的惡意程式
這點對大多數的系統管理者來說是困難的,處理上也需要小心。前面提到的線上掃毒也是一種方式之一,但也可能破壞犯罪現場,務必慎用。最好,還是需要有專人協助的。
以上只是一些常見的徵兆,需要特別加以注意的;上面也說這麼多了,對很多單位還是沒用,有時不知道比知道好,知道了又能如何,因為,沒人在做事件應變處理 (IR,Incident Response) 的,更不可能組成「資安事件緊急應變小組」來協助處理後續事宜。如果有心想做,可以參考我另一篇文章:「企業事件應變管理」(註7),管理階層務必加以重視事件應變管理(Incident Management),除非你確定真的不會被入侵。資安很多問題是要改變管理的思考角度與方式,如果老是重複相同的事情,無力感將衝擊著你;而執行者有些事情是必須讓管理者知情,找出問題並尋求解決之道。正視它,有些事會讓你成長的,如果只是閃躲,有些事將會變得很無情。做資安真的沒這麼難。

[註1] http://mysecure.blogspot.com/2008/07/blog-post_15.html
[註2] http://zh.wikipedia.org/wiki/版本控制
http://en.wikipedia.org/wiki/Release_Management
[註3] http://www.armorize.com.tw/news/shownews.php?news=22
[註4] http://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=WSUS&ReleaseId=13436
[註5] http://mylinkweb.blogspot.com/search/label/Free%20Online%20Virus%20Scan
[註6] http://mylinkweb.blogspot.com/search/label/Free%20Online%20Spyware%20Scan
[註7] http://mysecure.blogspot.com/2008/10/enterprise-incident-management.html

※本文作者為阿碼科技技術顧問,原文出處:阿碼外傳部落格:http://armorize-cht.blogspot.com/ 已獲作者同意刊登。