如何导出FortiSIEM日志

如何导出FortiSIEM日志

SOC Prime Team
SOC Prime Team linkedin icon 关注

使用 FortiSIEM 的 REST 事件查询 API。将 XML 查询发布到 /phoenix/rest/query/eventQuery,这将返回一个查询 ID,轮询进度直到达到 100,然后获取事件。结果以 XML 返回。每个事件的原始日志行在 rawEventMsg 属性中,因此几行 Python 将结果转换为原始日志。从分析屏幕导出的内容今天以 LogTotal 不读取的格式出现。 

只要 Fortinet 管理网络,就会常见 FortiSIEM,它通常涵盖的不仅仅是防火墙日志。Prime Core 拥有 19,692 条针对 FortiSIEM 的检测规则,映射到 664 个 MITRE ATT&CK 技术。下面是如何获取事件、清理它们并在 LogTotal 中免费进行调查的方法。

免费开始使用

在您开始之前

一个 API 用户。 使用有权运行分析查询的帐户。API 使用基本身份验证进行身份验证,组织在用户名中:在企业安装中为 super/<user>,在服务提供商安装中为特定组织的 <org>/<user>。

保留。 在线事件存储是有限的。旧的事件可能存放在归档存储中,需要额外的步骤。 

属性名称。 FortiSIEM 查询使用其自己的属性名称,例如 reptDevName(报告设备)、reptDevIpAddr、eventType 和 phRecvTime。首先在 Analytics 中构建过滤器。

使用事件查询 API 导出

将查询保存为 query.xml:

<?xml version=”1.0″ encoding=”UTF-8″?>
<Reports><Report><Name>LogTotal 导出</Name><Description/>
  <SelectClause><AttrList>phRecvTime,reptDevIpAddr,eventType,rawEventMsg</AttrList></SelectClause>
  <ReportInterval><Low>1792368000</Low><High>1792454400</High></ReportInterval>
  <PatternClause><SubPattern id=”1″ name=”Filter”>
    <SingleEvtConstr>reptDevName = “web-03″</SingleEvtConstr>
  </SubPattern></PatternClause>
</Report></Reports>

时间间隔为 2026-10-19 00:00 UTC 到 2026-10-20 00:00 UTC 的纪元秒。然后运行它:

FSM=”https://fortisiem.example.com”
AUTH=”super/apiuser:$FSM_PASS”

QID=$(curl -sS -u “$AUTH” -X POST -H ‘Content-Type: text/xml’ –data @query.xml “$FSM/phoenix/rest/query/eventQuery”)
until [ “$(curl -sS -u “$AUTH” “$FSM/phoenix/rest/query/progress/$QID”)” = “100” ]; do sleep 5; done
curl -sS -u “$AUTH” “$FSM/phoenix/rest/query/events/$QID/0/1000” > fsm_web03_1019.xml

最后两个路径段是起始偏移量和计数。大结果用 1,000 步翻页。然后提取原始消息:

import xml.etree.ElementTree as ET

root = ET.parse(“fsm_web03_1019.xml”).getroot()
with open(“fsm_web03_1019.log”, “w”) as out:
    for attr in root.iter(“attribute”):
        if attr.get(“name”) == “rawEventMsg” and attr.text:
            out.write(attr.text.strip() + “n”)

在 LogTotal 中上传、清理和审查

  1. 上传。 打开 logtotal.com 并上传文件。
  2. 清理。
  3. 审查。

这在真实数据上的样子。 

当它出错时

症状可能原因Fix
401用户名中缺少组织使用 super/<user> 或 <org>/<user>
查询返回错误而不是 IDXML 语法或未知属性名称在 Analytics 中测试过滤器;检查属性名称
进度始终未达到 100查询范围太广缩小时间范围和过滤器
rawEventMsg 为空没有选择属性将 rawEventMsg 添加到 AttrList
旧事件丢失它们在归档存储中检查归档选项

FAQ

为什么选择 XML?

这是 FortiSIEM API 的语言。Python 步骤将其转换为原始行,这通常是您要上传的内容。

我可以导出事件吗?

事件有自己的 API 调用。对于 LogTotal,请导出其背后的事件。

加入 SOC Prime 的 Detection as Code 平台 以提高对与您的业务最相关的威胁的可见性。为了帮助您开始并带来即时价值,现在与 SOC Prime 专家预约会议。