Integrar o Azure Stack Hub com soluções de monitorização com o reencaminhamento do syslog

Este artigo mostra-lhe como utilizar o syslog para integrar a infraestrutura do Azure Stack Hub com soluções de segurança externas já implementadas no seu datacenter. Por exemplo, um sistema de gestão de eventos de informações de segurança (SIEM). O canal syslog expõe auditorias, alertas e registos de segurança de todos os componentes da infraestrutura do Azure Stack Hub. Utilize o reencaminhamento do syslog para integrar com soluções de monitorização de segurança e para obter todas as auditorias, alertas e registos 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 Common Event Format (CEF).

O diagrama seguinte descreve a integração do Azure Stack Hub com um SIEM externo. Existem dois padrões de integração que têm de ser considerados: o primeiro (o azul) é a infraestrutura do Azure Stack Hub que abrange as máquinas virtuais de infraestrutura e os nós hyper-V. Todas as auditorias, registos de segurança e alertas desses componentes são recolhidos e expostos centralmente através do syslog com payload CEF. Este padrão de integração é descrito nesta página de documento. O segundo padrão de integração é o representado a laranja e abrange os controladores de gestão da placa base (BMCs), o anfitrião do ciclo de vida do hardware (HLH), as máquinas virtuais e aplicações virtuais que executam o software de monitorização e gestão de parceiros de hardware e os comutadores tor (top of rack). Uma vez que estes componentes são específicos de parceiros de hardware, contacte o parceiro de hardware para obter documentação sobre como integrá-los num SIEM externo.

Diagrama de reencaminhamento do Syslog

Configurar o reencaminhamento do syslog

O cliente syslog no Azure Stack Hub suporta as seguintes configurações:

  1. Syslog através de TCP, com autenticação mútua (cliente e servidor) e encriptação TLS 1.2: Nesta configuração, tanto o servidor syslog como o cliente syslog podem verificar a identidade uns dos outros através de certificados. As mensagens são enviadas através de um canal encriptado TLS 1.2.

  2. Syslog através de TCP com autenticação de servidor e encriptação TLS 1.2: Nesta configuração, o cliente syslog pode verificar a identidade do servidor syslog através de um certificado. As mensagens são enviadas através de um canal encriptado TLS 1.2.

  3. Syslog através de TCP, sem encriptação: Nesta 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 encriptado através de TCP.

  4. Syslog através de UDP, sem encriptação: Nesta 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 encriptado através de UDP.

Importante

A Microsoft recomenda vivamente utilizar o TCP através da autenticação e encriptação (configuração n.º 1 ou, no mínimo, n.º 2) para ambientes de produção para proteger contra ataques man-in-the-middle e escutas de mensagens.

Cmdlets para configurar o reencaminhamento do syslog

Configurar o reencaminhamento do syslog requer acesso ao ponto final privilegiado (PEP). Foram adicionados dois cmdlets do PowerShell ao PEP para configurar o reencaminhamento do 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 Tipo Necessário
ServerName FQDN ou endereço IP do servidor syslog. String sim
ServerPort Número da porta em que o servidor syslog está a escutar. UInt16 sim
NoEncryption Forçar o cliente a enviar mensagens syslog em texto não encriptado. 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 Nome Comum do certificado fornecido pelo servidor syslog durante o handshake TLS inicial. flag não
UseUDP Utilize o syslog com UDP como protocolo de transporte. flag não
Remover Remova a configuração do servidor do cliente e pare o reencaminhamento do syslog. flag não

Parâmetros para o cmdlet Set-SyslogClient :

Parâmetro Descrição Tipo
pfxBinary O conteúdo do ficheiro pfx, direcionado para um Byte[], que contém o certificado a utilizar pelo cliente como identidade para autenticar no servidor syslog. Byte[]
CertPassword Palavra-passe para importar a chave privada associada ao ficheiro pfx. SecureString
RemoverCertificado Remova o certificado do cliente. flag
OutputSeverity Nível de registo de saída. Os valores são Predefinidos ou Verbosos. A predefinição inclui níveis de gravidade: aviso, crítico ou erro. Verboso inclui todos os níveis de gravidade: verboso, informativo, aviso, crítico ou erro. String

Configurar o reencaminhamento do syslog com TCP, autenticação mútua e encriptação TLS 1.2

