
Microsoft Defender for Endpoint
Endpoint Protection- Overview
- Setup
- Data & mappings
- Operations & API
- Changelog
The Microsoft Defender for Endpoint connector integrates with the Microsoft Defender for Endpoint (ATP) REST API to synchronize endpoint inventory and threat-and-vulnerability-management (TVM) data into the Brinqa platform. It retrieves onboarded machines, installed software, and software vulnerabilities, and maps them to hosts, packages, installed packages, vulnerability findings, and vulnerability definitions.
The connector synchronizes the following categories of data:
- Machines — Onboarded devices from the Defender for Endpoint inventory, mapped to hosts
- Packages — Distinct software products discovered across machines
- Installed Packages — Software installations linking a package to the machine it is installed on
- Vulnerabilities — Per-device software vulnerability findings
- Vulnerability Definitions — CVE/recommendation definitions behind the vulnerability findings
Category: Endpoint Protection
Data retrieved from Microsoft Defender for Endpoint
| Connector Object | Required | Maps to Data Model |
|---|---|---|
| Machine | Yes | Host |
| Vulnerability | Yes | Vulnerability |
| Vulnerability Definition | Yes | Vulnerability Definition |
| Package | Yes | Package |
| Installed Package | Yes | Installed Package |
Model relationships
For detailed steps on how to view the data retrieved from Microsoft Defender for Endpoint in the Brinqa Platform, see How to view your data.
Connection settings
When setting up a data integration, select Microsoft Defender for Endpoint from the Connector dropdown and provide the following:
| Setting | Required | Default | Description |
|---|---|---|---|
| API URL | Yes | https://api.securitycenter.microsoft.com | Microsoft Defender for Endpoint API URL |
| Login URL | Yes | https://login.microsoftonline.com | Microsoft Identity Platform authentication URL |
| Client ID | Yes | — | The service principal client ID. The client ID is generated during service principal registration. |
| Client secret | No | — | The service principal client secret or password. |
| Tenant ID | Yes | — | The tenant or domain the credential is authorized for. The tenant ID is generated during service principal registration. |
| Private key | No | — | The service principal certificate credential's private key and public key. |
| Maximum retries | No | 5 | The maximum number of retry attempts before giving up a request |
| Parallelism | No | 4 | Number of threads used to download vulnerability export files in parallel (1-8, default 4; higher values are capped at 8). Applies only to full vulnerability syncs, which fetch the export as files - incremental (delta) syncs page through the API sequentially and are unaffected by this setting. |
| Fail sync on error | No | false | Fail the sync when an individual item cannot be read - a vulnerability export file that will not download/process, or a software product whose distributions or machine references are no longer available (HTTP 404). When disabled (default) the affected item is logged and skipped and the rest of the sync completes. |
| SAS URL validity (hours) | No | 6 | Number of hours the Azure Blob SAS download URLs remain valid (1–6, default 6) |
Authentication
The connector authenticates a service principal using the OAuth 2.0 client-credentials flow, and supports two mutually exclusive credential types — a client secret or a certificate (private key). When a private key is configured, certificate-based authentication is used and the client secret is ignored; otherwise the client secret is used.
Endpoint
| Method | URL |
|---|---|
POST | {loginUrl}/{tenantId}/oauth2/v2.0/token |
Request Body (form-urlencoded)
| Parameter | Value |
|---|---|
grant_type | client_credentials |
client_id | {clientId} |
client_secret | {clientSecret} |
scope | https://securitycenter.onmicrosoft.com/windowsatpservice/.default |
Usage
Once authenticated, all subsequent API requests include the bearer token, which is cached until expiry and refreshed automatically:
Authorization: Bearer <access_token>
The OAuth scope https://securitycenter.onmicrosoft.com/windowsatpservice/.default is used for both the client-secret and certificate flows.
Key and Certificate Generation
-
Generate the private key and certificate in a terminal:
# Generate private keyopenssl genpkey -algorithm RSA -out private_key.pem# Generate certificate signing request (enter the requested information at the prompts)openssl req -new -key private_key.pem -out csr.pem# Generate self-signed certificateopenssl x509 -req -in csr.pem -signkey private_key.pem -out certificate.pem -
Upload
certificate.pemin the Azure portal. -
Pass
private_key.pemandcertificate.pemtogether in the Private key input field (concatenated):-----BEGIN PRIVATE KEY-----<private_key.pem>-----END PRIVATE KEY----------BEGIN CERTIFICATE-----<certificate.pem>-----END CERTIFICATE-----
Sync Behavior
The connector supports both full and incremental (delta) syncs, and the effective behavior depends on the model and whether a sync-since timestamp is provided:
- Machine — Incremental. When a
sincetimestamp is set,lastSeen gt {since}is added to the$filter; otherwise all machines are enumerated. - Vulnerability — Incremental with full fallback. When
sinceis null, a full software-vulnerabilities export is downloaded; whensinceis set, only changes since that time are fetched (SoftwareVulnerabilityChangesByMachine, capped to a maximum of 14 days in the past). - Vulnerability Definition — Incremental. When a
sincetimestamp is set,updatedOn ge {since}is added to the CVE-catalog$filter; otherwise the full catalog is enumerated. - Package and Installed Package — Full only. The software listing has no time-based change filter, so every sync enumerates all software and its machine references.
Per-model incremental details are documented under each model's Sync Duration Parameter below.
How to obtain Microsoft Defender for Endpoint credentials
Register a Microsoft Azure application
You must create a new application for the Microsoft Defender for Endpoint connector to authenticate with Azure AD and access the Microsoft Defender for Endpoint APIs. To register an application in your Azure AD tenant, follow these steps:
-
Log in to your Microsoft Azure Portal as an administrator.
-
Navigate to and click Microsoft Entra ID.
-
On the left-hand side of the page, click App registrations, and then click New registration.
-
Give your new application a name, select the supported account types, and provide an optional Redirect URI. If you do not have a redirect URI, you can leave the field as is.

