来源:https://docs.securityonion.net/en/latest/playbook.html#creating-a-new-play
https://github.com/demisto/content/tree/master/Packs/CVE_2022_30190/Playbooks
一、概述
Playbook是一个可以安装在Manager节点上的web应用程序。《Playbook》允许你创建一个《Detection Playbook》,它本身包含多个独立剧本。这些剧本是完全独立的,并描述了一个特定的侦查策略的不同方面。
剧本的主要组成部分是:
(1)目标和背景——我们到底想要发现什么,为什么?
(2)当看到结果时,验证和/或补救所需的后续行动是什么?
(3)实现Play目标所需的实际查询。在我们的例子中,是ElastAlert / Elasticsearch配置。
从一个Play(低,中,高,严重程度)的任何结果都可以在Dashboards, Hunt或Kibana中查看。高或严重的严重程度结果从play将产生一个警报在安全洋葱控制台警报界面。
Playbook的最后一个要素是自动化。一旦一个Play被激活,就会发生以下情况:
(1)所需的ElastAlert配置被投入生产
(2)ATT&CK导航层被更新以反映当前的覆盖范围
二、开始
你可以通过登录安全洋葱控制台(SOC)并点击Playbook链接来访问Playbook。你会在https://github.com/Neo23x0/sigma/tree/master/rules上看到超过500个已经创建的play,这些play都是从Sigma社区的规则存储库中导入的。
三、创作新剧本
剧本基于sigma规则-来自https://github.com/Neo23x0/sigma:
Sigma是一种通用的、开放的签名格式,允许您以一种直接的方式描述相关的日志事件。规则格式非常灵活,易于编写,适用于任何类型的日志文件。这个项目的主要目的是提供一个结构化的形式,研究人员或分析人员可以描述他们曾经开发的检测方法,并使其与他人共享。
要创建一个新play,点击Sigma Editor菜单链接。加载Sigma规则示例或粘贴到Sigma字段并单击转换。这将把Sigma转换成一个查询,您可以在Dashboards、Hunt或Kibana中使用,以确认它将适用于您的目标日志。
参考日志源和字段名称,了解在Sigma等中使用的字段名称的详细信息。
一旦你准备好创建play,点击从Sigma创建play。如果Play创建成功,你将被重定向到新创建的Play -它的状态为Draft。
剧本的生命周期如下:
草案(初始状态) Draft (Initial state)
活动(生产)Active (In Production)
不活跃(暂时退出生产) Inactive (Temporarily moved out of production)
存档(剧本已被取代/淘汰) Archived (Play has been superseded/retired)
“Play”也可以具有“Disabled”的状态,这意味着它在某种程度上被破坏了,不应该变成“Active”。
三、编辑剧本
点击Edit编辑Play。只有少数几个字段你可以修改——要对其他字段(标题、描述等)进行编辑,你需要编辑Sigma字段中的Sigma。请记住,Sigma是YAML格式的,所以如果您有主要的编辑,建议检查它和/或通过Sigma编辑器转换它,以确认它的格式是正确的。确保在检测/转换之前删除前置和后置的playbook特定语法高亮显示-
{{collapse(ViewSigma)<pre><codeclass="yaml">and</code></pre>}}。
一旦您保存您的更改,Playbook将更新其余的字段,以匹配您的编辑,包括重新生成elasticalert规则,如果需要。
四、将一个剧本投入生产
当你准备开始提醒你的剧本时,将剧本的状态更改为Active。这将创建ElastAlert配置。对Playbook中的Play所做的任何编辑都会自动更新ElastAlert配置。
Elastalert规则位于/opt/so/rules/elastalert/playbook/<PlayID>.yaml.Playbook创建的Elastalert规则将每3分钟运行一次,缓冲时间为15分钟。
性能测试仍在进行中。我们建议避免恶意Nishang PowerShell commandlet播放,因为它可能会导致严重的性能问题。你可能也想避开那些处于实验状态的剧本。
Elastalert的使用方法:
https://blog.csdn.net/weixin_40228200/article/details/124081739
https://blog.csdn.net/weixin_40228200/article/details/124081739
五、查看Playbook警报
当你的剧本结果被发现时(即警报),它们可以在警报中查看。
六、调优Playbook
如果你有一个Play正在产生假阳性,那么你将需要编辑Play的Sigma,以考虑到你的本地配置正在产生这些假阳性。
例如,假设您看到大量的非交互式PowerShell警报。深入研究警报,它似乎是CompatTelRunner.exe的合法执行。这可以通过以下操作来排除:
1、从剧本中复制 Sigma (可以在 Sigma 区域下找到),并将其粘贴到创建新剧本的左侧窗格中。
2、单击Convert并确保转换正确。
3、在过滤器filter子句下添加CompatTelRunner.exe,并再次单击Convert以确保它能够工作。
4、复制并粘贴编辑好的 Sigma到 Sigma字段下的Play(把它放在<code class="yaml">和</code></pre>标签之间)
5、最后,单击Submit, Playbook将完成剩下的工作。
您可以在Play的Sigma字段中编辑Sigma,但它不是一个YAML编辑器,有时使用YAML编辑器更容易编辑。
请注意,如果从Sigma规则回购更新Sigma规则,您的更改将被覆盖。我们正在努力解决这个问题,以及一种使编辑和调整更容易一点的方法。
最后,如果您看到的是合法的执行,而不是您的环境所特有的,您可以考虑向Sigma回购(https://github.com/SigmaHQ/sigma/tree/master/rules)中的规则提交一份PR。
七、用户帐户
默认情况下,一旦用户通过SOC认证,他们就可以访问Playbook,而无需再次登录应用程序本身。此匿名访问具有分析师角色的权限。
如果你需要管理员访问Playbook,你可以通过sudo salt-call pillar.get密钥找到随机密码,以管理员身份登录。然而,Playbook用户界面是为具有分析师角色的用户设计的。使用管理帐户将是非常混乱的新手对Playbook,因为许多领域将显示/可编辑,它将看起来更加混乱。
八、禁用匿名访问和创建用户帐户
如果您需要您的团队使用个人用户帐户登录,您可以禁用匿名访问,并创建新的用户帐户,并将他们添加到分析师组,这将赋予他们所有相关的权限。
为此,请使用具有管理权限的用户登录,并导航到“管理- >用户- >新用户”。填写相关字段。默认情况下,Playbook没有连接到电子邮件服务器,因此通过电子邮件重置密码将无法工作。创建新用户之后,回到Administration - > Users并选择新创建的用户。将有一个Groups选项卡,您可以从中将用户添加到Analyst组。这将为用户提供所需的所有权限。
若要禁用匿名访问,请使用具有管理访问权限的用户登录,并导航到“管理- >项目- >检测剧本”。取消选择“公共”复选框。
九、杂项注释
so-playbook-sync每5分钟运行一次。这个脚本查询Playbook中所有的活跃剧本,然后检查以确保每个剧本都有一个ElastAlert配置。对于不活跃的剧本也采用同样的方法。
十、日志源&字段名称
Sigma支持目前扩展到Security Onion的以下日志源:
1、osquery
2、网络(通过Zeek日志)
3、Windows Eventlogs和Sysmon(附带osquery或winglobeat)
预加载的play依赖于winlogbeat或osquery附带的Sysmon和Windows事件日志。
为了获得最佳兼容性,请使用以下sigma分类法:
进程的创建:https://github.com/Neo23x0/sigma/wiki/Taxonomy # process-creation-events
网络:https://github.com/Neo23x0/sigma/wiki/Taxonomy#specific
当前Security Onion Sigmac字段映射可以在这里找到:https://github.com/Security-Onion-Solutions/securityonion-image/blob/master/so-soctopus/so-soctopus/playbook/securityonion-baseline.yml
创建剧本 编辑剧本 管理剧本 事件案例管理 事件管理
网友评论