Integrar Azure Stack Hub soluções de monitoramento usando o encaminhamento de syslog

Este artigo mostra como usar o syslog para integrar Azure Stack Hub infraestrutura com soluções de segurança externas já implantadas em seu datacenter. Por exemplo, um sistema siem (gerenciamento de eventos de informações de segurança). O canal syslog expõe auditorias, alertas e logs de segurança de todos os componentes da infraestrutura Azure Stack Hub segurança. Use o encaminhamento de syslog para integração com soluções de monitoramento de segurança e para recuperar todas as auditorias, alertas e logs de segurança para armazená-los para retenção.

A partir da atualização 1809, o Azure Stack Hub tem um cliente syslog integrado que, uma vez configurado, emite mensagens syslog com o payload no CEF (Formato de Evento Comum).

O diagrama a seguir descreve a integração do Azure Stack Hub com um SIEM externo. Há dois padrões de integração que precisam ser considerados: o primeiro (o azul) é a infraestrutura Azure Stack Hub que abrange as máquinas virtuais de infraestrutura e os nós do Hyper-V. Todas as auditorias, logs de segurança e alertas desses componentes são coletados e expostos centralmente por meio de syslog com carga CEF. Esse padrão de integração é descrito nesta página de documento. O segundo padrão de integração é aquele descrito em laranja e abrange os controladores de gerenciamento de placa base (BMCs), o host do ciclo de vida de hardware (HLH), as máquinas virtuais e dispositivos virtuais que executem o software de gerenciamento e monitoramento do parceiro de hardware e a parte superior dos comutadores TOR (rack). Como esses componentes são específicos do parceiro de hardware, entre em contato com seu parceiro de hardware para ver a documentação sobre como integrá-los a um SIEM externo.

Diagrama de encaminhamento do Syslog

Configurando o encaminhamento de syslog

O cliente syslog no Azure Stack Hub dá suporte às seguintes configurações:

  1. Syslog sobre TCP, com autenticação mútua (cliente e servidor) e criptografia TLS 1.2: Nessa configuração, o servidor syslog e o cliente syslog podem verificar a identidade uns dos outros por meio de certificados. As mensagens são enviadas por um canal criptografado TLS 1.2.

  2. Syslog sobre TCP com autenticação de servidor e criptografia TLS 1.2: Nessa configuração, o cliente syslog pode verificar a identidade do servidor syslog por meio de um certificado. As mensagens são enviadas por um canal criptografado TLS 1.2.

  3. Syslog sobre TCP, sem criptografia: Nessa configuração, as identidades do cliente syslog e do servidor syslog não são verificadas. As mensagens são enviadas em texto não limpo por TCP.

  4. Syslog sobre UDP, sem criptografia: Nessa configuração, as identidades do cliente syslog e do servidor syslog não são verificadas. As mensagens são enviadas em texto não escrito sobre UDP.

Importante

A Microsoft recomenda usar o TCP usando autenticação e criptografia (configuração nº 1 ou, no mínimo, nº 2) para ambientes de produção a fim de proteger contra ataques man-in-the-middle e à escuta de mensagens.

Cmdlets para configurar o encaminhamento de syslog

Configurar o encaminhamento de syslog requer acesso ao PEP (ponto de extremidade privilegiado). Dois cmdlets do PowerShell foram adicionados ao PEP para configurar o encaminhamento de syslog:

### cmdlet to pass the syslog server information to the client and to configure the transport protocol, the encryption and the authentication between the client and the server

Set-SyslogServer [-ServerName <String>] [-ServerPort <UInt16>] [-NoEncryption] [-SkipCertificateCheck] [-SkipCNCheck] [-UseUDP] [-Remove]

### cmdlet to configure the certificate for the syslog client to authenticate with the server

Set-SyslogClient [-pfxBinary <Byte[]>] [-CertPassword <SecureString>] [-RemoveCertificate] [-OutputSeverity]

Parâmetros de cmdlets

Parâmetros para o cmdlet Set-SyslogServer:

