KQL Migrator com tecnologia Microsoft Security Copilot

by | 26/12/2024 | Analytics | 0 comments

Reading time: 13 minutes

As migrações de SIEM são sempre um processo desafiador que requer planejamento meticuloso e uma compreensão completa da configuração existente no SIEM herdado e do que precisa ser migrado para o SIEM moderno. Nosso principal ponto de discussão foi como podemos ajudar as organizações a traduzir com eficiência as regras de detecção de linguagens baseadas em consultas, como AQL (Ariel Query Languages) para KQL (Kusto Query Language) e ajudar as organizações, principalmente as equipes de SOC, a converter suas regras YARA, STIX II e OpenIOC intel para o formato KQL

Foram identificadas duas opções:

  • Converter AQL para KQL;
  • Converter YARA para KQL;
  • Converta STIX II e OpenIOC intel para KQL.

Ambas as opções exigem habilidades especializadas e podem ser complicadas de concluir. Em primeiro lugar, o usuário precisaria entender precisamente como o AQL é mapeado para KQL e, em segundo lugar, exigir o conhecimento da sintaxe usada na geração do YARA. Ambas são habilidades de nicho.

Foi percebido que o AQL é semelhante ao SQL e, consequentemente, ao KQL.

Temos o seguinte código AQL:

Select sourceip, destinationip, “Process Name” FROM events WHERE “Process Name” IMATCHES ‘.*atbroker\.exe.*|.*bash\.exe.*|.*bitsadmin\.exe.*|.*certutil\.exe.*|.*cmdkey\.exe.*|.*cmstp\.exe.*|.*control\.exe.*|.*csc\.exe.*|.*cscript\.exe.*|.*dfsvc\.exe.*|.*diskshadow\.exe.*|.*dnscmd\.exe.*|.*esentutl\.exe.*|.*eventvwr\.exe.*|.*expand\.exe.*|.*extexport\.exe.*|.*extrac32\.exe.*|.*findstr\.exe.*|.*forfiles\.exe.*|.*ftp\.exe.*|.*gpscript\.exe.*|.*hh\.exe.*|.*ie4uinit\.exe.*|.*ieexec\.exe.*|.*infdefaultinstall\.exe.*|.*installutil\.exe.*|.*makecab\.exe.*|.*reg\.exe.*|.*print\.exe.*|.*presentationhost\.exe.*|.*pcwrun\.exe.*|.*pcalua\.exe.*|.*odbcconf\.exe.*|.*msiexec\.exe.*|.*mshta\.exe.*|.*msdt\.exe.*|.*msconfig\.exe.*|.*msbuild\.exe.*|.*mmc\.exe.*|.*microsoft.workflow.compiler\.exe.*|.*mavinject\.exe.*|.*vsjitdebugger\.exe.*|.*tracker\.exe.*|.*te\.exe.*|.*sqltoolsps\.exe.*|.*sqlps\.exe.*|.*sqldumper\.exe.*|.*rcsi\.exe.*|.*msxsl\.exe.*|.*msdeploy\.exe.*|.*mftrace\.exe.*|.*dxcap\.exe.*|.*dnx\.exe.*|.*csi\.exe.*|.*cdb\.exe.*|.*bginfo\.exe.*|.*appvlp\.exe.*|.*xwizard\.exe.*|.*wsreset\.exe.*|.*wscript\.exe.*|.*wmic\.exe.*|.*wab\.exe.*|.*verclsid\.exe.*|.*syncappvpublishingserver\.exe.*|.*scriptrunner\.exe.*|.*schtasks\.exe.*|.*sc\.exe.*|.*runscripthelper\.exe.*|.*runonce\.exe.*|.*rundll32\.exe.*|.*rpcping\.exe.*|.*replace\.exe.*|.*regsvr32\.exe.*|.*regsvcs\.exe.*|.*register-cimprovider\.exe.*|.*regedit\.exe.*|.*regasm\.exe.*|’ GROUP BY “Process Name”,sourceip LAST 3 DAYS

Essa consulta tem como objetivo rastrear o uso de executáveis específicos para atividades administrativas ou potencialmente mal-intencionadas. Ao agrupar os resultados por nome do processo e IP de origem, ele ajuda a detectar padrões ou anomalias que podem indicar incidentes de segurança ou violações de política.

Usando o Microsoft Security Copilot

E se pudéssemos fazer com que o Security Copilot primeiro explicasse o código e depois o convertesse em Kusto?

Usamos o seguinte prompt:

