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

Carbon Black のログの収集

このページでは、Hosted Collector と HTTP Source を追加して、Carbon Black アプリケーションから知見を収集するように収集エージェントを設定する方法を説明します。

このページでは、Hosted Collector と HTTP Source を追加して、Carbon Black アプリケーションから知見を収集するように収集エージェントを設定する方法を説明します。リンクをクリックして、各セクションに移動してください。

収集の概要

Carbon Black Response のイベントは、イベント転送メカニズムによって Sumo Logic に送信されます。cb-event-forwarder は、CentOS 6.x が動作している任意の 64 ビット Linux マシンにインストールできます。インストールするマシンは、Carbon Black サーバと同じでも別でも構いません。送信できるデータの形式は JSON または LEEF で、どちらも Sumo Logic でサポートされています。

Carbon Black Defense のイベントは、コネクタ経由で Sumo に送信されます。このコネクタは、64 ビット Intel プラットフォームで動作する Red Hat または CentOS Linux ディストリビューションおよび CentOS/RHEL 6.x 以降と互換性のあるバイナリ RPM パッケージとして配布されています。Sumo Logic は、Carbon Black Defense では JSON 形式をサポートします。

詳細については、Carbon Black Defense および Responseドキュメントを参照してください。

ステップ 1: Hosted Collector と HTTP Source の追加

このセクションでは、Carbon Black のイベントを収集するために、Sumo Logic の Hosted Collector と HTTP ログおよびメトリクス Source を追加する方法を説明します。

前提条件

HTTP Source を作成する前に、使用する Sumo Logic の Hosted Collector を指定するか、次の手順で新しい Hosted Collector を作成します。

Hosted Collector と HTTP Source を追加するには、次の手順を実行します。

  1. 新しい Sumo Logic の Hosted Collector を作成するには、「Hosted Collector を設定する」の手順を実行します

  2. HTTP ログとメトリクスの Source は、Defense と Response に 1 つずつ、異なる Source Category で合計 2 つ追加します。

CB_Response-EditSource-dialog.png

CB_Defense-EditSource-dialog.png

CB_HTTP-Source-Address-dialog.png

ステップ 2: Carbon Black からの資格情報と他の必要な情報の取得

次の情報を集めます。

  • Carbon Black Response のイベント フォワーダでは、RabbitMQ のユーザ名とパスワードが必要です。CB Response サーバの /etc/cb.conf から RabbitMQUser と RabbitMQPassword をコピーします。これらは次の手順で必要になります。
  • Carbon Black Defense syslog コネクタでは、Carbon Black Defense コネクタ ID、SIEM API キー、API URL が必要です。Carbon Black Defense API は、組織に割り当てられている特別なホスト名でアクセスできます。組織の API ホスト名を探す方法については、この KB 記事を参照してください。認証は、API キーとコネクタ ID (CB Defense コンソールの [Connectors (コネクタ)] ページで生成されます) によって処理されます。詳細はこちらを参照してください。
SIEM キーと通知ルールを生成するには、以下の手順を実行します。
  1. [Carbon Black Defense] ダッシュボードにログインして [Settings/Connector (設定/コネクタ)] メニュー オプションを選択します。

  2. “SIEM” タイプで新しいコネクタを作成して、一意の名前を付けます。

  3. [Settings/Notifications (設定/通知)] メニュー オプションを選択します。

  4. 新しい通知ルールを作成して、新しい SIEM コネクタを通知リストに追加します。通知ルールは、SIEM に送信されるアラートを定義します。

ステップ 3: Carbon Black Response 用のイベント フォワーダの設定

このセクションでは、Carbon Black Response イベントの収集を設定する方法を説明します。 

Carbon Black Response イベントの収集を設定するには、次の手順を実行します。
  1. CbOpenSource リポジトリがまだ存在しない場合はインストールします。
cd /etc/yum.repos.d
curl -O https://opensource.carbonblack.com/release/x86_64/CbOpenSource.repo
  1. yum コマンドで RPM パッケージをインストールします。