Parâmetro Descrição Type Obrigatório
ServerName FQDN ou endereço IP do servidor syslog. String sim
Serverport Número da porta em que o servidor syslog está escutando. UInt16 sim
Noencryption Force o cliente a enviar mensagens syslog em texto não limpo. flag não
SkipCertificateCheck Ignore a validação do certificado fornecido pelo servidor syslog durante o handshake TLS inicial. flag não
SkipCNCheck Ignore a validação do valor de Nome Comum do certificado fornecido pelo servidor syslog durante o handshake inicial do TLS. flag não
UseUDP Use syslog com UDP como protocolo de transporte. flag não
Remover Remova a configuração do servidor do cliente e pare o encaminhamento de syslog. flag não

Parâmetros para o cmdlet Set-SyslogClient:

Parâmetro Descrição Type
pfxBinary O conteúdo do arquivo pfx, canal para um Byte[], que contém o certificado a ser usado pelo cliente como identidade para autenticar no servidor syslog. Byte[]
CertPassword Senha para importar a chave privada associada ao arquivo pfx. SecureString
RemoveCertificate Remova o certificado do cliente. flag
OutputSeverity Nível de log de saída. Os valores são Padrãoou Detalhado. O padrão inclui níveis de severidade: aviso, crítico ou erro. Detalhado inclui todos os níveis de severidade: detalhado, informacional, aviso, crítico ou erro. Cadeia de caracteres

Configurando o encaminhamento de syslog com TCP, autenticação mútua e criptografia TLS 1.2

Nessa configuração, o cliente syslog no Azure Stack Hub encaminha as mensagens para o servidor syslog por TCP, com criptografia TLS 1.2. Durante o handshake inicial, o cliente verifica se o servidor fornece um certificado válido e confiável. O cliente também fornece um certificado para o servidor como prova de sua identidade. Essa configuração é a mais segura, pois fornece uma validação completa da identidade do cliente e do servidor e envia mensagens por um canal criptografado.

Importante

A Microsoft recomenda fortemente usar essa configuração para ambientes de produção.

Para configurar o encaminhamento de syslog com TCP, autenticação mútua e criptografia TLS 1.2, execute os dois cmdlets em uma sessão PEP:

# Configure the server
Set-SyslogServer -ServerName <FQDN or ip address of syslog server> -ServerPort <Port number on which the syslog server is listening on>

# Provide certificate to the client to authenticate against the server
Set-SyslogClient -pfxBinary <Byte[] of pfx file> -CertPassword <SecureString, password for accessing the pfx file>

O certificado do cliente deve ter a mesma raiz fornecida durante a implantação do Azure Stack Hub. Ele também deve conter uma chave privada.

##Example on how to set your syslog client with the certificate for mutual authentication.
##This example script must be run from your hardware lifecycle host or privileged access workstation.

$ErcsNodeName = "<yourPEP>"
$password = ConvertTo-SecureString -String "<your cloudAdmin account password" -AsPlainText -Force
 
$cloudAdmin = "<your cloudAdmin account name>"
$CloudAdminCred = New-Object System.Management.Automation.PSCredential ($cloudAdmin, $password)
 
$certPassword = $password
$certContent = Get-Content -Path C:\cert\<yourClientCertificate>.pfx -Encoding Byte
 
$params = @{ 
    ComputerName = $ErcsNodeName 
    Credential = $CloudAdminCred 
    ConfigurationName = "PrivilegedEndpoint" 
}

$session = New-PSSession @params
 
$params = @{ 
    Session = $session 
    ArgumentList = @($certContent, $certPassword) 
}
Write-Verbose "Invoking cmdlet to set syslog client certificate..." -Verbose 
Invoke-Command @params -ScriptBlock { 
    param($CertContent, $CertPassword) 
    Set-SyslogClient -PfxBinary $CertContent -CertPassword $CertPassword }

Configurando o encaminhamento de syslog com TCP, autenticação de servidor e criptografia TLS 1.2

Nessa configuração, o cliente syslog no Azure Stack Hub encaminha as mensagens para o servidor syslog por TCP, com criptografia TLS 1.2. Durante o handshake inicial, o cliente também verifica se o servidor fornece um certificado válido e confiável. Essa configuração impede que o cliente envie mensagens para destinos não dados. TCP usando autenticação e criptografia é a configuração padrão e representa o nível mínimo de segurança que a Microsoft recomenda para um ambiente de produção.

Set-SyslogServer -ServerName <FQDN or ip address of syslog server> -ServerPort <Port number on which the syslog server is listening on>

