搭建了一個在線的機器學習webshell檢測RESTful API
阿新 • • 發佈:2018-06-13
如果 restful mongo 請求 日誌 結構 IV int 執行 例如:
http://127.0.0.1:5000/result/9b4c561a111b25a95666bcd5f062ce00
返回數據結構:
類型: json
字段:
code(int),msg(dict):
當code為1時, 任務正在進行中, msg返回相應信息
當code為2時, 任務尚未開始, msg返回消息,如果常時間未開始可能隊列出現異常,可聯系管理員解決
當code為0時, 任務執行完成, msg返回相應的數據內容
當code為0具體結構如下:
# 地址:
http://118.190.147.89:5000/
# 說明:
簡單的基於機器學習檢測webshell:
目前只支持php的檢測
#使用方法:
1.上傳檢測文件
接口地址: /put
請求方式: POST
接收參數: file
例如:
目前上傳的方式支持2中文件格式[php,zip]
curl http://127.0.0.1:5000/put -F [email protected]
curl http://127.0.0.1:5000/put -F [email protected]
執行命令後將會返回任務id (taskid)
2.獲取檢測結果
接口地址: /result/<taskid>
請求方式: GET
http://127.0.0.1:5000/result/9b4c561a111b25a95666bcd5f062ce00
返回數據結構:
類型: json
字段:
code(int),msg(dict):
當code為1時, 任務正在進行中, msg返回相應信息
當code為2時, 任務尚未開始, msg返回消息,如果常時間未開始可能隊列出現異常,可聯系管理員解決
當code為0時, 任務執行完成, msg返回相應的數據內容
當code為0具體結構如下:
{ code:0, msg: { status: 0, file_hash: string, file_name: string, result: { filename: boolean } } }
# 更新日誌
2018年06月12日 部署添加
# 聯系方式:
sevck#jdsec.com
# 雜項
簡單說說架構吧,使用flask,mongodb,rabbitmq
flask主要做來web:
/index,比較簡單的使用說明
/put, 上傳任務,返回taskid
/result/<taskid>, 任務查詢結果,根據動態路由,taskid,32位,查詢任務結果
mongodb主要用來存取任務結果:
put任務的時候會把這次的任務ID,文件屬性等進行上傳,任務狀態存到mongodb中,result查詢這個taskid的任務結果
check主要是核心的機器學習引擎:
檢測文件是不是webshell
rabbitmq,消息隊列,來一個push到隊列裏
為了保證任務的順序和後期更新叠代,采用消息隊列進行傳輸,中間做了持久化,防止中途掛掉或者其他意外情況。
搭建了一個在線的機器學習webshell檢測RESTful API