中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么為Nginx加入一個使用深度學習的軟WAF

發布時間:2021-12-13 09:46:23 來源:億速云 閱讀:183 作者:iii 欄目:網絡管理

本篇內容主要講解“怎么為Nginx加入一個使用深度學習的軟WAF”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么為Nginx加入一個使用深度學習的軟WAF”吧!

一、前言

本文介紹如何向Nginx增加了一個使用Tensorflow C庫的軟WAF模塊,模塊主體基于Naxsi。

二、獲取數據及訓練數據

這里,之前有Dalao發表過這樣一篇文章:基于卷積神經網絡的SQL注入檢測。

這是一個開源的項目,但是由于速度的關系,我不打算使用這篇文章的模型,僅僅采用這篇文章使用的數據集。這樣可以節省很多特征工程的時間。

數據訓練并不是這篇文章的重點,這里僅僅說一下訓練結果,這里為了防止CUDA周期對檢測時間的影響,使用CPU跑推理過程。

三、使用Tensorflow C庫做推理

我們的目標是向Nginx加入一個使用Tensorflow C庫的軟WAF模塊。如果從頭開始寫一個軟WAF,想必會占用相當多的時間,并且這個也和這篇文章的主旨偏離。

在Nginx的開源的軟WAF模塊中,Naxsi是一個很受歡迎的模塊。這個模塊使用C作為主開發語言,因此,如果我們想基于這個模塊加一個推理過程,很大可能性需要加入Tensorflow C庫。那么,首先應該做的是,試著使用Tensorflow C庫做單次推理,并做好模塊測試。

Main文件如下:

怎么為Nginx加入一個使用深度學習的軟WAF

編譯完成后,可以跑一下數據,這里為了節省篇幅,僅測試一條

怎么為Nginx加入一個使用深度學習的軟WAF

可見這部分代碼已經可以正常工作了。

四、向Naxsi內加入代碼

首先,回憶下Nginx的一些原理,Nginx在運行時使用fork,創建了一個master進程和若干worker進程,worker進程是實際處理數據的進程。每個模塊的初始化函數,實際上是由初始化的進程來完成的,在這之后,如果配置了daemon,初始化的進程自動退出。

同時,為了便于理解,我們可以把推理流程拆分成這樣幾個部分:

1. 初始化模型

2. 將輸入轉化為Tensorflow識別的格式

3. 運行模型,獲取結果

其中,步驟1僅需運行一次,步驟2,3在每次運行這個模塊時都需要進行。

我對于Nginx理解不深,DaLao輕拍。

由于worker進程是fork產生的,實際上是無法使用初始化進程產生的model,所以,每個worker進程需要自己初始化一次自己的model相關資源。因此,新加入的函數應該類似這樣:

怎么為Nginx加入一個使用深度學習的軟WAF

這里,我僅僅檢測uri內部的注入請求,其它部分的檢測代碼應該是非常相似的,這里就不再重復羅嗦了。

由于tf_model是在第一次調用模塊時才會自動載入,因此,在這個服務器的每個worker進程第一次接受到數據時,可能會稍卡頓一下。

五、編譯運行

將Naxsi和Nginx的代碼同時復制到編譯服務器內部,然后在編譯Nginx時,包含下Naxsi的代碼部分。

怎么為Nginx加入一個使用深度學習的軟WAF

由于Nginx在編譯時是不使用Tensorflow庫的,所以我們需要手動修改下Makefile,在鏈接時自動加入Tensorflow庫,最后編譯。

怎么為Nginx加入一個使用深度學習的軟WAF

然后,需要將Naxsi的配置文件復制到Nginx的conf文件夾內,配置Naxsi,并修改Nginx的配置文件,加入Naxsi模塊。自定義一個403的Page,作為注入發生時的替換界面。然后,運行Nginx。

六、手注測試

這里使用簡單的手注,測試模塊是否正常運行。這里實際是不可能出現注入的情況的,如果有興趣的話,可以加入DVWA等靶機,使用sqlmap等工具實際攻擊。

怎么為Nginx加入一個使用深度學習的軟WAF

到此,相信大家對“怎么為Nginx加入一個使用深度學習的軟WAF”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

庄河市| 离岛区| 余姚市| 巴中市| 贵溪市| 肇源县| 灵寿县| 贡觉县| 海阳市| 定兴县| 洱源县| 漳平市| 台东县| 寿光市| 蓬安县| 时尚| 萍乡市| 乃东县| 白沙| 林甸县| 化德县| 尤溪县| 驻马店市| 龙门县| 昭觉县| 叙永县| 余庆县| 南岸区| 寻乌县| 昌黎县| 洱源县| 池州市| 太仆寺旗| 波密县| 宣恩县| 芜湖市| 湘西| 开平市| 宝坻区| 开江县| 沁水县|