Sophos Central Response Integration via API

Purpose

This guide explains how to configure the Sophos Central Response integration in Logsign so that Incidents and Alarms can automatically, or an analyst can manually, isolate an infected endpoint, trigger an on-demand scan, manage application allow/block lists, and run osquery-based Live Discovery queries against Sophos Central Endpoint Protection. This is not a log collection poller: it is a Response (action) integration, configured under Settings > Integrations > Responses > +Device, that lets a Logsign correlation rule or manual incident action reach out to Sophos Central and change endpoint state in real time.

This document is easy to confuse with two other, already documented, Sophos integrations in Logsign, so it is worth being explicit about the boundary. Sophos Central Integration via API and Sophos XDR Integration via API are both log collection pollers, configured under Settings > Data Collection, and their job is to pull alerts and events from Sophos into Logsign for analytics. This document covers a separate feature entirely: it does not collect any logs, it only sends action requests to Sophos Central in response to something already detected in Logsign. There is also a "Sophos Firewall Response Integration" article for the Sophos Firewall/XG product line, which is a different Sophos product (network firewall, not endpoint protection) with a different API and is unrelated to this guide.

The integration authenticates to Sophos Central using OAuth2 client credentials (a Client ID and Client Secret issued as an API Credential, sometimes called a "service principal" in Sophos's documentation). Every call first exchanges the Client ID and Client Secret for a short-lived bearer token, then calls Sophos's whoami endpoint to resolve the tenant ID and the tenant's regional data-center host, and only then issues the actual endpoint/isolation/scan/allow-block/Live Discovery request against that resolved host.

Prerequisites

  • A Sophos Central tenant with Endpoint Protection (Intercept X) licensed and endpoints enrolled.
  • Endpoint isolation specifically requires Intercept X Advanced with XDR or an equivalent MDR-capable license tier, per Sophos's own documentation on endpoint isolation. Accounts without this license tier are expected to be unable to use the isolation methods described below; this has not been independently confirmed against a live Logsign/Sophos pairing and should be treated as a Sophos licensing constraint to check before relying on isolation in a correlation rule.
  • A Sophos Central Super Admin account (or an account with sufficient rights) to create API Credentials. See Step 1 for the specific credential role to use instead of Super Admin for the credential Logsign will actually use.
  • Network connectivity from the Logsign server to id.sophos.com (token exchange) and api.central.sophos.com (tenant/region lookup), plus whatever regional API host Sophos resolves your tenant to afterward (see Notes and Limits). All of these are standard outbound HTTPS (443) calls to Sophos's public cloud; no inbound access to your network is required.
  • The minimum Logsign version that ships this specific Response integration is not verified against release notes; confirm with Logsign support if you are unsure whether your installed version includes it.

Step 1: Create Sophos Central API credentials

  1. Log in to Sophos Central Admin as a Super Admin.
  2. Go to Global Settings > API Credentials Management (some portal versions show this as Settings & Policies > API Credentials Management). The first time you open this page you must read and accept Sophos's terms of use for API credentials.
  3. Click Add Credential, give it a name and description, and choose a role.
  4. After creation, Sophos shows you a Client ID and a Client Secret. Copy both immediately: the Client Secret is shown only once and cannot be retrieved again later, only rotated.

Sophos Central offers several built-in roles for API credentials. Do not default to Service Principal Super Admin for this integration; it grants full CRUD access to the entire tenant, well beyond what the methods below need.

Sophos roleWhat it grantsCovers which methods below
Service Principal ManagementView and manage admins, roles, endpoints, and security policies. Cannot run or view Live Discovery queries.endpoint-list, endpoint-get, isolation-status-get, isolation-status-enabledisable, endpoint-scan, allowed-item-list/add/delete, blocked-item-list/add/delete
Service Principal ForensicsCreate, view, run, and delete Live Discovery queries. No endpoint management rights.live-discovery-queries-list, live-discovery-query-categories-get, live-discovery-query-runs-list, live-discovery-query-run-result-get
Service Principal Read-OnlyView-only access to account information. Cannot run Live Discovery queries or change anything.Not usable with this integration: every method below either changes endpoint state or requires Live Discovery run rights.
Service Principal Super AdminFull CRUD on everything, including Live Discovery.All methods below, but far beyond least privilege for this integration.

For least privilege, use Service Principal Management if you only need endpoint visibility, isolation, scanning, and allow/block list management. Use Service Principal Forensics if you only need Live Discovery. If you need both endpoint containment actions and Live Discovery from the same Logsign device configuration, be aware that Sophos's role model assigns one role per credential; whether the Sophos Central Admin console lets you select more than one role on a single credential has not been verified here. Until that is confirmed, the safe approach is to create two separate API Credentials (one Management, one Forensics) and, if Logsign requires it, configure two separate device entries under Responses, one per credential, each used only for the method group its role covers.

Note that Logsign's connection test for this integration calls the endpoint-list method internally (see Available Methods). A Forensics-only or Read-Only credential is expected to fail that connection test even if the Live Discovery methods would work fine with it, because listing endpoints is a Management-level operation. Do not read a failed connection test on a Forensics-scoped credential as proof the credential itself is broken; see Troubleshooting.

Step 2: Configure the integration in Logsign

In Logsign, go to Settings > Integrations > Responses, search for Sophos Central, click Configure, then +Device. Fill in the following fields:

FieldRequiredDescription
Device NameYesA label of your choosing to identify this Sophos Central device inside Logsign.
Client IdYesThe Client ID from the API Credential created in Step 1.
Client SecretYesThe Client Secret from the same credential. Logsign stores this encrypted at rest and only accepts it as a masked/password field, so re-paste it if you ever need to rotate it.
Insecure Skip VerifyNoA checkbox that disables TLS certificate validation on Logsign's outbound HTTPS calls to Sophos. It defaults to enabled (checked) in the current configuration form. Sophos's cloud API endpoints (id.sophos.com, api.central.sophos.com, and the resolved regional host) use valid public certificates, so there is normally no reason to skip verification; consider unchecking this unless you have a specific reason (for example, a TLS-inspecting proxy in the path) to keep it enabled.

There is no Host, Base URL, or Region field to fill in. This integration does not use a fixed regional URL list: on every call it exchanges the Client ID/Client Secret for a token against id.sophos.com, then calls api.central.sophos.com/whoami/v1 with that token to resolve your tenant ID and your tenant's actual regional data-center host, and sends the underlying request to that resolved host automatically. You do not need to know or configure which Sophos data region your tenant lives in.

After saving, use Logsign's connection test on this device before relying on it in a correlation rule. The test performs an unfiltered endpoint-list call; a successful test confirms the credential can authenticate and has at least Management-level rights, but it does not confirm that isolation, scanning, or allow/block-list writes will succeed if your credential's role is more limited in some other way, and it does not exercise Live Discovery methods at all.

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. A number of methods that exist in comparable EDR/XDR products (alert list/get/action/search, tamper protection get/update, scan exclusions, exploit mitigation management, detected exploit list/get) are present as commented-out, disabled code in this integration and are not currently available in Logsign; do not assume they exist just because Sophos's own API supports them.

Endpoint visibility

endpoint-list

Lists endpoints in the tenant, with optional filters. Calls GET /endpoint/v1/endpoints.

ParameterRequiredDescription
viewYesAmount of detail returned per endpoint. One of basic, full, summary. Defaults to full.
host_name_containsNoFilters by partial hostname match.
group_name_containsNoFilters by partial endpoint group name match.
ip_addressesNoFilters by IP address.
health_statusNoOne of bad, good, suspicious, unknown.
system_typeNoOne of computer, securityVm, server.
lockdown_statusNoOne of creatingWhitelist, installing, locked, notInstalled, registering, starting, stopping, unavailable, uninstalled, unlocked.
last_seen_after / last_seen_beforeNoDate/time bounds on when the endpoint was last seen.
isolation_statusNoOne of isolated, notIsolated.

endpoint-get

Retrieves details for a single endpoint. Calls GET /endpoint/v1/endpoints/{endpointId}.

ParameterRequiredDescription
endpoint_idYesThe Sophos Central endpoint ID. Typically obtained from a prior endpoint-list call or bound to an alarm/incident field.

Endpoint isolation (containment)

isolation-status-get

Retrieves the current isolation status of an endpoint, including when it was last isolated/released and by whom. Calls GET /endpoint/v1/endpoints/{endpointId}/isolation.

ParameterRequiredDescription
endpoint_idYesThe Sophos Central endpoint ID.

isolation-status-enabledisable

Isolates or releases an endpoint from network isolation. This is the primary containment action for this integration. Calls PATCH /endpoint/v1/endpoints/{endpointId}/isolation.

ParameterRequiredDescription
endpoint_idYesThe Sophos Central endpoint ID to isolate or release.
isolationYesEither True (isolate the endpoint) or False (release it). Defaults to True.
commentNoFree-text comment recorded against the isolation change in Sophos Central.

There is no separate unisolate/isolate pair of methods; the same method toggles both directions based on the isolation parameter, so a correlation rule that isolates an endpoint needs a second rule (or a manual action) calling this same method with isolation set to False to release it later. There is no built-in auto-release/expiry setting for this method.

Endpoint scan

endpoint-scan

Requests an on-demand scan on the specified endpoint. Calls POST /endpoint/v1/endpoints/{endpointId}/scans with an empty request body, so it always triggers Sophos's default scan behavior; there is no parameter to choose a quick scan versus a full scan from Logsign.

ParameterRequiredDescription
endpoint_idYesThe Sophos Central endpoint ID to scan.

Application control: allowed items

allowed-item-list

Lists entries on the tenant's allowed-items (allowlist) settings. Calls GET /endpoint/v1/settings/allowed-items.

ParameterRequiredDescription
page / page_sizeNoPagination controls.

allowed-item-add

Adds a new entry to the allowed-items list. Calls POST /endpoint/v1/settings/allowed-items.

ParameterRequiredDescription
item_typeYesOne of certificateSigner, path, sha256. Defaults to sha256. This determines which property the item_value is stored under on the Sophos side.
item_valueYesThe actual value to allow (a SHA-256 hash, a file path, or a certificate signer name, matching item_type).
commentYesFree-text reason for the allow entry, required by the integration even though Sophos's own API may treat it as optional.
file_nameNoAssociated file name, stored alongside the item for reference.

allowed-item-delete

Removes an entry from the allowed-items list. Calls DELETE /endpoint/v1/settings/allowed-items/{allowedItemId}.

ParameterRequiredDescription
allowed_item_idYesThe ID of the allowed-item entry, obtained from allowed-item-list or allowed-item-add's response.

There is no allowed-item-get or allowed-item-update method. To change an existing entry, delete it and add a new one; there is no way to view a single entry's full detail in isolation from the list call.

Application control: blocked items

blocked-item-list

Lists entries on the tenant's blocked-items (blocklist) settings. Calls GET /endpoint/v1/settings/blocked-items.

ParameterRequiredDescription
page / page_sizeNoPagination controls.

blocked-item-add

Adds a new entry to the blocked-items list, the primary "block this file/hash" containment action for this integration. Calls POST /endpoint/v1/settings/blocked-items.

ParameterRequiredDescription
item_typeYesOne of certificateSigner, path, sha256. Defaults to sha256.
item_valueYesThe value to block, matching item_type. Typically bound to a SHA-256 hash field from an alarm.
commentYesFree-text reason for the block entry.
file_nameNoAssociated file name, stored alongside the item for reference.

blocked-item-delete

Removes an entry from the blocked-items list. Calls DELETE /endpoint/v1/settings/blocked-items/{blockedItemId}.

ParameterRequiredDescription
blocked_item_idYesThe ID of the blocked-item entry, obtained from blocked-item-list or blocked-item-add's response.

As with allowed items, there is no blocked-item-get or blocked-item-update method; delete and re-add to change an entry.

Live Discovery (osquery-based queries)

These four methods let Logsign browse Sophos's predefined Live Discovery query catalog and read back results of queries that were already run or scheduled inside Sophos Central. There is no method in this integration to start a new Live Discovery query run from Logsign (the underlying code has a disabled, commented-out run method); Logsign can only list existing queries/categories and read results of runs that already exist in Sophos Central.

live-discovery-queries-list

Lists available Live Discovery queries. Calls GET /live-discover/v1/queries.

ParameterRequiredDescription
category_idNoFilters by query category.
search_fields / searchNoFree-text search against the query catalog.

live-discovery-query-categories-get

Lists the Live Discovery query categories available in the tenant. Calls GET /live-discover/v1/queries/categories. Takes no parameters.

live-discovery-query-runs-list

Lists Live Discovery query runs (past or in-progress executions). Calls GET /live-discover/v1/queries/runs.

ParameterRequiredDescription
statusNoFilters by run status.
resultNoFilters by run result.
category_id / query_idNoFilters by category or specific query.
page / page_sizeNoPagination controls.

live-discovery-query-run-result-get

Retrieves the results of a specific Live Discovery query run. Calls GET /live-discover/v1/queries/runs/{RunId}/results.

ParameterRequiredDescription
run_idYesThe Live Discovery run ID, obtained from live-discovery-query-runs-list.

Notes and Limits

  • Authentication is OAuth2 client credentials with a bearer token that Sophos issues valid for roughly one hour (per Sophos's own community documentation), followed by a whoami call to resolve the tenant ID and regional API host. Logsign requests a fresh token and repeats the whoami lookup on every single method call rather than caching and reusing a token across calls; this means every action from Logsign involves two upstream Sophos calls (token exchange, whoami) before the actual endpoint/isolation/scan/list/etc. request. This has an unverified impact on Sophos's per-credential rate limits under heavy automation usage; if you wire this integration into a very high-frequency correlation rule, monitor for 429 responses.
  • Sophos enforces rate limits per API credential, per account, and per originating IP, and recommends retrying 429 responses with exponential backoff and jitter. The Go implementation behind this integration does not implement any retry or backoff logic; a 429 from Sophos is returned to Logsign as a plain failed action, with no automatic retry.
  • There is no update/modify method for allowed or blocked items; only list, add, and delete exist. Changing an existing entry means deleting it and adding a replacement.
  • Endpoint isolation only toggles isolation state on a single endpoint at a time; there is no bulk isolation method exposed by this integration.
  • The Insecure Skip Verify field defaults to enabled in the current configuration form, meaning TLS certificate validation is skipped by default on outbound calls to Sophos. Sophos's cloud endpoints present valid public certificates, so this default is worth turning off unless you have a specific reason to keep it.
  • Alert management (list/get/action/search), tamper protection get/update, scan exclusion management, exploit mitigation management, and detected exploit listing are not available through this integration even though comparable functionality exists in Sophos's own API; the underlying code has these implemented but disabled/commented out.
  • This integration only covers Sophos Central Endpoint Protection response actions. It is unrelated to the Sophos Central and Sophos XDR log collection pollers, and unrelated to the separate Sophos Firewall (XG) response integration.

Troubleshooting

SymptomLikely causeWhat to check
401 error on connection test or on any actionWrong Client ID or Client Secret, or the token request to id.sophos.com failed for another reason (for example, the credential was deleted or disabled in Sophos Central after Logsign was configured).Re-enter the Client Id and Client Secret fields exactly as issued by Sophos and re-run the connection test. Confirm the API Credential still exists and is enabled in Sophos Central under API Credentials Management.
Connection test fails, but you only intend to use Live Discovery methodsThe connection test always performs an endpoint-list call, which needs Management-level (or higher) rights. A credential scoped only to Service Principal Forensics does not have those rights and is expected to fail this specific test even though Live Discovery methods may work fine with it.Confirm the credential's assigned role in Sophos Central. If it is Forensics-only, treat a failed connection test as expected and instead validate the credential by manually running a Live Discovery method (for example live-discovery-query-categories-get) from Logsign.
403 error on isolation-status-enabledisable, endpoint-scan, or the allowed/blocked-item methodsThe API credential's role does not include endpoint management rights, for example it is scoped to Read-Only or Forensics instead of Management or Super Admin.In Sophos Central, check the role assigned to the API Credential under API Credentials Management and confirm it is Service Principal Management or Service Principal Super Admin.
403 error on any of the live-discovery-* methodsThe API credential's role does not include Live Discovery rights, for example it is scoped to Management or Read-Only instead of Forensics or Super Admin.Confirm the credential's role is Service Principal Forensics or Service Principal Super Admin.
isolation-status-enabledisable fails even though the credential's role looks correctThe endpoint's license tier does not include isolation capability (Intercept X Advanced with XDR or an equivalent MDR-capable tier is required per Sophos's documentation).Confirm the endpoint's assigned Sophos product license in Sophos Central includes XDR/MDR-capable endpoint isolation, not just base Endpoint Protection.
429 Too Many RequestsSophos's rate limit for this API credential, account, or source IP has been exceeded. This integration does not retry automatically.Reduce the frequency of automated calls (for example, the trigger frequency of a correlation rule using this integration) and re-run the action manually after a short wait.
404 error with an endpoint_id, allowed_item_id, blocked_item_id, or run_id parameterThe ID does not exist, belongs to a different tenant, or was already deleted (for example, an allowed/blocked item that was removed through the Sophos Central console directly rather than through this integration).Re-run the corresponding list method (endpoint-list, allowed-item-list, blocked-item-list, or live-discovery-query-runs-list) to confirm the ID still exists before retrying the action.
Action succeeds according to Logsign, but nothing changed in Sophos CentralSome Sophos endpoints cache state; also endpoint-scan sends an empty request body and always triggers Sophos's default scan behavior, which may take time to appear as a status change in the Sophos Central console.Check the endpoint's status directly in Sophos Central after a short delay, and confirm with isolation-status-get or endpoint-get rather than assuming the Logsign action's HTTP success reflects the endpoint's final state immediately.
Was this article helpful?
0 out of 0 found this helpful

Articles in this section

See more
Become a Certified Logsign User/Administrator
Sign-up for Logsign Academy and take the courses to learn about Logsign USO Platform in detail. Enjoy the courses, and get your badges and certificates. In these courses, you'll learn how to use Logsign in your work and add value to your career.
Visit Our Blog
Our Logsign USO Platform illustrate our expertise. So do the blog. Through our blog posts, deepen your knowledge on various SecOps topics or get updated about important news & modern approaches for cybersecurity. Get into the habit of reading valuable information provided by Logsign. Be a step ahead.