Caso você queira testar a integração do servidor syslog com o cliente do Azure Stack Hub usando um certificado auto-assinado ou não seguro, você pode usar esses sinalizadores para ignorar a validação do servidor feita pelo cliente durante o handshake inicial.

 #Skip validation of the Common Name value in the server certificate. Use this flag if you provide an IP address for your syslog server
 Set-SyslogServer -ServerName <FQDN or ip address of syslog server> -ServerPort <Port number on which the syslog server is listening on>
 -SkipCNCheck

 #Skip entirely the server certificate validation
 Set-SyslogServer -ServerName <FQDN or ip address of syslog server> -ServerPort <Port number on which the syslog server is listening on>
 -SkipCertificateCheck

Importante

A Microsoft recomenda o uso do sinalizador -SkipCertificateCheck para ambientes de produção.

Configurando o encaminhamento de syslog com TCP e sem criptografia

Nessa configuração, o cliente syslog no Azure Stack Hub encaminha as mensagens para o servidor syslog por TCP, sem criptografia. O cliente não verifica a identidade do servidor nem fornece sua própria identidade ao servidor para verificação.

Set-SyslogServer -ServerName <FQDN or ip address of syslog server> -ServerPort <Port number on which the syslog server is listening on> -NoEncryption

Importante

A Microsoft recomenda não usar essa configuração para ambientes de produção.

Configurando o encaminhamento de syslog com UDP e sem criptografia

Nessa configuração, o cliente syslog no Azure Stack Hub encaminha as mensagens para o servidor syslog por UDP, sem criptografia. O cliente não verifica a identidade do servidor nem fornece sua própria identidade ao servidor para verificação.

Set-SyslogServer -ServerName <FQDN or ip address of syslog server> -ServerPort <Port number on which the syslog server is listening on> -UseUDP

Embora o UDP sem criptografia seja o mais fácil de configurar, ele não fornece nenhuma proteção contra ataques man-in-the-middle e à escuta de mensagens.

Importante

A Microsoft recomenda não usar essa configuração para ambientes de produção.

Removendo a configuração de encaminhamento de syslog

Para remover completamente a configuração do servidor syslog e interromper o encaminhamento de syslog:

Remover a configuração do servidor syslog do cliente

Set-SyslogServer -Remove

Remover o certificado do cliente

Set-SyslogClient -RemoveCertificate

Verificando a configuração do syslog

Se você conectou com êxito o cliente syslog ao servidor syslog, deverá começar a receber eventos em breve. Se você não vir nenhum evento, verifique a configuração do cliente syslog executando os seguintes cmdlets:

Verificar a configuração do servidor no cliente syslog

Get-SyslogServer

Verificar a configuração do certificado no cliente syslog

Get-SyslogClient

Esquema de mensagem do Syslog

O encaminhamento de syslog da infraestrutura Azure Stack Hub envia mensagens formatadas no CEF (Formato Comum de Evento). Cada mensagem de syslog é estruturada com base neste esquema:

<Time> <Host> <CEF payload>

O payload do CEF baseia-se na estrutura abaixo, mas o mapeamento para cada campo varia dependendo do tipo de mensagem (evento Windows, Alerta criado, Alerta fechado).

# Common Event Format schema
CEF: <Version>|<Device Vendor>|<Device Product>|<Device Version>|<Signature ID>|<Name>|<Severity>|<Extensions>
* Version: 0.0
* Device Vendor: Microsoft
* Device Product: Microsoft Azure Stack Hub
* Device Version: 1.0

Mapeamento de CEF para eventos de ponto de extremidade privilegiados

Prefix fields
* Signature ID: Microsoft-AzureStack-PrivilegedEndpoint: <PEP Event ID>
* Name: <PEP Task Name>
* Severity: mapped from PEP Level (details see the PEP Severity table below)
* Who: account used to connect to the PEP
* WhichIP: IP address of ERCS server hosting the PEP

Tabela de eventos para o ponto de extremidade privilegiado:

Evento ID do evento PEP Nome da tarefa PEP Severidade
PrivilegedEndpointAccessed 1000 PrivilegedEndpointAccessedEvent 5
SupportSessionTokenRequested 1001 SupportSessionTokenRequestedEvent 5
SupportSessionDevelopmentTokenRequested 1002 SupportSessionDevelopmentTokenRequestedEvent 5
SupportSessionUnlocked 1003 SupportSessionUnlockedEvent 10
SupportSessionFailedToUnlock 1004 SupportSessionFailedToUnlockEvent 10
PrivilegedEndpointClosed 1005 PrivilegedEndpointClosedEvent 5
NewCloudAdminUser 1006 NewCloudAdminUserEvent 10
RemoveCloudAdminUser 1007 RemoveCloudAdminUserEvent 10
SetCloudAdminUserPassword 1008 SetCloudAdminUserPasswordEvent 5
GetCloudAdminPasswordRecoveryToken 1009 GetCloudAdminPasswordRecoveryTokenEvent 10
ResetCloudAdminPassword 1010 ResetCloudAdminPasswordEvent 10
PrivilegedEndpointSessionTimedOut 1017 PrivilegedEndpointSessionTimedOutEvent 5

Tabela de severidade pep:

Severidade Nível Valor numérico
0 Indefinido Valor: 0. Indica logs em todos os níveis
10 Crítico Valor: 1. Indica logs para um alerta crítico
8 Erro Valor: 2. Indica logs para um erro
5 Aviso Valor: 3. Indica logs para um aviso
2 Informações Valor: 4. Indica os logs de uma mensagem informativa
0 Detalhado Valor: 5. Indica logs em todos os níveis

Mapeamento de CEF para eventos de ponto de extremidade de recuperação

Prefix fields
* Signature ID: Microsoft-AzureStack-PrivilegedEndpoint: <REP Event ID>
* Name: <REP Task Name>
* Severity: mapped from REP Level (details see the REP Severity table below)
* Who: account used to connect to the REP
* WhichIP: IP address of the device used to connect to the REP

Tabela de eventos para o ponto de extremidade de recuperação:

Evento ID do evento do representante Nome da tarefa do representante Severidade
RecoveryEndpointAccessed 1011 RecoveryEndpointAccessedEvent 5
RecoverySessionTokenRequested 1012 RecoverySessionTokenRequestedEvent 5
RecoverySessionDevelopmentTokenRequested 1013 RecoverySessionDevelopmentTokenRequestedEvent 5
RecoverySessionUnlocked 1014 RecoverySessionUnlockedEvent 10
RecoverySessionFailedToUnlock 1015 RecoverySessionFailedToUnlockEvent 10
RecoveryEndpointClosed 1016 RecoveryEndpointClosedEvent 5

Tabela de gravidade do REP:

Severidade Nível Valor numérico
0 Indefinido Valor: 0. Indica logs em todos os níveis
10 Crítico Valor: 1. Indica os logs de um alerta crítico
8 Erro Valor: 2. Indica os logs de um erro
5 Aviso Valor: 3. Indica os logs de um aviso
2 Informações Valor: 4. Indica os logs de uma mensagem informativa
0 Detalhado Valor: 5. Indica logs em todos os níveis

mapeamento de CEF para eventos de Windows

* Signature ID: ProviderName:EventID
* Name: TaskName
* Severity: Level (for details, see the severity table below)
* Extension: Custom Extension Name (for details, see the Custom Extension table below)

tabela de severidade para eventos de Windows:

Valor de severidade de CEF nível de evento de Windows Valor numérico
0 Indefinido Valor: 0. Indica logs em todos os níveis
10 Crítico Valor: 1. Indica os logs de um alerta crítico
8 Erro Valor: 2. Indica os logs de um erro
5 Aviso Valor: 3. Indica os logs de um aviso
2 Informações Valor: 4. Indica os logs de uma mensagem informativa
0 Detalhado Valor: 5. Indica logs em todos os níveis

tabela de extensão personalizada para eventos de Windows no Hub Azure Stack:

