当前位置:网站首页>教程篇(5.0) 09. RESTful API * FortiEDR * Fortinet 网络安全专家 NSE 5
教程篇(5.0) 09. RESTful API * FortiEDR * Fortinet 网络安全专家 NSE 5
2022-07-02 17:53:00 【飞塔老梅子】

在本课中,你将学习如何使用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。

边栏推荐
- 性能测试如何创造业务价值
- 拦截器与过滤器的区别
- Leetcode (81) -- search rotation sort array II
- R语言dplyr包filter函数筛选dataframe数据、如果需要筛选的数据列(变量)名称中包含引号则需要使用!!sym语法处理、否则因为无法处理引号筛选不到任何数据
- Looking for innocence in New York -- a beautiful day at the discovery center of Legoland, New Jersey
- R语言ggplot2可视化:可视化折线图、使用labs函数为折线图添加自定义的X轴标签信息
- Excel查找一列中的相同值,删除该行或替换为空值
- M2dgr: slam data set of multi-source and multi scene ground robot (ICRA 2022)
- The difference between interceptor and filter
- [daily question] first day
猜你喜欢

第一次去曼谷旅游怎么玩?这份省钱攻略请收好

Stm32g0 USB DFU upgrade verification error -2

【JVM调优实战100例】01——JVM的介绍与程序计数器

迷你高尔夫球场:伦敦休闲旅游好去处

How performance testing creates business value
![[100 cases of JVM tuning practice] 01 - introduction of JVM and program counter](/img/c4/3bba96fda92328704c2ddd929dcdf6.png)
[100 cases of JVM tuning practice] 01 - introduction of JVM and program counter

消息队列消息丢失和消息重复发送的处理策略

Processing strategy of message queue message loss and repeated message sending

【每日一题】第一天

Comprendre complètement le tutoriel de traitement de Point Cloud basé sur open3d!
随机推荐
R language dplyr package Na_ The if function converts the control in the vector value into the missing value Na, and converts the specified content into the missing value Na according to the mapping r
徹底搞懂基於Open3D的點雲處理教程!
R语言dplyr包filter函数筛选dataframe数据、如果需要筛选的数据列(变量)名称中包含引号则需要使用!!sym语法处理、否则因为无法处理引号筛选不到任何数据
Excel查找一列中的相同值,删除该行或替换为空值
材质UV遮罩的技巧
reduce--遍历元素计算 具体的计算公式需要传入 结合BigDecimal
@Component cannot get Dao layer
Progress progress bar
SLC、MLC、TLC 和 QLC NAND SSD 之间的区别:哪个更好?
深度学习数学基础
Singapore summer tourism strategy: play Singapore Sentosa Island in one day
27: Chapter 3: develop Passport Service: 10: [registration / login] interface: after the registration / login is OK, save the user session information (uid, utoken) to redis and cookies; (one main poi
2022软件工程期末考试 回忆版
How to clean up discarded PVs and their corresponding folders
Use MNIST in tensorflow 2_ 784 data set for handwritten digit recognition
【测试开发】一文带你了解什么是软件测试
A simple PHP personal card issuing program v4.0
Stm32g0 USB DFU upgrade verification error -2
Google's official response: we have not given up tensorflow and will develop side by side with Jax in the future
Web version 3D visualization tool, 97 things programmers should know, AI frontier paper | information daily # 2022.07.01