-
Click Register.
Note: For additional details about registering an application in Azure AD and creating a service principal, see Microsoft Azure documentation.
Obtain Microsoft Azure credentials
After you have created your new Microsoft Azure application, your client and tenant ID display. Copy the Application (client) ID and Directory (tenant) ID as show below:

To obtain your client secret, follow these steps:
-
Click Certificates & secrets and then click New client secret.
-
Provide a description, set an expiry date, and then click Add.
The new client secret displays. You cannot view the client secret again. There is both a Value and Secret ID. The Value field is what is needed for authentication. Copy the Value field and save it in a secure location.

Assign permissions
After you have created your new Microsoft Azure application and obtained the authentication credentials, you must assign the required permissions for the application to access your data. To do so, follow these steps:
-
Navigate to API permissions > Add a permission > APIs my organization uses and select WindowsDefenderATP.
-
Click Application permissions, grant the following permissions, and then click Add permissions:
-
Machine:
Machine.Read.All -
Security Recommendation:
SecurityRecommendation.Read.All -
Software:
Software.Read.All -
User:
User.Read.All -
Vulnerability:
Vulnerability.Read.All
-
-
Click Grant admin consent for default directory, and then click Yes in the confirmation dialog. Your API permissions should resemble the following:

Note: For additional information about Azure AD permissions, see Microsoft Azure documentation.
Generate a private key and certificate
If you choose to authenticate using a private key, you must generate a private key and certificate, upload the certificate to Azure, and then enter the combined string into the Private key field in the integration configuration.
Use your organization's approved method to generate the private key and certificate. If no method is available, or for testing purposes, you can follow the steps below to create a self-signed certificate using OpenSSL:
-
Open your terminal and generate a new private key:
openssl genpkey -algorithm RSA -out private_key.pem -
Generate a certificate signing request (CSR). Enter the required information when prompted:
openssl req -new -key private_key.pem -out csr.pem -
Generate a self-signed certificate:
openssl x509 -req -in csr.pem -signkey private_key.pem -out certificate.pem -
In the Microsoft Azure Portal, navigate to your registered Azure application.
-
On the left-hand side of the page, click Certificates & secrets, click the Certificates tab, and then click Upload certificate.
Upload the
certificate.pemfile you created in step 3. -
Click Add.
-
Combine
private_key.pemandcertificate.peminto a single string, and paste the result into the Private key field in the integration configuration. Use the following format:-----BEGIN PRIVATE KEY-----<contents of private_key.pem>-----END PRIVATE KEY----------BEGIN CERTIFICATE-----<contents of certificate.pem>-----END CERTIFICATE-----
Note: For more information, see the Microsoft documentation on certificate credentials.
Attribute mappings
Expand the sections below to view the mappings between the source and the Brinqa data model attributes:
Machine
| Source Field Name | SDM Attribute |
|---|---|
aadDeviceId (excludes all-zero GUID) | AAD_DEVICE_ID |
agentVersion | AGENT_VERSION |
computerDnsName (normalized) | HOSTNAMES |
computerDnsName (private) | PRIVATE_DNS_NAMES |
computerDnsName (public) | PUBLIC_DNS_NAMES |
| computerDnsName → lastExternalIpAddress → lastIpAddress → first ipAddress → aadDeviceId | NAME |
constants | CATEGORIES |
defenderAvStatus | AV_STATUS |
| derived from healthStatus | STATUS |
deviceValue | DEVICE_VALUE |
exclusionReason | EXCLUSION_REASON |
exposureLevel | EXPOSURE_LEVEL |
firstSeen | FIRST_SEEN |
healthStatus | HEALTH_STATUS |
ipAddresses (Ethernet), lastIpAddress, lastExternalIpAddress | IP_ADDRESSES |
ipAddresses[].macAddress (normalized) | MAC_ADDRESSES |
isAadJoined | IS_AAD_JOINED |
isExcluded | IS_EXCLUDED |
isPotentialDuplication | POTENTIAL_DUPLICATION |
lastSeen | LAST_SEEN |
| local IPs from ipAddresses, lastIpAddress | PRIVATE_IP_ADDRESSES |
machine tags (InstanceId) or vmMetadata.vmId | INSTANCE_ID |
machine.id | UID |
machineTags | TAGS |
managedBy | MANAGED_BY |
managedByStatus | MANAGED_BY_STATUS |
mergedIntoMachineId | MERGED_INFO_MACHINE_ID |
| non-local IP / lastExternalIpAddress | PUBLIC_IP_ADDRESSES |
onboardingStatus | ONBOARDING_STATUS |
| operatingSystem else computerDnsName | DESCRIPTION |
osArchitecture | OS_ARCHITECTURE |
osBuild | OS_BUILD |
osPlatform | OS_PLATFORM |
| osPlatform + version + osArchitecture + osBuild | OPERATING_SYSTEM |
osProcessor | OS_PROCESSOR |
osVersion | OS_VERSION |
rbacGroupId | RBAC_GROUP_ID |
rbacGroupName | RBAC_GROUP_NAME |
riskScore | SOURCE_RISK_RATING |
| sync timestamp | LAST_CAPTURED |
vmMetadata.cloudProvider | CLOUD_PROVIDER |
vmMetadata.resourceId | CLOUD_RESOURCE_ID |
vmMetadata.subscriptionId | CLOUD_SUBSCRIPTION_ID |
Vulnerability
| Source Field Name | SDM Attribute |
|---|---|
cveId | CVE_ID |
derived (software + disk/registry paths) | RESULTS |
| derived from status | STATUS_CATEGORY |
deviceId | TARGETS |
deviceId | DEVICE_ID |
deviceName | HOSTNAMES |
deviceName | DEVICE_NAME |
diskPaths | DISK_PATHS |
eventTimestamp | SOURCE_LAST_MODIFIED |
| eventTimestamp when status is Fixed | LAST_FIXED |
firstSeenTimestamp | FIRST_FOUND |
joined MachineResource.lastSeen | DEVICE_LAST_SEEN |
lastSeenTimestamp | LAST_FOUND |
| MSID-{cveId}-{recommendationReference} | TYPE |
| normalized status | STATUS |
normalized status (default active) | SOURCE_STATUS |
| normalized vulnerabilitySeverityLevel | SEVERITY |
rbacGroupName | RBAC_GROUP_NAME |
recommendationReference | RECOMMENDATION_REFERENCE |
recommendedSecurityUpdate | RECOMMENDED_SECURITY_UPDATE |
recommendedSecurityUpdateId | RECOMMENDED_SECURITY_UPDATE_ID |
registryPaths | REGISTRY_PATHS |
softwareName | SOFTWARE_NAME |
softwareVendor | SOFTWARE_VENDOR |
softwareVersion | SOFTWARE_VERSION |
status | PROVIDER_STATUS |
| sync timestamp | LAST_CAPTURED |
vuln.id | UID |
vuln.id | NAME |
vulnerabilitySeverityLevel | SOURCE_SEVERITY |
Vulnerability Definition
| Source Field Name | SDM Attribute |
|---|---|
!recommendation.hasUnpatchableCve (fallback securityUpdateAvailable) | PATCHABLE |
cvssV3 | CVSS_V3_BASE_SCORE |
cvssVector (parsed by the CVSS utility) | CVSS metrics (CVSS_V2_, CVSS_V3_) |
| derived from exploitVerified / publicExploit / exploitInKit | EXPLOITABILITY |
exploitTypes | EXPLOIT_TYPES |
exploitUris | EXPLOITS |
exploitUris | REFERENCES |
MSID-{cveId}-{recommendationReference} (or MSID-{cveId} / MSID-{recommendation}) | UID |
| normalized severity | SEVERITY |
publishedOn | PUBLISHED_DATE |
recommendation.recommendationName (fallback recommendedSecurityUpdate) | RECOMMENDATION |
recommendation.relatedComponent (fallback software) | AFFECTED |
severity | SOURCE_SEVERITY |
updatedOn | SOURCE_LAST_MODIFIED |
vulnerability.description | SUMMARY |
vulnerability.description | DESCRIPTION |
vulnerability.id (when CVE-*) | CVE_IDS |
vulnerability.id (when CVE-*) | CVE_RECORDS |
vulnerability.id, then vulnerability.name / recommendation name | NAME |
Package
| Source Field Name | SDM Attribute |
|---|---|
| constant active | STATUS |
| constant Package | CATEGORIES |
distributions[].version | VERSIONS |
software.activeAlert | ACTIVE_ALERT |
software.exposedMachines | EXPOSED_MACHINES |
software.id | UID |
software.impactScore | IMPACT_SCORE |
software.name | NAME |
software.publicExploit | PUBLIC_EXPLOIT |
software.vendor | VENDOR |
Installed Package
| Source Field Name | SDM Attribute |
|---|---|
| constant active | STATUS |
machine.computerDnsName | DNS_NAMES |
machine.id | TARGETS |
machine.osPlatform | OPERATING_SYSTEM |
machine.rbacGroupId | RBAC_GROUP_ID |
machine.rbacGroupName | RBAC_GROUP_NAME |
MD5 of (software.id, machine.id) | UID |
software.id | TYPE |
software.id + :: + machine.id | NAME |
Operations & API
Expand each connector object to see its operation options, delta-sync behavior, and the API it uses. See connector operation options for how to apply operation options (keys and values are case-sensitive).
Machine
Operation options
| Option | Type | Default | Description |
|---|---|---|---|
filter | String | Raw OData $filter expression | |
computerDnsName | String | Filter by computerDnsName eq | |
machineTags | String | Filter by machineTags eq | |
exposureLevel | String | Filter by exposureLevel eq | |
onboardingStatus | String | Filter by onboardingStatus eq | |
healthStatus | String | Filter by healthStatus eq | |
osPlatform | String | Filter by osPlatform eq | |
riskScore | String | Filter by riskScore eq | |
rbacGroupId | String | Filter by rbacGroupId eq (unquoted) |
Delta sync
Supported. The connector performs an incremental (delta) sync via the since sync token, filtering on lastSeen.
API
- Type: REST — Defender for Endpoint API (base
https://api.securitycenter.microsoft.com) · Endpoint:GET api/machines
Vulnerability
Operation options
| Option | Type | Default | Description |
|---|---|---|---|
rbacGroupId | String | Comma-separated RBAC group IDs (in-memory filter) | |
severity | String | Comma-separated severities (in-memory filter) | |
status | String | Comma-separated statuses (in-memory filter) | |
pageSize | String | pageSize sent to SoftwareVulnerabilityChangesByMachine on incremental syncs (max 200,000). Omitted by default, so the API default of 50,000 applies. Ignored by full exports, which are fetched as files | |
includeDeviceData | String | false skips the device fetch that enriches findings, omitting only DEVICE_LAST_SEEN. Defaults to true |
Delta sync
Supported. The connector performs an incremental (delta) sync via the since sync token, filtering on sinceTime.
API
- Type: REST — Defender for Endpoint API
Vulnerability Definition
Operation options
| Option | Type | Default | Description |
|---|---|---|---|
filter | String | Raw OData $filter expression | |
id | String | Filter by id eq | |
cvssV3 | Number | Filter by cvssV3 ge | |
severity | String | Filter by severity eq | |
pageSize | String | pageSize sent to SoftwareVulnerabilityChangesByMachine when definitions are built from an incremental per-device read (max 200,000). Omitted by default, so the API default of 50,000 applies |
Delta sync
Supported. The connector performs an incremental (delta) sync via the since sync token, filtering on updatedOn.
API
- Type: REST — Defender for Endpoint API
Package
Operation options
| Option | Type | Default | Description |
|---|---|---|---|
filter | String | Raw OData $filter expression | |
id | String | Filter by id eq | |
name | String | Filter by name eq | |
vendor | String | Filter by vendor eq |
Delta sync
Not supported. The connector performs a full sync of Package on every run and applies no incremental date filter.
API
- Type: REST — Defender for Endpoint API
Installed Package
Operation options
This object does not support any operation options.
Delta sync
Not supported. The connector performs a full sync of Installed Package on every run and applies no incremental date filter.
API
- Type: REST — Defender for Endpoint API
Changelog
The Microsoft Defender for Endpoint connector has undergone the following changes:
| Version | Description | Migration Steps |
|---|---|---|
| 3.5.15 | Bug Fixes - Device first-seen dates now reach the platform — Machine set a first-seen date on every device from Microsoft's firstSeen field, as documented, but did not declare the attribute, so the value was published with nothing to map it onto and was dropped. Machine now declares FIRST_SEEN. Devices synced from this release forward carry the date Microsoft first observed them. - Device source risk rating uses the platform attribute definition — Machine declared its own copy of this attribute rather than the platform's. The copy was identical in name, title, and type but carried no mapping metadata, and shadowing a platform attribute this way is what caused the Defender for Cloud schema failure fixed in the same release. SOURCE_RISK_RATING is unchanged for reporting purposes. | N/A |
| 3.5.13 | Bug Fixes - Device MAC addresses are now captured for all network interfaces — Previously only interfaces Microsoft reported with an interface type of "Ethernet" were captured. Devices surfaced through Device Discovery — such as printers and other IoT/unmanaged devices — are frequently reported with a different or missing interface type even when physically connected via Ethernet, which caused their MAC addresses to be silently omitted even though they are visible in the Microsoft Defender portal. These MAC addresses now sync correctly. Shared placeholder MAC addresses (all-zero, broadcast, and the Microsoft KM-TEST loopback) are excluded so unrelated devices are not incorrectly merged into a single asset. | N/A |
| 3.5.12 | Improvements - The Fail sync on error setting now governs software products as well as vulnerability export downloads. Leaving it disabled (the default) lets a sync finish while skipping the individual products Microsoft no longer has ( 404); enabling it makes those failures fail the sync instead. Any other read failure — expired credentials, revoked permissions, an API error — fails the sync regardless of this setting. - Software items skipped during a sync are now reported as errors in the connector log — each skipped item names the endpoint that returned 404, and each sync ends with a count of how many items were skipped, so partial results are never silent. Bug Fixes - Package and Installed Package syncs aborted completely when a single software product was missing — Both object types fetch additional detail for each software product individually. When Microsoft returned 404 for one product — which happens routinely on large inventories, as products are removed from the catalog between being listed and being read — that object type stopped processing and every other record in the run was discarded. The missing product is now skipped and the remaining records sync normally; a package whose version detail is missing still syncs, without its Versions attribute. - A failed software listing was reported as a successful sync — When the software listing that drives Package and Installed Package failed part-way — expired credentials, revoked permissions, an API outage — the error was logged and the sync still reported success, so a run that imported only part of the inventory, or none of it, looked no different from a complete one. Such a failure now fails the sync, making it visible in the connector run history. | N/A |
| 3.5.11 | New Features - Device enrichment can now be skipped on vulnerability syncs — A new includeDeviceData operation option controls whether the connector fetches device records in order to enrich vulnerability findings. It defaults to true, so existing behavior is unchanged. Setting it to false skips the device fetch entirely, which shortens vulnerability sync time on large tenants; the only attribute omitted is Device last seen. Improvements - Vulnerability export downloads now run with bounded parallelism using a proper thread pool, preventing unbounded thread growth on tenants with many export part files. - The Parallelism setting now defaults to 4 instead of the connector host's processor count, and values above 8 are capped. Because the connector host is shared with every other running sync, scaling this setting with the core count let a single vulnerability sync open one export download per core, competing with other connectors for memory and bandwidth. Export downloads are limited by network throughput rather than by thread count, so the lower default does not slow syncs down. Existing configurations above the cap keep working and are capped at run time rather than rejected. The setting applies to full vulnerability syncs only — delta syncs page through the API sequentially and are unaffected. - The Azure Blob SAS download-URL validity window is now configurable through the new SAS URL validity (hours) setting (1–6 hours, default 6, matching Microsoft's maximum). - Delta vulnerability syncs allow the page size to be controlled via the pageSize operation option. When not set, the API default (50,000 records per page) is used, which avoids a behavior where passing an explicit page size caused the endpoint to return empty results. Bug Fixes - Incremental vulnerability syncs returned no records — Timestamps sent as request filters had their colons percent-encoded ( %3A), a form that Microsoft's vulnerability changes endpoint does not accept; it responded with an empty result set rather than an error, so incremental syncs appeared to succeed while silently importing nothing. Query values are now encoded per RFC 3986, which leaves colons intact, and incremental vulnerability syncs return data again. - Vulnerability export files expired mid-download, losing data silently — The Azure Blob SAS download URLs were valid for only 1 hour. On large tenants whose export took longer than that to download, the remaining files failed and those vulnerabilities were dropped from the sync without an error. The validity window is now requested at 6 hours (Microsoft's maximum) by default. - Export downloads now recover from an expired SAS URL instead of failing — If a download URL still expires mid-sync, the connector re-fetches the export manifest for fresh URLs and retries the affected files, rather than failing those files with a 403. Recovery is no longer limited to the first occurrence: a sync long enough to outlast more than one validity window keeps recovering, where previously every file that expired after the first recovery was skipped and its vulnerabilities dropped from the sync without an error. - Incremental syncs skipped changes at the publication boundary — The sync watermark advanced to the time the sync ran, but Microsoft publishes vulnerability changes in roughly 6-hour batches, so the watermark landed inside a window that had not been published yet and the changes in it were never requested again. The watermark now advances to the newest change actually received, and a window that returns no records leaves it untouched so the changes are picked up once they publish. - An interrupted incremental sync no longer skips changes — The watermark is now advanced only once every record in a delta window has been handed over, rather than progressively as records arrive. Microsoft does not return a delta window in timestamp order, so a sync that stopped part-way through — a restart, a connectivity loss — could leave behind a watermark newer than changes it had not yet delivered; because the query start time snaps to a 6-hour batch boundary, those changes were never requested again. An interrupted sync now resumes from where the previous completed sync finished and re-reads the window, so no change can be passed over. | N/A |
| 3.5.10 | No changes in this release. | N/A |
| 3.5.9 | No changes in this release. | N/A |
| 3.5.8 | No changes in this release. | N/A |
| 3.5.7 | Bug Fixes - Vulnerability findings now reliably link to their Vulnerability Definitions. Definitions are now built from the same per-device vulnerability data as the findings, so every finding that carries a CVE or a recommendation resolves to a definition — including cases where Microsoft's security-recommendation catalog did not associate a device's CVE with its recommendation (for example, certain Linux/Red Hat packages), which previously left those findings without a matching definition. Improvements - Vulnerability Definitions now reflect the specific recommendation reported for a device, while still keeping a definition for every CVE in the catalog. - When a recommendation is not present in the recommendation catalog, the affected software and recommended update shown on the definition fall back to the values reported on the device. - Vulnerability findings expose the source CVE ID and recommendation reference as their own attributes ( CVE_ID, RECOMMENDATION_REFERENCE), making the definition linkage easy to verify. | • Vulnerability Definition: Definition identifiers and sources have changed. — Action: Delete existing Vulnerability Definition data, then run a full sync of Vulnerability Definitions and Vulnerabilities so findings re-link to the new definitions. |
| 3.5.6 | No changes in this release. | N/A |
| 3.5.5 | No changes in this release. | N/A |
| 3.5.4 | No changes in this release. | N/A |
| 3.5.3 | No changes in this release. | N/A |
| 3.5.2 | No changes in this release. | N/A |
| 3.5.1 | No changes in this release. | N/A |
| 3.5.0 | No changes in this release. | N/A |
| 3.4.32 | No changes in this release. | N/A |
| 3.4.31 | No changes in this release. | N/A |
| 3.4.30 | No changes in this release. | N/A |
| 3.4.29 | Improvements - Vulnerabilities that map to more than one Defender security recommendation are now synchronized as one record per recommendation, giving a more complete view of remediation options for each finding. - Vulnerability definitions that lack a CVE identifier now fall back to the associated recommendation reference so they are still synchronized instead of being dropped. | • Vulnerability: A single source vulnerability may now produce multiple records (one per recommendation). Re-sync the Defender for Endpoint connector to rebuild vulnerability data. |
| 3.4.28 | No changes in this release. | N/A |
| 3.4.27 | No changes in this release. | N/A |
| 3.4.26 | No changes in this release. | N/A |
| 3.4.25 | No changes in this release. | N/A |
| 3.4.24 | No changes in this release. | N/A |
| 3.4.23 | New Features - Added a "Device last seen" attribute to the Machine model, recording when each device was most recently observed by Defender for Endpoint. | N/A |
| 3.4.22 | No changes in this release. | N/A |
| 3.4.21 | Improvements - Reverted the vulnerability definition identifier scheme introduced in the previous release back to the original CVE-based identifier. | • Vulnerability Definition: Vulnerability definition identifiers changed. Re-sync the Defender for Endpoint connector to rebuild vulnerability definition data. |
| 3.4.20 | Improvements - Vulnerability definition identifiers are now generated using a shared utility that combines the CVE and recommendation references, improving consistency of definition keys. | • Vulnerability Definition: Vulnerability definition identifiers changed. Re-sync the Defender for Endpoint connector to rebuild vulnerability definition data. |
| 3.4.19 | No changes in this release. | N/A |
| 3.4.18 | No changes in this release. | N/A |
| 3.4.17 | New Features - Added software, recommendation, and device-context attributes to the Machine model — including software name, version and vendor, recommended security update details, disk and registry paths, RBAC group, and device ID. | N/A |
| 3.4.16 | No changes in this release. | N/A |
| 3.4.15 | No changes in this release. | N/A |
| 3.4.14 | No changes in this release. | N/A |
| 3.4.13 | No changes in this release. | N/A |
| 3.4.12 | No changes in this release. | N/A |
| 3.4.11 | No changes in this release. | N/A |
| 3.4.10 | No changes in this release. | N/A |
| 3.4.9 | No changes in this release. | N/A |
| 3.4.8 | No changes in this release. | N/A |
| 3.4.7 | No changes in this release. | N/A |
| 3.4.6 | No changes in this release. | N/A |
| 3.4.5 | No changes in this release. | N/A |
| 3.4.4 | No changes in this release. | N/A |
| 3.4.3 | No changes in this release. | N/A |
| 3.4.2 | No changes in this release. | N/A |
| 3.4.1 | No changes in this release. | N/A |
| 3.4.0 | No changes in this release. | N/A |
| 3.3.10 | No changes in this release. | N/A |
| 3.3.9 | No changes in this release. | N/A |
| 3.3.8 | No changes in this release. | N/A |
| 3.3.7 | No changes in this release. | N/A |
| 3.3.6 | No changes in this release. | N/A |
| 3.3.5 | No changes in this release. | N/A |
| 3.3.4 | Improvements - Renamed the machine "Source risk score" attribute to "Source risk rating" to better reflect the categorical risk value reported by Defender for Endpoint. | • Machine: The "Source risk score" attribute was renamed to "Source risk rating". Re-sync the Defender for Endpoint connector so machine data reflects the new attribute. |
| 3.3.3 | No changes in this release. | N/A |
| 3.3.2 | Bug Fixes - The machine "Source risk score" attribute is now stored as text rather than a number, matching the categorical risk values (for example, "High") returned by Defender for Endpoint. | • Machine: The "Source risk score" attribute changed type from numeric to text. Re-sync the Defender for Endpoint connector to rebuild machine data with the corrected type. |
| 3.3.1 | New Features - Added the Package and Installed Package models, synchronizing the software packages discovered by Defender for Endpoint and the per-device installed package inventory. | N/A |
| 3.3.0 | No changes in this release. | N/A |
| 3.2.2 | No changes in this release. | N/A |
| 3.2.1 | No changes in this release. | N/A |
| 3.2.0 | No changes in this release. | N/A |
| 3.1.18 | Dependency Upgrades - Added the CVSS calculator library used for normalizing vulnerability severity scores. | N/A |
| 3.1.17 | No changes in this release. | N/A |
| 3.1.16 | New Features - Added "Potential duplication" and "Merged info machine ID" attributes to the Machine model, surfacing devices that Defender for Endpoint has flagged as potential duplicates or merged. | N/A |
| 3.1.15 | No changes in this release. | N/A |
| 3.1.14 | Improvements - Machine tags are now split into key/value pairs, making tag values easier to consume downstream. | N/A |
| 3.1.13 | No changes in this release. | N/A |
| 3.1.12 | Dependency Upgrades - Updated the local storage and data model libraries used during synchronization. | N/A |
| 3.1.11 | No changes in this release. | N/A |
| 3.1.9 | No changes in this release. | N/A |
| 3.1.8 | No changes in this release. | N/A |
| 3.1.7 | No changes in this release. | N/A |
| 3.1.6 | No changes in this release. | N/A |
| 3.1.5 | No changes in this release. | N/A |
| 3.1.4 | No changes in this release. | N/A |
| 3.1.3 | No changes in this release. | N/A |
| 3.1.2 | No changes in this release. | N/A |
| 3.1.1 | No changes in this release. | N/A |
| 3.1.0 | Improvements - Vulnerability definitions now fall back to the related component when a product name is unavailable, reducing blank product values. - Software vulnerability export downloads now recover gracefully from individual file errors instead of failing the sync. | N/A |
| 3.0.3 | New Features - Added the Vulnerability and Vulnerability Definition models, synchronizing per-device vulnerability findings and the underlying vulnerability definitions (including exploit type information) from Defender for Endpoint. | N/A |
| 3.0.2 | Overview The Defender for Endpoint connector integrates with Microsoft Defender for Endpoint to synchronize managed devices and their security posture. Category: Endpoint Protection Models | N/A |