Nesta configuração, o cliente syslog no Azure Stack Hub reencaminha as mensagens para o servidor syslog através de TCP, com encriptação TLS 1.2. Durante o handshake inicial, o cliente verifica se o servidor fornece um certificado fidedigno válido. O cliente também fornece um certificado ao servidor como prova da respetiva identidade. Esta configuração é a mais segura, uma vez que fornece uma validação completa da identidade do cliente e do servidor e envia mensagens através de um canal encriptado.

Importante

A Microsoft recomenda vivamente que utilize esta configuração para ambientes de produção.

Para configurar o reencaminhamento do syslog com encriptação TCP, autenticação mútua e TLS 1.2, execute ambos os cmdlets numa 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 de cliente tem de ter a mesma raiz que a fornecida durante a implementação do Azure Stack Hub. Também tem de 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 }

Configurar o reencaminhamento do syslog com encriptação TCP, Autenticação do servidor e TLS 1.2

Nesta configuração, o cliente syslog no Azure Stack Hub reencaminha as mensagens para o servidor syslog através de TCP, com encriptação TLS 1.2. Durante o handshake inicial, o cliente também verifica se o servidor fornece um certificado válido e fidedigno. Esta configuração impede o cliente de enviar mensagens para destinos não fidedignos. O TCP que utiliza autenticação e encriptação é a configuração predefinida 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 pretenda testar a integração do servidor syslog com o cliente do Azure Stack Hub com um certificado autoassinado ou não fidedigno, pode utilizar estes 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 contra a utilização do sinalizador -SkipCertificateCheck para ambientes de produção.

Configurar o reencaminhamento do syslog com TCP e sem encriptação

Nesta configuração, o cliente syslog no Azure Stack Hub reencaminha as mensagens para o servidor syslog através de TCP, sem encriptação. O cliente não verifica a identidade do servidor nem fornece a 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 que não utilize esta configuração para ambientes de produção.

Configurar o reencaminhamento do syslog com UDP e sem encriptação

Nesta configuração, o cliente syslog no Azure Stack Hub reencaminha as mensagens para o servidor syslog através de UDP, sem encriptação. O cliente não verifica a identidade do servidor nem fornece a 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 encriptação seja o mais fácil de configurar, não fornece qualquer proteção contra ataques man-in-the-middle e escutas de mensagens.

Importante

A Microsoft recomenda que não utilize esta configuração para ambientes de produção.

Remover a configuração do reencaminhamento do syslog

Para remover completamente a configuração do servidor syslog e parar o reencaminhamento do syslog:

Remover a configuração do servidor syslog do cliente

Set-SyslogServer -Remove

Remover o certificado de cliente do cliente

Set-SyslogClient -RemoveCertificate

Verificar a configuração do syslog

Se tiver ligado com êxito o cliente syslog ao servidor syslog, deverá começar a receber eventos em breve. Se não vir nenhum evento, verifique a configuração do cliente syslog ao executar 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 mensagens do Syslog

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

<Time> <Host> <CEF payload>

O payload CEF baseia-se na estrutura abaixo, mas o mapeamento para cada campo varia consoante o tipo de mensagem (Evento do 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 cef para eventos de pontos finais 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 final privilegiado:

Evento ID do evento PEP Nome da tarefa PEP Gravidade
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 PEP Severity:

Gravidade Level Valor Numérico
0 Indefinido Valor: 0. Indica registos em todos os níveis
10 Crítico Valor: 1. Indica registos de um alerta crítico
8 Erro Valor: 2. Indica registos de um erro
5 Aviso Valor: 3. Indica registos de um aviso
2 Informações Valor: 4. Indica os registos de uma mensagem informativa
0 Verboso Valor: 5. Indica registos em todos os níveis

Mapeamento do CEF para eventos de ponto final 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 final de recuperação:

Evento ID do evento REP Nome da tarefa REP Gravidade
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 Gravidade do REP:

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

Mapeamento do CEF para eventos do 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 gravidade para eventos do Windows:

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

Tabela de extensões personalizada para eventos do Windows no Azure Stack Hub:

Nome da extensão personalizada Exemplo de evento do Windows
MasCanal 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 definições de Política de Grupo para o utilizador foram processadas com êxito. Não foram detetadas alterações desde o último processamento bem-sucedido de Política de Grupo.
MasEventID 1501
MasEventRecordID 26637
MasExecutionProcessID 29380
MasExecutionThreadID 25480
Palavras-chave 0x8000000000000000
MasKeywordName Auditar Êxito
MasLevel 4
MasOpcode 1
MasOpcodeName informações
MasProviderEventSourceName
MasProviderGuid AEA1B4FA-97D1-45F2-A64C-4D69FFFD92C9
MasProviderName Microsoft-Windows-GroupPolicy
MasSecurityUserId <Windows SID>
MasTask 0
MasTaskCategory Criação de Processos
MasUserData KB4093112!! 5112!! Instalado!! 0x0!! WindowsUpdateAgent Xpath: /Event/UserData/*
MasVersion 0

Mapeamento do 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 gravidade de alertas:

Gravidade Level
0 Indefinido
10 Crítico
5 Aviso

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

Nome da extensão personalizada Exemplo
MasEventDescription DESCRIÇÃO: foi criado um TestUser de conta <de utilizador para <TestDomain>.> É um potencial risco de segurança. -- REMEDIAÇÃO: Contacte o suporte. A Assistência ao Cliente é necessária para resolver este problema. Não tente resolver este problema sem a respetiva ajuda. Antes de abrir um pedido de suporte, inicie o processo de recolha de ficheiros de registo com a documentação de orientação do https://aka.ms/azurestacklogfiles.

Mapeamento do CEF para alertas fechados

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

O exemplo abaixo mostra uma mensagem syslog com 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 eventos do Syslog

A tabela lista todos os tipos de eventos, eventos, esquema de mensagens ou propriedades que são enviados através do canal syslog. O comutador verboso de configuração só deve ser utilizado se forem necessários eventos informativos do Windows para a integração do SIEM.

Tipo de Evento Eventos ou esquema de mensagens Requer uma definição verbosa Descrição do Evento (opcional)
Alertas do Azure Stack Hub Para o esquema da mensagem de alerta , veja Mapeamento do CEF para alertas fechados.

Uma lista de todos os alertas partilhados num documento separado.
No Alertas do estado de funcionamento do sistema
Eventos de Ponto Final Com Privilégios Para o esquema de mensagens de ponto final privilegiado, veja Mapeamento ceF para eventos de pontos finais privilegiados.

PrivilegedEndpointAccessed
SupportSessionTokenRequested
SupportSessionDevelopmentTokenRequested
SupportSessionUnlocked
SupportSessionFailedToUnlock
PrivilegedEndpointClosed
NewCloudAdminUser
RemoverCloudAdminUser
SetCloudAdminUserPassword
GetCloudAdminPasswordRecoveryToken
ResetCloudAdminPassword
PrivilegedEndpointSessionTimedOut
No
Eventos de Ponto Final de Recuperação Para o esquema de mensagens de ponto final de recuperação, veja Mapeamento do CEF para eventos de ponto final de recuperação.
RecoveryEndpointAccessed
RecoverySessionTokenRequested
RecoverySessionDevelopmentTokenRequested
RecoverySessionUnlocked
RecoverySessionFailedToUnlock
Recovand RecoveryEndpointClosed
No
Eventos de Segurança do Windows
Para o esquema de mensagens de eventos do Windows, veja Mapeamento ceF para eventos do Windows.
Sim (para obter eventos de informações) Escreva:
- Informações
- Aviso
- Erro
- Crítica
Eventos 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

No
Cada recurso arm registado pode gerar um evento.
Eventos BCDR Esquema de mensagem:

AuditingManualBackup {
}
AuditingConfig
{
Intervalo
Retenção
IsSchedulerEnabled
BackupPath
}
AuditingPruneBackupStore {
IsInternalStore
}
No Estes eventos controlam as operações de administração de cópias de segurança de infraestrutura realizadas manualmente pelo cliente, incluindo acionar cópia de segurança, alterar a configuração da cópia de segurança e podar dados de cópia de segurança.
Eventos de Criação e Fecho de Falhas de Infraestrutura Esquema de mensagem:

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

InfrastructureFaultClose {
AzsFaultId,
AzsFaultTypeName,
AzsComponentType,
AzsComponentName,
AzsFaultHash,
AzsLastUpdatedTimeUtc,
AzsSource
}
No As falhas acionam fluxos de trabalho que tentam remediar erros que podem levar a alertas. Se uma falha não tiver remediação, leva diretamente a um Alerta.
Eventos de Criação e Encerramento de Falhas 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
}
No As falhas acionam fluxos de trabalho que tentam remediar erros que podem levar a alertas.
Se uma falha não tiver remediação, leva 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>
* Gravidade: mapeado a partir do Nível PEP (os detalhes veem a tabela Gravidade PEP abaixo)
* Quem: conta utilizada para ligar ao PEP
* WhichIP: endereço IP do servidor ERCS que aloja o PEP

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

Próximos passos

Política de manutenção