次の方法で共有


Syslog 転送を使用して Azure Stack Hub と監視ソリューションを統合する

この記事では、Syslog を使用して、Azure Stack Hub インフラストラクチャと、データセンターに既にデプロイされている外部セキュリティ ソリューションを統合する方法について説明します。 たとえば、セキュリティ情報イベント管理 (SIEM) システムです。 Syslog チャネルは、Azure Stack Hub インフラストラクチャのすべてのコンポーネントの監査、アラート、セキュリティ ログを公開します。 セキュリティ監視ソリューションと統合するため、および保存して保持できるようすべての監査、アラート、セキュリティ ログを取得するため、Syslog 転送を使用します。

1809 更新プログラム以降、Azure Stack Hub には統合された syslog クライアントがあり、構成されると、共通イベント形式 (CEF) のペイロードを含む syslog メッセージを出力します。

次の図は、Azure Stack Hub と外部の SIEM との統合について説明しています。 考慮する必要がある統合のパターンは 2 つあります。最初の 1 つ (青色のもの) は、インフラストラクチャの仮想マシンと HYPER-V ノードを含む Azure Stack Hub インフラストラクチャです。 すべての監査、セキュリティ ログ、およびそれらのコンポーネントからのアラートは、一元的に収集されて、CEF ペイロードを持つ Syslog を介して公開されます。 この統合パターンについては、この記事で説明します。

2 つ目の統合パターンはオレンジ色で示され、ベースボード管理コントローラー (BMC)、ハードウェア ライフサイクル ホスト (HLH)、ハードウェア パートナーの監視および管理ソフトウェアを実行する仮想マシンと仮想アプライアンス、およびトップ オブ ラック (TOR) スイッチを対象としています。 これらのコンポーネントはハードウェア パートナー固有のものであるため、それらを外部 SIEM に統合する方法に関するドキュメントについては、ハードウェア パートナーにお問い合わせください。

Syslog 転送の図

syslog 転送を構成する

Azure Stack Hub の Syslog クライアントでは、次の構成をサポートしています。

  1. 相互認証 (クライアントとサーバー) と TLS 1.2 暗号化を使用した TCP 経由の Syslog: この構成では、Syslog サーバーと Syslog クライアントの両方が証明書を介して相互に ID を確認できます。 メッセージは、TLS 1.2 暗号化チャネル経由で送信されます。
  2. サーバー認証と TLS 1.2 暗号化を使用した TCP 経由の Syslog: この構成では、syslog クライアントは証明書を使用して syslog サーバーの ID を確認できます。 メッセージは、TLS 1.2 暗号化チャネル経由で送信されます。
  3. 暗号化なしの TCP 経由の Syslog: この構成では、syslog クライアントと syslog サーバーの ID は検証されません。 メッセージは TCP 経由でクリア テキストで送信されます。
  4. 暗号化なしの UDP 経由の Syslog: この構成では、syslog クライアントと syslog サーバーの ID は検証されません。 メッセージは UDP 経由でクリア テキストで送信されます。

Von Bedeutung

