开源
Panther:由Airbnb开源的自动化解决方案
来源:元经纪     阅读:1310
网站管理员
发布于 2023-06-16 05:16
查看主页

概述

Panther是一个由Airbnb开源的自动化解决方案,主要功能是弥补传统SIEM的不足,能够设置匹配用户实际的安全检测环境和规模,实现集中检测。其每一次检测都是透明的,既确定了检测规则又能减少误报。 Panther能够自动修复错误配置,并且允许用户存储一些不希望被损坏的数据。Panther 一直使用自己的 AWS 云和 AWS CloudFormation 进行部署,能够确保数据由用户本身控制。

Panther 是为大规模安全操作而构建的现代 SIEM。

使用 Panther,团队可以将检测定义为代码,并以编程方式将它们上传到您的 Panther 部署中。此存储库包含由 Panther 团队和社区开发的所有检测。

快速开始

[hidecontent type="logged" desc="隐藏内容:登录后可查看"]

克隆存储库

git clone git@github.com:panther-labs/panther-analysis.git
cd panther-analysis

回购结构

每个文件夹包含以下格式的检测<log/resource type>_<detecton_type>

  • 规则分析日志以检测恶意活动
  • 策略表示所需的资源安全状态以检测安全配置错误
  • 计划规则分析定期执行的SQL 查询的输出

配置您的 Python 环境

make install
pipenv shell # Optional, this will spawn a subshell containing pipenv environment variables. Running pipenv run before commands becomes optional after this step

安装依赖项并运行您的第一个测试!

make install
pipenv run panther_analysis_tool test --path rules/aws_cloudtrail_rules/

运行检测测试