/askGPT I am planning a SIEM migration from AQL query based to Microsoft Sentinel KQL. As AQL expert can you create a detailed summary that explains the following AQL query in square brackets [ Select sourceip, destinationip, “Process Name” FROM events WHERE “Process Name” IMATCHES ‘.*atbroker\.exe.*|.*bash\.exe.*|.*bitsadmin\.exe.*|.*certutil\.exe.*|.*cmdkey\.exe.*|.*cmstp\.exe.*|.*control\.exe.*|.*csc\.exe.*|.*cscript\.exe.*|.*dfsvc\.exe.*|.*diskshadow\.exe.*|.*dnscmd\.exe.*|.*esentutl\.exe.*|.*eventvwr\.exe.*|.*expand\.exe.*|.*extexport\.exe.*|.*extrac32\.exe.*|.*findstr\.exe.*|.*forfiles\.exe.*|.*ftp\.exe.*|.*gpscript\.exe.*|.*hh\.exe.*|.*ie4uinit\.exe.*|.*ieexec\.exe.*|.*infdefaultinstall\.exe.*|.*installutil\.exe.*|.*makecab\.exe.*|.*reg\.exe.*|.*print\.exe.*|.*presentationhost\.exe.*|.*pcwrun\.exe.*|.*pcalua\.exe.*|.*odbcconf\.exe.*|.*msiexec\.exe.*|.*mshta\.exe.*|.*msdt\.exe.*|.*msconfig\.exe.*|.*msbuild\.exe.*|.*mmc\.exe.*|.*microsoft.workflow.compiler\.exe.*|.*mavinject\.exe.*|.*vsjitdebugger\.exe.*|.*tracker\.exe.*|.*te\.exe.*|.*sqltoolsps\.exe.*|.*sqlps\.exe.*|.*sqldumper\.exe.*|.*rcsi\.exe.*|.*msxsl\.exe.*|.*msdeploy\.exe.*|.*mftrace\.exe.*|.*dxcap\.exe.*|.*dnx\.exe.*|.*csi\.exe.*|.*cdb\.exe.*|.*bginfo\.exe.*|.*appvlp\.exe.*|.*xwizard\.exe.*|.*wsreset\.exe.*|.*wscript\.exe.*|.*wmic\.exe.*|.*wab\.exe.*|.*verclsid\.exe.*|.*syncappvpublishingserver\.exe.*|.*scriptrunner\.exe.*|.*schtasks\.exe.*|.*sc\.exe.*|.*runscripthelper\.exe.*|.*runonce\.exe.*|.*rundll32\.exe.*|.*rpcping\.exe.*|.*replace\.exe.*|.*regsvr32\.exe.*|.*regsvcs\.exe.*|.*register-cimprovider\.exe.*|.*regedit\.exe.*|.*regasm\.exe.*|’ GROUP BY “Process Name”,sourceip LAST 3 DAYS]

Abaixo está o OUTPUT

Resumo detalhado do detalhamento da consulta AQL

Visão geral da consulta

A consulta AQL fornecida foi projetada para pesquisar nomes de processos específicos em logs de eventos e retornar os endereços IP de origem e destino associados a esses processos. Aqui está um detalhamento da consulta:

