Recolha registos do Microsoft IIS

Compatível com:

Este documento explica como recolher registos dos Serviços de Informação da Internet (IIS) da Microsoft para o Google Security Operations através do Bindplane. O analisador tenta primeiro limpar e normalizar os dados de entrada removendo carateres desnecessários e padronizando os nomes dos campos. Em seguida, usa uma série de padrões do grok para extrair campos relevantes de vários formatos de registo do Microsoft IIS e mapeá-los para o modelo de dados unificado (UDM).

Antes de começar

  • Certifique-se de que tem uma instância do Google SecOps.
  • Certifique-se de que tem o Windows 2016 ou posterior.
  • Se estiver a executar o serviço através de um proxy, certifique-se de que as portas da firewall estão abertas.

Obtenha o ficheiro de autenticação de carregamento do Google SecOps

  1. Inicie sessão na consola Google SecOps.
  2. Aceda a Definições do SIEM > Agentes de recolha.
  3. Transfira o ficheiro de autenticação de carregamento. Guarde o ficheiro de forma segura no sistema onde o Bindplane vai ser instalado.

Obtenha o ID de cliente do Google SecOps

  1. Inicie sessão na consola Google SecOps.
  2. Aceda a Definições do SIEM > Perfil.
  3. Copie e guarde o ID do cliente da secção Detalhes da organização.

Instale o agente do Bindplane no Windows

  1. Abra a Linha de comandos ou o PowerShell como administrador.
  2. Execute o seguinte comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Recursos de instalação adicionais

Configure o agente Bindplane para carregar o Syslog e enviá-lo para o Google SecOps

  1. Antes de configurar o ficheiro YAML, pare o observIQ Distro for Open Telemetry Collector serviço no painel de serviços.
  2. Aceda ao ficheiro de configuração:

    1. Localize o ficheiro config.yaml. Normalmente, encontra-se no diretório /etc/bindplane-agent/ no Linux ou no diretório de instalação no Windows.
    2. Abra o ficheiro com um editor de texto (por exemplo, nano, vi ou Bloco de notas).
  3. Edite o ficheiro config.yaml da seguinte forma:

    receivers:
      iis:
        collection_interval: 60s
    
    processors:
      # Resourcedetection is used to add a unique (host.name) to the metric resource(s), allowing users to filter between multiple agent systems.
      resourcedetection:
        detectors: ["system"]
        system:
          hostname_sources: ["os"]
    
      normalizesums:
    
      batch:
    
    exporters:
      chronicle/powershell:
        endpoint: malachiteingestion-pa.googleapis.com
        # Adjust the path to the credentials file you downloaded in Step 1
        creds: '/path/to/ingestion-authentication-file.json'
        log_type: 'IIS'
        override_log_type: false
        raw_log_field: body
        customer_id: '<customer_id>'
    
    service:
      pipelines:
        logs/winpowershell:
          receivers:
            - iis
          processors:
            - resourcedetection
            - normalizesums
            - batch
          exporters: [chronicle/iis]
    
  4. Substitua <customer_id> pelo ID de cliente real.

  5. Atualize /path/to/ingestion-authentication-file.json para o caminho onde o ficheiro de autenticação foi guardado na secção Obtenha o ficheiro de autenticação de carregamento do Google SecOps.

  6. Depois de guardar o ficheiro config.yaml, inicie o observIQ Distro for Open Telemetry Collector serviço.

Reinicie o agente do Bindplane para aplicar as alterações

  • Para reiniciar o agente do Bindplane no Windows, pode usar a consola Services ou introduzir o seguinte comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Tabela de mapeamento da UDM

