ストリーミングとFunctionsによるOracle Cloud GuardとLogging Analyticsの連携(パート1) (2022/11/01)

ストリーミングとFunctionsによるOracle Cloud GuardとLogging Analyticsの連携(パート1) (2022/11/01)

https://blogs.oracle.com/cloud-infrastructure/post/integrating-cloud-guard-logging-analytics-part-1

投稿者:Vishak Chittuvalapil | Staff Cloud Engineer

Lasya Vadavalli | Cloud solution Engineer


Logging Analyticsは、Oracle Cloud Infrastructure(OCI)の機械学習(ML)ベースのツールで、オンプレミスおよびマルチクラウド環境からのすべてのログデータを分析し、さまざまなテクノロジースタックにわたって複雑な分析、トラブルシューティング、可視化を可能にします。Oracle Management Agentを使用したLogging Analyticsへのログのロード、オンデマンドでのログのアップロード、OCI Object Storageからのログ収集、Service Connectorの使用などが可能です。


Oracle Cloud Guardは、クラウドのポスチャーを管理するためのセキュリティツールです。他のOCIネイティブ・サービスと同様に、Oracle Cloud GuardとLogging Analyticsをシームレスに統合し、ログの統合、分析、アラート、ダッシュボードのために異なるソースからのすべてのデータを持つ単一の堅牢なソリューションを作ることができます。


このブログ記事のパート1では、OCI Streamingサービスを使用したOracle Cloud GuardとLogging Analyticsの統合を紹介します。パート2では、OCI Functionsサービスを使用したOracle Cloud GuardとLogging Analyticsの統合について説明します。



アーキテクチャ


以下のアーキテクチャ設計は、Cloud GuardイベントをOCI Streamingを使用してLogging Analyticsに送信するPart 1のアプローチの概要を示しています。Cloud GuardからのイベントはEventsサービスで利用可能で、Streamingにプッシュされます。Service ConnectorはStreamingからこのデータをピックアップし、Logging Analyticsに送信します。

図1:Cloud GuardとLoggingを統合するためのアーキテクチャ設計



実装手順


  1.     Cloud Guard レスポンダーのレシピで、クラウドイベントルールを有効化
  2.     OCI Streamingでストリームを作成
  3.     Cloud GuardのイベントタイプとしてOCI Eventsでルールを作成し、アクションタイプとして前のステップで作成したストリームを提供
  4.     Logging Analyticsでロググループを作成(オプション)。
  5.     Logging Analyticsでログ・パーサーとソースを作成
  6.     Cloud GuardイベントをStreamingからLogging Analyticsに送信するためのサービス・コネクタを作成



ステップ 1: Cloud Guard レスポンダーレシピでクラウドイベントルールを有効化


  1.     Oracle Cloud Consoleのメニューから、[Identity & Security] → [Cloud Guard] → [Targets]を選択します。
  2.     クラウドイベントをプッシュしたいターゲットを選びます。
  3.     レスポンダレシピを選択します。図2 に示すように、クラウドイベントルールを有効にして保存します。

図 2: ターゲットのレスポンダレシピでクラウドイベントルールを有効化し保存



ステップ2:OCI Streamingでストリームを作成


  1.     コンソールで、メニューの[Analytics & AI]→[Messaging]→[Streaming]を選択します。
  2.     選択したコンパートメントにストリームを作成します。ここでは、図3に示すように、デフォルトのストリームプールを使用します。また、新規または既存のストリームプールを作成し、使用することもできます。

図 3:デフォルトプールを使用したストリームの作成



ステップ 3: OCI Events でルールを作成


  1.     Consoleのメニューから、[Observability & Management]→[Events]の順に選択します。
  2.     コンパートメントにルールを作成し、[Service Name]に[Cloud Guard]を選択します。
  3.     Cloud Guardの専用リストからイベントの種類を選択します。ここでは、Status、Detected Problem、Dismissed Problem、Remediated Problemの各イベントをStreamingにプッシュしています。
  4.     アクションタイプはStreaming、ストリームはステップ2で作成したものを選択します。[ルールの作成]をクリックします。

図4:Cloud GuardイベントをStreamingにプッシュするためのルールを作成



ステップ4:Logging Analyticsでロググループを作成(オプション)


  1.     コンソールのメニューで、[Observability & Management]→[Logging Analytics]の順に選択し、[Administration]を選択します。
  2.     このロググループを作成するコンパートメントを選択します。
  3.     [リソース]で[ロググループ]と[新しいロググループを作成]を選択します。すでに既存のロググループがある場合、このステップはオプションです。ここでは、図5に示すように、Cloud Guardログ用の新しいLog Groupを作成します。

図5:Logging Analyticsでロググループを作成(オプション)



ステップ5:Logging Analyticsでログ・パーサーとソースを作成


  1.     コンソールで、メニューから[Observability & Management]→[Logging Analytics]→[Administration]の順に選択します。
  2.     ログパーサを作成するコンパートメントを選択します。[Parser]をクリックします。
  3.     JSON タイプを選択し、Example log content に以下のサンプルログを貼り付けて、図 6 に示すようにログパーサを作成します。