Detalhamento da consulta AQL

  • Selecione a cláusula:
  • sourceip: o endereço IP de origem do qual o evento se originou.
  • destinationip: o endereço IP de destino para o qual o evento foi direcionado.
  • “Nome do processo”: O nome do processo envolvido no evento.
  • Da cláusula:
  • events: o conjunto de dados ou tabela do qual a consulta está recuperando dados.
  • Cláusula Where:
  • “Nome do processo” IMATCHES ‘.*atbroker\.exe.*|. *bash\.exe.*|. *bitsadmin\.exe.*|. *certutil\.exe.*|. *cmdkey\.exe.*|. *cmstp\.exe.*|. *controle\.exe.*|. *csc\.exe.*|. *cscript\.exe.*|. *dfsvc\.exe.*|. *diskshadow\.exe.*|. *dnscmd\.exe.*|. *esentutl\.exe.*|. *eventvwr\.exe.*|. *expandir\.exe.*|. *extexport\.exe.*|. *extrac32\.exe.*|. *findstr\.exe.*|. *paraarquivos\.exe.*|. *ftp\.exe.*|. *gpscript\.exe.*|. *hh\.exe.*|. *ie4uinit\.exe.*|. *ieexec\.exe.*|. *infdefaultinstall\.exe.*|. *installutil\.exe.*|. * makecab \ .exe.* |. *reg\.exe.*|. *impressão\.exe.*|. *PresentationHost\.exe.*|. *pcwrun\.exe.*|. *pcalua\.exe.*|. *odbcconf\.exe.*|. *msiexec\.exe.*|. *mshta\.exe.*|. *msdt\.exe.*|. *msconfig\.exe.*|. *msbuild\.exe.*|. *mmc\.exe.*|. *Microsoft.Workflow.Compiler\.exe.*|. *mavinject\.exe.*|. *vsjitdebugger\.exe.*|. *rastreador\.exe.*|. *te\.exe.*|. *SQLTocessps\.exe.*|. *sqlps\.exe.*|. *sqldumper\.exe.*|. *rcsi\.exe.*|. *msxsl\.exe.*|. *msdeploy\.exe.*|. *mftrace\.exe.*|. *dxcap\.exe.*|. *dnx\.exe.*|. *csi\.exe.*|. *cdb\.exe.*|. *bginfo\.exe.*|. *appvlp\.exe.*|. *xwizard\.exe.*|. *wsreset\.exe.*|. *wscript\.exe.*|. *wmic\.exe.*|. * wab \ .exe. * |. *verclsid\.exe.*|. *syncappvpublishingserver\.exe.*|. *roteirista\.exe.*|. *schtasks\.exe.*|. *sc\.exe.*|. *runscripthelper\.exe.*|. *runonce\.exe.*|. *rundll32\.exe.*|. *rpcping\.exe.*|. *substituir\.exe.*|. *regsvr32\.exe.*|. *regsvcs\.exe.*|. *register-cimprovider\.exe.*|. *regedit\.exe.*|. *regasm\.exe.*’: essa condição filtra eventos para incluir apenas aqueles em que o nome do processo corresponde a qualquer um dos padrões especificados. O operador IMATCHES é usado para correspondência de expressões regulares que não diferenciam maiúsculas de minúsculas.
  • Agrupar por cláusula:
  • “Nome do processo”, sourceip: Os resultados são agrupados pelo nome do processo e endereço IP de origem.
  • Intervalo de tempo:
  • ÚLTIMOS 3 DIAS: A consulta é limitada a eventos que ocorreram nos últimos três dias.

Resumo

Essa consulta AQL foi projetada para identificar e agrupar eventos com base em nomes de processos específicos que geralmente estão associados a atividades suspeitas ou mal-intencionadas. Ao se concentrar nesses processos, a consulta ajuda a monitorar e investigar possíveis incidentes de segurança. Os resultados fornecem informações sobre os endereços IP de origem e destino envolvidos, o que pode ser crucial para uma análise e resposta adicionais.

A consulta retorna o nome do processo, o IP de origem e o IP de destino para eventos que correspondem aos nomes de processo especificados, agrupados por nome de processo e IP de origem, nos últimos três dias.

 Esta próxima etapa para ver se o Security Copilot pode ajudar a converter o AQL em algo mapeado para a Linguagem de Consulta Kusto do Microsoft Sentinel:

Você pode analisar a consulta AQL acima e mapeá-la para KQL, é importante garantir que o mapeamento se correlacione diretamente com o esquema em KQL. Você também pode mostrar a saída da consulta em uma tabela. Apresente os mapeamentos em uma tabela:

 Consulta e saída KQL

Mapeamento de consulta KQL

