zoukankan      html  css  js  c++  java
  • 搭建了一个在线的机器学习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到队列里

      为了保证任务的顺序和后期更新迭代,采用消息队列进行传输,中间做了持久化,防止中途挂掉或者其他意外情况。

  • 相关阅读:
    VS2008编译的程序在某些机器上运行提示“由于应用程序配置不正确,应用程序未能启动”的问题
    C++中的预处理命令 .
    C++ sizeof用法 .
    详解C/C++预处理器 .
    C 风格字符串,C++string类,MFC,CString类的区别。
    VC: GDI绘图基本步骤总结 .
    关于字符数组 和 字符串比较 C++
    they're hiring
    HTTP Proxy Server
    Polipo
  • 原文地址:https://www.cnblogs.com/sevck/p/9176776.html
Copyright © 2011-2022 走看看