AppOmni

This package provides a parser for AppOmni. Ingest SaaS application logs from AppOmni to LogScale to detect and respond to suspicious activity such as highly privileged misconfigurations, configuration changes, unusual user behavior, and excessive consumption of data related to your SaaS ecosystem.

See AppOmni Developer Platform site for a comprehensive list of supported applications.

Note

this package uses the Crowdstrike Parsers Standard to additionally refine the OpenTelemetry standard, see CrowdStrike Parsing Standard (CPS) for details and the variations that apply.

The parser normalizes data to a common schema based on CrowdStrike Parsing Standard (CPS). 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 AppOmni 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 AppOmni (i.e. appomni/appomni).

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

  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 log it will collect logs from), and assign the parser firepower-syslog to the token.

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

    Now that you have a repository set up in LogScale along with an ingest token you're ready to send logs to LogScale.

Configurations and Sending the Logs to LogScale

  1. Go to Threat Detection and select Destinations.

  2. Click Add New Destination.

  3. Click the Crowdstrike LogScale card.

  4. Enter a Name and Description (optional).

  5. Enter a Max Event Size and Max Payload Size (optional), otherwise leave them at the default settings.

  6. Select the Data Types you want to send.

  7. Select Hash Original Field (optional) to replace the original event field from the monitored service with a SHA256 hash of that event, thereby reducing event size.

  8. Enter the Host and Ingest token.

Verify Data is Arriving in LogScale

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

You can verify this by doing a simple search for the events:

logscale
#Vendor = "appomni" |
| #event.module="appomni"

Package Contents Explained

This package parses incoming data, and normalizing the data as part of that parsing. The parser normalizes the data to CrowdStrike Parsing Standard (CPS) 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 Categorisation

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

  • event.type

  • event.kind

  • event.outcome

  • event.category

(#event.outcome is a tag, hence the "#")

event.kind and #event.outcome can be searched using Field Filters fields, but event.category and event.type are arrays, so need to be searched using the following syntax:

logscale
array:contains("event.category[]", value="network")

For example, the following will find events where some event.type[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:

  • event.* (e.g. event.kind, event.module, event.dataset, event.outcome )

  • ecs* (e.g. ecs.version )

  • Cps* (e.g. Cps.version )

  • observer.* (e.g. observer.type )