crowdstrike/fltr-tutorial Dashboards
The Basics - 01 - Primer
Widget | Description | Type |
---|---|---|
The LogScale query language is extremely powerful. It's largely based on open standards and the language of mathematics, and balances simplicity and functionality to help users quickly find what they need, fast. In this tutorial, we'll use Falcon telemetry data to learn LogScale. The content and concepts we will cover, however, can be adapted and reused with any dataset that LogScale happens to be ingesting, e.g. first-party, third-party, etc. We will start with the very basics and build on the queries as we go. Hints on using the tutorial: - You can navigate between the dashboards by clicking on the word *Dashboards* in the upper-left corner. It is the link text right below the Falcon icon. Clicking on this link will take you back to the overview page showing all of the tutorial chapters. - You can display the source for every dashboard chapter. Simply click on the *edit* pencil icon near the upper-right corner, then click *Show queries* in the middle near the top of the page. Click *Discard changes* in the upper-right when you're done. Additional resources are available as references: - Official documentation: documentation on the query language. - LogScale Query Primer: a comprehensive guide on using the LogScale query language. - LogScale Query Building Blocks: this is a list of common questions we've seen in the field. - LogScale Function Addendum: these are examples of using a few of the common functions within LogScale. - FLTR Hunting and Investigations: threat hunting guide for Falcon data. Onward! | Note |
The Basics - 03 - Field Names Simplified
Widget | Description | Type |
---|---|---|
Displays a table of available field names in descending order.
logscale
| Table | |
Falcon LogScale has the ability to apply tags to events. In doing so, it allows LogScale to quickly and efficiently include or exclude large collections of events as you search. The application of tags to telemetry is all done for you transparently when dealing with Falcon data. The reason we're mentioning it is: one very important field, event_simpleName, is tagged in LogScale. Because of this, when you specify an event_simpleName value in your LogScale syntax, you need to put a # (hash or pound) in front of that field. That's it. We'll start the query like this in LogScale: logscale
The same concept applies to the field cid: logscale
If you forget, or want to know what other events are tagged, you can just look in the LogScale sidebar for anything starting with #. | Note |
The Basics - 04 - Comments
Widget | Description | Type |
---|---|---|
Displays a table of events limited to the first 100 entries.
logscale
| Table | |
Falcon LogScale has the ability to apply tags to events. In doing so, it allows LogScale to quickly and efficiently include or exclude large collections of events as you search. The application of tags to telemetry is all done for you transparently when dealing with Falcon data. The reason we're mentioning it is: one very important field, event_simpleName, is tagged in LogScale. Because of this, when you specify an event_simpleName value in your LogScale syntax, you need to put a # (hash or pound) in front of that field. That's it. We'll start the query like this in LogScale: logscale
The same concept applies to the field cid: logscale
If you forget, or want to know what other events are tagged, you can just look in the LogScale sidebar for anything starting with #. | Note | |
logscale
| Note |
The Basics - 05 - Timestamps
Widget | Description | Type |
---|---|---|
Displays a table of events limited to the first 100 entries.
logscale
| Table | |
Falcon LogScale has the ability to apply tags to events. In doing so, it allows LogScale to quickly and efficiently include or exclude large collections of events as you search. The application of tags to telemetry is all done for you transparently when dealing with Falcon data. The reason we're mentioning it is: one very important field, event_simpleName, is tagged in LogScale. Because of this, when you specify an event_simpleName value in your LogScale syntax, you need to put a # (hash or pound) in front of that field. That's it. We'll start the query like this in LogScale: logscale
The same concept applies to the field cid: logscale
If you forget, or want to know what other events are tagged, you can just look in the LogScale sidebar for anything starting with #. | Note | |
logscale
| Note |
The Basics - 06 - Assignment
Widget | Description | Type |
---|---|---|
Displays a table of events limited to the first 100 entries.
logscale
| Table | |
logscale
| Note | |
Falcon LogScale has the ability to apply tags to events. In doing so, it allows LogScale to quickly and efficiently include or exclude large collections of events as you search. The application of tags to telemetry is all done for you transparently when dealing with Falcon data. The reason we're mentioning it is: one very important field, event_simpleName, is tagged in LogScale. Because of this, when you specify an event_simpleName value in your LogScale syntax, you need to put a # (hash or pound) in front of that field. That's it. We'll start the query like this in LogScale: logscale
The same concept applies to the field cid: logscale
If you forget, or want to know what other events are tagged, you can just look in the LogScale sidebar for anything starting with #. | Note |
The Basics - 07 - Regular Expressions
Widget | Description | Type |
---|---|---|
Displays a table of events limited to the first 100 entries.
logscale
| Table | |
Falcon LogScale has the ability to apply tags to events. In doing so, it allows LogScale to quickly and efficiently include or exclude large collections of events as you search. The application of tags to telemetry is all done for you transparently when dealing with Falcon data. The reason we're mentioning it is: one very important field, event_simpleName, is tagged in LogScale. Because of this, when you specify an event_simpleName value in your LogScale syntax, you need to put a # (hash or pound) in front of that field. That's it. We'll start the query like this in LogScale: logscale
The same concept applies to the field cid: logscale
If you forget, or want to know what other events are tagged, you can just look in the LogScale sidebar for anything starting with #. | Note | |
logscale
| Note |
The Basics - 08 - Case Statements
Widget | Description | Type |
---|---|---|
Displays a table of events limited to the first 100 entries.
logscale
| Table | |
Falcon LogScale has the ability to apply tags to events. In doing so, it allows LogScale to quickly and efficiently include or exclude large collections of events as you search. The application of tags to telemetry is all done for you transparently when dealing with Falcon data. The reason we're mentioning it is: one very important field, event_simpleName, is tagged in LogScale. Because of this, when you specify an event_simpleName value in your LogScale syntax, you need to put a # (hash or pound) in front of that field. That's it. We'll start the query like this in LogScale: logscale
The same concept applies to the field cid: logscale
If you forget, or want to know what other events are tagged, you can just look in the LogScale sidebar for anything starting with #. | Note | |
logscale
| Note |
The Basics - 09 - Functions
Widget | Description | Type |
---|---|---|
Displays a table of events limited to the first 100 entries.
logscale
| Table | |
Falcon LogScale has the ability to apply tags to events. In doing so, it allows LogScale to quickly and efficiently include or exclude large collections of events as you search. The application of tags to telemetry is all done for you transparently when dealing with Falcon data. The reason we're mentioning it is: one very important field, event_simpleName, is tagged in LogScale. Because of this, when you specify an event_simpleName value in your LogScale syntax, you need to put a # (hash or pound) in front of that field. That's it. We'll start the query like this in LogScale: logscale
The same concept applies to the field cid: logscale
If you forget, or want to know what other events are tagged, you can just look in the LogScale sidebar for anything starting with #. | Note | |
logscale
| Note |
The Basics - 10 - Formatting Query Output
Widget | Description | Type |
---|---|---|
Displays a table of events limited to the first 100 entries.
logscale
| Table | |
Falcon LogScale has the ability to apply tags to events. In doing so, it allows LogScale to quickly and efficiently include or exclude large collections of events as you search. The application of tags to telemetry is all done for you transparently when dealing with Falcon data. The reason we're mentioning it is: one very important field, event_simpleName, is tagged in LogScale. Because of this, when you specify an event_simpleName value in your LogScale syntax, you need to put a # (hash or pound) in front of that field. That's it. We'll start the query like this in LogScale: logscale
The same concept applies to the field cid: logscale
If you forget, or want to know what other events are tagged, you can just look in the LogScale sidebar for anything starting with #. | Note | |
logscale
| Note | |
There are generally 3 different ways to format the output:
| Note |
The Basics - 11 - groupBy
Widget | Description | Type |
---|---|---|
Note in the search above, I've added the Event Search syntax I want to translate to my search and quickly commented it out. This is optional, but makes the translation of queries you already have a little easier. logscale
Note the use of the square brackets after invoking function. This is because we want to use multiple aggregations in this groupBy. If you wanted to groupBy multiple fields, you would also use square brackets. As an example: logscale
The same principle would be applied if we wanted to collect multiple fields. logscale
Note how: logscale
Becomes: logscale
This takes a little practice, but once mastered the syntax is logical and very easy to interpret. To assist, LogScale will insert a closing parenthesis or closing square bracket when you open one. | Note | |
Displays a table of events limited to the first 100 entries.
logscale
| Table | |
Falcon LogScale has the ability to apply tags to events. In doing so, it allows LogScale to quickly and efficiently include or exclude large collections of events as you search. The application of tags to telemetry is all done for you transparently when dealing with Falcon data. The reason we're mentioning it is: one very important field, event_simpleName, is tagged in LogScale. Because of this, when you specify an event_simpleName value in your LogScale syntax, you need to put a # (hash or pound) in front of that field. That's it. We'll start the query like this in LogScale: logscale
The same concept applies to the field cid: logscale
If you forget, or want to know what other events are tagged, you can just look in the LogScale sidebar for anything starting with #. | Note | |
logscale
| Note |
The Basics - 12 - Parameters
Widget | Description | Type |
---|---|---|
Displays a table of events limited to the first 100 entries.
logscale
| Table | |
Falcon LogScale has the ability to apply tags to events. In doing so, it allows LogScale to quickly and efficiently include or exclude large collections of events as you search. The application of tags to telemetry is all done for you transparently when dealing with Falcon data. The reason we're mentioning it is: one very important field, event_simpleName, is tagged in LogScale. Because of this, when you specify an event_simpleName value in your LogScale syntax, you need to put a # (hash or pound) in front of that field. That's it. We'll start the query like this in LogScale: logscale
The same concept applies to the field cid: logscale
If you forget, or want to know what other events are tagged, you can just look in the LogScale sidebar for anything starting with #. | Note | |
logscale
| Note |
The Basics - 13 - Visualizations
Widget | Description | Type |
---|---|---|
Displays a flow chart of external event data (tactic, technique,
agent ID).
logscale
| Sankey | |
LogScale will only allow you to select compatible widgets. The desired visualization widget can also be specified in the query itself. As an example: logscale
| Note | |
Displays a table of events limited to the first 100 entries.
logscale
| Table | |
Falcon LogScale has the ability to apply tags to events. In doing so, it allows LogScale to quickly and efficiently include or exclude large collections of events as you search. The application of tags to telemetry is all done for you transparently when dealing with Falcon data. The reason we're mentioning it is: one very important field, event_simpleName, is tagged in LogScale. Because of this, when you specify an event_simpleName value in your LogScale syntax, you need to put a # (hash or pound) in front of that field. That's it. We'll start the query like this in LogScale: logscale
The same concept applies to the field cid: logscale
If you forget, or want to know what other events are tagged, you can just look in the LogScale sidebar for anything starting with #. | Note |
The Basics - 14 - Widget Formatting
Widget | Description | Type |
---|---|---|
Displays a list of external API events limits results to the first
100 entries.
logscale
| Pie Chart | |
By clicking the paintbrush in the middle left, we can change view, color, and series options for our chart. When you select a visualization, the format pane will automatically adjust to include all available options. Please pick better colors than I did. | Note | |
Displays a table of events limited to the first 100 entries.
logscale
| Table | |
Falcon LogScale has the ability to apply tags to events. In doing so, it allows LogScale to quickly and efficiently include or exclude large collections of events as you search. The application of tags to telemetry is all done for you transparently when dealing with Falcon data. The reason we're mentioning it is: one very important field, event_simpleName, is tagged in LogScale. Because of this, when you specify an event_simpleName value in your LogScale syntax, you need to put a # (hash or pound) in front of that field. That's it. We'll start the query like this in LogScale: logscale
The same concept applies to the field cid: logscale
If you forget, or want to know what other events are tagged, you can just look in the LogScale sidebar for anything starting with #. | Note |
The Basics - 15 - Match
Widget | Description | Type |
---|---|---|
Displays a table of events limited to the first 100 entries.
logscale
| Table | |
Falcon LogScale has the ability to apply tags to events. In doing so, it allows LogScale to quickly and efficiently include or exclude large collections of events as you search. The application of tags to telemetry is all done for you transparently when dealing with Falcon data. The reason we're mentioning it is: one very important field, event_simpleName, is tagged in LogScale. Because of this, when you specify an event_simpleName value in your LogScale syntax, you need to put a # (hash or pound) in front of that field. That's it. We'll start the query like this in LogScale: logscale
The same concept applies to the field cid: logscale
If you forget, or want to know what other events are tagged, you can just look in the LogScale sidebar for anything starting with #. | Note | |
logscale
| Note |
The Basics - 16 - Field Extraction
Widget | Description | Type |
---|---|---|
By default, when using regular expression extractions, they are strict. Meaning if the data being searched does not match, it will be omitted. A quick example would be: logscale
| Note | |
Displays a table of event output by four letter file name and
limits results to the first 100 entries.
logscale
| Table | |
Displays a table of events limited to the first 100 entries.
logscale
| Table | |
We can also use non-strict field extractions like so: logscale
The above looks for file names that contain four characters. If that does not match, that field is left blank. | Note | |
Displays a table of output using image data.
logscale
| Table | |
Falcon LogScale has the ability to apply tags to events. In doing so, it allows LogScale to quickly and efficiently include or exclude large collections of events as you search. The application of tags to telemetry is all done for you transparently when dealing with Falcon data. The reason we're mentioning it is: one very important field, event_simpleName, is tagged in LogScale. Because of this, when you specify an event_simpleName value in your LogScale syntax, you need to put a # (hash or pound) in front of that field. That's it. We'll start the query like this in LogScale: logscale
The same concept applies to the field cid: logscale
If you forget, or want to know what other events are tagged, you can just look in the LogScale sidebar for anything starting with #. | Note |
The Basics - 17 - Query Building 101
Widget | Description | Type |
---|---|---|
Displays a chart of event output and limits results to the first
100 results.
logscale
| Bar Chart | |
Displays a table of events limited to the first 100 entries.
logscale
| Table | |
Note in the output above I've trimmed the command line string using format to only include the first 50 characters to make things more readable. That line is as follows: logscale
And now we have a complete query! If we wanted to do some visualization, we could change our parameters a bit to look for outliers: Based on this data, the use of the flags enc and encodedCommand (with that spelling) are not common in my environment. A hunting query, scheduled alert, or Custom IOA could be beneficial. | Note | |
Falcon LogScale has the ability to apply tags to events. In doing so, it allows LogScale to quickly and efficiently include or exclude large collections of events as you search. The application of tags to telemetry is all done for you transparently when dealing with Falcon data. The reason we're mentioning it is: one very important field, event_simpleName, is tagged in LogScale. Because of this, when you specify an event_simpleName value in your LogScale syntax, you need to put a # (hash or pound) in front of that field. That's it. We'll start the query like this in LogScale: logscale
The same concept applies to the field cid: logscale
If you forget, or want to know what other events are tagged, you can just look in the LogScale sidebar for anything starting with #. | Note |
The Basics - 18 - Hyperlinks
Widget | Description | Type |
---|---|---|
Displays a table of events limited to the first 100 entries.
logscale
| Table | |
Falcon LogScale has the ability to apply tags to events. In doing so, it allows LogScale to quickly and efficiently include or exclude large collections of events as you search. The application of tags to telemetry is all done for you transparently when dealing with Falcon data. The reason we're mentioning it is: one very important field, event_simpleName, is tagged in LogScale. Because of this, when you specify an event_simpleName value in your LogScale syntax, you need to put a # (hash or pound) in front of that field. That's it. We'll start the query like this in LogScale: logscale
The same concept applies to the field cid: logscale
If you forget, or want to know what other events are tagged, you can just look in the LogScale sidebar for anything starting with #. | Note | |
logscale
| Note |
The Basics - 19 - Helpful Query Examples
Widget | Description | Type |
---|---|---|
Calculate the average password age, in days, of Admin and Standard user accounts and then round those values to a whole number: logscale
| Note | |
Displays an example of latitude and longitude on a world map.
logscale
| World Map | |
Set a default field value. Similar to fillnull in Event Search. If the field GrandParentBaseFilename is blank, set it to the value "Unknown." logscale
| Note | |
Displays an example of how to set a default field value.
logscale
| Table | |
Omit internal IP addresses when keying in on remote IP addresses. logscale
| Note | |
Using a built-in geoip database and the function worldmap to map all SSH connections. | Note | |
Take the fields UID and UserSid and make them a new field named userIdentifier. logscale
| Note | |
Displays a table of events limited to the first 100 entries.
logscale
| Table | |
Query a single field for multiple values using the in function. logscale
| Note | |
Similar to where in Event Search, check one field value against another. In this example, see if a username has completed more than 25 logons in a given search window: logscale
| Note | |
An example query that shows how to create a table view of
formatting a number to two decimal places.
logscale
| Table | |
logscale
| Note | |
An example widget that queries fields for multiple logon values.
logscale
| Table | |
Displays a list of user logins by username and limits to the first
100 entries.
logscale
| Table | |
An example of a query that omits RFC-1819 addresses from a given
search result.
logscale
| Table | |
Create a process lineage one-liner that includes grandparent, parent, and target processes using format: logscale
| Note | |
An example query that displays a table of values converted from
decimal to hexadecimal values and additional data such as
username, logon type, and timestamp.
logscale
| Table | |
Note that the specified lookup table must exist under "Files." In this instance, we'll check for common ports and create a new field with their associated protocol. logscale
| Note | |
Displays a table of two fields that have been concantenated into a
new single field.
logscale
| Table | |
Displays an example of how to use the match()
function to query a lookup table.
logscale
| Table | |
Displays an example query for creating concatenated, formatted
fields.
logscale
| Table | |
Falcon LogScale has the ability to apply tags to events. In doing so, it allows LogScale to quickly and efficiently include or exclude large collections of events as you search. The application of tags to telemetry is all done for you transparently when dealing with Falcon data. The reason we're mentioning it is: one very important field, event_simpleName, is tagged in LogScale. Because of this, when you specify an event_simpleName value in your LogScale syntax, you need to put a # (hash or pound) in front of that field. That's it. We'll start the query like this in LogScale: logscale
The same concept applies to the field cid: logscale
If you forget, or want to know what other events are tagged, you can just look in the LogScale sidebar for anything starting with #. | Note |