Integrar o Armis ao Google SecOps

Neste documento, descrevemos como integrar o Armis ao Google Security Operations.

Casos de uso

  1. Realizar ações de enriquecimento.
  2. Realizar a ingestão dos alertas.
  3. Realizar ação de triagem (atualizar status do alerta).

Parâmetros de integração

Use os seguintes parâmetros para configurar a integração:

Nome do parâmetro Tipo Valor padrão É obrigatório Descrição
Raiz da API String Sim Raiz da API Armis
Chave secreta da API Senha N/A Sim Chave secreta da API Armis
Verificar SSL Caixa de seleção Selecionado Sim Se ativada, verifica se o certificado SSL para a conexão com o servidor do Armis é válido.

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.

Ping

Teste a conectividade com o Armis.

Parâmetros

N/A

Data de execução

A ação não usa entidades nem tem parâmetros de entrada obrigatórios.

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valor Exemplo
is_success Verdadeiro/falso is_success:False
Mural do caso
Tipo de resultado Descrição Tipo
Mensagem de saída*

A ação não pode falhar nem interromper a execução de um playbook:

Se for bem-sucedido: "Conexão com o servidor Armis estabelecida com os parâmetros fornecidos."

A ação deve falhar e interromper a execução de um playbook:

Se não for bem-sucedido: "Falha ao se conectar ao servidor da Armis! O erro é {0}".format(exception.stacktrace)

Geral

Enriquecer entidades

Enriqueça as entidades usando informações da Armis. Entidades compatíveis: IP, endereço MAC.

Parâmetros

Nome do parâmetro Tipo Valor padrão É obrigatório Descrição
Criar insight de endpoint Caixa de seleção Selecionado Sim Se ativada, a ação cria um insight com informações sobre os endpoints.

Data de execução

Essa ação é executada nas seguintes entidades:

  • Endereço IP
  • Endereço MAC

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valor Exemplo
is_success Verdadeiro/falso is_success:False

Resultado JSON

{
    "accessSwitch": null,
    "category": "Computers",
    "dataSources": [
        {
            "firstSeen": "2021-03-07T04:04:22.562873+00:00",
            "lastSeen": "2021-03-07T04:04:22.562873+00:00",
            "name": "Example",
            "types": [
                "Asset & System Management",
                "Virtualization"
            ]
        },
        {
            "firstSeen": "2021-03-07T04:04:22.562873+00:00",
            "lastSeen": "2021-03-07T04:04:22.562873+00:00",
            "name": "Armis Smart Scanner",
            "types": [
                "Vulnerability Management"
            ]
        }
    ],
    "firstSeen": "2021-03-07T04:04:22.562873+00:00",
    "id": 1616,
    "ipAddress": "192.0.2.120",
    "ipv6": null,
    "lastSeen": "2021-03-21T08:05:40.244960+00:00",
    "macAddress": "01:23:45:ab:cd:ef",
    "manufacturer": "VMware",
    "model": "VMware Virtual Platform",
    "name": "Example",
    "operatingSystem": "CentOS",
    "operatingSystemVersion": "6.6",
    "purdueLevel": 4.0,
    "riskLevel": 5,
    "sensor": {
        "name": "North conference room",
        "type": "Physical Sensor"
    },
    "site": {
        "location": "Palo Alto",
        "name": "Palo Alto Offices"
    },
    "tags": [
        "Discover",
        "Example"
    ],
    "type": "Virtual Machines",
    "user": "",
    "visibility": "Full"
}

Enriquecimento de entidades

Nome do campo de enriquecimento Lógica: quando aplicar
categoria Quando disponível em JSON
ID Quando disponível em JSON
ipAddress Quando disponível em JSON
macAddress Quando disponível em JSON
nome Quando disponível em JSON
os Quando disponível em JSON
purdue_level Quando disponível em JSON
risk_level Quando disponível em JSON
tags Quando disponível em JSON
tipo Quando disponível em JSON
usuário Quando disponível em JSON
visibility Quando disponível em JSON
site Quando disponível em JSON
link Quando disponível em JSON
Mural do caso
Tipo de resultado Descrição Tipo
Mensagem de saída*

A ação não pode falhar nem interromper a execução de um playbook:

if enriched some(is_success = true): "Successfully enriched the following entities using Armis:\n".format(entity.identifier)

Se não foi possível enriquecer algumas (is_success = true): "A ação não conseguiu enriquecer as seguintes entidades usando o Armis:\n".format(entity.identifier)

Se não tiver enriquecido todas (is_success = false): "Nenhuma entidade foi enriquecida".

A ação deve falhar e interromper a execução de um playbook:
se houver um erro fatal, como credenciais incorretas, falta de conexão com o servidor, entre outros: "Erro ao executar a ação 'Enrich Entities'. Motivo: {0}''.format(error.Stacktrace)

Geral
Tabela de entidades Entidade

Listar conexões de alerta

Lista as conexões relacionadas ao alerta no Armis.

Parâmetros

Nome do parâmetro Tipo Valor padrão É obrigatório Descrição
Código de alerta Inteiro Sim Especifique o ID do alerta para o qual você quer extrair dados de conexões.
Gravidade mais baixa para buscar DDL

Média

Valores possíveis:

  • Baixo
  • Médio
  • Alta
Não Especifique a gravidade mais baixa das conexões que devem ser usadas ao buscá-las.
Máximo de conexões a serem retornadas Inteiro 50 Não Especifique quantas conexões serão retornadas.

Data de execução

Essa ação não é executada em entidades.

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valor Exemplo
is_success Verdadeiro/falso is_success:False

Resultado JSON

