Engineering

Fortify Your Fortinet Cybersecurity with Automatic Improvements to FortiGate Logs

The Edge Delta FortiGate Pack is a pre-built set of processing steps specifically designed for FortiGate firewall logs.
Kevin Smith
Senior Technical Content Writer
Jan 15, 2025
9 minutes
Subscribe to Our Newsletter
Get weekly product updates and industry news.
Share

See Edge Delta in Action

Fortinet is a cybersecurity platform that provides an expansive range of solutions for Secure Networking, Unified SASE, Security Operations, and more. 

When it comes to network security, firewalls are one of the most common forms of protection to prevent cyberattacks and mitigate security risks. And Fortinet’s FortiGate firewall product is among the most deployed in the world. 

FortiGate firewalls produce different types of detailed logs — which can later be shipped out to various SIEM or storage destinations. For security teams relying on FortiGate for network security, Edge Delta offers a simple way to get more value from your logs.

The Edge Delta FortiGate Pack is a pre-built set of processing steps specifically designed for FortiGate firewall logs. The pack automatically processes firewall logs by parsing, categorizing, and transforming them, while dropping any no-value or low-value ones. After processing, the enriched logs can then be routed to any destination via Edge Delta’s Telemetry Pipelines for further investigation or simple storage. The result is stronger monitoring, deeper analysis, and increased efficiency. 

Edge Delta Telemetry Pipelines offer support for logs, metrics, traces, and events. Our efficient architecture enables end-to-end monitoring and control over security and observability data, and allows teams to rein in costs without compromising visibility. 

In this post, we’ll talk about how the FortiGate Pack functions, and the benefits you’ll get once it’s up and running. 

How Does the FortiGate Pack Work?

The FortiGate Pack incorporates various processors designed to enhance the usability of log data generated by FortiGate firewalls. This process includes consolidating log data to retain only the most critical elements, ensuring the extraction of valuable insights for more efficient analysis. 

Each FortiGate log entry contains a subtype field within a log type, based on the feature associated with the cause of the log entry. For example, with event logs, some of the subtypes are compliance check, system, and user.

The Edge Delta FortiGate Pack specifically focuses on the following log types:

Traffic: Details traffic flow, including HTTP/HTTPS requests and their corresponding responses, if applicable

Events: Logs system and administrative events, such as downloading configuration backups or tracking daemon activities

UTM: Records unified threat management events, and their various subtypes 

DNS: Records domain name server events on managed devices

All other logs are parsed, as described below, before being sent to a destination node for final routing.  

To get started, unless you already have an existing pipeline within Edge Delta you’d like to use, you’ll need to create one before you can enable the FortiGate Pack. 

Once you have a pipeline up and running, you can find the FortGate Pack by navigating to the Pipelines section within Edge Delta, and then clicking on “Knowledge,” and then “Packs.” Then, scroll through our list of packs — which are organized alphabetically — until you find the FortiGate Pack. Once you do, click “Add to pipeline” and select the pipeline you’d like to install the pack on. 

Processing Pathway: All FortiGate Logs

Below, we will explore the first two sequential processing steps raw FortiGate logs undergo in the pack and what to anticipate from each.

Data Parsing

Once FortiGate firewall log data begins flowing into the pack via the {Pack Source}, it will run the raw logs through a parsing node, parse_key_values. This node uses OpenTelemetry Transformation Language (OTTL) statements to parse FortiGate logs formatted as key-value pairs. The node then converts proto and timestamp fields for faster search, and assigns log levels, depending on the severity of the data. Logs that cannot be parsed are then sent to the Other Logs pack destination. 

Type Routing

All remaining logs that haven’t been shuttled to the Other Logs pack destination are then sent through the {type_router} node, which evaluates them using the Common Expression Language (CEL). The log entries are then filtered by their type attributeDNS, UTM,traffic, and event — and directed to their corresponding type pathway for sequential processing.

