Document:Cylance APIGuide. This guide is a succinct
resource for analysts, administrators, and customers
who are reviewing or evaluating the product.
Document Release Date:v2.0 rev34, December 2020
About BlackBerry Cylance®: BlackBerry Cylance
develops artificial intelligence to deliver prevention-first,
predictive security products and smart, simple, secure
solutions that change how organizations approach
endpoint security. BlackBerry Cylance provides fullspectrum predictive threat prevention and visibility
across the enterprise to combat the most notorious and
advanced cybersecurity attacks, fortifying endpoints to
promote security hygiene in the security operations
center, throughout global networks, and even on
employees’ home networks. With AI-based malware
prevention, threat hunting, automated detection and
response, and expert security services, BlackBerry
Cylance protects the endpoint without increasing staff
workload or costs.
Cylance User APIGuide, v2.0 rev34, December 2020 | 4
Get Devices43
Get Devices Extended46
Get Device Count49
Get Device51
Get Device by MAC Address53
Get Device by Hostname56
Update Device59
Get Device Threat60
Update Device Threat62
Get Zone Devices64
Get Agent Installer Link65
Delete Devices68
Global List API
Get Global List72
Add to Global List74
Delete From Global List76
Policy API
Get Policies79
Get Policy81
Create Policy98
Update Policy121
Delete Policy140
Delete Policies141
Zone API
Create Zone143
Get Zones144
Get Zone146
Get Device Zones148
Update Zone149
71
78
142
Delete Zone151
Threat API
Get Threats153
Get Threat156
Get Threat Devices158
Cylance User APIGuide, v2.0 rev34, December 2020 | 5
152
Get Threat Download URL161
Memory Protection API
Get Memory Protection Events164
Get Memory Protection Event166
Memory Violation Types168
Detection API
Get Detections172
Get Detection175
Get Recent Detections182
Get Detections CSV183
Get Detections By Severity186
Update Detection188
Delete Detection190
Delete Detections191
Package Deployment API
Create Package193
Get Packages195
Get Package199
163
171
192
Delete Package201
Create Package Execution202
Get Package Executions206
Get Package Execution210
Delete Package Execution212
Detection Rule API
Get Detection Rule List216
Get Detection Rule CSV List219
Get Detection Rule220
Validate Detection Rule224
Create Detection Rule227
Update Detection Rule232
Deactivate or Delete Detection Rule237
Get Detection Rule Natural Language Representation238
Get Detection Rule Counts239
Detection Rule Sets
215
241
Cylance User APIGuide, v2.0 rev34, December 2020 | 6
Get Detection Rule Set List242
Get Detection Rule Set CSV List245
Get Detection Rule Set246
Create Detection Rule Set250
Retrieve Default Detection Rule Set255
Update Detection Rule Set258
Delete Detection Rule Set262
Delete Multiple Detection Rule Sets263
Detection Exceptions
Get Detection Exceptions List266
Get Detection Exception CSV List268
Get Detection Exception Content269
Create Detection Exception271
Update Detection Exception275
Deactivate / Delete Detection Exception278
Device Commands
Device Commands281
Lockdown Device Command281
Get Device Lockdown History283
Get Retrieved File Results284
Request File Retrieval From Device287
Check File Retrieval Status From Device289
Focus View
Focus View293
Get Focus View List293
265
280
292
Search for Focus View Results296
Request a Focus View298
Get a Focus View Summary301
Get Focus View Results304
InstaQuery
InstaQuery307
Get InstaQueries307
Create InstaQuery310
Get InstaQuery314
Cylance User APIGuide, v2.0 rev34, December 2020 | 7
306
Get InstaQuery Results318
Archive InstaQuery321
CylanceOPTICS Policy
CylanceOPTICS Policy324
Get Detection Rule Sets to Policy Mapping324
Get Detection Rule Set for a Policy326
Update a Detection Rule Set in a Policy327
API Tools
REST Clients331
JSON Validators331
Appendix
Find File Checksum333
Windows333
macOS333
Linux333
Threat Classifications333
File Unavailable334
Trusted - Local334
PUP334
323
330
332
Dual Use335
Malware336
Scope Values for Authentication Token337
Legal Notice
Legal Notice341
340
Cylance User APIGuide, v2.0 rev34, December 2020 | 8
Application Management
- 9 -
Application Management
Cylance Console administrators can manage multiple API applications, including the access
privileges to your Cylance Console data, CylancePROTECT and CylanceOPTICS.
To Add an Application
IMPORTANT: A tenant can have up to 10 Custom Applications.
1.
Log in to the Cylance Console as an administrator. Only administrators can create an
application integration.
2. Select Settings >Integrations.
3. Click Add Application.
4.
Type an Application Name. This must be unique within your organization.
5.
Select the access privileges for a Console data type. Not selecting any checkboxes for a
data type means the application does not have access to that data type.
Cylance User APIGuide, v2.0 rev34, December 2020 | 10
Figure 1: Configure Custom Application Settings
6. Click Save. The credentials to use for the application displays.
7.
Copy and paste the Application ID and Application Secret to your API application. Or you
can click OK to close the dialog box. You can view the Application ID and Application
Secret from the Integrations page.
Note: There are some API operations listed in the Add Application matrix that can be enabled
(Global List - Read and Modify; Policy - Write, Modify, and Delete) but are not available with
the initial release. These API operations are currently under development and will be available
in a future release.
Cylance User APIGuide, v2.0 rev34, December 2020 | 11
Figure 2: View or Hide Cust om Application Settings
Data TypeDescription
CylanceOPTICS
Commands
CylanceOPTICS
Detections
CylanceOPTICS
Exceptions
CylanceOPTICSFocus
Views
CylanceOPTICS
InstaQueries
CylanceOPTICS
Policies
CylanceOPTICS
RuleSets
The CylanceOPTICS Device Commands. Includes Device Lockdown (locking
a device, retrieving history) and File Retrieval (requesting, checking, and
getting results).
The CylanceOPTICS Detection Events triggered by the Context Analysis
Engine (CAE). Enables further automation of analyzing, triaging, and
responding to malicious or suspicious activity prevented or detected by
CylanceOPTICS.
The CylanceOPTICS DetectionExceptions that adds exceptions to Detection
Rules.
The CylanceOPTICS Focus Views retrieves an information trail starting with
the first event related to an artifact from an InstaQuery result or
CylancePROTECT event.
The CylanceOPTICS InstaQuery allows searching for system artifacts stored
locally by CylanceOPTICS - files, registry key persistence points, processes,
etc.
The CylanceOPTICS settings in a Policy. This requires the Policy settings to
also be enabled.
The CylanceOPTICS set of rules that is then applied to a Policy.
CylanceOPTICS Rules The CylanceOPTICSDetection Rules that help monitor an organization for
security threats or anomalous behavior.
DevicesDevices are systems with a Cylance Agent installed. You can get information
about devices in your organization. You can also update (Modify) or remove
(Delete) devices from your organization.
GlobalListGlobal Lists include the Safe List and the Global Quarantine List. Each Global
List operation has its own set of required and optional request fields.
Cylance User APIGuide, v2.0 rev34, December 2020 | 12
Data TypeDescription
Packages
Configuration
Packages Deployment The CylanceOPTICS packages to execute on devices.
PoliciesPolicies contain the protection settings applied to devices. Policies allow
ThreatsThreat Details provide information about a file as well as reference
UsersUsers have access to the data in the Console, based on the role assigned to
ZonesEach device belongs to at least one Zone.Zones are similar to tags and
The CylanceOPTICS packages to be sent and stored on devices.
Note: CylanceOPTICS packages are not sent to devices by default.
Devices must receive a command to download a package.
adding and removing devices instead of needing to manually update each
device when you want to change the protection settings.
information about why a file is considered Safe or a Threat. Use the Threats
request to get this information.
the User. For example, an Administrator can see everything in the Console,
while a User is limited to the zones to which the User is assigned.
assist in organizing your devices.
PrivilegeDescription
DeleteAbility to delete the data.
ModifyAbility to modify existing data. Also known as update.
ReadAbility to read data but cannot create, modify, or delete the data. Also known as list.
WriteAbility to add data to the Console. Also known as create.
To Edit an Application
1.
Log in to the Cylance Console as an administrator. Only administrators can edit an
application integration.
2. Select Settings >Integrations.
3.
Click the Edit icon for the application you want to change.
Cylance User APIGuide, v2.0 rev34, December 2020 | 13
Figure 3: Edit Custom Applicat ion
4. Edit the privileges, then click Save Changes.
Figure 4: Save Cust om Application
To Delete an Application
1.
Log in to the Cylance Console as an administrator. Only administrators can delete an
application integration.
2. Select Settings >Integrations.
3.
Click the Remove icon for the application you want to remove.
Figure 5: Remove Custom Application
4. Click Remove Application to confirm the deletion.
Cylance User APIGuide, v2.0 rev34, December 2020 | 14
The Tenant ID is required for authorization. You can copy your Tenant ID from the Integrations
page.
Figure 8: Copy Tenant ID
API in Audit Logs
The API calls listed below are included in the Console Audit Log (My Account >Audit Log) when
something is created or updated. In the Audit Log, the "Who" field displays the Application
Name, not the username.
n
Policy:Create, Update, or Delete
n
Global List:Add or Delete
n
Zone:Create, Update, or Delete
Cylance User APIGuide, v2.0 rev34, December 2020 | 16
n
Tenant User:Create, Update, or Delete
n
Device:Update Device, Update Device Threat, or Delete Device
Cylance User APIGuide, v2.0 rev34, December 2020 | 17
RESTful API
- 18 -
Cylance provides RESTful APIs for registered organizations to manage their resources. To
access the CylanceAPI resources, the client will need to follow the authentication and
authorization flow as defined below. This requires the client to send a request to the Auth
endpoint, which will return an access token that the client will use for calling all other endpoints.
Note: Cylance supports CylanceAPIresources, including helping users troubleshoot Cylance
APIrequests. Cylance does not write or train users on how to create scripts or code (like using
Python).
Authentication and Authorization
Application
An Application acts as an integration point between the client system and the Cylance API.
Through the Application, the client system is granted temporary access to act upon resources.
Actions will be limited by the scopes associated to the Application itself, as defined in the
"Application Management" on page10 section.
Service Endpoint
The service endpoint address can contain a region code to identify the set of servers to which
your organization belongs.
Example for Europe - Central:http://protectapi-euc1.cylance.com/devices/v2
Note: North America and USGovernment have a different format. See Service Endpoint column
below for examples.
RegionCodeService Endpoint with Region Code
Asia-Pacific - Northapne1
Asia-Pacific - Southeastau
Europe - Centraleuc1
North America
South Americasae1
USGovernmentus
https://protectapi-apne1.cylance.com/
https://protectapi-au.cylance.com/
https://protectapi-euc1.cylance.com/
https://protectapi.cylance.com/
https://protectapi-sae1.cylance.com/
https://protectapi.us.cylance.com/
Cylance User APIGuide, v2.0 rev34, December 2020 | 19
Authentication
During the step which a client system requests access prior to using Cylance Resources, there
is an independent Web API that will handle the Authentication process and grant access to the
client system. A token based authentication approach is being taken as a means of data
transportation between the parties. Cylance has adopted JWT(RFC 7519) as the token format
for its simplicity as well as its capabilities for digital signature.
The following actors exist in the Authentication workflow:
n
Authentication Token:Created and signed by the client system to perform an
Authentication request, it is in this request where the Application is indicated.
n
Authentication Endpoint: Part of the Cylance Auth Web API which will handle the
authentication requests coming from client systems, there will be a particular endpoint to
handle JWT tokens.
n
Access Token:If authentication is successful and the client system is granted access to
the requested application, a token representing this identity and some key attributes will
be returned as a JWT token.
Authentication Token
The Authentication Token contains the ID of the Application to which a client system is
requesting access. The Application contains two attributes: Application ID and Application
Secret, the latter is cryptographic nonce used to sign the token, thus ensuring the authenticity
of the caller and therefore, it must be shared between client and server. The Authentication
endpoint has a mechanism to verify the signature and eventually proceed to grant access to the
Application, if the client request is indeed allowed.
The client will create the Authentication token by indicating the Application ID as a claim and
sign it using the Application Secret.
The Authentication Token must have the following claims. All are registered and conform to the
JWTstandard.
ClaimTypeDescription
Registered Claims
expNumericDate
Date and time when the Token expires and is no longer valid for
processing. This is Unix epoch time in seconds.
Note: The longest time-span honored by the service is 30 minutes from
the value specified in the iat claim. Specifying a longer time-span will
result in an HTTP 400 (Bad Request) response from the server.
Cylance User APIGuide, v2.0 rev34, December 2020 | 20
ClaimTypeDescription
iatNumericDate
issStringOrUri
jtiString
subStringOrUri
Time when the token was issued. This is Unix epoch time in seconds.
Represents the principal issuing the token, which is
Unique ID for the token, which can be used to prevent reply attacks.
Principal subject to the claim. In our case, this would hold our Application
ID.
http://cylance.com
Custom Claims
scpString
tidString
Comma delimited scopes requested. This claim is optional.
Tenant ID (available on the Integrations page in the Console).
The Authentication Token can be generated using Python. You can use the Python example
below, adding the required token claims that you need.
Note: Cylance Support does not provide assistance with installing non-Cylance programs (like
Python) or security (lke PyJWT). Cylance does have a knowledge base article with an example
for installing Python and PyJWT on Windows; this example is provided AS-IS and there is no
guarantee the example will work in your environment.
Software Requirements:
n Python 3.7 (latest version recommended)
n PyJWT package (pip install PyJWT)
Cylance User APIGuide, v2.0 rev34, December 2020 | 21
n Requests package (pip install requests)
Notes:
n Copying the Python Example from the PDF requires proper formatting in Python due to
the extra line breaks that can cause an error. Use the Python and PyJWT on Windows
knowledge base article to copy the example.
n Example using C# are available upon request.
PythonExample
# WARNING:Copying this example from the PDF requires proper
# formatting in Python due to the extra lines breaks that
# can cause an error.
# RECOMMENDED:Use the Python and PyJWT on Windows knowledge base
# article to copy the example.
import jwt # PyJWT version 1.7.1 as of the time of authoring.
import uuid
import requests # requests version 2.22.0 as of the time of authoring
import json
from datetime import datetime, timedelta
# 30 minutes from now
timeout = 1800
now = datetime.utcnow()
timeout_datetime = now + timedelta(seconds=timeout)
epoch_time = int((now - datetime(1970, 1, 1)).total_seconds())
epoch_timeout = int((timeout_datetime - datetime(1970, 1, 1)).total_
seconds())
jti_val = str(uuid.uuid4())
tid_val = "" # The tenant's unique identifier.
app_id = "" # The application's unique identifier.
app_secret = "" # The application's secret to sign the auth token
with.
"exp": epoch_timeout,
"iat": epoch_time,
"iss": "http://cylance.com",
"sub": app_id,
"tid": tid_val,
"jti": jti_val
# The following is optional and is being noted here as an example
on how one can restrict
# the list of scopes being requested
# "scp":
Cylance User APIGuide, v2.0 rev34, December 2020 | 22
Cylance User APIGuide, v2.0 rev34, December 2020 | 23
},
"request": ["auth_token"]
}
Authorization
In response to the Authentication request, the client will receive a response that contains at
least the Access Token. The access token will contain the Scopes that will dictate what can or
cannot be done. This token is signed by the server and the client will merely echo it on every
request as it tries to access Resources.
The access token represents the identity of the requester as well as some attributes like
Scopes. This token will have an expiration and should be sent on every request in the
Authorization Request Header. Failing to do so will result in an HTTP/1.1 401 Unauthorized
response. Should the token be provided and prove to be legitimate but the server finds the
action the caller is trying to attempt is not allowed (found in the scopes granted), an HTTP/1.1
403 Forbidden will be returned.
Access Token
The Access token represents a grant to access Cylance Resources. It contains information about
the identity of the caller (Application) as well as control information form the Token itself, for
instance, date it was issued and expiration. This token is also responsible for holding all Scopes
that would be used by our system to validate actions attempted to be taken against Cylance
Resources.
There is an expiration associated to this Token. The expiration time will be set during token
creation on the server side. After the token expires, the server will respond with HTTP/1.1 401
Unauthorized indicating to the caller to authenticate again with a new access token.
Response Status Codes
Each APIrequest will receive a response with a JSON payload and a standard HTTPstatus
code.
Note: Some API request sections include additional response status descriptions (specific to that
request) to help you troubleshoot issues.
Status
Code
Description
200 - OKA successful call and operation. The response payload will be JSON, structured
according to the nature of the request.
Cylance User APIGuide, v2.0 rev34, December 2020 | 24
Status
Code
Description
400 - Bad
Request
401 Unauthorized
403 Forbidden
404 - Not
Found
409 - Conflict A request was made to create or update an aspect of the resource that conflicts with
500 - Internal
Server Error
501 - Not
Implemented
OtherContact Cylance Support if you encounter any status codes that are not on this list.
There was a problem with the structure of the request or the payload. If determinable,
the response payload will identify the failure in the request. A common case of this type
of error is malformed JSON in the request body. A JSON validator can be used to
troubleshoot these issues.
Invalid credentials were passed or some other failure in authentication.
Request has been successfully authenticated, but authorization to access the
requested resource was not granted.
A request was made for a resource that doesn't exist. Common causes are either an
improperly formed URL or an invalid APIkey.
another. The most common reason for this code is a Tenant name or User email that is
already in use.
A catch-all code response for any unhandled error that has occurred on the server.
Contact Cylance Support for help with this issue.
A request was made against a resource with an operation that has yet to be
implemented. Such operations should be identified accordinly in documentation.
API Rate Limit
The rate limiting for APIendpoints is 100,000 requests per day, or about 70 requests per
minute. If a tenant exceeds these limits, they will receive a 429 error - Too Many Requests. If
you encounter a 429 error, wait 60 seconds before retrying the API request.
The purpose of a rate limit is to maintain a good user experience for all APIusers. Without a
rate limit, APIendpoints can flood the server with requests that overwhelm the system and
negatively impact all users.
About Device ID
When attempting to query a CylanceOPTICS APIcall that utilizes a device ID value, be aware
of the following:
The format for the CylanceOPTICS APIdevice ID value should be:
CylanceOPTICS Example:
n 45E07F34E76B4A9EB167D6D0C510D6BA (upper case without dashes)
Cylance User APIGuide, v2.0 rev34, December 2020 | 25
Passing the device ID value as the CylancePROTECT format will return an HTTP200 status, as
if the call was successful, but you will receive an incorrect response.
CylancePROTECT Example:
n 45e07f34-e76b-4a9e-b167-d6d0c510d6ba (lower case with dashes)
To obtain the device ID, you must query the CylancePROTECT API, then format the device ID
to match the CylanceOPTICS format (see example above).
This query can be found in the Device API section of this document. Use the Get Devices and
Get Device requests from the guide. The device ID value is the field titled "id".
About Zone ID
When attempting to query a CylanceOPTICS APIcall that utilizes a zone ID value, be aware of
the following:
The format for the CylanceOPTICS APIzone ID value should be:
CylanceOPTICS Example:
n D27FF5C45C0D4F56A00DA1FB297E440E (upper case without dashes)
Passing the zone ID value as the CylancePROTECT format will return an HTTP200 status, as if
the call was successful, but you will receive an incorrect response.
CylancePROTECT Example:
n d27ff5c4-5c0d-4f56-a00d-a1fb297e440e (lower case with dashes)
To obtain the zone ID, you must query the CylancePROTECT API, then format the zone ID to
match the CylanceOPTICS format (see example above).
This query can be found in the Zone API section of this document. Use the Get Zones and Get
Zone requests from the guide.
Cylance User APIGuide, v2.0 rev34, December 2020 | 26
User API
- 27 -
Create User
Create (add) a new Console user. This requires a unique email address for the user being
created.
Service Endpoint:
n /users/v2
Example:https://protectapi.cylance.com/users/v2
Method:
n HTTP/1.1 POST
Request Header:
n Accept:application/json
n Content-Type:application/json
n Authorization:Bearer <JWTToken returned by AuthAPI> with the user:create scope
400 Bad Request - Returned for the following reasons:
n The Tenant ID cannot be retrieved from the JWTtoken
n The device's unique identifier is not valid
n The page number or page size specified is less than or equal to zero, or the page size is
greater than 200
401 Unauthorized - The JWTToken is not specified, has expired, or is otherwise invalid.
403 Forbidden - The JWTToken did not contain the proper scope to perform this action.
404 Not Found - The identifier specified doesn't belong to a device resource in the system.
500 Internal Server Error - An unforeseeable error has occurred.
Response JSONSchema Descriptions
Field
Description
Name
classification The threat classification assigned by Cylance.
cylance_
score
The Cylance score assigned to the threat.
The Cylance APIreturns a raw score of -1 to 1. Threats have a negative raw
score, while safe files have a positive raw score. The CylanceConsole only
displays threats and uses a score of 1 to 100. A raw score of -1 equals a
Console score of 100.
Cylance User APIGuide, v2.0 rev34, December 2020 | 61
Field
Description
Name
date_foundThe date and time (inUTC) when the threat was found on the device.
file_pathThe file path to the threat, includes the file name.
file_statusThe current status of the file on the device. This can be one of the following:
n Default (0) (Unsafe)
n Quarantined (1)
n Whitelisted (2)
n Suspicious (3) (Abnormal)
n FileRemoved (4) (Delete) - The file was removed from the Console.
n Corrupt (5) - The file could not be scanned. The file could be corrupt or
malformed.
nameThe name of the threat.
page_
number
page_sizeThe page size requested.
sha256The SHA256 hash for the threat.
sub_
classification
total_pagesThe total number of pages that can be retrieved, based on the page size
total_
number_of_
items
The page number requested.
The threat sub-classification assigned by Cylance.
specified.
The total number of resources.
Update Device Threat
Update the status (waive or quarantine) of a convicted threat.
Note: To update a threat on a device requires the Modify permission for the Threats privilege in
400 Bad Request - Returned for the following reasons:
n The Tenant ID cannot be retrieved from the JWTtoken
n The page number or page size specified is less than or equal to zero
401 Unauthorized - The JWTToken is not specified, has expired, or is otherwise invalid.
403 Forbidden - The JWTToken did not contain the proper scope to perform this action.
404 Not Found - The global list page requested doesn't exist.
500 Internal Server Error - An unforeseeable error has occurred.
Response JSONSchema Descriptions
Field
Description
Name
addedThe timestamp when the file was added to the list.
added_byThe tenant user ID who added the file to the list.
av_industryThe score provided by the antivirus industry.
categoryThe category for the list specified (for the Global Safe list only).
n Admin Tool
n Commercial Software
n Drivers
n Internal Application
n None
n Operating System
Cylance User APIGuide, v2.0 rev34, December 2020 | 73
Field
Description
Name
n Security Software
When using Add to Global List, the category does not include the space. For
example, AdminTool.
classification The threat classification assigned by Cylance.
cylance_
score
list_typeThe list type to which the threat belongs (Global Quarantine or Global Safe).
md5The MD5 hash for the threat.
nameThe name of the threat.
page_
number
page_sizeThe page size requested.
reasonThe reason why the file was added to the list.
sha256The SHA256 hash for the threat.
sub_
classification
total_pagesThe total number of pages that can be retrieved, based on the page size
The Cylance score assigned to the threat.
The Cylance APIreturns a raw score of -1 to 1. Threats have a negative raw
score, while safe files have a positive raw score. The Cylance Console only
displays threats and uses a score of 1 to 100. A raw score of -1 equals a
Console score of 100.
The page number requested.
The threat sub-classification assigned by Cylance.
specified.
total_
number_of_
items
The total number of resources.
Add to Global List
Add a convicted threat to either the Global Quarantine or the Global safe list for a particular
Cylance User APIGuide, v2.0 rev34, December 2020 | 87
404 Not Found - The tenant policy ID specified is valid, but no such record exists.
Response JSONSchema Descriptions
Field NameDescription
appcontrolApplication Control allows restricting any changes to applications on a
device. Only the applications that exist on a device before enabling
ApplicationControl are allowed to execute on that device. Any new
applications, as well as changes to the executables of existing applications,
will be denied.
The Agent Updater will also be disabled when Application Control is
enabled.
n allowed_folders: Allows applications and additions to the specified
folders. Must be an absolute path. Example:c:\temp_appcontrol.
n changewindow_enabled:
l 0 - Closed:No changes can be made to any applications on
the device.
l 1 - Open:Allow, edit, and run new applications on the device.
This includes updating applications.
n lockdown:
l action:
l deny:Blocks (denies) the lockdown_type.
l lockdown_type:
l executionfromexternaldrives:Executing a file from an
external drive, like a USB hard drive or USBflash drive.
l pechange:Making changes to existing applications on
the device.
checksumUsed for detecting errors that may have occurred during transmission or
storage of data.
device_controlDevice Control
n control_mode:
l Block:Does not allow the selected device_class to connect to
the device.
l FullAccess:Allows the selected device_class to connect to the
device.
n device_class:
l AndroidUSB:A portable device running Android OS, like a
l
smartphone or tablet.
Note: An Android device could connect and be identified as
Android, Still Image, or Windows Portable Device (WPD).
When blocking Android devices, consider also blocking Still
Image and Windows Portable Devices.
iOS:An Apple portable device running iOS, like an iPhone or
l
iPad.
Cylance User APIGuide, v2.0 rev34, December 2020 | 88
Field NameDescription
Note: iOSdevices will not charge when Device Control is
enabled and set to Block, unless the iOS device is powered
off. Apple includes their charging capability within functions of
the device that are required for our iOSdevice blocking
capability.
l StillImage:The device class that includes scanners, digital
cameras, multi-mode video cameras with frame capture, and
frame grabbers.
l USBCDDVDRW:A USBoptical drive.
l USBDrive:A USBhard drive or USBflash drive.
l VMWareMount:The VMware USBPassthrough that allows a
VMware virtual machine client to access USB devices
connected to the host.
l WPD - A portable device that uses the Microsoft Windows
Portable Device (WPD)driver technology, such as a mobile
phone, digital camera, and portable media players.
n exclusion_list:DeviceControl exclusions that allow full access or block
connecting a USB device. The vendor_id is required.
l comment: Optional information about why the exclusion was
added.
l control_mode:
l Block:Blocks the specified vendor_id from connecting to
the device.
l FullAccess:Allows the specified vendor_id to connect to
the device.
l date_added: The date and time the Device Control exclusion
was added to the policy.
l product_id: Some manufacturers provide a unique identifier for
each USBproduct they make.This information is optional.
l serial_number: Some manufacturers provide a unique serial
number for each USBdevice they make.This information is
optional.
l vendor_id:The unique identifier for the manufacturer of the USB
device.
file_exclusionsThe Policy Safe List identifies file exclusions specific to the policy, and any
devices assigned to the policy will allow the excluded files to run.
n av_industry:
l false:The file hash has not been identified by the anti-virus
industry.
l true:The file hash has been identified by the anti-virus industry.
n category_id:The Category selected when adding the file to the policy
Safe List.
l 1 = None
l 2 = AdminTool
Cylance User APIGuide, v2.0 rev34, December 2020 | 89
Field NameDescription
l 3 = Internal Application
l 4 = Commercial Software
l 5 = Operating System
l 6 = Drivers
l 7 = Security Software
n cloud_score: The Cylance Score displayed in the Console. The score
can go up to 100.
n file_hash:The SHA256 has for the file.This information is required.
n file_name:The name of the file. This is "null" if the filename is not
available.
n file_type:The file scanner type. Should always return 1 for executable.
n infinity: The Cylance Cloud score. This is "null" if no score is available.
n md5: The MD5 hash for the file. This information is optional.
n reason: The reason for adding the file to the policy Safe List.The
reason must be added when creating the file exclusion.
n research_class_id: The Cylance threat classification. If "infinity" is null,
then the research_class_id is not available.
l 1 = Trusted
l 2 = PUP
l 3 = Malware
l 4 = File Unavailable
l 5 = Possible PUP
l 6 = Dual Use
n research_subclass_id:Some threat classification have sub-classes to
help administrators determine if a file should be blocked or allowed to
run. See "Threat Classifications" on page333 for more information.
filetype_actionsThe Auto Quarantine of Unsafe (threat_files) and Abnormal (suspcisious_
files). (Policy >File Actions)
n actions - The setting to enable or disable Auto Quarantine and Auto
Upload.
l 0 - AutoQuarantine OFF and AutoUpload OFF
l 1 - AutoQuarantine ON and AutoUpload OFF
l 2 - AutoQuarantine OFF and AutoUpload ON
l 3 - AutoQuarantine ON and AutoUpload ON
n file_type - The only option is "executable".
n suspicious_files - Abnormal files
n threat_files - Unsafe files
logpolicyThe Agent log file settings.
n log_upload - The setting to enable or disable uploading log files.
l null - Disabled
l 1 - Enabled
Cylance User APIGuide, v2.0 rev34, December 2020 | 90
Field NameDescription
n maxlogsize - The maximum file size (in MB) for a single log file.
n retentiondays - The number of days to save log files.Log files older
than the set number of days will be deleted.
memoryviolation_
actions
The Violation Types for MemoryProtection.
All Violation Types must be included in the Request.
n memory_violations:
l lsassread (LSASSRead) - Memory belonging to the Windows
Local Security Authority process has been accessed in a
manner that indicates an attempt to obtain users' passwords.
l outofprocessallocation (Remote Allocation of Memory) - A
process has allocated memory in another process. Most
allocations will only occur within the same process. This
generally indicates an attempt to inject code or data into
another process, which may be a first step in reinforcing a
malicious presence on a system.
l outofprocessapc (Remote APC Scheduled) - A process has
diverted the execution of another process’s thread. This is
generally used by an attacker to activate a malicious presence
that has been injected into another process.
l outofprocesscreatethread (Remote Thread Creation) - A process
has created a new thread in another process. A process’s
threads are usually only created by that same process. This is
generally used by an attacker to activate a malicious presence
that has been injected into another process.
l outofprocessmap (Remote Mapping of Memory) - A process has
introduced code and/or data into another process. This may
indicate an attempt to begin executing code in another process
and thereby reinforce a malicious presence.
l outofprocessoverwritecode (Remote Overwrite Code) - A
process has modified executable memory in another process.
Under normal conditions, executable memory will not be
modified, especially by another process. This usually indicates
an attempt to divert execution in another process.
l outofprocessunmapmemory (Remote Unmap of Memory) - A
process has removed a Windows executable from the memory
of another process. This may indicate an intent to replace the
executable image with a modified copy for the purpose of
diverting execution.
l outofprocesswrite (Remote Write to Memory) - A process has
modified memory in another process. This is usually an attempt
to store code or data in previously allocated memory (see
OutOfProcessAllocation), but it is possible that an attacker is
trying to overwrite existing memory in order to divert execution
for a malicious purpose.
l outofprocesswritepe (Remote Write PEto Memory) - A process
has modified memory in another process to contain an
Cylance User APIGuide, v2.0 rev34, December 2020 | 91
Field NameDescription
executable image. Generally, this indicates that an attacker is
attempting to execute code without first writing that code to disk.
l overwritecode (Overwrite Code) - The code residing in a
process’s memory has been modified using a technique that
may indicate an attempt to bypass Data Execution Prevention
(DEP).
l stackpivot (Stack Pivot) - The stack for a thread has been
replaced with a different stack. Generally, the system will only
allocate a single stack for a thread. An attacker would use a
different stack to control execution in a way that is not blocked
by Data Execution Prevention (DEP).
l stackprotect (Stack Protect) - The memory protection of a
thread’s stack has been modified to enable execution
permission. Stack memory should not be executable, so usually
this means that an attacker is preparing to run malicious code
stored in stack memory as part of an exploit, an attempt which
would otherwise be blocked by Data Execution Prevention
(DEP).
n memory_violation_ext:
l dyldinjection (DYLDInjections) - An environment variable has
been set that will cause a shared library to be injected into a
launched process. Attacks can modify the plist of applications
like Safari or replace applications with bash scripts, causing
their modules to be loaded automatically when an application
starts.
l maliciouspayload (Malicious Payload) - A generic shellcode and
payload detection associated with exploitation has been
detected.
l trackdataread (RAMScraping) - A process is trying to read valid
magnetic stripe track data from another process. Typically
related to point of sale systems (POS).
l zeroallocate (Zero Allocate) - A null page has been allocated.
The memory region is typically reserved, but in certain
circumstances, it can be allocated. Attacks can use this to setup
privilege escalation by taking advantage of some known null
de-reference exploit, typically in the kernel.
n memory_exclusion_list:The executable files to exclude from Memory
Protection. This must be a relative path to the excluded executable file.
Example: \\temp
policyVarious policy settings are contained within this section.
All policy settings must be included in the Request.
n auto_blocking - Setting to Auto Quarantine Unsafe threats.
l 0 - Disabled
l 1 - Enabled
n auto_delete - Setting to automatically delete quarantined files after a
set number of days. If this feature is enabled, set "days_until_deleted"
Cylance User APIGuide, v2.0 rev34, December 2020 | 92
Field NameDescription
for the number of days to retain a quarantined file.
l 0 - Disabled
l 1 - Enabled
n auto_uploading - Setting to automatically upload files that Cylance has
not seen before. Cylance will perfrom an analysis on the file and
provide details to assist in manual analysis and triage.
l 0 - Disabled
l 1 - Enabled
n autoit_auto_uploading: Currently not in use.
n days_until_deleted - Setting for the number of days to retain a
quarantined file. Quarantined files older than the set number of days
will be automatically deleted. The minimum number of days is 14, the
maximum number of days is 365. The "auto-delete" setting must be
enabled.
n device_control - Setting to enable or disable the Device Control
feature.
l 0 - Disabled
l 1 - Enabled
n docx_auto_uploading:Currently not in use.
n full_disc_scan - Setting to have Cylance analyze all executable files
on disk to detect any dormant threats. This is the Background Threat
Detection setting.
l 0 - Disabled
l 1 - Run Recurring (performs a scan every nine days)
l 2 - Run Once (runs a full disk scan upon installation only)
n kill_running_threats - Setting to kill processes and children processes
regardless of the state when a threat is detected (EXE or DLL).
l 0 - Disabled
l 1 - Enabled
n logpolicy - This setting is not used.
n low_confidence_threshold - Setting to adjust the Cylance Score
threshold between Unsafe and Abnormal threats. The default is -600,
therefore:
l A Cylance Score of -600 to -1000 is Unsafe
l A Cylance Score of 0 to -599 is Abnormal
l A Cylance Score greater than 0 is Safe
n memory_exploit_detection - Setting to enable or disable the Memory
Protection feature. This affects "memory_violation_actions" ("memory_
violations" and "memory_violations_ext").
n ole_auto_uploading:Currently not in use.
n optics - Setting to enable or disable CylanceOPTICS.
l 0 - Disabled
l 1 - Enabled
n optics_application_control_auto_upload - Setting to allow the automatic
Cylance User APIGuide, v2.0 rev34, December 2020 | 93
Field NameDescription
uploading of Application Control related Focus Data.
l 0 - Disabled
l 1 - Enabled
n optics_malware_auto_upload - Setting to allow the automatic uploading
of Threat related Focus Data.
l 0 - Disabled
l 1 - Enabled
n optics_memory_defense_auto_upload - Setting to allow the automatic
uploading of Memory Protection related Focus Data.
l 0 - Disabled
l 1 - Enabled
n optics_script_control_auto_upload - Setting to allow the automatic
uploading of Script Control related Focus Data.
l 0 - Disabled
l 1 - Enabled
n optics_sensors_advanced_executable_parsing:Setting to enable
recording data fields associated with Portable Executable (PE)files,
such as File version, Import functions, and Packer types. This is
Enhanced Portable Executable Parsing in the policy settings.
l 0 - Disabled
l 1 - Enabled
n optics_sensors_advanced_powershell_visibility: Setting to enable
recording commands, arguments, scripts, and content entered directly
into the Powershell Console and the Powershell Integrated Scripting
Environment (ISE).
l 0 - Disabled
l 1 - Enabled
n optics_sensors_advanced_wmi_visibility: Setting to enable recording
additional Windows Management Instrumentation (WMI) attributes and
parameters.
l 0 - Disabled
l 1 - Disabled
n optics_sensors_dns_visibility:Setting to enable recording commands
and arguments of commands issued directly or indirectly to the
Windows Management Instrumentation (WMI)interpreter.
l 0 - Disabled
l 1 - Enabled
n optics_sensors_enhanced_process_hooking_visibility:Setting to enable
recording process information from the Win32 API and Kernel Audit
messages to detect forms of process hooking and injection.
l 0 - Disabled
l 1 - Enabled
n optics_sensors_private_network_address_visibility: Setting to enable
recording network connections within the RFC 1918 and RFC 3419
Cylance User APIGuide, v2.0 rev34, December 2020 | 94
Field NameDescription
address spaces.
l 0 - Disabled
l 1 - Enabled
n optics_sensors_windows_event_log_visibility:Setting to enable
recording Windows Security Events and their associated attributes.
l 0 - Disabled
l 1 - Enabled
n optics_set_disk_usage_maximum_fixed:Setting the maximum amount of
device storage reserved for use by CylanceOPTICS, in MB. The
minimum value is 500 and the maximum value is 1000.
Example:
n
{
"name":"optics_set_disk_usage_maximum_fixed",
"value":"1000"
}
n optics_show_notifications: Setting to enable or disable Desktop
Notifications on the endpoint for CylanceOPTICS events.
l 0 - Disabled
l 1 - Enabled
n pdf_auto_uploading:
n powershell_auto_uploading:
n prevent_service_shutdown:Setting that protects the Cylance service
from being shutdown, either manually or by another process.
l 0 - Disabled
l 1 - Enabled
n python_auto_uploading:
nn sample_copy_path:Setting to copy all file samples to a network share