pipenv run panther_analysis_tool test [-h] [--path PATH]
                                [--filter KEY=VALUE [KEY=VALUE ...]
                                [--debug]

使用特定路径进行测试

pipenv run panther_analysis_tool test --path rules/cisco_umbrella_dns_rules

按严重程度测试

pipenv run panther_analysis_tool test --filter Severity=Critical

按日志类型测试

pipenv run panther_analysis_tool test --filter LogTypes=AWS.GuardDuty

创建检测的 zip 文件

pipenv run panther_analysis_tool zip [-h] [--path PATH] [--out OUT]
                               [--filter KEY=VALUE [KEY=VALUE ...]]
                               [--debug]

压缩所有严重严重性检测

pipenv run panther_analysis_tool zip --filter Severity=Critical

将检测上传到您的 Panther 实例

# Note: Set your AWS access keys and region env variables before running the `upload` command

export AWS_REGION=us-east-1
pipenv run panther_analysis_tool upload [-h] [--path PATH] [--out OUT]
                                  [--filter KEY=VALUE [KEY=VALUE ...]]
                                  [--debug]

全局辅助函数在文件夹中定义global_helpers。这是一个硬编码位置,无法更改。但是,您可以在此路径下创建任意数量的文件。只需按指定的 将它们导入到您的检测中GlobalID

此外,检测组可能会链接到多个“报告”,这是一个用于跟踪 CIS、PCI、MITRE ATT&CK 等框架的系统。

使用Visual Studio 代码

如果您习惯使用 Visual Studio Code IDE,该make vscode-config命令可以配置 VSCode 以使用此存储库。

make vscode-config将配置:

  1. 配置 VSCode 以为此存储库使用 python 虚拟环境。
  2. 解析像 global_helpers 这样的本地导入,它允许通过 Intellisense/Pylance 完成代码
  3. panther_analysis_tool test创建两个调试目标,这将为您提供通过调试器运行的单键推送支持。
  4. 为目录中的自定义 panther-analysis 模式安装 JSONSchema 支持schemas/。这会带来有关哪些字段对于 schemas/custom-schema.yml 文件是必需的 IDE 提示。
  5. 在目录中安装 JSONSchema 对 panther-analysis 规则的支持rules/。这会为 rules/my-rule.yml 文件带来哪些字段是必需的 IDE 提示。
user@computer:panther-analysis: make vscode-config

使用 Docker

要使用 Docker,您可以运行一些make提供的命令来运行常见的黑豹分析工作流。从构建容器开始,然后您可以从创建的映像运行您想要的任何命令。如果您想运行不同的命令,请遵循 Makefile 中的模式。

make docker-build
make docker-test
make docker-lint

请注意,如果更新更改,则只需要重建容器Pipfile.lock,因为在构建映像时会安装依赖项。随后的测试和 lint 命令通过挂载当前文件系统目录在映像中运行,因此它使用的是您的本地文件系统。

使用 Windows

如果您使用的是 Windows 机器,则可以使用以下说明执行标准的 panther-analysis 工作流程。

  1. 为 Windows安装docker 桌面。
  2. make推荐使用。如果您想使用make,请先安装标准的 Windows 打包管理器chocolately
  3. 使用 chocolately,安装 make 命令:
choco install make
  1. make现在应该安装并添加到您的 PATH 中。尝试运行 amake docker-build开始。

写入检测

有关编写检测的完整参考,请阅读我们的指南

每个检测都有一个 Python 文件 ( .py) 和一个.yml同名(在同一位置)的元数据文件 ( ),例如:

示例检测规则:okta_brute_force_logins.py

def rule(event):
    return (event.get('outcome', {}).get('result', '') == 'FAILURE' and
            event.get('eventType') == 'user.session.start')


def title(event):
    return 'Suspected brute force Okta logins to account {} due to [{}]'.format(
        event.get('actor', {}).get('alternateId', 'ID_NOT_PRESENT'),
        event.get('outcome', {}).get('reason', 'REASON_NOT_PRESENT')
    )

示例检测元数据:okta_brute_force_logins.yml

AnalysisType: rule
Filename: okta_brute_force_logins.py
RuleID: "Okta.BruteForceLogins"
DisplayName: "Okta Brute Force Logins"
Enabled: true
LogTypes:
  - Okta.SystemLog
Tags:
  - Identity & Access Management
Severity: Medium
...
Threshold: 5
DedupPeriodMinutes: 15
SummaryAttributes:
  - eventType
  - severity
  - displayMessage
  - p_any_ip_addresses
Tests:
  -
    Name: Failed login
    ExpectedResult: true
    Log:
      {
        "eventType": "user.session.start",
        "actor": {
          "id": "00uu1uuuuIlllaaaa356",
          "type": "User",
          "alternateId": "panther_labs@acme.io",
          "displayName": "Run Panther"
        },
        "request": {},
        "outcome": {
          "result": "FAILURE",
          "reason": "VERIFICATION_ERROR"
        }
      }

自定义检测

自定义检测即代码是 Panther 提供的最强大的功能之一。要管理自定义检测,您可以创建此存储库的私有分支。

标记发布后,您可以从此公共回购中提取上游更改。

按照此处的说明学习如何开始使用分叉。

获取更新

当您想从此存储库中提取最新更改时,请从您的私有存储库执行以下步骤:

# add the public repository as a remote
git remote add panther-upstream git@github.com:panther-labs/panther-analysis.git

# Pull in the latest changes
# Note: You may need to use the `--allow-unrelated-histories`
#       flag if you did not maintain the history originally
git pull panther-upstream master

# Push the latest changes up to your forked repo and merge them
git push

执照

此存储库根据 AGPL-3.0许可证获得许可。

[/hidecontent]

 
免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 开源
2024可信云大会成功召开,天翼云携手产业各界共绘AI未来!
把宇航员送太空回不来要撂挑子!波音将出售太空业务自救
国内最大12吋硅片厂商西安奕材IPO获受理!募资49亿元
人工智能:AIPC、手机、人形机器人重磅来袭,人工智能不断加速突破
iOS 18.3 Beta 3上线:苹果禁用通知摘要功能

首页

分类

定制方案

消息

我的