Leonidas 项目使用教程
1. 项目目录结构及介绍
Leonidas 项目采用以下目录结构:
.github/
: 存放与 GitHub 相关的模板文件,如 Issue 模板。aws-pipeline/
: 包含 AWS 云服务的 CI/CD 流水线定义。definitions/
: 定义云攻击者的战术、技术和程序(TTPs)及其相关检测属性的 YAML 文件。docs/
: 项目文档的源文件。generator/
: 用于生成 Sigma 规则和文档的脚本。jupyter/
: 存放 Jupyter 笔记本相关文件。leo/
: 可能包含与 Kubernetes 集成相关的代码和配置。output/
: 输出生成的文档和 Sigma 规则。.gitignore
: 指定 Git 忽略的文件和目录。LICENSE
: 项目使用的 MIT 许可证文件。Makefile
: 编译和构建项目的 Makefile 脚本。README.md
: 项目描述和基本信息。buildspec.yml
: AWS CodeBuild 的构建规范文件。runtime.txt
: 项目运行时依赖的环境和库。sigma-pipeline-kubernetes-to-elk.yml
: Sigma 规则的 Kubernetes 到 ELK 的管道配置。template-definition.yml
: 模板定义文件。
每个目录和文件都有其特定的用途,共同构成了 Leonidas 项目。
2. 项目的启动文件介绍
项目的启动文件主要集中在 generator/
目录下。要安装和运行生成器,需要执行以下步骤:
cd generator
poetry install
安装完成后,可以使用以下命令生成 Sigma 规则:
poetry run ./generator.py sigma
生成的规则会出现在 ./output/sigma
目录中。
3. 项目的配置文件介绍
Leonidas 项目的配置主要通过 YAML 格式的定义文件进行。这些文件位于 definitions/
目录下。以下是一个配置文件的例子:
name: Enumerate Cloudtrails for a Given Region
author: Nick Jones
description: An adversary may attempt to enumerate the configured trails, to identify what actions will be logged and where they will be logged to. In AWS, this may start with a single call to enumerate the trails applicable to the default region.
category: Discovery
mitre_ids:
- T1526
platform: aws
permissions:
- cloudtrail:DescribeTrails
input_arguments: {}
executors:
sh:
code: |
aws cloudtrail describe-trails
leonidas_aws:
implemented: True
clients:
- cloudtrail
detection:
sigma_id: 48653a63-085a-4a3b-88be-9680e9adb449
status: experimental
level: low
sources:
- name: "cloudtrail"
attributes:
eventName: "DescribeTrails"
eventSource: "*.cloudtrail.amazonaws.com"
这个文件定义了一个 AWS 环境下的云攻击动作,包括其名称、描述、类别、MITRE ATT&CK ID、平台、权限、输入参数、执行器、客户端和检测规则。这些定义用于生成 API 端点、Sigma 规则和文档。