メインコンテンツまでスキップ

セキュリティ監視のための監査ログスキーマ

important

この記事は提供を終了したため、更新されない可能性があります。 セキュリティモニタリングログは、 追加のセキュリティモニタリングイベントに記載されるようになりました。

Databricksクラシック コンピュートプレーン 内の コンピュート リソース (VM for クラスターや Pro または クラシックSQL ウェアハウスなど) では、次の機能によって追加のモニタリング エージェントが有効になります。

サーバレス コンピュート リソースの場合、コンプライアンス セキュリティ プロファイルが有効で、苦情処理標準がサーバレス コンピュート リソースをサポートしている場合、モニタリング エージェントは実行されます。 「サーバレス コンピュートの可用性により、セキュリティとコンプライアンスの標準 を強化するコンピュート リソース 」を参照してください。

これらの機能のモニタリング ツールの出力は、Databricks監査ログ内にあります。

ログにアクセスするには:

  1. 管理者は、独自の Amazon S3 バケットへの 監査ログ配信 を設定します。
  2. 次のセクションに基づいて、新しい行のログを定期的に確認してください。

ファイル整合性監視のスキーマ

監査ログの全体的なスキーマについては、「 監査ログのスキーマ例」を参照してください。

ファイルの整合性の監視に重要な監査ログ フィールド:

  • serviceName:常に capsule8-alerts-dataplane

  • timestamp: ツールがこのイベントを作成した時刻。

  • workspaceId: このイベントに関連付けられているワークスペース。

  • requestId: 元のイベントの一意の UUID。

  • requestParams: この要求パラメーター JSON オブジェクトには、常に instanceId フィールドが 1 つだけあり、この監査ログ・エントリーを出力したinstance-id (ホストの ID) です。

  • response: JSON オブジェクト。

    • これにより、常に statusCode プロパティが 200 に設定されます。

    • イベントの元の JSON 値を含む result フィールド。 JSON は、トリガーする検出によって異なる場合があります。 完全なスキーマリファレンスについては、 アラート JSON スキーマに関する次のサードパーティーのドキュメント記事を参照してください。 JSON 値は、ネストされた JSON 値ではなく 1 つの文字列オブジェクトとしてエンコードされるため、次のようなエスケープされた引用符が予想されます。

      JSON
      "response": {
      "statusCode": 200,
      "result": "{\"actionName\": \"Wget Program Blacklist\"}"
      }
  • accountId: このワークスペースの Databricks アカウント ID。

  • auditLevel:常に WORKSPACE_LEVEL

  • actionName: アクション名。 次のいずれかの値です。

    • Heartbeat:モニターがオンになっていることを確認するための定期的なイベント。 現在は 10 分ごとに実行されていますが、今後変更される可能性があります。
    • Memory Marked Executable: メモリは、アプリケーションが悪用されているときに悪意のあるコードを実行できるようにするために、多くの場合、実行可能とマークされます。 プログラムがヒープまたはスタック メモリのアクセス許可を実行可能に設定したときにアラートを生成します。 これにより、特定のアプリケーションサーバーで誤検出が発生する可能性があります。
    • File Integrity Monitor: 重要なシステムファイルの整合性を監視します。 これらのファイルに対する不正な変更に関するアラート。 Databricks では、イメージ上の特定のシステム パスのセットが定義されており、このパスのセットは時間の経過と共に変化する可能性があります。
    • Systemd Unit File Modified: systemdユニットを変更すると、セキュリティ制御が緩和されたり無効になったり、悪意のあるサービスがインストールされたりする可能性があります。 systemdユニットファイルがsystemctl以外のプログラムによって変更されるたびにアラート .
    • Repeated Program Crashes: プログラムがクラッシュすることが繰り返される場合は、攻撃者がメモリ破損の脆弱性を悪用しようとしているか、影響を受けるアプリケーションに安定性の問題があることを示している可能性があります。 個々のプログラムの 5 つ以上のインスタンスがセグメンテーション フォールトによってクラッシュした場合にアラートを出します。
    • Userfaultfd Usage: 特定の Linux 機能は、カーネルの脆弱性を悪用する場合、通常は特権昇格を目的として、ほぼ独占的に使用されます。 バイナリが userfaultfd システムコールを実行したときにアラートを生成します。
    • New File Executed in Container: 通常、コンテナーは静的ワークロードであるため、このアラートは、攻撃者がコンテナーを侵害し、バックドアをインストールして実行しようとしていることを示している可能性があります。 30 分以内に作成または変更されたファイルがコンテナ内で実行されると、アラートが発生します。
    • Suspicious Interactive Shell: Interactive シェルは、現代の本番運用インフラストラクチャではめったに発生しません。 逆シェルで一般的に使用される引数を使用して対話型シェルが開始された場合のアラート。
    • User Command Logging Evasion: コマンド ログの回避は攻撃者にとって一般的な方法ですが、正当なユーザーが不正なアクションを実行しているか、ポリシーを回避しようとしていることを示している可能性もあります。 ユーザー・コマンド履歴ログの変更が検出された場合、ユーザーがコマンド・ログを回避しようとしていることを示すアラート。
    • BPF Program Executed: 一部の種類のカーネル バックドアを検出します。 新しい Berkeley Packet Filter (BPF) プログラムの読み込みは、攻撃者が永続性を獲得し、検出を回避するために BPF ベースのルートキットを読み込んでいることを示している可能性があります。 プロセスが新しい特権 BPF プログラムをロードしたときにアラートを生成します (そのプロセスがすでに進行中のインシデントの一部である場合)。
    • Kernel Module Loaded: 攻撃者は通常、悪意のあるカーネル モジュール (ルートキット) をロードして、侵害されたノードでの検出を回避し、永続性を維持します。 カーネルモジュールがロードされたとき、プログラムがすでに進行中のインシデントの一部である場合にアラートを出します。
    • Suspicious Program Name Executed-Space After File: 攻撃者は、正当なシステムプログラムまたはサービスになりすまそうとして、悪意のあるバイナリを作成したり、名前の末尾にスペースを含めたりする可能性があります。 プログラム名の後にスペースを付けてプログラムを実行した場合のアラート。
    • Illegal Elevation Of Privileges: カーネル権限昇格の悪用は、通常、権限のないユーザーが権限変更の標準ゲートを通過せずに root 権限を取得できるようにします。 プログラムが通常とは異なる手段で特権を昇格させようとした場合にアラートを生成します。 これにより、ワークロードが大きいノードで誤検出アラートが発行される可能性があります。
    • Kernel Exploit: 内部カーネル関数は通常のプログラムからアクセスできず、呼び出された場合、カーネルのエクスプロイトが実行され、攻撃者がノードを完全に制御していることを強く示します。 カーネル関数が予期せずユーザー空間に戻ったときにアラートを出します。
    • Processor-Level Protections Disabled: SMEP と SMAP は、カーネル エクスプロイトが成功するのを困難にするプロセッサ レベルの保護であり、これらの制限を無効にすることは、カーネル エクスプロイトの一般的な初期ステップです。 プログラムがカーネルの SMEP/SMAP 構成を改ざんした場合にアラートを生成します。
    • Container Escape via Kernel Exploitation: プログラムがコンテナエスケープエクスプロイトで一般的に使用されるカーネル関数を使用している場合にアラートを発し、攻撃者がコンテナアクセスからノードアクセスに権限を昇格させていることを示します。
    • Privileged Container Launched: 特権コンテナはホストリソースに直接アクセスできるため、侵害された場合の影響は大きくなります。特権コンテナが起動されたとき、コンテナが既知の特権イメージ kube-proxy でない場合にアラートを生成します。これにより、正当な特権コンテナに対して不要なアラートが発行される可能性があります。
    • Userland Container Escape: 多くのコンテナエスケープは、ホストにコンテナ内バイナリの実行を強制し、その結果、攻撃者は影響を受けるノードを完全に制御できるようになります。 コンテナで作成されたファイルがコンテナの外部から実行されたときにアラートを出します。
    • AppArmor Disabled In Kernel: 特定の AppArmor 属性の変更はカーネル内でのみ行うことができ、カーネル エクスプロイトまたはルートキットによって AppArmor が無効にされたことを示します。 センサーの起動時に検出されたAppArmor構成からAppArmorの状態が変更されたときにアラートを発します。
    • AppArmor Profile Modified: 攻撃者は、検出を回避する一環として、AppArmor プロファイルの適用を無効にしようとする可能性があります。 AppArmor プロファイルを変更するコマンドが実行されたとき (SSH セッションでユーザーによって実行されていない場合) にアラートを出します。
    • Boot Files Modified: 信頼できるソース (パッケージマネージャーや設定管理ツールなど) によって実行されない場合、ブートファイルの変更は、攻撃者がホストへの永続的なアクセスを取得するためにカーネルまたはそのオプションを変更したことを示している可能性があります。 /bootのファイルに変更が加えられたとき、新しいカーネルまたはブート設定のインストールを示すアラート。
    • Log Files Deleted: ログ管理ツールによって実行されていないログの削除は、攻撃者が侵害の兆候を削除しようとしていることを示している可能性があります。 システム・ログ・ファイルの削除に関するアラート。
    • New File Executed: システム更新プログラム以外のソースから新しく作成されたファイルは、バックドア、カーネルエクスプロイト、またはエクスプロイトチェーンの一部である可能性があります。 30 分以内に作成または変更されたファイルが実行された場合、システム更新プログラムによって作成されたファイルは除外されます。
    • Root Certificate Store Modified: ルート証明書ストアを変更すると、不正な認証局がインストールされ、ネットワーク トラフィックの傍受やコード署名の検証のバイパスが可能になる可能性があります。 システム CA 証明書ストアが変更されたときにアラートを生成します。
    • Setuid/Setgid Bit Set On File: setuid/setgid ビットの設定を使用して、ノード上の権限昇格の永続的な方法を提供できます。 chmod ファミリのシステムコールを含むファイルに setuid ビットまたは setgid ビットが設定されている場合にアラートを発します。
    • Hidden File Created: 攻撃者は、侵害されたホスト上のツールやペイロードを隠す手段として、隠しファイルを作成することがよくあります。 進行中のインシデントに関連付けられたプロセスによって隠しファイルが作成されたときにアラートを生成します。
    • Modification Of Common System Utilities: 攻撃者は、システムユーティリティが実行されるたびに悪意のあるペイロードを実行するために、システムユーティリティを変更する可能性があります。 一般的なシステム・ユーティリティーが無許可のプロセスによって変更された場合にアラートを出します。
    • Network Service Scanner Executed: 攻撃者や不正なユーザーは、これらのプログラムを使用またはインストールして、接続されたネットワークを調査し、侵害する追加のノードを探すことができます。 一般的なネットワークスキャンプログラムツールが実行されたときにアラート。
    • Network Service Created: 攻撃者は、侵害後にホストに簡単にアクセスできるように、新しいネットワークサービスを開始する可能性があります。 プログラムが新しいネットワーク サービスを開始したときにアラート (プログラムがすでに進行中のインシデントの一部である場合)。
    • Network Sniffing Program Executed: 攻撃者や不正なユーザーは、ネットワーク スニッフィング コマンドを実行して、資格情報、個人を特定できる情報 (PII)、またはその他の機密情報をキャプチャする可能性があります。 ネットワーク キャプチャを許可するプログラムが実行されたときにアラートを発します。
    • Remote File Copy Detected: ファイル転送ツールを使用すると、攻撃者がツールセットを追加のホストに移動したり、データをリモートシステムに流出させたりしようとしていることを示している可能性があります。 リモート・ファイル・コピーに関連付けられたプログラムが実行されたときに、そのプログラムがすでに進行中のインシデントの一部である場合にアラートを発します。
    • Unusual Outbound Connection Detected: コマンド and Control チャンネルとクリプトコインマイナーは、多くの場合、異常なポートで新しいアウトバウンドネットワーク接続を作成します。 プログラムが一般的でないポートで新しい接続を開始したときにアラート (プログラムが既に進行中のインシデントの一部である場合)。
    • Data Archived Via Program: 攻撃者は、システムにアクセスした後、ファイルの圧縮アーカイブを作成して、流出するデータのサイズを縮小する可能性があります。 データ圧縮プログラムが実行されたときに、そのプログラムがすでに進行中のインシデントの一部である場合にアラートを出します。
    • Process Injection: プロセス インジェクション手法の使用は、通常、ユーザーがプログラムをデバッグしていることを示しますが、攻撃者が他のプロセスからシークレットを読み取ったり、他のプロセスにコードを挿入したりしていることを示す場合もあります。 プログラムが ptrace (デバッグ) メカニズムを使用して別のプロセスと対話する場合にアラート。
    • Account Enumeration Via Program: 攻撃者は、多くの場合、アカウント列挙プログラムを使用して、アクセスレベルを判断し、他のユーザーが現在ノードにログインしているかどうかを確認します。 アカウント列挙に関連付けられたプログラムが実行されたときに、そのプログラムがすでに進行中のインシデントの一部である場合にアラートを生成します。
    • File and Directory Discovery Via Program: ファイルシステムの探索は、攻撃者が関心のある資格情報とデータを探している場合の一般的なエクスプロイト後の動作です。 ファイルおよびディレクトリの列挙に関連付けられたプログラムが実行されたとき (そのプログラムが既に進行中のインシデントの一部である場合に)、アラートを生成します。
    • Network Configuration Enumeration Via Program:攻撃者は、ローカルネットワークとルーティング情報を調査して、水平移動に先立って隣接するホストとネットワークを特定できます。 ネットワーク構成の列挙に関連付けられたプログラムが実行されたときに、そのプログラムがすでに進行中のインシデントの一部である場合にアラートを出します。
    • Process Enumeration Via Program: 攻撃者は、ノードの目的を特定し、セキュリティツールや監視ツールが配置されているかどうかを特定するために、実行中のプログラムをリストアップすることがよくあります。 プロセス列挙に関連付けられたプログラムが実行されたときに、そのプログラムがすでに進行中のインシデントの一部である場合にアラートを出します。
    • System Information Enumeration Via Program: 攻撃者は通常、システム列挙コマンドを実行して、Linuxカーネルとディストリビューションのバージョンと機能を特定し、多くの場合、ノードが特定の脆弱性の影響を受けているかどうかを特定します。 システム情報の列挙に関連付けられたプログラムが実行されたときに、そのプログラムがすでに進行中のインシデントの一部である場合にアラートを出します。
    • Scheduled Tasks Modified Via Program: スケジュールされたタスクの変更は、侵害されたノードで永続性を確立するための一般的な方法です。 crontabat、または batch コマンドを使用してスケジュールされたタスク設定を変更した場合にアラートを出します。
    • Systemctl Usage Detected: systemdユニットを変更すると、セキュリティ制御が緩和されたり無効になったり、悪意のあるサービスがインストールされたりする可能性があります。 systemctlコマンドを使用してsystemdユニットを変更したときにアラートを出します。
    • User Execution Of su Command: root ユーザーへの明示的なエスカレーションにより、特権アクティビティを特定のユーザーに関連付けられる能力が低下します。 suコマンドが実行されたときにアラートを出します。
    • User Execution Of sudo Command: sudo コマンドが実行されたときにアラートを発します。
    • User Command History Cleared: 履歴ファイルの削除は一般的ではなく、攻撃者がアクティビティを隠しているか、正当なユーザーが監査制御を回避しようとしている場合によく行われます。 コマンドライン履歴ファイルが削除されたときにアラートを出します。
    • New System User Added: 攻撃者は、新しいユーザーをホストに追加して、信頼性の高いアクセス方法を提供する可能性があります。 新しいユーザー・エンティティがローカル・アカウント管理ファイル・ /etc/passwdに追加された場合に、そのエンティティがシステム更新プログラムによって追加されていない場合にアラートを出します。
    • Password Database Modification: 攻撃者は、ID 関連のファイルを直接変更して、新しいユーザーをシステムに追加する可能性があります。 アラート : ユーザー パスワードに関連するファイルが、既存のユーザー情報の更新に関係のないプログラムによって変更された場合。
    • SSH Authorized Keys Modification: 新しい SSH 公開鍵を追加することは、侵害されたホストへの永続的なアクセスを取得するための一般的な方法です。ユーザーの SSH authorized_keys ファイルへの書き込みが試行された場合、プログラムが既に進行中のインシデントの一部である場合にアラート。
    • User Account Created Via CLI: 新しいユーザーの追加は、攻撃者が侵害されたノードで永続性を確立する際の一般的な手順です。 ID 管理プログラムがパッケージ・マネージャー以外のプログラムによって実行される場合にアラートを出します。
    • User Configuration Changes: ユーザープロファイルと設定ファイルは、ユーザーがログインするたびにプログラムを実行するための永続化の方法として変更されることがよくあります。 .bash_profile と bashrc (および関連ファイル) がシステム更新ツール以外のプログラムによって変更された場合のアラート。