Nome da extensão personalizada exemplo de evento de Windows
MasChannel Sistema
MasComputer test.azurestack.contoso.com
MasCorrelationActivityID C8F40D7C-3764-423B-A4FA-C994442238AF
MasCorrelationRelatedActivityID C8F40D7C-3764-423B-A4FA-C994442238AF
MasEventData Svchost!! 4132, G,0!!!! EseDiskFlushConsistency!! ESENT!! 0x800000
MasEventDescription As Política de Grupo configurações do usuário foram processadas com êxito. Não houve alterações detectadas desde o último processamento bem-sucedido do Política de Grupo.
MasEventID 1501
MasEventRecordID 26637
MasExecutionProcessID 29380
MasExecutionThreadID 25480
MasKeywords 0x8000000000000000
MasKeywordName Auditoria bem-sucedida
MasLevel 4
MasOpcode 1
MasOpcodeName informações
MasProviderEventSourceName
MasProviderGuid AEA1B4FA-97D1-45F2-A64C-4D69FFFD92C9
MasProviderName Microsoft-Windows-GroupPolicy
MasSecurityUserId <SID Windows de Windows>
MasTask 0
MasTaskCategory Criação de processo
MasUserData KB4093112!! 5112!! Instalado!! 0x0!! WindowsUpdateAgent Xpath: /Event/UserData/*
MasVersion 0

Mapeamento de CEF para alertas criados

* Signature ID: Microsoft Azure Stack Hub Alert Creation : FaultTypeId
* Name: FaultTypeId : AlertId
* Severity: Alert Severity (for details, see alerts severity table below)
* Extension: Custom Extension Name (for details, see the Custom Extension table below)

Tabela de severidade de alertas:

Severidade Nível
0 Indefinido
10 Crítico
5 Aviso

Tabela de Extensão Personalizada para Alertas criados Azure Stack Hub:

Nome da extensão personalizada Exemplo
MasEventDescription DESCRIÇÃO: uma conta de usuário < TestUser > foi criada para < TestDomain. > É um risco de segurança potencial. -- CORREÇÃO: entre em contato com o suporte. A Assistência ao Cliente é necessária para resolver esse problema. Não tente resolver esse problema sem a assistência deles. Antes de abrir uma solicitação de suporte, inicie o processo de coleta de arquivos de log usando as diretrizes de https://aka.ms/azurestacklogfiles .

Mapeamento de CEF para alertas fechados

* Signature ID: Microsoft Azure Stack Hub Alert Creation : FaultTypeId
* Name: FaultTypeId : AlertId
* Severity: Information

O exemplo a seguir mostra uma mensagem de syslog com o payload do CEF:

2018:05:17:-23:59:28 -07:00 TestHost CEF:0.0|Microsoft|Microsoft Azure Stack Hub|1.0|3|TITLE: User Account Created -- DESCRIPTION: A user account \<TestUser\> was created for \<TestDomain\>. It's a potential security risk. -- REMEDIATION: Please contact Support. Customer Assistance is required to resolve this issue. Do not try to resolve this issue without their assistance. Before you open a support request, start the log file collection process using the guidance from https://aka.ms/azurestacklogfiles|10

Tipos de evento Syslog

A tabela lista todos os tipos de evento, eventos, esquema de mensagem ou propriedades que são enviado por meio do canal syslog. A opção detalhada de instalação só deve ser usada se Windows eventos informacionais são necessários para a integração do SIEM.

Tipo de evento Eventos ou esquema de mensagem Requer configuração detalhada Descrição do evento (opcional)
Alertas do Azure Stack Hub Para o esquema de mensagem de alerta, consulte Mapeamento de CEF para alertas fechados.

Uma lista de todos os alertas compartilhados em um documento separado.
Não Alertas de saúde do sistema
Eventos de ponto de extremidade privilegiado Para o esquema de mensagem de ponto de extremidade privilegiado, consulte Mapeamento de CEF para eventos de ponto de extremidade privilegiado.

PrivilegedEndpointAccessed
SupportSessionTokenRequested
SupportSessionDevelopmentTokenRequested
SupportSessionUnlocked
SupportSessionFailedToUnlock
PrivilegedEndpointClosed
NewCloudAdminUser
RemoveCloudAdminUser
SetCloudAdminUserPassword
GetCloudAdminPasswordRecoveryToken
ResetCloudAdminPassword
PrivilegedEndpointSessionTimedOut
Não
Eventos de ponto de extremidade de recuperação Para o esquema de mensagem do ponto de extremidade de recuperação, consulte Mapeamento de CEF para eventos de ponto de extremidade de recuperação.
RecoveryEndpointAccessed
RecoverySessionTokenRequested
RecoverySessionDevelopmentTokenRequested
RecoverySessionUnlocked
RecoverySessionFailedToUnlock
Recovand RecoveryEndpointClosed
Não
Segurança do Windows eventos
Para o esquema Windows de mensagem de evento, consulte Mapeamento de CEF para Windows eventos.
Sim (para obter eventos de informações) Tipo:
– Informações
- Aviso
- Erro
- Crítico
Eventos de ARM Propriedades da mensagem:

AzsSubscriptionId
AzsCorrelationId
AzsPrincipalOid
AzsPrincipalPuid
AzsTenantId
AzsOperationName
AzsOperationId
AzsEventSource
AzsDescription
AzsResourceProvider
AzsResourceUri
AzsEventName
AzsEventInstanceId
AzsChannels
AzsEventLevel
AzsStatus
AzsSubStatus
AzsClaims
AzsAuthorization
AzsHttpRequest
AzsProperties
AzsEventTimestamp
AzsAudience
AzsIssuer
AzsIssuedAt
AzsApplicationId
AzsUniqueTokenId
AzsArmServiceRequestId
AzsEventCategory

Não
Cada recurso do ARM registrado pode auxicar um evento.
Eventos BCDR Esquema de mensagem:

AuditingManualBackup {
}
AuditingConfig
{
Intervalo
Retenção
IsSchedulerEnabled
BackupPath
}
AuditingPruneBackupStore {
IsInternalStore
}
Não Esses eventos acompanham as operações de administrador de backup de infraestrutura feitas pelo cliente manualmente, incluem o backup de gatilho, a configuração de backup de alteração e a remoção de dados de backup.
Eventos de criação e fechamento de falhas de infraestrutura Esquema de mensagem:

InfrastructureFaultOpen {
AzsFaultId,
AzsFaultTypeName,
AzsComponentType,
AzsComponentName,
AzsFaultHash,
AzsCreatedTimeUtc,
AzsSource
}

InfrastructureFaultClose {
AzsFaultId,
AzsFaultTypeName,
AzsComponentType,
AzsComponentName,
AzsFaultHash,
AzsLastUpdatedTimeUtc,
AzsSource
}
Não Falhas disparam fluxos de trabalho que tentam corrigir erros que podem levar a alertas. Se uma falha não tiver correção, ela levará diretamente a um Alerta.
Eventos de criação e fechamento de falha de serviço Esquema de mensagem:

ServiceFaultOpen {
AzsFaultId,
AzsFaultTypeName,
AzsSubscriptionId,
AzsResourceGroup,
AzsServiceName,
AzsResourceId
AzsFaultHash,
AzsCreatedTimeUtc,
AzsSource
}

ServiceFaultClose {
AzsFaultId,
AzsFaultTypeName,
AzsSubscriptionId,
AzsResourceGroup,
AzsServiceName,
AzsResourceId
AzsFaultHash,
AzsLastUpdatedTimeUtc,
AzsSource
}
Não Falhas disparam fluxos de trabalho que tentam corrigir erros que podem levar a alertas.
Se uma falha não tiver correção, ela levará diretamente a um Alerta.
Eventos PEP WAC Esquema de mensagem:

Campos de prefixo
* ID da assinatura: Microsoft-AzureStack-PrivilegedEndpoint: < ID do evento PEP>
* Nome: < Nome da Tarefa PEP>
* Severidade: mapeada do nível pep (detalhes consulte a tabela Severidade pep abaixo)
* Who: conta usada para se conectar ao PEP
* WhichIP: endereço IP do servidor ERCS que hospeda o PEP

WACServiceStartFailedEvent
WACConnectedUserNotRetrievedEvent
WACEnableExceptionEvent
WACUserAddedEvent
WACAddUserToLocalGroupFailedEvent
WACIsUserInLocalGroupFailedEvent
WACServiceStartTimeoutEvent
WACServiceStartInvalidOperationEvent
WACGetSidFromUserFailedEvent
WACDisableFirewallFailedEvent
WACCreateLocalGroupIfNotExistFailedEvent
WACEnableFlagIsTrueEvent
WACEnableFlagIsFalseEvent
WACServiceStartedEvent
Não

Próximas etapas

Política de manutenção