yum install cb-event-forwarder
  1. cb-event-forwarder の設定

  • Carbon Black Response サーバ以外のマシンにインストールする場合は、RabbitMQ のユーザ名とパスワードを /etc/cb/integrations/event-forwarder/cb-event-forwarder.conf ファイルの rabbit_mq_username 変数と rabbit_mq_password 変数にコピーします。また、cb_server_hostname 変数には、CB Response サーバのホスト名または IP アドレスを設定します。
  • cb-event-forwarder が Carbon Black Response クラスタからイベントを転送している場合は、cb_server_hostname 変数には CB Response マスタ ノードのホスト名または IP アドレスを設定します。詳細はこちらを参照してください。
  • さらに、cb-event-forwarder.conf で以下の変数を設定します。

- output_type を http に設定します。

- output_format を必要に応じて json または leef に設定します。

- httpout を前のステップからの HTTP Source アドレスに設定します。

  • cb-event-forwarder を (root として) チェック モードで実行することで、設定が正しいことを確認します。
/usr/share/cb/integrations/event-forwarder/cb-event-forwarder -check

何も問題がなければ、"Initialized output” で始まるメッセージが表示されます。エラーがあれば、エラーが表示されます。

  1. サービスの起動と終了

サービスをインストールすると、サービスは CentOS 6.x の Upstart init システムによって管理されます。サービスは、initctl コマンドで制御できます。

  • サービスの起動: 
initctl start cb-event-forwarder
  • サービスの終了: 
initctl stop cb-event-forwarder

ステップ 4: Carbon Black Defense 用の syslog コネクタの設定

このセクションでは、Carbon Black Defense 用の syslog コネクタを設定する方法を説明します。

cb-defense-syslog-tls をインストールして設定するには、ターゲット Linux システムで以下の手順を実行します。
  1. root ユーザとしてログインします。
  2. CbOpenSource リポジトリがまだ存在しない場合はインストールします。
cd /etc/yum.repos.d
curl -O
https://opensource.carbonblack.com/release/x86_64/CbOpenSource.repo
  1. yum コマンドで RPM パッケージをインストールします。
sudo yum install python-cb-defense-syslog
  1. cb-defense-syslog-tls を次のように設定します。

a. 設定ファイルの例をコピーします。

cd /etc/cb/integrations/cb-defense-syslog
sudo cp cb-defense-syslog.conf.example cb-defense-syslog.conf

b. /etc/cb/integrations/cb-defense-syslog/cb-defense-syslog.conf 設定ファイルの変数を修正します。

output_format=json
output_type=http
http_out=Sumologic HTTP Source Address from the previous step.
http_headers={}
https_ssl_verify=
connector_id=Cb Defense Connector ID
api_key=Cb Defense SIEM API Key
server_url=Cb Defense Server URL
ca_cert = /etc/cb/integrations/cb-defense/ca.pem

c. 省略可能。複数の CB サーバを追加できます。詳細については、こちらを参照してください。

  1. root としてログインしたままで、新しいコネクタを次のようにテストします。

a. 次のコマンドを実行します。

/usr/share/cb/integrations/cb-defense-syslog/cb-defense-syslog --config-file /etc/cb/integrations/cb-defense-syslog/cb-defense-syslog.conf --log-file /var/log/cb/integrations/cb-defense-syslog/cb-defense-syslog.log

b. 次のコマンドを実行します。

cat /var/log/cb/integrations/cb-defense-syslog/cb-defense-syslog.log

成功すると次の例のような結果が出力されます。

2017-06-27 09:24:10,747 - __main__ - INFO - Found 1 Cb Defense Servers in config file
2017-06-27 09:24:10,748 - __main__ - INFO - Handling notifications for https://api-eap01.conferdeploy.net
2017-06-27 09:24:10,748 - __main__ - INFO - Attempting to connect to url: https://api-eap01.conferdeploy.net
2017-06-27 09:24:10,748 - __main__ - INFO - connectorID = XXXX
2017-06-27 09:24:10,845 - __main__ - INFO - <Response [200]>
2017-06-27 09:24:10,845 - __main__ - INFO - sessionId = XXXX
2017-06-27 09:24:10,888 - __main__ - INFO - <Response [200]>
2017-06-27 09:24:10,889 - __main__ - INFO - successfully connected, no alerts at this time
2017-06-27 09:24:10,889 - __main__ - INFO - There are no messages to forward to host
  1. 次のように cron ジョブでコネクタを有効にして起動します。

