◆劉 翔
(湖北省公眾氣象服務(wù)中心 湖北 430074)
淺談應(yīng)對(duì)網(wǎng)站篡改技術(shù)手段
◆劉 翔
(湖北省公眾氣象服務(wù)中心 湖北 430074)
網(wǎng)站是一個(gè)單位的門臉,網(wǎng)站防篡改是一個(gè)單位網(wǎng)絡(luò)安全的重點(diǎn),本文站在一個(gè)網(wǎng)站開(kāi)發(fā)和管理的角度,分析網(wǎng)站篡改的主要攻擊手段,用經(jīng)驗(yàn)和實(shí)例來(lái)說(shuō)明應(yīng)對(duì)網(wǎng)站的技術(shù)手段。
網(wǎng)站;黑客攻擊手段;防篡改技術(shù);網(wǎng)站代碼
0 引言
對(duì)于一個(gè)單位的網(wǎng)站管理者,雖然要面對(duì)層出不窮的應(yīng)用安全事件,但筆者認(rèn)為首當(dāng)其沖是要防網(wǎng)站被篡改。根據(jù)國(guó)家互聯(lián)網(wǎng)應(yīng)急中心(CNCERT)《中國(guó)互聯(lián)網(wǎng)網(wǎng)絡(luò)安全報(bào)告(年報(bào))》中監(jiān)測(cè)數(shù)據(jù),2014年我國(guó)境內(nèi)近3.7萬(wàn)個(gè)網(wǎng)站被黑客篡改,2015年有近2.5萬(wàn)個(gè)網(wǎng)站被篡改,其中被篡改政府網(wǎng)站2014年有1763個(gè),2015年有篡改898個(gè)。雖然隨著國(guó)家對(duì)網(wǎng)絡(luò)安全法制化進(jìn)程不斷加快和政府部門的防范意識(shí)不斷提高,政府網(wǎng)站被攻擊現(xiàn)象呈現(xiàn)下降趨勢(shì),但由于國(guó)內(nèi)外形勢(shì)依舊復(fù)雜,非法團(tuán)體和敵對(duì)勢(shì)力無(wú)時(shí)不想利用手段摸黑政府形象,總體上網(wǎng)站安全風(fēng)險(xiǎn)依然形勢(shì)嚴(yán)峻。從網(wǎng)頁(yè)篡改的方式來(lái)看,我國(guó)被植入暗鏈的網(wǎng)站占全部被篡改網(wǎng)站的比例高達(dá)83%,在被篡改的政府網(wǎng)站中,超過(guò)85%的網(wǎng)頁(yè)篡改方式是植入暗鏈。植入暗鏈已成為黑客地下產(chǎn)業(yè)鏈牟利方式之一,2015年CNCERT處理參與網(wǎng)頁(yè)篡改攻擊的博彩、私服等非法網(wǎng)站鏈接6320個(gè),通知5609個(gè)被植入暗鏈網(wǎng)站用戶單位對(duì)網(wǎng)站進(jìn)行修復(fù)。
1 涉及篡改的主要攻擊手段
1.1 SQL注入
所謂SQL注入,就是通過(guò)把SQL命令插入到Web表單遞交或輸入域名或頁(yè)面請(qǐng)求的查詢字符串,最終達(dá)到欺騙服務(wù)器執(zhí)行惡意的SQL命令。通過(guò)遞交參數(shù)構(gòu)造巧妙的SQL語(yǔ)句,從而成功獲取想要的數(shù)據(jù)。其分為字符型注入和數(shù)字型的注入,由于編程語(yǔ)言不同,所存在的注入類型也不同。危害有:非法查詢其他數(shù)據(jù)庫(kù)資源,如管理員帳號(hào);執(zhí)行系統(tǒng)命令;獲取服務(wù)器root權(quán)限。
1.2 跨站腳本攻擊
通常簡(jiǎn)寫(xiě)為XSS,是指攻者利用網(wǎng)站程序?qū)τ脩糨斎脒^(guò)濾不足,輸入可以顯示在頁(yè)面上對(duì)其他用戶造成影響的HTML代碼,從而盜取用戶資料、利用用戶身份進(jìn)行某種動(dòng)作或者對(duì)訪問(wèn)者進(jìn)行病毒侵害的一種攻擊方式。其危害有盜取用戶cookie;XSS蠕蟲(chóng);掛馬,結(jié)合XSS蠕蟲(chóng),危害巨大。
1.3 利用操作系統(tǒng)和網(wǎng)站服務(wù)程序自身漏洞攻擊
服務(wù)器操作系統(tǒng)和網(wǎng)站服務(wù)程序隨著時(shí)間推移,總是會(huì)被發(fā)現(xiàn)存在很多漏洞,2016年4月中國(guó)互聯(lián)網(wǎng)被Apache Struts2(官方編號(hào)S2-032/CVE編號(hào)CVE-2016-3081)漏洞血洗,一個(gè)月內(nèi)被植入后門的網(wǎng)站達(dá)六千多家,其開(kāi)啟動(dòng)態(tài)方法調(diào)用(DMI)的情況下,可以被遠(yuǎn)程執(zhí)行任意命令。這些正是黑客利用工具掃描出網(wǎng)站服務(wù)器如IIS和Apache等服務(wù)軟件的幫助信息等默認(rèn)配置文件及其版本信息,開(kāi)發(fā)出漏洞利用POC,發(fā)布在互聯(lián)網(wǎng)上,吸引了更多的互聯(lián)網(wǎng)攻擊和掃描嘗試。此外,網(wǎng)頁(yè)中包含了提交時(shí)的內(nèi)部網(wǎng)絡(luò)IP等敏感信息;服務(wù)器的默認(rèn)端口和服務(wù),如windows的默認(rèn)ipc$共享等這些很容易忽視的信息泄露點(diǎn)。
2 應(yīng)用代碼處理手段
2.1 應(yīng)用代碼安全才是真正的Web安全
關(guān)于Web應(yīng)用程序安全性,必須認(rèn)識(shí)到的第一件事是不應(yīng)該信任外部數(shù)據(jù),應(yīng)用代碼安全才是真正的Web安全。外部數(shù)據(jù)(outside data)包括不是由程序員在網(wǎng)站代碼中直接輸入的任何數(shù)據(jù)。在采取措施確保安全之前,來(lái)自任何其他來(lái)源(比如GET 變量、表單 POST、數(shù)據(jù)庫(kù)、配置文件、會(huì)話變量或 cookie)的任何數(shù)據(jù)都是不可信任的。在開(kāi)發(fā)應(yīng)用程序時(shí),嚴(yán)格檢查用戶輸入,注意一些特殊字符:“’”“;”“[”“--””||”等。
例如,在網(wǎng)站每個(gè)應(yīng)用代碼中可加一些用戶提交POST過(guò)濾:

2.2 轉(zhuǎn)義用戶輸入內(nèi)容
轉(zhuǎn)義最重要的是防止XSS攻擊和SQL注入。對(duì)于需要插入的不可信內(nèi)容必須先進(jìn)行轉(zhuǎn)義(尤其對(duì)特殊字符、語(yǔ)法符合必須轉(zhuǎn)義或重新編碼)。
例如:用戶提交到網(wǎng)站一段信息,該信息中夾帶了這么一段