CrowdStrike Falcon CrowdStrike Subreddit

Using the Cao Hunting service collection

Uber class support Service class support Documentation Version Page Updated

Table of Contents

Operation IDDescription
AggregateIntelligenceQueries
PEP8aggregate_queries
Aggregate intelligence queries.
GetArchiveExport
PEP8create_export_archive
Creates an Archive Export.
GetIntelligenceQueries
PEP8get_queries
Retrieves a list of Intelligence queries.
SearchIntelligenceQueries
PEP8search_queries
Search intelligence queries that match the provided conditions.

AggregateIntelligenceQueries

Aggregate intelligence queries.

PEP8 method name

aggregate_queries

Endpoint

MethodRoute
POST/hunting/aggregates/intelligence-queries/v1

Required Scope

cao-hunting:read

Content-Type

  • Consumes: application/json
  • Produces: application/json

Keyword Arguments

NameServiceUberTypeData typeDescription
bodyService Class SupportUber Class SupportbodydictionaryFull body payload as a dictionary. Not required when using other keywords.
date_rangesService Class SupportNo Uber Class Supportbodylist of dictionariesApplies to date_range aggregations.

Example:
[
  {
    "from": "2016-05-28T09:00:31Z",
    "to": "2016-05-30T09:00:31Z"
  },
  {
    "from": "2016-06-01T09:00:31Z",
    "to": "2016-06-10T09:00:31Z"
  }
]
excludeService Class SupportNo Uber Class SupportbodystringElements to exclude.
extended_boundsService Class SupportNo Uber Class SupportbodydictionaryExtended aggregate boundaries. Contains max and min values as strings.

Example:
  {
    "max": "string",
    "min": "string"
  }
fieldService Class SupportNo Uber Class SupportbodystringThe field on which to compute the aggregation.
filterService Class SupportNo Uber Class SupportbodystringFQL syntax formatted string to use to filter the results.
fromService Class SupportNo Uber Class SupportbodyintegerStarting position.
includeService Class SupportNo Uber Class SupportbodystringElements to include.
intervalService Class SupportNo Uber Class SupportbodystringTime interval for date histogram aggregations. Valid values include:
  • year
  • month
  • week
  • day
  • hour
  • minute
max_doc_countService Class SupportNo Uber Class SupportbodyintegerOnly return buckets if values are less than or equal to the value here.
min_doc_countService Class SupportNo Uber Class SupportbodyintegerOnly return buckets if values are greater than or equal to the value here.
missingService Class SupportNo Uber Class SupportbodystringMissing is the value to be used when the aggregation field is missing from the object. In other words, the missing parameter defines how documents that are missing a value should be treated. By default they will be ignored, but it is also possible to treat them as if they had a value.
nameService Class SupportNo Uber Class SupportbodystringName of the aggregate query, as chosen by the user. Used to identify the results returned to you.
qService Class SupportNo Uber Class SupportbodystringFull text search across all metadata fields.
rangesService Class SupportNo Uber Class Supportbodylist of dictionariesApplies to range aggregations. Ranges values will depend on field.

For example, if max_severity is used, ranges might look like:
[
  {
    "From": 0,
    "To": 70
  },
  {
    "From": 70,
    "To": 100
  }
]
sizeService Class SupportNo Uber Class SupportbodyintegerThe max number of term buckets to be returned.
sub_aggregatesService Class SupportNo Uber Class Supportbodylist of dictionariesA nested aggregation, such as:
[
  {
    "name": "max_first_behavior",
    "type": "max",
    "field": "first_behavior"
  }
]

There is a maximum of 3 nested aggregations per request.
sortService Class SupportNo Uber Class SupportbodystringFQL syntax string to sort bucket results.
  • _count - sort by document count
  • _term - sort by the string value alphabetically
Supports asc and desc using | format.

Example: _count|desc
time_zoneService Class SupportNo Uber Class SupportbodystringTime zone for bucket results.
typeService Class SupportNo Uber Class SupportbodystringType of aggregation. Valid values include:
  • date_histogram - Aggregates counts on a specified time interval. Requires use of “interval” field.
  • date_range - Aggregates counts on custom defined date range buckets. Can include multiple ranges. (Similar to time series, but the bucket sizes are variable). Date formats to follow ISO 8601.
  • terms - Buckets alerts by the value of a specified field. For example, if field used is scenario, then alerts will be bucketed by the various alert scenario names.
  • range - Buckets alerts by specified (numeric) ranges of a specified field. For example, if doing a range aggregation on the max_severity field, the alerts will be counted by the specified ranges of severity.
  • cardinality - Returns the count of distinct values in a specified field.
  • max - Returns the maximum value of a specified field.
  • min - Returns the minimum value of a specified field.
  • avg - Returns the average value of the specified field.
  • sum - Returns the total sum of all values for the specified field.
  • percentiles - Returns the following percentiles for the specified field: 1, 5, 25, 50, 75, 95, 99.

Usage

Service class example (PEP8 syntax)
from falconpy import CAOHunting

falcon = CAOHunting(client_id=CLIENT_ID,
                    client_secret=CLIENT_SECRET
                    )

date_range = {
    "from": "string",
    "to": "string"
}
bounds = {
    "max": "string",
    "min": "string"
}
search_range = {
    "From": integer,
    "To": integer
}

response = falcon.aggregate_queries(date_ranges=[date_range],
                                    exclude="string",
                                    extended_bounds=bounds,
                                    field="string",
                                    filter="string",
                                    from=integer,
                                    include="string",
                                    interval="string",
                                    max_doc_count=integer,
                                    min_doc_count=integer,
                                    missing="string",
                                    name="string",
                                    q="string",
                                    ranges=[search_range],
                                    size=integer,
                                    sort="string",
                                    time_zone="string",
                                    type="string"
                                    )
print(response)
Service class example (Operation ID syntax)
from falconpy import CAOHunting

falcon = CAOHunting(client_id=CLIENT_ID,
                    client_secret=CLIENT_SECRET
                    )

date_range = {
    "from": "string",
    "to": "string"
}
bounds = {
    "max": "string",
    "min": "string"
}
search_range = {
    "From": integer,
    "To": integer
}

response = falcon.AggregateIntelligenceQueries(date_ranges=[date_range],
                                               exclude="string",
                                               extended_bounds=bounds,
                                               field="string",
                                               filter="string",
                                               from=integer,
                                               include="string",
                                               interval="string",
                                               max_doc_count=integer,
                                               min_doc_count=integer,
                                               missing="string",
                                               name="string",
                                               q="string",
                                               ranges=[search_range],
                                               size=integer,
                                               sort="string",
                                               time_zone="string",
                                               type="string"
                                               )
print(response)
Uber class example
from falconpy import APIHarnessV2

falcon = APIHarnessV2(client_id=CLIENT_ID,
                      client_secret=CLIENT_SECRET
                      )

body_payload = [
    {
        "date_ranges": [
            {
                "from": "string",
                "to": "string"
            }
        ],
        "exclude": "string",
        "extended_bounds": {
            "max": "string",
            "min": "string"
        }
        "field": "string",
        "filter": "string",
        "from": integer,
        "include": "string",
        "interval": "string",
        "max_doc_count": integer,
        "min_doc_count": integer,
        "missing": "string",
        "name": "string",
        "q": "string",
        "ranges": [
            {
                "From": integer,
                "To": integer
            }
        ],
        "size": integer,
        "sort": "string",
        "sub_aggregates": [
            null
        ],
        "time_zone": "string",
        "type": "string"
    }
]

response = falcon.command("AggregateIntelligenceQueries", body=body_payload)

print(response)

GetArchiveExport

Creates an Archive Export.

PEP8 method name

create_export_archive

Endpoint

MethodRoute
GET/hunting/entities/archive-exports/v1

Required Scope

cao-hunting:read

Content-Type

  • Produces: application/octet-stream

Keyword Arguments

NameServiceUberTypeData typeDescription
archive_typeService Class SupportUber Class SupportquerystringThe Archive Type can be one of 'zip' and 'gzip'. Defaults to 'zip'.
filterService Class SupportUber Class SupportquerystringThe FQL Filter.
languageService Class SupportUber Class SupportquerystringThe Query Language. Accepted Values:
  • cql
  • snort
  • suricata
  • yara
parametersService Class SupportUber Class SupportquerydictionaryFull query string parameters payload in JSON format. Not required when using other keywords.

Usage

Service class example (PEP8 syntax)
from falconpy import CAOHunting

falcon = CAOHunting(client_id=CLIENT_ID,
                    client_secret=CLIENT_SECRET
                    )

save_file = "some_file.ext"
with open(save_file, "wb") as file_output:
    file_output.write(falcon.create_export_archive(language="string",
                                        filter="string",
                                        archive_type="string"
                                        ))
