Integrar o OpenSearch ao Google SecOps
Este documento explica como integrar o OpenSearch ao Google Security Operations.
Casos de uso
A integração do OpenSearch aborda os seguintes casos de uso de orquestração e investigação de segurança:
Busca automatizada de ameaças: pesquise periodicamente em todos os índices do OpenSearch indicadores de comprometimento (IoCs) específicos ou padrões suspeitos usando consultas Lucene e DSL.
Ingestão centralizada de alertas: faça a ingestão de documentos do OpenSearch como alertas acionáveis no Google SecOps, garantindo que os eventos de segurança do seu data lake sejam priorizados e investigados.
Recuperação de dados contextuais: enriqueça os casos de segurança atuais extraindo automaticamente registros relacionados ou dados históricos do OpenSearch para fornecer aos analistas um contexto mais detalhado durante uma investigação.
Mapeamento de dados flexível: mapeie dinamicamente os níveis de gravidade e as tags de ambiente dos documentos do OpenSearch para os padrões do Google SecOps para manter a consistência entre diferentes fontes de registro.
Antes de começar
Antes de configurar a integração na plataforma do Google SecOps, verifique se você tem o seguinte:
Arquivo de certificado de CA: um arquivo de autoridade de certificação válido para proteger a conexão.
Versão mais recente da integração: verifique se você está usando a versão mais recente da integração do OpenSearch.
Certificado codificado em Base64: o conteúdo do arquivo de certificado de CA precisa ser convertido em uma string Base64 antes da configuração.
Para configurar a integração com um certificado de CA, siga estas etapas:
- Abra a página de parâmetros de configuração da integração.
- Cole a string codificada em Base64 no campo Arquivo de certificado de CA.
- Marque a caixa de seleção Verificar SSL.
- Clique em Testar para verificar se a integração foi configurada corretamente.
Parâmetros de integração
A integração do OpenSearch requer os seguintes parâmetros:
| Parâmetro | Descrição |
|---|---|
Server Address |
Obrigatório. O URL do endpoint da instância do OpenSearch, incluindo o protocolo e a porta (por exemplo, |
Username |
Opcional. O nome de usuário usado para autenticar com a instância do OpenSearch. |
Password |
Opcional. A senha associada ao nome de usuário especificado. |
API Token |
Opcional. O token de API usado para autenticação como alternativa a um nome de usuário e senha. |
Authenticate |
Opcional. Se selecionada, a integração autentica a conexão com o servidor do OpenSearch usando as credenciais fornecidas. |
Verify SSL |
Opcional. Se selecionada, a integração valida o certificado SSL ao se conectar ao servidor do OpenSearch. |
CA Certificate File |
Opcional. O conteúdo do arquivo de certificado da autoridade de certificação (CA) no formato PEM, usado para verificar o certificado SSL do servidor. |
Para instruções sobre como configurar uma integração no Google SecOps, consulte Configurar integrações.
Se necessário, você pode fazer mudanças depois. Depois de configurar uma instância de integração, é possível usá-la em playbooks. Para mais informações sobre como configurar e oferecer suporte a várias instâncias, consulte Como oferecer suporte a várias instâncias.
Ações
Para mais informações sobre ações, consulte Responder a ações pendentes na sua mesa de trabalho e Executar uma ação manual no seu caso.
Pesquisa avançada do ES
Use a ação Pesquisa avançada do ES para executar uma consulta de pesquisa pré-configurada no servidor OpenSearch e recuperar os resultados em um formato de dicionário.
Essa ação não é executada em entidades do Google SecOps.
Entradas da ação
A ação Pesquisa avançada da ES requer os seguintes parâmetros:
| Parâmetro | Descrição |
|---|---|
Index |
Opcional. O padrão de pesquisa para o índice do OpenSearch (por exemplo,
O valor padrão é |
Query |
Opcional. A consulta de pesquisa a ser realizada usando a sintaxe do Lucene (por exemplo,
O valor padrão é |
Limit |
Opcional. O número máximo de documentos a serem retornados. Defina esse valor como
O valor padrão é |
Display Field |
Opcional. Uma lista separada por vírgulas de campos específicos a serem retornados. O valor padrão é |
Search Field |
Opcional. O campo específico a ser pesquisado quando O valor padrão é |
Timestamp Field |
Opcional. O nome do campo usado para filtragem com base no tempo. Se O valor padrão é |
Oldest Date |
Opcional. A data de início da pesquisa. A ação retorna registros que ocorreram nesse carimbo de data/hora ou depois dele. É possível fornecer um carimbo de data/hora UTC exato
( O valor padrão é |
Earliest Date |
Opcional. A data de término da pesquisa. A ação retorna registros que ocorreram no carimbo de data/hora ou antes dele. É possível fornecer um carimbo de data/hora UTC exato
( O valor padrão é |
Saídas da ação
A ação Pesquisa avançada do ES fornece as seguintes saídas:
| Tipo de saída da ação | Disponibilidade |
|---|---|
| Anexo do Painel de Casos | Indisponível |
| Link do Painel de Casos | Indisponível |
| Tabela do painel de casos | Indisponível |
| Tabela de enriquecimento | Indisponível |
| Resultado JSON | Indisponível |
| Mensagens de saída | Disponível |
| Resultado do script | Disponível |
Resultado do script
A tabela a seguir lista o valor da saída do resultado do script ao usar a ação Pesquisa avançada do ES:
| Nome do resultado do script | Valor |
|---|---|
results |
RESULTS |
Pesquisa de DSL
Use a ação Pesquisa DSL para realizar uma pesquisa abrangente em todos os índices do OpenSearch e recuperar os resultados em um formato de dicionário.
Essa ação não é executada em entidades do Google SecOps.
Entradas da ação
A ação Pesquisa DSL requer os seguintes parâmetros:
| Parâmetro | Descrição |
|---|---|
Index |
Opcional. O padrão de pesquisa para o índice do OpenSearch (por exemplo,
O valor padrão é |
Query |
Opcional. A consulta de pesquisa a ser realizada usando a sintaxe do Lucene (por exemplo,
O valor padrão é |
Limit |
Opcional. O número máximo de documentos a serem retornados. Defina esse valor como
O valor padrão é |
Saídas da ação
A ação Pesquisa DSL fornece as seguintes saídas:
| Tipo de saída da ação | Disponibilidade |
|---|---|
| Anexo do Painel de Casos | Indisponível |
| Link do Painel de Casos | Indisponível |
| Tabela do painel de casos | Indisponível |
| Tabela de enriquecimento | Indisponível |
| Resultado JSON | Disponível |
| Mensagens de saída | Disponível |
| Resultado do script | Disponível |
Resultado JSON
O exemplo a seguir mostra a saída do resultado JSON recebida ao usar a ação Pesquisa DSL:
[
{
"_score": 0.2876821,
"_type": "person",
"_id": "2",
"_source": {
"lastname": "Smith",
"name": "John",
"job_description": "Systems administrator"
},
"_index": "accounts"
}, {
"_score": 0.28582606,
"_type": "person",
"_id": "1",
"_source":
{
"lastname": "Doe",
"name": "John",
"job_description": "Systems administrator and Linux specialist"
},
"_index": "accounts"
}
]
Resultado do script
A tabela a seguir lista o valor da saída do resultado do script ao usar a ação Pesquisa DSL:
| Nome do resultado do script | Valor |
|---|---|
results |
RESULTS |
Ping
Use a ação Ping para testar a conectividade com o OpenSearch.
Essa ação não é executada em entidades do Google SecOps.
Entradas da ação
Nenhuma.
Saídas da ação
A ação Ping fornece as seguintes saídas:
| Tipo de saída da ação | Disponibilidade |
|---|---|
| Anexo do Painel de Casos | Indisponível |
| Link do Painel de Casos | Indisponível |
| Tabela do painel de casos | Indisponível |
| Tabela de enriquecimento | Indisponível |
| Resultado JSON | Indisponível |
| Mensagens de saída | Disponível |
| Resultado do script | Disponível |
Resultado do script
A tabela a seguir lista o valor da saída do resultado do script ao usar a ação Ping:
| Nome do resultado do script | Valor |
|---|---|
| is_success | true ou false |
Pesquisa simples do ES
Use a ação Pesquisa simples do ES para realizar uma pesquisa básica em todos os campos indexados no OpenSearch e recuperar os resultados em um formato de dicionário.
Essa ação não é executada em entidades do Google SecOps.
Entradas da ação
A ação Pesquisa simples do ES requer os seguintes parâmetros:
| Parâmetro | Descrição |
|---|---|
Index |
Opcional. O padrão de pesquisa para o índice do OpenSearch (por exemplo,
O valor padrão é |
Query |
Opcional. A consulta de pesquisa a ser realizada usando a sintaxe do Lucene (por exemplo,
O valor padrão é |
Limit |
Opcional. O número máximo de documentos a serem retornados. Defina esse valor como
O valor padrão é |
Saídas da ação
A ação Pesquisa simples do ES fornece as seguintes saídas:
| Tipo de saída da ação | Disponibilidade |
|---|---|
| Anexo do Painel de Casos | Indisponível |
| Link do Painel de Casos | Indisponível |
| Tabela do painel de casos | Indisponível |
| Tabela de enriquecimento | Indisponível |
| Resultado JSON | Disponível |
| Mensagens de saída | Disponível |
| Resultado do script | Disponível |
Resultado JSON
O exemplo a seguir mostra a saída do resultado JSON recebida ao usar a ação Pesquisa simples do ES:
[{
"_score": 0.2876821,
"_type": "person",
"_id": "2",
"_source":
{
"lastname": "Smith",
"name": "John",
"job_description": "Systems administrator"
},
"_index": "accounts"
},
{
"_score": 0.28582606,
"_type": "person",
"_id": "1",
"_source":
{
"lastname": "Doe",
"name": "John",
"job_description": "Systems administrator and Linux specialist"
},
"_index": "accounts"
}
]
Resultado do script
A tabela a seguir lista o valor da saída do resultado do script ao usar a ação Pesquisa simples do ES:
| Nome do resultado do script | Valor |
|---|---|
results |
RESULTS |
Conectores
Para saber como configurar conectores no Google SecOps, consulte Ingerir seus dados (conectores).
Conector do OpenSearch
Use o conector do OpenSearch para pesquisar índices especificados do OpenSearch com uma consulta do Lucene fornecida e ingerir documentos como alertas no Google SecOps.
Entradas do conector
O conector do OpenSearch requer os seguintes parâmetros:
| Parâmetro | Descrição |
|---|---|
Product Field Name |
Obrigatório. O nome do campo em que o nome do produto é armazenado. O nome do produto afeta principalmente o mapeamento. Para simplificar e melhorar o processo de mapeamento do conector, o valor padrão é resolvido para um valor substituto que é referenciado no código. Qualquer entrada inválida para esse parâmetro é resolvida para um valor substituto por padrão. O valor padrão é |
Event Field Name |
Obrigatório. O nome do campo que determina o nome do evento (subtipo). O valor padrão é |
Script Timeout (Seconds) |
Obrigatório. O limite de tempo limite, em segundos, para o processo do Python que executa o script atual. O valor padrão é |
Server Address |
Obrigatório. O URL do endpoint da instância do OpenSearch, incluindo o protocolo e a porta (por exemplo, |
Username |
Opcional. O nome de usuário usado para autenticar com a instância do OpenSearch. |
Password |
Opcional. A senha associada ao nome de usuário especificado. |
Authenticate |
Opcional. Se selecionada, a integração autentica a conexão com o servidor do OpenSearch usando as credenciais fornecidas. |
API Token |
Opcional. O token de API usado para autenticação como alternativa a um nome de usuário e senha. |
Verify SSL |
Opcional. Se selecionada, a integração valida o certificado SSL ao se conectar ao servidor do OpenSearch. |
Alert Name Field |
Obrigatório. O nome do campo que contém o nome do alerta (por exemplo,
|
Timestamp Field |
Obrigatório. O nome do campo que contém o carimbo de data/hora (por exemplo,
|
Environment Field Name |
Opcional. O nome do campo em que o nome do ambiente é armazenado. Se o campo de ambiente estiver ausente, o conector usará o valor padrão. O valor padrão é |
Indexes |
Opcional. O padrão de índice a ser pesquisado. Use |
Query |
Opcional. A consulta de pesquisa a ser realizada usando a sintaxe do Lucene. |
Alerts Count Limit |
Obrigatório. O número máximo de alertas a serem extraídos em um único ciclo. O valor padrão é |
Max Days Backwards |
Obrigatório. O número de dias anteriores ao momento atual para recuperar alertas. Esse parâmetro pode ser aplicado à iteração inicial do conector depois que você o ativa pela primeira vez ou ao valor substituto de um carimbo de data/hora expirado do conector. O valor padrão é |
Severity Field Name |
Opcional. O nome do campo usado para extrair o valor de gravidade do alerta. Se o campo tiver valores numéricos (inteiros ou flutuantes), o conector
vai mapeá-los automaticamente para os níveis de gravidade do Google SecOps (por
exemplo, |
Proxy Server Address |
Opcional. O endereço do servidor proxy a ser usado. |
Proxy Username |
Opcional. O nome de usuário usado para autenticar com o servidor proxy. |
Proxy Password |
Opcional. A senha usada para autenticar com o servidor proxy. |
Environment Regex Pattern |
Opcional. Um padrão de expressão regular para executar no valor encontrado no campo Use o valor padrão Se o padrão de expressão regular for nulo ou vazio, ou se o valor do ambiente for nulo, o resultado final será o ambiente padrão. |
Conector DSL do OpenSearch
Use o conector DSL do OpenSearch para ingerir documentos como alertas no Google SecOps fazendo chamadas de API REST usando consultas de linguagem específica de domínio (DSL, na sigla em inglês).
Entradas do conector
O conector DSL do OpenSearch requer os seguintes parâmetros:
| Parâmetro | Descrição |
|---|---|
Product Field Name |
Obrigatório. O nome do campo em que o nome do produto é armazenado. O nome do produto afeta principalmente o mapeamento. Para simplificar e melhorar o processo de mapeamento do conector, o valor padrão é resolvido para um valor substituto que é referenciado no código. Qualquer entrada inválida para esse parâmetro é resolvida para um valor substituto por padrão. O valor padrão é O valor padrão é |
Event Field Name |
Obrigatório. O nome do campo que determina o nome do evento (subtipo). O valor padrão é |
Script Timeout (Seconds) |
Obrigatório. O limite de tempo limite, em segundos, para o processo do Python que executa o script atual. O valor padrão é |
Server Address |
Obrigatório. O URL do endpoint da instância do OpenSearch, incluindo o protocolo (por
exemplo, |
Port |
Obrigatório. A porta usada para se conectar ao servidor de API OpenSearch. |
Query |
Obrigatório. A consulta DSL usada para a pesquisa no formato JSON. Para melhorar a estabilidade do conector, recomendamos incluir uma chave de carimbo de data/hora de classificação em ordem crescente na consulta. |
Index |
Obrigatório. O índice usado para a pesquisa. Use |
Timestamp Field |
Obrigatório. O nome do campo que contém o carimbo de data/hora (por exemplo,
|
Alert Field Name |
Obrigatório. O nome do campo que contém o nome do alerta (por exemplo,
|
Description Field |
Opcional. O nome do campo que contém a descrição do alerta (por exemplo,
|
Severity |
Obrigatório. O nível de gravidade estático a ser atribuído a todos os alertas ingeridos. Esse
parâmetro será usado se O valor padrão é |
Alert Severity |
Opcional. A gravidade a ser atribuída aos alertas. Esse parâmetro tem prioridade sobre
Se você quiser usar o mapeamento dinâmico com o |
Severity Field Name |
Opcional. O nome do campo usado para extrair o valor de gravidade do alerta. Se o campo tiver valores numéricos (inteiros ou flutuantes), o conector
vai mapeá-los automaticamente para os níveis de gravidade do Google SecOps
(por exemplo, |
Alerts Count Limit |
Opcional. O número máximo de alertas a serem extraídos em um único ciclo. O valor padrão é |
Authenticate |
Opcional. Se selecionado, o conector autentica a conexão usando as credenciais fornecidas. |
Username |
Opcional. O nome de usuário usado para autenticar com a instância do OpenSearch. |
Password |
Opcional. A senha usada para autenticar com a instância do OpenSearch. |
Use SSL |
Opcional. Se selecionado, o conector ativa uma conexão SSL/TLS com o servidor. |
Proxy Server Address |
Opcional. O endereço do servidor proxy a ser usado para a conexão. |
Proxy Username |
Opcional. O nome de usuário usado para autenticar com o servidor proxy. |
Proxy Password |
Opcional. A senha usada para autenticar com o servidor proxy. |
Environment Field Name |
Opcional. O nome do campo em que o nome do ambiente é armazenado. Se o campo de ambiente estiver ausente, o conector usará o valor padrão. O valor padrão é |
Environment Regex Pattern |
Opcional. Um padrão de expressão regular para executar no valor encontrado no campo Use o valor padrão Se o padrão de expressão regular for nulo ou vazio, ou se o valor do ambiente for nulo, o resultado final será o ambiente padrão. O valor padrão é |
Suporte a notações
O conector é compatível com três notações diferentes para mapeamento de campos. Por exemplo,
para mapear event.type, é possível fornecer _source_event_type, event_type ou
event.type.
Isso se aplica aos seguintes parâmetros:
Product Field NameEvent Field NameSeverity Field NameEnvironment Field NameTimestamp FieldAlert Field NameDescription Field(somente conector DSL)
Como mapear a gravidade no conector
Se o Severity Field Name tiver valores numéricos (inteiros ou flutuantes), o conector os mapeará da seguinte maneira:
- Crítica: 100
- Alta: 80 ≤ x < 100
- Médio: 60 ≤ x < 80
- Baixo: 40 ≤ x < 60
- Informativo: x < 40
Para valores de string, atualize o arquivo severity_map_config.json na pasta de scripts do conector.
Exemplo de configuração
Para mapear um campo event.severity que contém "Malicioso", "Desconhecido" ou "Benigno":
- Insira
event.severityno parâmetro Nome do campo de gravidade. - Atualize
severity_map_config.json:
{
"event.severity": {
"Malicious": 100,
"Unknown": 60,
"Benign": -1
},
"Default": 50
}
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.