DeviceProcessEvents | where TimeGenerated >= ago(3d) | where InitiatingProcessFileName matches regex @'(?i).*atbroker\.exe.*|.*bash\.exe.*|.*bitsadmin\.exe.*|.*certutil\.exe.*|.*cmdkey\.exe.*|.*cmstp\.exe.*|.*control\.exe.*|.*csc\.exe.*|.*cscript\.exe.*|.*dfsvc\.exe.*|.*diskshadow\.exe.*|.*dnscmd\.exe.*|.*esentutl\.exe.*|.*eventvwr\.exe.*|.*expand\.exe.*|.*extexport\.exe.*|.*extrac32\.exe.*|.*findstr\.exe.*|.*forfiles\.exe.*|.*ftp\.exe.*|.*gpscript\.exe.*|.*hh\.exe.*|.*ie4uinit\.exe.*|.*ieexec\.exe.*|.*infdefaultinstall\.exe.*|.*installutil\.exe.*|.*makecab\.exe.*|.*reg\.exe.*|.*print\.exe.*|.*presentationhost\.exe.*|.*pcwrun\.exe.*|.*pcalua\.exe.*|.*odbcconf\.exe.*|.*msiexec\.exe.*|.*mshta\.exe.*|.*msdt\.exe.*|.*msconfig\.exe.*|.*msbuild\.exe.*|.*mmc\.exe.*|.*microsoft.workflow.compiler\.exe.*|.*mavinject\.exe.*|.*vsjitdebugger\.exe.*|.*tracker\.exe.*|.*te\.exe.*|.*sqltoolsps\.exe.*|.*sqlps\.exe.*|.*sqldumper\.exe.*|.*rcsi\.exe.*|.*msxsl\.exe.*|.*msdeploy\.exe.*|.*mftrace\.exe.*|.*dxcap\.exe.*|.*dnx\.exe.*|.*csi\.exe.*|.*cdb\.exe.*|.*bginfo\.exe.*|.*appvlp\.exe.*|.*xwizard\.exe.*|.*wsreset\.exe.*|.*wscript\.exe.*|.*wmic\.exe.*|.*wab\.exe.*|.*verclsid\.exe.*|.*syncappvpublishingserver\.exe.*|.*scriptrunner\.exe.*|.*schtasks\.exe.*|.*sc\.exe.*|.*runscripthelper\.exe.*|.*runonce\.exe.*|.*rundll32\.exe.*|.*rpcping\.exe.*|.*replace\.exe.*|.*regsvr32\.exe.*|.*regsvcs\.exe.*|.*register-cimprovider\.exe.*|.*regedit\.exe.*|.*regasm\.exe.*’ | summarize by InitiatingProcessFileName

Saída da consulta

IniciandoNome_do_Arquivo_do_Processo
csc.exe
gpupdate.exe
microsoftedgeupdate.exe
msiexec.exe
schtasks.exe
sc.exe
cscript.exe
rundll32.exe
makecab.exe
route.exe

Contagens de linhas

  • Total de linhas: 10
  • Linhas exibidas: 10

Nome do produto

  • Produto: Sentinela

Você pode baixar o seguinte no repositório oficial do Github do Microsoft Security Copilot, obrigado Sean_Wasonga por dar suporte ao pacote de implantação automatizada.

  • Arquivo de código do aplicativo lógico do Azure do migrador KQL: clique aqui

o Certifique-se de substituir o seguinte pelas informações corretas do seu inquilino:

  • <ID da assinatura>
  • <Nome do Grupo de Recursos>
  • Exemplos de consultas AQL / regras YARA: Clique aqui

A equipe destacou a importância de considerar as regras da YARA para uniformidade. Dado que faltava experiência na geração de regras YARA, o Security Copilot consultou novamente:

 /askGPT Can you explain what a YAYA rule is with an example

Uma regra YARA é um tipo de regra usada em segurança cibernética para identificar e classificar amostras de malware. YARA, que significa “Yet Another Recursive Acronym”, é uma ferramenta destinada a ajudar os pesquisadores de malware a identificar e classificar malware. As regras YARA são escritas em uma sintaxe específica e são usadas para descrever padrões que podem ser encontrados em arquivos ou processos.

Exemplo de uma regra YARA

Aqui está um exemplo simples de uma regra YARA que detecta um arquivo que contém a cadeia de caracteres “malicioso”:

exemplo de regraRegra

{

    meta:

description = “Esta regra detecta arquivos contendo a string ‘maliciosa'”

autor = “Pesquisador de Segurança”

data = “2024-12-09”

Strings:

$malicious_string = “malicioso”

condição:

        $malicious_string

}

Portanto, temos uma compreensão básica do que é uma regra YARA e seu formato típico. A etapa é que podemos usar o Security Copilot para converter o YARA em uma regra KQL:

Usamos o seguinte prompt:

