一種nginx-modsecurity安全規(guī)則智能匹配方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及Nginx的模塊開發(fā)領(lǐng)域,具體地說是一種NGINX-MODSE⑶RITY安全規(guī) 則智能匹配方法。
【背景技術(shù)】
[0002] Nginx(〃engine x〃)是一個(gè)高性能的HTTP和反向代理服務(wù)器,也是一個(gè)IMAP/ P0P3/SMTP代理服務(wù)器。因它的穩(wěn)定性、豐富的功能集、示例配置文件和低系統(tǒng)資源的消耗 而聞名。
[0003] Modsecurity是一個(gè)入侵偵測與防護(hù)引擎,主要用于Web應(yīng)用程序。
[0004] 據(jù)統(tǒng)計(jì)超過70%的攻擊發(fā)生在網(wǎng)絡(luò)應(yīng)用層,各級(jí)組織急需要能夠保證他們的系統(tǒng) 安全性的幫助。WAF系統(tǒng)的部署,可以為web應(yīng)用增加一個(gè)外部安全層來檢測或防止攻擊。 針對(duì)一系列的攻擊,Modsecurity為web應(yīng)用提供了強(qiáng)大的保護(hù),并對(duì)HTTP流量進(jìn)行監(jiān)測 和實(shí)時(shí)分析,這些都只是很少或是根本沒有影響系統(tǒng)的基礎(chǔ)設(shè)施。
[0005] Nginx支持Modsecurity模塊是一項(xiàng)比較新的技術(shù),因?yàn)镹ginx是開源的,可以擴(kuò) 展與Modsecurity的模塊。Apache和Modsecurity的結(jié)合目前是比較成熟的,Modsecurity 作為一個(gè)獨(dú)立的模塊與服務(wù)器進(jìn)行通信,通過研宄Nginx的源碼,可以獲取到請(qǐng)求http和 應(yīng)答的http,通過對(duì)請(qǐng)求內(nèi)容的分析可以做擴(kuò)展的處理,不過不能影響Nginx本身的性能, 只有并行擴(kuò)展低能耗的功能。所以在處理階段可以自己開發(fā)的回調(diào)函數(shù)進(jìn)行功能拓展。
[0006] 現(xiàn)有技術(shù)中,Nginx匹配Modsecurity安全規(guī)則是通過創(chuàng)建一種選擇樹然后通過 遍歷整棵樹來匹配,即順序匹配所有的規(guī)則,創(chuàng)建的進(jìn)程對(duì)網(wǎng)絡(luò)上訪問來的數(shù)據(jù)包進(jìn)行拆 包分析,具體動(dòng)作即將數(shù)據(jù)包信息跟安全規(guī)則進(jìn)行比對(duì),這種比對(duì)方式是逐條進(jìn)行的,是從 前往后的順序匹配,這就出現(xiàn)了資源浪費(fèi)的情況,比如在最后部分的規(guī)則被觸發(fā)的情況下, 前面的規(guī)則匹配是無用的,直接影響了 Web應(yīng)用防護(hù)系統(tǒng)WAF的效率。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明的技術(shù)任務(wù)是針對(duì)上述現(xiàn)有技術(shù)的不足,提供一種NGINX-M0DSE⑶RITY安 全規(guī)則智能匹配方法。
[0008] 本發(fā)明的技術(shù)任務(wù)是按以下方式實(shí)現(xiàn)的:一種NGINX-M0DSE⑶RITY安全規(guī)則智能 匹配方法,包括以下步驟:
[0009] (1)將安全規(guī)則按著防御階段、防御范圍進(jìn)行動(dòng)態(tài)分類;
[0010] (2)利用改進(jìn)的粒子群優(yōu)化算法選擇訪問最可能觸發(fā)的規(guī)則分類;
[0011] (3)在步驟(2)得到的規(guī)則分類內(nèi),通過折半查找法對(duì)安全規(guī)則進(jìn)行匹配。
[0012] 傳統(tǒng)的結(jié)構(gòu)模式中,Nginx和Modsecurity直接結(jié)合,但是,為了使上述方法得到 更好的應(yīng)用,可將上述方法與核心模塊modsecurity結(jié)合,單獨(dú)開發(fā)一個(gè)安全規(guī)則智能匹 配模塊,進(jìn)行規(guī)則匹配時(shí),Nginx只需要將數(shù)據(jù)傳給該模塊,并接受該模塊返回的值即可。
[0013] 為了進(jìn)一步提高匹配效率,合理的利用硬件的資源,在進(jìn)行規(guī)則匹配時(shí),可根據(jù)并 發(fā)訪問數(shù)量進(jìn)行內(nèi)核動(dòng)態(tài)綁定和釋放。
[0014] 作為優(yōu)選,進(jìn)行內(nèi)核動(dòng)態(tài)綁定和釋放的實(shí)現(xiàn)方法為:在靜態(tài)訪問分析的基礎(chǔ)上,獲 取訪問的流量狀態(tài)和CPU內(nèi)核的繁忙程度,繞過配置文件的靜態(tài)分配,根據(jù)訪問量和動(dòng)態(tài) 算法指向不同的CPU內(nèi)核。
[0015] 所述動(dòng)態(tài)算法優(yōu)選為輪詢算法或隨機(jī)算法。
[0016] 所述輪詢算法指將訪問輪流的交給不同的內(nèi)核處理;
[0017] 所述隨機(jī)算法指將訪問隨機(jī)交給內(nèi)核處理。
[0018] 所述改進(jìn)的粒子群優(yōu)化算法,是由傳統(tǒng)的PSO算法改進(jìn)得到的模糊搜索算法,之 所以叫模糊搜索,是因?yàn)樵谶\(yùn)行中不用精確的找出具體規(guī)則,而是找到規(guī)則的分類即可。在 原來的PSO算法的基礎(chǔ)上添加了隨機(jī)的粒子和隨機(jī)的閾值,另外修改了權(quán)值,將檢測的包 的特征值、階段、訪問的階段作為目的地,分類的特征值作為粒子群的當(dāng)前值,多個(gè)分類就 是多個(gè)粒子群,經(jīng)過優(yōu)化,在確保正確的情況下,最接近該目的位置的類即為目標(biāo)類。
[0019] 改進(jìn)的粒子群優(yōu)化算法包括以下計(jì)算公式:
[0020] Rand_single_value = trast*Experience+rand_val (v [i]) 公式(I)
[0021] v [] = v []+cl*rand () * (pbest []-present [])+c2*rand () * (gbest []-present []) (a) +Rand_single_value 公式(2)
[0022] present [] = persent []+v [] (b) 公式(3)
[0023] Experience = rand ()* (gbest-v[n])+rand ()* (pbest-Present[n]) 公式 ⑷;
[0024] 所述公式I為改進(jìn)的通過修正值和經(jīng)驗(yàn)值獲取隨機(jī)粒子修正速度公式;
[0025] 所述公式2為改進(jìn)的速度優(yōu)化公式;
[0026] 所述公式3、公式4為位置優(yōu)化公式。
[0027] 上述算法公式中各參數(shù)的含義如下:
[0028]
【主權(quán)項(xiàng)】
1. 一種NGINX-M孤SECURITY安全規(guī)則智能匹配方法,其特征在于包括W下步驟: (1) 將安全規(guī)則按著防御階段、防御范圍進(jìn)行動(dòng)態(tài)分類; (2) 利用改進(jìn)的粒子群優(yōu)化算法選擇訪問最可能觸發(fā)的規(guī)則分類; (3) 在步驟(2)得到的規(guī)則分類內(nèi),通過折半查找法對(duì)安全規(guī)則進(jìn)行匹配。
2. 根據(jù)權(quán)利要求1所述的NGINX-M孤SECURITY安全規(guī)則智能匹配方法,其特征在于,進(jìn) 行規(guī)則匹配時(shí),根據(jù)并發(fā)訪問數(shù)量進(jìn)行內(nèi)核動(dòng)態(tài)綁定和釋放。
3. 根據(jù)權(quán)利要求2所述的NGINX-M孤SECURITY安全規(guī)則智能匹配方法,其特征在于,進(jìn) 行內(nèi)核動(dòng)態(tài)綁定和釋放的實(shí)現(xiàn)方法為;在靜態(tài)訪問分析的基礎(chǔ)上,獲取訪問的流量狀態(tài)和 CPU內(nèi)核的繁忙程度,繞過配置文件的靜態(tài)分配,根據(jù)訪問量和動(dòng)態(tài)算法指向不同的CPU內(nèi) 核。
4. 根據(jù)權(quán)利要求3所述的NGINX-M孤SECURITY安全規(guī)則智能匹配方法,其特征在于,所 述動(dòng)態(tài)算法為輪詢算法或隨機(jī)算法。
5. 根據(jù)權(quán)利要求1或2所述的NGINX-M孤SECURITY安全規(guī)則智能匹配方法,其特征在 于,所述改進(jìn)的粒子群優(yōu)化算法包括W下計(jì)算公式: Rand_single_value = trast*Experience+rand_val (v[i]) 公式(1); V [] = V [] +cl*rand 0 * (pbest [] -present []) +c2*rand 0 * (gbest [] -present []) (a) +Rand_single_value 公式(2); present [] = persent []+v □化) 公式(3); Experience = rand () * (gbest-v [n]) +rand () * (pbest-Present [n]) 公式(4); 所述公式1為改進(jìn)的通過修正值和經(jīng)驗(yàn)值獲取隨機(jī)粒子修正速度公式; 所述公式2為改進(jìn)的速度優(yōu)化公式; 所述公式3、公式4為位置優(yōu)化公式。
【專利摘要】本發(fā)明公開了一種NGINX-MODSECURITY安全規(guī)則智能匹配方法,屬于Nginx的模塊開發(fā)領(lǐng)域。該方法首先按照防御階段、防御范圍等因素將安全規(guī)則分類,然后通過智能學(xué)習(xí)算法在最短的時(shí)間內(nèi),判斷該訪問最接近的那一類規(guī)則,找到分類以后再通過折半查找法匹配分類內(nèi)的小范圍的規(guī)則。與現(xiàn)有技術(shù)相比,本發(fā)明的匹配方法具有匹配效率高,準(zhǔn)確性好等特點(diǎn),具有很好的推廣應(yīng)用價(jià)值。
【IPC分類】H04L29-08, H04L29-06, G06N3-00
【公開號(hào)】CN104618392
【申請(qǐng)?zhí)枴緾N201510087661
【發(fā)明人】路廷文, 劉剛, 戴純興
【申請(qǐng)人】浪潮電子信息產(chǎn)業(yè)股份有限公司
【公開日】2015年5月13日
【申請(qǐng)日】2015年2月25日