Skip to main content

Microsoft Defender for Endpoint

Microsoft Defender for Endpoint is an endpoint protection tool that organizations can use to detect malware, block exploits and network-based attacks, and flag phishing sites in their network. You can bring host and security data from Microsoft Defender into Brinqa to help you detect and respond to security threats, and gain a comprehensive view of your attack surface to strengthen your cybersecurity posture.

This document details the information you must provide for the connector to authenticate with Microsoft Defender for Endpoint and how to obtain that information from Microsoft. See create a data integration for step-by-step instructions on setting up the integration.

Required connection settings

When setting up a data integration, select Microsoft Defender for Endpoint from the Connector drop-down. If you cannot find the connector in the drop-down, make sure that you have installed it first. You must provide the following information to authenticate Microsoft Defender for Endpoint with Brinqa:

  • API URL: The Microsoft Defender for Endpoint API URL. The default URL is https://api.securitycenter.microsoft.com.

  • Login URL: The Microsoft Azure authentication URL. The default URL is https://login.microsoftonline.com.

  • Client ID and Client secret: The client ID and client secret associated with the service principal, which must have permissions to log in to the Microsoft Azure Active Directory (Active AD) and return data from the Defender API.

  • Tenant ID: The unique identifier for the Active AD tenant associated with the service principal.

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:

  1. Log in to your Microsoft Azure Portal as an administrator.

  2. Navigate to and click Microsoft Entra ID.

  3. On the left-hand side of the page, click App registrations, and then click New registration.

  4. 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.

    Microsoft Defender for Endpoint application registration

  5. 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:

Microsoft Defender for Endpoint client and tenant ID

To obtain your client secret, follow these steps:

  1. Click Certificates & secrets and then click New client secret.

  2. 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.

    microsft defender client secret value

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:

  1. Navigate to API permissions > Add a permission > APIs my organization uses and select WindowsDefenderATP.

  2. 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

  3. Click Grant admin consent for default directory, and then click Yes in the confirmation dialog. Your API permissions should resemble the following:

    Microsoft Defender for Endpoint Permissions

note

For additional information about Azure AD permissions, see Microsoft Azure documentation.

Additional settings

The Microsoft Defender for Endpoint connector contains an additional option for specific configuration:

  • Maximum retries: The maximum number of times that the integration attempts to connect to the Microsoft Defender for Endpoint API before giving up and reporting a failure. The default setting is 5.

Types of data to retrieve

The Microsoft Defender for Endpoint connector can retrieve the following types of data from the Microsoft Defender API:

Table 1: Data retrieved from Microsoft Defender

Connector ObjectRequiredMaps to Data Model
Installed PackageNoInstalled Package
MachineYesHost
PackageNoPackage
VulnerabilityNoVulnerability
Vulnerability DefinitionNoVulnerability Definition
info

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.

Attribute mappings

Expand the sections below to view the mappings between the source and the Brinqa data model attributes.

Installed Package

Table 2: Installed Package attribute mappings

Source Field NameMaps to Attribute
computerDnsNamednsNames
machine.idtargets
namename
osPlatformos
rbacGroupIdLocal variable
rbacGroupNameLocal variable
software.idtype
statusstatus
uiduid
info

Local variable indicates that the field is processed within a specific context, such as a particular workflow or calculation. Unlike other attributes, local variables aren't mapped to the unified data models. They only exist on the source data model.

Machine

Table 3: Machine attribute mappings

Source Field NameMaps to Attribute
aadDeviceIdaadDeviceId, name
agentVersionLocal variable
CATEGORIEScategories
cloudProvidercloudProvider
computerDnsNamehostnames, privateDnsNames, publicDnsNames
defenderAvStatusLocal variable
deviceValueLocal variable
exclusionReasonLocal variable
exposureLevelLocal variable
healthStatusstatus
iduid
ipAddressesipAddresses, privateIpAddresses, publicIpAddress
isAadJoinedLocal variable
isExcludedLocal variable
isPotentialDuplicationLocal variable
lastSeenlastSeen
macAddressesmacAddresses
machineTagstags, instanceId
managedByLocal variable
managedByStatusLocal variable
mergedIntoMachineIdLocal variable
onBoardingStatusLocal variable
osArchitecturedescription, os
osBuilddescription, os
osPlatformdescription, os
osProcessorLocal variable
osVersionos
rbacGroupIdLocal variable
rbacGroupNameLocal variable
resourceIdLocal variable
riskScoreLocal variable
subscriptionIdLocal variable
team_idLocal variable
team_nameLocal variable
uptimeLocal variable
info

