使用Security Lake & Jupyter Notebooks实现事件响应
在本文中,我们将Jupyter Notebooks作为事件响应的工具,使用预定义的notebook文件用于一系列的响应动作,包括识别,控制,消除和从事件中恢复。这些notebooks大致类似于事件响应脚本。遵循和参考NIST Special Publication 800-61。
客户告诉我们,他们在制定计划和操作手册以及测试其有效性方面非常吃力。我们在本文中提出的解决方案专门帮助客户应对他们所面临的这一挑战中的 "playbook "部分,为他们提供了一套与我们所看到的影响客户运营的 AWS 中特定事件类型相对应的 "playbook"。
具体来说,我们将介绍 Jupyter Notebooks 的基础知识:它们是什么、如何使用它们、如何使用它们来自动化事件响应运行本,以及如何设置理想的 AWS 环境来创建和运行用于事件响应的 Jupyter Notebooks。
术语
为了方便大家在同一个理解层面上,需要先定义本文中常用的术语。
Playbook 为分析人员执行任务提供框架式的开放性指令。可以认为它们是非确定性的,因为多次执行playbook可能会产生不同的结果。例如识别日志系统中潜在的 PHI 泄漏。 Runbook 执行特定任务的标准操作程序。将其视为确定性任务,即多次执行的最终状态都是相同的。举例说明:从应用程序日志文件中删除 PHI。 Notebook Jupyter 的一个组件,用于封装文档、代码和可视化。Notebook可以描述事件响应的playbook,也可以用于开发自动执行特定任务的runbook。在事件响应的背景下,大多数Notebook都属于playbook类别。
什么是Jupyter Notebooks?
虽然机器学习专家经常使用 Jupyter Notebook,但它实际上是一个用户界面,可以让您按顺序执行 python 代码并编写markdown文档。这使它成为编写 IT runbooks的绝佳平台,因为许多 IT runbooks很难实现端到端的自动化。此外,它还允许分析师自动执行runbooks的各个部分,并专注于分析数据。
在事件响应中使用 Jupyter Notebook有很多好处,包括:
标准化分析和响应:在事件响应中,经常会听到 "只有他/她知道怎么做 "或 "这全是我的想法,问我就行 "这样的话。使用 Jupyter 可以更轻松地记录、规范和共享如何执行分析和响应事件。
Jupyter 可以轻松处理大量数据:机器学习和数据科学专业人员都在使用 Jupyter,因此它可以处理大量数据。对于事件响应,这意味着您可以根据需要处理和分析数十亿条日志记录。
任何人都可以创建Playbooks:只要会写 Markdown,就能创建Playbooks!它就像维基页面一样简单易用。虽然许多数据科学家使用 Jupyter 分析数据,但Playbooks并不需要数据科学知识。
Jupyter Notebooks将文档和代码直观地结合在一起:Notebooks由 Markdown 单元和 python 单元组成。python 单元输出代码结果,并创建图形、图表、按钮和其他可视化内容,以简化用户的分析。
在事件响应中,100% 自动运行的手册是不切实际的:大多数事件响应操作手册都要求用户在解读数据的基础上做出判断。runbooks可以自动执行数据收集步骤,让用户专注于解释数据。
Jupyter Notebooks非常直观:基于单元格的代码编写方法非常直观、高效。您将以前所未有的速度编写 AWS SDK 代码。使用 Jupyter Notebooks不需要非常熟练的程序员。
支持 CLI:某些 AWS CLI 命令(如 aws s3 sync)比 Boto3 SDK 更容易使用,只要在命令行前加上 bang(!),命令就会在 unix shell 中运行。
Notebooks可提交至源代码控制:将Notebooks存储在 Git 中,以跟踪更改、批准拉取请求并集中存储运行手册。
Notebooks可导出为 HTML:Notebooks的结果可保存为 HTML 格式,从而保留每个runbook的执行历史。用户可以轻松地将手动任务的结果截图,从而简化合规性和跟踪工作。
Notebooks可导出到 Python:如果Notebooks是完全自动化的,不需要人工干预,则可将代码执行为 python 脚本,并在 lambda 函数或 SSM 自动化中运行。
Jupyter Notebooks可实现可预测的结果:通过将繁琐的任务自动化,用户可以专注于数据分析,从而获得更多可重复、可预测的结果。
Jupyter 是可扩展的:如果 Jupyter 不支持您所需的功能,那么它的生态系统中提供的插件可以支持大多数用例。如果这还不够,你还可以创建自己的插件!
运行 Jupyter Notebooks
有很多方法可以部署和运行Jupyter Notebooks,本文主要介绍如何使用Amazon SageMaker的Jupyter Notebook。
按照上面文档中的操作指引创建好Amazon SageMaker的Jupyter Notebook后,选择“打开Jupyter“,在右上角新建一个conda_python3文件。
你可以从这个github中查看更多的例子:https://github.com/mikejgillespie/aws-incident-response-playbooks/tree/master/jupyter/runbooks
开始创建你的第一个playbook:
Markdown描述的部分可以提供额外的上下文信息,python命令执行的部分可以直接调试脚本的输出结果,拿到信息,完成事件调查和响应修复的工作。
AWS Resources
[Blogs] Generate machine learning insights for Amazon Security Lake data using Amazon SageMaker
最后更新于