自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用ModSecurity 保護(hù)Web服務(wù)安全

原創(chuàng)
安全 應(yīng)用安全
ModSecurity是一個(gè)入侵偵測(cè)與防護(hù)引擎,它主要是用于Web 應(yīng)用程序,所以也被稱(chēng)為Web應(yīng)用程序防火墻。 它可以作為Apache Web服務(wù)器的模塊或是單獨(dú)的應(yīng)用程序來(lái)運(yùn)作。ModSecurity的功能是增強(qiáng)Web application的安全性和保護(hù)Web application以避免遭受來(lái)自已知與未知的攻擊。

51CTO編者注:在“拯救網(wǎng)站運(yùn)維經(jīng)理趙明活動(dòng)”開(kāi)始后,曹江華為我們投來(lái)了一個(gè)篇幅不小的開(kāi)源應(yīng)用解決方案。

1 ModSecurity 簡(jiǎn)介

ModSecurity是一個(gè)入侵偵測(cè)與防護(hù)引擎,它主要是用于Web 應(yīng)用程序,所以也被稱(chēng)為Web應(yīng)用程序防火墻。 它可以作為Apache Web服務(wù)器的模塊或是單獨(dú)的應(yīng)用程序來(lái)運(yùn)作。ModSecurity的功能是增強(qiáng)Web application的安全性和保護(hù)Web application以避免遭受來(lái)自已知與未知的攻擊。其防護(hù)的概念如圖-1所示:


圖-1 ModSecurity防護(hù)的概念

圖-2 ModSecurity入侵偵測(cè)與防護(hù)引擎安裝位置示意圖

ModSecurity計(jì)劃是從2002年開(kāi)始,后來(lái)由Breach Security Inc.收購(gòu),但Breach Security Inc.允諾ModSecurity仍舊為open source,并開(kāi)放源代碼給大家使用。最新版的ModSecurity(一個(gè)開(kāi)源的Web應(yīng)用防火墻,即WAF)開(kāi)始支持核心規(guī)則集(Core Rule Set,即CRS,可用于定義旨在保護(hù)Web應(yīng)用免受零日及其他安全攻擊的規(guī)則)了。ModSecurity團(tuán)隊(duì)發(fā)布的2.5.10 版還包含了其他一些特性,如并行文本匹配、Geo IP解析和信用卡號(hào)檢測(cè)等,同時(shí)還支持內(nèi)容注入、自動(dòng)化的規(guī)則更新和腳本等內(nèi)容。可以通過(guò)ModSecurity手工創(chuàng)建安全過(guò)濾器、定義攻擊并實(shí)現(xiàn)主動(dòng)的安全輸入驗(yàn)證。此外,它還提供了一個(gè)面向Lua語(yǔ)言的新的API,為開(kāi)發(fā)者提供一個(gè)腳本平臺(tái)以實(shí)現(xiàn)用于保護(hù)Web應(yīng)用的復(fù)雜邏輯。

ModSecurity的運(yùn)作設(shè)計(jì)有以下的基礎(chǔ)概念:

l  讓使用者可以做任何想做的事情(Empower users to do what they want)

l  使用者設(shè)定的動(dòng)作才會(huì)執(zhí)行(Don’t do anything implicitly)

l  預(yù)設(shè)是不做任何動(dòng)作(Be passive)

ModSecurity的部署架構(gòu)

l  與Web Server結(jié)合 。

l  與Apache結(jié)合部署為網(wǎng)關(guān),當(dāng)作一個(gè)反向代理。

總結(jié):

ModSecurity是一個(gè)Web應(yīng)用防火墻(WAF)。當(dāng)前已經(jīng)有超過(guò)70%的攻擊發(fā)生在網(wǎng)絡(luò)應(yīng)用層,各級(jí)組織急需要能夠保證他們的系統(tǒng)安全性的幫助。WAF系統(tǒng)的部署,可以為web應(yīng)用增加一個(gè)外部安全層來(lái)檢測(cè)或防止攻擊。針對(duì)一系列的攻擊,ModSecurity為web應(yīng)用提供了強(qiáng)大的保護(hù),并對(duì)HTTP流量進(jìn)行監(jiān)測(cè)和實(shí)時(shí)分析,這些都只是很少或是根本沒(méi)有影響系統(tǒng)的基礎(chǔ)設(shè)施。

