搭建了一个在线的机器学习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到队列里
为了保证任务的顺序和后期更新迭代,采用消息队列进行传输,中间做了持久化,防止中途挂掉或者其他意外情况。
搭建了一个在线的机器学习webshell检测RESTful API的更多相关文章
- Flask 学习篇一: 搭建Python虚拟环境,安装flask,并设计RESTful API。
前些日子,老师给我看了这本书,于是便开始了Flask的学习 GitHub上的大神,于是我也在GitHub上建了一个Flask的项目. 有兴趣可以看看: https://github.com/Silen ...
- 11. 几点基于Web日志的Webshell检测思路
摘要: Web日志记录了网站被访问的情况,在Web安全的应用中,Web日志常被用来进行攻击事件的回溯和取证.Webshell大多由网页脚本语言编写,常被入侵者用作对网站服务器操作的后门程序,网站被植入 ...
- Compiler Theory(编译原理)、词法/语法/AST/中间代码优化在Webshell检测上的应用
catalog . 引论 . 构建一个编译器的相关科学 . 程序设计语言基础 . 一个简单的语法制导翻译器 . 简单表达式的翻译器(源代码示例) . 词法分析 . 生成中间代码 . 词法分析器的实现 ...
- 搭建基于SornaQube的自动化安全代码检测平台
一.背景和目的 近年来,随着新业务.新技术的快速发展,应用软件安全缺陷层出不穷.虽然一般情况下,开发者基本都会有单元测试.每日构建.功能测试等环节来保证应用的可用性.但在安全缺陷方面,缺乏安全意识.技 ...
- 构建一个在线ASCII视频流服务
构建一个在线ASCII视频流服务 2018-03-26 正常的文章 1685 什么是ASCII视频流服务? 其实这个名字是咱胡乱起的,具体叫啥我也不清楚,但效果如下: 大家可以在自己的命令行里试下, ...
- webshell检测方法归纳
背景 webshell就是以asp.php.jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门.黑客在入侵了一个网站后,通常会将asp或php后门文件与网站服务器WEB ...
- 一个完整的机器学习项目在Python中的演练(一)
大家往往会选择一本数据科学相关书籍或者完成一门在线课程来学习和掌握机器学习.但是,实际情况往往是,学完之后反而并不清楚这些技术怎样才能被用在实际的项目流程中.就像你的脑海中已经有了一块块"拼 ...
- “伏魔”赏金 | WebShell检测之「模拟污点引擎」首次公测,邀你来战!
安全是一个动态的过程,攻防对抗如同在赛博世界里降妖伏魔,其要义是:取彼之长,补己之短.--伏魔引擎的诞生 伏魔引擎挑战赛 注册时间: 2022.01.10 00:00:00 - 2022.01.24 ...
- Cesium入门2 - Cesium环境搭建及第一个示例程序
Cesium入门2 - Cesium环境搭建及第一个示例程序 Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ 验 ...
随机推荐
- WPF关于改变ListBoxItem的颜色的注意事项以及如何找到ListBox中的ItemsPanel
在ListBox中碰到过几个问题,现在把它写出来: 第一个就是在ListBoxItem中当我用触发器IsSelected和IsMouseOver来设置Background和Foreground的时候, ...
- wget 官方jdk
每次下载jdk都是一件头疼的事,特别是在服务器上下载. 之前想的是下载到本地,然后通过ftp工具传上去.汗.. 后来想到用wget 直接下载到服务器上. 在网上找了几个例子,wget 加参数,如:wg ...
- DGA GAN——GAN在安全中的应用
DGA的模型:https://github.com/Yuren-Zhong/DeepDGA CNN.LSTM.双向LSTM 论文可以看https://openreview.net/pdf?id=BJL ...
- 【爬虫】beautiful soup笔记(待填坑)
Beautiful Soup是一个第三方的网页解析的模块.其遵循的接口为Document Tree,将网页解析成为一个树形结构. 其使用步骤如下: 1.创建对象:根据网页的文档字符串 2.搜索节点:名 ...
- canvas - 圆圈内 hover效果
链接
- android开发之eclipse调试debug模式详解
之前我写了一个相关的帖子,但是今天看了一个还是写的比我详细,于是我拿过来和大家分享. 1.在程序中添加一个断点 如果所示:在Eclipse中添加了一个程序断点 在Eclipse中一共有三种添加断 ...
- Java基本数据对应的封装类
Java基本数据对应的封装类 在java中一切都是以类为基础的,并且java对基本的数据类型也进行了封装,如下所示,将介绍几个基本的数据类型及其封装类: 1 Boolean VS boolean pu ...
- 机器学习算法实现解析——libFM之libFM的模型处理部分
本节主要介绍的是libFM源码分析的第三部分--libFM的模型处理. 3.1.libFM中FM模型的定义 libFM模型的定义过程中主要包括模型中参数的设置及其初始化,利用模型对样本进行预测.在li ...
- GoogLeNet 神经网络结构
GoogLeNet是2014年 ILSVRC 冠军模型,top-5 错误率 6.7% ,GoogLeNet做了更大胆的网络上的尝试而不像vgg继承了lenet以及alexnet的一些框架,该模型虽然有 ...
- bzoj 2131 免费的馅饼
Written with StackEdit. Description Input 第一行是用空格隔开的二个正整数,分别给出了舞台的宽度\(W\)(\(1\)到\(10^8\)之间)和馅饼的个数\(n ...