Integre o Azure Stack Hub com soluções de monitorização utilizando o encaminhamento do syslog

Este artigo mostra-lhe como usar o syslog para integrar a infraestrutura do Azure Stack Hub com soluções de segurança externa já implantadas no seu datacenter. Por exemplo, um sistema de gestão de eventos de informação de segurança (SIEM). O canal syslog expõe auditorias, alertas e registos de segurança de todos os componentes da infraestrutura Azure Stack Hub. Utilize o reencaminhamento de syslog para integrar-se com soluções de monitorização de segurança e para recuperar todas as auditorias, alertas e registos de segurança para os armazenar para retenção.

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

O diagrama seguinte descreve a integração do Azure Stack Hub com um SIEM externo. Há dois padrões de integração que devem ser considerados: o primeiro (o de azul) é a infraestrutura Azure Stack Hub que engloba as máquinas virtuais de infraestrutura e os nós Hiper-V. Todas as auditorias, registos de segurança e alertas desses componentes são recolhidos e expostos centralmente através de syslog com carga útil CEF. Este padrão de integração é descrito nesta página de documento. O segundo padrão de integração é o representado em laranja e abrange os controladores de gestão de rodapé (BMCs), o hospedeiro de ciclo de vida de hardware (HLH), as máquinas virtuais e os aparelhos virtuais que executam o software de monitorização e gestão do parceiro de hardware, e o topo dos interruptores de rack (TOR). Uma vez que estes componentes são específicos do hardware-partner, contacte o seu parceiro de hardware para obter documentação sobre como integrá-los com um SIEM externo.

Diagrama de encaminhamento de Syslog

Reencaminhamento de syslog configurar

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

  1. Syslog sobre 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 por um canal encriptado TLS 1.2.

  2. Syslog sobre TCP com autenticação do 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 por um canal encriptado TLS 1.2.

  3. Syslog sobre 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 claro sobre a TCP.

  4. Syslog sobre a 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 claro sobre a UDP.

Importante

A Microsoft recomenda vivamente a utilização de TCP utilizando a autenticação e encriptação (configuração nº 1 ou, no mínimo, #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 encaminhamento do syslog requer acesso ao ponto final privilegiado (PEP). Dois cmdlets PowerShell foram adicionados ao PEP para configurar o encaminhamento 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 Endereço FQDN ou IP do servidor syslog. String sim
ServerPort Número de porta que o servidor syslog está a ouvir. UInt16 sim
NoEncryption Forçar o cliente a enviar mensagens syslog em texto claro. flag não
SkipCertificateCheck Ignore a validação do certificado fornecido pelo servidor syslog durante o aperto de mão TLS inicial. flag não
SkipCNCheck Ignore a validação do valor do nome comum do certificado fornecido pelo servidor syslog durante o aperto de mão TLS inicial. flag não
UseUDP Use o syslog com a UDP como protocolo de transporte. flag não
Remover Remova a configuração do servidor do cliente e pare o encaminhamento do syslog. flag não

Parâmetros para o cmdlet Set-SyslogClient:

Parâmetro Descrição Tipo
pfxBinary O conteúdo do ficheiro pfx, canalizado para um Byte[], contendo o certificado a ser usado pelo cliente como identidade para autenticar contra o servidor syslog. Byte[]
CertPassword Senha para importar a chave privada que está associada com o ficheiro pfx. SecureString
Remover Certificado Retire o certificado do cliente. flag
OutputSeverity Nível de registo de saída. Os valores são Predefinidos ou Verbose. O padrão inclui níveis de gravidade: aviso, crítico ou erro. Verbose inclui todos os níveis de severidade: 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 em Azure Stack Hub reencaminha as mensagens para o servidor syslog sobre TCP, com encriptação TLS 1.2. Durante o aperto de mão inicial, o cliente verifica que o servidor fornece um certificado válido e fidedigno. O cliente também fornece um certificado ao servidor como prova da sua identidade. Esta configuração é a mais segura, pois 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 a utilização desta configuração para ambientes de produção.

Para configurar o reencaminhamento do syslog com TCP, autenticação mútua, e encriptação TLS 1.2, executar ambos estes 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 deve ter a mesma raiz que a fornecida durante a implantação do Azure Stack Hub. 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 }

Configurar o encaminhamento do syslog com TCP, autenticação do Servidor e encriptação TLS 1.2

Nesta configuração, o cliente syslog em Azure Stack Hub reencaminha as mensagens para o servidor syslog sobre TCP, com encriptação TLS 1.2. Durante o aperto de mão inicial, o cliente também verifica que o servidor fornece um certificado válido e fidedigno. Esta configuração impede o cliente de enviar mensagens para destinos não fided os falsos. TCP usando a autenticação e encriptação é 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 pretenda testar a integração do seu servidor syslog com o cliente Azure Stack Hub utilizando um certificado auto-assinado ou não fideduba, pode utilizar estas bandeiras para saltar a validação do servidor feita pelo cliente durante o aperto de mão 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 da bandeira -SkipCertificateCheck para ambientes de produção.

Configurar o encaminhamento 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 sobre o 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 encaminhamento do syslog com a UDP e sem encriptação

Nesta configuração, o cliente syslog no Azure Stack Hub reencaminha as mensagens para o servidor syslog sobre a 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 a UDP sem encriptação seja a 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.

Remoção da configuração de encaminhamento de syslog

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

Remova a configuração do servidor syslog do cliente

Set-SyslogServer -Remove

Remova o certificado de cliente do cliente

Set-SyslogClient -RemoveCertificate

Verificação da configuração do syslog

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

Verifique a configuração do servidor no cliente syslog

Get-SyslogServer

Verifique a configuração do certificado no cliente syslog

Get-SyslogClient

Esquema de mensagem syslog

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

<Time> <Host> <CEF payload>

A carga útil do CEF baseia-se na estrutura abaixo, mas o mapeamento de cada campo varia consoante o tipo de mensagem (Windows Evento, 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 privilegiados de ponto final

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
PrivilegiadoEndpointAccessed 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:

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

Mapeamento 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 do 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 de Severidade REP:

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

Mapeamento do 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 Windows:

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

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

Nome de extensão personalizado Windows exemplo do evento
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 definições de Política de Grupo para o utilizador foram processadas com sucesso. Não foram detetadas alterações desde o último processamento bem sucedido da Política de Grupo.
MaseventID 1501
MaseventRecordID 26637
MasExecutionProcessID 29380
MasExecutionThreadID 25480
MasKeywords 0x8000000000000000
Nome MasKeyword Sucesso da Auditoria
MasLevel 4
MasOpcode 1
Nome MasOpcode informações
MasProviderEventSourceName
MasProviderGuid AEA1B4FA-97D1-45F2-A64C-4D69FFFD92C9
Nome MasProvider Microsoft-Windows-GroupPolicy
MasSecurityUserId <WINDOWS SID>
MasTask 0
MasTaskCategoria Criação de Processos
MasUserData KB4093112!! 5112!! Instalado!! 0x0! WindowsUpdateAgent Xpath: /Event/UserData/*
Masversão 0

Mapeamento 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:

Gravidade Level
0 Indefinido
10 Crítico
5 Aviso

Tabela de extensão personalizada para alertas criados no Azure Stack Hub:

Nome de extensão personalizado Exemplo
MaseventDescription DESCRIÇÃO: Foi criado um TestUser de conta de utilizador < para o >< TestDomain > . É um risco potencial para a segurança. -- REMEDIAÇÃO: Suporte de contacto. A Assistência ao Cliente é necessária para resolver este problema. Não tente resolver este problema sem a ajuda deles. Antes de abrir um pedido de suporte, inicie o processo de recolha de ficheiros de registo utilizando a orientação de 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 carga útil 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 Syslog

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

Tipo de Evento Eventos ou esquema de mensagens Requer definição verbose Descrição do evento (opcional)
Alertas do Azure Stack Hub Para o esquema de mensagem de alerta consulte o mapeamento do CEF para alertas fechados.

Uma lista de todos os alertas partilhados num documento separado.
No Alertas de saúde do sistema
Eventos privilegiados de endpoint Para o esquema privilegiado de mensagem de ponto final consulte o mapeamento do CEF para eventos privilegiados de ponto final.

PrivilegiadoEndpointAccessed
SupportSessionTokenRequested
SupportSessionDevelopmentTokenRequested
SupportSessionUnlocked
SupportSessionFailedToUnlock
PrivilegedEndpointClosed
NewCloudAdminUser
RemoveCloudAdminUser
SetCloudAdminUserPassword
GetCloudAdminPasswordRecoveryToken
ResetCloudAdminPassword
PrivilegedEndpointSessionTimedOut
No
Eventos de Endpoint de Recuperação Para o esquema de mensagem de ponto final de recuperação consulte o mapeamento do CEF para eventos de ponto final de recuperação.
RecoveryEndpointAccessed
RecoverySessionTokenRequested
RecoverySessionDevelopmentTokenRequested
RecoverySessionUnlocked
RecoverySessionFailedToUnlock
Recovand RecoveryEndpointClosed
No
Eventos Segurança do Windows
Para o Windows esquema de mensagens de evento, consulte o mapeamento do CEF para eventos Windows.
Sim (Para obter eventos de informação) Escreva:
- Informação
- Aviso
- Erro
- Crítica
Eventos ARM Propriedades de mensagens:

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
AzsEventCategoria

No
Cada recurso ARM registado pode levantar um evento.
Eventos BCDR Esquema de mensagem:

AuditingManualBackup {
}
AuditoriaConfig
{
Intervalo
Retenção
IsSchedulerEnabled
BackupPath
}
AuditoriaPruneBackupStore {
Loja IsInternal
}
No Estes eventos rastreiam as operações de administração de infra-backup feitas manualmente pelo cliente, inclui a cópia de segurança do gatilho, alterar a configuração de backup e os dados de backup da ameixa.
Infra Falha criação e eventos de encerramento Esquema de mensagem:

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

InfrastructureFaultClose {
AzsFaultId,
AzsFaultTypeName,
AzsComponentType,
AzsComponentName,
AzsFaultHash,
AzsLastUpdatedTimeUtc,
AzsSource
}
No Falhas desencadeiam fluxos de trabalho que tentam remediar erros que podem levar a alertas. Se uma falha não tiver reparação, conduz diretamente a um Alerta.
Criação de falhas de serviço e eventos de encerramento Esquema de mensagem:

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

ServiceFaultClose {
AzsFaultId,
AzsFaultTypeName,
AzsSubscriptionId,
AzsResourceGroup,
AzsServiceName,
AzsResourceId
AzsFaultHash,
AzsLastUpdatedTimeUtc,
AzsSource
}
No Falhas desencadeiam fluxos de trabalho que tentam remediar erros que podem levar a alertas.
Se uma falha não tiver reparação, conduz diretamente a um Alerta.
Eventos PEP WAC Esquema de mensagem:

Campos prefixos
* ID de assinatura: Microsoft-AzureStack-PrivilegedEndpoint: < PEP Event ID>
* Nome: < Nome da tarefa PEP>
* Severidade: mapeado a partir do nível PEP (detalhes ver tabela PEP Severity abaixo)
* Quem: conta usada para ligar ao PEP
* Qual ENDEREÇO: Endereço IP do servidor ERCS que hospeda o PEP

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

Próximos passos

Política de manutenção