BinaryAlert

无服务器实时及追溯恶意软件检测
1,149
作者Austin Byers, @mimeframe, Daimon Greaves

无服务器实时及追溯恶意软件检测

Build Status Coverage Status Documentation Status

BinaryAlert 是一个开源的无服务器 AWS 管道,任何上传到 S3 存储桶的文件都会立即使用一组可配置的 YARA 规则进行扫描。一旦发现任何匹配,就会触发警报,使事件响应团队能够在威胁蔓延之前快速控制威胁。

功能

  • 使用 Amazon Web Services (AWS) 构建:部署 BinaryAlert 只需要一个 AWS 账户。
  • 广泛的 YARA 支持:添加您自己的 YARA 规则和/或自动从第三方仓库克隆它们。
  • 实时:上传到 BinaryAlert(S3 存储桶)的文件会立即排队等待分析。
  • 无服务器:所有计算都由 Lambda 函数处理。无需管理服务器意味着更强的安全性以及自动扩展!
  • 基础设施即代码:整个基础设施都使用 Terraform 配置文件进行描述,使任何人都能够在几分钟内通过单个命令部署 BinaryAlert。
  • 追溯分析:更新 YARA 规则集后,BinaryAlert 将追溯扫描整个文件库以查找任何新的匹配项。
  • 易于配置:BinaryAlert 配置在一个 Terraform 变量文件中进行管理。
  • 高质量代码:使用 Python3 编写,并进行单元测试和代码风格检查,以确保代码库的整洁和可靠性。
  • 低成本:AWS 账单仅基于分析的文件数量。

架构

BinaryAlert Architecture

  1. 组织收集文件并将其交付到他们的 BinaryAlert S3 存储桶。相关文件可能包括可执行二进制文件、电子邮件附件、文档等。
  2. 上传到 S3 存储桶的每个文件都会立即排队等待分析。
  3. 一个调度 Lambda 函数每分钟运行一次,将文件分组到批次中,并并行调用多达数十个分析器。
  4. 每个分析器使用预编译的 YARA 规则列表扫描其文件。
  5. YARA 匹配结果保存到 DynamoDB,并将警报发送到 SNS 主题。我们使用 StreamAlert 来调度这些警报,但其他组织也可以通过电子邮件或任何其他受支持的 SNS 订阅来接收警报。
  6. 对于追溯分析,一个批处理 Lambda 函数将整个 S3 存储桶排队以进行重新分析。
  7. 如果任何 BinaryAlert 组件的行为异常,可配置的 CloudWatch 警报将触发。这将通知与用于 YARA 匹配警报的主题不同的 SNS 主题。