- 限定コンテンツへのアクセス
- 他ユーザーとのつながり
- あなたの体験を共有
- サポート情報の発見
この記事ではCortex XDRのHTTP Collectorを使用して、ログデータを送信する方法について紹介します。
HTTP Collectorを使用するとCortex XDRのRestAPI経由でデータを取り込むことができます。
ユースケースとして、SaaSアプリケーションのログをエクスポート可能し
Cortex XDRにHTTP経由で取り込むことなどが想定されます。
Custom CollectorsのHTTPにある「Add Instance」をクリックします。
以下のようにHTTP Collectorを設定します。ここでは取り込むログのフォーマットはJSONとします。
Save & Generate Tokenをクリックします。
API Keyが表示されるのでこれを控えておきます。
以下のサンプルコードで説明します。
サンプルコードは機能を確認するものであり、本番環境で使用することを目的としてものではありません。
ここではjsonrec_stringに書かれた値がJSONフォーマットのサンプルレコード(2レコード)となっています。
<your_api_key>に控えておいたAPI Key設定し、urlに環境に合わせたURLを記述します。
記述が終えたらサンプルコードに名前をつけてファイルとして保存(sample.py)し実行します。
(例えば、python3 sample.py)
import requests
import json
HC_CONFIG={
'apikey': <your_api_key>,
'content_type': 'application/json',
'url': 'https://api-<your tenant>paloaltonetworks.com/logs/v1/event'
}
class http_collector:
def __init__(self,config):
self._headers = {
"Authorization": config["apikey"],
"Content-Type": config["content_type"]
}
self._url= config["url"]
def do(self,postdata):
try:
res = requests.post(url=self._url, headers=self._headers, data=postdata)
except Exception as e:
print (e)
return res
if __name__ == "__main__":
hc = http_collector(HC_CONFIG)
jsonrec_string='{"timestamp":1696150800,"local_ip":"172.19.55.100","local_port":15600,"remote_ip":"192.168.110.11","remote_port":22}\
{"timestamp":1696152600,"local_ip":"172.19.56.101","local_port":22344,"remote_ip":"192.168.110.34","remote_port":443}'
res = hc.do(jsonrec_string)
print (str(res.status_code) + " " + str(res.json()))
実行し、成功すると以下のようなステータスが返ってくると思います。
200 {'error': 'false'}
Collectorの設定で行ったProduct、Vendorでデータセットが選択できるようになっていますので、
指定し検索します。データが保存されていれば以下のように返ってきます。
取り込んだログはCorrelation Rulesなどを使用し脅威検出にご利用いただくことも可能です。
HTTP Collectorの詳細はこちら