次に、ファイル整合性モニタリング監査ログ・エントリーの例を示します。

JSON
{
"version": "2.0",
"timestamp": 1625959170109,
"workspaceId": "2417130538620110",
"serviceName": "capsule8-alerts-dataplane",
"actionName": "Wget Program Blacklist",
"requestId": "318a87db-4cfe-4532-9110-09edc262275e",
"requestParams": {
"instanceId": "i-0a3c9d63bb295eb4f"
},
"response": {
"statusCode": 200,
"result": "<original-alert-json>"
},
"accountId": "82d65820-b5e4-4ab0-96e6-0cba825a5687",
"auditLevel": "WORKSPACE_LEVEL"
}

ウイルス対策モニタリングのスキーマ

監査ログの全体的なスキーマについては、「 監査ログのスキーマ例」を参照してください。

ウイルス対策モニタリングに重要な監査ログ フィールド:

  • serviceName:常に clamAVScanService-dataplane
  • actionName:常に clamAVScanAction
  • timestamp: ツールがこのログ行を生成した時刻。
  • workspaceId: このログに関連付けられているワークスペース ID。
  • requestId: 元のスキャンイベントの一意の UUID。
  • requestParams: この要求パラメーター JSON オブジェクトには、常に instanceId フィールドが 1 つだけあり、この監査ログ・エントリーを出力したinstance-id (ホストの ID) です。
  • response: この応答 JSON オブジェクトには、常に 200 の statusCode と、元のスキャン結果の 1 行を含む result フィールドがあります。 各スキャン結果は、通常、元のスキャン出力の各行に 1 つずつ、複数の監査ログ・レコードで表されます。 このファイルに表示される内容の詳細については、次の サードパーティのドキュメントを参照してください。
  • accountId: このログに関連付けられている Databricks アカウント ID。
  • auditLevel:常に WORKSPACE_LEVEL