Local variable indicates that the field is processed within a specific context, such as a particular workflow or calculation. Unlike other attributes, local variables aren't mapped to the unified data models. They only exist on the source data model.

Package

Table 4: Package attribute mappings

Source Field NameMaps to Attribute
activeAlertLocal variable
categoriescategories
exposedMachinesLocal variable
iduid
impactScoreLocal variable
namename
publicExploitLocal variable
Statusstatus
vendorLocal variable
versionsLocal variable
info

Local variable indicates that the field is processed within a specific context, such as a particular workflow or calculation. Unlike other attributes, local variables aren't mapped to the unified data models. They only exist on the source data model.

Vulnerability

Table 5: Vulnerability attribute mappings

Source Field NameMaps to Attribute
cveIdtype
deviceIdtargets
deviceNamehostnames
eventTimestampsourceLastModified, lastFixed
firstSeenTimestampfirstFound
iduid
lastSeenTimestamplastFound
resultsresults
statusstatus, statusCategory
vulnerabilitySeverityLevelseverity, sourceSeverity
info

Local variable indicates that the field is processed within a specific context, such as a particular workflow or calculation. Unlike other attributes, local variables aren't mapped to the unified data models. They only exist on the source data model.

Vulnerability Definition

Table 6: Vulnerability Definition attribute mappings

Source Field NameMaps to Attribute
cvssV3cvssV3BaseScore
descriptiondescription, summary
exploitTypesLocal variable
exploitUrisexploits, references
exploitVerified, publicExploit, exploitInKitexploitability
idcveIds, cveRecords, uid
namename
publishedOnpublishedDate
recommendation.isHasUnpatchableCvepatchAvailable
recommendations.getRelatedComponentaffected
recommendation.getRecommendationNamerecommendation
severityseverity, sourceSeverity
updatedOnsourceLastModified
info

Local variable indicates that the field is processed within a specific context, such as a particular workflow or calculation. Unlike other attributes, local variables aren't mapped to the unified data models. They only exist on the source data model.

Operation options

The Microsoft Defender for Endpoint connector supports the following operation options. See connector operation options for information about how to apply them.

Click the tabs below to view the supported operation options per connector object.

Table 7: Installed Package operation options

Connector ObjectOptionAll Possible ValuesDescriptionExample
PackageidAny installed package IDRetrieve installed packages with the specified ID.Key: id Value: microsoft-_-edge. This key and value combination only retrieves installed packages with the microsoft-_-edge ID.
nameAny installed package nameRetrieve installed packages with the specified name.Key: name Value: edge. This key and value combination only retrieves installed packages with the edge name.
vendorAny installed package vendorRetrieve installed packages with the specified vendor name.Key: vendor Value: microsoft. This key and value combination only retrieves installed packages with the microsoft vendor name.
note

The option keys and values are case-sensitive as they are shown in this documentation.

Synchronization types

When using the Microsoft Defender for Endpoint connector, it's important to understand the different sync interval types available:

  1. Beginning of Time (BoT)

    • BoT syncs comprehensively pull all available data from your Microsoft Defender for Endpoint environment, as specified by your integration configuration. You should use a BoT sync for initial setups or complete data refreshes.
  2. Delta

    • Delta syncs retrieve only the data that has changed over the last 14 days since your last sync. You should use delta syncs after running an initial BoT sync for regular updates, capturing new, resolved, or updated data without reprocessing all historical data.

APIs

The Microsoft defender connector uses the Microsoft Defender for Endpoint API. Specifically, it uses the following endpoints:

