安恒信息專家:網(wǎng)站安全攻與防的啟示錄
背景 黑客文化的變遷
黑客技術(shù)的出現(xiàn)像計(jì)算機(jī)出現(xiàn)一樣長(zhǎng)久,黑客通過(guò)對(duì)系統(tǒng)重配置或者重編程獲得本來(lái)沒(méi)有的權(quán)限。早期的黑客因?yàn)閷?duì)計(jì)算機(jī)的神秘功能著迷,本著自由的精神在計(jì)算機(jī)世界里流連而不能自拔。這種自由精神一方面吸引了大批聰明的青年學(xué)生投入其中,從而在早期推動(dòng)了計(jì)算機(jī)的飛速發(fā)展。
在上世紀(jì)六十年代,他們利用一些技術(shù)破壞計(jì)算機(jī)網(wǎng)絡(luò)的使用范圍,七十年代因?yàn)樘厥獾拿绹?guó)的那種背景,他們提出了計(jì)算機(jī)應(yīng)該為人民所用的口號(hào),他們是電腦史上的英雄。到了八十年代,PC已經(jīng)很便宜了,美國(guó)與歐洲的經(jīng)濟(jì)得到了長(zhǎng)足的發(fā)展,黑客們開始為信息共享而奮斗,當(dāng)時(shí)美蘇爭(zhēng)霸,他們認(rèn)為應(yīng)該使兩國(guó)處于平衡狀態(tài),任何一個(gè)國(guó)家都不能過(guò)分強(qiáng)大,否則就會(huì)給新的和平帶來(lái)威脅,他們就積極聯(lián)絡(luò)各國(guó),把通過(guò)黑客技術(shù)拿到的資料賣給各國(guó),一方面自己獲得了經(jīng)濟(jì)收入,另一方面他們也認(rèn)為有助于世界的和平,認(rèn)為自己為世界和平作出了貢獻(xiàn)。九十年代可以說(shuō)是黑客的災(zāi)難和混亂時(shí)期,作為信息共享的產(chǎn)物,INTERNET一方面為我們提供了極大的便利,另一方面,使用的人多了,技術(shù)不再是少數(shù)人的專有權(quán)力,越來(lái)越多的人都掌握了這些,導(dǎo)致了黑客的概念與行為都發(fā)生了很大的變化。
到了二十一世紀(jì),隨著互聯(lián)網(wǎng)的高速發(fā)展以及網(wǎng)民爆發(fā)式的增長(zhǎng),一個(gè)黑客市場(chǎng)已經(jīng)形成。境外情報(bào)機(jī)構(gòu)、企業(yè)公司和犯罪團(tuán)伙都愿意付錢買下有關(guān)安全漏洞--以及如何加以利用--的信息。各種網(wǎng)絡(luò)犯罪每天充斥在我們生活當(dāng)中,黑客們通過(guò)入侵各類網(wǎng)站論壇進(jìn)行盜取用戶數(shù)據(jù),并掛上網(wǎng)頁(yè)木馬繼續(xù)盜取訪問(wèn)網(wǎng)站用戶的個(gè)人虛擬財(cái)產(chǎn)等等。
2011年度網(wǎng)絡(luò)犯罪調(diào)查報(bào)告顯示,全球每天就有100萬(wàn)人成為網(wǎng)絡(luò)犯罪的受害者,全球因網(wǎng)絡(luò)犯罪造成的直接損失每年達(dá) 1140 億美元。因處理網(wǎng)絡(luò)犯罪問(wèn)題而浪費(fèi)的時(shí)間價(jià)值是2740億。因此,網(wǎng)絡(luò)犯罪導(dǎo)致的損失約為3880億美元,遠(yuǎn)遠(yuǎn)超過(guò)了大麻、可卡因和海洛因全球黑市的交易總額(2880億美元)。從網(wǎng)絡(luò)犯罪受害者人數(shù)來(lái)看,中國(guó)地區(qū)的網(wǎng)絡(luò)犯罪相較于全球可能更加惡劣:去年,全球有4.31億成人遭受過(guò)網(wǎng)絡(luò)犯罪的侵害,這其中就有差不多一半的受害者(1.96億人)來(lái)自中國(guó)。
黑客的網(wǎng)絡(luò)犯罪已經(jīng)達(dá)到了一個(gè)前所未有的高度。
一 互聯(lián)網(wǎng)的安全威脅
從1969年區(qū)域性的大學(xué)主機(jī)相連而構(gòu)成的互聯(lián)網(wǎng)發(fā)展到今天覆蓋全球點(diǎn)點(diǎn)滴滴的強(qiáng)大互聯(lián)網(wǎng),特別在是互聯(lián)網(wǎng)的經(jīng)濟(jì)與科技領(lǐng)域取得的顯著成果,給互聯(lián)網(wǎng)披上的神話般的面紗。如今,互聯(lián)網(wǎng)豐富了我們的生活,這所有的一切都來(lái)源于Web,Web系統(tǒng)是互聯(lián)網(wǎng)的重要組成部分,形形色色的Web系統(tǒng)正在改變著我們的生活互聯(lián)網(wǎng)應(yīng)用已經(jīng)滲透我們生活的方方面面,我們可以通過(guò)百度在線搜索想要的資料、可以通過(guò)網(wǎng)上銀行完成在線購(gòu)物和支付、可以通過(guò)微博和博客發(fā)表自己的"聲音"、可以通過(guò)在線交友網(wǎng)站交到朋友。
但是由于這些WEB應(yīng)用在設(shè)計(jì)時(shí)是允許任何人、從任何地方登陸進(jìn)入訪問(wèn),因而也成為了通往隱藏在深處的重要數(shù)據(jù)的橋梁。據(jù)推算,互聯(lián)網(wǎng)至少每39秒就有一次攻擊。
2011年年底的CSDN泄密門事件導(dǎo)致國(guó)內(nèi)600萬(wàn)程序員的個(gè)人信息被盜取,雖然CSDN及時(shí)修復(fù)了漏洞,警方也及時(shí)抓住了犯罪嫌疑人,但今年依然有犯罪分子通過(guò)去年CSDN泄漏的帳號(hào)密碼偷竊國(guó)內(nèi)知名電商"京東商城"的用戶賬戶,通過(guò)賬戶里的剩余資金大量購(gòu)買商品。
這些曝光的安全泄密事件僅僅是個(gè)警鐘,被公開的這些網(wǎng)站的數(shù)據(jù)庫(kù)很早之前就被黑客拖庫(kù),而且轉(zhuǎn)手買來(lái)賣去,眼下所見的都是被人榨干最后一滴水的陳年資料。誰(shuí)能保證隱藏在暗處中的黑客們還有其他更多未曝光的資料呢。
那么,黑客們是如何獲取我們的重要信息,網(wǎng)站又是如何被拖庫(kù)的呢?
二 黑客攻擊WEB典型案例分解
下面我們?yōu)榇蠹曳纸夂诳腿肭终叩臐B透WEB網(wǎng)站的主流手段。
假設(shè)目標(biāo)站點(diǎn)http://192.168.40.21/是一個(gè)大型綜合類網(wǎng)站,會(huì)員數(shù)目眾多。
1、鎖定目標(biāo)、搜集信息
黑客入侵一個(gè)目標(biāo)站點(diǎn)的時(shí)候,首先要看該站點(diǎn)是否存在利益價(jià)值。目前黑客入侵者的商業(yè)攻擊主要針對(duì)在線購(gòu)物網(wǎng)站、社交網(wǎng)站、網(wǎng)絡(luò)游戲、大型論壇、慈善機(jī)構(gòu)、電子政務(wù)、金融證券網(wǎng)站等網(wǎng)站。這些網(wǎng)站可以竊取會(huì)員用戶信息進(jìn)行社工欺騙,比如利用獲取的身份信息對(duì)用戶親屬進(jìn)行電話詐騙、利用大部分人習(xí)慣用同一個(gè)帳號(hào)密碼的習(xí)慣去嘗試登錄其他網(wǎng)站,并且這些會(huì)員信息可以多次出售專賣;黑客入侵者還可以通過(guò)入侵政府網(wǎng)站掛"黑鏈",因?yàn)檎W(wǎng)站在搜索引擎中占據(jù)的權(quán)重較高,攻擊者可以通過(guò)此方法使自己指定的網(wǎng)站插入到政府網(wǎng)站頁(yè)面中,從而提供其在搜索引擎中的排名靠前并盈利。
黑鏈?zhǔn)荢EO手法中相當(dāng)普遍的一種手段,籠統(tǒng)地說(shuō),它就是指一些人用非正常的手段獲取的其它網(wǎng)站的反向鏈接,最常見的黑鏈就是通過(guò)各種網(wǎng)站程序漏洞獲取搜索引擎權(quán)重或者PR較高的網(wǎng)站的WEBSHELL,進(jìn)而在被黑網(wǎng)站上鏈接自己的網(wǎng)站,其性質(zhì)與明鏈一致,都是屬于為高效率提升排名,而使用的作弊手法。
在確定目標(biāo)后,黑客入侵者就會(huì)搜集該目標(biāo)站點(diǎn)的相關(guān)信息,一次入侵的成功與前期的信息收集關(guān)系很大。搜集信息可以讓入侵起到事半功倍的效果,只經(jīng)過(guò)一些簡(jiǎn)單的操作就可以得到一些服務(wù)器的Webshell,甚至于系統(tǒng)管理權(quán)限,搜集信息一般分為三種:
①工具掃描:黑客入侵者會(huì)使用各種掃描工具對(duì)入侵目標(biāo)進(jìn)行大規(guī)模掃描,得到系統(tǒng)信息和運(yùn)行的服務(wù)信息,如對(duì)方所使用的操作系統(tǒng)、開放了哪些端口、存在哪些漏洞。典型的掃描工具有:
Nmap掃描目標(biāo)網(wǎng)站端口開放信息
②社會(huì)工程攻擊:利用各種查詢手段得到與被入侵目標(biāo)相關(guān)的一些信息,通常通過(guò)這種方式得到的信息,會(huì)被社會(huì)工程學(xué)這種入侵手法用到,而且社會(huì)工程學(xué)入侵手法也是最難察覺(jué)和防范的。
③公開域信息:主要通過(guò)Google Hacking和Whios等手段獲取信息。
通過(guò)上面的介紹我們對(duì)黑客攻擊前的踩點(diǎn)和信息搜集有了認(rèn)識(shí),目前我們已經(jīng)得知目標(biāo)站點(diǎn)http://192.168.40.21/主要開放了HTTP 80端口,遠(yuǎn)程登錄RDP 3389端口;服務(wù)器采用的WINDOWS系統(tǒng),中間件使用的Apache Tomcat,網(wǎng)站腳本語(yǔ)言用的JSP。
2、深入攻擊階段
利用SQL注入"拖庫(kù)"
在深入攻擊的過(guò)程中,首先攻擊者需要找到一個(gè)動(dòng)態(tài)鏈接的URL看是否存在SQL注入漏洞,例如現(xiàn)在找到一個(gè)http://192.168.40.21/news.jsp?id=127,通過(guò)簡(jiǎn)單的注入嘗試語(yǔ)句發(fā)現(xiàn)該URL確實(shí)存在SQL注入漏洞,攻擊者一般為了節(jié)省時(shí)間都會(huì)使用工具來(lái)促進(jìn)效率。
通過(guò)工具攻擊者獲取到了服務(wù)器的環(huán)境變量,數(shù)據(jù)庫(kù)結(jié)構(gòu),并且獲取了該網(wǎng)站的所有用戶數(shù)據(jù),共7580條用戶數(shù)據(jù)信息,這個(gè)獲取用戶數(shù)據(jù)的過(guò)程就是我們常說(shuō)的"拖庫(kù)"。
"拖庫(kù)"完成后如果還想擴(kuò)大攻擊范圍,我們可以繼續(xù)嘗試其他攻擊手段,獲取WEBshell。
利用FCKeditor編輯器漏洞獲取WEBshell
現(xiàn)在打開網(wǎng)站先注冊(cè)一個(gè)會(huì)員賬戶testweb,在用戶管理中信--投稿管理--發(fā)布稿件的地方發(fā)現(xiàn)該網(wǎng)站使用了一款名為FCKeditor在線編輯器。FCKeditor是一款在線編輯器,能夠在線進(jìn)行文字和圖片的編輯等工作,通常會(huì)作為一個(gè)編輯部件嵌入其他的一些程序中。我們平時(shí)泡論壇,寫博客,經(jīng)??梢栽诰W(wǎng)頁(yè)中對(duì)我們的文字或圖片進(jìn)行簡(jiǎn)單的編輯。FCKeditor的應(yīng)用十分廣泛,但是漏洞也非常多。
現(xiàn)在來(lái)測(cè)試下FCKeditor最為普遍的上傳漏洞。打開圖片上傳選項(xiàng),然后選擇準(zhǔn)備好的JSP木馬上傳,發(fā)現(xiàn)被禁止上傳圖片文件格式以外的文件。不過(guò)它在上傳文件判斷的時(shí)候采用的是本地驗(yàn)證后綴名方式,所以攻擊者可以通過(guò)代理工具Burpsuitepro來(lái)進(jìn)行上傳,先修改JSP木馬的后綴為JPG圖片格式,比如把1.jsp改為2.jpg;然后Burpsuitepro抓包阻斷上傳的內(nèi)容,把上傳的2.jpg再改回1.jsp,從而繞過(guò)網(wǎng)站編輯器本地驗(yàn)證的過(guò)程,成功上傳文件得到一個(gè)Webshell。
圖 利用工具抓包修改上傳內(nèi)容
圖 成功上傳JSP木馬,得到一個(gè)WEBshell#p#
利用WEBshell獲取服務(wù)器系統(tǒng)權(quán)限
利用WEBshell先查看下網(wǎng)站的配置文件,看是否有可以利用的資源。
圖 網(wǎng)站配置文件
上圖的配置文件可以看到網(wǎng)站的數(shù)據(jù)庫(kù)服務(wù)器的地址及帳號(hào)密碼,如果數(shù)據(jù)庫(kù)服務(wù)器沒(méi)有做安全防護(hù)配置,攻擊者就可以直接通過(guò)獲取到的信息鏈接到數(shù)據(jù)庫(kù)服務(wù)器導(dǎo)出網(wǎng)站的全部數(shù)據(jù)。
現(xiàn)在再看看網(wǎng)站的賬戶權(quán)限,在WEBshell中執(zhí)行cmd命令:whoami
得到的反饋結(jié)果是"nt authority\system",現(xiàn)在可以判斷網(wǎng)站本身的權(quán)限是服務(wù)器系統(tǒng)管理員權(quán)限,攻擊者就可以執(zhí)行添加系統(tǒng)用戶的命令
圖 添加帳號(hào)hacker
圖 提升hacker的權(quán)限
之前在搜集信息的時(shí)候就得知網(wǎng)站服務(wù)器開放了遠(yuǎn)程登錄3389端口,現(xiàn)在攻擊者就用剛剛添加的管理員hacker帳號(hào)登錄服務(wù)器。
現(xiàn)在攻擊者已經(jīng)成功登錄網(wǎng)站服務(wù)器。
惡意篡改網(wǎng)頁(yè)
現(xiàn)在整個(gè)網(wǎng)站和服務(wù)器都在攻擊者的掌控之中,攻擊者可以隨意刪除、修改、增加網(wǎng)頁(yè),插入網(wǎng)頁(yè)木馬等?,F(xiàn)在假設(shè)攻擊者要令網(wǎng)站首頁(yè)成為黑頁(yè)。
入侵者對(duì)網(wǎng)站主頁(yè)的破壞,無(wú)疑會(huì)給網(wǎng)站帶來(lái)經(jīng)濟(jì)、信譽(yù)等等方面的損失。
同時(shí)另一方面?zhèn)鞑ブ肭终吡粝碌膸в胸?fù)面影響的信息或者病毒,嚴(yán)重影響網(wǎng)絡(luò)安全。
三 WEB應(yīng)用安全與數(shù)據(jù)庫(kù)安全的防護(hù)
前面我們已經(jīng)了解了黑客是如何入侵竊取我們的數(shù)據(jù)并破壞網(wǎng)站的過(guò)程,所以我們對(duì)WEB應(yīng)用安全的威脅應(yīng)該采取積極防御并及時(shí)解決的態(tài)度。
首先我們要了解為什么網(wǎng)站會(huì)出現(xiàn)這么多的問(wèn)題這么多的漏洞:由于某些開發(fā)人員犯了非常低級(jí)的編程錯(cuò)誤,比如:應(yīng)用ID只能被應(yīng)用使用,而不能被單獨(dú)的用戶或是其它進(jìn)程使用。但是開發(fā)人員不這么做,他們給予了應(yīng)用程序更多的數(shù)據(jù)訪問(wèn)權(quán)限。這就類似于醫(yī)生因沒(méi)有洗手而傳播了傳染病,從而導(dǎo)致各種漏洞的出現(xiàn)。
我們必須接受已經(jīng)存在的應(yīng)用缺陷和漏洞。通過(guò)發(fā)揮數(shù)據(jù)庫(kù)管理員的安全職責(zé)去阻止因?yàn)閼?yīng)用缺陷和漏洞所造成的不良后果。如果開發(fā)人員不重視應(yīng)用與數(shù)據(jù)交互的安全性,堅(jiān)持最小權(quán)限原則,數(shù)據(jù)庫(kù)管理員則有權(quán)在這場(chǎng)互動(dòng)中占取主動(dòng),不給開發(fā)人員全權(quán)委托,數(shù)據(jù)庫(kù)管理員可以不允許那么多的交互被授權(quán);為了阻止黑客的滲透攻擊從不可避免的網(wǎng)絡(luò)程序應(yīng)用漏洞中占便宜,數(shù)據(jù)庫(kù)管理員也有權(quán)進(jìn)行其他有效的安全控制。并且數(shù)據(jù)庫(kù)管理員應(yīng)對(duì)數(shù)據(jù)庫(kù)進(jìn)行加密保護(hù),如密碼不能使用明文保存;對(duì)所有應(yīng)用層和數(shù)據(jù)層通信的審計(jì)監(jiān)控將有助于快速識(shí)別和解決問(wèn)題以及準(zhǔn)確地判斷任何安全事件的范圍,直到實(shí)現(xiàn)安全風(fēng)險(xiǎn)最小化的目標(biāo)。
假如出現(xiàn)數(shù)據(jù)外泄事件(如2011年年底的CSDN等網(wǎng)站的用戶數(shù)據(jù)信息泄密事件),責(zé)任也不止是在數(shù)據(jù)庫(kù)管理員身上,開發(fā)人員也需要共同承擔(dān)責(zé)任。其中一個(gè)非常重要的方面,開發(fā)人員能做的就是在用戶能輸入的地方最好過(guò)濾危險(xiǎn)字符,這樣可以防止黑客通過(guò)諸如SQL注入攻擊獲取到數(shù)據(jù)庫(kù)的敏感信息。目前在各類行業(yè)網(wǎng)站上,各種WEB應(yīng)用漏洞隨處可見,可以被黑客們檢測(cè)到(他們一般會(huì)用軟件同時(shí)掃描數(shù)千個(gè)網(wǎng)站)。
開發(fā)人員在完成一套新的應(yīng)用程序后應(yīng)使用安全檢測(cè)工具對(duì)其進(jìn)行反復(fù)白盒測(cè)試,有條件的情況下可以請(qǐng)信息安全人員模擬黑客進(jìn)行黑盒滲透測(cè)試,盡可能的發(fā)現(xiàn)應(yīng)用程序的弱點(diǎn)并進(jìn)行修補(bǔ)。如果想實(shí)現(xiàn)更完整的解決方案,更多有關(guān)的保護(hù)數(shù)據(jù)和數(shù)據(jù)庫(kù)是應(yīng)當(dāng)實(shí)施源代碼分析。這是一項(xiàng)冗長(zhǎng)的處理過(guò)程,可以請(qǐng)安全服務(wù)提供商用專業(yè)的源碼審計(jì)軟件對(duì)應(yīng)用程序代碼進(jìn)行詳細(xì)的分析處理,這些工具會(huì)直接查找出更精確的缺陷結(jié)果。
同時(shí)應(yīng)該與開發(fā)商或者安全廠商合作并確保能提供安全解決方案,這對(duì)于任何致力于部署網(wǎng)絡(luò)應(yīng)用數(shù)據(jù)庫(kù)正常安全訪問(wèn)的用戶都至關(guān)重要,WEB應(yīng)用安全測(cè)試對(duì)于確保數(shù)據(jù)庫(kù)的安全性有至關(guān)重要的作用。
一款好的工具可以有助于加快進(jìn)度并且提供更好的檢測(cè)結(jié)果和解決方案,以提供應(yīng)用程序更好的的安全性,關(guān)鍵是進(jìn)行反復(fù)評(píng)估以確保管理工作正常,對(duì)結(jié)果實(shí)施驗(yàn)證并加固,確保風(fēng)險(xiǎn)一經(jīng)發(fā)現(xiàn)立即補(bǔ)救,并保證管理人員能夠了解到相關(guān)問(wèn)題的存在。
最后我們談?wù)勑碌姆阑饓?wèn)題。到目前為止,我們都是側(cè)重于預(yù)防措施。但在現(xiàn)實(shí)世界中,我們不可能總是改編程序和環(huán)境,所以我們必須采用其他技術(shù)措施。這就是為什么會(huì)產(chǎn)生新的防火墻。
防火墻用于應(yīng)用程序或者監(jiān)控流量的運(yùn)行監(jiān)控,也可以在執(zhí)行運(yùn)行時(shí)進(jìn)行分析。防火墻可以找出攻擊,并阻止嘗試或修改的要求,來(lái)確保WEB服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器的安全運(yùn)行。
目前不光有WEB應(yīng)用防火墻和網(wǎng)絡(luò)防火墻能防范攻擊者透過(guò)應(yīng)用層和網(wǎng)絡(luò)層的攻擊;"數(shù)據(jù)庫(kù)防火墻"也于這兩年在不斷的數(shù)據(jù)庫(kù)泄密事件中出現(xiàn)在公眾的視線里,國(guó)內(nèi)稱之為"數(shù)據(jù)庫(kù)審計(jì)"產(chǎn)品,這些產(chǎn)品能給數(shù)據(jù)庫(kù)提供實(shí)時(shí)的網(wǎng)絡(luò)存儲(chǔ)與訪問(wèn)的安全。
任何一個(gè)好的數(shù)據(jù)庫(kù)安全策略都應(yīng)包括監(jiān)控和審計(jì),以確保保護(hù)對(duì)象正常運(yùn)行,并且運(yùn)行在正確的位置上,這也是個(gè)非常耗時(shí)的過(guò)程。由于缺乏時(shí)間和工具,大多數(shù)用戶對(duì)于數(shù)據(jù)庫(kù)配置的檢查往往也僅是抽查而已。
這里還需要指出的是目前多數(shù)人認(rèn)為"數(shù)據(jù)庫(kù)審計(jì)"等同于數(shù)據(jù)庫(kù)安全,事實(shí)上,數(shù)據(jù)庫(kù)安全遠(yuǎn)遠(yuǎn)不是數(shù)據(jù)庫(kù)審計(jì)可以搞定的,數(shù)據(jù)庫(kù)審計(jì)只是數(shù)據(jù)庫(kù)安全的一個(gè)很小的方面,之所以有時(shí)候?qū)Φ绕饋?lái),一方面是由于市場(chǎng)宣傳導(dǎo)致的誤導(dǎo),另一方面的確是這個(gè)部分的問(wèn)題比較容易產(chǎn)品化/工具化,技術(shù)實(shí)現(xiàn)相對(duì)比較成熟。數(shù)據(jù)庫(kù)安全應(yīng)該包括:數(shù)據(jù)庫(kù)資產(chǎn)管理、數(shù)據(jù)庫(kù)配置加固、職責(zé)分離、特權(quán)用戶控制、數(shù)據(jù)庫(kù)弱點(diǎn)掃描和補(bǔ)丁管理、數(shù)據(jù)庫(kù)加密、數(shù)據(jù)庫(kù)審計(jì)。
最后,我們還是回到應(yīng)用程序的安全以及與數(shù)據(jù)庫(kù)之間的相互作用問(wèn)題上。即我們必須要考慮到的問(wèn)題是應(yīng)用程序的安全以及與數(shù)據(jù)庫(kù)之間的相互作用,尤其是對(duì)于當(dāng)今流行的高度動(dòng)態(tài)的和互動(dòng)的網(wǎng)絡(luò)應(yīng)用程序而言。理解數(shù)據(jù)庫(kù)與應(yīng)用程序和系統(tǒng)環(huán)境之間的作用可以更加提升數(shù)據(jù)的安全性。