Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
grapl — 用于检测与响应的图谱平台 | Kitploit
工具/GitHubGitHub/grapl-security/grapl
侦察威胁源与聚合器取证分析信息收集网络安全数字取证云安全威胁情报入侵检测事件响应日志分析Archived
699783年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
GitHub
grapl-security/grapl

grapl

用于检测与响应的图谱平台

查看仓库网站

Grapl

Grapl 是一个基于图的 SIEM 平台,由事件响应工程师构建并为其服务。

注意

Grapl 已停止作为公司运营。因此,此代码不再积极开发,但将保持归档状态。

详细信息

Grapl 的核心利用图数据结构,确保您可以高效地查询和连接数据,为检测建模复杂的攻击者行为,并轻松深入可疑行为,以全面了解正在进行的入侵。

有关 Grapl 的更深入概述,请阅读此处。

本质上,Grapl 将获取原始日志,将其转换为图,并将这些图合并到主图中。然后,它将编排攻击签名的执行,并提供进行研究的工具。

您可以在 BSidesLV 或 BSides 旧金山 观看我们的一些演讲。

Grapl 原生支持以下节点:

  • 进程
  • 文件
  • 网络

Grapl 原生支持以下输入格式来生成图:

  • Sysmon 日志
  • osquery 日志
  • 通用 JSON 日志格式

Grapl 在设计时就考虑了插件——操作员可以轻松支持新的输入日志格式和新的节点类型。

请记住,Grapl 尚未达到稳定的 1.0 状态,并且是一个快速发展的项目。预计会有一些小错误和破坏性变更!

主要特性

设置

有疑问?尝试在此仓库中开启一个问题,或加入 Grapl Slack 频道(点击邀请)。

主要特性

身份

如果您熟悉 Sysmon 等日志源,其最佳特性之一是进程被赋予身份。Grapl 将相同概念应用于任何支持的日志类型,从伪标识符(如进程 ID)中辨别出规范身份。

Grapl 随后将此身份概念与其图方法相结合,使推理实体及其行为变得容易。此外,此身份特性意味着 Grapl 仅存储日志中的唯一信息,这意味着您的数据存储增长速度低于日志量的线性增长。

这降低了存储成本,并为您提供了查看数据的中心位置,而不是将数据分散在数千条日志中。例如,给定一个进程的规范标识符,您可以通过选择节点查看其所有信息。

分析器 https://grapl.readthedocs.io/en/latest/analyzers/implementing.html

分析器是您的攻击签名。它们是部署到 Grapl 的 S3 存储桶的 Python 模块,在 Grapl 主图发生变化时被编排执行。

分析器不是尝试为攻击行为确定二元的“好”或“坏”值,Grapl 利用风险概念,然后自动关联风险以揭示环境中风险最高的部分。

当主图更新时,分析器实时执行,使用常数时间操作。Grapl 的分析器框架将自动批处理、并行化和优化您的查询。通过利用常数时间和次线性操作,Grapl 确保随着您的组织增长以及数据量随之增长,您仍然可以依赖查询的高效执行。

Grapl 提供了一个分析器库,使您能够使用纯 Python 编写攻击签名。参见此仓库的示例。

以下是如何检测 svchost.exe 的可疑执行的简要示例:

root@kitploit:~
class SuspiciousSvchost(Analyzer):

    def get_queries(self) -> OneOrMany[ProcessQuery]:
        invalid_parents = [
            Not("services.exe"),
            Not("smss.exe"),
            Not("ngentask.exe"),
            Not("userinit.exe"),
            Not("GoogleUpdate.exe"),
            Not("conhost.exe"),
            Not("MpCmdRun.exe"),
        ]

        return (
            ProcessQuery()
            .with_process_name(eq=invalid_parents)
            .with_children(
                ProcessQuery().with_process_name(eq="svchost.exe")
            )
        )

    def on_response(self, response: ProcessView, output: Any):
        output.send(
            ExecutionHit(
                analyzer_name="Suspicious svchost",
                node_view=response,
                risk_score=75,
            )
        )

将分析器保留在代码中意味着您可以:

  • 对警报进行代码审查
  • 编写测试,集成到 CI 中
  • 构建抽象,重用逻辑,并普遍遵循维护软件的最佳实践

查看 Grapl 的分析器部署插件,了解如何将分析器保留在 git 仓库中,并在推送到 master 时自动部署。

事件响应(Engagements)

Grapl 提供了一种称为事件响应 (Engagement) 的调查工具。事件响应是一个隔离的图,代表分析器判定为可疑的子图。

利用 AWS Sagemaker 托管的 Jupyter Notebooks 和 Grapl 提供的 Python 库,您可以扩展任何可疑子图以涵盖攻击的完整范围。当您使用 Jupyter Notebook 扩展攻击范围时,事件响应图将更新,可视化地表示攻击范围。

事件驱动且可扩展

Grapl 被设计为可扩展——没有服务能够满足每个组织的需求。每个原生 Grapl 服务都通过发送和接收事件来工作,这意味着要扩展 Grapl,您只需开始订阅消息。

这使得 Grapl 可以轻松扩展或集成到您现有的服务中。

Grapl 还提供了一个插件系统(目前处于测试版),允许您扩展平台的能力——添加自定义节点和查询功能。

设置

https://grapl.readthedocs.io/en/main/setup/

下载工具