Service class example (Operation ID syntax)
from falconpy import CAOHunting

falcon = CAOHunting(client_id=CLIENT_ID,
                    client_secret=CLIENT_SECRET
                    )

save_file = "some_file.ext"
with open(save_file, "wb") as file_output:
    file_output.write(falcon.GetArchiveExport(language="string",
                                              filter="string",
                                              archive_type="string"
                                              ))
Uber class example
from falconpy import APIHarnessV2

falcon = APIHarnessV2(client_id=CLIENT_ID,
                      client_secret=CLIENT_SECRET
                      )

save_file = "some_file.ext"
with open(save_file, "wb") as file_output:
    file_output.write(falcon.command("GetArchiveExport",
                                     language="string",
                                      filter="string",
                                      archive_type="string"
                                      ))

GetIntelligenceQueries

Retrieves a list of Intelligence queries.

PEP8 method name

get_queries

Endpoint

MethodRoute
GET/hunting/entities/intelligence-queries/v1

Required Scope

cao-hunting:read

Content-Type

  • Produces: application/json

Keyword Arguments

NameServiceUberTypeData typeDescription
idsService Class SupportUber Class Supportqueryarray (string)Intelligence queries IDs.
parametersService Class SupportUber Class SupportquerydictionaryFull query string parameters payload in JSON format. Not required when using other keywords.

Usage

Service class example (PEP8 syntax)
from falconpy import CAOHunting

falcon = CAOHunting(client_id=CLIENT_ID,
                    client_secret=CLIENT_SECRET
                    )

id_list = 'ID1,ID2,ID3'  # Can also pass a list here: ['ID1', 'ID2', 'ID3']

response = falcon.get_queries(ids=id_list)

print(response)
Service class example (Operation ID syntax)
from falconpy import CAOHunting

falcon = CAOHunting(client_id=CLIENT_ID,
                    client_secret=CLIENT_SECRET
                    )

id_list = 'ID1,ID2,ID3'  # Can also pass a list here: ['ID1', 'ID2', 'ID3']

response = falcon.GetIntelligenceQueries(ids=id_list)

print(response)
Uber class example
from falconpy import APIHarnessV2

falcon = APIHarnessV2(client_id=CLIENT_ID,
                      client_secret=CLIENT_SECRET
                      )

id_list = 'ID1,ID2,ID3'  # Can also pass a list here: ['ID1', 'ID2', 'ID3']

response = falcon.command("GetIntelligenceQueries", ids=id_list)

print(response)

SearchIntelligenceQueries

Search intelligence queries that match the provided conditions.

PEP8 method name

search_queries

Endpoint

MethodRoute
GET/hunting/queries/intelligence-queries/v1

Required Scope

cao-hunting:read

Content-Type

  • Produces: application/json

Keyword Arguments

NameServiceUberTypeData typeDescription
filterService Class SupportUber Class SupportquerystringFQL query specifying the filter parameters.
limitService Class SupportUber Class SupportqueryintegerNumber of IDs to return.
offsetService Class SupportUber Class SupportquerystringStarting index of result set from which to return IDs.
parametersService Class SupportUber Class SupportquerydictionaryFull query string parameters payload in JSON format. Not required when using other keywords.
qService Class SupportUber Class SupportquerystringMatch phrase_prefix query criteria; included fields: _all (all filter string fields indexed).
sortService Class SupportUber Class SupportquerystringOrder by fields.

Usage

Service class example (PEP8 syntax)
from falconpy import CAOHunting

falcon = CAOHunting(client_id=CLIENT_ID,
                    client_secret=CLIENT_SECRET
                    )

response = falcon.search_queries(offset="string",
                                 limit=integer,
                                 sort="string",
                                 filter="string",
                                 q="string"
                                 )
print(response)
Service class example (Operation ID syntax)
from falconpy import CAOHunting

falcon = CAOHunting(client_id=CLIENT_ID,
                    client_secret=CLIENT_SECRET
                    )

response = falcon.SearchIntelligenceQueries(offset="string",
                                            limit=integer,
                                            sort="string",
                                            filter="string",
                                            q="string"
                                            )
print(response)
Uber class example
from falconpy import APIHarnessV2

falcon = APIHarnessV2(client_id=CLIENT_ID,
                      client_secret=CLIENT_SECRET
                      )

response = falcon.command("SearchIntelligenceQueries",
                          offset="string",
                          limit=integer,
                          sort="string",
                          filter="string",
                          q="string"
                          )
print(response)