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>
:
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
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
# 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 Code IDE,该make vscode-config
命令可以配置 VSCode 以使用此存储库。
make vscode-config
将配置:
panther_analysis_tool test
创建两个调试目标,这将为您提供通过调试器运行的单键推送支持。schemas/
。这会带来有关哪些字段对于 schemas/custom-schema.yml 文件是必需的 IDE 提示。rules/
。这会为 rules/my-rule.yml 文件带来哪些字段是必需的 IDE 提示。user@computer:panther-analysis: make vscode-config
要使用 Docker,您可以运行一些make
提供的命令来运行常见的黑豹分析工作流。从构建容器开始,然后您可以从创建的映像运行您想要的任何命令。如果您想运行不同的命令,请遵循 Makefile 中的模式。
make docker-build
make docker-test
make docker-lint
请注意,如果更新更改,则只需要重建容器Pipfile.lock
,因为在构建映像时会安装依赖项。随后的测试和 lint 命令通过挂载当前文件系统目录在映像中运行,因此它使用的是您的本地文件系统。
如果您使用的是 Windows 机器,则可以使用以下说明执行标准的 panther-analysis 工作流程。
make
推荐使用。如果您想使用make
,请先安装标准的 Windows 打包管理器chocolately。choco install make
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]