Integrar o OpenSearch ao Google SecOps
Versão da integração: 1.0
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:
Caça automática de ameaças: pesquise periodicamente em todos os índices do OpenSearch indicadores de comprometimento (IoCs) ou padrões suspeitos específicos usando consultas do Lucene e da DSL.
Ingestão centralizada de alertas: ingere documentos do OpenSearch como alertas acionáveis no Google SecOps, garantindo que os eventos de segurança do data lake sejam priorizados e investigados.
Recuperação de dados contextuais: enriqueça os casos de segurança atuais extraindo automaticamente registros ou dados históricos relacionados do OpenSearch para fornecer aos analistas um contexto mais profundo durante uma investigação.
Mapeamento de dados flexível: mapeie dinamicamente níveis de gravidade e tags de ambiente de documentos do OpenSearch para os padrões do Google SecOps e mantenha a consistência em diferentes fontes de registros.
Antes de começar
Antes de configurar a integração na plataforma do Google SecOps, verifique se você tem o seguinte:
Arquivo de certificado da CA: um arquivo de autoridade certificadora válido para proteger a conexão.
Versão mais recente da integração: use a versão mais recente da integração do OpenSearch.
Certificado codificado em Base64: o conteúdo do arquivo de certificado da CA precisa ser convertido em uma string Base64 antes da configuração.
Para configurar a integração com um certificado da 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 da 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 exige 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 da 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 OpenSearch usando as credenciais fornecidas. |
Verify SSL |
Opcional. Se selecionada, a integração valida o certificado SSL ao se conectar ao servidor 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.
É possível fazer mudanças mais tarde, se necessário. Depois de configurar uma instância de integração, você pode usá-la em playbooks. Para mais informações sobre como configurar e oferecer suporte a várias instâncias, consulte Suporte a várias instâncias.
Ações
Para mais informações sobre ações, consulte Responder a ações pendentes da sua mesa de trabalho e Realizar uma ação manual.
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 de ação
A ação Pesquisa avançada do ES exige os seguintes parâmetros:
| Parâmetro | Descrição |
|---|---|
Index |
Opcional. O padrão de pesquisa do í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 em tempo. Se O valor padrão é |
Oldest Date |
Opcional. A data de início da pesquisa. A ação retorna registros que ocorreram neste 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 na data e hora ou antes. É possível fornecer um carimbo de data/hora UTC exato ( O valor padrão é |
Saídas de 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 da DSL
Use a ação Pesquisa DSL para realizar uma pesquisa abrangente em todos os índices do OpenSearch e recuperar resultados em formato de dicionário.
Essa ação não é executada em entidades do Google SecOps.
Entradas de ação
A ação Pesquisa de DSL exige os seguintes parâmetros:
| Parâmetro | Descrição |
|---|---|
Index |
Opcional. O padrão de pesquisa do í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 de ação
A ação Pesquisa de 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 em 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 de 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 de ação
Nenhuma.
Saídas de 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 do OpenSearch e recuperar os resultados em formato de dicionário.
Essa ação não é executada em entidades do Google SecOps.
Entradas de ação
A ação Pesquisa simples do ES exige os seguintes parâmetros:
| Parâmetro | Descrição |
|---|---|
Index |
Opcional. O padrão de pesquisa do í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 de 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 mais informações sobre 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 exige 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 como um valor substituto referenciado no código. Qualquer entrada inválida para esse parâmetro é resolvida como um valor de substituição 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 OpenSearch usando as credenciais fornecidas. |
API Token |
Opcional. O token da 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 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 "environment" 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 antes de agora 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 de substituição 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 contiver valores numéricos (inteiros ou de ponto flutuante), o conector os mapeará 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 a ser executado 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 da API REST com consultas da linguagem específica do domínio (DSL, na sigla em inglês).
Entradas do conector
O conector DSL do OpenSearch exige 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 como um valor substituto referenciado no código. Qualquer entrada inválida para esse parâmetro é resolvida como um valor de substituição 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 da API OpenSearch. |
Query |
Obrigatório. A consulta da 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 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 contiver valores numéricos (inteiros ou de ponto flutuante), o conector os mapeará 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 "environment" estiver ausente, o conector usará o valor padrão. O valor padrão é |
Environment Regex Pattern |
Opcional. Um padrão de expressão regular a ser executado 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 para notação
O conector é compatível com três notações diferentes para mapeamento de campos. Por exemplo, para mapear event.type, você pode 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ítico: 100
- Alta: 80 ≤ x < 100
- Média: 60 ≤ x < 80
- Baixa: 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 contenha "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.