{
        "eventType": "com.oraclecloud.cloudguard.problemremediated", 
        "cloudEventsVersion": "0.1", 
        "eventTypeVersion": "2.0", 
        "source": "CloudGuardResponderEngine", 
        "eventTime": "2022-10-19T04:58:26Z", 
        "contentType": "application/json", 
        "data": { 
          "compartmentId": "ocid1.compartment.oc1..aaaaaaaxxxxxxxxx43cfxpxoclqqje6ubnibuhiy4ujiji2muhmpsa", 
          "compartmentName": "CloudGuardTest", 
          "resourceName": "Scanned host has open ports", 
          "resourceId": "ocid1.cloudguardproblem.oc1.iad.amaaxxxxaas4n35vkqc5hqubmfmzz45u2iqyh6jcire2dbza27bcxl6jqqpoma", 
          "additionalDetails": { 
            "tenantId": "ocid1.tenancy.oc1..aaaaaaaaxxxxxxxxxxqgklcloydwnror5b3fs4ag7dlrbsiwkjdea", 
            "status": "RESOLVED", 
            "reason": "Problem is auto resolved by CloudGuard", 
            "problemName": "SCANNED_HOST_OPEN_PORTS", 
            "riskLevel": "CRITICAL", 
            "problemType": "CONFIG_CHANGE", 
            "resourceName": "monitoringnode", 
            "resourceId": "ocid1.instance.oc1.iad.axxxxx35xxxxxxwgqlepmjju2f3fvcwu7s5vbonfmmcpxqj5hyuaq", 
            "resourceType": "HostPortScan", 
            "targetId": "ocid1.cloudguardtarget.oc1.iad.amxxxxxaaas4n35vkqjdw4x2354clqmbz7tyzllmk6syb756y3e5ot7jdxfzyq", 
            "labels": "VSS", 
            "firstDetected": "2022-10-05T09:41:56.799Z", 
            "lastDetected": "2022-10-19T04:58:05.630Z", 
            "region": "us-ashburn-1", 
            "problemAdditionalDetails": { 
              "Open ports": "{\"TCP\":[22,111],\"UDP\":[68,111,1007]}", 
              "Disallowed ports list": "{\"TCP\":[11,17,18,19,21,23,24,25,43,49,53,70,71,72,73,74,79,80,81,88,111,123,389,445,500,636,3306,3389,5901,5985,5986,7001,8000,8080,8443,8888],\"UDP\":[11,17,18,19,49,69,80,82,83,84,85,389,443,656,8080]}", 
              "Scan Result Id": "ocid1.vssportscanresult.oc1..aaaaaaaaxxxxyxiaswkdfjoem2nkqofh4ma5skt6ts235hvud2qo7x6xedaa" 
            }, 
            "problemDescription": "Prerequisite: Create a Host Scan Recipe and a Host Scan Target in the Scanning service. The Scanning service scans compute hosts to identify open ports. This detector triggers a problem when the Scanning service has reported that an instance has one or more open ports. Certain ports are required for operation and delivery of services but any open port beyond the intended list can potentially be used to exploit the services. You can modify the default list of allowed ports or disallowed ports in Input Settings within the detector.", 
            "problemRecommendation": "Review if identified ports should be open on this host and close them if they are not required to be open." 
          } 
        }, 
        "eventID": "b6b30bd8-413d-4d4d-b5cb-e0392dcc4904", 
        "extensions": { 
          "compartmentId": "ocid1.compartment.oc1..aaaaaaaaxxxx7slcbrc43cfxpxoclqqje6ubnibuhiy4ujiji2muhmpsa" 
        }


4.  [Fields]では、図6に示すように、Cloud GuardイベントからLogging Analyticsの必須フィールドのみをマッピングしています。[Create]をクリックします。

図6:Logging Analyticsでパーサーを作成


5.  前のページで、Logging Analyticsの管理から[ソース]をクリックします。

6.  このログソースを作成したいコンパートメントを選択します。

7.  [ソースの作成] をクリックし、必要な値を入力します。作成したパーサーを選択します。[ソースの作成]をクリックします。

図7:Logging Analyticsでソースを作成



ステップ6:Cloud GuardイベントをStreamingからLogging Analyticsに送信するためのサービス・コネクタを作成


  1.     コンソールで、メニューから[Analytics & AI]→[Messaging]→[Service Connector Hub]の順に選択します。
  2.     サービスコネクターを作成するコンパートメントを選択します。
  3.     [Create Service Connector]をクリックし、それぞれの値を入力します。[Configure Service Connector]で、[Streaming]をソースとして、[Logging Analytics]をターゲットとして選択します。
  4.     [ソースの構成]で、ステップ2で作成したストリームを選択し、読み取り位置で[最新]を選択します。
  5.     [Configure Destination]で、ステップ4で作成したロググループとステップ5で作成したソースを選択します。
  6.     画面に表示されるデフォルトのポリシーを作成し、[作成]をクリックします。

図8:Cloud GuardイベントをStreamingからLogging Analyticsに送信するためのサービス・コネクターを作成



ステップ7:Logging AnalyticsでCloud Guardイベントを検証


  1.     コンソールのメニューで、[Observability & Management]→[Log Analytics]→[Log Explorer]の順に選択します。
  2.     図9と図10に示すように、Cloud Guardイベントを検証します。

図9:Log Explorer で Cloud Guard イベントを検証

図10:Log Explorer で Cloud Guard イベントを検証



まとめ


このブログでは、Streamingを使用したOracle Cloud InfrastructureとLogging Analyticsの統合について説明しました。近日公開予定のPart 2では、Functionsを使用したOracle Cloud Guardの統合について説明します。Cloud GuardイベントをLogging Analyticsと統合するには、これらの最適なデプロイメントのいずれかを選択できます。このトピックの詳細については、「Send Streaming Data to Logging Analytics」を参照してください。


コメント

このブログの人気の投稿

Oracle RACによるメンテナンスのためのドレインとアプリケーション・コンティニュイティの仕組み (2023/11/01)

Oracle Cloud Infrastructure Secure Desktopsを発表: デスクトップ仮想化のためのOracleのクラウドネイティブ・サービス (2023/06/28)

Oracle Cloudのデータベースをオブジェクト・ストレージにバックアップする3つの方法 (2021/12/13)