Compartilhar via


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

Este artigo descreve como usar o syslog para integrar a infraestrutura do Azure Stack Hub com soluções de segurança externa já implantadas em seu datacenter. Um 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 do Azure Stack Hub. Use o encaminhamento de syslog para integração com soluções de monitoramento de segurança e para recuperar todos os logs de segurança, as auditorias e os alertas 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 de syslog com o conteúdo no CEF (Common Event Format).

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 de azul) é a infraestrutura do Azure Stack Hub que abrange as máquinas virtuais de infraestrutura e os nós Hyper-V. Todos os logs de segurança, auditorias e alertas desses componentes são coletados e expostos centralmente por meio do syslog com o payload no CEF. Esse padrão de integração é descrito neste artigo.

O segundo padrão de integração é aquele descrito em laranja e abrange os BMCs (controladores de gerenciamento de placa base), o HLH (host do ciclo de vida de hardware), as máquinas virtuais e os dispositivos virtuais que executem o software de gerenciamento e monitoramento do parceiro de hardware e os comutadores TOR (topo do rack). Como esses componentes são específicos do parceiro de hardware, entre em contato com seu parceiro de hardware para obter documentação sobre como integrá-los a um SIEM externo.

diagrama de encaminhamento do Syslog

Configurar o encaminhamento do syslog

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

  1. Syslog via TCP, com autenticação mútua (cliente e servidor) e criptografia TLS 1.2: nessa configuração, o servidor syslog e o cliente do 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 via TCP com autenticação de servidor e criptografia TLS 1.2: nessa configuração, o cliente do 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 via TCP, sem criptografia: 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 por TCP.
  4. Syslog sobre UDP, sem criptografia: 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 por UDP.

Importante

Para proteger contra ataques man-in-the-middle e escuta de mensagens, a Microsoft recomenda fortemente que você use TCP usando autenticação e criptografia (configuração nº 1 ou, no mínimo, #2) para ambientes de produção.

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 cmdlet

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á escutando. UInt16 Sim
NoEncryption Force o cliente a enviar mensagens de syslog em texto claro. Bandeira Não
SkipCertificateCheck Ignore a validação do certificado fornecido pelo servidor syslog durante o handshake TLS inicial. Bandeira Não
SkipCNCheck Ignore a validação do valor Nome Comum do certificado fornecido pelo servidor de syslog durante o handshake TLS inicial. Bandeira Não
UseUDP Use o syslog com UDP como protocolo de transporte. Bandeira Não
Remove Remova a configuração do servidor do cliente e pare o encaminhamento do syslog. Bandeira Não

Parâmetros para o cmdlet Set-SyslogClient:

Parâmetro Descrição Tipo
pfxBinary O conteúdo do arquivo .pfx, canalizado para um Byte[], que contém o certificado a ser usado pelo cliente como identidade para fazer a autenticação no servidor do syslog. Byte[]
CertPassword Senha para importar a chave privada associada ao arquivo pfx. SecureString
RemoveCertificate Remova o certificado do cliente. Bandeira
OutputSeverity Nível de registro de log de saída. Os valores são Padrão ou Detalhado. 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. String

Configurar 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 que você use 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 esses 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>

# 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 }

Configurar 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 confiáveis. 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>

Se você quiser testar a integração do servidor syslog com o cliente do Azure Stack Hub usando um certificado autoassinado ou não confiável, poderá 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>
 -SkipCNCheck

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

Importante

A Microsoft recomenda não usar o sinalizador de -SkipCertificateCheck para ambientes de produção.

Configurar o encaminhamento de syslog com TCP e nenhuma criptografia

Nessa configuração, o cliente do 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> -NoEncryption

Importante

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

Configurando o encaminhamento de syslog com UDP e nenhuma criptografia

Nessa configuração, o cliente do 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> -UseUDP

Embora o UDP sem criptografia seja o mais fácil de configurar, ele não fornece 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.

Remover a configuração de encaminhamento do syslog

Para remover a configuração do servidor syslog do cliente e interromper o encaminhamento do syslog, execute o seguinte cmdlet:

Set-SyslogServer -Remove

Para remover o certificado do cliente, execute o seguinte cmdlet:

Set-SyslogClient -RemoveCertificate

Verificar a configuração do syslog

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

Para verificar a configuração do servidor no cliente do syslog:

Get-SyslogServer

Para verificar a configuração do certificado no cliente do syslog:

Get-SyslogClient

Esquema de mensagens do Syslog

O encaminhamento de syslog da infraestrutura do Azure Stack Hub envia mensagens formatadas em Formato Comum de Evento (CEF). Cada mensagem de syslog é estruturada com base no esquema <Time> <Host> <CEF payload>.

O conteúdo do CEF baseia-se na estrutura a seguir, mas o mapeamento para cada campo varia dependendo do 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 ponto de extremidade privilegiado

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 (PEP):

Acontecimento 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 de um alerta crítico
8 Erro Valor: 2. Indica logs de um erro
5 Aviso Valor: 3. Indica logs de um aviso
2 Informação Valor: 4. Indica 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 do ponto de extremidade de recuperação:

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

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

Mapeamento de 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 severidade para eventos do Windows:

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

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

Nome da extensão personalizada Exemplo de evento do Windows
MasChannel Sistema
MasComputador 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 configurações de Política de Grupo para o usuário foram processadas com êxito. Não foram detectadas alterações desde o último processamento bem-sucedido da Política de Grupo.
MasEventID 1501
MasEventRecordID 26637
MasExecutionProcessID 29380
MasExecutionThreadID 25480
MasKeywords 0x8000000000000000
MasKeywordName Sucesso na Auditoria
MasLevel 4
MasOpcode 1
MasOpcodeName informação
MasProviderEventSourceName
MasProviderGuid AEA1B4FA-97D1-45F2-A64C-4D69FFFD92C9
MasProviderName Microsoft-Windows-GroupPolicy
MasSecurityUserId <SID do Windows>
MasTask 0
MasTaskCategory Criação de processo
MasUserData KB4093112!!5112!!Installed!!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 gravidade de alertas:

Severidade Nível
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: Uma conta de usuário <TestUser> foi criada para <TestDomain>. É um risco potencial à segurança. -- CORREÇÃO: contate 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 a coleta de arquivos de log usando este guia.

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 conteúdo de 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 enviadas por meio do canal syslog. A opção configuração detalhada só deverá ser utilizada se os eventos informativos do Windows forem necessários para a integração com o SIEM.

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

Uma lista de todos os alertas que foram compartilhados em um documento separado.
Não Alertas de saúde do sistema
Eventos de ponto de extremidade privilegiado Para obter 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
ObterTokenDeRecuperaçãoDeSenhaDoAdministradorNaNuvem
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
Eventos de segurança do Windows
Para o esquema de mensagens de evento do Windows, consulte Mapeamento de CEF para eventos do Windows.
Sim (para obter eventos de informações) Tipo:
-Informação
-Aviso
-Erro
-Crítico
Eventos do 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 gerar um evento.
Eventos BCDR Esquema de mensagem:

AuditingManualBackup {
}
AuditingConfig
{
Intervalo
Retenção
IsSchedulerEnabled
BackupPath
}
AuditingPruneBackupStore {
IsInternalStore
}
Não Esses eventos rastreiam as operações do administrador de infraestrutura de backup feitas manualmente pelo cliente, incluem iniciar backup, alterar a configuração de backup e podar 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 As falhas disparam fluxos de trabalho que tentam corrigir erros que podem levar a alertas. Se uma falha não tiver correção, isso 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 As falhas disparam fluxos de trabalho que tentam corrigir erros que podem levar a alertas.
Se uma falha não tiver correção, isso levará diretamente a um alerta.
Eventos DE PEP WAC Esquema de mensagem:

Campos de prefixo
* ID da assinatura: Microsoft-AzureStack-PrivilegedEndpoint: <ID do evento PEP>
* Nome: <nome da tarefa PEP>
* Gravidade: mapeada do Nível de PEP (veja a tabela de gravidade PEP abaixo para mais detalhes)
* Quem: 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 do Azure Stack Hub