Next, we’ll examine how each log type gets processed on their selected pathways by their corresponding nodes, and why. 

Processing Pathway: DNS Logs

We’ll start with DNS logs, which follow the DNS path beginning with the dns_drop node. With this node, DNS logs are analyzed with the vendor_event_type attribute to identify a dns_query. If a query is found, the log is sent along the dns_query path and ultimately dropped. If no query is detected, the logs are then routed to the DNS_Logs pack output, where they can be sent to another destination for further analysis. 

Processing Pathway: UTM Logs

UTM logs are first run through the utm_protocol_lookup node, which uses a lookup table to assign a protocol name (default or failure) as an attribute. From there, the UTM logs are passed through the utm_ottl_changes transformation node, which uses OTTL statements to transform and enrich UTM logs with the following attributes:

Bytes Transfer: Maps incoming and outgoing byte counts to create critical metrics to analyze data flow within UTM processes

Destination and Source Detailing: Converts destination and source fields to standardized attributes, ensuring more accurate tracking of data routes

Device and Session Tracking: Correlates identifiers such as device and session ID with their corresponding source data to enable precision tracking

Action and Status Mapping: Remaps critical event data — such as vendor_event_type and vendor_action — to build a holistic view of FortiGate interactions and event management

Product and Vendor Information: Creates new fields for product and vendor information, indicating Firewall and Fortinet, for security auditing and dashboard displays

After the UTM logs have made their way through the utm_ottl_changes node, they then pass through the utm_cel_changes transformation node, which makes updates and enhancements on the log data through CEL functions. The result improves the overall log data, providing the ability to extract more meaningful information for use cases such as security monitoring, anomaly detection, and compliance auditing. The changes to the log data can be described as:

Bytes Calculation: Calculates the total bytes by summing bytes_in and bytes_out, providing a clear overview of data transfer captured in the logs

Category Assignment: Uses a cascading has() function to determine the category, prioritizing attributes such as attack, attackname, virus, and others

Device Name Extraction: Employs conditional logic to derive the device_name, defaulting to unknown if neither devname nor devid are available

Action and Status: Assigns fortinet_action by evaluating vendor_action and vendor_status based on priority

Product Version and Severity: Guarantees the inclusion of default product version and severity levels in the logs, ensuring consistent monitoring across all environments

Signature and URL Compilation: Generates validated signature and url values from existing attributes, creating key event identifiers essential for detecting network threats

User Identification: Extracts the user field from available attributes or defaults to unknown, maintaining reliable user tracking critical for audit and compliance purposes

Then, certain UTM logs pass through the utm_drop node, which further sanitizes the log stream by dropping logs that have qualities such as unknown users, irrelevant URL data, private IPs, and empty URLs. Finally, the remaining logs pass through the pack output, UTM Logs

Processing Pathway: Traffic Logs

Similar to the pack’s treatment of UTM logs, traffic logs first pass through a traffic_protocol_lookup node to add a protocol name as an attribute. They then pass through an OTTL transform node, which remaps the following attributes: 

Bytes and Packets: Captures incoming and outgoing byte and packet counts, essential for analyzing network performance and diagnosing issues

Destination and Source Details: Standardizes fields for destination and source IPs, ports, MAC addresses, and translated IPs, improving clarity and consistency in traffic tracing

Device and Session Information: Retains device and session identifiers, including device name, session_id, rule, and rule_id, enabling precise monitoring of network policies and activities

Event Attributes: Provides event-specific details such as http_method, vendor_event_type, and vendor_transport, offering additional context for thorough network interaction analysis

Vendor and Product Identification: Includes attributes for vendor and product identification, strengthening the log's connection to FortiGate for enhanced security monitoring and operational analysis

Next, the traffic logs are transformed via the traffic_ottl_changes node, and receive the following enhancements:

Next, the traffic logs are transformed via the traffic_cel_changes node, and receive the following enhancements:

Bytes and Packets Calculation: Combines bytes_in with bytes_out and packets_in with packets_out to provide a complete view of network throughput captured in the logs