中間者攻撃やメッセージの傍受から保護するために、Microsoft では、運用環境で認証と暗号化 (構成 #1 または最小では #2) を使用して TCP を使用することを強くお勧めします。

Syslog 転送を構成するためのコマンドレット

Syslog 転送を構成するには、特権エンドポイント (PEP) へのアクセスが必要です。 syslog 転送を構成するために、PEP に次の 2 つの PowerShell コマンドレットが追加されました。

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

コマンドレットのパラメーター

Set-SyslogServer コマンドレットのパラメーター:

パラメーター 説明 タイプ 必須
ServerName Syslog サーバーの FQDN または IP アドレス。 イエス
ServerPort Syslog サーバーがリッスンしているポート番号。 UInt16 イエス
NoEncryption クライアントに Syslog メッセージを強制的にクリア テキストで送信させます。 フラグ いいえ
SkipCertificateCheck 初期 TLS ハンドシェイク時に Syslog サーバーによって提供された証明書の検証をスキップします。 フラグ いいえ
SkipCNCheck 初期 TLS ハンドシェイク中に Syslog サーバーによって提供される証明書の 共通名 値の検証をスキップします。 フラグ いいえ
UseUDP トランスポート プロトコルとして UDP を使用して、Syslog を使用します。 フラグ いいえ
Remove クライアントからサーバーの構成を削除し、Syslog 転送を停止します。 フラグ いいえ

Set-SyslogClient コマンドレットのパラメーター:

パラメーター 説明 タイプ
pfxBinary Byte[]にパイプされた .pfx ファイルの内容。クライアントが syslog サーバーに対して認証するための ID として使用する証明書を含みます。 Byte[]
CertPassword pfx ファイルに関連付けられている秘密キーをインポートするためのパスワード。 セキュアストリング
RemoveCertificate クライアントから証明書を削除します。 フラグ
OutputSeverity 出力ログのレベル。 値は [既定値] または [詳細] です。 既定値 には、重大度レベル (警告、重大、またはエラー) が含まれます。 詳細には、すべての重大度レベル (詳細、情報、警告、クリティカル、またはエラー) が含まれています。

TCP、相互認証、TLS 1.2 暗号化を使用して syslog 転送を構成する

この構成では、Azure Stack Hub の Syslog クライアントは、TLS 1.2 暗号化を使用して TCP 経由で Syslog サーバーにメッセージを転送します。 初期ハンドシェイク時には、有効で信頼された証明書がサーバーから提供されていることが、クライアントによって確認されます。 また、クライアントでは、ID の証明としてサーバーに証明書も提供されます。 この構成は、クライアントとサーバーの ID がどちらも完全に検証され、メッセージが暗号化されたチャネルで送信されるため、最も安全です。

Von Bedeutung

運用環境では、この構成を使用することを強くお勧めします。

TCP、相互認証、TLS 1.2 暗号化を使用した Syslog 転送を構成するには、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>

クライアント証明書には、Azure Stack Hub のデプロイ中に提供されたものと同じルートが必要です。 これには秘密キーを含める必要もあります。

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

TCP、サーバー認証、TLS 1.2 暗号化を使用して Syslog 転送を構成する

この構成では、Azure Stack Hub の Syslog クライアントは、TLS 1.2 暗号化を使用して TCP 経由で Syslog サーバーにメッセージを転送します。 初期ハンドシェイク時には、有効で信頼された証明書がサーバーから提供されていることも、クライアントによって確認されます。 この構成により、信頼されていない宛先にクライアントからメッセージを送信することができなくなります。 認証と暗号化を使用する TCP は既定の構成であり、Microsoft が運用環境にお勧めする最小限のセキュリティのレベルです。

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

自己署名証明書または信頼されていない証明書を使用して Syslog サーバーと Azure Stack Hub クライアントの統合をテストする場合は、次のフラグを使用して、最初のハンドシェイク中にクライアントによって実行されるサーバー検証をスキップできます。

 # 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

Von Bedeutung

本番環境での -SkipCertificateCheck フラグの使用はお勧めできません。

TCP を使用して暗号化なしで syslog 転送を構成する

この構成では、Azure Stack Hub の syslog クライアントは、暗号化なしでメッセージを TCP 経由で syslog サーバーに転送します。 クライアントはサーバーの ID を検証せず、検証のためにサーバーに独自の ID も提供しません。

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

Von Bedeutung

運用環境では、この構成を使用しないことをお勧めします。

UDP を使用して暗号化なしで Syslog 転送を構成する

この構成では、Azure Stack Hub の syslog クライアントは、暗号化なしで UDP 経由で Syslog サーバーにメッセージを転送します。 クライアントはサーバーの ID を検証せず、検証のためにサーバーに独自の ID も提供しません。

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

暗号化のない UDP は構成するのが最も簡単ですが、中間者攻撃やメッセージの傍受に対する保護は提供されません。

Von Bedeutung

Microsoftは、運用環境でこの構成を使用することを推奨しません。

syslog 転送構成を削除する

クライアントから syslog サーバー構成を削除し、syslog 転送を停止するには、次のコマンドレットを実行します。

Set-SyslogServer -Remove

クライアントからクライアント証明書を削除するには、次のコマンドレットを実行します。

Set-SyslogClient -RemoveCertificate

Syslog のセットアップを確認する

syslog クライアントを syslog サーバーに正常に接続した場合は、すぐにイベントの受信を開始する必要があります。 イベントが表示されない場合は、次のコマンドレットを実行して Syslog クライアントの構成を確認します。

syslog クライアントでサーバー構成を確認するには:

Get-SyslogServer

syslog クライアントで証明書のセットアップを確認するには:

Get-SyslogClient

Syslog メッセージ スキーマ

Azure Stack Hub インフラストラクチャの syslog 転送は、共通イベント形式 (CEF) で書式設定されたメッセージを送信します。 各 syslog メッセージは、スキーマ <Time> <Host> <CEF payload>に基づいて構造化されます。

CEF ペイロードは次の構造に基づいていますが、各フィールドのマッピングは、メッセージの種類 (Windows イベント、作成されたアラート、閉じたアラート) によって異なります。

# 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

特権エンドポイント イベントの CEF マッピング

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

特権エンドポイント (PEP) のイベントの表:

出来事 PEP イベント ID PEP タスク名 深刻さ
PrivilegedEndpointAccessed 1000 PrivilegedEndpointAccessedEvent 5
サポートセッショントークンの要求 1001 SupportSessionTokenRequestedEvent 5
SupportSessionDevelopmentTokenRequested 1002 SupportSessionDevelopmentTokenRequestedEvent 5
SupportSessionUnlocked 1003 SupportSessionUnlockedEvent 10
サポートセッションのロック解除に失敗しました 1004 SupportSessionFailedToUnlockEvent 10
特権エンドポイントが閉じられました 1005 PrivilegedEndpointClosedEvent 5
NewCloudAdminUser 1006 NewCloudAdminUserEvent 10
RemoveCloudAdminUser 1007 クラウド管理者ユーザーイベントの削除 10
SetCloudAdminUserPassword 1008 クラウド管理者ユーザーパスワード設定イベント 5
クラウド管理者のパスワード回復トークンを取得 1009 GetCloudAdminPasswordRecoveryTokenEvent (クラウド管理者パスワード回復トークン取得イベント) 10
ResetCloudAdminPassword 1010 クラウド管理者パスワードリセットイベント 10
PrivilegedEndpointSessionTimedOut 1017 PrivilegedEndpointSessionTimedOutEvent 5

PEP 重大度テーブル:

深刻さ レベル 数値
0 未定義 値: 0。 すべてのレベルのログを示します
10 危うい 値: 1。 重大なアラートのログを示します
8 エラー 値: 2。 エラーのログを示します
5 Warnung 値: 3。 警告のログを示します
2 情報 値: 4。 情報メッセージのログを示します
0 詳細 値: 5。 すべてのレベルのログを示します

復旧エンドポイント イベントの CEF マッピング

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

復旧エンドポイントのイベントの表:

出来事 REP イベント ID REP タスク名 深刻さ
RecoveryEndpointAccessed 1011 RecoveryEndpointAccessedEvent 5
回復セッショントークン要求 1012 RecoverySessionTokenRequestedEvent 5
リカバリーセッション開発トークン要求 1013 リカバリーセッション開発トークンリクエストイベント 5
RecoverySessionUnlocked 1014 RecoverySessionUnlockedEvent 10
RecoverySessionFailedToUnlock 1015 RecoverySessionFailedToUnlockEvent 10
リカバリーエンドポイントが閉じられました 1016 リカバリーエンドポイントクローズドイベント 5

REP 重大度テーブル:

深刻さ レベル 数値
0 未定義 値: 0。 すべてのレベルのログを示します
10 危うい 値: 1。 重大なアラートのログを示します
8 エラー 値: 2。 エラーのログを示します
5 Warnung 値: 3。 警告のログを示します
2 情報 値: 4。 情報メッセージのログを示します
0 詳細 値: 5。 すべてのレベルのログを示します

Windows イベントの CEF マッピング

* 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)