As a YARA rule expert, can you take the above KQL query generated and create a KQL rule? rule Suspicious_Process_Execution { meta: description = “Detects execution of potentially suspicious processes” author = “Security Analyst” date = “2023-10-01” strings: $atbroker = /(?i).*atbroker\.exe.*/ $bash = /(?i).*bash\.exe.*/ $bitsadmin = /(?i).*bitsadmin\.exe.*/ $certutil = /(?i).*certutil\.exe.*/ $cmdkey = /(?i).*cmdkey\.exe.*/ $cmstp = /(?i).*cmstp\.exe.*/ $control = /(?i).*control\.exe.*/ $csc = /(?i).*csc\.exe.*/ $cscript = /(?i).*cscript\.exe.*/ $dfsvc = /(?i).*dfsvc\.exe.*/ $diskshadow = /(?i).*diskshadow\.exe.*/ $dnscmd = /(?i).*dnscmd\.exe.*/ $esentutl = /(?i).*esentutl\.exe.*/ $eventvwr = /(?i).*eventvwr\.exe.*/ $expand = /(?i).*expand\.exe.*/ $extexport = /(?i).*extexport\.exe.*/ $extrac32 = /(?i).*extrac32\.exe.*/ $findstr = /(?i).*findstr\.exe.*/ $forfiles = /(?i).*forfiles\.exe.*/ $ftp = /(?i).*ftp\.exe.*/ $gpscript = /(?i).*gpscript\.exe.*/ $hh = /(?i).*hh\.exe.*/ $ie4uinit = /(?i).*ie4uinit\.exe.*/ $ieexec = /(?i).*ieexec\.exe.*/ $infdefaultinstall = /(?i).*infdefaultinstall\.exe.*/ $installutil = /(?i).*installutil\.exe.*/ $makecab = /(?i).*makecab\.exe.*/ $reg = /(?i).*reg\.exe.*/ $print = /(?i).*print\.exe.*/ $presentationhost = /(?i).*presentationhost\.exe.*/ $pcwrun = /(?i).*pcwrun\.exe.*/ $pcalua = /(?i).*pcalua\.exe.*/ $odbcconf = /(?i).*odbcconf\.exe.*/ $msiexec = /(?i).*msiexec\.exe.*/ $mshta = /(?i).*mshta\.exe.*/ $msdt = /(?i).*msdt\.exe.*/ $msconfig = /(?i).*msconfig\.exe.*/ $msbuild = /(?i).*msbuild\.exe.*/ $mmc = /(?i).*mmc\.exe.*/ $microsoft_workflow_compiler = /(?i).*microsoft\.workflow\.compiler\.exe.*/ $mavinject = /(?i).*mavinject\.exe.*/ $vsjitdebugger = /(?i).*vsjitdebugger\.exe.*/ $tracker = /(?i).*tracker\.exe.*/ $te = /(?i).*te\.exe.*/ $sqltoolsps = /(?i).*sqltoolsps\.exe.*/ $sqlps = /(?i).*sqlps\.exe.*/ $sqldumper = /(?i).*sqldumper\.exe.*/ $rcsi = /(?i).*rcsi\.exe.*/ $msxsl = /(?i).*msxsl\.exe.*/ $msdeploy = /(?i).*msdeploy\.exe.*/ $mftrace = /(?i).*mftrace\.exe.*/ $dxcap = /(?i).*dxcap\.exe.*/ $dnx = /(?i).*dnx\.exe.*/ $csi = /(?i).*csi\.exe.*/ $cdb = /(?i).*cdb\.exe.*/ $bginfo = /(?i).*bginfo\.exe.*/ $appvlp = /(?i).*appvlp\.exe.*/ $xwizard = /(?i).*xwizard\.exe.*/ $wsreset = /(?i).*wsreset\.exe.*/ $wscript = /(?i).*wscript\.exe.*/ $wmic = /(?i).*wmic\.exe.*/ $wab = /(?i).*wab\.exe.*/ $verclsid = /(?i).*verclsid\.exe.*/ $syncappvpublishingserver = /(?i).*syncappvpublishingserver\.exe.*/ $scriptrunner = /(?i).*scriptrunner\.exe.*/ $schtasks = /(?i).*schtasks\.exe.*/ $sc = /(?i).*sc\.exe.*/ $runscripthelper = /(?i).*runscripthelper\.exe.*/ $runonce = /(?i).*runonce\.exe.*/ $rundll32 = /(?i).*rundll32\.exe.*/ $rpcping = /(?i).*rpcping\.exe.*/ $replace = /(?i).*replace\.exe.*/ $regsvr32 = /(?i).*regsvr32\.exe.*/ $regsvcs = /(?i).*regsvcs\.exe.*/ $register_cimprovider = /(?i).*register-cimprovider\.exe.*/ $regedit = /(?i).*regedit\.exe.*/ $regasm = /(?i).*regasm\.exe.*/ condition: any of ($atbroker, $bash, $bitsadmin, $certutil, $cmdkey, $cmstp, $control, $csc, $cscript, $dfsvc, $diskshadow, $dnscmd, $esentutl, $eventvwr, $expand, $extexport, $extrac32, $findstr, $forfiles, $ftp, $gpscript, $hh, $ie4uinit, $ieexec, $infdefaultinstall, $installutil, $makecab, $reg, $print, $presentationhost, $pcwrun, $pcalua, $odbcconf, $msiexec, $mshta, $msdt, $msconfig, $msbuild, $mmc, $microsoft_workflow_compiler, $mavinject, $vsjitdebugger, $tracker, $te, $sqltoolsps, $sqlps, $sqldumper, $rcsi, $msxsl, $msdeploy, $mftrace, $dxcap, $dnx, $csi, $cdb, $bginfo, $appvlp, $xwizard, $wsreset, $wscript, $wmic, $wab, $verclsid, $syncappvpublishingserver, $scriptrunner, $schtasks, $sc, $runscripthelper, $runonce, $rundll32, $rpcping, $replace, $regsvr32, $regsvcs, $register_cimprovider, $regedit, $regasm) }

