內(nèi)網(wǎng)的系統(tǒng)由于很少更新漏洞補丁,反而更容易受到攻擊。認識到攻擊者已不僅僅是將WebShell作為后門,而是將其作為進入目標內(nèi)部網(wǎng)絡(luò)的跳板,將內(nèi)外網(wǎng)系統(tǒng)上的WebShell串聯(lián)起來,利用WebShell建立的隧道從外部互聯(lián)網(wǎng)深入到內(nèi)部網(wǎng)絡(luò)進行滲透攻擊。
針對WebShell攻擊,兩個機構(gòu)給出的處理建議也是相當接地氣,這份指南有Detecting/Blocking(檢測/阻斷)、Preventing (預防)、RESPONSE and RECOVERY(響應(yīng)和恢復)三個主題,下面我就解讀一下指南對付WebShell的要點,不是完全復刻,會帶上一些個人經(jīng)驗:
檢測/阻斷:
文件diff比較,對Web程序文件最好先有一個白名單,使用非白即黑的原則對文件進行檢查。
針對異常的Web訪問流量進行檢測,User-Agent標頭、客戶端IP、referer標頭等都可以作為異常指標,針對流量和日志進行數(shù)據(jù)挖掘。
基于WebShell的文件特征和流量特征可以發(fā)現(xiàn)一些已知的WebShell
針對額外的網(wǎng)絡(luò)流量進行檢測,比如一些主機沒有Web應(yīng)用,開始有Web流量了,一些Web服務(wù)器額外的外發(fā)流量等都是異常情況。
EDR的響應(yīng)檢測能力,這個范圍就大了,簡單的還是先針對Web服務(wù)產(chǎn)生的異常進程進行監(jiān)控吧,指南也只是泛泛而談,真實的攻防點實在太多了。
其他異常網(wǎng)絡(luò)流量指標,這個一句話概括就是找出孤島流量,比如統(tǒng)計分析UV、PV、訪問IP的地理位置,從這些訪客數(shù)據(jù)中分析出明顯區(qū)別于正常訪問的Webshell流量。
預防:
一些Web程序要經(jīng)常打安全補丁
Web程序和Web服務(wù)遵循最小權(quán)限原則進行安全加固
使用主機入侵檢測進行文件完整性檢測,主要針對新建文件和被篡改文件監(jiān)控
WAF和IPS設(shè)備,這一點NSA和ASD的認識很深刻。IPS和WAF設(shè)備只能阻斷初步的攻擊,不太可能阻止已失陷主機的WebShell流量,因為黑客能用Webshell的時候,肯定早就繞過WAF了。IPS和WAF設(shè)備應(yīng)針對Web應(yīng)用程序進行量身定制才最有效,不可能有完全通用的解決方案。
網(wǎng)絡(luò)隔離,關(guān)鍵資產(chǎn)還是隔離的,實際上攻擊者能利用Webshell當跳板進入內(nèi)網(wǎng),這已經(jīng)是利用上了網(wǎng)絡(luò)訪問策略的安全弱點。
對Web服務(wù)器加固,這里的方案太多了,就不詳敘了。
響應(yīng)和恢復:
這部分是實操的內(nèi)容,文檔給出了很多接地氣的腳本和實例,感興趣的可以去Github看看,篇幅所限就簡單介紹下 。
用powershell、diff工具,針對Web文件做比對分析
用Splunk查詢?nèi)罩局械漠惓A髁,算是對檢測/阻斷中的2、3條的簡單示例
用powershell、python腳本分析IIS、Apache的日志
用一些IDS的網(wǎng)絡(luò)流量簽名特征發(fā)現(xiàn)和阻斷已知的WebShell
用Sysmon和Auditd檢測WebShell起的異常進程
最近流行的Web程序漏洞補丁
用主機入侵檢測監(jiān)控web目錄的異常讀寫
.....
最后總結(jié)下,這份文檔除了部分常見的白開水內(nèi)容,有很多有亮點的思路和建議(本文標粗的部分)。稍微有一點不足的地方,就是該指南沒有針對一些可以利用漏洞動態(tài)執(zhí)行代碼的無文件Webshell攻擊給出建議。大家按照整個文檔的指南踐行,是能夠防住絕大部分Webshell攻擊的,值得最近某大型網(wǎng)絡(luò)安全活動的防守方學習。