Saferwall:下一代开源恶意软件分析平台
时间:2022-07-24
本文章向大家介绍Saferwall:下一代开源恶意软件分析平台,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Saferwall
Saferwall是一款开源的恶意软件分析平台,该工具旨在给安全社区提供以下内容:
- 为恶意软件研究人员提供共享样本的协作平台。
- 帮助研究人员自动化生成恶意软件分析报告。
- 寻找新的恶意软件的搜索平台。
- 放行前对恶意软件质量和有效性提供保证。
功能介绍
静态分析
- 加密哈希,封装器识别;
- 字符串提取;
- 可执行文件分析器
支持主流反病毒厂商的AV扫描工具:
工具安装
Saferwall利用了Kubernetes来实现其高可用性、可扩展性以及背后巨大的生态系统。你可以选择将Saferwall部署到云端并在Kubernetes中运行,你也可以将其部署到自己的服务器中进行托管。
为了方便广大用户部署、启动和运行生产级的Kubernetes集群,我们还使用了kops。该工具能够自动提供一个托管在AWS、GCE、DigitalOcean或OpenStack上的Kubernetes集群,或者也可以直接在裸机上运行。目前,AWS是Saferwall官方支持的平台。
工具架构/组件
- Golang
- 后端: Echo
- 前端: VueJS + Bulma
- 消息: NSQ
- 数据库: Couchbase
- 日志: FileBeat + ElasticSearch + Kibanna
- Minio: 对象存储
- 部署: Helm+ Kubernetes
当前架构/工作流
下面给出的是文件扫描期间发生的基本工作流:
- 前端通过restapi与后端通信。
- 后端将样本上传到对象存储。
- 后端将消息推入扫描队列。
- 用户获取文件并将其复制到nfs共享,避免在每个容器上提取样本。
- 通过gRPC调用异步扫描服务(如反病毒扫描器)并等待结果。
工具构建及部署
首先,使用下列命令将该项目的源码克隆至本地:
git clone https://github.com/saferwall/saferwall
使用一个Debian Linux系统,建议Ubuntu 18.04。并确保已正确安装了build-essential:
sudo apt-get install build-essential curl
将example.env改为.env,这个文件将存储项目的配置信息。
构建AV镜像
编辑.env文件,并根据AV产品填写敏感凭据。
Eset:将许可证拷贝到./build/data/ERA-Endpoint.lic和.env中:
export ESET_USER = EAV-KEYHERE
export ESET_PWD = passwordhere
Avast:将许可证拷贝到./build/data/license.avastlic中;
Kaspersky:将许可证拷贝到./build/data/kaspersky.license.key中;
运行下列命令,构建并将Ducker Hub推送至所有AV:
make multiav-build
运行下列命令创建镜像,并构建一个gRPC守护进程来监听扫描任务:
make multiav-build-go
日志记录可以在Elasticsearch上看到:
项目地址
Saferwall:【https://github.com/saferwall/saferwall】
- 微信年度最重磅发布!小游戏突然上线,游戏行业会变天么?
- Table View滑动时报错
- knockout源码分析之执行过程
- knockout源码分析之订阅
- bootstrap源码分析之Carousel
- BOOtstrap源码分析之 tooltip、popover
- 两个链表的第一个公共结点
- mac下Android开发环境搭建
- 三位数的排列组合
- Undefined symbols for architecture i386:"_OBJC_CLASS_$_xx", referenced from: 解决方法
- Xcode5.0使用iOS6.1SDK及模拟器
- 内存泄露
- 深入理解及应用Position
- 数字营销人的年终奖该如何翻倍?这里有5个秘籍
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- JAVA JDBC Template的使用
- 《sql必知必会》——读书笔记(2)
- 2.通过QOpenGLWidget绘制三角形
- 树莓派基础实验16:霍尔传感器实验
- 1.opengl绘制三角形
- dubbo本地直连调试注意点
- Tomcat的使用及服务器的一些基础知识
- fastJson 之JSONObject.toJavaObject()方法不能解析嵌套自定义list对象
- 文件包含漏洞学习总结(结尾有实例)
- 树莓派基础实验17:温度传感器实验
- Java Servlet详解(体系结构+注解配置+生命周期)
- RabbitMq如何确保消息不丢失
- 《sql必知必会》——读书笔记(4)
- AkShare-债券数据-国债期货可交割券相关指标
- Linux From Scratch