次に、 response.result フィールドにスキャンの開始を示すウイルス対策監査ログ エントリの例を示します。

JSON
{
"version": "2.0",
"timestamp": 1625959170109,
"workspaceId": "2417130538620110",
"serviceName": "clamAVScanService-dataplane",
"actionName": "clamAVScanAction",
"requestId": "318a87db-4cfe-4532-9110-09edc262275e",
"requestParams": {
"instanceId": "i-0a3c9d63bb295eb4f"
},
"response": {
"statusCode": 200,
"result": "begin daily clamav scan : Mon Oct 25 06:25:01 UTC 2021\\n"
},
"accountId": "82d65820-b5e4-4ab0-96e6-0cba825a5687",
"auditLevel": "WORKSPACE_LEVEL"
}

ウイルス対策ログ ファイルの例を次に示します。

----------- SCAN SUMMARY -----------
Known viruses: 8556227
Engine version: 0.103.2
Scanned directories: 6
Scanned files: 446
Infected files: 0
Data scanned: 74.50 MB
Data read: 164.43 MB (ratio 0.45:1)
Time: 37.874 sec (0 m 37 s)
Start Date: 2021:07:27 21:47:36
End Date: 2021:07:27 21:48:14

システムログのスキーマ

監査ログの全体的なスキーマについては、「 監査ログのスキーマ例」を参照してください。

