教程篇(5.0) 09. RESTful API ❀ FortiEDR ❀ Fortinet 网络安全专家 NSE 5
Posted 飞塔老梅子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了教程篇(5.0) 09. RESTful API ❀ FortiEDR ❀ Fortinet 网络安全专家 NSE 5相关的知识,希望对你有一定的参考价值。
在本课中,你将学习如何使用FortiEDR RESTful API。
通过展示RESTful API方面的能力,你将能够使用RESTful API与FortiEDR管理控制台进行交互。
什么是API?你可以轻松地将FortiEDR的功能集成到组织的现有软件中。FortiEDR中央管理器支持基于REST http的API,用于访问安全和通信控制数据,以及设备和软件配置和操作。本质上,这是一种通过编程复制管理控制台功能的方法。你可以管理设备和软件配置、分析事件和修复设备,所有这些都不需要使用管理控制台。
RESTful API是如何工作的?它是基于HTTP的REST。它使用SSL加密,并以JSON格式返回协议信息。可以使用基于令牌的身份验证,也可以使用基于密码的身份验证。要使用基于密码的身份验证,你需要确保为用户分配了Admin和Rest API角色。你可以在USERS下的管理控制台的ADMINISTRATION选项卡中执行此操作。该API使用几个不同的方法—get来读取数据,POST或PUT来更新。它还有DELETE和其他一些命令。
报告的最常见问题之一是,当新用户第一次尝试使用API时,会出现未经授权的消息。原因是需要重置密码。新用户首次登录管理控制台时,会被强制修改密码。因为不能用API重置密码,所以会得到一条错误消息。解决方法很简单。要解决此问题,请在管理控制台中的ADMINISTRATION选项卡中单击USERS。在列表中找到用户并单击重置密码。打开“重置密码”对话框。清除“下次登录时要求更改密码”复选框,然后输入密码并单击“重置”。用户现在应该能够通过API登录。或者,你可以要求用户在使用API调用之前登录到管理控制台并重置他们的密码。
有两种方法可以访问API。第一种方法是使用CLI应用程序,比如Curl。上图展示了一个典型的Curl请求。如果为中央管理器使用自签名证书(这是默认设置),则使用-k绕过证书验证。输入-H,然后输入授权类型和凭证,然后输入URL参数。示例命令以JSON格式返回一个列表,其中包含组织名称、已分配的席位、正在使用的席位、过期日期等。
第二种方法是使用像Postman或Insomania这样的GUI应用程序。你将看到与刚才Curl格式的请求相同,但格式化为Postman格式。首先,选择GET方法,然后输入URL参数:https://<FortiEDRHOST>/management-rest/organizations/list-organizations。在上图的图像中,你可以看到应用程序本身中的一个命令。你可以在左上角看到GET,然后是URL参数—在本例中,你要求获得多租户环境中所有组织的列表。在它下面,可以看到Authorization选项卡。在“TYPE”下拉列表中选择“Basic Auth”,输入用户名和密码。这节课你会学到更多关于身份验证的知识。在底部,你可以看到从该请求返回的结果,一个列出所有组织的JSON文件。你可以看到组织名称、分配的席位、正在使用的席位、过期日期等。
上图展示了一些有用的API命令。你在FortiEDR RESTful API手册可以得到一个完整的列表和详细的说明。
为什么使用Postman?这是与API交互的一种非常简单的方式,它是一个干净和简单的界面,它保存API请求历史,因此你可以有一个以前所做的工作列表,你可以重用一个请求,从而不必再次输入所有信息。
以下是一些使用postman的技巧。首先,确保在屏幕左侧选择了正确的请求方法。在上图显示的示例中,你可以看到一个PUT请求。其次是URL参数。在本课后面,你会学到更多关于body参数的知识。你也可以参考FortiEDR RESTful API指南来获得完整的选项列表。有些请求类型需要正文参数。在这种情况下,选择Body选项卡,选择raw,然后从屏幕右侧的下拉列表中选择JSON (application/ JSON)格式。然后你可以在文本字段中输入你的body参数。上图显示的示例更改了事件51516的状态。
看一下使用API的示例工作流。在这个场景中,你将在FortiEDR环境中调查威胁。首先,你需要一个事件列表,将其分类为恶意或可疑的,并具有阻止或模拟阻止的操作。
此时,你检索的是信息,而不是更改任何东西,因此你使用的是GET方法。然后,输入URL参数。你已经看到了一些示例,但这次你要查找的是事件列表,因此从https开始,然后输入FortiEDR主机。你可以使用IP地址或名称(例如acme)。fortiedr.com。在主机地址之后,总是输入management-rest,然后是类别、事件,然后是call——在本例中是list-事件。然后添加搜索条件。通过在参数之间使用&号,可以一次搜索多个搜索参数。在本例中,你要搜索分类和操作。还可以为每个条件输入多个值,用逗号分隔。在本例中,我们寻找两种可能的分类和两种可能的操作。
此搜索返回JSON格式的列表。每个事件都有相当多的信息—事件ID、流程、路径、日期、状态、违反了哪些规则,等等。为了继续示例工作流,假设我们正在调查这上图显示的事件。注意事件ID, 46426。接下来,你将在新请求中使用该ID。
现在,获取刚刚复制的事件ID的原始事件详细信息。你将发送另一个GET请求,这次请求获取事件ID的原始数据项,然后添加fulldatarequed =true。
同样,你将收到一个JSON列表,这次显示关于原始项的详细信息。使用此信息检索可执行文件。为此,你将需要原始的Eventld、MainProcessld和Application路径。将这些值复制到一个单独的文本文件中,以便稍后使用它们来检索恶意软件的样本。有几件事需要记住。首先,这里的Eventld字段与你在上一张图片中复制的事件ID不同。这是原始事件ID,这是检索文件所需要的。必须将应用程序路径转换为URL编码格式。
现在使用刚刚获得的信息,使用GET命令检索可执行文件。然后输入URL参数。在本例中,你要查找存储在取证中的信息,因此将参数更改为取证,然后是get-event-file命令。然后使用刚刚复制的信息—原始事件ID、进程ID和应用程序路径—告诉系统你正在查找的确切文件。
如果你单击Send,你的结果将类似于你在屏幕的右上角所看到的。它看起来像胡言乱语,但它实际上是一个密码保护的压缩文件,包含你请求的文件。要获得可用格式的文件,可以使用Send和Download。使用“发送”下拉菜单选择“发送”和“下载”。现在你可以在本地保存zip文件。要提取可执行文件,输入密码enCrypted,大写C。
接下来,从用户的设备中删除恶意可执行文件。你可以使用PUT请求来完成此操作。这是一个取证功能,因此进入取证/补救设备。然后,使用这里看到的格式指定设备名称、要删除的可执行文件的名称和路径。该文件应该从设备中消失,正如上图的例子所示。
在检索到可执行文件之后,通过在安全的沙盒环境中测试来评估它。例如,假设你验证该文件是恶意的。你可能希望将受影响的收集器放入高安全性收集器组中,以遏制感染,直到你完全修复设备为止。为此,发送一个PUT命令。你正在发送与库存相关的信息,所以输入库存/移动收集器。然后输入采集器名称和目标组——在本例中为高安全采集器组。你可以在管理控制台中对结果进行验证。上图中的示例向你展示了你成功地将cwin7-32从默认收集器组移动到高安全性收集器组。
在修复设备或创建异常之后,将该事件标记为Handled,以便其他管理控制台用户知道你已经处理了它。你也可以将其标记为Read。要更改事件状态,请发送一个PUT请求。你需要修改事件类别中的事件。然后,必须指定事件ID。这一次,你必须完成body字段。将read设置为true,将handle设置为false,表示不再处理该事件。添加注释解释如何处理事件和其他相关信息总是一个好主意。你可以在管理控制台的EVENT VIEWER选项卡中验证你的更改。在上图的图片中,你可以看到事件已处理,并且你的评论已添加到event HANDLING窗口。如果你仔细观察,可以在背景中看到一个浅色的标志,它表明事件已被处理,并且事件是纯文本的,这意味着它被标记为已读。
上图展示了另一种方案。假设你检查了触发警报的文件,发现它不是恶意软件。在这种情况下,你可能想要创建一个异常。你也可以通过API来实现这一点。使用POST命令。在事件类别中,在URL参数中输入events/create-exception。然后,你必须指定异常参数,它应用于的事件ID,然后是你想要应用异常的收集器组,在上图显示的示例中,是Sales组,而不是所有收集器组。我们还可以指定目的地。上图显示的示例显示,异常应用于收集器组、所有目的地和所有用户。
答案:A
答案:A
通过掌握本课涉及的目标,你学习了如何在FortiEDR中使用RESTful API。
以上是关于教程篇(5.0) 09. RESTful API ❀ FortiEDR ❀ Fortinet 网络安全专家 NSE 5的主要内容,如果未能解决你的问题,请参考以下文章