搭建了一個在線的機器學習webshell檢測RESTful API


# 地址:

http://118.190.147.89:5001/

如果不能訪問,聯系sevck#jdsec.com

# 說明:

簡單的基於機器學習檢測webshell:
目前只支持php的檢測

#使用方法:
 1.上傳檢測文件
 接口地址: /put
 請求方式: POST
 接收參數: file
 例如:
   目前上傳的方式支持2中文件格式[php,zip]
   curl http://127.0.0.1:5001/put -F file=@test.php
   curl http://127.0.0.1:5001/put -F file=@aaa.zip
   執行命令后將會返回任務id (taskid)

 2.獲取檢測結果
  接口地址: /result/<taskid>
  請求方式: GET
  例如:
   http://127.0.0.1:5001/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日 部署添加

2018年06月26日 優化性能,內存占用

# 聯系方式:
 sevck#jdsec.com

# 雜項

簡單說說架構吧,使用flask,mongodb,rabbitmq

falsk主要做來web:

  /index,比較簡單的使用說明

  /put, 上傳任務,返回taskid

  /result/<taskid>, 任務查詢結果,根據動態路由,taskid,32位,查詢任務結果

mongodb主要用來存取任務結果:

  put任務的時候會把這次的任務ID,文件屬性等進行上傳,任務狀態存到mongodb中,result查詢這個taskid的任務結果

check主要是核心的機器學習引擎:

     檢測文件是不是webshell

rabbitmq,消息隊列,來一個push到隊列里

  為了保證任務的順序和后期更新迭代,采用消息隊列進行傳輸,中間做了持久化,防止中途掛掉或者其他意外情況。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM