From f06b05d246a40d9a1b2bccfdde72a37dc4752852 Mon Sep 17 00:00:00 2001 From: jcaparas Date: Tue, 29 Aug 2017 13:40:54 -0700 Subject: [PATCH 1/4] remove apis --- ...ows-defender-advanced-threat-protection.md | 68 ------------ ...ows-defender-advanced-threat-protection.md | 77 -------------- ...ows-defender-advanced-threat-protection.md | 100 ------------------ ...ows-defender-advanced-threat-protection.md | 67 ------------ ...ows-defender-advanced-threat-protection.md | 67 ------------ ...ows-defender-advanced-threat-protection.md | 67 ------------ ...ows-defender-advanced-threat-protection.md | 83 --------------- ...ows-defender-advanced-threat-protection.md | 78 -------------- ...ows-defender-advanced-threat-protection.md | 76 ------------- ...ows-defender-advanced-threat-protection.md | 85 --------------- ...ows-defender-advanced-threat-protection.md | 78 -------------- ...ows-defender-advanced-threat-protection.md | 67 ------------ ...ows-defender-advanced-threat-protection.md | 77 -------------- ...ows-defender-advanced-threat-protection.md | 78 -------------- 14 files changed, 1068 deletions(-) delete mode 100644 windows/threat-protection/windows-defender-atp/block-file-windows-defender-advanced-threat-protection.md delete mode 100644 windows/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection.md delete mode 100644 windows/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection.md delete mode 100644 windows/threat-protection/windows-defender-atp/get-filemachineaction-object-windows-defender-advanced-threat-protection.md delete mode 100644 windows/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection.md delete mode 100644 windows/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection.md delete mode 100644 windows/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection.md delete mode 100644 windows/threat-protection/windows-defender-atp/request-sample-windows-defender-advanced-threat-protection.md delete mode 100644 windows/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection.md delete mode 100644 windows/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection.md delete mode 100644 windows/threat-protection/windows-defender-atp/stop-quarantine-file-windows-defender-advanced-threat-protection.md delete mode 100644 windows/threat-protection/windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection.md delete mode 100644 windows/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection.md delete mode 100644 windows/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection.md diff --git a/windows/threat-protection/windows-defender-atp/block-file-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/block-file-windows-defender-advanced-threat-protection.md deleted file mode 100644 index 9ae13f3020..0000000000 --- a/windows/threat-protection/windows-defender-atp/block-file-windows-defender-advanced-threat-protection.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: Block file API -description: Use this API to create calls related to blocking files from being executed in the organization. -keywords: apis, graph api, supported apis, block file -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: high -ms.date: 09/01.2017 ---- - -# Block file -Prevent a file from being executed in the organization using Windows Defender. - -## Permissions -User needs to have “secop” permissions. - -## HTTP request -``` -POST /testwdatppreview/files/{sha1}/block -``` - -## Request headers - -Header | Value -:---|:--- -Authorization | Bearer {token}. **Required**. -Content-Type | application/json - -## Request body -In the request body, supply a JSON object with the following parameters: - -Parameter | Type | Description -:---|:---|:--- -Comment | String | Comment to associate with the action. **Required**. - - -## Response -If successful, this method returns 200, Ok response code with empty body, which indicates that block message was sent to Windows Defender deployed in the organization. - - -## Example - -Request - -Here is an example of the request. - -``` -POST https://graph.microsoft.com/testwdatppreview/machines/7327b54fd718525cbca07dacde913b5ac3c85673/block -Content-type: application/json -{ - "Comment": "Block file due to alert 32123" -} - -``` - -Response - -Here is an example of the response. - - -``` -HTTP/1.1 200 Ok -``` diff --git a/windows/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection.md deleted file mode 100644 index 4cd36dd259..0000000000 --- a/windows/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: Collect investigation package API -description: Use this API to create calls related to the collecting an investigation package from a machine. -keywords: apis, graph api, supported apis, collect investigation package -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: high -ms.date: 09/01.2017 ---- - -# Collect investigation package -Collect investigation package from a machine. - -## Permissions -User needs to have “secop” permissions. - -## HTTP request -``` -POST /testwdatppreview/machines/{id}/collectInvestigationPackage -``` - -## Request headers - -Header | Value -:---|:--- -Authorization | Bearer {token}. Required. -Content-Type | application/json - -## Request body -In the request body, supply a JSON object with the following parameters: - -Parameter | Type | Description -:---|:---|:--- -Comment | Text | Comment to associate with the action. **Required**. - -## Response -If successful, this method returns 201, Created response code and _MachineAction_ object in the response body. - - -## Example - -Request - -Here is an example of the request. - -``` -POST https://graph.microsoft.com/testwdatppreview/machines/fb9ab6be3965095a09c057be7c90f0a2/collectInvestigationPackage -Content-type: application/json -{ - "Comment": "Collect forensics due to alert 1234" -} -``` - -Response - -Here is an example of the response. - ->[!NOTE] ->The response object shown here may be truncated for brevity. All of the properties will be returned from an actual call. - -``` -HTTP/1.1 201 Created -Content-type: application/json -{ - "@odata.context": "https://graph.microsoft.com/testwdatppreview/$metadata#MachineActions/$entity", - "id": "ac19aae7-4146-4a13-a786-eb43d8557f7c", - "type": "CollectInvestigationPackage", - "status": "InProgress", - "error": "Unknown" -} - -``` diff --git a/windows/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection.md deleted file mode 100644 index 259f35f8eb..0000000000 --- a/windows/threat-protection/windows-defender-atp/exposed-apis-windows-defender-advanced-threat-protection.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: Use the Windows Defender Advanced Threat Protection exposed APIs -description: Use the exposed data and actions using a set of progammatic APIs that are part of the Microsoft Intelligence Security Graph. -keywords: apis, graph api, supported apis, actor, alerts, machine, user, domain, ip, file -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: high -ms.date: 09/01.2017 ---- - -# Use the Windows Defender ATP exposed APIs - -**Applies to:** - -- Windows 10 Enterprise -- Windows 10 Education -- Windows 10 Pro -- Windows 10 Pro Education -- Windows Defender Advanced Threat Protection (Windows Defender ATP) - -Windows Defender ATP exposes much of the available data and actions using a set of programmatic APIs that are part of the Microsoft Intelligence Security Graph. Those APIs will enable you, to automate workflows and innovate based on Windows Defender ATP capabilities. The API access requires OAuth2.0 authentication. For more information, see [OAuth 2.0 Authorization Code Flow](https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oauth-code). - -In general, you’ll need to take the following steps to use the APIs: -- Create an app -- Get an access token -- Run queries on the graph API - -### Before you begin -Before using the APIs, you’ll need to create an app that you’ll use to authenticate against the graph. You’ll need to create a native app to use for the adhoc queries. - -## Create an app - -1. Log on to [Azure](https://portal.azure.com). - -2. Navigate to **Azure Active Directory** > **App registrations** > **New application registration**. - - ![Image of Microsoft Azure and navigation to application registration](images/atp-azure-new-app.png) - -3. In the Create window, enter the following information then click **Create**. - - ![Image of Create application window](images/atp-azure-create.png) - - - **Name:** WinATPGraph - - **Application type:** Native - - **Redirect URI:** `https://localhost` - - -4. Navigate and select the newly created application. - ![Image of new app in Azure](images/atp-azure-atp-app.png) - -5. Click **All settings** > **Required permissions** > **Add**. - - ![Image of All settings, then required permissions](images/atp-azure-required-permissions.png) - -6. Click **Select an API** > **Microsoft Graph**, then click **Select**. - - ![Image of API access and API selection](images/atp-azure-api-access.png) - - -7. Click **Select permissions** and select **Sign in and read user profile** then click **Select**. - - ![Image of select permissions](images/atp-azure-select-permissions.png) - -You can now use the code snippets in the following sections to query the API using the created app ID. - -## Get an access token -1. Get the Client ID from the application you created. - -2. Use the **Client ID**. For example: - ``` - private const string authority = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize"; - private const string resourceId = "https://graph.microsoft.com"; - private const string clientId = "{YOUR CLIENT ID/APP ID HERE}"; - private const string redirect = "https://localhost"; - HttpClient client = new HttpClient(); - AuthenticationContext auth = new AuthenticationContext(authority); - var token = auth.AcquireTokenAsync(resourceId, clientId, new Uri(redirect), new PlatformParameters(PromptBehavior.Auto)).Result; - client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(token.AccessTokenType, token.AccessToken); - ``` - -## Query the graph -Once the bearer token is retrieved, you can easily invoke the graph APIs. For example: - -``` -client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); -// sample endpoint -string ep = @"https://graph.microsoft.com/{VERSION}/alerts?$top=5"; -HttpResponseMessage response = client.GetAsync(ep).Result; -string resp = response.Content.ReadAsStringAsync().Result; -Console.WriteLine($"response for: {ep} \r\n {resp}"); -``` - - -## Related topics -- [Supported Windows Defender ATP APIs](supported-apis-windows-defender-advanced-threat-protection.md) diff --git a/windows/threat-protection/windows-defender-atp/get-filemachineaction-object-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/get-filemachineaction-object-windows-defender-advanced-threat-protection.md deleted file mode 100644 index b5a267b9d1..0000000000 --- a/windows/threat-protection/windows-defender-atp/get-filemachineaction-object-windows-defender-advanced-threat-protection.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: Get FileMachineAction object API -description: Use this API to create calls related to get machineaction object -keywords: apis, graph api, supported apis, filemachineaction object -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: high -ms.date: 09/01.2017 ---- - -# Get MachineAction object -Get MachineAction object - -## Permissions -User needs to have “secop” permissions. - -## HTTP request -``` -GET /testwdatppreview/filemachineactions/{id} -``` - -## Request headers - -Header | Value -:---|:--- -Authorization | Bearer {token}. **Required**. - - -## Request body -Empty - -## Response -If successful, this method returns 200, Ok response code with the *FileMachineAction* object. - - -## Example - -Request - -Here is an example of the request. - -``` -GET https://graph.microsoft.com/testwdatppreview/filemachineactions/7327b54fd718525cbca07dacde913b5ac3c85673 -``` - -Response - -Here is an example of the response. - - -``` -HTTP/1.1 200 Ok -Content-type: application/json -{ - "@odata.context": "https://graph.microsoft.com/testwdatppreview/$metadata#MachineActions/$entity", - "id": "ac19aae7-4146-4a13-a786-eb43d8557f7c", - "type": "stopAndQuarantineFile", - "status": "Success", - "error": "Unknown" -} - -``` diff --git a/windows/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection.md deleted file mode 100644 index 1fcfb04357..0000000000 --- a/windows/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: Get MachineAction object API -description: Use this API to create calls related to get machineaction object -keywords: apis, graph api, supported apis, machineaction object -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: high -ms.date: 09/01.2017 ---- - -# Get MachineAction object -Get MachineAction object - -## Permissions -User needs to have “secop” permissions. - -## HTTP request -``` -GET /testwdatppreview/machineactions/{id} -``` - -## Request headers - -Header | Value -:---|:--- -Authorization | Bearer {token}. **Required**. - - -## Request body -Empty - -## Response -If successful, this method returns 200, Ok response code with the *MachineAction* object. - - -## Example - -Request - -Here is an example of the request. - -``` -GET https://graph.microsoft.com/testwdatppreview/machineactions/7327b54fd718525cbca07dacde913b5ac3c85673 -``` - -Response - -Here is an example of the response. - - -``` -HTTP/1.1 200 Ok -Content-type: application/json -{ - "@odata.context": "https://graph.microsoft.com/testwdatppreview/$metadata#MachineActions/$entity", - "id": "ac19aae7-4146-4a13-a786-eb43d8557f7c", - "type": "UnrestrictExecution", - "status": "Success", - "error": "Unknown" -} - -``` diff --git a/windows/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection.md deleted file mode 100644 index 5c62aa0f2a..0000000000 --- a/windows/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: Get package SAS URI API -description: Use this API to get a URI that allows downloading an investigation package. -keywords: apis, graph api, supported apis, get package, sas, uri -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: high -ms.date: 09/01.2017 ---- - -# Get package SAS URI -Get a Uri that allows downloading an investigation package. - -## Permissions -User needs to have “secop” permissions. - -## HTTP request -``` -POST /testwdatppreview/machineactions/{id}/getPackageUri -``` - -## Request headers - -Header | Value -:---|:--- -Authorization | Bearer {token}. **Required**. -Content-Type | application/json - - -## Request body -Empty - -## Response -If successful, this method returns 200, Ok response code with object that holds the link to the package in the “value” parameter. This link is valid for a very short time and should be used immediately for downloading the package to a local storage. - - -## Example - -Request - -Here is an example of the request. - -``` -GET https://graph.microsoft.com/testwdatppreview/machineactions/7327b54fd718525cbca07dacde913b5ac3c85673/GetPackageUri - -``` - -Response - -Here is an example of the response. - - -``` -HTTP/1.1 200 Ok -Content-type: application/json - -{ - "@odata.context": "https://graph.microsoft.com/testrespver1/$metadata#Edm.String", - "value": "\"https://userrequests-us.securitycenter.windows.com:443/safedownload/WDATP_Investigation_Package.zip?token=gbDyj7y%2fbWGAZjn2sFiZXlliBTXOCVG7yiJ6mXNaQ9pLByC2Wxeno9mENsPFP3xMk5l%2bZiJXjLvqAyNEzUNROxoM2I1er9dxzfVeBsxSmclJjPsAx%2btiNyxSz1Ax%2b5jaT5cL5bZg%2b8wgbwY9urXbTpGjAKh6FB1e%2b0ypcWkPm8UkfOwsmtC%2biZJ2%2bPqnkkeQk7SKMNoAvmh9%2fcqDIPKXGIBjMa0D9auzypOqd8bQXp7p2BnLSH136BxST8n9IHR4PILvRjAYW9kvtHkBpBitfydAsUW4g2oDZSPN3kCLBOoo1C4w4Lkc9Bc3GNU2IW6dfB7SHcp7G9p4BDkeJl3VuDs6esCaeBorpn9FKJ%2fXo7o9pdcI0hUPZ6Ds9hiPpwPUtz5J29CBE3QAopCK%2fsWlf6OW2WyXsrNRSnF1tVE5H3wXpREzuhD7S4AIA3OIEZKzC4jIPLeMu%2bazZU9xGwuc3gICOaokbwMJiZTqcUuK%2fV9YdBdjdg8wJ16NDU96Pl6%2fgew2KYuk6Wo7ZuHotgHI1abcsvdlpe4AvixDbqcRJthsg2PpLRaFLm5av44UGkeK6TJpFvxUn%2f9fg6Zk5yM1KUTHb8XGmutoCM8U9er6AzXZlY0gGc3D3bQOg41EJZkEZLyUEbk1hXJB36ku2%2bW01cG71t7MxMBYz7%2bdXobxpdo%3d%3bRWS%2bCeoDfTyDcfH5pkCg6hYDmCOPr%2fHYQuaUWUBNVnXURYkdyOzVHqp%2fe%2f1BNyPdVoVkpQHpz1pPS3b5g9h7IMmNKCk5gFq5m2nPx6kk9EYtzx8Ndoa2m9Yj%2bSaf8zIFke86YnfQL4AYewsnQNJJh4wc%2bXxGlBq7axDcoiOdX91rKzVicH3GSBkFoLFAKoegWWsF%2fEDZcVpF%2fXUA1K8HvB6dwyfy4y0sAqnNPxYTQ97mG7yHhxPt4Pe9YF2UPPAJVuEf8LNlQ%2bWHC9%2f7msF6UUI4%2fca%2ftpjFs%2fSNeRE8%2fyQj21TI8YTF1SowvaJuDc1ivEoeopNNGG%2bGI%2fX0SckaVxU9Hdkh0zbydSlT5SZwbSwescs0IpzECitBbaLUz4aT8KTs8T0lvx8D7Te3wVsKAJ1r3iFMQZrlk%2bS1WW8rvac7oHRx2HKURn1v7fDIQWgJr9aNsNlFz4fLJ50T2qSHuuepkLVbe93Va072aMGhvr09WVKoTpAf1j2bcFZZU6Za5PxI32mr0k90FgiYFJ1F%2f1vRDrGwvWVWUkR3Z33m4g0gHa52W1FMxQY0TJIwbovD6FaSNDx7xhKZSd5IJ7r6P91Gez49PaZRcAZPjd%2bfbul3JNm1VqQPTLohT7wa0ymRiXpSST74xtFzuEBzNSNATdbngj3%2fwV4JesTjZjIj5Dc%3d%3blumqauVlFuuO8MQffZgs0tLJ4Fq6fpeozPTdDf8Ll6XLegi079%2b4mSPFjTK0y6eohstxdoOdom2wAHiZwk0u4KLKmRkfYOdT1wHY79qKoBQ3ZDHFTys9V%2fcwKGl%2bl8IenWDutHygn5IcA1y7GTZj4g%3d%3d\"" -} - -``` diff --git a/windows/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection.md deleted file mode 100644 index bdc4be053b..0000000000 --- a/windows/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -title: Isolate machine API -description: Use this API to create calls related isolating a machine. -keywords: apis, graph api, supported apis, isolate machine -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: high -ms.date: 09/01.2017 ---- - -# Isolate machine -Isolates a machine from accessing external network. - -## Permissions -User needs to have “secop” permissions. - -## HTTP request -``` -POST /testwdatppreview/machines/{id}/isolate -``` - -## Request headers - -Header | Value -:---|:--- -Authorization | Bearer {token}. Required. -Content-Type | application/json - -## Request body -In the request body, supply a JSON object with the following parameters: - -Parameter | Type | Description -:---|:---|:--- -Comment | String | Comment to associate with the action. **Required**. -IsolationType | IsolationType | Full or selective isolation - -**IsolationType** controls the type of isolation to perform and can be one of the following: -- Full – Full isolation -- Selective – Restrict only limited set of applications from accessing the network - - -## Response -If successful, this method returns 201, Created response code and _MachineAction_ object in the response body. - - -## Example - -Request - -Here is an example of the request. - -``` -POST https://graph.microsoft.com/testwdatppreview/machines/fb9ab6be3965095a09c057be7c90f0a2/isolate -Content-type: application/json -{ - "Comment": "Isolate machine due to alert 1234", - “IsolationType”: “Full” -} - -``` -Response - -Here is an example of the response. - ->[!NOTE] ->The response object shown here may be truncated for brevity. All of the properties will be returned from an actual call. - -``` -HTTP/1.1 201 Created -Content-type: application/json -{ - "@odata.context": "https://graph.microsoft.com/testwdatppreview/$metadata#MachineActions/$entity", - "id": "ac19aae7-4146-4a13-a786-eb43d8557f7c", - "type": "Isolate", - "status": "InProgress", - "error": "Unknown" -} -``` diff --git a/windows/threat-protection/windows-defender-atp/request-sample-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/request-sample-windows-defender-advanced-threat-protection.md deleted file mode 100644 index c876bcf8f0..0000000000 --- a/windows/threat-protection/windows-defender-atp/request-sample-windows-defender-advanced-threat-protection.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: Request sample API -description: Use this API to create calls related to requesting a sample from a machine. -keywords: apis, graph api, supported apis, request sample -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: high -ms.date: 09/01.2017 ---- - -# Request sample -Request sample of a file from a specific machine. File will be collected from the machine and uploaded to a secure storage. - -## Permissions -User needs to have “secop” permissions. - -## HTTP request -``` -POST /testwdatppreview/machines/{id}/requestSample -``` - -## Request headers - -Header | Value -:---|:--- -Authorization | Bearer {token}. **Required**. -Content-Type | application/json - -## Request body -In the request body, supply a JSON object with the following parameters: - -Parameter | Type | Description -:---|:---|:--- -Comment | String | Comment to associate with the action. **Required**. -SHA1 | String | SHA1 of the file to upload to the secure storage. **Required**. - -## Response -If successful, this method returns 201, Created response code and *FileMachineAction* object in the response body. - - -## Example - -Request - -Here is an example of the request. - -``` -POST https://graph.microsoft.com/testwdatppreview/machines/fb9ab6be3965095a09c057be7c90f0a2/unrestrictCodeExecution -Content-type: application/json -{ - "Comment": "Stop and quarantine file on machine due to alert 32123", - “Sha1”: “7327b54fd718525cbca07dacde913b5ac3c85673” -} -``` - -Response - -Here is an example of the response. - ->[!NOTE] ->The response object shown here may be truncated for brevity. All of the properties will be returned from an actual call. - -``` -HTTP/1.1 201 Created -Content-type: application/json -{ - "@odata.context": "https://graph.microsoft.com/testwdatppreview/$metadata#FileMachineActions/$entity", - "id": "ac19aae7-4146-4a13-a786-eb43d8557f7c", - "type": "RequestSample", - "status": "InProgress", - "error": "Unknown" -} -``` diff --git a/windows/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection.md deleted file mode 100644 index 6b9299e944..0000000000 --- a/windows/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: Restrict app execution API -description: Use this API to create calls related to restricting an application from executing. -keywords: apis, graph api, supported apis, collect investigation package -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: high -ms.date: 09/01.2017 ---- - -# Restrict app execution -Restrict execution of set of predefined applications. - -## Permissions -User needs to have “secop” permissions. - -## HTTP request -``` -POST /testwdatppreview/machines/{id}/restrictCodeExecution -``` - -## Request headers - -Header | Value -:---|:--- -Authorization | Bearer {token}. Required. -Content-Type | application/json - -## Request body -In the request body, supply a JSON object with the following parameters: - -Parameter | Type | Description -:---|:---|:--- -Comment | String | Comment to associate with the action. **Required**. - -## Response -If successful, this method returns 201, Created response code and _MachineAction_ object in the response body. - - -## Example - -Request - -Here is an example of the request. - -``` -POST https://graph.microsoft.com/testwdatppreview/machines/fb9ab6be3965095a09c057be7c90f0a2/restrictCodeExecution -Content-type: application/json -{ - "Comment": "Restrict code execution due to alert 1234" -} - -``` -Response - -Here is an example of the response. - ->[!NOTE] ->The response object shown here may be truncated for brevity. All of the properties will be returned from an actual call. - -``` -HTTP/1.1 201 Created -Content-type: application/json -{ - "@odata.context": "https://graph.microsoft.com/testwdatppreview/$metadata#MachineActions/$entity", - "id": "ac19aae7-4146-4a13-a786-eb43d8557f7c", - "type": "RestrictExecution", - "status": "InProgress", - "error": "Unknown" -} -``` diff --git a/windows/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection.md deleted file mode 100644 index 110a43b208..0000000000 --- a/windows/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: Run antivirus scan API -description: Use this API to create calls related to running an antivirus scan on a machine. -keywords: apis, graph api, supported apis, remove machine from isolation -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: high -ms.date: 09/01.2017 ---- - -# Run antivirus scan -Initiate Windows Defender Antivirus scan on the machine. - -## Permissions -User needs to have “secop” permissions. - -## HTTP request -``` -POST /testwdatppreview/machines/{id}/runAntiVirusScan -``` - -## Request headers - -Header | Value -:---|:--- -Authorization | Bearer {token}. Required. -Content-Type | application/json - -## Request body -In the request body, supply a JSON object with the following parameters: - -Parameter | Type | Description -:---|:---|:--- -Comment | String | Comment to associate with the action. **Required**. -ScanType| ScanType | Defines the type of the Scan. **Required**. - -**ScanType** controls the type of isolation to perform and can be one of the following: - -- **Quick** – Perform quick scan on the machine -- **Full** – Perform full scan on the machine - - - -## Response -If successful, this method returns 201, Created response code and _MachineAction_ object in the response body. - - -## Example - -Request - -Here is an example of the request. - -``` -POST https://graph.microsoft.com/testwdatppreview/machines/fb9ab6be3965095a09c057be7c90f0a2/runAntiVirusScan -Content-type: application/json -{ - "Comment": "Check machine for viruses due to alert 3212", - “ScanType”: “Full” -} -``` - -Response - -Here is an example of the response. - ->[!NOTE] ->The response object shown here may be truncated for brevity. All of the properties will be returned from an actual call. - -``` -HTTP/1.1 201 Created -Content-type: application/json -{ - "@odata.context": "https://graph.microsoft.com/testwdatppreview/$metadata#MachineActions/$entity", - "id": "ac19aae7-4146-4a13-a786-eb43d8557f7c", - "type": "RunAntiVirusScan", - "status": "InProgress", - "error": "Unknown" -} -``` diff --git a/windows/threat-protection/windows-defender-atp/stop-quarantine-file-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/stop-quarantine-file-windows-defender-advanced-threat-protection.md deleted file mode 100644 index 96789ddeb9..0000000000 --- a/windows/threat-protection/windows-defender-atp/stop-quarantine-file-windows-defender-advanced-threat-protection.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: Stop and quarantine file API -description: Use this API to create calls related to stopping and quarantining a file. -keywords: apis, graph api, supported apis, stop, quarantine, file -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: high -ms.date: 09/01.2017 ---- - -# Stop and quarantine file -Stop execution of a file on a machine and ensure it’s not executed again on that machine. - -## Permissions -User needs to have “secop” permissions. - -## HTTP request -``` -POST /testwdatppreview/machines/{id}/stopAndQuarantineFile -``` - -## Request headers - -Header | Value -:---|:--- -Authorization | Bearer {token}. Required. -Content-Type | application/json - -## Request body -In the request body, supply a JSON object with the following parameters: - -Parameter | Type | Description -:---|:---|:--- -Comment | String | Comment to associate with the action. **Required**. -SHA1 | String | SHA1 of the file to stop and quarantine on the machine. **Required**. - -## Response -If successful, this method returns 201, Created response code and _FileMachineAction_ object in the response body. - - -## Example - -Request - -Here is an example of the request. - -``` -POST https://graph.microsoft.com/testwdatppreview/machines/fb9ab6be3965095a09c057be7c90f0a2/unrestrictCodeExecution -Content-type: application/json -{ - "Comment": "Stop and quarantine file on machine due to alert 32123", - “Sha1”: “7327b54fd718525cbca07dacde913b5ac3c85673” -} -``` -Response - -Here is an example of the response. - ->[!NOTE] ->The response object shown here may be truncated for brevity. All of the properties will be returned from an actual call. - -``` -HTTP/1.1 201 Created -HTTP/1.1 201 Created -Content-type: application/json -{ - "@odata.context": "https://graph.microsoft.com/testwdatppreview/$metadata#FileMachineActions/$entity", - "id": "ac19aae7-4146-4a13-a786-eb43d8557f7c", - "type": "StopAndQuarantineFile", - "status": "InProgress", - "error": "Unknown" -} -``` diff --git a/windows/threat-protection/windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection.md deleted file mode 100644 index 0b5317d48a..0000000000 --- a/windows/threat-protection/windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: Unblock file API -description: Use this API to create calls related to allowing a file to be executed in the organization -keywords: apis, graph api, supported apis, unblock file -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: high -ms.date: 09/01.2017 ---- - -# Unblock file -Allow a file to be executed in the organization, using Windows Defender. - -## Permissions -User needs to have “secop” permissions. - -## HTTP request -``` -POST /testwdatppreview/files/{sha1}/unblock -``` - -## Request headers - -Header | Value -:---|:--- -Authorization | Bearer {token}. **Required**. -Content-Type | application/json - -## Request body -In the request body, supply a JSON object with the following parameters: - -Parameter | Type | Description -:---|:---|:--- -Comment | String | Comment to associate with the action. **Required**. - - -## Response -If successful, this method returns 200, Ok response code with empty body, which indicates that block message was sent to Windows Defender deployed in the organization. - - -## Example - -Request - -Here is an example of the request. - -``` -POST https://graph.microsoft.com/testwdatppreview/files/7327b54fd718525cbca07dacde913b5ac3c85673/unblock -Content-type: application/json -{ - "Comment": "Unblock file since alert 1234 was investigated and discovered to be false alarm", -} -``` - -Response - -Here is an example of the response. - - -``` -HTTP/1.1 200 Ok -``` diff --git a/windows/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection.md deleted file mode 100644 index 5fbb90a186..0000000000 --- a/windows/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: Unisolate machine API -description: Use this API to create calls related to removing a machine from isolation. -keywords: apis, graph api, supported apis, remove machine from isolation -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: high -ms.date: 09/01.2017 ---- - -# Unisolate machine -Remove machine from isolation. - -## Permissions -User needs to have “secop” permissions. - -## HTTP request -``` -POST /testwdatppreview/machines/{id}/unisolate -``` - -## Request headers - -Header | Value -:---|:--- -Authorization | Bearer {token}. Required. -Content-Type | application/json - -## Request body -In the request body, supply a JSON object with the following parameters: - -Parameter | Type | Description -:---|:---|:--- -Comment | String | Comment to associate with the action. **Required**. - -## Response -If successful, this method returns 201, Created response code and _MachineAction_ object in the response body. - - -## Example - -Request - -Here is an example of the request. - -``` -POST https://graph.microsoft.com/testwdatppreview/machines/fb9ab6be3965095a09c057be7c90f0a2/unisolate -Content-type: application/json -{ - "Comment": "Unisolate machine since it was clean and validated" -} - -``` -Response - -Here is an example of the response. - ->[!NOTE] ->The response object shown here may be truncated for brevity. All of the properties will be returned from an actual call. - -``` -HTTP/1.1 201 Created -Content-type: application/json -{ - "@odata.context": "https://graph.microsoft.com/testwdatppreview/$metadata#MachineActions/$entity", - "id": "ac19aae7-4146-4a13-a786-eb43d8557f7c", - "type": "Unisolate", - "status": "InProgress", - "error": "Unknown" -} - -``` diff --git a/windows/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection.md deleted file mode 100644 index 65989bb731..0000000000 --- a/windows/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: Unrestrict code execution API -description: Use this API to create calls related to removing a restriction from applications from executing. -keywords: apis, graph api, supported apis, remove machine from isolation -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: high -ms.date: 09/01.2017 ---- - -# Unrestrict code execution -Remove code execution restriction. - -## Permissions -User needs to have “secop” permissions. - -## HTTP request -``` -POST /testwdatppreview/machines/{id}/unrestrictCodeExecution -``` - -## Request headers - -Header | Value -:---|:--- -Authorization | Bearer {token}. Required. -Content-Type | application/json - -## Request body -In the request body, supply a JSON object with the following parameters: - -Parameter | Type | Description -:---|:---|:--- -Comment | String | Comment to associate with the action. **Required**. - -## Response -If successful, this method returns 201, Created response code and _MachineAction_ object in the response body. - - -## Example - -Request - -Here is an example of the request. - -``` -POST https://graph.microsoft.com/testwdatppreview/machines/fb9ab6be3965095a09c057be7c90f0a2/unrestrictCodeExecution -Content-type: application/json -{ - "Comment": "Unrestrict code execution since machine was cleaned and validated" -} - -``` - -Response - -Here is an example of the response. - ->[!NOTE] ->The response object shown here may be truncated for brevity. All of the properties will be returned from an actual call. - -``` -HTTP/1.1 201 Created -Content-type: application/json -{ - "@odata.context": "https://graph.microsoft.com/testwdatppreview/$metadata#MachineActions/$entity", - "id": "ac19aae7-4146-4a13-a786-eb43d8557f7c", - "type": "UnrestrictExecution", - "status": "InProgress", - "error": "Unknown" -} - -``` From 755c7c45dd888384aaa8b6d86d4a8fb8a548d6de Mon Sep 17 00:00:00 2001 From: jcaparas Date: Tue, 29 Aug 2017 13:59:03 -0700 Subject: [PATCH 2/4] remove apis --- ...ows-defender-advanced-threat-protection.md | 68 ---------- ...ows-defender-advanced-threat-protection.md | 77 ----------- ...ows-defender-advanced-threat-protection.md | 74 ----------- ...ows-defender-advanced-threat-protection.md | 67 ---------- ...ows-defender-advanced-threat-protection.md | 67 ---------- ...ows-defender-advanced-threat-protection.md | 83 ------------ ...ows-defender-advanced-threat-protection.md | 1 - ...ows-defender-advanced-threat-protection.md | 77 ----------- ...ows-defender-advanced-threat-protection.md | 76 ----------- ...ows-defender-advanced-threat-protection.md | 85 ------------ ...ows-defender-advanced-threat-protection.md | 85 ------------ ...ows-defender-advanced-threat-protection.md | 125 ------------------ ...ows-defender-advanced-threat-protection.md | 67 ---------- ...ows-defender-advanced-threat-protection.md | 77 ----------- ...ows-defender-advanced-threat-protection.md | 78 ----------- 15 files changed, 1107 deletions(-) delete mode 100644 windows/threat-protection/windows-defender-atp/block-file-windows-defender-advanced-threat-protection.md delete mode 100644 windows/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection.md delete mode 100644 windows/threat-protection/windows-defender-atp/get-filemachineaction-object-windows-defender-advanced-threat-protection.md delete mode 100644 windows/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection.md delete mode 100644 windows/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection.md delete mode 100644 windows/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection.md delete mode 100644 windows/threat-protection/windows-defender-atp/request-sample-windows-defender-advanced-threat-protection.md delete mode 100644 windows/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection.md delete mode 100644 windows/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection.md delete mode 100644 windows/threat-protection/windows-defender-atp/stop-quarantine-file-windows-defender-advanced-threat-protection.md delete mode 100644 windows/threat-protection/windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection.md delete mode 100644 windows/threat-protection/windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection.md delete mode 100644 windows/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection.md delete mode 100644 windows/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection.md diff --git a/windows/threat-protection/windows-defender-atp/block-file-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/block-file-windows-defender-advanced-threat-protection.md deleted file mode 100644 index eab5acb930..0000000000 --- a/windows/threat-protection/windows-defender-atp/block-file-windows-defender-advanced-threat-protection.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: Block file API -description: Use this API to create calls related to blocking files from being executed in the organization. -keywords: apis, graph api, supported apis, block file -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: high -ms.date: 09/01.2017 ---- - -# Block file -Prevent a file from being executed in the organization using Windows Defender Antivirus. - -## Permissions -Users need to have Security administrator or Global admin directory roles. - -## HTTP request -``` -POST /testwdatppreview/files/{sha1}/block -``` - -## Request headers - -Header | Value -:---|:--- -Authorization | Bearer {token}. **Required**. -Content-Type | application/json - -## Request body -In the request body, supply a JSON object with the following parameters: - -Parameter | Type | Description -:---|:---|:--- -Comment | String | Comment to associate with the action. **Required**. - - -## Response -If successful, this method returns 200, Ok response code with empty body, which indicates that block message was sent to Windows Defender deployed in the organization. - - -## Example - -Request - -Here is an example of the request. - -``` -POST https://graph.microsoft.com/testwdatppreview/machines/7327b54fd718525cbca07dacde913b5ac3c85673/block -Content-type: application/json -{ - "Comment": "Block file due to alert 32123" -} - -``` - -Response - -Here is an example of the response. - - -``` -HTTP/1.1 200 Ok -``` diff --git a/windows/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection.md deleted file mode 100644 index a085e86eef..0000000000 --- a/windows/threat-protection/windows-defender-atp/collect-investigation-package-windows-defender-advanced-threat-protection.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: Collect investigation package API -description: Use this API to create calls related to the collecting an investigation package from a machine. -keywords: apis, graph api, supported apis, collect investigation package -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: high -ms.date: 09/01.2017 ---- - -# Collect investigation package -Collect investigation package from a machine. - -## Permissions -Users need to have Security administrator or Global admin directory roles. - -## HTTP request -``` -POST /testwdatppreview/machines/{id}/collectInvestigationPackage -``` - -## Request headers - -Header | Value -:---|:--- -Authorization | Bearer {token}. Required. -Content-Type | application/json - -## Request body -In the request body, supply a JSON object with the following parameters: - -Parameter | Type | Description -:---|:---|:--- -Comment | Text | Comment to associate with the action. **Required**. - -## Response -If successful, this method returns 201, Created response code and _MachineAction_ object in the response body. - - -## Example - -Request - -Here is an example of the request. - -``` -POST https://graph.microsoft.com/testwdatppreview/machines/fb9ab6be3965095a09c057be7c90f0a2/collectInvestigationPackage -Content-type: application/json -{ - "Comment": "Collect forensics due to alert 1234" -} -``` - -Response - -Here is an example of the response. - ->[!NOTE] ->The response object shown here may be truncated for brevity. All of the properties will be returned from an actual call. - -``` -HTTP/1.1 201 Created -Content-type: application/json -{ - "@odata.context": "https://graph.microsoft.com/testwdatppreview/$metadata#MachineActions/$entity", - "id": "ac19aae7-4146-4a13-a786-eb43d8557f7c", - "type": "CollectInvestigationPackage", - "status": "InProgress", - "error": "Unknown" -} - -``` diff --git a/windows/threat-protection/windows-defender-atp/get-filemachineaction-object-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/get-filemachineaction-object-windows-defender-advanced-threat-protection.md deleted file mode 100644 index 043bdf280d..0000000000 --- a/windows/threat-protection/windows-defender-atp/get-filemachineaction-object-windows-defender-advanced-threat-protection.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: Get FileMachineAction object API -description: Use this API to create calls related to get machineaction object -keywords: apis, graph api, supported apis, filemachineaction object -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: high -ms.date: 09/01.2017 ---- - -# Get FileMachineAction object -Get MachineAction object. - -## Permissions -Users need to have Security administrator or Global admin directory roles. - -## HTTP request -``` -GET /testwdatppreview/filemachineactions/{id} -``` - -## Request headers - -Header | Value -:---|:--- -Authorization | Bearer {token}. **Required**. - - -## Request body -Empty - -## Response -If successful, this method returns 200, Ok response code with the *FileMachineAction* object. - - -## Example - -Request - -Here is an example of the request. - -``` -GET https://graph.microsoft.com/testwdatppreview/filemachineactions/7327b54fd718525cbca07dacde913b5ac3c85673 -``` - -Response - -Here is an example of the response. - - -``` -HTTP/1.1 201 Created -Content-type: application/json -{ - "@odata.context": "https://graph.microsoft.com/testwdatppreview/$metadata#FileMachineActions/$entity", - "id": " 7327b54fd718525cbca07dacde913b5ac3c85673", - "sha1": "1163788484e3258ab9fcf692f7db7938f72ddfc2", - "type": "StopAndQuarantineFile", - "status": "Succeeded", - "machineId": "970a58d5f61786bb7799dfdb5395ec364ffceace", - "fileInstances": [ - { - "filePath": "C:\\Users\\alex\\AppData\\Local\\AppFetch\\Temp\\3324bcb\\AppDownloader\\AnApp.appfetch.zip", - "status": "Succeeded" - } - ] -} - -``` diff --git a/windows/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection.md deleted file mode 100644 index 0fb3e768d8..0000000000 --- a/windows/threat-protection/windows-defender-atp/get-machineaction-object-windows-defender-advanced-threat-protection.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: Get MachineAction object API -description: Use this API to create calls related to get machineaction object -keywords: apis, graph api, supported apis, machineaction object -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: high -ms.date: 09/01.2017 ---- - -# Get MachineAction object -Get MachineAction object - -## Permissions -Users need to have Security administrator or Global admin directory roles. - -## HTTP request -``` -GET /testwdatppreview/machineactions/{id} -``` - -## Request headers - -Header | Value -:---|:--- -Authorization | Bearer {token}. **Required**. - - -## Request body -Empty - -## Response -If successful, this method returns 200, Ok response code with the *MachineAction* object. - - -## Example - -Request - -Here is an example of the request. - -``` -GET https://graph.microsoft.com/testwdatppreview/machineactions/7327b54fd718525cbca07dacde913b5ac3c85673 -``` - -Response - -Here is an example of the response. - - -``` -HTTP/1.1 200 Ok -Content-type: application/json -{ - "@odata.context": "https://graph.microsoft.com/testwdatppreview/$metadata#MachineActions/$entity", - "id": "ac19aae7-4146-4a13-a786-eb43d8557f7c", - "type": "UnrestrictExecution", - "status": "Success", - "error": "Unknown" -} - -``` diff --git a/windows/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection.md deleted file mode 100644 index 16581192da..0000000000 --- a/windows/threat-protection/windows-defender-atp/get-package-sas-uri-windows-defender-advanced-threat-protection.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: Get package SAS URI API -description: Use this API to get a URI that allows downloading an investigation package. -keywords: apis, graph api, supported apis, get package, sas, uri -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: high -ms.date: 09/01.2017 ---- - -# Get package SAS URI -Get a URI that allows downloading an investigation package. - -## Permissions -Users need to have Security administrator or Global admin directory roles. - -## HTTP request -``` -POST /testwdatppreview/machineactions/{id}/getPackageUri -``` - -## Request headers - -Header | Value -:---|:--- -Authorization | Bearer {token}. **Required**. -Content-Type | application/json - - -## Request body -Empty - -## Response -If successful, this method returns 200, Ok response code with object that holds the link to the package in the “value” parameter. This link is valid for a very short time and should be used immediately for downloading the package to a local storage. - - -## Example - -Request - -Here is an example of the request. - -``` -GET https://graph.microsoft.com/testwdatppreview/machineactions/7327b54fd718525cbca07dacde913b5ac3c85673/GetPackageUri - -``` - -Response - -Here is an example of the response. - - -``` -HTTP/1.1 200 Ok -Content-type: application/json - -{ - "@odata.context": "https://graph.microsoft.com/testrespver1/$metadata#Edm.String", - "value": "\"https://userrequests-us.securitycenter.windows.com:443/safedownload/WDATP_Investigation_Package.zip?token=gbDyj7y%2fbWGAZjn2sFiZXlliBTXOCVG7yiJ6mXNaQ9pLByC2Wxeno9mENsPFP3xMk5l%2bZiJXjLvqAyNEzUNROxoM2I1er9dxzfVeBsxSmclJjPsAx%2btiNyxSz1Ax%2b5jaT5cL5bZg%2b8wgbwY9urXbTpGjAKh6FB1e%2b0ypcWkPm8UkfOwsmtC%2biZJ2%2bPqnkkeQk7SKMNoAvmh9%2fcqDIPKXGIBjMa0D9auzypOqd8bQXp7p2BnLSH136BxST8n9IHR4PILvRjAYW9kvtHkBpBitfydAsUW4g2oDZSPN3kCLBOoo1C4w4Lkc9Bc3GNU2IW6dfB7SHcp7G9p4BDkeJl3VuDs6esCaeBorpn9FKJ%2fXo7o9pdcI0hUPZ6Ds9hiPpwPUtz5J29CBE3QAopCK%2fsWlf6OW2WyXsrNRSnF1tVE5H3wXpREzuhD7S4AIA3OIEZKzC4jIPLeMu%2bazZU9xGwuc3gICOaokbwMJiZTqcUuK%2fV9YdBdjdg8wJ16NDU96Pl6%2fgew2KYuk6Wo7ZuHotgHI1abcsvdlpe4AvixDbqcRJthsg2PpLRaFLm5av44UGkeK6TJpFvxUn%2f9fg6Zk5yM1KUTHb8XGmutoCM8U9er6AzXZlY0gGc3D3bQOg41EJZkEZLyUEbk1hXJB36ku2%2bW01cG71t7MxMBYz7%2bdXobxpdo%3d%3bRWS%2bCeoDfTyDcfH5pkCg6hYDmCOPr%2fHYQuaUWUBNVnXURYkdyOzVHqp%2fe%2f1BNyPdVoVkpQHpz1pPS3b5g9h7IMmNKCk5gFq5m2nPx6kk9EYtzx8Ndoa2m9Yj%2bSaf8zIFke86YnfQL4AYewsnQNJJh4wc%2bXxGlBq7axDcoiOdX91rKzVicH3GSBkFoLFAKoegWWsF%2fEDZcVpF%2fXUA1K8HvB6dwyfy4y0sAqnNPxYTQ97mG7yHhxPt4Pe9YF2UPPAJVuEf8LNlQ%2bWHC9%2f7msF6UUI4%2fca%2ftpjFs%2fSNeRE8%2fyQj21TI8YTF1SowvaJuDc1ivEoeopNNGG%2bGI%2fX0SckaVxU9Hdkh0zbydSlT5SZwbSwescs0IpzECitBbaLUz4aT8KTs8T0lvx8D7Te3wVsKAJ1r3iFMQZrlk%2bS1WW8rvac7oHRx2HKURn1v7fDIQWgJr9aNsNlFz4fLJ50T2qSHuuepkLVbe93Va072aMGhvr09WVKoTpAf1j2bcFZZU6Za5PxI32mr0k90FgiYFJ1F%2f1vRDrGwvWVWUkR3Z33m4g0gHa52W1FMxQY0TJIwbovD6FaSNDx7xhKZSd5IJ7r6P91Gez49PaZRcAZPjd%2bfbul3JNm1VqQPTLohT7wa0ymRiXpSST74xtFzuEBzNSNATdbngj3%2fwV4JesTjZjIj5Dc%3d%3blumqauVlFuuO8MQffZgs0tLJ4Fq6fpeozPTdDf8Ll6XLegi079%2b4mSPFjTK0y6eohstxdoOdom2wAHiZwk0u4KLKmRkfYOdT1wHY79qKoBQ3ZDHFTys9V%2fcwKGl%2bl8IenWDutHygn5IcA1y7GTZj4g%3d%3d\"" -} - -``` diff --git a/windows/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection.md deleted file mode 100644 index 9d9afa06e9..0000000000 --- a/windows/threat-protection/windows-defender-atp/isolate-machine-windows-defender-advanced-threat-protection.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -title: Isolate machine API -description: Use this API to create calls related isolating a machine. -keywords: apis, graph api, supported apis, isolate machine -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: high -ms.date: 09/01.2017 ---- - -# Isolate machine -Isolates a machine from accessing external network. - -## Permissions -Users need to have Security administrator or Global admin directory roles. - -## HTTP request -``` -POST /testwdatppreview/machines/{id}/isolate -``` - -## Request headers - -Header | Value -:---|:--- -Authorization | Bearer {token}. **Required**. -Content-Type | application/json - -## Request body -In the request body, supply a JSON object with the following parameters: - -Parameter | Type | Description -:---|:---|:--- -Comment | String | Comment to associate with the action. **Required**. -IsolationType | IsolationType | Full or selective isolation - -**IsolationType** controls the type of isolation to perform and can be one of the following: -- Full – Full isolation -- Selective – Restrict only limited set of applications from accessing the network - - -## Response -If successful, this method returns 201, Created response code and _MachineAction_ object in the response body. - - -## Example - -Request - -Here is an example of the request. - -``` -POST https://graph.microsoft.com/testwdatppreview/machines/fb9ab6be3965095a09c057be7c90f0a2/isolate -Content-type: application/json -{ - "Comment": "Isolate machine due to alert 1234", - “IsolationType”: “Full” -} - -``` -Response - -Here is an example of the response. - ->[!NOTE] ->The response object shown here may be truncated for brevity. All of the properties will be returned from an actual call. - -``` -HTTP/1.1 201 Created -Content-type: application/json -{ - "@odata.context": "https://graph.microsoft.com/testwdatppreview/$metadata#MachineActions/$entity", - "id": "ac19aae7-4146-4a13-a786-eb43d8557f7c", - "type": "Isolate", - "status": "InProgress", - "error": "Unknown" -} -``` diff --git a/windows/threat-protection/windows-defender-atp/powerbi-reports-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/powerbi-reports-windows-defender-advanced-threat-protection.md index effc64d145..3c51901d4b 100644 --- a/windows/threat-protection/windows-defender-atp/powerbi-reports-windows-defender-advanced-threat-protection.md +++ b/windows/threat-protection/windows-defender-atp/powerbi-reports-windows-defender-advanced-threat-protection.md @@ -122,7 +122,6 @@ You can use Power BI Desktop to analyse data from Windows Defender ATP and mash 8. Add visuals and select fields from the available data sources. ## Related topics -- [Use the Windows Defender ATP exposed APIs](exposed-apis-windows-defender-advanced-threat-protection.md) - [Update general settings in Windows Defender ATP](general-settings-windows-defender-advanced-threat-protection.md) - [Turn on advanced features in Windows Defender ATP](advanced-features-windows-defender-advanced-threat-protection.md) - [Turn on the preview experience in Windows Defender ATP](preview-settings-windows-defender-advanced-threat-protection.md) diff --git a/windows/threat-protection/windows-defender-atp/request-sample-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/request-sample-windows-defender-advanced-threat-protection.md deleted file mode 100644 index 10b78cb11e..0000000000 --- a/windows/threat-protection/windows-defender-atp/request-sample-windows-defender-advanced-threat-protection.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: Request sample API -description: Use this API to create calls related to requesting a sample from a machine. -keywords: apis, graph api, supported apis, request sample -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: high -ms.date: 09/01.2017 ---- - -# Request sample -Request sample of a file from a specific machine. File will be collected from the machine and uploaded to a secure storage. - -## Permissions -Users need to have Security administrator or Global admin directory roles. - -## HTTP request -``` -POST /testwdatppreview/machines/{id}/requestSample -``` - -## Request headers - -Header | Value -:---|:--- -Authorization | Bearer {token}. **Required**. -Content-Type | application/json - -## Request body -In the request body, supply a JSON object with the following parameters: - -Parameter | Type | Description -:---|:---|:--- -Comment | String | Comment to associate with the action. **Required**. -Sha1 | String | Sha1 of the file to upload to the secure storage. **Required**. - -## Response -If successful, this method returns 201, Created response code and *FileMachineAction* object in the response body. - - -## Example - -Request - -Here is an example of the request. - -``` -POST https://graph.microsoft.com/testwdatppreview/machines/fb9ab6be3965095a09c057be7c90f0a2/requestSample -Content-type: application/json -{ - “Sha1”: “7327b54fd718525cbca07dacde913b5ac3c85673” -} -``` - -Response - -Here is an example of the response. - ->[!NOTE] ->The response object shown here may be truncated for brevity. All of the properties will be returned from an actual call. - -``` -HTTP/1.1 201 Created -Content-type: application/json -{ - "@odata.context": "https://graph.microsoft.com/testwdatppreview/$metadata#FileMachineActions/$entity", - "id": "ac19aae7-4146-4a13-a786-eb43d8557f7c", - "type": "RequestSample", - "status": "InProgress", - "error": "Unknown" -} -``` diff --git a/windows/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection.md deleted file mode 100644 index 3377eeb2a0..0000000000 --- a/windows/threat-protection/windows-defender-atp/restrict-code-execution-windows-defender-advanced-threat-protection.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: Restrict app execution API -description: Use this API to create calls related to restricting an application from executing. -keywords: apis, graph api, supported apis, collect investigation package -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: high -ms.date: 09/01.2017 ---- - -# Restrict app execution -Restrict execution of set of predefined applications. - -## Permissions -Users need to have Security administrator or Global admin directory roles. - -## HTTP request -``` -POST /testwdatppreview/machines/{id}/restrictCodeExecution -``` - -## Request headers - -Header | Value -:---|:--- -Authorization | Bearer {token}. **Required**. -Content-Type | application/json - -## Request body -In the request body, supply a JSON object with the following parameters: - -Parameter | Type | Description -:---|:---|:--- -Comment | String | Comment to associate with the action. **Required**. - -## Response -If successful, this method returns 201, Created response code and _MachineAction_ object in the response body. - - -## Example - -Request - -Here is an example of the request. - -``` -POST https://graph.microsoft.com/testwdatppreview/machines/fb9ab6be3965095a09c057be7c90f0a2/restrictCodeExecution -Content-type: application/json -{ - "Comment": "Restrict code execution due to alert 1234" -} - -``` -Response - -Here is an example of the response. - ->[!NOTE] ->The response object shown here may be truncated for brevity. All of the properties will be returned from an actual call. - -``` -HTTP/1.1 201 Created -Content-type: application/json -{ - "@odata.context": "https://graph.microsoft.com/testwdatppreview/$metadata#MachineActions/$entity", - "id": "ac19aae7-4146-4a13-a786-eb43d8557f7c", - "type": "RestrictExecution", - "status": "InProgress", - "error": "Unknown" -} -``` diff --git a/windows/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection.md deleted file mode 100644 index 891097b03a..0000000000 --- a/windows/threat-protection/windows-defender-atp/run-av-scan-windows-defender-advanced-threat-protection.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: Run antivirus scan API -description: Use this API to create calls related to running an antivirus scan on a machine. -keywords: apis, graph api, supported apis, remove machine from isolation -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: high -ms.date: 09/01.2017 ---- - -# Run antivirus scan -Initiate Windows Defender Antivirus scan on the machine. - -## Permissions -Users need to have Security administrator or Global admin directory roles. - -## HTTP request -``` -POST /testwdatppreview/machines/{id}/runAntiVirusScan -``` - -## Request headers - -Header | Value -:---|:--- -Authorization | Bearer {token}. **Required**. -Content-Type | application/json - -## Request body -In the request body, supply a JSON object with the following parameters: - -Parameter | Type | Description -:---|:---|:--- -Comment | String | Comment to associate with the action. **Required**. -ScanType| ScanType | Defines the type of the Scan. **Required**. - -**ScanType** controls the type of isolation to perform and can be one of the following: - -- **Quick** – Perform quick scan on the machine -- **Full** – Perform full scan on the machine - - - -## Response -If successful, this method returns 201, Created response code and _MachineAction_ object in the response body. - - -## Example - -Request - -Here is an example of the request. - -``` -POST https://graph.microsoft.com/testwdatppreview/machines/fb9ab6be3965095a09c057be7c90f0a2/runAntiVirusScan -Content-type: application/json -{ - "Comment": "Check machine for viruses due to alert 3212", - “ScanType”: “Full” -} -``` - -Response - -Here is an example of the response. - ->[!NOTE] ->The response object shown here may be truncated for brevity. All of the properties will be returned from an actual call. - -``` -HTTP/1.1 201 Created -Content-type: application/json -{ - "@odata.context": "https://graph.microsoft.com/testwdatppreview/$metadata#MachineActions/$entity", - "id": "ac19aae7-4146-4a13-a786-eb43d8557f7c", - "type": "RunAntiVirusScan", - "status": "InProgress", - "error": "Unknown" -} -``` diff --git a/windows/threat-protection/windows-defender-atp/stop-quarantine-file-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/stop-quarantine-file-windows-defender-advanced-threat-protection.md deleted file mode 100644 index 588e46220b..0000000000 --- a/windows/threat-protection/windows-defender-atp/stop-quarantine-file-windows-defender-advanced-threat-protection.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: Stop and quarantine file API -description: Use this API to create calls related to stopping and quarantining a file. -keywords: apis, graph api, supported apis, stop, quarantine, file -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: high -ms.date: 09/01.2017 ---- - -# Stop and quarantine file -Stop execution of a file on a machine and ensure it’s not executed again on that machine. - -## Permissions -Users need to have Security administrator or Global admin directory roles. - -## HTTP request -``` -POST /testwdatppreview/machines/{id}/stopAndQuarantineFile -``` - -## Request headers - -Header | Value -:---|:--- -Authorization | Bearer {token}. **Required**. -Content-Type | application/json - -## Request body -In the request body, supply a JSON object with the following parameters: - -Parameter | Type | Description -:---|:---|:--- -Comment | String | Comment to associate with the action. **Required**. -Sha1 | String | Sha1 of the file to stop and quarantine on the machine. **Required**. - -## Response -If successful, this method returns 201, Created response code and _FileMachineAction_ object in the response body. - - -## Example - -Request - -Here is an example of the request. - -``` -POST https://graph.microsoft.com/testwdatppreview/machines/fb9ab6be3965095a09c057be7c90f0a2/unrestrictCodeExecution -Content-type: application/json -{ - "Comment": "Stop and quarantine file on machine due to alert 32123", - “Sha1”: “7327b54fd718525cbca07dacde913b5ac3c85673” -} -``` -Response - -Here is an example of the response. - ->[!NOTE] ->The response object shown here may be truncated for brevity. All of the properties will be returned from an actual call. - -``` -HTTP/1.1 201 Created -Content-type: application/json -{ - "@odata.context": "https://graph.microsoft.com/testwdatppreview/$metadata#FileMachineActions/$entity", - "id": "5841901d-6d04-4278-b0b3-8dd6a2acc8a5", - "sha1": “1163788484e3258ab9fcf692f7db7938f72ddfc2”, - "type": "StopAndQuarantineFile", - "status": "Succeeded", - "machineId": "970a58d5f61786bb7799dfdb5395ec364ffceace", - "fileInstances": [ - { - "filePath": "C:\\Users\\alex\\AppData\\Local\\AppFetch\\Temp\\3324bcb\\AppDownloader\\AnApp.appfetch.zip", - "status": "Succeeded" - } - ] -} - -``` diff --git a/windows/threat-protection/windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection.md deleted file mode 100644 index 8522966f5b..0000000000 --- a/windows/threat-protection/windows-defender-atp/supported-apis-windows-defender-advanced-threat-protection.md +++ /dev/null @@ -1,125 +0,0 @@ ---- -title: Supported Windows Defender Advanced Threat Protection APIs -description: Use the exposed data and actions using a set of progammatic APIs that are part of the Microsoft Intelligence Security Graph. -keywords: apis, graph api, supported apis, actor, alerts, machine, user, domain, ip, file -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: high -ms.date: 09/01.2017 ---- - -# Supported Windows Defender ATP APIs - -**Applies to:** - -- Windows 10 Enterprise -- Windows 10 Education -- Windows 10 Pro -- Windows 10 Pro Education -- Windows Defender Advanced Threat Protection (Windows Defender ATP) - - - -| Entity | Action | Description | Functions | Route | -|---------|---------------|--------------------------------------------------------------------------|--------------------------------------------|-------------------------------------------| -| Actor | Get | Retrieves an actor report from the CMS. | $top, $select, $count | /actor/{id} | -| | GetAlerts | Retrieves all alerts related to a given actor. | $expand, $top, $select, $count | /actor/{id}/alerts | -| Alerts | Get | Retrieves top recent alerts | $top, $select, $count, $skip, $expand | /alerts | -| | Get | Retrieves an alert by its ID | $top, $select, $count, $expand | /alerts/{id} | -| | GetMachines | Retrieves all machines related to a specific alert | $top, $select, $count | /alerts/{id}/machines | -| | GetFiles | Retrieves all files related to a specific alert | $top, $select, $count | /alerts/{id}/files | -| | GetActor | Retrieves the actor related to the specific alert | $top, $select, $count | /alerts/{id}/actor | -| | GetDomains | Retrieves all domains related to a specific alert | $top, $select, $count | /alerts/{id}/domains | -| | GetIPs | Retrieves all IPs related to a specific alert | $top, $select, $count | /alerts/{id}/ips | -| Machine | Get | Retrieves a collection of recently seen machines | $top, $select, $count, $skip | /machines | -| | Get | Retrieves a machine entity by ID | $top, $select, $count | /machines/{id} | -| | GetAlerts | Retrieves a collection of alerts related to a given machine ID | $top, $select, $count, $expand | /machines/{id}/alerts | -| | GetLogOnUsers | Retrieves a collection of logged on users related to a given machine ID | $top, $select, $count | /machines/{id}/logonusers | -| | Find | Find a machine entity around a specific timestamp by FQDN or internal IP | $top, $select, $count, $expand(logonusers) | /machines/find(key={id},timestamp={time}) | -| User | Get | Retrieve a User entity by key (user name or domain\user) | $top, $select, $count | /users/{id} | -| | GetAlerts | Retrieves a collection of alerts related to a given user ID | $top, $select, $count, $expand | /users/{id}/alerts | -| | GetMachines | Retrieves a collection of machines related to a given user ID | $top, $select, $count | /users/{id}/machines | -| Domain | Get | Retrieves a domain entity | $top, $select, $count | /domains/{id} | -| | GetAlerts | Retrieves a collection of alerts related to a given domain address | $top, $select, $count, $expand | /domains/{id}/alerts | -| | GetMachines | Retrieves a collection of machines related to a given domain address | $top, $select, $count | /domains/{id}/machines | -| | Stats | Retrieves the prevalence for the given domain | | /domains/{id}/stats | -| IP | Get | Retrieves an IP entity | $top, $select, $count | /ips/{id} | -| | GetAlerts | Retrieves a collection of alerts related to a given IP address | $top, $select, $count, $expand | /ips/{id}/alerts | -| | GetMachines | Retrieves a collection of machines related to a given IP address | $top, $select, $count | /ips/{id}/machines | -| | Stats | Retrieves the prevalence for the given IP | | /ips/{id}/stats | -| File | Get | Retrieves a file by identifier(Sha1, Sha256, MD5) | $top, $select, $count | /files/{id} | -| | GetAlerts | Retrieves a collection of alerts related to a given file hash | $top, $select, $count, $expand | /files/{id}/alerts | -| | GetMachines | Retrieves a collection of machines related to a given file hash | $top, $select, $count | /files{id}/machines | -| | Stats | Retrieves the prevalence for the given file | | /files/{id}/machines | - -### Example queries -After creating the application, you can run the following queries. - -Fetching the top 20 alerts with machine information: -``` -private const string authority = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize"; -private const string resourceId = "https://graph.microsoft.com"; -private const string clientId = "{YOUR CLIENT ID/APP ID HERE}"; -private const string redirect = "https://localhost"; -HttpClient client = new HttpClient(); -AuthenticationContext auth = new AuthenticationContext(authority); -var token = auth.AcquireTokenAsync(resourceId, clientId, new Uri(redirect), new PlatformParameters(PromptBehavior.Auto)).Result; -client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(token.AccessTokenType, token.AccessToken); -var ep = $"{resourceId}/{apiVersion}/alerts?$top=20&$expand=machine"; // the query itself in yellow -HttpResponseMessage response = client.GetAsync(ep).Result; -string resp = response.Content.ReadAsStringAsync().Result; -Console.WriteLine($"response for: {ep} \r\n {resp}"); -``` - -Response: -``` -{ - "@odata.context": "https://graph.microsoft-ppe.com/testwdatp/$metadata#Alerts", - "@odata.count": 20, - "@odata.nextLink": "https://graph.microsoft-ppe.com/testwdatp/alerts?$top=20&$expand=machine&$skip=20", - "value": [ - { - "id": "636341278149188342_1960231459", - "severity": "Medium", - "status": "New", - "description": "A process has injected code into another process using process hollowing technique, indicating suspicious code being run in the target process memory. Injection is often used to hide malicious code execution within a trusted process. \nAs a result, the target process may exhibit abnormal behaviors such as opening a listening port or connecting to a command and control server.", - "recommendedAction": "1. Investigate the machine's timeline for any other indicators around the time of this alert \n2. Validate contextual information about the relevant components such as file prevalence, other machines it was observed on etc. \n3. Contact the machine's user to verify whether they received an email with a suspicious attachment or link around the time of the alert.\n4. Run a full malware scan on the machine, this may reveal additional related components. \n5. Consider submitting the relevant file(s) for deep analysis for detailed behavioral information. \n6. If initial investigation confirms suspicions, contact your incident response team for forensic analysis.", - "alertCreationTime": "2017-06-27T02:36:53.7841015Z", - "category": "Installation", - "title": "Process hollowing detected", - "threatFamilyName": null, - "detectionSource": null, - "classification": null, - "determination": null, - "assignedTo": null, - "resolvedTime": null, - "lastEventTime": "2017-06-29T10:11:54.2872094Z", - "firstEventTime": "2017-06-27T02:30:23.9320988Z", - "machine": { - "id": "67e5ef2c2eab150cc8638e21dba19c1b0a41ad0b", - "computerDnsName": null, - "firstSeen": "0001-01-01T00:00:00Z", - "isOnline": false, - "osPlatform": null, - "osVersion": null, - "systemProductName": null, - "lastIpAddress": null, - "lastExternalIpAddress": null, - "agentVersion": null, - "osBuild": null, - "healthStatus": "Active", - "isAadJoined": null - } - }, -}…. - -``` - -## Related topics -- [Use the Windows Defender ATP exposed APIs](exposed-apis-windows-defender-advanced-threat-protection.md) - diff --git a/windows/threat-protection/windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection.md deleted file mode 100644 index 8e0b3e45cc..0000000000 --- a/windows/threat-protection/windows-defender-atp/unblock-file-windows-defender-advanced-threat-protection.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: Unblock file API -description: Use this API to create calls related to allowing a file to be executed in the organization -keywords: apis, graph api, supported apis, unblock file -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: high -ms.date: 09/01.2017 ---- - -# Unblock file -Allow a file to be executed in the organization, using Windows Defender. - -## Permissions -Users need to have Security administrator or Global admin directory roles. - -## HTTP request -``` -POST /testwdatppreview/files/{sha1}/unblock -``` - -## Request headers - -Header | Value -:---|:--- -Authorization | Bearer {token}. **Required**. -Content-Type | application/json - -## Request body -In the request body, supply a JSON object with the following parameters: - -Parameter | Type | Description -:---|:---|:--- -Comment | String | Comment to associate with the action. **Required**. - - -## Response -If successful, this method returns 200, Ok response code with empty body, which indicates that block message was sent to Windows Defender deployed in the organization. - - -## Example - -Request - -Here is an example of the request. - -``` -POST https://graph.microsoft.com/testwdatppreview/files/7327b54fd718525cbca07dacde913b5ac3c85673/unblock -Content-type: application/json -{ - "Comment": "Unblock file since alert 1234 was investigated and discovered to be false alarm", -} -``` - -Response - -Here is an example of the response. - - -``` -HTTP/1.1 200 Ok -``` diff --git a/windows/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection.md deleted file mode 100644 index db02510fdf..0000000000 --- a/windows/threat-protection/windows-defender-atp/unisolate-machine-windows-defender-advanced-threat-protection.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: Unisolate machine API -description: Use this API to create calls related to removing a machine from isolation. -keywords: apis, graph api, supported apis, remove machine from isolation -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: high -ms.date: 09/01.2017 ---- - -# Unisolate machine -Undo isolation of a machine. - -## Permissions -Users need to have Security administrator or Global admin directory roles. - -## HTTP request -``` -POST /testwdatppreview/machines/{id}/unisolate -``` - -## Request headers - -Header | Value -:---|:--- -Authorization | Bearer {token}. **Required**. -Content-Type | application/json - -## Request body -In the request body, supply a JSON object with the following parameters: - -Parameter | Type | Description -:---|:---|:--- -Comment | String | Comment to associate with the action. **Required**. - -## Response -If successful, this method returns 201, Created response code and _MachineAction_ object in the response body. - - -## Example - -Request - -Here is an example of the request. - -``` -POST https://graph.microsoft.com/testwdatppreview/machines/fb9ab6be3965095a09c057be7c90f0a2/unisolate -Content-type: application/json -{ - "Comment": "Unisolate machine since it was clean and validated" -} - -``` -Response - -Here is an example of the response. - ->[!NOTE] ->The response object shown here may be truncated for brevity. All of the properties will be returned from an actual call. - -``` -HTTP/1.1 201 Created -Content-type: application/json -{ - "@odata.context": "https://graph.microsoft.com/testwdatppreview/$metadata#MachineActions/$entity", - "id": "ac19aae7-4146-4a13-a786-eb43d8557f7c", - "type": "Unisolate", - "status": "InProgress", - "error": "Unknown" -} - -``` diff --git a/windows/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection.md deleted file mode 100644 index 2890ee5631..0000000000 --- a/windows/threat-protection/windows-defender-atp/unrestrict-code-execution-windows-defender-advanced-threat-protection.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: Unrestrict code execution API -description: Use this API to create calls related to removing a restriction from applications from executing. -keywords: apis, graph api, supported apis, remove machine from isolation -search.product: eADQiWindows 10XVcnh -ms.prod: w10 -ms.mktglfcycl: deploy -ms.sitesec: library -ms.pagetype: security -ms.author: macapara -author: mjcaparas -ms.localizationpriority: high -ms.date: 09/01.2017 ---- - -# Unrestrict code execution -Unrestrict execution of set of predefined applications. - -## Permissions -Users need to have Security administrator or Global admin directory roles. - -## HTTP request -``` -POST /testwdatppreview/machines/{id}/unrestrictCodeExecution -``` - -## Request headers - -Header | Value -:---|:--- -Authorization | Bearer {token}. Required. -Content-Type | application/json - -## Request body -In the request body, supply a JSON object with the following parameters: - -Parameter | Type | Description -:---|:---|:--- -Comment | String | Comment to associate with the action. **Required**. - -## Response -If successful, this method returns 201, Created response code and _MachineAction_ object in the response body. - - -## Example - -Request - -Here is an example of the request. - -``` -POST https://graph.microsoft.com/testwdatppreview/machines/fb9ab6be3965095a09c057be7c90f0a2/unrestrictCodeExecution -Content-type: application/json -{ - "Comment": "Unrestrict code execution since machine was cleaned and validated" -} - -``` - -Response - -Here is an example of the response. - ->[!NOTE] ->The response object shown here may be truncated for brevity. All of the properties will be returned from an actual call. - -``` -HTTP/1.1 201 Created -Content-type: application/json -{ - "@odata.context": "https://graph.microsoft.com/testwdatppreview/$metadata#MachineActions/$entity", - "id": "ac19aae7-4146-4a13-a786-eb43d8557f7c", - "type": "UnrestrictExecution", - "status": "InProgress", - "error": "Unknown" -} - -``` From eba8af74486580a0997fb39df7baf419d25f51fc Mon Sep 17 00:00:00 2001 From: jcaparas Date: Tue, 29 Aug 2017 14:31:17 -0700 Subject: [PATCH 3/4] update meta keywords and descs --- ...n-windows-windows-defender-advanced-threat-protection.md | 4 ++-- ...oints-vdi-windows-defender-advanced-threat-protection.md | 6 +++--- ...endpoints-windows-defender-advanced-threat-protection.md | 2 +- ...-machines-windows-defender-advanced-threat-protection.md | 4 ++-- ...i-reports-windows-defender-advanced-threat-protection.md | 2 +- ...ne-alerts-windows-defender-advanced-threat-protection.md | 4 ++-- ...dashboard-windows-defender-advanced-threat-protection.md | 6 +++--- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/windows/threat-protection/windows-defender-atp/configure-endpoints-non-windows-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/configure-endpoints-non-windows-windows-defender-advanced-threat-protection.md index 03a3d219a1..77b6604d77 100644 --- a/windows/threat-protection/windows-defender-atp/configure-endpoints-non-windows-windows-defender-advanced-threat-protection.md +++ b/windows/threat-protection/windows-defender-atp/configure-endpoints-non-windows-windows-defender-advanced-threat-protection.md @@ -1,7 +1,7 @@ --- title: Configure non-Windows endpoints in Windows Defender ATP -description: Configure non-Winodws endpoints to see sensor data and get alerts from them -keywords: configure endpoints non-Windows endpoints, endpoint management, configure Windows ATP endpoints, configure Windows Defender Advanced Threat Protection endpoints +description: Configure non-Winodws endpoints so that they can send sensor data to the Windows Defender ATP service. +keywords: configure endpoints non-Windows endpoints, macos, linux, endpoint management, configure Windows ATP endpoints, configure Windows Defender Advanced Threat Protection endpoints search.product: eADQiWindows 10XVcnh ms.prod: w10 ms.mktglfcycl: deploy diff --git a/windows/threat-protection/windows-defender-atp/configure-endpoints-vdi-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/configure-endpoints-vdi-windows-defender-advanced-threat-protection.md index df4f747169..b9d187b3f8 100644 --- a/windows/threat-protection/windows-defender-atp/configure-endpoints-vdi-windows-defender-advanced-threat-protection.md +++ b/windows/threat-protection/windows-defender-atp/configure-endpoints-vdi-windows-defender-advanced-threat-protection.md @@ -1,7 +1,7 @@ --- -title: Configure non-persistent virtual desktop infrastructure (VDI) machines in Windows Defender ATP -description: Deploy the configuration package on virtual desktop infrastructure (VDI) machine so that they are onboarded to the service. -keywords: configure virtual desktop infrastructure (VDI) machine, endpoint management, configure Windows ATP endpoints, configure Windows Defender Advanced Threat Protection endpoints, vdi +title: Configure non-persistent virtual desktop infrastructure (VDI) machines +description: Deploy the configuration package on virtual desktop infrastructure (VDI) machine so that they are onboarded to Windows Defender ATP the service. +keywords: configure virtual desktop infrastructure (VDI) machine, vdi, endpoint management, configure Windows ATP endpoints, configure Windows Defender Advanced Threat Protection endpoints search.product: eADQiWindows 10XVcnh ms.prod: w10 ms.mktglfcycl: deploy diff --git a/windows/threat-protection/windows-defender-atp/configure-server-endpoints-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/configure-server-endpoints-windows-defender-advanced-threat-protection.md index 1d1794d923..bfab972da9 100644 --- a/windows/threat-protection/windows-defender-atp/configure-server-endpoints-windows-defender-advanced-threat-protection.md +++ b/windows/threat-protection/windows-defender-atp/configure-server-endpoints-windows-defender-advanced-threat-protection.md @@ -1,7 +1,7 @@ --- title: Configure Windows Defender ATP server endpoints description: Configure server endpoints so that they can send sensor data to the Windows Defender ATP sensor. -keywords: server, configure server endpoints, endpoint management, configure Windows ATP server endpoints, configure Windows Defender Advanced Threat Protection server endpoints +keywords: configure server endpoints, server, server onboarding, endpoint management, configure Windows ATP server endpoints, configure Windows Defender Advanced Threat Protection server endpoints search.product: eADQiWindows 10XVcnh ms.prod: w10 ms.mktglfcycl: deploy diff --git a/windows/threat-protection/windows-defender-atp/investigate-machines-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/investigate-machines-windows-defender-advanced-threat-protection.md index 646873ce46..75d710b769 100644 --- a/windows/threat-protection/windows-defender-atp/investigate-machines-windows-defender-advanced-threat-protection.md +++ b/windows/threat-protection/windows-defender-atp/investigate-machines-windows-defender-advanced-threat-protection.md @@ -1,7 +1,7 @@ --- title: Investigate machines in the Windows Defender ATP Machines list -description: Investigate affected machines in your network by reviewing alerts, network connection information, and service health on the Machines list. -keywords: machines, endpoints, machine, endpoint, alerts queue, alerts, machine name, domain, last seen, internal IP, active alerts, threat category, filter, sort, review alerts, network, connection, type, password stealer, ransomware, exploit, threat, low severity +description: Investigate affected machines by reviewing alerts, network connection information, adding machine tags and groups, and checking the service health. +keywords: machines, endpoints, tags, groups, endpoint, alerts queue, alerts, machine name, domain, last seen, internal IP, active alerts, threat category, filter, sort, review alerts, network, connection, type, password stealer, ransomware, exploit, threat, low severity, service heatlh search.product: eADQiWindows 10XVcnh ms.prod: w10 ms.mktglfcycl: deploy diff --git a/windows/threat-protection/windows-defender-atp/powerbi-reports-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/powerbi-reports-windows-defender-advanced-threat-protection.md index 3c51901d4b..b876ad565a 100644 --- a/windows/threat-protection/windows-defender-atp/powerbi-reports-windows-defender-advanced-threat-protection.md +++ b/windows/threat-protection/windows-defender-atp/powerbi-reports-windows-defender-advanced-threat-protection.md @@ -1,7 +1,7 @@ --- title: Create and build Power BI reports using Windows Defender ATP data description: Get security insights by creating and building Power BI dashboards using data from Windows Defender ATP and other data sources. -keywords: preferences setup, power bi, power bi service, power bi desktop, reports, dashboards, connectors +keywords: preferences setup, power bi, power bi service, power bi desktop, reports, dashboards, connectors , security insights, mashup search.product: eADQiWindows 10XVcnh ms.prod: w10 ms.mktglfcycl: deploy diff --git a/windows/threat-protection/windows-defender-atp/respond-machine-alerts-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/respond-machine-alerts-windows-defender-advanced-threat-protection.md index ad39326774..443b79bf8d 100644 --- a/windows/threat-protection/windows-defender-atp/respond-machine-alerts-windows-defender-advanced-threat-protection.md +++ b/windows/threat-protection/windows-defender-atp/respond-machine-alerts-windows-defender-advanced-threat-protection.md @@ -1,7 +1,7 @@ --- title: Take response actions on a machine in Windows Defender ATP -description: Take response actions on a machine by isolating machines, collecting an investigation package, and checking activity details. -keywords: respond, isolate, isolate machine, collect investigation package, action center +description: Take response actions on a machine such as isolating machines, collecting an investigation package, managing tags, running av scan, and restricting app execution. +keywords: respond, isolate, isolate machine, collect investigation package, action center, restrict, manage tags, av scan, restrict app search.product: eADQiWindows 10XVcnh ms.prod: w10 ms.mktglfcycl: deploy diff --git a/windows/threat-protection/windows-defender-atp/security-analytics-dashboard-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/security-analytics-dashboard-windows-defender-advanced-threat-protection.md index 3658d071f7..965d1cc0f6 100644 --- a/windows/threat-protection/windows-defender-atp/security-analytics-dashboard-windows-defender-advanced-threat-protection.md +++ b/windows/threat-protection/windows-defender-atp/security-analytics-dashboard-windows-defender-advanced-threat-protection.md @@ -1,7 +1,7 @@ --- -title: View the Security Analytics dashboard -description: Use the Security Analytics dashboard to assess and improve the security state of your organization by analyzing various security control tiles. Use the recommended improvement actions based on the list of machines that need remediation. -keywords: security analytics, dashboard, antivirus recommendations, security control state, security score, score improvement +title: View the Security Analytics dashboard in Windows Defender ATP +description: Use the Security Analytics dashboard to assess and improve the security state of your organization by analyzing various security control tiles. +keywords: security analytics, dashboard, security recommendations, security control state, security score, score improvement, organizational security score, security coverate, security control, improvement opportunities, edr, antivirus, av, os security updates search.product: eADQiWindows 10XVcnh ms.prod: w10 ms.mktglfcycl: deploy From a817c102d14f878140e77d7aa397e5f741d6855a Mon Sep 17 00:00:00 2001 From: jcaparas Date: Tue, 29 Aug 2017 15:37:33 -0700 Subject: [PATCH 4/4] update images and toc --- windows/threat-protection/TOC.md | 6 +- .../images/atp-user-details-view-tdp.png | Bin 0 -> 189253 bytes ...ows-defender-advanced-threat-protection.md | 46 ---- ...ows-defender-advanced-threat-protection.md | 33 ++- ...ows-defender-advanced-threat-protection.md | 228 +++++++++++------- 5 files changed, 157 insertions(+), 156 deletions(-) create mode 100644 windows/threat-protection/windows-defender-atp/images/atp-user-details-view-tdp.png diff --git a/windows/threat-protection/TOC.md b/windows/threat-protection/TOC.md index a1c9446bfb..94c8bb1161 100644 --- a/windows/threat-protection/TOC.md +++ b/windows/threat-protection/TOC.md @@ -37,14 +37,16 @@ ###### [Filter events from a specific date](windows-defender-atp\investigate-machines-windows-defender-advanced-threat-protection.md#filter-events-from-a-specific-date) ###### [Export machine timeline events](windows-defender-atp\investigate-machines-windows-defender-advanced-threat-protection.md#export-machine-timeline-events) ###### [Navigate between pages](windows-defender-atp\investigate-machines-windows-defender-advanced-threat-protection.md#navigate-between-pages) -##### [Manage machine group and tags](windows-defender-atp\investigate-machines-windows-defender-advanced-threat-protection.md#manage-machine-group-and-tags) #### [Investigate a user account](windows-defender-atp\investigate-user-windows-defender-advanced-threat-protection.md) #### [Manage alerts](windows-defender-atp\manage-alerts-windows-defender-advanced-threat-protection.md) #### [Take response actions](windows-defender-atp\response-actions-windows-defender-advanced-threat-protection.md) ##### [Take response actions on a machine](windows-defender-atp\respond-machine-alerts-windows-defender-advanced-threat-protection.md) +###### [Manage machine group and tags](windows-defender-atp\respond-machine-alerts-windows-defender-advanced-threat-protection.md#manage-machine-group-and-tags) +###### [Collect investigation package](windows-defender-atp\respond-machine-alerts-windows-defender-advanced-threat-protection.md#collect-investigation-package) +###### [Run antivirus scan](windows-defender-atp\respond-machine-alerts-windows-defender-advanced-threat-protection.md#run-windows-defender-antivirus-scan-on-machines) +###### [Restrict app execution](windows-defender-atp\respond-machine-alerts-windows-defender-advanced-threat-protection.md#restict-app-execution) ###### [Isolate machines from the network](windows-defender-atp\respond-machine-alerts-windows-defender-advanced-threat-protection.md#isolate-machines-from-the-network) ###### [Undo machine isolation](windows-defender-atp\respond-machine-alerts-windows-defender-advanced-threat-protection.md#undo-machine-isolation) -###### [Collect investigation package](windows-defender-atp\respond-machine-alerts-windows-defender-advanced-threat-protection.md#collect-investigation-package) ###### [Check activity details in Action center](windows-defender-atp\respond-machine-alerts-windows-defender-advanced-threat-protection.md#check-activity-details-in-action-center) ##### [Take response actions on a file](windows-defender-atp\respond-file-alerts-windows-defender-advanced-threat-protection.md) ###### [Stop and quarantine files in your network](windows-defender-atp\respond-file-alerts-windows-defender-advanced-threat-protection.md#stop-and-quarantine-files-in-your-network) diff --git a/windows/threat-protection/windows-defender-atp/images/atp-user-details-view-tdp.png b/windows/threat-protection/windows-defender-atp/images/atp-user-details-view-tdp.png new file mode 100644 index 0000000000000000000000000000000000000000..b0732653d66c04d5786db2310a0cc2fac328fae1 GIT binary patch literal 189253 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%0Ah?DOf@?d*U_wNW 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 Rxsw9CObpEpaC(lY{{R-oE@}V( literal 0 HcmV?d00001 diff --git a/windows/threat-protection/windows-defender-atp/investigate-machines-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/investigate-machines-windows-defender-advanced-threat-protection.md index 75d710b769..b7b83fd65c 100644 --- a/windows/threat-protection/windows-defender-atp/investigate-machines-windows-defender-advanced-threat-protection.md +++ b/windows/threat-protection/windows-defender-atp/investigate-machines-windows-defender-advanced-threat-protection.md @@ -147,52 +147,6 @@ Expand an event to view associated processes related to the event. Click on the The details pane enriches the ‘in-context’ information across investigation and exploration activities, reducing the need to switch between contexts. It lets you focus on the task of tracing associations between attributes without leaving the current context. -## Manage machine group and tags -Machine group and tags support proper mapping of the network, enabling you to attach different tags to machines to capture context and to enable dynamic groups creation as part of an incident. - -Machine related properties are being extended to account for: - -- Group affiliation -- Dynamic context capturing - - - -### Group machines -Machine group affiliation can represent geographic location, specific activity, importance level and others. Grouping machines with similar attributes can be handy when you need to apply contextual action on a specific list of machines. After creating groups, you can apply the Group filter on the Machines list to get a narrowed list of machines. - -Machine group is defined in the following registry key entry of the machine: - -- Registry key: `HKLM\SOFTWARE\Policies\Microsoft\Windows Advanced Threat Protection\DeviceTagging\` -- Registry key value (string): Group - - -### Set standard tags on machines -Dynamic context capturing is achieved using tags. By tagging machines, you can keep track of individual machines in your organization. After adding tags on machines, you can apply the Tags filter on the Machines list to get a narrowed list of machines with the tag. - -1. Select the machine that you want to manage tags on. You can select or search for a machine from any of the following views: - - - **Security operations dashboard** - Select the machine name from the Top machines with active alerts section. - - **Alerts queue** - Select the machine name beside the machine icon from the alerts queue. - - **Machines list** - Select the machine name from the list of machines. - - **Search box** - Select Machine from the drop-down menu and enter the machine name. - - You can also get to the alert page through the file and IP views. - -2. Open the **Actions** menu and select **Manage tags**. - - ![Image of taking action to manage tags on a machine](images/atp-manage-tags.png) - -3. Enter tags on the machine. To add more tags, click the + icon. -4. Click **Save and close**. - - ![Image of adding tags on a machine](images/atp-save-tag.png) - - Tags are added to the machine view and will also be reflected on the **Machines list** view. You can then use the **Tags** or **Groups** filter to see the relevant list of machines. - -### Manage machine tags -You can manage tags from the Actions button or by selecting a machine from the Machines list and opening the machine details panel. - -![Image of adding tags on a machine](images/atp-tag-management.png) ## Related topics diff --git a/windows/threat-protection/windows-defender-atp/investigate-user-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/investigate-user-windows-defender-advanced-threat-protection.md index 349606e877..4d15942dc0 100644 --- a/windows/threat-protection/windows-defender-atp/investigate-user-windows-defender-advanced-threat-protection.md +++ b/windows/threat-protection/windows-defender-atp/investigate-user-windows-defender-advanced-threat-protection.md @@ -24,37 +24,34 @@ ms.date: 09/01/2017 [!include[Prerelease information](prerelease.md)] +# Investigate a user account in Windows Defender ATP + +**Applies to:** + +- Windows 10 Enterprise +- Windows 10 Education +- Windows 10 Pro +- Windows 10 Pro Education +- Windows Defender Advanced Threat Protection (Windows Defender ATP) + ## Investigate user account entities Identify user accounts with the most active alerts (displayed on dashboard as "Users at risk") and investigate cases of potential compromised credentials, or pivot on the associated user account when investigating an alert or machine to identify possible lateral movement between machines with that user account. You can find user account information in the following views: -- Security operations dashboard +- Dashboard - Alert queue - Machine details page A clickable user account link is available in these views, that will take you to the user account details page where more details about the user account are shown. When you investigate a user account entity, you'll see: -- User account details, Azure Advanced Threat Protection alerts, and Logged on machines +- User account details and Logged on machines - Alerts related to this user - Observed in organization (machines logged on to) +![Image of the user account entity details page](images/atp-user-details-view-tdp.png) -![Image of the user account entity details page](images/atp-user-view-ata.png) - -The user account entity details, Azure Advanced Threat Protection alerts, and logged on machines sections display various attributes about the user account. - -The user entity tile provides details about the user such as when the user was first and last seen. Depending on the integration features you enable, you'll see other details. For example, if you enable the Skype for business integration, you'll be able to contact the user from the portal. - -If you have enabled the Azure Advanced Threat Protection feature and there are alerts related to the user, you can click on the link that will take you to the Azure Advanced Threat Protection page where more information about the alerts are provided. The Azure Advanced Threat Protection tile also provides details such as the last AD site, total group memberships, and login failure associated with the user. - -You'll also see a list of the machines that the user logged on to, and can expand these to see details of the logon events on each machine. - ->[!NOTE] ->Youll need to enable the integration between Windows Defender ATP and Azure Advanced Threat Protection to use this feature. - - -For more information on how to enable advanced features, see [Turn on advanced features](advanced-features-windows-defender-advanced-threat-protection.md). +The user account entity details and logged on machines section display various attributes about the user account. You'll see details such as when the user was first and last seen and the total number of machines the user logged on to. You'll also see a list of the machines that the user logged on to, and can expand these to see details of the logon events on each machine. The **Alerts related to this user** section provides a list of alerts that are associated with the user account. This list is a filtered view of the [Alert queue](alerts-queue-windows-defender-advanced-threat-protection.md), and shows alerts where the user context is the selected user account, the date when the last activity was detected, a short description of the alert, the machine associated with the alert, the alert's severity, the alert's status in the queue, and who is assigned the alert. @@ -70,8 +67,6 @@ The machine health state is displayed in the machine icon and color as well as i 2. Enter the user account in the **Search** field. 3. Click the search icon or press **Enter**. -[IS THE BEHAVIOUR BELOW STILL TRUE? I TRIED TO SEARCH FOR USERS AND IT DOESN'T SEEM TO DISPLAY A LIST - PLEASE CHECK FOR TECHNICAL ACCURACY. THANKS!] - A list of users matching the query text is displayed. You'll see the user account's domain and name, when the user account was last seen, and the total number of machines it was observed logged on to in the last 30 days. You can filter the results by the following time periods: diff --git a/windows/threat-protection/windows-defender-atp/respond-machine-alerts-windows-defender-advanced-threat-protection.md b/windows/threat-protection/windows-defender-atp/respond-machine-alerts-windows-defender-advanced-threat-protection.md index 443b79bf8d..b64bb11ed0 100644 --- a/windows/threat-protection/windows-defender-atp/respond-machine-alerts-windows-defender-advanced-threat-protection.md +++ b/windows/threat-protection/windows-defender-atp/respond-machine-alerts-windows-defender-advanced-threat-protection.md @@ -30,108 +30,53 @@ Quickly respond to detected attacks by isolating machines or collecting an inves >[!NOTE] > These response actions are only available for machines on Windows 10, version 1703. -## Isolate machines from the network -Depending on the severity of the attack and the sensitivity of the machine, you might want to isolate the machine from the network. This action can help prevent the attacker from controlling the compromised machine and performing further activities such as data exfiltration and lateral movement. +## Manage machine group and tags +Machine group and tags support proper mapping of the network, enabling you to attach different tags to machines to capture context and to enable dynamic groups creation as part of an incident. -This machine isolation feature disconnects the compromised machine from the network while retaining connectivity to the Windows Defender ATP service, which continues to monitor the machine. +Machine related properties are being extended to account for: -On Windows 10, version 1710 and above, you'll have additional control over the network isolation level. You can also choose to enable Outlook and Skype for Business connectivity. - ->[!NOTE] ->You’ll be able to reconnect the machine back to the network at any time. - -1. Select the machine that you want to isolate. You can select or search for a machine from any of the following views: - - - **Security operations dashboard** - Select the machine name from the Top machines with active alerts section. - - **Alerts queue** - Select the machine name beside the machine icon from the alerts queue. - - **Machines list** - Select the machine name from the list of machines. - - **Search box** - Select Machine from the drop-down menu and enter the machine name. - -2. Open the **Actions** menu and select **Isolate machine**. - - ![Image of isolate machine](images/atp-actions-isolate-machine.png) - -3. Select the check-box if you'd like to enable Outlook and Skype communication while the machine is isolated. - - ![Image of isolation confirmation](images/atp-confirm-isolate.png) - -4. Type a comment and select **Yes, isolate machine** to take action on the machine. - - >[!NOTE] - >The machine will remain connected to the Windows Defender ATP service even if it is isolated from the network. If you've chosen to enable Outlook and Skype for Business communication, then you'll be able to communicate to the user while the machine is isolated. - - The Action center shows the submission information: - ![Image of machine isolation](images/atp-machine-isolation.png) - - - **Submission time** - Shows when the isolation action was submitted. - - **Status** - Indicates any pending actions or the results of completed actions. Additional indications will be provided if you've enabled Outlook and Skype for Business communication. - -When the isolation configuration is applied, a new event is reflected in the machine timeline. - -**Notification on machine user**:
-When a machine is being isolated, the following notification is displayed to inform the user that the machine is being isolated from the network: - -![Image of no network connection](images/atp-notification-isolate.png) - -## Release machine from isolation -Depending on the severity of the attack and the state of the machine you can choose to release the machine from isolation after you have verified that the compromised machine has been remediated. - -1. Select a machine that was previously isolated. - -2. Open the **Actions** menu and select **Release from isolation**. - - ![Image of release from isolation](images/atp-actions-release-from-isolation.png) - -3. Type a comment and select **Yes, release machine** to take action on the machine. The machine will be reconnected to the network. - -## Restrict app execution -In addition to the ability of containing an attack by stopping malicious processes, you can also lock down a device and prevent subsequent attempts of potentially malicious programs from running. - -The action to restrict an application from running applies a code integrity policy that only allows running of files that are signed by a Microsoft issued certificate. This method of restriction can help prevent an attacker from controlling compromised machines and performing further malicious activities. - ->[!NOTE] ->You’ll be able to reverse the restriction of applications from running at any time. - -1. Select the machine where you'd like to restrict an application from running from. You can select or search for a machine from any of the following views: - - - **Security operations dashboard** - Select the machine name from the Top machines with active alerts section. - - **Alerts queue** - Select the machine name beside the machine icon from the alerts queue. - - **Machines list** - Select the machine name from the list of machines. - - **Search box** - Select Machine from the drop-down menu and enter the machine name. - -2. Open the **Actions** menu and select **Restrict app execution**. - - ![Image of restrict app execution action](images/atp-actions-restrict-app-execution.png) - -3. Type a comment and select **Yes, restict app execution** to take action on the file. - - ![Image of app restriction notification](images/atp-notification-restrict.png) - - The Action center shows the submission information: - ![Image of action center with app restriction](images/atp-action-center-app-restriction.png) +- Group affiliation +- Dynamic context capturing - - **Submission time** - Shows when the isolation action was submitted. - - **Status** - Indicates any pending actions or the results of completed actions. -When the application execution restriction configuration is applied, a new event is reflected in the machine timeline. +### Group machines +Machine group affiliation can represent geographic location, specific activity, importance level and others. Grouping machines with similar attributes can be handy when you need to apply contextual action on a specific list of machines. After creating groups, you can apply the Group filter on the Machines list to get a narrowed list of machines. + +Machine group is defined in the following registry key entry of the machine: + +- Registry key: `HKLM\SOFTWARE\Policies\Microsoft\Windows Advanced Threat Protection\DeviceTagging\` +- Registry key value (string): Group -**Notification on machine user**:
-When an app is restricted, the following notification is displayed to inform the user that an app is being restricted from running: +### Set standard tags on machines +Dynamic context capturing is achieved using tags. By tagging machines, you can keep track of individual machines in your organization. After adding tags on machines, you can apply the Tags filter on the Machines list to get a narrowed list of machines with the tag. -![Image of app restriction](images/atp-app-restriction.png) +1. Select the machine that you want to manage tags on. You can select or search for a machine from any of the following views: -## Remove app restriction -Depending on the severity of the attack and the state of the machine, you can choose to reverse the restriction of applications policy after you have verified that the compromised machine has been remediated. + - **Security operations dashboard** - Select the machine name from the Top machines with active alerts section. + - **Alerts queue** - Select the machine name beside the machine icon from the alerts queue. + - **Machines list** - Select the machine name from the list of machines. + - **Search box** - Select Machine from the drop-down menu and enter the machine name. -1. Select the machine where you restricted an application from running from. + You can also get to the alert page through the file and IP views. -2. Open the **Actions** menu and select **Remove app restrictions**. +2. Open the **Actions** menu and select **Manage tags**. - ![Image of remove app restrictions](images/atp-actions-remove-app-restrictions.png) + ![Image of taking action to manage tags on a machine](images/atp-manage-tags.png) + +3. Enter tags on the machine. To add more tags, click the + icon. +4. Click **Save and close**. + + ![Image of adding tags on a machine](images/atp-save-tag.png) + + Tags are added to the machine view and will also be reflected on the **Machines list** view. You can then use the **Tags** or **Groups** filter to see the relevant list of machines. + +### Manage machine tags +You can manage tags from the Actions button or by selecting a machine from the Machines list and opening the machine details panel. + +![Image of adding tags on a machine](images/atp-tag-management.png) -3. Type a comment and select **Yes, remove restriction** to take action on the application. The machine application restriction will no longer apply on the machine. ## Collect investigation package from machines As part of the investigation or response process, you can collect an investigation package from a machine. By collecting the investigation package, you can identify the current state of the machine and further understand the tools and techniques used by the attacker. @@ -216,6 +161,111 @@ As part of the investigation or response process, you can remotely initiate an a The machine timeline will include a new event, reflecting that a scan action was submitted on the machine. Windows Defender AV alerts will reflect any detections that surfaced during the scan. +## Restrict app execution +In addition to the ability of containing an attack by stopping malicious processes, you can also lock down a device and prevent subsequent attempts of potentially malicious programs from running. + +The action to restrict an application from running applies a code integrity policy that only allows running of files that are signed by a Microsoft issued certificate. This method of restriction can help prevent an attacker from controlling compromised machines and performing further malicious activities. + +>[!NOTE] +>You’ll be able to reverse the restriction of applications from running at any time. + +1. Select the machine where you'd like to restrict an application from running from. You can select or search for a machine from any of the following views: + + - **Security operations dashboard** - Select the machine name from the Top machines with active alerts section. + - **Alerts queue** - Select the machine name beside the machine icon from the alerts queue. + - **Machines list** - Select the machine name from the list of machines. + - **Search box** - Select Machine from the drop-down menu and enter the machine name. + +2. Open the **Actions** menu and select **Restrict app execution**. + + ![Image of restrict app execution action](images/atp-actions-restrict-app-execution.png) + +3. Type a comment and select **Yes, restict app execution** to take action on the file. + + ![Image of app restriction notification](images/atp-notification-restrict.png) + + The Action center shows the submission information: + ![Image of action center with app restriction](images/atp-action-center-app-restriction.png) + + + - **Submission time** - Shows when the isolation action was submitted. + - **Status** - Indicates any pending actions or the results of completed actions. + +When the application execution restriction configuration is applied, a new event is reflected in the machine timeline. + + +**Notification on machine user**:
+When an app is restricted, the following notification is displayed to inform the user that an app is being restricted from running: + +![Image of app restriction](images/atp-app-restriction.png) + +## Remove app restriction +Depending on the severity of the attack and the state of the machine, you can choose to reverse the restriction of applications policy after you have verified that the compromised machine has been remediated. + +1. Select the machine where you restricted an application from running from. + +2. Open the **Actions** menu and select **Remove app restrictions**. + + ![Image of remove app restrictions](images/atp-actions-remove-app-restrictions.png) + +3. Type a comment and select **Yes, remove restriction** to take action on the application. The machine application restriction will no longer apply on the machine. + + +## Isolate machines from the network +Depending on the severity of the attack and the sensitivity of the machine, you might want to isolate the machine from the network. This action can help prevent the attacker from controlling the compromised machine and performing further activities such as data exfiltration and lateral movement. + +This machine isolation feature disconnects the compromised machine from the network while retaining connectivity to the Windows Defender ATP service, which continues to monitor the machine. + +On Windows 10, version 1710 and above, you'll have additional control over the network isolation level. You can also choose to enable Outlook and Skype for Business connectivity. + +>[!NOTE] +>You’ll be able to reconnect the machine back to the network at any time. + +1. Select the machine that you want to isolate. You can select or search for a machine from any of the following views: + + - **Security operations dashboard** - Select the machine name from the Top machines with active alerts section. + - **Alerts queue** - Select the machine name beside the machine icon from the alerts queue. + - **Machines list** - Select the machine name from the list of machines. + - **Search box** - Select Machine from the drop-down menu and enter the machine name. + +2. Open the **Actions** menu and select **Isolate machine**. + + ![Image of isolate machine](images/atp-actions-isolate-machine.png) + +3. Select the check-box if you'd like to enable Outlook and Skype communication while the machine is isolated. + + ![Image of isolation confirmation](images/atp-confirm-isolate.png) + +4. Type a comment and select **Yes, isolate machine** to take action on the machine. + + >[!NOTE] + >The machine will remain connected to the Windows Defender ATP service even if it is isolated from the network. If you've chosen to enable Outlook and Skype for Business communication, then you'll be able to communicate to the user while the machine is isolated. + + The Action center shows the submission information: + ![Image of machine isolation](images/atp-machine-isolation.png) + + - **Submission time** - Shows when the isolation action was submitted. + - **Status** - Indicates any pending actions or the results of completed actions. Additional indications will be provided if you've enabled Outlook and Skype for Business communication. + +When the isolation configuration is applied, a new event is reflected in the machine timeline. + +**Notification on machine user**:
+When a machine is being isolated, the following notification is displayed to inform the user that the machine is being isolated from the network: + +![Image of no network connection](images/atp-notification-isolate.png) + +## Release machine from isolation +Depending on the severity of the attack and the state of the machine you can choose to release the machine from isolation after you have verified that the compromised machine has been remediated. + +1. Select a machine that was previously isolated. + +2. Open the **Actions** menu and select **Release from isolation**. + + ![Image of release from isolation](images/atp-actions-release-from-isolation.png) + +3. Type a comment and select **Yes, release machine** to take action on the machine. The machine will be reconnected to the network. + + ## Check activity details in Action center The **Action center** provides information on actions that were taken on a machine or file. You’ll be able to view the following details: