device control policies - CrowdStrike/falconpy GitHub Wiki
Operation ID | Description | ||||
---|---|---|---|---|---|
|
Search for members of a Device Control Policy in your environment by providing a FQL filter and paging details. Returns a set of host details which match the filter criteria | ||||
|
Search for Device Control Policies in your environment by providing a FQL filter and paging details. Returns a set of Device Control Policies which match the filter criteria | ||||
|
Retrieve the configuration for the Default Device Control Policy. | ||||
|
Update the configuration for the Default Device Control Policy. | ||||
|
Perform the specified action on the Device Control Policies specified in the request | ||||
|
Sets the precedence of Device Control Policies based on the order of IDs specified in the request. The first ID specified will have the highest precedence and the last ID specified will have the lowest. You must specify all non-Default Policies for a platform when updating precedence | ||||
|
Retrieve a set of Device Control Policies by specifying their IDs | ||||
|
Create Device Control Policies by specifying details about the policy to create | ||||
|
Delete a set of Device Control Policies by specifying their IDs | ||||
|
Update Device Control Policies by specifying the ID of the policy and details to update | ||||
|
Search for members of a Device Control Policy in your environment by providing a FQL filter and paging details. Returns a set of Agent IDs which match the filter criteria | ||||
|
Search for Device Control Policies in your environment by providing a FQL filter and paging details. Returns a set of Device Control Policy IDs which match the filter criteria |
WARNING
client_id
andclient_secret
are keyword arguments that contain your CrowdStrike API credentials. Please note that all examples below do not hard code these values. (These values are ingested as strings.)CrowdStrike does not recommend hard coding API credentials or customer identifiers within source code.
Search for members of a Device Control Policy in your environment by providing a FQL filter and paging details. Returns a set of host details which match the filter criteria
query_combined_policy_members
Method | Route |
---|---|
/policy/combined/device-control-members/v1 |
- Produces: application/json
Name | Service | Uber | Type | Data type | Description |
---|---|---|---|---|---|
filter |
|
|
query | string | FQL Syntax formatted string used to limit the results. |
id |
|
|
query | integer | The ID of the Device Control Policy to search for members of. |
limit |
|
|
query | integer | Maximum number of records to return. (Max: 5000) |
offset |
|
|
query | integer | Starting index of overall result set from which to return ids. |
sort |
|
|
query | string | The property to sort by. (Ex: modified_timestamp.desc) |
parameters |
|
|
query | dictionary | Full query string parameters payload in JSON format. |
from falconpy import DeviceControlPolicies
# Do not hardcode API credentials!
falcon = DeviceControlPolicies(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.query_combined_policy_members(id="string",
filter="string",
offset=integer,
limit=integer,
sort="string"
)
print(response)
from falconpy import DeviceControlPolicies
# Do not hardcode API credentials!
falcon = DeviceControlPolicies(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.queryCombinedDeviceControlPolicyMembers(id="string",
filter="string",
offset=integer,
limit=integer,
sort="string"
)
print(response)
from falconpy import APIHarnessV2
# Do not hardcode API credentials!
falcon = APIHarnessV2(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.command("queryCombinedDeviceControlPolicyMembers",
id="string",
filter="string",
offset=integer,
limit=integer,
sort="string"
)
print(response)
Search for Device Control Policies in your environment by providing a FQL filter and paging details. Returns a set of Device Control Policies which match the filter criteria
query_combined_policies
Method | Route |
---|---|
/policy/combined/device-control/v1 |
- Produces: application/json
Name | Service | Uber | Type | Data type | Description |
---|---|---|---|---|---|
filter |
|
|
query | string | FQL Syntax formatted string used to limit the results. |
limit |
|
|
query | integer | Maximum number of records to return. (Max: 5000) |
offset |
|
|
query | integer | Starting index of overall result set from which to return ids. |
sort |
|
|
query | string | The property to sort by. (Ex: modified_timestamp.desc) |
parameters |
|
|
query | dictionary | Full query string parameters payload in JSON format. |
from falconpy import DeviceControlPolicies
# Do not hardcode API credentials!
falcon = DeviceControlPolicies(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.query_combined_policies(filter="string",
offset=integer,
limit=integer,
sort="string"
)
print(response)
from falconpy import DeviceControlPolicies
# Do not hardcode API credentials!
falcon = DeviceControlPolicies(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.queryCombinedDeviceControlPolicies(filter="string",
offset=integer,
limit=integer,
sort="string"
)
print(response)
from falconpy import APIHarnessV2
# Do not hardcode API credentials!
falcon = APIHarnessV2(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.command("queryCombinedDeviceControlPolicies",
filter="string",
offset=integer,
limit=integer,
sort="string"
)
print(response)
Retrieve the configuration for the Default Device Control Policy.
get_default_policies
Method | Route |
---|---|
/policy/entities/default-device-control/v1 |
- Produces: application/json
No keywords or arguments accepted.
from falconpy import DeviceControlPolicies
# Do not hardcode API credentials!
falcon = DeviceControlPolicies(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.get_default_policies()
print(response)
from falconpy import DeviceControlPolicies
# Do not hardcode API credentials!
falcon = DeviceControlPolicies(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.getDefaultDeviceControlPolicies()
print(response)
from falconpy import APIHarnessV2
# Do not hardcode API credentials!
falcon = APIHarnessV2(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.command("getDefaultDeviceControlPolicies")
print(response)
Back to Table of Contents
Retrieve the configuration for the Default Device Control Policy.
update_default_policies
Method | Route |
---|---|
/policy/entities/default-device-control/v1 |
- Produces: application/json
Name | Service | Uber | Type | Data type | Description |
---|---|---|---|---|---|
blocked_custom_message |
|
|
body | string | String containing the blocked notification custom message. When this keyword is provided, you do not need to provide the blocked_notification or body keywords. |
blocked_notification |
|
|
body | dictionary | Dictionary containing the blocked notification message. { "custom_message": "string", "use_custom": true } |
body |
|
|
body | dictionary | Full body payload in JSON format. |
restricted_custom_message |
|
|
body | string | String containing the restricted notification custom message. When this keyword is provided, you do not need to provide the restricted_notification or body keywords. |
restricted_notification |
|
|
body | dictionary | Dictionary containing the restricted notification message. { "custom_message": "string", "use_custom": true } |
from falconpy import DeviceControlPolicies
# Do not hardcode API credentials!
falcon = DeviceControlPolicies(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
blocked = {
"custom_message": "string",
"use_custom": True
}
restricted = {
"custom_message": "string",
"use_custom": True
}
response = falcon.update_default_policies(blocked_custom_message="string",
blocked_notification=blocked,
restricted_custom_message="string",
restricted_notification=restricted
)
print(response)
from falconpy import DeviceControlPolicies
# Do not hardcode API credentials!
falcon = DeviceControlPolicies(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
blocked = {
"custom_message": "string",
"use_custom": True
}
restricted = {
"custom_message": "string",
"use_custom": True
}
response = falcon.updateDefaultDeviceControlPolicies(blocked_custom_message="string",
blocked_notification=blocked,
restricted_custom_message="string",
restricted_notification=restricted
)
print(response)
from falconpy import APIHarnessV2
# Do not hardcode API credentials!
falcon = APIHarnessV2(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
blocked = {
"custom_message": "string",
"use_custom": True
}
restricted = {
"custom_message": "string",
"use_custom": True
}
response = falcon.command("updateDefaultDeviceControlPolicies",
blocked_custom_message="string",
blocked_notification=blocked,
restricted_custom_message="string",
restricted_notification=restricted
)
print(response)
Back to Table of Contents
Perform the specified action on the Device Control Policies specified in the request
perform_action
Method | Route |
---|---|
/policy/entities/device-control-actions/v1 |
- Produces: application/json
Name | Service | Uber | Type | Data type | Description |
---|---|---|---|---|---|
action_name |
|
|
query | string | The action to perform. Allowed values:
|
action_parameters |
|
|
body | list of dictionaries | List of name / value pairs in JSON format. |
body |
|
|
body | dictionary | Full body payload in JSON format. |
group_id |
|
|
body action_parameters |
string | Host Group ID to apply the policy to. String. Overridden if action_parameters is specified. |
ids |
|
|
body | string or list of strings | Device Control Policy ID(s) to perform actions against. |
parameters |
|
|
query | dictionary | Full query string parameters payload in JSON format. |
from falconpy import DeviceControlPolicies
# Do not hardcode API credentials!
falcon = DeviceControlPolicies(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.perform_action(action_name="string",
group_id="HOST_GROUP_ID",
ids="ID_TO_UPDATE"
)
print(response)
from falconpy import DeviceControlPolicies
# Do not hardcode API credentials!
falcon = DeviceControlPolicies(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
act_params = [{
"name": "group_id",
"value": "HOST_GROUP_ID"
}]
response = falcon.performDeviceControlPoliciesAction(action_name="string",
action_parameters=act_params,
ids="ID_TO_UPDATE"
)
print(response)
from falconpy import APIHarnessV2
# Do not hardcode API credentials!
falcon = APIHarnessV2(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
act_params = [{
"name": "group_id",
"value": "HOST_GROUP_ID"
}]
PARAMS = {
"action_name": "string" # Can also provide this using the `action_name` keyword
}
# Only one ID may be updated at a time
BODY = {
"action_parameters": act_params,
"ids": ["ID_TO_UPDATE"]
}
response = falcon.command("performDeviceControlPoliciesAction", parameters=PARAMS, body=BODY)
print(response)
Sets the precedence of Device Control Policies based on the order of IDs specified in the request. The first ID specified will have the highest precedence and the last ID specified will have the lowest. You must specify all non-Default Policies for a platform when updating precedence
set_precedence
Method | Route |
---|---|
/policy/entities/device-control-precedence/v1 |
- Produces: application/json
Name | Service | Uber | Type | Data type | Description |
---|---|---|---|---|---|
body |
|
|
body | dictionary | Full body payload in JSON format. |
ids |
|
|
body | string or list of strings | Device Control Policy ID(s) to adjust precedence. |
platform_name |
|
|
body | string | OS platform name. (Linux, Mac, Windows) |
from falconpy import DeviceControlPolicies
# Do not hardcode API credentials!
falcon = DeviceControlPolicies(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
id_list = 'ID1,ID2,ID3' # Can also pass a list here: ['ID1', 'ID2', 'ID3']
response = falcon.set_precedence(ids=id_list, platform_name="string")
print(response)
from falconpy import DeviceControlPolicies
# Do not hardcode API credentials!
falcon = DeviceControlPolicies(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
id_list = 'ID1,ID2,ID3' # Can also pass a list here: ['ID1', 'ID2', 'ID3']
response = falcon.setDeviceControlPoliciesPrecedence(ids=id_list, platform_name="string")
print(response)
from falconpy import APIHarnessV2
# Do not hardcode API credentials!
falcon = APIHarnessV2(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
id_list = 'ID1,ID2,ID3' # Can also pass a list here: ['ID1', 'ID2', 'ID3']
BODY = {
"ids": id_list,
"platform_name": "string"
}
response = falcon.command("setDeviceControlPoliciesPrecedence", body=BODY)
print(response)
Retrieve a set of Device Control Policies by specifying their IDs
get_policies
Method | Route |
---|---|
/policy/entities/device-control/v1 |
- Produces: application/json
Name | Service | Uber | Type | Data type | Description |
---|---|---|---|---|---|
ids |
|
|
query | string or list of strings | The ID(s) of the Device Control Policies to return. |
parameters |
|
|
query | dictionary | Full query string parameters payload in JSON format. |
from falconpy import DeviceControlPolicies
# Do not hardcode API credentials!
falcon = DeviceControlPolicies(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_policies(ids=id_list)
print(response)
from falconpy import DeviceControlPolicies
# Do not hardcode API credentials!
falcon = DeviceControlPolicies(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
id_list = 'ID1,ID2,ID3' # Can also pass a list here: ['ID1', 'ID2', 'ID3']
response = falcon.getDeviceControlPolicies(ids=id_list)
print(response)
from falconpy import APIHarnessV2
# Do not hardcode API credentials!
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("getDeviceControlPolicies", ids=id_list)
print(response)
Create Device Control Policies by specifying details about the policy to create
create_policies
Method | Route |
---|---|
/policy/entities/device-control/v1 |
- Produces: application/json
Name | Service | Uber | Type | Data type | Description |
---|---|---|---|---|---|
body |
|
|
body | dictionary | Full body payload in JSON format. |
description |
|
|
body | string | Device Control Policy description. |
clone_id |
|
|
body | string | Device Control Policy ID to clone. |
name |
|
|
body | string | Device Control Policy name. |
platform_name |
|
|
body | string | Device Control Policy platform. |
settings |
|
|
body | dictionary | Device Control specific settings. |
from falconpy import DeviceControlPolicies
# Do not hardcode API credentials!
falcon = DeviceControlPolicies(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
dc_settings = {
"classes": [
{
"action": "FULL_ACCESS",
"exceptions": [
{
"action": "string",
"class": "string",
"combined_id": "string",
"id": "string",
"match_method": "string",
"product_id": "string",
"product_id_decimal": "string",
"product_name": "string",
"serial_number": "string",
"vendor_id": "string",
"vendor_id_decimal": "string",
"vendor_name": "string"
}
],
"id": "string"
}
],
"end_user_notification": "TRUE",
"enforcement_mode": "string",
"id": "string"
}
response = falcon.create_policies(clone_id="string",
description="string",
name="string",
platform_name="string",
settings=dc_settings
)
print(response)
from falconpy import DeviceControlPolicies
# Do not hardcode API credentials!
falcon = DeviceControlPolicies(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
dc_settings = {
"classes": [
{
"action": "FULL_ACCESS",
"exceptions": [
{
"action": "string",
"class": "string",
"combined_id": "string",
"id": "string",
"match_method": "string",
"product_id": "string",
"product_id_decimal": "string",
"product_name": "string",
"serial_number": "string",
"vendor_id": "string",
"vendor_id_decimal": "string",
"vendor_name": "string"
}
],
"id": "string"
}
],
"end_user_notification": "TRUE",
"enforcement_mode": "string",
"id": "string"
}
response = falcon.createDeviceControlPolicies(clone_id="string",
description="string",
name="string",
platform_name="string",
settings=dc_settings
)
print(response)
from falconpy import APIHarnessV2
# Do not hardcode API credentials!
falcon = APIHarnessV2(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
BODY = {
"resources": [
{
"clone_id": "string",
"description": "string",
"name": "string",
"platform_name": "Windows",
"settings": {
"classes": [
{
"action": "FULL_ACCESS",
"exceptions": [
{
"action": "string",
"class": "string",
"combined_id": "string",
"id": "string",
"match_method": "string",
"product_id": "string",
"product_id_decimal": "string",
"product_name": "string",
"serial_number": "string",
"vendor_id": "string",
"vendor_id_decimal": "string",
"vendor_name": "string"
}
],
"id": "string"
}
],
"end_user_notification": "TRUE",
"enforcement_mode": "string",
"id": "string"
}
}
]
}
response = falcon.command("createDeviceControlPolicies", body=BODY)
print(response)
Delete a set of Device Control Policies by specifying their IDs
delete_policies
Method | Route |
---|---|
/policy/entities/device-control/v1 |
- Produces: application/json
Name | Service | Uber | Type | Data type | Description |
---|---|---|---|---|---|
ids |
|
|
query | string or list of strings | The ID(s) of the Device Control Policies to delete. |
parameters |
|
|
query | dictionary | Full query string parameters payload in JSON format. |
from falconpy import DeviceControlPolicies
# Do not hardcode API credentials!
falcon = DeviceControlPolicies(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
id_list = 'ID1,ID2,ID3' # Can also pass a list here: ['ID1', 'ID2', 'ID3']
response = falcon.delete_policies(ids=id_list)
print(response)
from falconpy import DeviceControlPolicies
# Do not hardcode API credentials!
falcon = DeviceControlPolicies(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
id_list = 'ID1,ID2,ID3' # Can also pass a list here: ['ID1', 'ID2', 'ID3']
response = falcon.deleteDeviceControlPolicies(ids=id_list)
print(response)
from falconpy import APIHarnessV2
# Do not hardcode API credentials!
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("deleteDeviceControlPolicies", ids=id_list)
print(response)
Update Device Control Policies by specifying the ID of the policy and details to update
update_policies
Method | Route |
---|---|
/policy/entities/device-control/v1 |
- Produces: application/json
Name | Service | Uber | Type | Data type | Description |
---|---|---|---|---|---|
body |
|
|
body | dictionary | Full body payload in JSON format. |
description |
|
|
body | string | Device Control Policy description. |
id |
|
|
body | string | Device Control Policy ID to update. |
name |
|
|
body | string | Device Control Policy name. |
settings |
|
|
body | dictionary | Device control specific policy settings. |
from falconpy import DeviceControlPolicies
# Do not hardcode API credentials!
falcon = DeviceControlPolicies(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.update_policies(description="string",
id="string",
name="string",
platform_name="string"
)
print(response)
from falconpy import DeviceControlPolicies
# Do not hardcode API credentials!
falcon = DeviceControlPolicies(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.updateDeviceControlPolicies(description="string",
id="string",
name="string",
platform_name="string"
)
print(response)
from falconpy import APIHarnessV2
# Do not hardcode API credentials!
falcon = APIHarnessV2(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
BODY = {
"resources": [
{
"clone_id": "string",
"description": "string",
"name": "string",
"platform_name": "Windows",
"settings": {
"classes": [
{
"action": "FULL_ACCESS",
"exceptions": [
{
"action": "string",
"class": "string",
"combined_id": "string",
"id": "string",
"match_method": "string",
"product_id": "string",
"product_id_decimal": "string",
"product_name": "string",
"serial_number": "string",
"vendor_id": "string",
"vendor_id_decimal": "string",
"vendor_name": "string"
}
],
"id": "string"
}
],
"end_user_notification": "TRUE",
"enforcement_mode": "string",
"id": "string"
}
}
]
}
response = falcon.command("updateDeviceControlPolicies", body=BODY)
print(response)
Search for members of a Device Control Policy in your environment by providing a FQL filter and paging details. Returns a set of Agent IDs which match the filter criteria
query_policy_members
Method | Route |
---|---|
/policy/queries/device-control-members/v1 |
- Produces: application/json
Name | Service | Uber | Type | Data type | Description |
---|---|---|---|---|---|
filter |
|
|
query | string | FQL Syntax formatted string used to limit the results. |
id |
|
|
query | integer | The ID of the Device Control Policy to search for members of. |
limit |
|
|
query | integer | Maximum number of records to return. (Max: 5000) |
offset |
|
|
query | integer | Starting index of overall result set from which to return ids. |
sort |
|
|
query | string | The property to sort by. (Ex: modified_timestamp.desc) |
parameters |
|
|
query | dictionary | Full query string parameters payload in JSON format. |
from falconpy import DeviceControlPolicies
# Do not hardcode API credentials!
falcon = DeviceControlPolicies(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.query_policy_members(id="string",
filter="string",
offset=integer,
limit=integer,
sort="string"
)
print(response)
from falconpy import DeviceControlPolicies
# Do not hardcode API credentials!
falcon = DeviceControlPolicies(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.queryDeviceControlPolicyMembers(id="string",
filter="string",
offset=integer,
limit=integer,
sort="string"
)
print(response)
from falconpy import APIHarnessV2
# Do not hardcode API credentials!
falcon = APIHarnessV2(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.command("queryDeviceControlPolicyMembers",
id="string",
filter="string",
offset=integer,
limit=integer,
sort="string"
)
print(response)
Search for Device Control Policies in your environment by providing a FQL filter and paging details. Returns a set of Device Control Policy IDs which match the filter criteria
query_policies
Method | Route |
---|---|
/policy/queries/device-control/v1 |
- Produces: application/json
Name | Service | Uber | Type | Data type | Description |
---|---|---|---|---|---|
filter |
|
|
query | string | FQL Syntax formatted string used to limit the results. |
limit |
|
|
query | integer | Maximum number of records to return. (Max: 5000) |
offset |
|
|
query | integer | Starting index of overall result set from which to return ids. |
sort |
|
|
query | string | The property to sort by. (Ex: modified_timestamp.desc) |
parameters |
|
|
query | dictionary | Full query string parameters payload in JSON format. |
from falconpy import DeviceControlPolicies
# Do not hardcode API credentials!
falcon = DeviceControlPolicies(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.query_policies(filter="string",
offset=integer,
limit=integer,
sort="string"
)
print(response)
from falconpy import DeviceControlPolicies
# Do not hardcode API credentials!
falcon = DeviceControlPolicies(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.queryDeviceControlPolicies(filter="string",
offset=integer,
limit=integer,
sort="string"
)
print(response)
from falconpy import APIHarnessV2
# Do not hardcode API credentials!
falcon = APIHarnessV2(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
response = falcon.command("queryDeviceControlPolicies",
filter="string",
offset=integer,
limit=integer,
sort="string"
)
print(response)