Purpose
This guide explains how to configure the Cisco AMP (now branded Cisco Secure Endpoint) Response integration in Logsign so that Incidents and Alarms can automatically, or an analyst can manually, take action on an endpoint from within Logsign: isolating a compromised host from the network, moving it into a different policy group, adding a file hash to an organization-wide blocklist, or looking up computer, event, group and audit data for investigation. This is not the log collection (poller) side of the Cisco AMP integration, which is documented separately and only reads events and audit logs. This is the Response (action) integration, configured under Settings > Integrations > Responses, that lets a Logsign correlation rule or manual incident action reach out to the AMP for Endpoints console and change its state.
Cisco AMP for Endpoints exposes a REST API (the same API family the poller uses) for both reading and writing data. Logsign authenticates to this API using HTTP Basic Authentication with a 3rd Party API Client ID and API Key, the same credential mechanism as the poller side, but the Response integration needs a credential with write access because several of its methods change endpoint state rather than just reading it.
Prerequisites
- Administrator access to the Cisco AMP for Endpoints (Secure Endpoint) console, specifically the Accounts menu where API Credentials are managed. Standard analyst accounts typically do not see this screen.
- Network reachability from the Logsign server to the region-specific AMP API host on port 443 (see Step 2 for the exact hosts).
- Knowledge of which regional cloud your AMP organization is provisioned in (United States, Europe, or Asia/Pacific/Japan/China). This is not something you choose in Logsign; it must match where Cisco actually hosts your organization, or every call will fail regardless of how correct the credentials are.
- For the isolation methods specifically (isolate and release), the target endpoint's AMP connector must support isolation. This depends on the connector's operating system and version; Cisco documents Windows connector isolation support, and a computer's
isolation.availableflag (visible through the list_computers or get_isolations methods below) tells you whether a given endpoint can be isolated at all. This has not been independently verified against every connector version; treat it as something to confirm per endpoint rather than assumed. - The minimum Logsign version required for this specific Response integration was not found in the release notes reviewed for this guide and is not verified. Confirm with Logsign if you are running an older release and the Cisco Amp option does not appear under Settings > Integrations > Responses > +Device.
Step 1: Create a 3rd-Party API Client on Cisco AMP
If you already generated a Read-Only API credential for the Cisco AMP log-collection poller, do not reuse it here. This Response integration issues write requests (isolating a host, moving it between groups, adding a hash to a blocklist), which a Read-Only credential will reject with an authorization error. Create a second, dedicated credential instead, so the poller's read-only access and this integration's write access can be rotated or revoked independently of each other.
- Sign in to your AMP for Endpoints console with an administrator account.
- Go to Accounts > API Credentials (on some tenants this is under Accounts > Organization Settings > Features > Configure API Credentials).
- Click New API Credential.
- Enter an Application name that identifies this credential clearly, for example "Logsign Response Integration", to distinguish it from any read-only credential used elsewhere.
- Set the Scope to Read & Write. This is required: Read-Only scope is enough for the lookup methods described below (listing computers, events, groups, audit logs), but the isolate, release, move-to-group and add-to-blocklist actions will fail with an authorization error under a Read-Only credential.
- Click Create.
- From the resulting API Key Details screen, copy both the 3rd Party API Client ID and the API Key immediately. Cisco displays the API Key value only once; if you close the panel without copying it, you must generate a new credential pair.
Because this credential can isolate or move any endpoint in your AMP organization and can add arbitrary file hashes to an organization-wide blocklist, treat it with the same care as a privileged service account. Restrict who inside your organization can edit the Logsign Response device configuration or trigger these actions from a playbook, independent of the AMP-side scope setting.
Step 2: Configure the Integration in Logsign
In Logsign, go to Settings > Integrations > Responses, search for Cisco Amp, click Configure, then +Device. Fill in the following fields:
| Field | Required | Description |
|---|---|---|
| Device Name | Yes | A label of your choosing to identify this AMP device inside Logsign. |
| Client Id | Yes | The 3rd Party API Client ID from Step 1. |
| Api Key | Yes | The API Key from Step 1. Logsign stores this encrypted at rest. |
| Domain | Yes | The host of your region's AMP API, and only the host. See the region table and format warning below. |
Region table: AMP does not use a per-customer subdomain; only the region changes the host. Identify your region from your console's own URL (for example console.eu.amp.cisco.com means Europe), then use the matching API host below.
| Console region | Console URL looks like | Domain value to enter in Logsign |
|---|---|---|
| United States | console.amp.cisco.com | api.amp.cisco.com |
| Europe | console.eu.amp.cisco.com | api.eu.amp.cisco.com |
| Asia / Pacific / Japan / China (APJC) | console.apjc.amp.cisco.com | api.apjc.amp.cisco.com |
Format warning, verified against the integration's source code: the Domain field is used internally as a bare host, not a full URL. Enter only the host, for example api.amp.cisco.com. Do not include a https:// prefix and do not include a trailing slash or path. Correct: api.amp.cisco.com. Wrong: https://api.amp.cisco.com or api.amp.cisco.com/. If you enter a scheme prefix, the integration will try to resolve a host that literally contains "https://" and every call will fail to connect. This is a different rule from the Cisco AMP log-collection poller's URL field, which does expect the full https:// address; do not copy that value directly into this Domain field.
Logsign authenticates to the AMP API using HTTP Basic Authentication, sending the Client Id as the username and the Api Key as the password on every request, the same scheme Cisco documents for this API. There is no separate token exchange or login step.
Available Methods
Once the device is configured, these methods become available as response actions in Incident/Alarm automation rules or as manual actions from the incident view. They fall into two groups: lookup methods that only read data (safe to run freely, useful for investigation and for finding the connector_guid, group_guid or file_list_guid values the action methods need), and action methods that change something on Cisco's side.
Lookup and investigation methods
All of the following issue a GET request and do not change any AMP configuration. They are useful both for direct investigation from a playbook and for looking up the identifiers (connector_guid, group_guid, file_list_guid) that the action methods below require.
| Method | Parameters | Description |
|---|---|---|
| list_audit_logs_by_type | audit_log_type (required) | Returns the 5 most recent administrative audit log entries of the given type (for example Group, WhiteList, SignatureSet). Type values themselves come from list_audit_log_types. |
| list_audit_logs_by_event | event (required) | Returns the 5 most recent audit log entries matching a specific event name (for example "login", "create", "destroy"). |
| list_audit_logs_by_start_time | start_time (required) | Returns the 5 most recent audit log entries created at or after the given timestamp. |
| list_audit_logs_by_end_time | end_time (required) | Returns the 5 most recent audit log entries created at or before the given timestamp. |
| list_audit_logs_by_audit_user | audit_log_user (required) | Returns the 5 most recent audit log entries attributed to the given AMP console user. |
| list_audit_log_types | none | Lists the audit log type identifiers available for use with list_audit_logs_by_type. |
| list_events | limit, detection_sha256, application_sha256, connector_guid, group_guid, start_date, offset, event_type (all optional) | Lists AMP security events (detections, isolation events, scans, policy changes, and so on), filterable by any combination of the parameters above. |
| list_event_types | none | Lists the event type identifiers and descriptions usable with the event_type filter on list_events. |
| list_computers | hostname, limit, offset, internal_ip, external_ip, group_guid (all optional) | Lists endpoints (computers) enrolled in AMP, including their connector_guid, group_guid, policy, last_seen time, and isolation availability/status. This is typically the first call used to resolve a hostname or IP into the connector_guid the action methods need. |
| list_computers_activity | q, offset, limit (all optional) | Lists computers where the file or process named in q was observed, based on AMP's file/process trajectory data. |
| list_computers_user_activity | q, offset, limit (all optional) | Lists computers where the username in q was observed logged in. |
| list_computers_trajectory | connector_guid (required), q, limit (optional) | Returns the detailed event trajectory (file and process history) for a single computer. |
| list_groups | name, limit (both optional) | Lists AMP policy groups and their guid, used to resolve a group name into the group_guid that move_computer_to_a_group needs. |
| get_isolations | connector_guid (required) | Returns the current isolation status (available, status, and, if isolation is active, the unlock_code) for a single computer. Use this to check isolation.available before calling put_isolation, and to confirm the outcome of an isolate or release action. |
| list_custom_detections | limit, offset (both optional) | Lists Simple Custom Detection file lists (organization-wide SHA-256 blocklists) and their file_list_guid, needed by add_sha256_to_file_list. |
move_computer_to_a_group
Moves an endpoint into a different AMP policy group, which changes which policy (and therefore which detection/protection settings) applies to it. A common automated use is moving a compromised or suspicious host from its normal group into a stricter "Triage" or "Quarantine" group as a first-response step, ahead of or instead of full network isolation.
| Parameter | Required | Description |
|---|---|---|
| connector_guid | Yes | The target endpoint's connector GUID, obtained from list_computers. |
| group_guid | Yes | The destination group's GUID, obtained from list_groups. |
Unverified, read directly from the integration's source code: the request this method sends is a PATCH to /v1/groups/{connector_guid} with {"group_guid": "..."} as the body, using the endpoint's connector_guid as the path parameter under the groups resource. Cisco's own published guidance and community examples describe this operation as a PATCH to /v1/computers/{connector_guid} instead, with the same body. This is a discrepancy found by reading the code, not a live test result (no test tenant credentials were available while writing this guide). Test move_computer_to_a_group against a non-critical endpoint before relying on it in an unattended playbook rule, and if it fails, this discrepancy is the first thing to check.
put_isolation
Places the endpoint into network isolation: AMP blocks all network traffic to and from the host except its own communication with the AMP cloud, a standard first-response containment step for a suspected compromise.
| Parameter | Required | Description |
|---|---|---|
| connector_guid | Yes | The endpoint's connector GUID. |
| group_guid | Yes | Required by Logsign's implementation, but not actually sent to Cisco as part of the isolation request. Read from the source code: this field plays no role in the API call itself and appears to be an unused/leftover parameter. You still need to supply a value (for example the endpoint's current group_guid from list_computers) or Logsign will reject the call before it reaches Cisco. |
| unlock_code | Yes | A passphrase set at isolation time. If an analyst needs to interact with the isolated machine locally (for example from its console) before the isolation is lifted remotely, this code is what allows a manual local unlock. Choose something you can retrieve and communicate securely if needed. |
This only works if the endpoint's connector supports isolation and reports isolation.available: true. Check this with get_isolations or list_computers first; not every connector OS/version supports isolation, and this has not been independently verified per platform as part of this guide.
delete_isolation
Releases a previously isolated endpoint back onto the network, reversing put_isolation.
| Parameter | Required | Description |
|---|---|---|
| connector_guid | Yes | The endpoint's connector GUID. |
| group_guid | Yes | Same as with put_isolation: required by Logsign but not used in the actual request sent to Cisco. Supply any current value for the endpoint (for example from list_computers) so Logsign accepts the call. |
add_sha256_to_file_list
Adds a SHA-256 file hash to an existing Simple Custom Detection list (an organization-wide blocklist). Once added, every endpoint whose policy references that list will treat any file matching the hash as malicious, which in practice blocks or quarantines it wherever it is seen across the organization, not just on one endpoint.
| Parameter | Required | Description |
|---|---|---|
| file_list_guid | Yes | The target custom detection list's GUID, obtained from list_custom_detections. The list must already exist in AMP; this method adds a hash to it, it does not create a new list. |
| sha256 | Yes | The SHA-256 hash of the file to block. |
| description | Yes | A note recorded against this blocklist entry. Required by Logsign's implementation even though Cisco's own API does not strictly require it; use it to record why the hash was added (for example the incident or alarm that triggered it) since this is the main audit trail for why a file is blocked organization-wide. |
Because this action affects every endpoint referencing the target list, not just the one involved in the triggering incident, treat it as an organization-wide action rather than a per-host one when deciding whether to automate it unattended.
Notes and Limits
- There is no dedicated "unblock hash" or "remove from group" convenience method distinct from what is listed above. To undo a move, call move_computer_to_a_group again with the original group_guid. To undo a blocklist entry, that must be done from the AMP console itself; no remove-hash method is implemented here.
- The move_computer_to_a_group request path described above (PATCH to the groups resource using the connector_guid, rather than the computers resource) is a discrepancy identified from source code review and is not live-verified. Confirm this works against your own tenant before depending on it in production automation.
- group_guid is a required input for both put_isolation and delete_isolation in Logsign's form, but the value is not actually transmitted to Cisco as part of the isolation request; it exists only to satisfy Logsign's own input validation. This does not affect the outcome of the isolation call itself, but do not expect changing it to change which group the isolation applies against.
- Isolation availability depends on the endpoint's connector (operating system and version). Always check isolation.available (via list_computers or get_isolations) before calling put_isolation; calling it on an unsupported endpoint is expected to fail.
- Cisco enforces an hourly rate limit on this API, communicated through the X-Rate-Limit-Limit / X-Rate-Limit-Remaining / X-Rate-Limit-Reset response headers, and returns HTTP 429 when it is exceeded. A busy playbook that calls lookup methods frequently (for example list_computers or list_events on every alarm) shares this same limit with the action methods; a burst of investigation calls can leave less headroom for an isolate/move action later in the same hour.
- This is a separate API credential from the one used by the Cisco AMP log-collection poller (which only needs Read-Only scope). Rotating or revoking one does not affect the other, but keep track of which credential is which so a rotation does not accidentally break both integrations at once.
- This integration covers the endpoint/computer, group, isolation, event, audit log, and Simple Custom Detection surfaces of the AMP API. It does not cover policy creation/editing, Orbital queries, or other AMP console modules; those are out of scope for this Response integration.
Troubleshooting
| Symptom | Likely cause | What to check |
|---|---|---|
| 401 Unauthorized on any method | The Client Id or Api Key is wrong, was rotated or deleted on the AMP console, or the Domain field points at the wrong regional host for these credentials (AMP credentials are tied to the region they were issued in). | Re-enter Client Id and Api Key exactly as shown once in the AMP API Key Details screen; if either was lost, generate a new credential (Step 1). Confirm the Domain value matches your console's actual region from the region table above. |
| 403 Forbidden on move_computer_to_a_group, put_isolation, delete_isolation, or add_sha256_to_file_list, while the lookup methods (list_computers, list_events, and so on) work fine | The API credential was created with Read-Only scope. Read-Only is sufficient for every lookup method but is rejected by the four action methods. | In the AMP console, check the scope of the API credential under Accounts > API Credentials. If it shows Read-Only, generate a new credential with Read & Write scope (Step 1) and update the Logsign device with the new Client Id and Api Key. |
| 429 Too Many Requests | Cisco's hourly rate limit for this API credential has been exceeded, often from a playbook that calls lookup methods on every alarm in addition to action methods. | Reduce how often lookup methods are called per incident/alarm where possible, or space out automated actions. Check the X-Rate-Limit-Remaining / X-Rate-Limit-Reset values if you have access to raw response headers through Logsign's action logs. |
| put_isolation fails or the endpoint never shows as isolated | The connector on that endpoint does not support isolation for its OS/version, or the endpoint was offline/not communicating with AMP at the time of the call. | Run get_isolations or list_computers for that connector_guid first and confirm isolation.available is true and the computer's active/last_seen status is current. |
| move_computer_to_a_group returns an error or silently has no effect | Either the group_guid or connector_guid is wrong, or the request path discrepancy described above (PATCH to the groups resource with the connector_guid, instead of the computers resource) is rejected by your tenant. | Verify both GUIDs independently with list_computers and list_groups. If the GUIDs are confirmed correct and the call still fails, treat this as the known unverified path issue and escalate for a live test against your tenant. |
| add_sha256_to_file_list returns 404 or "not found" | The file_list_guid does not exist, or belongs to a file list type other than a Simple Custom Detection list. | Run list_custom_detections and confirm the file_list_guid you are using is present in that response before calling add_sha256_to_file_list. |
| Action succeeds according to Logsign but no visible change appears in the AMP console | Console caching/propagation delay, or the action was actually rejected upstream but Logsign only surfaced a generic success from the HTTP call. | Re-check the endpoint's state directly in the AMP console (or via get_isolations / list_computers) a minute or two after the action, rather than relying only on Logsign's action log. |