システム・ログにとって重要な監査ログ・フィールド:

  • serviceName:常に syslog

  • actionName:常に processEvent

  • timestamp: システム・ログがこのログ行を生成する時刻。

  • workspaceId: このログに関連付けられているワークスペース ID。

  • requestId: 元のシステム・ログ・イベントの一意の UUID。

  • requestParams: この要求パラメーター JSON オブジェクトには、次のキーがあります。

    • instanceId: この監査ログエントリを出力した instance-id (ホストの ID)。
    • processName: このイベントを生成した内部プロセスの名前。 このフィールドは高度な診断を目的としており、その内容は変更される可能性があります。
  • response: statusCode 200 の JSON オブジェクトと、元のシステムログコンテンツを含む result フィールド。

  • accountId: このログに関連付けられている Databricks アカウント ID。

  • auditLevel:常に WORKSPACE_LEVEL

システムログのイベントの例:

JSON
{
"version": "2.0",
"timestamp": 1633220481000,
"workspaceId": "2417130538620110",
"sessionId": "2710",
"serviceName": "syslog",
"actionName": "processEvent",
"requestId": "1054f4c8-741d-3d80-b168-ca2cb891aa7a",
"requestParams": {
"instanceId": "i-00edf5b73b4c68221",
"processName": "<process-name>"
},
"response": {
"statusCode": 200,
"result": "<syslog content>"
},
"accountId": "82d65820-b5e4-4ab0-96e6-0cba825a5687",
"auditLevel": "WORKSPACE_LEVEL"
}