Regra KQL baseada na regra YARA

DeviceProcessEvents | where Timestamp >= ago(3d) | where InitiatingProcessFileName matches regex @'(?i).*atbroker\.exe.*|.*bash\.exe.*|.*bitsadmin\.exe.*|.*certutil\.exe.*|.*cmdkey\.exe.*|.*cmstp\.exe.*|.*control\.exe.*|.*csc\.exe.*|.*cscript\.exe.*|.*dfsvc\.exe.*|.*diskshadow\.exe.*|.*dnscmd\.exe.*|.*esentutl\.exe.*|.*eventvwr\.exe.*|.*expand\.exe.*|.*extexport\.exe.*|.*extrac32\.exe.*|.*findstr\.exe.*|.*forfiles\.exe.*|.*ftp\.exe.*|.*gpscript\.exe.*|.*hh\.exe.*|.*ieuinit\.exe.*|.*ieexec\.exe.*|.*infdefaultinstall\.exe.*|.*installutil\.exe.*|.*makecab\.exe.*|.*reg\.exe.*|.*print\.exe.*|.*presentationhost\.exe.*|.*pcwrun\.exe.*|.*pcalua\.exe.*|.*odbcconf\.exe.*|.*msiexec\.exe.*|.*mshta\.exe.*|.*msdt\.exe.*|.*msconfig\.exe.*|.*msbuild\.exe.*|.*mmc\.exe.*|.*microsoft.workflow.compiler\.exe.*|.*mavinject\.exe.*|.*vsjitdebugger\.exe.*|.*tracker\.exe.*|.*te\.exe.*|.*sqltoolsps\.exe.*|.*sqlps\.exe.*|.*sqldumper\.exe.*|.*rcsi\.exe.*|.*msxsl\.exe.*|.*msdeploy\.exe.*|.*mftrace\.exe.*|.*dxcap\.exe.*|.*dnx\.exe.*|.*csi\.exe.*|.*cdb\.exe.*|.*bginfo\.exe.*|.*appvlp\.exe.*|.*xwizard\.exe.*|.*wsreset\.exe.*|.*wscript\.exe.*|.*wmic\.exe.*|.*wab\.exe.*|.*verclsid\.exe.*|.*syncappvpublishingserver\.exe.*|.*scriptrunner\.exe.*|.*schtasks\.exe.*|.*sc\.exe.*|.*runscripthelper\.exe.*|.*runonce\.exe.*|.*rundll32\.exe.*|.*rpcping\.exe.*|.*replace\.exe.*|.*regsvr32\.exe.*|.*regsvcs\.exe.*|.*register-cimprovider\.exe.*|.*regedit\.exe.*|.*regasm\.exe.*’ | summarize by InitiatingProcessFileName

Agora existe um método para converter com eficiência uma regra de detecção de um SIEM herdado em um compatível com o Microsoft Sentinel. A próxima etapa é entender como um usuário pode implementar isso no Sentinel. É importante considerar que o usuário pode precisar se familiarizar com o novo SIEM ou contratar um empreiteiro. Como um empreiteiro não estava disponível, dadas as circunstâncias, decidimos perguntar ao Security Copilot:

Você pode criar um documento de controle de alterações que mostre as etapas necessárias para criar a regra de detecção para a consulta KQL gerada acima no sentinel. Inclua também o nível de acesso necessário para fazer essa alteração. Certifique-se de que a reversão esteja incluída.

Documento de controle de alterações: Criando uma regra de detecção no Microsoft Sentinel

Detalhes da solicitação de alteração

  • ID da solicitação de alteração: [A ser atribuído]
  • Alterar título: Criar regra de detecção para execução de processo suspeito
  • Alterar descrição: Implemente uma regra de detecção no Microsoft Sentinel com base na consulta KQL fornecida para monitorar execuções de processos suspeitos.