#p#

HTTP流量記錄

    web服務(wù)器已有的日志功能已經(jīng)足夠進(jìn)行訪問(wèn)請(qǐng)求分析,但是就web的應(yīng)用分析還有些不足,特別是大多情況下沒(méi)辦法記錄下請(qǐng)求體。你的對(duì)手很清楚這一點(diǎn),所以很多時(shí)候的攻擊是通過(guò)POST請(qǐng)求產(chǎn)生,并導(dǎo)致您的系統(tǒng)失明。ModSecurity充分的獲取HTTP交互中的所以內(nèi)容,并記錄完整的請(qǐng)求和響應(yīng)。其日志功能可以允許您更細(xì)致的做出判斷究竟什么是登錄的時(shí)候,并確保相關(guān)的數(shù)據(jù)都被記錄下來(lái)。一些請(qǐng)求和響應(yīng)中的某些關(guān)鍵字段可能包含敏感數(shù)據(jù),ModSecurity可以被配置成在記錄這些審計(jì)日志前隱藏它。

實(shí)時(shí)監(jiān)控和攻擊檢測(cè)

    除了提供記錄日志功能外,ModSecurity還能實(shí)時(shí)的監(jiān)控HTTP的流量以檢測(cè)攻擊。在某些時(shí)候,ModSecurity做為一個(gè)WEB入侵檢測(cè)工具,可以讓你對(duì)發(fā)生在WEB系統(tǒng)上的一些可疑事件做出響應(yīng)。

攻擊防御和及時(shí)修補(bǔ)

    ModSecurity能夠立即針對(duì)你的WEB應(yīng)用系統(tǒng)進(jìn)行攻擊防御,有三種通用的方法:

    1、消極(negative)安全模型:消極安全模型監(jiān)控那些異常的、不常用的和通用的WEB攻擊類(lèi)請(qǐng)求。它統(tǒng)計(jì)每個(gè)請(qǐng)求的有關(guān)IP地址、應(yīng)該連接、和用戶帳戶的異常分?jǐn)?shù),當(dāng)出現(xiàn)較高的異常分?jǐn)?shù)時(shí),會(huì)記錄日志并完全的阻止訪問(wèn)。

    2、積極安全模開(kāi)型:部署積極安全模型后,只有那些明確的請(qǐng)求被允許通過(guò),其它的一律禁止。這個(gè)模式要求你對(duì)需要保護(hù)的WEB應(yīng)用要非常的了解。因此積極安全模式最好是用于那種大量訪問(wèn)卻很少更新的系統(tǒng),這樣才能使這種模型的維護(hù)工作量降到最低。

    3、已知漏洞攻擊:其規(guī)則語(yǔ)言使ModSecurity成為一個(gè)理想的外部修補(bǔ)工具,外部修補(bǔ)(有時(shí)是指虛擬修補(bǔ))可以減少機(jī)會(huì)之窗。一些組織修補(bǔ)這些應(yīng)用的漏洞通常需要幾周的時(shí)間,使用ModSecurity,應(yīng)用系統(tǒng)可以從外部修補(bǔ),根本不用改應(yīng)用的源碼(甚至?xí)r不用去管它),可以保證你的系統(tǒng)安全直到有一個(gè)合適的補(bǔ)丁來(lái)應(yīng)用到系統(tǒng)中。

#p#

靈活的規(guī)則引擎

    靈活的規(guī)則引擎是ModSecurity的核心,其實(shí)現(xiàn)了ModSecurity的規(guī)則語(yǔ)言,這是一個(gè)專(zhuān)用的程序語(yǔ)言設(shè)計(jì)的用于處理HTTP的傳輸數(shù)據(jù)。ModSecurity規(guī)則語(yǔ)言被設(shè)計(jì)的簡(jiǎn)單易用,非常的靈活:通用的操作是簡(jiǎn)單的,而復(fù)雜的操作也是可以實(shí)現(xiàn)的。經(jīng)過(guò)認(rèn)證的ModSecurity規(guī)則,放在ModSecurity中,包含了一整套規(guī)則,它實(shí)現(xiàn)了通用目的強(qiáng)化、協(xié)議正規(guī)化和對(duì)一些通用web應(yīng)用安全問(wèn)題的檢測(cè)。大量評(píng)論認(rèn)為,這些規(guī)則可以用于學(xué)習(xí)研究使用。

