Recolha registos do Microsoft IIS
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
- Inicie sessão na consola Google SecOps.
- Aceda a Definições do SIEM > Agentes de recolha.
- 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
- Inicie sessão na consola Google SecOps.
- Aceda a Definições do SIEM > Perfil.
- Copie e guarde o ID do cliente da secção Detalhes da organização.
Instale o agente do Bindplane no Windows
- Abra a Linha de comandos ou o PowerShell como administrador.
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
- Para ver opções de instalação adicionais, consulte este guia de instalação.
Configure o agente Bindplane para carregar o Syslog e enviá-lo para o Google SecOps
- Antes de configurar o ficheiro YAML, pare o
observIQ Distro for Open Telemetry Collector
serviço no painel de serviços. Aceda ao ficheiro de configuração:
- 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. - Abra o ficheiro com um editor de texto (por exemplo,
nano
,vi
ou Bloco de notas).
- Localize o ficheiro
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]
Substitua
<customer_id>
pelo ID de cliente real.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.Depois de guardar o ficheiro
config.yaml
, inicie oobservIQ 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.