Campo de registo Mapeamento do UDM Lógica
@timestamp metadata.event_timestamp A data/hora do evento, conforme registado no registo não processado.
@version metadata.product_version A versão do servidor IIS.
AgentDevice additional.fields.AgentDevice.value.string_value O dispositivo que gerou o registo.
AgentLogFile additional.fields.AgentLogFile.value.string_value O nome do ficheiro de registo.
ASP.NET_SessionId network.session_id O ID da sessão do utilizador.
c-ip principal.ip O endereço IP do cliente.
Canal security_result.about.resource.attribute.labels.Channel.value O canal onde o evento foi registado.
ChannelID security_result.about.resource.attribute.labels.ChannelID.value O ID do canal onde o evento foi registado.
Computador target.hostname O nome do anfitrião da máquina de destino.
cs-bytes network.received_bytes O número de bytes recebidos do cliente.
cs-host principal.hostname, principal.asset.hostname O nome do anfitrião do cliente.
cs-method network.http.method O método HTTP usado pelo cliente.
cs-uri-query target.url A string de consulta do URL pedido pelo cliente.
cs-uri-stem target.url O caminho do URL pedido pelo cliente.
cs-username principal.user.user_display_name O nome de utilizador do cliente.
cs-version network.tls.version_protocol A versão HTTP usada pelo cliente.
cs(Cookie) Usado para extrair informações de cookies.
cs(Referer) network.http.referral_url O URL que referenciou o cliente para a página atual.
cs(User-Agent) network.http.user_agent O agente do utilizador do cliente.
csbyte network.received_bytes O número de bytes recebidos do cliente.
cshost principal.hostname, principal.asset.hostname O nome do anfitrião do cliente.
csip principal.ip, principal.asset.ip O endereço IP do cliente.
csmethod network.http.method O método HTTP usado pelo cliente.
csreferer network.http.referral_url O URL que referenciou o cliente para a página atual.
csuseragent network.http.user_agent O agente do utilizador do cliente.
csusername principal.user.user_display_name O nome de utilizador do cliente.
csversion network.tls.version_protocol A versão HTTP usada pelo cliente.
data Usado para criar a data/hora do evento se a data/hora do registo não processado for inválida.
descrição security_result.description Uma descrição do evento.
devicename target.hostname O nome do anfitrião da máquina de destino.
dst_ip target.ip, target.asset.ip O endereço IP da máquina de destino.
dst_port target.port O número da porta da máquina de destino.
duração A duração do pedido em milissegundos.
EventEnqueuedUtcTime additional.fields.EventEnqueuedUtcTime.value.string_value A hora em que o evento foi colocado na fila em UTC.
EventID metadata.product_log_id O ID do evento.
EventProcessedUtcTime additional.fields.EventProcessedUtcTime.value.string_value A hora em que o evento foi processado em UTC.
EventTime metadata.event_timestamp A data/hora do evento.
EventType metadata.product_event_type O tipo de evento.
file_path target.file.full_path O caminho completo do ficheiro envolvido no evento.
FilterId security_result.about.resource.attribute.labels.FilterId.value O ID do filtro.
FilterKey security_result.about.resource.attribute.labels.FilterKey.value A chave do filtro.
FilterName security_result.about.resource.attribute.labels.FilterName.value O nome do filtro.
FilterType security_result.about.resource.attribute.labels.FilterType.value O tipo de filtro.
anfitrião target.hostname O nome do anfitrião da máquina de destino.
host.architecture principal.asset.hardware.cpu_platform A arquitetura da máquina anfitriã.
host.geo.name additional.fields.geo_name.value.string_value A localização geográfica da máquina anfitriã.
host.hostname target.hostname, target.asset.hostname O nome do anfitrião da máquina anfitriã.
host.id observer.asset_id O ID da máquina anfitriã.
host.ip principal.ip, principal.asset.ip O endereço IP da máquina anfitriã.
host.mac principal.mac O endereço MAC da máquina anfitriã.
host.os.build additional.fields.os_build.value.string_value O número de compilação do sistema operativo na máquina anfitriã.
host.os.kernel principal.platform_patch_level A versão do kernel do sistema operativo na máquina anfitriã.
host.os.name additional.fields.os_name.value.string_value O nome do sistema operativo na máquina anfitriã.
host.os.platform principal.platform A plataforma do sistema operativo na máquina anfitriã.
host.os.version principal.platform_version A versão do sistema operativo na máquina anfitriã.
http_method network.http.method O método HTTP usado pelo cliente.
http_response network.http.response_code O código de resposta HTTP.
http_status_code network.http.response_code O código de estado HTTP da resposta.
http_substatus additional.fields.sc_substatus.value.string_value O código de subestado HTTP da resposta.
instância additional.fields.instance.value.string_value O ID da instância da tarefa.
intermediary_devicename intermediary.hostname, intermediary.asset.hostname O nome do anfitrião do dispositivo intermediário.
json_message A mensagem de registo não processada no formato JSON.
kv_fields Usado para extrair pares de chave-valor da mensagem de registo não processada.
LayerKey security_result.about.resource.attribute.labels.LayerKey.value A chave da camada.
LayerName security_result.about.resource.attribute.labels.LayerName.value O nome da camada.
LayerId security_result.about.resource.attribute.labels.LayerId.value O ID da camada.
log.file.path target.file.full_path O caminho completo do ficheiro de registo.
log.offset metadata.product_log_id O desvio do evento no ficheiro de registo.
logstash.collect.host observer.hostname O nome do anfitrião do computador que recolheu o registo.
logstash.process.host intermediary.hostname O nome do anfitrião do computador que processou o registo.
logstash_json_message A mensagem de registo não processada no formato JSON.
mensagem security_result.description A mensagem de registo não processada.
ministério additional.fields.ministry.value.string_value O ministério associado ao evento.
nome O nome da entidade.
NewValue additional.fields.NewValue.value.string_value O novo valor da definição de configuração.
OldValue additional.fields.OldValue.value.string_value O valor antigo da definição de configuração.
porta principal.port O número da porta do cliente.
priority_code O código de prioridade da mensagem syslog.
ProcessID principal.process.pid O ID do processo que gerou o evento.
ProviderGuid security_result.about.resource.attribute.labels.ProviderGuid.value O GUID do fornecedor.
ProviderKey security_result.about.resource.attribute.labels.ProviderKey.value A chave do fornecedor.
ProviderName security_result.about.resource.attribute.labels.ProviderName.value O nome do fornecedor.
referrer_url network.http.referral_url O URL que referenciou o cliente para a página atual.
request_url target.url O URL pedido pelo cliente.
s-computername target.hostname O nome do anfitrião da máquina de destino.
s-ip target.ip, target.asset.ip O endereço IP da máquina de destino.
s-port target.port O número da porta da máquina de destino.
s-sitename additional.fields.sitename.value.string_value O nome do site.
sc-bytes network.sent_bytes O número de bytes enviados para o cliente.
sc-status network.http.response_code O código de estado HTTP da resposta.
sc-substatus additional.fields.sc_substatus.value.string_value O código de subestado HTTP da resposta.
sc-win32-status O código de estado do Windows da resposta.
scbyte network.sent_bytes O número de bytes enviados para o cliente.
scstatus network.http.response_code O código de estado HTTP da resposta.
gravidade security_result.severity A gravidade do evento.
service.type additional.fields.service_type.value.string_value O tipo de serviço.
sIP principal.ip, principal.asset.ip O endereço IP do cliente.
sPort principal.port O número da porta do cliente.
sSiteName additional.fields.sitename.value.string_value O nome do site.
src_ip principal.ip, principal.asset.ip, observer.ip O endereço IP do cliente.
src_port principal.port O número da porta do cliente.
sysdate A data e a hora da mensagem syslog.
syslog_facility security_result.severity_details A funcionalidade da mensagem syslog.
syslog_pri A prioridade da mensagem syslog.
syslog_severity security_result.severity_details A gravidade da mensagem syslog.
syslog_severity_code O código de gravidade da mensagem syslog.
etiquetas security_result.rule_name Etiquetas associadas ao evento.
tarefa additional.fields.task.value.string_value O nome da tarefa.
tempo Usado para criar a data/hora do evento se a data/hora do registo não processado for inválida.
tempo gasto A duração do pedido em milissegundos.
uri_query target.url A string de consulta do URL pedido pelo cliente.
user_agent network.http.user_agent O agente do utilizador do cliente.
Nome de utilizador target.user.userid O nome de utilizador do utilizador.
UserSid target.user.windows_sid O SID do Windows do utilizador.
Peso security_result.about.resource.attribute.labels.Weight.value O peso do filtro.
win32_status O código de estado do Windows da resposta.
xforwardedfor O cabeçalho X-Forwarded-For, que contém uma lista de endereços IP separados por vírgulas.
metadata.log_type IIS
network.direction INBOUND
metadata.vendor_name Microsoft
metadata.product_name Internet Information Server
metadata.event_type NETWORK_HTTP, USER_UNCATEGORIZED, GENERIC_EVENT, STATUS_UPDATE, USER_LOGOUT, USER_LOGIN
extensions.auth.type MACHINE

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