嵌入式模式部署

    ModSecurity是一個(gè)可嵌入式的WEB應(yīng)用防火墻,意思就是它可以做為以apache為基礎(chǔ)的已經(jīng)提供WEB服務(wù)的WEB服務(wù)器的一部分。這樣的部署譯意風(fēng)一些特殊的優(yōu)勢(shì):

    1、不改變已有的網(wǎng)絡(luò)結(jié)構(gòu)。只需要花幾分鐘就可以為你的WEB服務(wù)器添加ModSecurity,而且由于它默認(rèn)被設(shè)計(jì)為完全的被動(dòng)方式,你可以自由的逐步部署并且只使用你需要的特性。同樣也可以根據(jù)你的需要輕松的刪除或停用它。

    2、不存在單點(diǎn)故障。與網(wǎng)絡(luò)設(shè)備部署方式不同,你不會(huì)給你的系統(tǒng)帶來(lái)新的故障點(diǎn)。

    3、絕對(duì)支持負(fù)載均衡。因?yàn)樗郧度敕绞竭\(yùn)行在WEB服務(wù)器上,ModSecurity會(huì)自動(dòng)的利用附加的負(fù)載均衡特性。你不需要考慮負(fù)載均衡,除非你的系統(tǒng)本來(lái)就需要它。

    4、極少開(kāi)銷(xiāo)。因?yàn)樗赪EB服務(wù)器進(jìn)程內(nèi)工作,不會(huì)帶來(lái)網(wǎng)絡(luò)間接通信的負(fù)載,而且只進(jìn)行最小的分析和數(shù)據(jù)交換開(kāi)銷(xiāo)。

    5、加密或壓縮內(nèi)容沒(méi)問(wèn)題。許多IDS系統(tǒng)分析SSL流量的時(shí)候很困難,但對(duì)于ModSecurity沒(méi)有麻煩,因?yàn)樗ぷ饔谝呀饷芎徒鈮旱臄?shù)據(jù)環(huán)節(jié)。

基于網(wǎng)絡(luò)的部署

在基于apache的反向代理模式上ModSecurity同樣能工作的很好,我們很多客戶選擇這樣做。在這種情形下,裝了ModSecurity的可以保護(hù)任一一種WEB服務(wù)器(即使它不是apache的)。

可移植性

眾所周知,ModSecurity可以很好的工作在眾多操作系統(tǒng)上,已經(jīng)將它成功運(yùn)行在Linux, Windows, Solaris, FreeBSD, OpenBSD, NetBSD, AIX, Mac OS X, 和HP-UX等系統(tǒng)上。

#p#

2 下載安裝

Linux 平臺(tái):

l  下載mod_security2 模塊的二進(jìn)制軟件包來(lái)安裝(推薦)

l  下載源代碼并利用./configure、make、make install編譯安裝

Windows 平臺(tái)

l  mod_security2 模塊的二進(jìn)制軟件包來(lái)安裝(推薦)

l  下載源代碼,需要安裝Visuall C++才可以編譯

下面以Centos 5.4 為例使用mod_security2 模塊的二進(jìn)制軟件包來(lái)安裝, 如果要安裝已經(jīng)編譯好的二進(jìn)制軟件包則可至下方的Community-Produced Binary packages區(qū)下載http://www.modsecurity.org/download/index.html  :

(1) 為Centos 5.4配置EPEL repo

如果既想獲得 RHEL AS 的高質(zhì)量、高性能、高可靠性,又需要方便易用(關(guān)鍵是免費(fèi))的軟件包更新功能,那么 Fedora Project 推出的 EPEL(Extra Packages for Enterprise Linux)正好適合你。EPEL(http://fedoraproject.org/wiki/EPEL) 是由 Fedora 社區(qū)打造,為 RHEL 及衍生發(fā)行版如 CentOS、Scientific  Linux 等提供高質(zhì)量軟件包的項(xiàng)目。裝上了 EPEL,就像在 Fedora 上一樣,可以通過(guò) yum install package-name,隨意安裝軟件。安裝 EPEL 非常簡(jiǎn)單:

# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
# yum repolist
Loading "skip-broken" plugin

Loading "fastestmirror" plugin
repo id              repo name                                 status
addons               CentOS-5 - Addons                         enabled
base                 CentOS-5 - Base                           enabled
epel                 Extra Packages for Enterprise Linux 5 -   enabled
extras               CentOS-5 - Extras                         enabled
updates              CentOS-5 - Updates                        enabled

(2)安裝mod_security2模塊

# yum install mod_security

重新啟動(dòng)Apache,利用phpinfo()即可看出Apache是否啟動(dòng)了mod_security模塊,如圖-3 所示:

圖-3

或者使用httpd –M 命令查看加載模塊情況。

#httpd -M

Loaded Modules:

 core_module (static)

 mpm_prefork_module (static)

 http_module (static)

 so_module (static)

 。。。。。。。

 cgi_module (shared)

 version_module (shared)

 security2_module (shared)

。。。。。。。

Syntax OK

#p#

3 了解mod_security 配置文件

/etc/httpd/conf.d/mod_security.conf :mod_security模塊主配置文件
/etc/httpd/modsecurity.d/ - 配置文件目錄。
/etc/httpd/modsecurity.d/modsecurity_crs_10_config.conf – 特別配置文件
/var/log/httpd/modsec_debug.log –調(diào)試文件日志。
/var/log/httpd/modsec_audit.log ModSecurity報(bào)警信息文件。
 查看/etc/httpd/modsecurity.d/modsecurity_crs_10_config.conf 確保下面有一行:

SecRuleEngine On

4 設(shè)置mod_security

上述的步驟只是將Mod Security啟動(dòng)而已,但實(shí)際上并不會(huì)為你的web服務(wù)器做任何的防護(hù)動(dòng)作;因此需要額外設(shè)定才會(huì)讓Mod Security發(fā)揮功能,此部分將會(huì)對(duì)如何設(shè)定Mod Security做一個(gè)說(shuō)明。

下面開(kāi)始介紹Mod Securit的四種主要的設(shè)定指令。

(1)一般的設(shè)定,包括裝規(guī)則引擎(rule engineer)開(kāi)啟等基本指令,常見(jiàn)的設(shè)定如下:

#Basic configuration options

# 打開(kāi)過(guò)濾引擎開(kāi)關(guān)。如果是Off,那么下面這些都不起作用了。

SecRuleEngine On

#配置是否讓ModSecurity默認(rèn)處理或緩沖請(qǐng)求體

SecRequestBodyAccess On

#配置ModSecurity允許的最大請(qǐng)求體的緩存區(qū)大小

SecResponseBodyAccess On

 #配置攔截文件存儲(chǔ)的目錄

SecUploadDir /opt/apache-fronted/tmp/

#配置是否保存事務(wù)處理后的攔截文件

SecUploadKeepFiles Off

#配置ModSecurity允許的最大請(qǐng)求體的緩存區(qū)

SecRequestBodyLimit 131072

#配置ModSecurity使用內(nèi)存保存的最大請(qǐng)求體大小

SecRequestBodyInMemoryLimit 131072

#配置ModSecurity允許的最大請(qǐng)求體的緩存區(qū)大小,除了請(qǐng)求中正在傳送的文件大小。這項(xiàng)指令便于在受到某些使用大尺寸請(qǐng)求進(jìn)行DoS攻擊時(shí)減少影響。提供上傳文件服務(wù)的WEB應(yīng)用必須配置SecRequestBodyLimit為一個(gè)很大的值。由于大文件直接進(jìn)行磁盤(pán)文件存取,不會(huì)加大內(nèi)存的消耗。但是,仍然有可能有人利用超大請(qǐng)求體限制和發(fā)送大量大小的非上傳請(qǐng)求。該指令消除這一漏洞。

SecResponseBodyLimit 524288

(2)設(shè)定Mod Security如何執(zhí)行調(diào)試的日志部分,常見(jiàn)的設(shè)定如下:

#指定ModSecurity調(diào)試日志文件的路徑

SecDebugLog logs/modsec_debug.log

#配置冗長(zhǎng)的調(diào)試日志數(shù)據(jù)

SecDebugLogLevel 0

(3) 設(shè)定Mod Security如何執(zhí)行審計(jì)的日志部分,常見(jiàn)的設(shè)定如下:

#定義主審計(jì)日志文件

SecAuditEngine RelevantOnly

SecAuditLogRelevantStatus ^5

SecAuditLogParts ABIFHZ

SecAuditLogType Serial

SecAuditLog logs/modsec_audit.log

(4) Rules

Mod Security最主要的設(shè)定部分,是一個(gè)以事件為基礎(chǔ)的語(yǔ)言。

語(yǔ)法:SecRule VARIABLES OPERATOR [ACTIONS]

VARIABLES:指定哪些變量要進(jìn)行處理

OPERATOR:要如何處理這些變量取得我們想要的

ACTIONS (optional):當(dāng)達(dá)到上述的處理時(shí),要做什么動(dòng)作

(5)Rule處理的階段

ModSecurity 2.x允許把規(guī)則置于下述五個(gè)階段之一:

請(qǐng)求頭(REQUEST_HEADERS) 階段

這個(gè)階段的規(guī)則會(huì)在apache完成請(qǐng)求頭的讀取后立即被執(zhí)行(post-read-request階段),這時(shí),還沒(méi)有讀取請(qǐng)求體,意味著不是所有的參數(shù)都可用。如果你必須讓規(guī)則盡早運(yùn)行,應(yīng)把規(guī)則放在這個(gè)階段(在apache使用這個(gè)請(qǐng)求做某些事前),在請(qǐng)求體被讀取前做些事情,從而決定是否緩存這個(gè)請(qǐng)求體,或者決定你將希望這個(gè)請(qǐng)求體如何被處理(如是否以XML格式解析或不解析)。

請(qǐng)求體(REQUEST_BODY) 階段

這是通用輸入分析階段,大部分傳統(tǒng)的應(yīng)用規(guī)則不在這兒,這個(gè)階段你肯定能收到參數(shù)(只有讀取過(guò)請(qǐng)求體后),在請(qǐng)求體階段,ModSecurity支持三種編碼類(lèi)型。

l  application/x-www-form-urlencoded - used to transfer form data

l  multipart/form-data - used for file transfers

l  text/xml - used for passing XML data

大部分WEB應(yīng)用還沒(méi)有使用其它的編碼方法。

響應(yīng)頭(RESPONSE_HEADERS) 階段

發(fā)生在響應(yīng)頭被發(fā)送到客戶端之前,如果你想觀察響應(yīng)發(fā)生前就在這兒運(yùn)行,如果你想使用響應(yīng)頭來(lái)決定你是否想緩存響應(yīng)體也行。注意一些響應(yīng)狀態(tài)碼(如404)在請(qǐng)求環(huán)的早期就被apache管理著,我也無(wú)法觸發(fā)預(yù)期。加上apache在后面的勾子上雙增加了一些響應(yīng)頭(如日期、服務(wù)器和連接信息等),這些我們無(wú)法觸發(fā)和審查。在代理配置模式下或使用phase:5(logging)工作的較好。

響應(yīng)體(RESPONSE_BODY) 階段

這是通用輸出分析階段,這里你能運(yùn)行規(guī)則截?cái)囗憫?yīng)體(當(dāng)然提供緩存)。這個(gè)階段你想檢查輸出的HTML信息公布、錯(cuò)誤消息和失敗的驗(yàn)證文字。