a. ASCII エディタ (vi など) を使用して /etc/cron.d/cb-defense-syslog を開きます。

b. ファイルの最後の行の先頭にある # を削除して、CB Defense コネクタの行をコメント解除します。

デフォルトでは、コネクタは 1 時間に 1 回実行されます。

ステップ 5: Sumo が知見を受信していることの確認

Sumo で、[Live Tail] タブを開き、検索を実行して Sumo が知見を受信していることを確認します。たとえば次のような、ログ データを受信する HTTP Source に割り当てた Source Category で検索を行います。

_sourceCategory="cb_response_events"

Live Tail の使用の詳細については、「Live Tail」を参照してください。

ログ メッセージのサンプル

このセクションでは、JSON 形式と LEEF 形式のログ メッセージの例を示します。

CB Defense - JSON 形式

{
  "eventTime":1549271951761,
  "eventDescription":"[Global Alert Notification] [Carbon Black has detected a threat against your company.] [https://defense.conferdeploy.net#device/1220670/incident/IJ8PELL5] [The application powershell.exe attempted to bypass policy settings.] [Incident id: IJ8PELL5] [Threat score: 2] [Group: Tenable_Policy] [Email: SYNCURITYLABS\\administrator] [Name: SYNCURITYLABS\\24s-winedr-test] [Type and OS: WINDOWS Windows 10 x64] [Severity: Monitored]\n",
  "url":"https://defense.conferdeploy.net/investigate?s[searchWindow]=ALL&s[c][DEVICE_ID][0]=1220670&s[c][INCIDENT_ID][0]=IJ8PELL5",
  "deviceInfo":{
  "deviceName":"SYNCURITYLABS\\24s-winedr-test",
  "targetPriorityCode":0,
  "internalIpAddress":"172.16.24.101",
  "deviceHostName":null,
  "groupName":"Tenable_Policy",
  "externalIpAddress":"107.151.2.133",
  "deviceType":"WINDOWS",
  "deviceId":1220670,
  "targetPriorityType":"MEDIUM",
  "email":"SYNCURITYLABS\\administrator",
  "deviceVersion":"Windows 10 x64"
  },
  "source":"cbdefense1",
  "ruleName":"Global Alert Notification",
  "type":"THREAT",
  "threatInfo":{
  "threatCause":{
     "causeEventId":"069733a2285e11e9874c63a0c6772cb2",
     "actorType":null,
     "originSourceType":"UNKNOWN",
     "actor":"d3f8fade829d2b7bd596c4504a6dae5c034e789b6a3defbe013bda7d14466677",
     "actorProcessPPid":"1312-1549271896054-18070",
     "reason":"R_POLICY_BYPASS",
     "reputation":"TRUSTED_WHITE_LIST",
     "threatCategory":"NON_MALWARE",
     "actorName":""
  },
  "summary":"The application powershell.exe attempted to bypass policy settings.",
  "score":2,
  "time":1549272007050,
  "indicators":[
     {
        "applicationName":"powershell.exe",
        "indicatorName":"MODIFY_MEMORY_PROTECTION",
        "sha256Hash":"d3f8fade829d2b7bd596c4504a6dae5c034e789b6a3defbe013bda7d14466677"
     },
     {
        "applicationName":"powershell.exe",
        "indicatorName":"ENUMERATE_PROCESSES",
        "sha256Hash":"d3f8fade829d2b7bd596c4504a6dae5c034e789b6a3defbe013bda7d14466677"
     },
     {
        "applicationName":"powershell.exe",
        "indicatorName":"BYPASS_POLICY",
        "sha256Hash":"d3f8fade829d2b7bd596c4504a6dae5c034e789b6a3defbe013bda7d14466677"
     },
     {
        "applicationName":"powershell.exe",
        "indicatorName":"MODIFY_PROCESS",
        "sha256Hash":"d3f8fade829d2b7bd596c4504a6dae5c034e789b6a3defbe013bda7d14466677"
     }
  ],
  "incidentId":"IJ8PELL5"
  }
}

CB Response - JSON 形式 