Application Identification: Utilizes cascading has() logic to select the most relevant application descriptor — app, service, or transport — ensuring precise application tracking

Device Name Assignment: Applies conditional logic to determine device_name, defaulting to "unknown" if neither devname nor devid is available, maintaining consistent device tracking

Action Extraction: Derives fortinet_action by analyzing both vendor_action and vendor_status, recording key operational actions relevant to network activities

Product Version Assurance: Logs product_version with defaults when necessary, supporting compatibility checks and detailed record-keeping

User Resolution: Identifies user details from available attributes or defaults to "unknown" for unauthenticated events, ensuring reliable tracking for audit and authentication purposes

Finally, the remaining traffic logs move through the traffic_drop, dropping non-essential logs with empty users and private IPs to reduce noise. Logs that do not meet any conditions are directed to the default unmatched path and sent to the output pack labeled "Traffic Logs."

Processing Pathway: Event Logs

Event logs are first routed through an event_ottl_changes node to receive the following treatments:

Source Identification: Maps attributes for the source user, interface, and MAC address, enabling detailed tracking of user actions and device interactions within event logs

Device and Application Details: Captures device and application attributes to provide context about the system environment, enhancing log comprehensiveness

Command and Object Information: Standardizes fields for executed commands and affected objects, ensuring accurate records for change audits and activity monitoring

Network Attributes: Adds Wi-Fi band details and CPU load percentage to logs, offering valuable performance insights for system diagnostics

Action Mapping: Maps attributes to vendor_action and vendor_event_type, ensuring clarity on event specifics and enabling more detailed analysis

Vendor and Product Information: Includes attributes for vendor and product identification, establishing the FortiGate Firewall as the log source for consistent security tracking and auditing

Like UTM and traffic logs, event logs then pass through an {event_cel_changes} transformation node, for the following adjustments:

Destination Address: Configures the device_name by prioritizing dstip, locip, and ssid, ensuring the most relevant address for network tracing

Device Name Resolution: Derives device_name via devname or devid, and defaults to "unknown" to ensure consistent device identification across all logs

Product Version Defaulting: Guarantees the inclusion of product_version, using a default value if unspecified, critical for accurate tracking of the environment

Source Address Compilation: Constructs the src field by leveraging srcip, remip, or ui, ensuring fallback options for reliable source tracking

Tunnel Name Assignment: Populates tunnel_name using vpntunnel or defaults to tunnelid, providing a structured layer name for better traceability

User Identification: Maps the user field to user or xauthuser, defaulting to "unknown" to ensure thorough and consistent user tracking for audits

Vendor Status Clarity: Properly assigns attributes to vendor_status to support log completeness by accurately reflecting user status information when possible

Lastly, logs on the event path then flow to the {Event Logs} pack output for shipping out to an eventual destination.

FortiGate Pack in Practice

After adding the FortiGate pack to a pipeline, navigate to the Visual Pipelines builder. From there, simply drag and drop the connection from the initial Fortinet Logs source to the pack. Next, add your desired Destination(s) within Visual Pipelines, and once they are in place, you can easily create new connections to route the processed data from the pack to those destinations.

One of the best parts about Edge Delta Telemetry Pipelines is that they allow you to ship your firewall log data from any source to any destination. For instance, you can route your processed FortiGate Traffic logs to a SIEM like Splunk or IBM QRadar for further investigation. You can also ship a full copy of all raw log data to S3 for archival storage and compliance purposes. You can also leverage Edge Delta’s built-in analysis capabilities as a Destination, where your processed logs will be available for monitoring in less time than most other premium platforms. 

Getting Started

Ready to see the FortiGate Pack in action? Visit our pipeline sandbox to try it out for free! Already an Edge Delta Customer? Check out our packs list and add the FortiGate Pack to any running pipeline.

  

Stay in Touch

Sign up for our newsletter to be the first to know about new articles.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.