Coletar registros do Microsoft IIS
Este documento explica como coletar registros do Microsoft Internet Information Services (IIS) no Google Security Operations usando o Bindplane. Primeiro, o analisador tenta limpar e normalizar os dados de entrada removendo caracteres desnecessários e padronizando os nomes dos campos. Em seguida, ele usa uma série de padrões grok para extrair campos relevantes de vários formatos de registro do Microsoft IIS e os mapeia para o modelo de dados unificado (UDM).
Antes de começar
- Verifique se você tem uma instância do Google SecOps.
- Verifique se você tem o Windows 2016 ou uma versão mais recente.
- Se você estiver executando por trás de um proxy, verifique se as portas do firewall estão abertas.
Receber o arquivo de autenticação de ingestão do Google SecOps
- Faça login no console do Google SecOps.
- Acesse Configurações do SIEM > Agentes de coleta.
- Baixe o arquivo de autenticação de ingestão. Salve o arquivo de forma segura no sistema em que o Bindplane será instalado.
Receber o ID do cliente do Google SecOps
- Faça login no console do Google SecOps.
- Acesse Configurações do SIEM > Perfil.
- Copie e salve o ID do cliente na seção Detalhes da organização.
Instalar o agente do Bindplane no Windows
- Abra o Prompt de Comando ou o PowerShell como administrador.
Execute este comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Outros recursos de instalação
- Para mais opções de instalação, consulte este guia de instalação.
Configurar o agente do Bindplane para ingerir o Syslog e enviar ao Google SecOps
- Antes de configurar o arquivo YAML, pare o Service
observIQ Distro for Open Telemetry Collectorno painel "Serviços". Acesse o arquivo de configuração:
- Localize o arquivo
config.yaml. Normalmente, ele fica no diretório/etc/bindplane-agent/no Linux ou no diretório de instalação no Windows. - Abra o arquivo usando um editor de texto (por exemplo,
nano,viou Bloco de Notas).
- Localize o arquivo
Edite o arquivo
config.yamlda 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]Substitua
<customer_id>pelo ID do cliente real.Atualize
/path/to/ingestion-authentication-file.jsonpara o caminho em que o arquivo de autenticação foi salvo na seção Receber arquivo de autenticação de ingestão do Google SecOps.Depois de salvar o arquivo
config.yaml, inicie o ServiçoobservIQ Distro for Open Telemetry Collector.
Reinicie o agente do Bindplane para aplicar as mudanças
Para reiniciar o agente do Bindplane no Windows, use o console Serviços ou insira o seguinte comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Tabela de mapeamento do UDM
| Campo de registro | Mapeamento da UDM | Lógica |
|---|---|---|
| @timestamp | metadata.event_timestamp | O carimbo de data/hora do evento conforme registrado no log bruto. |
| @version | metadata.product_version | A versão do servidor IIS. |
| AgentDevice | additional.fields.AgentDevice.value.string_value | O dispositivo que gerou o registro. |
| AgentLogFile | additional.fields.AgentLogFile.value.string_value | O nome do arquivo de registro. |
| ASP.NET_SessionId | network.session_id | O ID da sessão do usuário. |
| c-ip | principal.ip | O endereço IP do cliente. |
| Canal | security_result.about.resource.attribute.labels.Channel.value | O canal em que o evento foi registrado. |
| ChannelID | security_result.about.resource.attribute.labels.ChannelID.value | O ID do canal em que o evento foi registrado. |
| Computador | target.hostname | O nome do host 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 host 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 solicitado pelo cliente. |
| cs-uri-stem | target.url | O caminho do URL solicitado pelo cliente. |
| cs-username | principal.user.user_display_name | O nome de usuário 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 encaminhou o cliente para a página atual. |
| cs(User-Agent) | network.http.user_agent | O user agent do cliente. |
| csbyte | network.received_bytes | O número de bytes recebidos do cliente. |
| cshost | principal.hostname, principal.asset.hostname | O nome do host 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 encaminhou o cliente para a página atual. |
| csuseragent | network.http.user_agent | O user agent do cliente. |
| csusername | principal.user.user_display_name | O nome de usuário do cliente. |
| csversion | network.tls.version_protocol | A versão HTTP usada pelo cliente. |
| data | Usado para construir o carimbo de data/hora do evento se o carimbo de data/hora do registro bruto for inválido. | |
| description | security_result.description | Uma descrição do evento. |
| devicename | target.hostname | O nome do host 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. |
| duration | A duração da solicitação em milissegundos. | |
| EventEnqueuedUtcTime | additional.fields.EventEnqueuedUtcTime.value.string_value | O horário em que o evento foi enfileirado em UTC. |
| EventID | metadata.product_log_id | O ID do evento. |
| EventProcessedUtcTime | additional.fields.EventProcessedUtcTime.value.string_value | O horário em que o evento foi processado em UTC. |
| EventTime | metadata.event_timestamp | O carimbo de data/hora do evento. |
| EventType | metadata.product_event_type | O tipo do evento. |
| file_path | target.file.full_path | O caminho completo do arquivo 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 do filtro. |
| host | target.hostname | O nome do host da máquina de destino. |
| host.architecture | principal.asset.hardware.cpu_platform | A arquitetura da máquina host. |
| host.geo.name | additional.fields.geo_name.value.string_value | A localização geográfica da máquina host. |
| host.hostname | target.hostname, target.asset.hostname | O nome do host da máquina host. |
| host.id | observer.asset_id | O ID da máquina host. |
| host.ip | principal.ip, principal.asset.ip | O endereço IP da máquina host. |
| host.mac | principal.mac | O endereço MAC da máquina host. |
| host.os.build | additional.fields.os_build.value.string_value | O número da versão do sistema operacional na máquina host. |
| host.os.kernel | principal.platform_patch_level | A versão do kernel do sistema operacional na máquina host. |
| host.os.name | additional.fields.os_name.value.string_value | O nome do sistema operacional na máquina host. |
| host.os.platform | principal.platform | A plataforma do sistema operacional na máquina host. |
| host.os.version | principal.platform_version | A versão do sistema operacional na máquina host. |
| 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 status HTTP da resposta. |
| http_substatus | additional.fields.sc_substatus.value.string_value | O código de substatus 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 host do dispositivo intermediário. |
| json_message | A mensagem de registro bruta no formato JSON. | |
| kv_fields | Usado para extrair pares de chave-valor da mensagem de registro bruta. | |
| 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 arquivo de registro. |
| log.offset | metadata.product_log_id | O deslocamento do evento no arquivo de registro. |
| logstash.collect.host | observer.hostname | O nome do host da máquina que coletou o registro. |
| logstash.process.host | intermediary.hostname | O nome do host da máquina que processou o registro. |
| logstash_json_message | A mensagem de registro bruta no formato JSON. | |
| mensagem | security_result.description | A mensagem de registro bruta. |
| 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 configuração. |
| OldValue | additional.fields.OldValue.value.string_value | O valor antigo da 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 provedor. |
| ProviderKey | security_result.about.resource.attribute.labels.ProviderKey.value | A chave do provedor. |
| ProviderName | security_result.about.resource.attribute.labels.ProviderName.value | O nome do provedor. |
| referrer_url | network.http.referral_url | O URL que encaminhou o cliente para a página atual. |
| request_url | target.url | O URL solicitado pelo cliente. |
| s-computername | target.hostname | O nome do host 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 ao cliente. |
| sc-status | network.http.response_code | O código de status HTTP da resposta. |
| sc-substatus | additional.fields.sc_substatus.value.string_value | O código de substatus HTTP da resposta. |
| sc-win32-status | O código de status do Windows da resposta. | |
| scbyte | network.sent_bytes | O número de bytes enviados ao cliente. |
| scstatus | network.http.response_code | O código de status 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 do syslog. | |
| syslog_facility | security_result.severity_details | A facilidade da mensagem syslog. |
| syslog_pri | A prioridade da mensagem syslog. | |
| syslog_severity | security_result.severity_details | A gravidade da mensagem do syslog. |
| syslog_severity_code | O código de gravidade da mensagem syslog. | |
| tags | security_result.rule_name | Tags associadas ao evento. |
| tarefa | additional.fields.task.value.string_value | O nome da tarefa. |
| tempo | Usado para construir o carimbo de data/hora do evento se o carimbo de data/hora do registro bruto for inválido. | |
| time-taken | A duração da solicitação em milissegundos. | |
| uri_query | target.url | A string de consulta do URL solicitado pelo cliente. |
| user_agent | network.http.user_agent | O user agent do cliente. |
| Nome de usuário | target.user.userid | O nome de usuário. |
| UserSid | target.user.windows_sid | O SID do Windows do usuário. |
| Peso | security_result.about.resource.attribute.labels.Weight.value | O peso do filtro. |
| win32_status | O código de status 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 do Google SecOps.