Fortinet FortiMail (Preview)

Fortinet FortiMail logs provide information on network email activity that help identify security issues such as viruses detected within an email. FortiMail units can log many different email activities and traffic, including:

  • system-related events, such as system restarts and HA activity

  • virus detections

  • spam filtering results

  • POP3, SMTP, IMAP and webmail events

Using FortiMail with LogScale enables users to correlate email and user activity data in LogScale, correlate data with Office365 logs, and identify and update a list of suspicious activities. This provides additional value, particularly if FortiGate is already set up to ingest into LogScale and user's pipelines are set up with FortiNet Analyzer.

This package provides a preview parser for FortiMail data. The parser normalizes data to a common schema based on an OpenTelemetry standard. This schema allows you to search the data without knowing the data specifically, and just knowing the common schema instead. It also allows you to combine the data more easily with other data sources which conform to the same schema.

Installing the Package in LogScale

Find the repository where you want to send the FortiMail events, or Creating a Repository or View.

  1. Navigate to your repository in the LogScale interface, click Settings and then Packages on the left.

  2. Click Marketplace and install the LogScale package for FortiMail (i.e. fortimail).

  3. When the package has finished installing, click Ingest tokens on the left (still under the Settings menu).

  4. In the right panel, click + Add Token to create a new token. Give the token an appropriate name (e.g. the name of the server the token is ingesting logs for), and either leave the parser unassigned (instead of setting the parser in the log collector configuration later on), or assign the fortinet-fortimail parser.

    Before leaving this page, view the ingest token and copy it to your clipboard — to save it temporarily elsewhere.

Configurations and Sending the Logs to LogScale

First you need to configure FortiGate to send all logs types to the syslog server.

Next, configure the Falcon LogScale Collector to ship the logs from your syslog server into LogScale. Follow LogScale Collector Installing the LogScale Collector and Configuring LogScale Collector. LogScale Collector documentation also provides an example of how you can configure your syslog datasource.

Verify Data is Arriving in LogScale

Once you have completed the above steps the FortiMail data should be arriving in your LogScale repository.

You can verify this by doing a simple search for #Vendor = "fortinet" | Product = "fortimail" to see the events.

Package Contents Explained

This package is only for parsing incoming data, and normalizing the data as part of that parsing. The parser normalizes the data to a subset of this schema based on OpenTelemetry standards, while still preserving the original data.

If you want to search using the original field names and values, you can access those in the fields whose names are prefixed with the word Vendor. Fields which are not prefixed with Vendor are standard fields which are either based on the schema (e.g. source.ip) or on LogScale conventions (e.g. @rawstring).

The fields which the parser currently maps the data to, are chosen based on what seems the most relevant, and will potentially be expanded in the future. But the parser won't necessarily normalize every field that has potential to be normalized.

Event Categorization

As part of the schema, events are categorized by the following fields:

  • event.category

  • event.kind

  • event.action

  • event.type

  • event.code

  • #event.outcome

This will find events where some event.category[n] field contains the value network, regardless of what n is.

Note that not all events will be categorized to this level of detail.

Normalized Fields

Here are some of the normalized fields which are being set by this parser:

  • user.* (i.e. user.name)

  • destination.* and source.*)i.e. source.ip and destination.domain)

  • email.* (i.e. email.from.address, email.to.address and email.subject)

  • event.* (i.e. #event.outcome)