Este guia explica como ingerir feeds da Plataforma Axur no IBM QRadar usando o protocolo Universal Cloud REST API com um workflow personalizado.
Nota: Este tutorial assume que você já possui acesso à Plataforma Axur e à Chave API necessária.
Nota da UI: Dependendo da sua versão do QRadar, a localização de Log Sources / Log Source Management pode ser diferente (aba superior vs Admin → Log Sources). Você deve acessar esta área para criar e configurar a integração. Se você não a vir ou o protocolo Universal Cloud REST API, vá para Admin → Extensions Management para instalá-los/ativá-los.
Pré-requisitos
IBM QRadar versão 7.3.2 ou superior (suporte a Universal Cloud REST API)
Acesso ao Gerenciamento de Fontes de Log (aba) ou a
Admin→Log SourcesAcesso a
Admin→Extensions Management(para instalar aplicativos/protocolos, se necessário)Acesso administrativo ao console do QRadar
Chave API da Plataforma Axur e um ID de Feed
Considerações de custo e faturamento
Importante: Esta integração utiliza os recursos Universal Cloud REST API integrados do QRadar, portanto, não há custos de licenciamento adicionais para a integração em si.
As principais considerações de custo são:
Licenciamento do QRadar: Certifique-se de que sua licença do QRadar suporte os recursos necessários
Largura de banda da rede: A ingestão de dados de APIs externas consumirá largura de banda
Armazenamento: Eventos ingeridos consumirão espaço de armazenamento do QRadar
Dica: Um glossário de termos do QRadar usados neste tutorial está disponível no final do documento, em Glossário.
1) Crie o Feed da Plataforma Axur
Crie uma Chave API e um Feed diretamente na Plataforma Axur. Mantenha ambos os valores à mão para as etapas posteriores.
Gere uma Chave API
Na Plataforma Axur, vá para Configuração de Chaves API.
Crie uma nova chave API e copie o valor da Chave API de forma segura.
Nota: O feed retorna apenas dados que o usuário da chave API tem permissão para acessar.
Capturas de tela:
Crie o Feed e copie seu ID
Na Plataforma Axur, vá para API & Integrations → Feeds.
Crie um novo feed de acordo com seu caso de uso (por exemplo, phishing, brand abuse, vazamento de credenciais), definindo os filtros desejados.
Após salvar, abra o feed recém-criado. Copie apenas o ID do Feed da URL e guarde-o para mais tarde.
Capturas de tela:
(Opcional) Valide o feed via API Use curl para confirmar que o feed retorna dados usando sua Chave API e ID de Feed:
curl -sS \
-H "Authorization: Bearer YOUR_AXUR_API_KEY" \
-H "Accept: application/json" \
"https://api.axur.com/gateway/1.0/api/integration-feed/feeds/feed/YOUR_FEED_ID" | jq '.'
Em
API & Integrations→Feeds, você também pode monitorar o status do feed ao longo do tempo (por exemplo, timestamp da última requisição).Se nenhum evento for retornado, verifique os filtros do feed e as permissões do usuário da chave API.
A partir deste ponto (Etapa 2+), toda a configuração é realizada no console do IBM QRadar.
2) Localize o Gerenciamento de Fontes de Log (Diferenças na UI por versão)
Dependendo da sua versão do QRadar, o Gerenciamento de Fontes de Log pode aparecer em diferentes locais.
No console do QRadar:
Se você vir uma aba
Log Source Managementna navegação superior, abra-a.Caso contrário, vá para
Admin→Log Sources(visualização clássica).Se você não conseguir encontrar o
Log Source Management, instale-o viaAdmin→Extensions Management:Clique em
Adde instale do IBM App Exchange, ou faça o upload do arquivo de extensãoInstale/ative o aplicativo
Log Source ManagementImplemente as alterações e aguarde a conclusão da instalação
Capturas de tela:
3) Crie uma Nova Fonte de Log
Crie uma nova fonte de log usando o protocolo Universal Cloud REST API.
No console do QRadar:
Vá para a aba
Log Source Management, ou navegue paraAdmin→Log Sources.Clique em
+ New Log Sourcepara adicionar uma nova fonte de log.Quando solicitado, selecione
Single Log Source.No campo “Log Source Type”, selecione
Universal DSM. Em seguida, defina o “Protocol Type” comoUniversal Cloud REST API.Defina o “Log Source Name” para algo significativo (por exemplo,
Axur Platform Feed).No campo “Log Source Identifier”, insira um nome descritivo (por exemplo,
Axur_Feed_Integration).
Capturas de tela:
4) Configure o XML do Workflow
Configure o workflow que define como o QRadar coletará eventos do feed Axur.
A Plataforma Axur fornece três tipos de feeds, cada um com uma estrutura de dados diferente na resposta da API:
Feed de Tickets: Retorna dados em
/collectionData/tickets— usado para feeds baseados em tickets (phishing, brand abuse, etc.)Feed de Credenciais: Retorna dados em
/collectionData/detections— usado para feeds de detecção de vazamento de credenciaisFeed de IOCs: Retorna dados em
/collectionData/iocs— usado para feeds de Indicadores de Compromisso
Importante: Você deve selecionar o XML de workflow apropriado com base no tipo do seu feed. A única diferença entre os workflows é o caminho usado para acessar os dados na resposta da API.
Na configuração da fonte de log:
No campo "Workflow", cole o XML que corresponde ao tipo do seu feed:
Workflow para Feed de Tickets
Use este workflow quando seu feed retornar dados de tickets (caminho: /collectionData/tickets):
<?xml version="1.0" encoding="UTF-8"?>
<Workflow name="Axur_Feed_Tickets_OneCall" version="1.0" minimumRecurrence="60"
xmlns="http://qradar.ibm.com/UniversalCloudRESTAPI/Workflow/V2">
<Parameters>
<Parameter name="base_url" label="Base URL" default="https://api.axur.com" />
<Parameter name="feed_id" label="Feed ID" required="true" />
<Parameter name="jwt_token" label="JWT Bearer Token" required="true" secret="true" />
<Parameter name="current_page" label="Page to Fetch" default="1" />
</Parameters>
<Actions>
<Set path="/axur/url" value="https://api.axur.com/gateway/1.0/api/integration-feed/feeds/feed/${/feed_id}" />
<CallEndpoint url="${/axur/url}" method="GET" savePath="/axur/response">
<QueryParameter name="page" value="1" />
<RequestHeader name="Authorization" value="Bearer ${/jwt_token}" />
<RequestHeader name="Accept" value="application/json" />
</CallEndpoint>
<If condition="/axur/response/status_code = 429">
<SetStatus type="WARN" message="Rate limited (429). Try increasing the minimumRecurrence (>= 30s) or wait for Retry-After." />
<Abort reason="HTTP 429 from Axur API" />
</If>
<If condition="/axur/response/status_code != 200">
<Abort reason="${/axur/response/status_code}: ${/axur/response/status_message}" />
</If>
<If condition="${count(/axur/response/body/collectionData/tickets)} > 0">
<PostEvents path="/axur/response/body/collectionData/tickets" source="${/base_url}" />
<SetStatus type="INFO" message="Published ${count(/axur/response/body/collectionData/tickets)} events from page ${/current_page}." />
</If>
<Delete path="/axur/response" />
</Actions>
<Tests>
<DNSResolutionTest host="api.axur.com"/>
<SSLHandshakeTest host="api.axur.com"/>
</Tests>
</Workflow>
Workflow para Feed de Credenciais
Use este workflow quando seu feed retornar dados de detecção de credenciais (caminho: /collectionData/detections):
<?xml version="1.0" encoding="UTF-8"?>
<Workflow name="Axur_Feed_Credentials_OneCall" version="1.0" minimumRecurrence="60"
xmlns="http://qradar.ibm.com/UniversalCloudRESTAPI/Workflow/V2">
<Parameters>
<Parameter name="base_url" label="Base URL" default="https://api.axur.com" />
<Parameter name="feed_id" label="Feed ID" required="true" />
<Parameter name="jwt_token" label="JWT Bearer Token" required="true" secret="true" />
<Parameter name="current_page" label="Page to Fetch" default="1" />
</Parameters>
<Actions>
<Set path="/axur/url" value="https://api.axur.com/gateway/1.0/api/integration-feed/feeds/feed/${/feed_id}" />
<CallEndpoint url="${/axur/url}" method="GET" savePath="/axur/response">
<QueryParameter name="page" value="1" />
<RequestHeader name="Authorization" value="Bearer ${/jwt_token}" />
<RequestHeader name="Accept" value="application/json" />
</CallEndpoint>
<If condition="/axur/response/status_code = 429">
<SetStatus type="WARN" message="Rate limited (429). Try increasing the minimumRecurrence (>= 30s) or wait for Retry-After." />
<Abort reason="HTTP 429 from Axur API" />
</If>
<If condition="/axur/response/status_code != 200">
<Abort reason="${/axur/response/status_code}: ${/axur/response/status_message}" />
</If>
<If condition="${count(/axur/response/body/collectionData/detections)} > 0">
<PostEvents path="/axur/response/body/collectionData/detections" source="${/base_url}" />
<SetStatus type="INFO" message="Published ${count(/axur/response/body/collectionData/detections)} events from page ${/current_page}." />
</If>
<Delete path="/axur/response" />
</Actions>
<Tests>
<DNSResolutionTest host="api.axur.com"/>
<SSLHandshakeTest host="api.axur.com"/>
</Tests>
</Workflow>
Workflow para Feed de IOCs
Use este workflow quando seu feed retornar dados de IOCs (caminho: /collectionData/iocs):
<?xml version="1.0" encoding="UTF-8"?>
<Workflow name="Axur_Feed_IOCs_OneCall" version="1.0" minimumRecurrence="60"
xmlns="http://qradar.ibm.com/UniversalCloudRESTAPI/Workflow/V2">
<Parameters>
<Parameter name="base_url" label="Base URL" default="https://api.axur.com" />
<Parameter name="feed_id" label="Feed ID" required="true" />
<Parameter name="jwt_token" label="JWT Bearer Token" required="true" secret="true" />
<Parameter name="current_page" label="Page to Fetch" default="1" />
</Parameters>
<Actions>
<Set path="/axur/url" value="https://api.axur.com/gateway/1.0/api/integration-feed/feeds/feed/${/feed_id}" />
<CallEndpoint url="${/axur/url}" method="GET" savePath="/axur/response">
<QueryParameter name="page" value="1" />
<RequestHeader name="Authorization" value="Bearer ${/jwt_token}" />
<RequestHeader name="Accept" value="application/json" />
</CallEndpoint>
<If condition="/axur/response/status_code = 429">
<SetStatus type="WARN" message="Rate limited (429). Try increasing the minimumRecurrence (>= 30s) or wait for Retry-After." />
<Abort reason="HTTP 429 from Axur API" />
</If>
<If condition="/axur/response/status_code != 200">
<Abort reason="${/axur/response/status_code}: ${/axur/response/status_message}" />
</If>
<If condition="${count(/axur/response/body/collectionData/iocs)} > 0">
<PostEvents path="/axur/response/body/collectionData/iocs" source="${/base_url}" />
<SetStatus type="INFO" message="Published ${count(/axur/response/body/collectionData/iocs)} events from page ${/current_page}." />
</If>
<Delete path="/axur/response" />
</Actions>
<Tests>
<DNSResolutionTest host="api.axur.com"/>
<SSLHandshakeTest host="api.axur.com"/>
</Tests>
</Workflow>
5) Configure os Parâmetros do Workflow
Defina os parâmetros necessários para que o workflow se conecte à API Axur.
No campo “Workflow Parameter Values”, cole o seguinte XML e substitua os valores de espaço reservado:
<?xml version="1.0" encoding="UTF-8"?>
<WorkflowParameterValues xmlns="http://qradar.ibm.com/UniversalCloudRESTAPI/WorkflowParameterValues/V2">
<Value name="feed_id" value="YOUR_AXUR_FEED_ID"/>
<Value name="jwt_token" value="YOUR_AXUR_API_KEY"/>
</WorkflowParameterValues>
Importante: Substitua os seguintes valores: - YOUR_AXUR_FEED_ID: O ID do Feed que você copiou da Plataforma Axur - YOUR_AXUR_API_KEY: Sua Chave API Axur
Capturas de tela:
6) Configure Configurações Adicionais
Configure opções adicionais para a fonte de log.
Use Proxy: Se sua rede exigir um proxy para acessar APIs externas, ative esta opção e forneça os detalhes do proxy.
Recurrence: Defina a frequência para a coleta de dados (padrão: 10 minutos). Para o feed Axur, recomendamos começar com 5 minutos.
7) Salve e Implemente as Alterações
Conclua a configuração e implemente as alterações para que a fonte de log se torne ativa.
Revise todas as configurações para garantir que estão corretas.
Clique em Finish para salvar a configuração da fonte de log.
Vá para a aba/página Admin e clique em Deploy Changes para aplicar a configuração em todo o QRadar. Dependendo da versão, o botão pode aparecer no canto superior direito ou como uma ação de banner.
Aguarde a conclusão da implementação. A fonte de log só será exibida como “Active” após a implementação.
Após a implementação, aguarde alguns minutos para que a coleta inicial de dados seja iniciada.
Capturas de tela:
Validação
Após configurar a fonte de log, aguarde 10-15 minutos para que o primeiro ciclo de coleta de dados seja concluído e, em seguida, verifique se a integração está funcionando corretamente.
Verifique a Atividade de Log
Navegue para
Log Activityno console do QRadar.Procure por eventos de sua fonte de log usando o nome ou identificador da fonte de log.
Procure por eventos com a origem “https://api.axur.com” ou seu identificador de fonte de log.
Verifique a Estrutura do Evento
Verifique se os eventos contêm os campos esperados do feed Axur: - ticket_reference - ticket_key - customer_key - detection_type - status - assets - attachments
Monitore o Status da Fonte de Log
Vá para
Admin→Log Sources.Encontre sua fonte de log Axur e verifique seu status.
Procure por quaisquer mensagens de erro ou avisos nos detalhes da fonte de log.
Capturas de tela:
Solução de Problemas
Problemas Comuns e Soluções
Nenhum evento aparece na Atividade de Log: - Verifique se o ID do Feed e a Chave API estão corretos - Verifique se a fonte de log está habilitada e ativa - Certifique-se de que o intervalo de recorrência não é muito longo - Verifique os logs do QRadar em busca de mensagens de erro
Erros HTTP 401/403: - Verifique se a Chave API é válida e possui as permissões adequadas - Verifique se a Chave API expirou - Certifique-se de que o ID do Feed existe e está acessível
Erros HTTP 429 (Limitação de Taxa): - Aumente o valor de minimumRecurrence no workflow (por exemplo, de 60 para 120 segundos) - Reduza a frequência das chamadas de API aumentando o intervalo de recorrência
Tempos limite de conexão: - Verifique a conectividade de rede com api.axur.com - Verifique as configurações do proxy, se estiver usando um - Aumente os valores de tempo limite na configuração da fonte de log
Erros SSL/TLS: - Habilite “Allow Untrusted Certificates” (Permitir Certificados Não Confiáveis), se necessário - Verifique se sua instância do QRadar pode resolver api.axur.com - Verifique se os testes de handshake SSL são aprovados
Etapas de Depuração
Verifique os Logs da Fonte de Log:
Vá para
Admin→Log SourcesClique em sua fonte de log Axur
Revise as informações de “Last Error” e “Status”
Teste a Conectividade:
Use os testes de conectividade integrados na configuração da fonte de log
Verifique a resolução DNS e os testes de handshake SSL
Verifique o Acesso à API:
Teste a API diretamente usando curl ou ferramentas semelhantes
Certifique-se de que a Chave API funciona com o ID de Feed específico
Verifique os Logs do Sistema QRadar:
Revise os logs do sistema QRadar em busca de quaisquer mensagens de erro relacionadas
Procure por erros específicos do Universal Cloud REST API
Capturas de tela:
Configuração Avançada
Mapeamento Personalizado de Eventos
Você pode personalizar como os eventos são mapeados no QRadar modificando o XML do workflow. O workflow atual publica os eventos como estão da API Axur, mas você pode adicionar transformações se necessário.
Múltiplos Feeds
Para integrar múltiplos feeds Axur, crie fontes de log separadas para cada feed com diferentes IDs de Feed e configurações.
Filtragem e Parsing
Considere adicionar regras de parsing no QRadar para extrair campos específicos dos eventos Axur para melhor análise e correlação.
Glossário
Console QRadar: A interface administrativa baseada na web para o IBM QRadar
Gerenciamento de Fontes de Log: Aplicativo do QRadar que gerencia fontes de dados externas
Universal Cloud REST API: Protocolo do QRadar para integração com APIs baseadas em nuvem
Workflow: Configuração XML que define como o QRadar coleta e processa dados de fontes externas
Fonte de Log: Uma fonte de dados configurada no QRadar que coleta logs de sistemas externos
Atividade de Log: Interface do QRadar para visualizar e pesquisar eventos de log coletados
Recorrência: A frequência com que o QRadar consulta fontes de dados externas em busca de novos dados
Token Portador JWT: Método de autenticação usado pela API Axur
ID do Feed: Identificador único para um feed de dados específico na Plataforma Axur
Limitação de Taxa: Mecanismo de proteção de API que limita o número de requisições por período de tempo
Handshake SSL: Processo de estabelecimento de uma conexão segura entre o QRadar e APIs externas
Resolução DNS: Processo de conversão de nomes de domínio em endereços IP
Proxy: Intermediário de rede que encaminha requisições entre o QRadar e APIs externas
Se ficar com qualquer dúvida, é só chamar a gente no [email protected] 😊