周光軍 蔡成軍 祖卓紅 楊帆 劉建 李穎
摘 要 隨著網絡應用的普及與推廣,越來越多的網絡門戶平地而起,在各類門戶如此普及的現今社會,門戶應用層的安全問題被提升到了一個很高的關注層面,主要表現在數據庫的防注入、門戶站點頁面防篡改、防注冊機等類型的安全防護,本文將在上述幾種安全問題中結合實際應用做出相應解決方案。
【關鍵詞】門戶 安全 注入sqlserver .net
無論何種技術的網絡平臺,在internet環(huán)境中發(fā)布后均會面臨各類攻擊,特別是基于網頁篡改和數據庫的注入攻擊,多數靜態(tài)網頁面臨的攻擊為頁面篡改、站點文件刪除的攻擊,而各類數據庫站點的攻擊則重點體現在數據庫的注入攻擊方面,本文將結合實際開發(fā)過程中遇到的各類典型注入攻擊,在缺乏硬件設備保護的前提下,基于.net技術,在非托管環(huán)境中所做出的技術解決方案進行闡述。
1 注入攻擊渠道及原理分析
基于B/S結構的網絡應用門戶,http請求訪問方式多數為get、post兩種方式,程序中一般在cookie、form、request等請求中體現,攻擊原理即是利用客戶端與服務器商的請求進行的數據交互的功能發(fā)出含有如add、update、exec、drop、alter、exists、union、execute、xp_cmdshell、insert、sp_oacreate等功能性代碼的請求,如果一個網絡門戶在應用層及數據庫層的安全防護功能不夠完善,則會被輕易地將一些與自己門戶無關的數據被迫允許性地存儲到服務器數據庫中,嚴重者會丟失非常重要的賬戶信息造成龐大的經濟損失。
2 注入攻擊手段及目的
結合本部門近十年的網絡平臺運維經驗,注入攻擊手段上基本全是利用注入攻擊軟件不停地對網絡門戶進行漏洞掃描,然后利用漏洞進行非法指令請求進行注入攻擊。
攻擊目的多以謀取商業(yè)利益為主,主要是為了廣泛的發(fā)布企業(yè)的信息,擴大企業(yè)相關信息在Internet中的發(fā)布量,提升客戶通過各大搜索引擎搜索的命中率,或者非法獲取相關的用戶賬號信息,進行非法交易以謀取商業(yè)利益。
3 注入攻擊的危害
由于我部門運維的網絡門戶為交互性門戶(非電子商務門戶,無在線支付交易功能),綜合與注入攻擊多年來的對抗反擊,總結出如下幾種危害:
3.1 損耗硬件設備資源
每遇到注入攻擊時,服務器硬件資源損耗非常巨大,CPU使用率往往達到100%,內存使用率也非常高,經常導致不停止站點運行就無法操作服務器的狀況。
3.2 信息資源損失
注入攻擊除添加新的數據記錄外,批量將現有數據字段內容Update為非法注入內容或非法腳本。導致原有數據未及時備份的情況下損失很多歷史數據。
3.3 人力物力及經濟損失
由于我部門網絡平臺為會員制交互門戶,涉及到一些會員服務資費問題,注入攻擊經常會丟失重要數據,導致售后人員及技術人員投入精力進行數據恢復處理及網絡門戶修復處理,浪費的時間和精力成本所帶來的經濟損失無法估量。
4 .Net防注入技術優(yōu)勢
ASP.Net的Application_BeginRequest對預防注入功能作用非常大。在收到Request時第一個觸發(fā)的事件,這個方法第一個執(zhí)行,即,可以簡單理解為:當客戶端向服務器發(fā)現任何一個請求時,首先觸發(fā)服務器端的“Application_BeginRequest”事件?;贏pplication_BeginRequest事件的優(yōu)勢,解決方案如下文所述。
5 面對攻擊的解決方案
5.1 頁面篡改預防
由于是非托管環(huán)境,我部門擁有自己的web服務器,在預防網頁被篡改方面,主要采取權限控制來實現,即通過IIS相應站點的“權限”打開安全設計窗口,對”everyone”與”Internet來賓賬戶”進行只讀權限配置。
5.2 數據庫層解決方案
多年來綜合分析數據庫被注入基本是為了實現一個目的:注入可通過瀏覽頁面打開對方網站的代碼,即,當用戶訪問瀏覽我部門運維門戶時,頁面內容可直接嵌入或跳轉到指定網站。經分析有如下關鍵詞的注入內容“