記錄(LOGGING) 階段

在日志發(fā)生前運(yùn)行的一個(gè)階段,放在這個(gè)階段的規(guī)則只能影響日志記錄器如何執(zhí)行,這個(gè)階段可以檢測(cè)apache記錄的錯(cuò)誤消息,在這個(gè)階段你不能拒絕或阻斷連接,因?yàn)樘t了,這個(gè)階段也允許檢測(cè)其它的響應(yīng)頭,如那在phase:3或者phase:4階段中不可用的。注意在這個(gè)階段,你應(yīng)當(dāng)小心不要繼承破壞性的動(dòng)作到規(guī)則中,這樣的情況在ModSecurity2.5.0及其以后的版本中被當(dāng)作配置錯(cuò)誤。

圖-4是標(biāo)準(zhǔn)的apache請(qǐng)求流程,5個(gè)ModSecurity處理階段顯示其中。因此,在rule的部分即可指定你要處理的哪一部份進(jìn)行處理。

圖-4

(6)Rules 簡(jiǎn)介

SecRule是ModSecurity主要的指令,用于分析數(shù)據(jù)并根據(jù)結(jié)果執(zhí)行動(dòng)作。通常規(guī)則的格式如下:

SecRule VARIABLES OPERATOR [ACTIONS]

l  VARIABLES 規(guī)則中的變量

