Azure APP Service ログを収集する

以下でサポートされています。

このドキュメントでは、Azure Storage アカウントを使用して Azure APP Service ログを Google Security Operations にエクスポートする方法について説明します。パーサーは、未加工の JSON 形式の Azure App Service ログを構造化された Unified Data Model(UDM)に変換します。未加工のログから関連するフィールドを抽出し、データのクリーニングと正規化を行い、抽出した情報を対応する UDM フィールドにマッピングします。最終的に、各ログエントリに対して UDM 準拠の JSON オブジェクトを出力します。

始める前に

次の前提条件を満たしていることを確認します。

  • Google SecOps インスタンス
  • アクティブな Azure テナント
  • Azure への特権アクセス

Azure Storage アカウントを構成する

  1. Azure コンソールで、[ストレージ アカウント] を検索します。
  2. [+ 作成] をクリックします。
  3. 次の入力パラメータの値を指定します。
    • Subscription: サブスクリプションを選択します。
    • リソース グループ: リソース グループを選択します。
    • Region: リージョンを選択します。
    • パフォーマンス: パフォーマンスを選択します(標準が推奨)。
    • 冗長性: 冗長性(GRS または LRS を推奨)を選択します。
    • ストレージ アカウント名: 新しいストレージ アカウントの名前を入力します。
  4. [Review + create] をクリックします。
  5. アカウントの概要を確認して、[作成] をクリックします。
  6. [ストレージ アカウントの概要] ページで、[セキュリティとネットワーキング] の [アクセスキー] サブメニューを選択します。
  7. [key1] または [key2] の横にある [Show] をクリックします。
  8. [クリップボードにコピー] をクリックして、キーをコピーします。
  9. キーは後で使用できるように安全な場所に保存します。
  10. [ストレージ アカウントの概要] ページで、[設定] の [エンドポイント] サブメニューを選択します。
  11. [クリップボードにコピー] をクリックして、Blob サービス エンドポイント URL(例: https://<storageaccountname>.blob.core.windows.net)をコピーします。
  12. エンドポイント URL は、後で使用できるように安全な場所に保存します。

Azure AD サインイン ログのログ エクスポートを構成する方法

  1. 特権アカウントを使用して Azure Portal にログインします。
  2. [App Services] に移動し、使用中の必要なアプリ サービスを選択します。
  3. [モニタリング> App Service ログ] を選択します。
  4. [Application Logging (blob)] を [オン] にします。
  5. [ウェブ サービス ロギング] で [ストレージ] を選択します。
  6. [サブスクリプション] と [ストレージ アカウント] を選択します。
  7. 要件に応じて、保持期間割り当てを定義します。
  8. [詳細なエラー メッセージ] を [オン] にします。
  9. [失敗したリクエストのトレース] をオンにします。
  10. [保存] をクリックします。

フィードを設定する

Google SecOps プラットフォームでフィードを設定するには、次の 2 つのエントリ ポイントがあります。

  • [SIEM 設定] > [フィード]
  • [Content Hub] > [Content Packs]

[SIEM 設定] > [フィード] でフィードを設定する

このプロダクト ファミリー内で異なるログタイプに対して複数のフィードを構成するには、プロダクトごとにフィードを構成するをご覧ください。

1 つのフィードを設定する手順は次のとおりです。

  1. [SIEM 設定] > [フィード] に移動します。
  2. [Add New Feed] をクリックします。
  3. 次のページで、[単一フィードを設定] をクリックします。
  4. [フィード名] フィールドに、フィードの名前を入力します(例: Azure APP Service Logs)。
  5. [ソースタイプ] で [Microsoft Azure Blob Storage] を選択します。
  6. [ログタイプ] として [Azure APP Service] を選択します。
  7. [次へ] をクリックします。
  8. 次の入力パラメータの値を指定します。

    • 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: このフィードのイベントに適用されるラベル。

  9. [次へ] をクリックします。

  10. [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 マッピング ロジック
AppRoleInstance read_only_udm.principal.resource.product_object_id 直接マッピング
AppRoleName read_only_udm.principal.resource.name 直接マッピング
AppVersion read_only_udm.principal.resource.attribute.labels.value 直接マッピング
カテゴリ read_only_udm.metadata.product_event_type 直接マッピング
CIp read_only_udm.target.asset.ip 直接マッピング
CIp read_only_udm.target.ip 直接マッピング
ClientCity read_only_udm.principal.location.city 直接マッピング
ClientCountryOrRegion read_only_udm.principal.location.country_or_region 直接マッピング
ClientIP read_only_udm.principal.asset.ip 直接マッピング
ClientIP read_only_udm.principal.ip 直接マッピング
ClientStateOrProvince read_only_udm.principal.location.state 直接マッピング
ClientType read_only_udm.additional.fields.value.string_value 直接マッピング
ComputerName read_only_udm.principal.asset.hostname 直接マッピング
ComputerName read_only_udm.principal.hostname 直接マッピング
Cookie read_only_udm.principal.resource.attribute.labels.value 直接マッピング
CsBytes read_only_udm.network.sent_bytes CsBytes から名前変更
CsHost read_only_udm.additional.fields.value.string_value 直接マッピング
CsMethod read_only_udm.network.http.method 直接マッピング
CsUriQuery read_only_udm.principal.resource.attribute.labels.value 直接マッピング
CsUriStem read_only_udm.additional.fields.value.string_value 直接マッピング
CsUriStem read_only_udm.target.url 直接マッピング
CsUsername read_only_udm.principal.user.user_display_name 直接マッピング
EventIpAddress read_only_udm.principal.asset.ip 直接マッピング
EventIpAddress read_only_udm.principal.ip 直接マッピング
EventPrimaryStampName read_only_udm.additional.fields.value.string_value 直接マッピング
EventStampName read_only_udm.additional.fields.value.string_value 直接マッピング
EventStampType read_only_udm.additional.fields.value.string_value 直接マッピング
ホスト read_only_udm.principal.asset.hostname 直接マッピング
ホスト read_only_udm.principal.hostname 直接マッピング
IKey read_only_udm.target.resource.attribute.labels.value 直接マッピング
インスタンス read_only_udm.additional.fields.value.string_value 直接マッピング
名前 read_only_udm.additional.fields.value.string_value 直接マッピング
プロトコル read_only_udm.additional.fields.value.string_value 直接マッピング
プロトコル read_only_udm.network.application_protocol プロトコルが HTTP/1.1 の場合、HTTP にマッピングされます
リファラー read_only_udm.network.http.referral_url 直接マッピング
ResourceGUID read_only_udm.target.resource.product_object_id ResourceGUID から名前が変更されました
SDKVersion read_only_udm.additional.fields.value.string_value 直接マッピング
SDKVersion read_only_udm.principal.resource.attribute.labels.value 直接マッピング
SPort read_only_udm.principal.port SPort から名前変更
ScBytes read_only_udm.network.received_bytes ScBytes から名前を変更
ScStatus read_only_udm.network.http.response_code ScStatus から名前が変更されました
TimeTaken read_only_udm.additional.fields.value.string_value 直接マッピング
タイプ read_only_udm.additional.fields.value.string_value 直接マッピング
ユーザー read_only_udm.principal.user.userid 直接マッピング
UserAddress read_only_udm.principal.asset.ip 有効な IP アドレスの場合は UserAddress から抽出されます
UserAddress read_only_udm.principal.ip 有効な IP アドレスの場合は UserAddress から抽出されます
UserAgent read_only_udm.network.http.user_agent 直接マッピング
UserDisplayName read_only_udm.principal.user.user_display_name 直接マッピング
category read_only_udm.metadata.product_event_type 直接マッピング
level read_only_udm.security_result.severity 大文字に変更され、レベルから名前が変更されました
ロケーション read_only_udm.principal.location.name 直接マッピング
operationName read_only_udm.additional.fields.value.string_value 直接マッピング
record.properties.Protocol read_only_udm.additional.fields.value.string_value 直接マッピング
record.properties.Result read_only_udm.security_result.summary 直接マッピング
record.time read_only_udm.metadata.event_timestamp RFC 3339 タイムスタンプとして解析
resourceId read_only_udm.target.resource.attribute.labels.value 直接マッピング
resourceId read_only_udm.target.resource.product_object_id resourceId から名前変更
read_only_udm.metadata.event_type プリンシパル、ターゲット、プロトコルの有無に基づいて決定されます。プリンシパル、ターゲット、Protocol=HTTP が存在する場合は NETWORK_HTTP に設定します。プリンシパルとターゲットが存在する場合は NETWORK_CONNECTION に設定します。プリンシパルのみが存在する場合は STATUS_UPDATE に設定します。それ以外の場合は GENERIC_EVENT に設定します。

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。