【服务器防护】WEB防护
原文:http://www.2cto.com/Article/201511/451757.html
1. 什么是webshell?
基于b/s架構的軟件部署在Internet上,那么安全性是必須要關注的,攻擊者可以采用各種方式進行攻擊,獲取系統(tǒng)的控制權,其中webshell是常見的攻擊方式。
Webshell是攻擊者在被攻擊網(wǎng)站上植入的asp、php、jsp程序文件,攻擊者在入侵了一個web系統(tǒng)后,常常在將這些asp、php、jsp木 馬后門文件放置在web服務器的web目錄中,與正常的網(wǎng)站文件混在一起。然后攻擊者就可以通過正常的web訪問方式,訪問其植入asp、php、jsp 程序木馬后門控制web服務器,包括創(chuàng)建、修改、刪除文件,上傳下載文件,查看數(shù)據(jù)庫,執(zhí)行任意程序命令等。
webshell攻擊應用于所有基于b/s結構的系統(tǒng),包括網(wǎng)站、OA(www.chysoft.net)、CRM、ERP等等。
2. webshell的分類
大馬、小馬、一句話馬
2.1上傳"大馬"
這種方式通過POST直接上傳一個Webshell文件或者經(jīng)過簡單的變形然后上傳到服務器上,如下面的一個例子:
2009-02-10 06:32:58 W3SVC77065997 XXXX.XXXX.XXXX.XXXX POST /lesson_manage/upload/40/ASP.asp – 80 – XXXX.XXXX.XXXX.XXXX Mozilla/4.0+compatible;+MSIE+6.0; 200 0 0
從上面這條訪問記錄中能夠發(fā)現(xiàn)如下關鍵特:POST upload ASP.asp 200 通過這幾個關鍵特征的就能夠分析出ASP.php可能是一個疑似Webshell。
2.2上傳"小馬"
在不能直接上傳“大馬”Webshell的情況下黑客通常會上傳一個“小馬”以協(xié)助完成上傳“大馬”或者上傳一句話Webshell并配合一個客戶端實現(xiàn)控制服務器,這里我們也不討論如何上傳“小馬”以及一句話Webshell。我們只討論如何利用“小馬”來上傳“大馬”。
這種方式的特殊點在于不是一個完整的文件在網(wǎng)絡中中傳輸而是一個存在于HTTP協(xié)議中的一個參數(shù)在網(wǎng)絡中傳輸,傳輸參數(shù)的方式既可能是GET也可能是POST,我們來看下面一個真實的例子:
在上圖中我們不難發(fā)現(xiàn)這顯然是使用一句話木馬客戶端通過POST的形式正在上傳一個Webshell的腳本代碼,并且將內(nèi)容寫入一句話木馬相同目錄 下的一個body.asp的文件當中,從而實現(xiàn)上傳“大馬”。在截取到的流量數(shù)據(jù)中可以發(fā)現(xiàn),如:act= body.asp value=Execute等payload,通過在檢測這些payload就可以在上傳的過程中分析Webshell及其行為。
2.3. 訪問過程中的Payload
于Webshell是被制作用來控制服務器或者竊取機密信息的,要實現(xiàn)這些能力攻擊者就必須向Webshell發(fā)送一些控制指令從而操作Webshell。在控制指令中通常包含特征明顯的攻擊payload。我們來觀察一下如下幾種payload:
上圖中顯然是Webshell正在試圖連接網(wǎng)站的數(shù)據(jù)庫,并且攻擊者使用的是POST的方式向Webshell提交連接參數(shù),其中可以發(fā)現(xiàn)的 payload 有:action=sqladmin,dbhost=localhost,dbport=3306,dbuser=root,dbpass=1qaz2wsx,connect=connect 等。
3、webshell的檢測
參考文章:http://www.sec-un.org/ideas-like-article-espionage-webshell-method.html
Webshell的檢測的三種手段
從安全防護能力看,檢測是第一位的能力,webshell的檢測主要有以下幾種方式:
(1)基于流量的webshell檢測引擎
方便部署,通過流量鏡像直接分析原始信息。基于payload的行為分析,不僅對已知webshell進行檢測,還能識別出未知的、偽裝性強的 webshell。對webshell的訪問特征(IP/UA/Cookie)、payload特征、path特征、時間特征等進行關聯(lián)分析,以時間為索 引,還原攻擊事件。
(2)基于文件的webshell分析引擎
檢測是否包含webshell特征,例如常用的各種函數(shù)。檢測是否加密(混淆處理)來判斷是否為webshell文件hash檢測,創(chuàng)建webshell 樣本hashing庫,進行對比分析可疑文件。對文件的創(chuàng)建時間、修改時間、文件權限等進行檢測,以確認是否為webshell沙箱技術,根據(jù)動態(tài)語言沙 箱運行時的行為特征進行判斷
(3)基于日志的webshell分析引擎
支持常見的多種日志格式。對網(wǎng)站的訪問行為進行建模,可有效識別webshell的上傳等行為對日志進行綜合分析,回溯整個攻擊過程。
三種檢測方式,基于文件的檢測,很多時候獲取樣本的部署成本比較高,同時僅僅靠樣本無法看到整個攻擊過程。基于日志的有些行為信息在日志中看不到,總體來說還是基于“流量”的看到的信息最多,也能更充分的還原整個攻擊過程。
4. webshell的應對措施
了解了webshell的基本原理之后,最關鍵的防止器植入asp、php、jsp等木馬程序文件,使用webshell一般不會在系統(tǒng)日志中 留下記錄,只會在網(wǎng)站的web日志中留下一些數(shù)據(jù)提交記錄,沒有經(jīng)驗的管理員是很難看出入侵痕跡的。我們一般可以從以下幾方面對安全性進行處理:
1、Web軟件開發(fā)的安全
A、程序中存在文件上載的漏洞,攻擊者利用漏洞上載木馬程序文件。
B、防sql注入、防暴庫、防COOKIES欺騙、防跨站腳本攻擊。
2、服務器的安全和web服務器的安全
A、服務器做好各項安全設置,病毒和木馬檢測軟件的安裝(注:webshell的木馬程序不能被該類軟件檢測到),啟動防火墻并關閉不需要的端口和服務。
B、提升web服務器的安全設置
C、對以下命令進行權限控制(以windows為例):
cmd.exe net.exe net1.exe ping.exe netstat.exe ftp.exe tftp.exe telnet.exe
3、ftp文件上載安全
設置好ftp服務器,防止攻擊者直接使用ftp上傳木馬程序文件到web程序的目錄中
4、文件系統(tǒng)的存儲權限
設置好web程序目錄及系統(tǒng)其它目錄的權限,相關目錄的寫權限只賦予給超級用戶,部分目錄寫權限賦予給系統(tǒng)用戶。
將web應用和上傳的任何文件(包括)分開,保持web應用的純凈,而文件的讀取可以采用分靜態(tài)文件解析服務器和web服務器兩種服務器分 別讀取(Apache/Nginx加tomcat等web服務器),或者圖片的讀取,有程序直接讀文件,以流的形式返回到客戶端。
5、不要使用超級用戶運行web服務
對于apache、tomcat等web服務器,安裝后要以系統(tǒng)用戶或指定權限的用戶運行,如果系統(tǒng)中被植入了asp、php、jsp等木馬程序文件,以超級用戶身份運行,webshell提權后獲得超級用戶的權限進而控制整個系統(tǒng)和計算機。
總結
以上是生活随笔為你收集整理的【服务器防护】WEB防护的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。