搭建了一个在线的机器学习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/ 验 ...
随机推荐
- 地图Legend控件的使用
http://support.esrichina-bj.cn/2011/0318/1150.html
- NLP(三)_统计语言模型
概念 统计语言模型:是描述自然语言内在的规律的数学模型.广泛应用于各种自然语言处理问题,如语音识别.机器翻译.分词.词性标注,等等.简单地说,语言模型就是用来计算一个句子的概率的模型 即P(W1,W2 ...
- python中的mysql操作
一. 数据库在自动化测试中的应用 存测试数据 有的时候大批量的数据,我们需要存到数据库中,在测试的时候才能用到,测试的时候就从数据库中读取出来.这点是非常重要的! 存测试结果 二. python中的数 ...
- Ubuntu 下 安装 网易云音乐
先去网易云音乐官网下载Linux下版本的包. 默认下载到 “下载” 路径下 cd 到下载的包目录 通过使用 sudo dpkg -i netease-cloud-music_1.1.0_am ...
- 【scala】可变参数
Scala允许使用可变的参数列表. 语法 在声明的参数类型后边添加星号(*) 示例 object HelloWorld{ def hello(args:String*): Unit ={ for(ar ...
- Ti CC2540蓝牙模块学习笔记整理
接触CC2540几天,终于有了初步的理解,现将笔记整理如下,只是皮毛,如有错误,还请指正,还有好多没闹明白的地方,以后应该还会继续向里面更新~ 一.整体 1.TI的蓝牙平台支持2种协议栈/应用配置:单 ...
- Ubuntu窗口大小调节方法
Description: 在Vmware Workstation 11上安装了Ubuntu 10.0,画面显示如下所示: Ubuntu系统的屏幕太小.调整方法:调节显示器分辨率即可,下图是将分辨率调节 ...
- [转载]SVN trunk、branch、tag的用法
Subversion有一个很标准的目录结构,是这样的. 比如项目是proj,svn地址为svn://proj/,那么标准的svn布局是 svn://proj/|+-trunk+-branches+-t ...
- L136
Newly formed blood vessels may contribute to eye disease: studyA study of Northwestern University (N ...
- 机器视觉:Convolutional Neural Networks, Receptive Field and Feature Maps
CNN 大概是目前 CV 界最火爆的一款模型了,堪比当年的 SVM.从 2012 年到现在,CNN 已经广泛应用于CV的各个领域,从最初的 classification,到现在的semantic se ...