第一部分,VARIABLES描述哪個(gè)變量被檢查,舉個(gè)例子,下述規(guī)則會(huì)拒絕URI中含有單詞dirty的事務(wù)。

SecRule ARGS dirty

每條規(guī)則可以指定一個(gè)或多個(gè)變量

SecRule ARGS|REQUEST_HEADERS:User-Agent dirty

XPath格式是選擇操作的第三方支持格式。XPath格式僅能針對(duì)特殊變量XML使用,只有請(qǐng)求體使用XML格式時(shí)可用。

SecRule XML:/xPath/Expression dirty

注意:不是所有的集合支持選擇操作格式類(lèi)型,你需要參考各個(gè)集合的文檔來(lái)決定是否支持。

一些常見(jiàn)的變量:

ARGS、ARGS_NAMES、ARGS_GET、ARGS_GET_NAMES、ARGS_POST、ARGS_POST_NAMES

AUTH_TYPE

REQBODY_PROCESSOR、REQBODY_PROCESSOR_ERROR

FILES、FILES_NAMES、FILE_SIZES

REMOTE_ADDR、REMOTE_HOST、REMOTE_PORT

REQUEST_BODY、REQUEST_COOKIES、REQUEST_COOKIES_NAMES、REQUEST_FILENAME

RESPONSE_BODY

Rule中的變量部分可以一個(gè)以上, 以”|”來(lái)區(qū)隔即可,如果設(shè)定的規(guī)則超過(guò)多行,則可用”\”來(lái)進(jìn)行分隔。

l  OPERATOR

第二部分,OPERATOR描述如何進(jìn)行檢查。OPERATOR是正則表達(dá)式(Regular Expression),但其實(shí)ModSecurity提供不少可用的OPERATOR,利用”@”即可指定要用何種OPERATOR,例如SecRule REQUEST_URI “@rx iii”。

以下是一些范例:

SecRule REMOTE_ADDR "^192\.168\.1\.101$"

REMOTE_ADDR:指定變量對(duì)象為遠(yuǎn)程聯(lián)機(jī)的IP地址

"^192\.168\.1\.101$":針對(duì)上述的變量進(jìn)行比對(duì),如果非192.168.1.101,則符合,可指定要做何種動(dòng)作

SecRule ARGS "@validateUtf8Encoding"

ARGS:指定變數(shù)為http傳遞的參數(shù)

"@validateUtf8Encoding":指定OPERATOR為對(duì)這些參數(shù)進(jìn)行Utf8編碼進(jìn)行檢查

SecRule FILES_TMPNAMES "@inspectFile /path/to/inspect_script.pl"

FILES_TMPNAMES:指定變量為上傳檔案的暫存名稱(chēng)

"@inspectFile /path/to/inspect_script.pl":指定利用inspect_script.pl檔案的語(yǔ)法來(lái)檢查上傳檔案

l  ACTIONS

第三部分可選的,ACTIONS,描述當(dāng)操作進(jìn)行成功的匹配一個(gè)變量時(shí)具體怎么做。指定如果VARIABLE有符合OPERATOR的情況時(shí),要執(zhí)行何種動(dòng)作。ACTIONS主要區(qū)分為五種型態(tài):

(1)Disruptive actions (中斷目前的處理)

deny、drop、redirect、proxy、pause…

(2)Non-disruptive actions (改變狀態(tài))

Append、auditlog、exec…

(3)Flow actions (改變規(guī)則流動(dòng))

allow、chain、pass、skip…

(4)Meta-data actions (包含規(guī)則的metadata)

id、rev、severity、msg、phase、log, nolog、…

(5)Data actions (可放置內(nèi)容給其它action用)

capture、status、t、xmlns…

#p#

5  使用例子