{
  "cb_server":"cbserver",
  "cb_version":"6.2.4.181112.1308",
  "computer_name":"suse-agent1",
  "feed_id":34,
  "feed_name":"carbonstream",
  "from_feed_search":false,
  "group":"mnt 3rd wave",
  "hostname":"suse-agent1",
  "ioc_attr":{
  "direction":"Outbound",
  "dns_name":"qrgrakybjmcko.sumonetworks.com",
  "local_ip":"192.168.1.14",
  "local_port":7316,
  "port":7316,
  "protocol":"UDP",
  "remote_ip":"198.108.66.208",
  "remote_port":1381
  },
  "ioc_type":"ipv4",
  "ioc_value":"165.160.13.20",
  "os_type":"OSX",
  "process_guid":"000009a9-0000-4b8d-01d4-a897a4ce3f0a",
  "process_id":"0000408a-0000-3324-01d4-a7d3e8679254",
  "report_id":"2aaba46c8302f9805284c3b2bd6ce932",
  "report_score":100,
  "segment_id":"1547092507241",
  "sensor_id":850,
  "server_name":"localhost",
  "timestamp":"1548931379",
  "type":"feed.ingress.hit.process"
}

CB Response - LEEF 形式


1234 <12>0 2019-01-31T16:12:54.111+0530 previous-gymnast cb-notifications 94538 - - 
reason=feed.storage.hit type=event process_guid=0000148e-0000-0c70-01d4-a8dc9f4b27b2 
segment_id=1547094054393 host='rhel-agent1' comms_ip='142.255.119.77' interface_ip='172.20.4.130'  
sensor_id=4994 feed_id=13 feed_name='bit9endpointvisibility' ioc_type='query' ioc_value='
{""index_type"": ""events"", ""search_query"": ""cb.urlver=1&q=(regmod%3Adomains%5Caccount%5Cusers%5Cnames%5C*)""}' 
timestamp='1548931374' start_time='2019-01-31T16:12:54.111+0530' group='aes 2nd wave' process_md5=
'0f9760b796dede249193b1f7844104b1' process_name='lsass.exe' process_path='c:\windows\system32\lsass.exe' 
last_update='2019-01-31T16:12:54.111+0530'  alliance_updated_bit9endpointvisibility='2018-10-31T17:11:39.000Z' 
alliance_data_bit9endpointvisibility='74ccc9e8-ffc6-4e0b-ba88-0e947cf7b146' alliance_link_bit9endpointvisibility='
' alliance_score_bit9endpointvisibility='20'

クエリの例

このセクションでは、[Response - Processes (Response - プロセス)] ダッシュボードの [Top Processes (上位プロセス)] パネルから引用したクエリ例を示します。

パラメーター
  • Host_Name: *
  • IOC_Type: *
  • Feed_Name: *
  • Watchlist_Name: *
  • Group: *
  • Status: *
  • Process_Name: *
クエリ文字列
_sourceCategory="Labs/cb-response-json" | parse regex "(?:process_name)(?:\"\:\"|=')
(?<process_name>.*?)(?:\"|')" multi | parse regex "ioc_type(?:\"\:\"|=')(?<ioc_type>.*?)(?:\"|')
" nodrop | parse regex "feed_name(?:\"\:\"|=')(?<feed_name>.*?)(?:\"|')" nodrop | parse regex 
"group(?:\"\:\"|=')(?<group>.*?)(?:\"|')" nodrop | parse regex "(?:hostname|host)(?:\"\:\"|=')
(?<hostname>.*?)(?:\"|')" nodrop | parse regex "watchlist_name(?:\"\:\"|=')(?<watchlist_name>.*?)
(?:\"|')" nodrop | parse regex "status(?:\"\:\"|=')(?<status>.*?)(?:\"|')" nodrop | where 
(isBlank(hostname) or hostname matches {{Host_Name}}) and (isBlank(ioc_type) or ioc_type matches 
{{IOC_Type}}) and (isBlank(feed_name) or feed_name matches {{Feed_Name}}) and (isBlank(watchlist_name)
 or watchlist_name matches {{Watchlist_Name}}) and (isBlank(group) or group matches {{Group}}) and 
 (isBlank(status) or status matches {{Status}}) and process_name matches {{Process_Name}} | 
 count by process_name | sort by _count | limit 10