Etapas para implementar a mudança

  1. Faça logon no Portal do Azure:
    • Navegue até o portal do Azure (https://portal.azure.com).
    • Verifique se você tem as permissões necessárias para acessar o Microsoft Sentinel.
  2. Acesse o Microsoft Sentinel:
    • No portal do Azure, pesquise “Microsoft Sentinel” e selecione o workspace apropriado.
  3. Crie uma nova regra do Analytics:
    • Vá para a seção “Análise” no workspace do Microsoft Sentinel.
    • Clique em “Criar” e selecione “Regra de consulta agendada”.
  4. Definir detalhes da regra:
    • Nome: Detecção de execução de processo suspeito
    • Descrição: Detecta a execução de processos potencialmente suspeitos com base na consulta KQL fornecida.
    • Severidade: Alto
    • Táticas: Execução
  5. Definir lógica de regra:

DeviceProcessEvents | where TimeGenerated >= ago(3d) | where InitiatingProcessFileName matches regex @'(?i).*atbroker\.exe.*|.*bash\.exe.*|.*bitsadmin\.exe.*|.*certutil\.exe.*|.*cmdkey\.exe.*|.*cmstp\.exe.*|.*control\.exe.*|.*csc\.exe.*|.*cscript\.exe.*|.*dfsvc\.exe.*|.*diskshadow\.exe.*|.*dnscmd\.exe.*|.*esentutl\.exe.*|.*eventvwr\.exe.*|.*expand\.exe.*|.*extexport\.exe.*|.*extrac32\.exe.*|.*findstr\.exe.*|.*forfiles\.exe.*|.*ftp\.exe.*|.*gpscript\.exe.*|.*hh\.exe.*|.*ie4uinit\.exe.*|.*ieexec\.exe.*|.*infdefaultinstall\.exe.*|.*installutil\.exe.*|.*makecab\.exe.*|.*reg\.exe.*|.*print\.exe.*|.*presentationhost\.exe.*|.*pcwrun\.exe.*|.*pcalua\.exe.*|.*odbcconf\.exe.*|.*msiexec\.exe.*|.*mshta\.exe.*|.*msdt\.exe.*|.*msconfig\.exe.*|.*msbuild\.exe.*|.*mmc\.exe.*|.*microsoft.workflow.compiler\.exe.*|.*mavinject\.exe.*|.*vsjitdebugger\.exe.*|.*tracker\.exe.*|.*te\.exe.*|.*sqltoolsps\.exe.*|.*sqlps\.exe.*|.*sqldumper\.exe.*|.*rcsi\.exe.*|.*msxsl\.exe.*|.*msdeploy\.exe.*|.*mftrace\.exe.*|.*dxcap\.exe.*|.*dnx\.exe.*|.*csi\.exe.*|.*cdb\.exe.*|.*bginfo\.exe.*|.*appvlp\.exe.*|.*xwizard\.exe.*|.*wsreset\.exe.*|.*wscript\.exe.*|.*wmic\.exe.*|.*wab\.exe.*|.*verclsid\.exe.*|.*syncappvpublishingserver\.exe.*|.*scriptrunner\.exe.*|.*schtasks\.exe.*|.*sc\.exe.*|.*runscripthelper\.exe.*|.*runonce\.exe.*|.*rundll32\.exe.*|.*rpcping\.exe.*|.*replace\.exe.*|.*regsvr32\.exe.*|.*regsvcs\.exe.*|.*register-cimprovider\.exe.*|.*regedit\.exe.*|.*regasm\.exe.*’ | summarize by InitiatingProcessFileName

  1. Frequência de consulta: 5 minutos
  2. Período de consulta: 3 dias
  3. Definir detalhes do alerta:
    • Nome da regra de alerta: Execução de processo suspeito detectada
    • Descrição: Alerta quando uma execução de processo suspeita é detectada.
    • Severidade: Alto
    • Táticas: Execução
  4. Configurar resposta automatizada (opcional):
    • Adicione guias estratégicos ou respostas automatizadas, se necessário.
  5. Revise e crie:
    • Revise a configuração da regra.
    • Clique em “Criar” para salvar e ativar a regra.

Nível de acesso necessário

  • Papel: Administrador de segurança ou colaborador do Sentinel
  • Permissões:
    • Acesso de leitura e gravação ao Microsoft Sentinel
    • Capacidade de criar e gerenciar regras de análise

Plano de reversão

  1. Faça logon no Portal do Azure:
  2. Acesse o Microsoft Sentinel:
    • No portal do Azure, pesquise “Microsoft Sentinel” e selecione o workspace apropriado.
  3. Exclua a regra do Analytics:
    • Vá para a seção “Análise” no workspace do Microsoft Sentinel.
    • Localize a regra “Detecção de Execução de Processo Suspeito”.
    • Selecione a regra e clique em “Excluir”.
  4. Verificar exclusão:
    • Verifique se a regra não está mais listada na seção “Analytics”.
  5. Documente a reversão:
    • Atualize o documento de controle de alterações para refletir a ação de reversão.

Aprovação

  • Aprovador de alterações: [A ser atribuído]
  • Data de aprovação: [A ser atribuído]

Data de implementação

  • Data agendada: [A ser atribuído]
  • Tempo de implementação: [A ser atribuído]

Data de reversão

  • Data agendada: [A ser atribuído]
  • Tempo de reversão: [A ser atribuído]

Como você pode ver com os métodos acima, agora existe a opção de criar um livro de prompt que pode ser executado manualmente para converter com eficiência AQL em KQL ou YARA.

 Exportamos as consultas AQL e as importamos diretamente para as listas de observação no Sentinel:

Clicar em exibir logs mostra AQLPayLoad armazenado na tabela _GetWatchlist(‘AQL2KQL’):

Como temos essa lista de observação agora importada, ela simplesmente não funcionará, pois a sintaxe do AQL não é compreendida pelo Sentinel:

Agora temos a opção de fazer com que o Copilot realize a conversão por meio de um aplicativo lógico, portanto, em teoria, só precisamos carregar a lista de observação e deixar o aplicativo lógico conversar.

Conclusão e consideração

  • Portanto, explorar como o conector do Aplicativo Lógico do Azure do Security Copilot e os Promptbooks revolucionam a integração de soluções de segurança orientadas por IA nos fluxos de trabalho atuais. Essa ferramenta não apenas fornece maior personalização e integração de sistema mais suave, mas também acesso a uma gama mais ampla de integração de ferramentas de segurança lógica do Azure prontas. Incentivamos você a experimentar a eficiência do conector do Aplicativo Lógico do Azure do Security Copilot para aprimorar suas operações de segurança.
  • Ao investigar e entender o AQL / YARA, não saímos da plataforma copiloto
  • Você pode personalizar o Aplicativo Lógico criando automaticamente as regras de análise do Microsoft Sentinel por meio da API
  • Se os Aplicativos Lógicos não forem adequados, considere adicionar uma etapa para criar a documentação de controle no promptbook.

Source: Blog Tech Community.

Agende uma reunião e transforme seu negócio com o Azure Microsoft

A migração de SIEM é um processo estratégico que exige planejamento e ferramentas adequadas. Com a tecnologia do Microsoft Security Copilot, simplificamos esse caminho, garantindo eficiência e segurança na transição para o Microsoft Sentinel. Nossa equipe está pronta para ajudar você a traduzir suas regras de detecção de forma eficaz e a aproveitar todo o potencial do KQL.

Entre em contato conosco e descubra como nossa expertise pode transformar suas operações de segurança. Clique aqui e agende uma reunião para explorar soluções sob medida para as suas necessidades empresariais.

Preencha o formulário e nosso time de especialistas entrará em contato.

E não se esqueça de nos seguir em nossas social networks e acessar o blog Data Universe diariamente.

Ebook Data Driven Team - Cultura de Dados

Data Driven Team Ebook

Learn about the process that values and encourages the use of data in crucial decision-making in your business.

Privacy statement
Ebook Data Driven Team - Cultura de Dados

Data Driven Team Ebook

Learn about the process that values and encourages the use of data in crucial decision-making in your business.

See more related articles

Como estruturar uma plataforma corporativa de analytics sem criar novos silos

Plataforma corporativa de analytics: centralizar não basta Uma plataforma corporativa de analytics...

Integração entre analytics e sistemas operacionais sem retrabalho

Integração analytics sistemas operacionais se tornou uma prioridade para empresas que precisam...

Arquitetura de dados como aceleradora de decisão em tempo quase real

A velocidade da decisão passou a ser um diferencial competitivo real. Empresas que conseguem...

Arquiteturas híbridas: Azure + AWS + Lakehouse no mesmo fluxo

O tema arquiteturas híbridas Azure AWS Lakehouse se tornou cada vez mais relevante à medida que...

Performance analítica não depende só de infraestrutura

A performance analítica infraestrutura costuma ser tratada de forma simplificada dentro de muitas...

Zero-copy architecture: por que storage e compute precisam estar desacoplados

A zero-copy architecture vem ganhando espaço como uma das mudanças mais relevantes no desenho das...