SecRule REQBODY_PROCESSOR_ERROR "!@eq 0“ "phase:2,log,deny,msg:'Failed to parse request body.',severity:2“

說(shuō)明:

REQBODY_PROCESSOR_ERROR:指定針對(duì)request body發(fā)生的進(jìn)程發(fā)生的錯(cuò)誤的代碼

"!@eq 0“:當(dāng)不等于0時(shí),即有錯(cuò)誤發(fā)生時(shí)

處理動(dòng)作 "phase:2,log,deny,msg:'Failed to parse request body.',severity:2“

phase:2:由于對(duì)象為request body,因此指定在phase:2進(jìn)行

log:當(dāng)情況符合(發(fā)生錯(cuò)誤),將錯(cuò)誤記錄

deny:將這個(gè)處理拒絕

msg:'Failed to parse request body':網(wǎng)頁(yè)上并顯示出這樣的錯(cuò)誤訊息

severity:2:將此狀況列為嚴(yán)重程度為2

6 (ModSecurity Core Rules)  核心規(guī)則內(nèi)容

ModSecurity是一個(gè)WEB應(yīng)用防火墻引擎,自身所提供的保護(hù)非常少。為了變得更有用些,ModSecurity必須啟用規(guī)則配置。為了讓用戶能夠充分利用ModSecurity離開(kāi)方塊,Breach Security, Inc.為ModSecurity 2.x提供了一套免費(fèi)的認(rèn)證規(guī)則集。和入侵檢測(cè)及防御系統(tǒng)不一樣,它們依賴(lài)于具體的簽名過(guò)的已知漏洞,而這一核心規(guī)則卻是為從網(wǎng)絡(luò)應(yīng)用中發(fā)現(xiàn)的不知名的漏洞提供一般的保護(hù),通常這些漏洞大多數(shù)情況下都是自定義編碼的。這一核心規(guī)則有了大量的評(píng)論,從而使得這些能夠被用來(lái)做ModSecurity的部署向?qū)?。最新的核心?guī)則可能通過(guò)ModeSecurity的站點(diǎn)找到-http://www.modsecurity.org/projects/rules。

核心規(guī)則內(nèi)容

為了提供一般WEB應(yīng)用保護(hù),核心規(guī)則使用以下技術(shù):

l  HTTP保護(hù) - HTTP協(xié)議正規(guī)劃?rùn)z測(cè),并啟用本地有效策略

l  一般WEB攻擊保護(hù) - 檢測(cè)一般WEB應(yīng)用的安全攻擊

l  自動(dòng)檢測(cè) - 檢測(cè)機(jī)器人、爬蟲(chóng)、掃描器和其它的表面惡意行動(dòng)

l  木馬檢測(cè) - 檢測(cè)木馬程序進(jìn)入

l  過(guò)失隱藏 - 偽裝服務(wù)器發(fā)出錯(cuò)誤消息

7 使用remo管理規(guī)則

Remo是一個(gè)ModSecurity  規(guī)則編輯器。使用Remo 可以更加方便管理規(guī)則。

安裝remo :

#yum install ruby irb libsqlite3-ruby1.8

#wget http://remo.netnea.com/files/remo-0.2.0.tar.gz
#tar xvzf remo-0.2.0.tar.gz
#cd remo-0.2.0
#ruby script/server

使用瀏覽器訪問(wèn)http://localhost:3000/main/index 即可使用remo管理規(guī)則如圖-5。

圖-5

#p#

8 開(kāi)源的ModSecurity與那些商業(yè)產(chǎn)品相比的不同之處

硬件設(shè)備對(duì)比軟件方案:ModSecurity是一個(gè)軟件Web 應(yīng)用防火墻引擎,本質(zhì)上是個(gè)Apache模塊。這意味著它是嵌入在目標(biāo)Web服務(wù)器當(dāng)中的,而并非部署在單獨(dú)的設(shè)備中。然而,我們也可以將Apache配置成一個(gè)反向代理并達(dá)到類(lèi)似的目的,但要知道ModSecurity本身并不會(huì)處理這個(gè)方面。軟件WAF方案的優(yōu)勢(shì):有些情況需要進(jìn)行大規(guī)模的部署,在這種情況下,將 WAF分布在目標(biāo)Web服務(wù)器當(dāng)中要比從垂直方向上增加外部硬件設(shè)備實(shí)際的多。嵌入式部署的另一個(gè)好處是無(wú)需再去處理SSL解碼了,因?yàn)閃eb服務(wù)器會(huì)進(jìn)行預(yù)處理并將數(shù)據(jù)回傳給ModSecurity。軟件WAF方案也并非完美無(wú)缺,其缺點(diǎn)如下:

· 可能無(wú)法將新的軟件加到Web服務(wù)器當(dāng)中。

· 會(huì)使用到本地資源。

 · 反應(yīng)時(shí)間的影響——很多商業(yè)WAF設(shè)備可以在Sniff模式下進(jìn)行非線性部署,這樣就無(wú)法評(píng)估在線性情況下對(duì)HTTP事務(wù)的訪問(wèn)所需的反應(yīng)時(shí)間了。商業(yè)與開(kāi)源產(chǎn)品高級(jí)功能對(duì)比:ModSecurity擁有一個(gè)高級(jí)的規(guī)則語(yǔ)言和Lua API以編寫(xiě)復(fù)雜邏輯。我們既可以創(chuàng)建消極安全規(guī)則(尋找已知的壞輸入),也可以創(chuàng)建積極安全規(guī)則(只允許已知的好輸入)以規(guī)定輸入驗(yàn)證的防護(hù)類(lèi)型。這種方式的主要限制在于ModSecurity無(wú)法自動(dòng)化創(chuàng)建這些規(guī)則,所以必須手工創(chuàng)建。但只在以下兩種場(chǎng)合之一才行:

A.如果Web應(yīng)用不經(jīng)常變化

B.響應(yīng)攻擊掃描報(bào)告,在這種情況下可以使用目標(biāo)的積極安全規(guī)則

如果將ModSecurity作為一個(gè)對(duì)已知問(wèn)題的虛擬修補(bǔ)方案,那么它就不太適合于B了。高端的商業(yè)WAF都具有自動(dòng)化的學(xué)習(xí)和分析機(jī)制以創(chuàng)建這些積極安全規(guī)則,同時(shí)還能夠從客戶端與Web應(yīng)用之間的交互中進(jìn)行學(xué)習(xí)。

#p#

9 參考資料:

Introducing ModSecurity

ModSecurity 2 Rule Language

ModSecurity 2 Deployment

ModSecurity-2.5.7手冊(cè):http://www.modsecurity.org/documentation/modsecurity-apache/2.5.7/html-multipage/index.html

另外你也可以使用專(zhuān)家寫(xiě)的的規(guī)則: http://www.gotroot.com/tiki-index.php?page=mod_security+rules

【51CTO.COM 獨(dú)家特稿,轉(zhuǎn)載請(qǐng)注明出處及譯者!】

 

【編輯推薦】

  1. 拯救網(wǎng)站運(yùn)維經(jīng)理趙明視頻專(zhuān)題頁(yè)
  2. 對(duì)360、QQ醫(yī)生、金山衛(wèi)士的功能精確度測(cè)試
  3. 企業(yè)應(yīng)如何防范內(nèi)存抓取惡意軟件
  4. 微軟IE被曝“邏輯缺陷”漏洞
責(zé)任編輯:王文文 來(lái)源: 51CTO.com
相關(guān)推薦

2011-11-22 11:13:34

2011-03-17 13:38:37

2011-08-19 11:12:04

IIS Web應(yīng)用池應(yīng)用池

2011-06-16 14:49:53

2012-12-30 13:07:20

2013-04-15 09:15:09

BitLocker數(shù)據(jù)安全加密

2010-07-14 15:34:36

2014-10-22 10:44:16

2010-11-23 09:26:57

2010-10-09 14:22:40

2015-02-27 09:42:40

2011-11-21 16:32:19

2023-06-26 14:19:35

2009-10-14 10:16:45

2009-02-28 14:23:02

2010-01-05 10:59:27

服務(wù)外包信息安全

2010-05-12 17:33:44

2022-08-22 15:09:17

網(wǎng)絡(luò)安全物聯(lián)網(wǎng)

2010-08-25 17:25:06

DHCP服務(wù)器

2009-07-04 14:37:12

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)