プロセス・モニターのスキーマ

監査ログの全体的なスキーマについては、「 監査ログのスキーマ例」を参照してください。

プロセス・モニター・ログにとって重要な監査ログ・フィールド:

  • serviceName:常に monit

  • actionName: 次のいずれか: processNotRunning (モニターが実行中)、 processRestarting (モニターが再起動中)、 processStarted (モニターが開始)、または processRunning (モニターが実行中)。

  • timestamp: モニター・ログがこのログ行を生成した時刻。

  • workspaceId: このログに関連付けられているワークスペース ID。

  • requestId: 元のシステム・ログ・イベントの一意の UUID。

  • requestParams: この要求パラメーター JSON オブジェクトには、次のキーがあります。

    • instanceId: この監査ログエントリを出力した instance-id (ホストの ID)。
    • processName: 監視対象の内部プロセスの名前。 このフィールドは高度な診断を目的としており、その内容は変更される可能性があります。
  • response: statusCode 200 の JSON オブジェクト。

  • accountId: このログに関連付けられている Databricks アカウント ID。

  • auditLevel:常に WORKSPACE_LEVEL

プロセス・モニター・ログのイベントの例:

JSON
{
"version": "2.0",
"timestamp": 1626857554000,
"workspaceId": "2417130538620110",
"serviceName": "monit",
"actionName": "processRestarting",
"requestId": "48bb4060-7685-3a19-9dbb-f83d2afaf346",
"requestParams": {
"instanceId": "i-0c48619b79d4056f2",
"processName": "<process-name>"
},
"response": {
"statusCode": 200
},
"accountId": "82d65820-b5e4-4ab0-96e6-0cba825a5687",
"auditLevel": "WORKSPACE_LEVEL"
}