Table 12: Microsoft Defender for Endpoint API Endpoints

Connector ObjectAPI Endpoints
Installed PackageGET /api/software/{softwareId}/distributions
GET /api/Software/{softwareId}/machineReferences
MachineGET /api/machines
PackageGET /api/software/{softwareId}/distributions
VulnerabilityGET /api/machines/SoftwareVulnerabilityChangesByMachine
GET /api/machines/SoftwareVulnerabilitiesExport
Vulnerability DefinitionGET /api/recommendations
GET /api/recommendationsId/vulnerabilities
GET /api/vulnerabilities

Changelog

The Microsoft Defender for Endpoint connector has undergone the following changes:

3.4.5

  • Added support for CVSS calculations to the Vulnerability Definition object. As a result, the following attributes have been added to Vulnerability Definition:

    • CVSS_V2_AC
    • CVSS_V2_AI
    • CVSS_V2_AU
    • CVSS_V2_AV
    • CVSS_V2_BASE_SCORE
    • CVSS_V2_CI
    • CVSS_V2_E
    • CVSS_V2_II
    • CVSS_V2_RC
    • CVSS_V2_RL
    • CVSS_V2_TEMPORAL_SCORE
    • CVSS_V2_VECTOR
    • CVSS_V3_AC
    • CVSS_V3_AI
    • CVSS_V3_AV
    • CVSS_V3_BASE_SCORE
    • CVSS_V3_CI
    • CVSS_V3_E
    • CVSS_V3_II
    • CVSS_V3_PR
    • CVSS_V3_RC
    • CVSS_V3_RL
    • CVSS_V3_UI
    • CVSS_V3_VECTOR

3.4.4

  • No change.

3.4.3

  • No change.

3.4.2

  • No change.

3.4.1

3.4.0

  • No change.

3.3.9

  • No change.

3.3.8

  • Removed the WEAKNESSES attribute from the Package object.

3.3.6

  • Changed the WEAKNESS attribute type on the Package object from integer to string.

3.3.5

  • Added three new operation options for the Vulnerability object: rbacGroupId, severity, and status.

  • Changed the SOURCE_RISK_SCORE attribute on the Machine object to SOURCE_RISK_RATING.

3.3.1

  • Added the Installed Package and Package connector objects.

3.2.2

  • Mapped Affected Software in a CVE to the AFFECTED attribute in the Vulnerability Definition object.

3.1.17

  • Added the following attributes to the Machine object:

    • MERGED_INFO_MACHINE_ID

    • POTENTIAL_DUPLICATION

    • SOURCE_STATUS

3.1.15

  • Fixed an issue where the EXPLOITABILITY attribute in all Vulnerability Definition records was incorrectly set to 'Actively used'.

3.1.14

  • Set the INSTANCE_ID attribute in the Machine object if the source specifies a value using the instanceId tag.

3.1.13

  • Made Vulnerability and Vulnerability Definition objects as optional in data integration.

3.1.9

  • Added a delay in deleting temporary storage to avoid syncing issues.

3.1.8

  • Used 'updatedOn' instead of 'publishedOn' to fetch updates for the Vulnerability Definition object.

3.1.7

  • Enhanced to make concurrent attempts to retrieve recommendations for vulnerabilities. However, in the event of failure, it proceeds without this data.
  • Increased the default setting for Maximum Retries to 10.

3.1.6

  • Excluded 00000000-0000-0000-0000-000000000000 as a valid Azure Active Directory device ID.
  • Updated dependencies.

3.1.5

  • Fixed a null pointer exception when there's no filter provided.
  • Fixed a null pointer exception when the machine is synced from the beginning of time.

3.1.4

  • Added filtering capability to the Machine and Vulnerability Definition objects.

3.1.2

  • Made the value of the HOSTNAME attribute consistent.

3.1.1

  • Tried to generate a name for the Machine object based on its DNS name, IP addresses, or Azure Active Directory device ID.

3.1.0

  • Ignored exceptions when downloading export files.

3.0.3