搭建了一个在线的机器学习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/ 验 ...
随机推荐
- SpringMVC4整合CXF发布WebService
SpringMVC4整合CXF发布WebService版本:SpringMVC 4.1.6,CXF 3.1.0项目管理:apache-maven-3.3.3 pom.xml <project x ...
- saltstack笔记
Saltstack类似于puppet salt的核心功能使用命令 发送到远程系统是并行的而不是串行的使用安全加密的协议使用最小最快的网络载荷提供简单的编程接口 Python编写,相当轻量级通讯层采用z ...
- 依赖注入和Guice理解
理解依赖注入,这篇文章写得非常好,结合spring的依赖注入分析的. http://blog.csdn.net/taijianyu/article/details/2338311/ 大体的意思是: 有 ...
- 【Java】抽象类和接口
一.抽象类和抽象方法 1.什么是抽象类 普通类是一个完善的功能类,可以直接产生实例化对象,并且在普通类中可以包含有构造方法.普通方法.static方法.常量和变量等内容. 但是普通类中不能有抽象方法, ...
- CSS: transitions
CSS Transitions CSS transitions allows you to change property values smoothly (from one value to ano ...
- CSS: The resize Property
用户手动调节输入框样式: <!DOCTYPE html> <html> <head> <style> div { border: 2px solid; ...
- vim技巧记录
安装插件 有个很好的同志已经做了一个比较全的插件集,下载就可以用: mv ~/.vimrc ~/.vimrcbak mv ~/.vim ~/.vimbak git clone https://gith ...
- NTP服务器和国内可用的NTP地址
NTP 是什么? NTP 是网络时间协议(Network Time Protocol),它用来同步网络设备[如计算机.手机]的时间的协议. NTP 实现什么目的? 目的很简单,就是为了提供准确 ...
- InpOut32 CSharpExample.cs hacking
/************************************************************************************ * InpOut32 CSh ...
- [转载] ffmpeg 基本数据结构和对象: AVPacket、AVPicture、AVFrame
一.AVPacket /** * AVPacket 作为解码器的输入 或 编码器的输出. * 当作为解码器的输入时,它由demuxer生成,然后传递给解码器 * 当作为编码器的输出时,由编码器生成,然 ...