Recentemente, eu Compartilhado no Twitter Veja como executar uma consulta para detectar se um usuário clicou em um link no Outlook usando o Microsoft Defender Advanced Threat Protection (MDATP). Caso não esteja familiarizado, o MDATP está disponível na sua licença do Microsoft 365 E5 e é um aprimoramento do Windows Defender tradicional.
O que é o Microsoft Defender Advanced Threat Protection?
Microsoft O Microsoft Defender Advanced Threat Protection (MDATP) é uma plataforma projetada para ajudar redes corporativas a prevenir, detectar, investigar e responder a ameaças avançadas. O MDATP oferece diversos recursos que podem ser utilizados tanto na resposta a incidentes quanto na busca ativa de ameaças.
O oficial documentação Possui vários endpoints de API que você pode usar para obter, criar e atualizar alertas e indicadores. Além disso, aqui está uma pequena lista de algumas das informações que você pode recuperar ou ações que você pode executar com as APIs de proteção avançada contra ameaças do Microsoft Defender:
- Receba todos os alertas relacionados a um domínio, arquivo, endereço IP, máquina ou usuário.
- Recuperar informações sobre quem está conectado a determinada máquina.
- Verifique se um domínio ou endereço IP foi detectado em sua organização.
Essas são apenas algumas das APIs interessantes disponíveis, mas para mim, a mais convincente — e aquela sobre a qual vamos falar — é caça avançada.
Interagindo com a Proteção Avançada contra Ameaças do Microsoft Defender
Criei um novo pacote para o Swimlane que engloba todos os endpoints da API do Microsoft Defender ATP, mas para aqueles que não são nossos clientes, gostaria de compartilhar como vocês podem interagir com as APIs do Microsoft Defender ATP usando ambos. PowerShell Core e Python.
Para interagir com as APIs de proteção avançada contra ameaças do Microsoft Defender, você precisa do seguinte:
- Licença Microsoft 365 E5 ou acesso ao MDATP.
- Pelo menos um dos endpoints deve ter o MDATP instalado e em execução.
- A possibilidade de criar uma nova aplicação no Azure Active Directory.
Primeiro, vamos criar um novo aplicativo no Azure Active Directory. Você pode criar um novo aplicativo no Azure AD na seção Azure Active Directory e, em seguida, navegar até... Cadastros no aplicativo. Clique no Novo cadastro botão e dê um nome ao seu aplicativo. Em seguida, clique em Cadastre-se.

Copie e salve seu ID do cliente e ID do inquilino em um local seguro (precisaremos dessa informação em breve). Em seguida, selecione o Permissões da API seção e clique Adicionar uma permissão. Você deve ter uma lâmina nova no lado esquerdo.
Quando esta nova lâmina estiver aberta, selecione a APIs que minha organização usa guia. Talvez seja necessário filtrar na barra de pesquisa, mas você deverá ver Windows Defender ATP listado como uma opção. Caso contrário, certifique-se de ter acesso a esta API antes de prosseguir.

Selecione o Windows Defender ATP API e, em seguida, selecione Permissões do aplicativo. Depois de selecionar o Permissões de Aplicativos, Você verá uma lista de permissões. Neste exemplo, estou selecionando "todas" para ter acesso a todos os endpoints disponíveis, mas use seu próprio critério.
Após selecionar as permissões desejadas, clique em Adicionar permissões Na parte inferior e, em seguida, na tela principal, certifique-se de selecionar o Consentimento da Grande Administração.

Em seguida, acesse o Certificados e Segredos seção e crie uma Segredo do Novo Cliente. Depois de criar este arquivo, salve-o junto com os outros segredos que salvamos anteriormente.
Agora que temos nossos segredos, podemos usar os dois arquivos diferentes que criei, que demonstram como usar as APIs do MDATP para recuperar um Token para autenticação futura, bem como para interagir diretamente com a API do MDATP.
PowerShell Core
Eu forneci um ps1 Arquivo que você pode usar como referência. Este arquivo contém duas funções do PowerShell e, na parte inferior, estamos chamando essas funções conforme necessário:
- Get-MDATPTokenExecuta uma autenticação OAuth2 e recupera um token que será usado em todas as chamadas subsequentes aos endpoints da API MDATP.
- Invocar-MDATPQuery: Invoca um caça avançada consulta ao MDATP consultas avançadas/executar ponto final.
Ao utilizar essas duas funções, podemos executar consultas em nossos endpoints que possuem o MDATP instalado.
Primeiro, vamos obter nosso token:
$Token = Get-MDATPToken -ClientId 'OUR_CLIENT_ID' -ClientSecret 'CLIENT_SECRET' -TenantId 'TENANT_ID''
Em seguida, podemos definir uma consulta simples:
$query = @" "RegistryEvents | limite 10" "@
Ou consultas mais avançadas como esta para verificar se um usuário clicou em um link no Outlook. Felizmente, Microsoft forneceu um recurso INCRÍVEL de exemplos de consultas para você usar.
$query = @" let minTimeRange = ago(7d); let outlookLinks = MiscEvents | where EventTime > minTimeRange and ActionType == "BrowserLaunchedToOpenUrl" and isnotempty(RemoteUrl) | where InitiatingProcessFileName =~ "outlook.exe" or InitiatingProcessFileName =~ "runtimebroker.exe" | project EventTime, MachineId, ComputerName, RemoteUrl, InitiatingProcessFileName, ParsedUrl=parse_url(RemoteUrl) | extend WasOutlookSafeLink=(tostring(ParsedUrl.Host) endswith "safelinks.protection.outlook.com") | project EventTime, MachineId, ComputerName, WasOutlookSafeLink, InitiatingProcessFileName, OpenedLink=iff(WasOutlookSafeLink, url_decode(tostring(ParsedUrl["Query Parâmetros"]["url"])), RemoteUrl); let alerts = AlertEvents | summarize (FirstDetectedActivity, Title)=argmin(EventTime, Title) by AlertId, MachineId | where FirstDetectedActivity > minTimeRange; alerts | join kind=inner (outlookLinks) on MachineId | where FirstDetectedActivity - EventTime between (0min..3min) | summarize FirstDetectedActivity=min(FirstDetectedActivity), AlertTitles=makeset(Title) by OpenedLink, InitiatingProcessFileName, EventTime=bin(EventTime, 1tick), ComputerName, MachineId, WasOutlookSafeLink "@
Agora que temos nosso Token e Consulta, podemos executar nossa consulta usando o Invocar-MDATPQuery função:
Invoke-MDATPTQuery -Token $Token -Query $query
É isso!
Python
Assim como no nosso exemplo em PowerShell, criei duas classes em Python que auxiliarão na autenticação e na execução de consultas avançadas:
- Conector MDATPExecuta uma autenticação OAuth2 e recupera um token que será usado em todas as chamadas subsequentes aos endpoints da API MDATP.
- Consulta MDATP: Invoca um caça avançada consulta ao MDATP consultas avançadas/executar ponto final.
Primeiro, crie um objeto MDATPConnector fornecendo seus segredos:
conector = MDATPConnector( __CLIENT_ID__, __CLIENT_SECRET__, __TENANT_ID__ )
Em seguida, para simplificar, vamos executar esta consulta menor:
consulta = ''' "RegistryEvents | limite 10" ''''
Agora, precisamos passar nosso objeto MDATPConnector e nossa consulta para a classe MDATPQuery e, em seguida, executar:
mdatp = MDATPQuery( conector, consulta ) print(mdatp.execute())
É isso!
Espero que tenha gostado de aprender sobre o Microsoft Defender Advanced Threat Protection! Fique de olho no nosso novo pacote que inclui... Consultas avançadas e todos os outros endpoints disponíveis na API MDATP.
Pedir uma demonstração
Agende uma demonstração ao vivo do Swimlane Turbine com nossos especialistas! Descubra como nossa plataforma de automação de segurança com IA pode ajudar você a resolver os problemas mais complexos em toda a sua organização de segurança.