Windows イベントの重大度テーブル:

CEF 重大度値 Windows イベント レベル 数値
0 未定義 値: 0。 すべてのレベルのログを示します
10 危うい 値: 1。 重大なアラートのログを示します
8 エラー 値: 2。 エラーのログを示します
5 Warnung 値: 3。 警告のログを示します
2 情報 値: 4。 情報メッセージのログを示します
0 詳細 値: 5。 すべてのレベルのログを示します

Azure Stack Hub の Windows イベントのカスタム拡張テーブル:

カスタム拡張機能名 Windows イベントの例
MasChannel システム
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
MASイベント説明 ユーザーのグループ ポリシー設定は正しく処理されました。 前回グループ ポリシーが正しく処理されてからの変更は検出されませんでした。
MasEventID 1501
MasEventRecordID 26637
MasExecutionProcessID 29380
MasExecutionThreadID 25,480
MasKeywords 0x8000000000000000
MasKeywordName 監査成功
MasLevel 4
MasOpcode 1
MasOpcodeName info
MasProviderEventSourceName
MasProviderGuid AEA1B4FA-97D1-45F2-A64C-4D69FFFD92C9
MasProviderName Microsoft-Windows-GroupPolicy
MasSecurityUserId <Windows SID>
MasTask 0
MasTaskCategory プロセス作成
MasUserData KB4093112!!5112!!Installed!!0x0!!WindowsUpdateAgent Xpath: /Event/UserData/*
MasVersion 0

作成されたアラートの CEF マッピング

* 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)

アラートの重大度テーブル:

深刻さ レベル
0 未定義
10 危うい
5 Warnung

Azure Stack Hub で作成されたアラートのカスタム拡張テーブル:

カスタム拡張機能名
MASイベント説明 説明: <TestDomain<TestUser> のユーザー アカウントが作成されました>。 これは潜在的なセキュリティ リスクです。 -- 修復: サポートにお問い合わせください。 この問題を解決するには、お客様の支援が必要です。 サポートなしでこの問題を解決しないでください。 サポート要求を開く前に、 このガイダンスを使用してログ ファイル収集プロセスを開始します。

解決されたアラートの CEF マッピング

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

次の例は、CEF ペイロードを含む syslog メッセージを示しています。

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

Syslog イベントの種類

この表には、syslog チャネル経由で送信されるすべてのイベントの種類、イベント、メッセージ スキーマ、またはプロパティが一覧表示されます。 セットアップ詳細 スイッチは、SIEM 統合に Windows の情報通知イベントが必要な場合にだけ使用することを推奨します。

イベントの種類 イベントまたはメッセージ スキーマ verbose 設定が必要 イベントの説明 (省略可能)
Azure Stack Hub のアラート アラート メッセージ スキーマについては、 閉じられたアラートの CEF マッピングを参照してください。

別のドキュメントで共有されているすべてのアラートの一覧。
いいえ システム正常性アラート
特権エンドポイント イベント 特権エンドポイント メッセージ スキーマについては、特権 エンドポイント イベントの CEF マッピングを参照してください。

特権エンドポイントにアクセスしました
サポートセッショントークンが要求されました
サポートセッション開発トークンの要求
サポートセッションがアンロックされました
SupportSessionFailedToUnlock
PrivilegedEndpointClosed
NewCloudAdminUser
RemoveCloudAdminUser
クラウド管理者ユーザーパスワードを設定する
クラウド管理者パスワード回復トークンを取得する
ResetCloudAdminPassword
PrivilegedEndpointSessionTimedOut
いいえ
復旧エンドポイント イベント 復旧エンドポイント メッセージ スキーマについては、復旧 エンドポイント イベントの CEF マッピングを参照してください。
リカバリーエンドポイントにアクセスしました
回復セッショントークンを要求
リカバリーセッション開発トークン要求済み
RecoverySessionUnlocked
リカバリーセッションは解除できませんでした
Recovand リカバリーエンドポイントが閉じました
いいえ
Windows セキュリティ イベント
Windows イベント メッセージ スキーマについては、 Windows イベントの CEF マッピングを参照してください。
はい (情報イベントを取得するには) 種類:
-情報
-警告
-エラー
-危うい
ARM イベント メッセージのプロパティ:

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

いいえ
登録された各 ARM リソースでイベントを発生させることができます。
BCDR イベント メッセージ スキーマ:

AuditingManualBackup {
}
AuditingConfig
{
Interval
リテンション
IsSchedulerEnabled
BackupPath
}
AuditingPruneBackupStore {
IsInternalStore
}
いいえ これらのイベントは、お客様が手動で実行したインフラストラクチャ バックアップ管理操作を追跡します。これには、トリガー バックアップ、バックアップ構成の変更、バックアップ データの排除が含まれます。
インフラ障害によるイベントの作成と終了 メッセージ スキーマ:

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

InfrastructureFaultClose {
AzsFaultId,
AzsFaultTypeName,
AzsComponentType,
AzsComponentName,
AzsFaultHash,
AzsLastUpdatedTimeUtc,
AzsSource
}
いいえ 障害は、アラートにつながる可能性のあるエラーを修復しようとするワークフローをトリガーします。 障害に修復がない場合、アラートが直接発生します。
サービス障害の発生と終了に関するイベント メッセージ スキーマ:

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

ServiceFaultClose {
AzsFaultId,
AzsFaultTypeName,
AzsSubscriptionId,
AzsResourceGroup,
AzsServiceName,
AzsResourceId
AzsFaultHash,
AzsLastUpdatedTimeUtc,
AzsSource
}
いいえ 障害は、アラートにつながる可能性のあるエラーを修復しようとするワークフローをトリガーします。
障害に修復がない場合、アラートが直接発生します。
PEP WAC イベント メッセージ スキーマ:

プレフィックス フィールド
* Signature ID: Microsoft-AzureStack-PrivilegedEndpoint: <PEP イベント ID>
* 名前: <PEP タスク名>
* 重大度: PEP レベルからマップされます (詳細については、以下の PEP 重大度表を参照してください)
* ユーザー: PEP への接続に使用されたアカウント
* WhichIP: PEP をホストしている ERCS サーバーの IP アドレス

WACサービス開始失敗イベント
WACConnectedUserNotRetrievedEvent
WACEnableExceptionEvent
WACUserAddedEvent
WACAddUserToLocalGroupFailedEvent
WACIsUserInLocalGroupFailedEvent
WACServiceStartTimeoutEvent
WACServiceStartInvalidOperationEvent
WACGetSidFromUserFailedEvent
WACDisableFirewallFailedEvent
WACCreateLocalGroupIfNotExistFailedEvent
WACEnableFlagIsTrueEvent
WACEnableFlagIsFalseEvent
WACサービス開始イベント
いいえ

次のステップ

Azure Stack Hub サービス ポリシー