Azure Firewall ログを収集する
このドキュメントでは、Azure Storage アカウントを使用して Azure Firewall ログを Google Security Operations にエクスポートする方法について説明します。パーサーはまず、入力を JSON として処理し、Records フィールドからデータを抽出します。Record フィールドが空の場合、パーサーは一連の Grok パターンと条件ステートメントを使用して、メッセージから関連するフィールドを抽出し、Azure Firewall ログのさまざまな形式とバリエーションを処理します。
始める前に
次の前提条件を満たしていることを確認します。
- Google SecOps インスタンス
- アクティブな Azure テナント
- Azure への特権アクセス
Azure Storage アカウントを構成する
- Azure コンソールで、[ストレージ アカウント] を検索します。
- [+ 作成] をクリックします。
- 次の入力パラメータの値を指定します。
- Subscription: サブスクリプションを選択します。
- リソース グループ: リソース グループを選択します。
- Region: リージョンを選択します。
- パフォーマンス: パフォーマンスを選択します(標準が推奨)。
- 冗長性: 冗長性(GRS または LRS を推奨)を選択します。
- ストレージ アカウント名: 新しいストレージ アカウントの名前を入力します。
- [Review + create] をクリックします。
- アカウントの概要を確認して、[作成] をクリックします。
- [ストレージ アカウントの概要] ページで、[セキュリティとネットワーキング] の [アクセスキー] サブメニューを選択します。
- [key1] または [key2] の横にある [Show] をクリックします。
- [クリップボードにコピー] をクリックして、キーをコピーします。
- キーは後で使用できるように安全な場所に保存します。
- [ストレージ アカウントの概要] ページで、[設定] の [エンドポイント] サブメニューを選択します。
- [クリップボードにコピー] をクリックして、Blob サービス エンドポイント URL(例:
https://<storageaccountname>.blob.core.windows.net
)をコピーします。 - エンドポイント URL は、後で使用できるように安全な場所に保存します。
Azure ファイアウォール ログのログ エクスポートを構成する方法
- 特権アカウントを使用して Azure Portal にログインします。
- [ファイアウォール] に移動し、必要なファイアウォールを選択します。
- [モニタリング> 診断サービス] を選択します。
- [+ 診断設定を追加] をクリックします。
- 診断設定のわかりやすい名前を入力します。
- [allLogs] を選択します。
- 移行先として [ストレージ アカウントにアーカイブする] チェックボックスをオンにします。
- サブスクリプションとストレージ アカウントを指定します。
- [保存] をクリックします。
フィードを設定する
Google SecOps プラットフォームでフィードを設定するには、次の 2 つのエントリ ポイントがあります。
- [SIEM 設定] > [フィード]
- [Content Hub] > [Content Packs]
[SIEM 設定] > [フィード] でフィードを設定する
このプロダクト ファミリー内で異なるログタイプに対して複数のフィードを構成するには、プロダクトごとにフィードを構成するをご覧ください。
1 つのフィードを設定する手順は次のとおりです。
- [SIEM 設定] > [フィード] に移動します。
- [Add New Feed] をクリックします。
- 次のページで、[単一フィードを設定] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例: Azure Firewall Logs)。
- [ソースタイプ] で [Microsoft Azure Blob Storage] を選択します。
- [ログタイプ] として [Azure Firewall] を選択します。
- [次へ] をクリックします。
次の入力パラメータの値を指定します。
- Azure URI: BLOB エンドポイント URL。
ENDPOINT_URL/BLOB_NAME
- 次のように置き換えます。
ENDPOINT_URL
: BLOB エンドポイント URL(https://<storageaccountname>.blob.core.windows.net
)BLOB_NAME
: blob の名前(<logname>-logs
など)
- 次のように置き換えます。
- URI is a: ログストリームの構成([単一ファイル] | [ディレクトリ] | [サブディレクトリを含むディレクトリ])に応じて URI タイプを選択します。
Source deletion options: 取り込みの設定に応じて削除オプションを選択します。
共有キー: Azure Blob Storage のアクセスキー。
アセットの名前空間: アセットの名前空間。
Ingestion labels: このフィードのイベントに適用されるラベル。
- Azure URI: BLOB エンドポイント URL。
[次へ] をクリックします。
[Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。
コンテンツ ハブからフィードを設定する
次のフィールドに値を指定します。
- Azure URI: BLOB エンドポイント URL。
ENDPOINT_URL/BLOB_NAME
- 次のように置き換えます。
ENDPOINT_URL
: BLOB エンドポイント URL(https://<storageaccountname>.blob.core.windows.net
)BLOB_NAME
: blob の名前(insights-logs-<logname>
など)
- 次のように置き換えます。
- URI is a: ログストリームの構成([単一ファイル] | [ディレクトリ] | [サブディレクトリを含むディレクトリ])に応じて URI タイプを選択します。
- Source deletion options: 取り込みの設定に応じて削除オプションを選択します。
- 共有キー: Azure Blob Storage のアクセスキー。
詳細オプション
- フィード名: フィードを識別する事前入力された値。
- ソースタイプ: Google SecOps にログを収集するために使用される方法。
- Asset Namespace: フィードに関連付けられた名前空間。
- Ingestion Labels: このフィードのすべてのイベントに適用されるラベル。
UDM マッピング
ログフィールド | UDM マッピング | ロジック |
---|---|---|
@timestamp | metadata.event_timestamp | 未加工ログフィールド @timestamp を UDM 形式に変換します。 |
category | security_result.rule_type | 未加工ログフィールド category を UDM にマッピングします。 |
operationName | metadata.product_event_type | 未加工ログフィールド operationName を UDM にマッピングします。 |
properties.Action | security_result.action | 未加工ログフィールド properties.Action を UDM にマッピングし、ALLOW を ALLOW に、DENY を BLOCK に、その他の値を UNKNOWN_ACTION に変換します。 |
properties.DestinationIp | target.ip | 未加工ログフィールド properties.DestinationIp を UDM にマッピングします。 |
properties.DestinationPort | target.port | 未加工ログフィールド properties.DestinationPort を UDM にマッピングします。 |
properties.DnssecOkBit | additional.fields.value.bool_value | 未加工ログフィールド properties.DnssecOkBit を UDM にマッピングします。 |
properties.EDNS0BufferSize | additional.fields.value.number_value | 未加工ログフィールド properties.EDNS0BufferSize を UDM にマッピングします。 |
properties.ErrorMessage | additional.fields.value.string_value | 未加工ログフィールド properties.ErrorMessage を UDM にマッピングします。 |
properties.ErrorNumber | additional.fields.value.number_value | 未加工ログフィールド properties.ErrorNumber を UDM にマッピングします。 |
properties.Policy | security_result.detection_fields.value | 未加工ログフィールド properties.Policy を UDM にマッピングします。 |
properties.Protocol | network.ip_protocol | 未加工ログフィールド properties.Protocol が HTTPS または HTTP でない場合、UDM にマッピングします。 |
properties.Protocol | network.application_protocol | 未加工ログフィールド properties.Protocol が HTTPS または HTTP の場合、UDM にマッピングします。 |
properties.QueryClass | network.dns.questions.class | DNS クエリクラスをマッピングするためのルックアップ テーブルを使用して、未加工ログ フィールド properties.QueryClass を UDM にマッピングします。 |
properties.QueryId | network.dns.id | 未加工ログフィールド properties.QueryId を UDM にマッピングします。 |
properties.QueryName | network.dns.questions.name | 未加工ログフィールド properties.QueryName を UDM にマッピングします。 |
properties.QueryType | network.dns.questions.type | DNS レコードタイプをマッピングするためのルックアップ テーブルを使用して、未加工ログ フィールド properties.QueryType を UDM にマッピングします。 |
properties.RequestSize | network.sent_bytes | 未加工ログフィールド properties.RequestSize を UDM にマッピングします。 |
properties.ResponseCode | network.dns.response_code | DNS レスポンス コードのマッピング用のルックアップ テーブルを使用して、未加工ログフィールド properties.ResponseCode を UDM にマッピングします。 |
properties.ResponseFlags | additional.fields.value.string_value | 未加工ログフィールド properties.ResponseFlags を UDM にマッピングします。 |
properties.ResponseSize | network.received_bytes | 未加工ログフィールド properties.ResponseSize を UDM にマッピングします。 |
properties.Rule | security_result.rule_name | 未加工ログフィールド properties.Rule を UDM にマッピングします。 |
properties.RuleCollection | security_result.detection_fields.value | 未加工ログフィールド properties.RuleCollection を UDM にマッピングします。 |
properties.RuleCollectionGroup | security_result.detection_fields.value | 未加工ログフィールド properties.RuleCollectionGroup を UDM にマッピングします。 |
properties.SourceIp | principal.ip | 未加工ログフィールド properties.SourceIp を UDM にマッピングします。 |
properties.SourcePort | principal.port | 未加工ログフィールド properties.SourcePort を UDM にマッピングします。 |
properties.msg | security_result.description | 未加工ログフィールド properties.msg から他のフィールドを抽出した後、UDM にマッピングします。 |
records.category | security_result.rule_type | 未加工ログフィールド records.category を UDM にマッピングします。 |
records.operationName | metadata.product_event_type | 未加工ログフィールド records.operationName を UDM にマッピングします。 |
records.properties.msg | このフィールドは、Grok パターンを使用して複数のフィールドを抽出するために使用され、UDM に直接マッピングされません。 | |
records.resourceId | metadata.product_log_id | 未加工ログフィールド records.resourceId を UDM にマッピングします。 |
resourceId | metadata.product_log_id | 未加工ログフィールド resourceId を UDM にマッピングします。 |
時間 | metadata.event_timestamp | 未加工ログフィールド time を UDM 形式に変換します。 |
metadata.vendor_name | このフィールドには、パーサーによって値 Microsoft Inc. が設定されます。 |
|
metadata.product_name | このフィールドには、パーサーによって値 Azure Firewall Application Rule が設定されます。 |
|
metadata.log_type | このフィールドには、パーサーによって値 AZURE_FIREWALL が設定されます。 |
|
additional.fields.key | このフィールドには、追加フィールドのキーがパーサーによって入力されます。 | |
security_result.detection_fields.key | このフィールドには、検出フィールドのキーがパーサーによって入力されます。 | |
network.application_protocol | このフィールドには、DNS ログの DNS という値がパーサーによって入力されます。 |
|
metadata.event_type | このフィールドは、ログメッセージに基づいてパーサーによって入力されます。NETWORK_CONNECTION 、GENERIC_EVENT 、STATUS_UPDATE 、NETWORK_DNS のいずれかになります。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。