{
    "band": null,
    "channel": null,
    "dhcpAuthenticationDuration": null,
    "duration": 12339,
    "endTimestamp": "2021-03-18T20:19:31.562873+00:00",
    "id": 33355,
    "inboundTraffic": 12412512,
    "outboundTraffic": 19626489,
    "protocol": "Bluetooth",
    "radiusAuthenticationDuration": null,
    "risk": "Medium",
    "rssi": null,
    "sensor": {
        "name": "EXAMPLE",
        "type": "Switch"
    },
    "site": {
        "location": "Location",
        "name": "Location HQ"
    },
    "snr": null,
    "sourceId": 2097,
    "startTimestamp": "2021-03-18T16:53:52.562873+00:00",
    "targetId": 217,
    "title": "Connection between Example and user's iPhone",
    "totalAssociationDuration": null,
    "traffic": 32039001,
    "wlanAssociationDuration": null
}
Mural do caso
Tipo de resultado Descrição Tipo
Mensagem de saída*

A ação não pode falhar nem interromper a execução de um playbook:

Se 200 e os dados estiverem disponíveis (is_success = true): "As conexões relacionadas ao alerta {alertId} foram retornadas com base nos critérios fornecidos no Armis."

Se 200 e nenhum dado estiver disponível (is_success=false): "Nenhuma conexão relacionada ao alerta {alertId} foi encontrada com base nos critérios fornecidos no Armis."

A ação deve falhar e interromper a execução de um playbook:

Se houver um erro fatal, como credenciais incorretas, falta de conexão com o servidor, entre outros: "Erro ao executar a ação 'Listar conexões de alerta'. Motivo: {0}''.format(error.Stacktrace)

Geral
Tabela do painel de casos

Nome: Comunicações disponíveis

Colunas:

  • Título
  • Protocolo
  • Gravidade
  • Horário de início
  • Horário de término
Geral

Atualizar status do alerta

Atualize o status do alerta no Armis.

Parâmetros

Nome do parâmetro Tipo Valor padrão É obrigatório Descrição
Código de alerta Inteiro Sim Especifique o ID do alerta que você quer atualizar.
Status DDL

Não processado

Valores possíveis:

  • Não processado
  • Suprimida
  • Resolvido
Não Especifique o status que deve ser definido para o alerta.

Data de execução

Essa ação não é executada em entidades.

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valor Exemplo
is_success Verdadeiro/falso is_success:False
Mural do caso
Tipo de resultado Descrição Tipo
Mensagem de saída*

A ação não pode falhar nem interromper a execução de um playbook:

Se 200 (is_success = true): "O status do alerta "{alert id}" foi atualizado para "{status}" no Armis.".

Se 400 (is_success=true): "O alerta "{alert id}" já tem o status "{status}" no Armis. "

A ação deve falhar e interromper a execução de um playbook:

Se houver um erro fatal, como credenciais incorretas, falta de conexão com o servidor, entre outros: "Erro ao executar a ação 'Atualizar status do alerta'. Motivo: {0}''.format(error.Stacktrace)

Se 404: "Erro ao executar a ação 'Atualizar status do alerta'. Motivo: o alerta "{alert id}" não foi encontrado no Armis.'

Geral

Conector

Para saber como configurar conectores no Google SecOps, consulte Ingerir seus dados (conectores).

Armis: conector de alertas

Extraia alertas com atividades relacionadas do Armis.

Parâmetros do conector

Use os seguintes parâmetros para configurar o conector:

Nome do parâmetro Tipo Valor padrão É obrigatório Descrição
Nome do campo do produto String alert_type Sim

O nome do campo em que o nome do produto é armazenado.

O valor padrão é alert_type.

O nome do produto afeta principalmente o mapeamento. Para simplificar e melhorar o processo de mapeamento do conector, o valor padrão alert_type é resolvido como um valor substituto referenciado no código. Qualquer entrada inválida para esse parâmetro é resolvida para um valor substituto por padrão.

Nome do campo do evento String tipo Sim

O nome do campo que determina o nome do evento (subtipo).

Nome do campo do ambiente String "" Não

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.

Environment Regex Pattern String .* Não

Um padrão de expressão regular para executar no valor encontrado no campo Environment Field Name. Esse parâmetro permite manipular o campo de ambiente usando a lógica de expressão regular.

Use o valor padrão .* para recuperar o valor bruto Environment Field Name necessário.

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.

Tempo limite de script (segundos) Inteiro 180 Sim

O limite de tempo limite, em segundos, para o processo do Python que executa o script atual.

Raiz da API String https:// Sim Raiz da API da instância do Armis.
Chave secreta da API Senha N/A Sim Chave secreta da API da conta do Armis.
Gravidade mais baixa para buscar Baixo Baixo Não A gravidade mais baixa que será usada para buscar alertas. Valores possíveis: Low, Medium, High.
Máximo de horas para trás Inteiro 1 Não

O número de horas antes da primeira iteração do conector para recuperar os 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.

Máximo de alertas para buscar Inteiro 10 Não O número de alertas a serem processados por iteração do conector. O valor máximo é 1000.
Use whitelist as a blacklist Caixa de seleção Selecionado Sim

Se selecionado, o conector usa a lista dinâmica como uma lista de bloqueio.

Verificar SSL Caixa de seleção Desmarcado Sim Se selecionada, a integração valida o certificado SSL ao se conectar ao servidor Armis.
Endereço do servidor proxy String Não O endereço do servidor proxy a ser usado.
Nome de usuário do proxy String Não O nome de usuário do proxy para autenticação.
Senha do proxy Senha Não A senha do proxy para autenticação.

Regras do conector

O conector é compatível com proxies.

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.