こんにちは、CheckPointの藤田です。
こちらの記事ではCheckPoint製品のログをAPIを使って取得する手順についてご紹介します。
はじめに
CheckPointはInfinity Portalという各製品やサービスを一元管理するプラットフォームをもっています。このプラットフォームでは、各製品やサービス(UTMやEDR、SASEなど)で発生したログをInfinity Eventsというサービスで集中管理しています。
今回はこのInfinity Eventsに集められたログから、APIを用いて指定した条件でログを抽出する手順を記載します。
まずはCheckPoint製品のAPIについてのドキュメント確認してみましょう。
以下のサイトにAPIに関するドキュメントがあります。
https://sc1.checkpoint.com/documents/latest/api_reference/index.html
この中にInfinity Events APIのページがあります。
https://app.swaggerhub.com/apis-docs/Check-Point/infinity-events-api/1.0.0

こちらのAPIを使ってログを取得します。
おおまかな流れは以下です。
1.API Keyの作成
2.API Keyを用いた認証トークン取得
3.認証トークンを用いたログ抽出条件のクエリー(taskIdを取得)
4.taskIdを用いたログ取得用トークンの取得(pageTokenの取得)
5.taskId,pageTokenを用いたログの取得
1.API Keyの作成
Infinity Portalにログイン後、歯車マークにあるAPI Keysを押下します。

New account API keyを作成
(ServiceはLog as a Serviceを指定)

Client ID、Secret Key、Authentication URLが払い出されるのでコピーしておきます。

2.API Keyを用いた認証トークン取得
コマンドプロンプトを起動し、Authentication URLに対し取得したAPI Key(clientId, accessKey)を用いて認証トークンを要求します。
/auth/external
curl -X "POST" ^
"https://cloudinfra-gw-us.portal.checkpoint.com/auth/external" ^
-H "accept: application/json" ^
-H "Content-Type: application/json" ^
-d ^
"{^
""clientId"": ""1234567890"",^
""accessKey"": ""abcdefghij""^
}"
API Keyの認証が成功すると、認証トークンを得ることができます。
{
"success" : true,
"data" : {
"token" : "認証token",
"csrf" : "a0cd3bd8-4843-4820-b156-0da57f405b8a",
"expires" : "Wed,
13 Aug 2025 00 : 36 : 47 GMT",
"expiresIn" : 1800
}
}
このあとに続くAPIの要求はこの認証tokenを提示することで可能となります。
3.認証トークンを用いたログ抽出条件のクエリー(taskIdの取得)
次に、認証トークンを用いてログ抽出条件をクエリーします。(ここが一番重要なポイントです)
ここでは「cloudService」項目でログを取得したいサービスを指定し、「filter」項目でログの種類や重要度、「timeframe」で時間を指定することができます。
下の例では、CheckPointのUTMであるQuantum Sparkから集められたログのうち、Anti-Botに関するログ(重要度がCritical、ログの信頼性がHighのもの)で2025年8月9日から10日に発生したログを要求しています。
/logs_query
curl -X "POST" ^
"https://cloudinfra-gw-us.portal.checkpoint.com/app/laas-logs-api/api/logs_query" ^
-H "accept: application/json" ^
-H "Authorization: Bearer 認証トークン" ^
-H "Content-Type: application/json" ^
-d ^
"{^
""filter"": ""product:\\""Anti-Bot\\"" and severity:\\""Critical\\"" and confidence_level:\\""High\\"""",^
""limit"": 100,^
""pageLimit"": 100,^
""cloudService"": ""Quantum Spark Management"",^
""timeframe"": {^
""startTime"": ""2025-08-09T05:00:00Z"",^
""endTime"": ""2025-08-10T21:59:59Z""^
},^
""accounts"": [^
""Infinity Portalの該当テナントのAccount ID""^
]^
}"
成功するとtaskIdを取得することができます。
{
"success": true,
"data": {
"taskId": "取得したtaskId"
}
}
4.taskIdを用いたログ取得用トークンの取得(pageTokenの取得)
取得したtaskIdを用いてログ取得用トークンを要求します。
/logs_query/{taskId}
curl -X "GET" ^
"https://cloudinfra-gw-us.portal.checkpoint.com/app/laas-logs-api/api/logs_query/取得したtaskId" ^
-H "accept: application/json" ^
-H "Authorization: Bearer 認証トークン"
成功するとpageTokenを得ることができます。
{
"success": true,
"data": {
"state": "Ready",
"pageTokens": [
"取得したpageToken"
]
}
}
5.taskId, pageTokenを用いたログの取得
これで準備は整いました。taskIdとpageTokenを用いて実際のログを取得します。
/logs_query/retrieve
curl -X "POST" ^
"https://cloudinfra-gw-us.portal.checkpoint.com/app/laas-logs-api/api/logs_query/retrieve" ^
-H "accept: application/json" ^
-H "Authorization: Bearer 認証トークン" ^
-H "Content-Type: application/json" ^
-d ^
"{^
""taskId"": ""取得したtaskId"",^
""pageToken"": ""取得したpageToken""^
}"
成功すると要求した条件に合致するログがJSON形式で取得することができます。
{
"success" : true,
"data" : {
"records" : [
{
"confidence_level" : "High",
"policy_time" : "2025-08-10T10 : 28 : 46.0000000Z",
"severity" : "Critical",
"time" : "2025-08-10T13 : 29 : 09.000001Z",
"id" : "1234567890",
"orig" : "Spark-Masa",
"sequencenum" : 1,
"action" : "Redirect",
"origin_sic_name" : "CN=Spark-Masa,
O=us-vsmp15-pdc.vsmp15.checkpoint.com.piv8r8",
"dst" : "10.0.0.10",
"product" : "Anti-Bot",
"proto" : 6,
"src" : "192.168.1.224",
"domain" : "SMC User",
"gateway_name" : "Spark-Masa",
"service_domain" : "Masa",
"gateway_mac_address" : "00 : 1C : 7F : XX : XX : XX",
"product_family" : "Threat",
"type" : "Log",
"s_port" : 60776,
"service" : 80,
"dst_country" : [
"UnitedStates"
],
"proxy_src_ip" : "192.168.1.224",
"resource" : [
"http : //C&Cサイト"
],
"session_id" : "0x12345678,
0x2,
0xf2f58608,
0xea87e28c",
"web_client_type" : [
"Other: curl/8.13.0"
],
"protection_type" : "URL Reputation",
"malware_action" : [
"Communication with C&C site"
],
"malware_rule_id" : "c075536d-81e9-2642-85e0-3a8a9c49df7d",
"protection_id" : "005A72C28",
"protection_name" : "Anti-Bot test.TC.47e0kFwN",
"scope" : "192.168.1.224",
"smartdefense_profile" : "Recommended_Profile",
"vendor_list" : [
"Check Point ThreatCloud"
],
"smartdefense_profile___TP_match_table" : [
"Recommended_Profile"
],
"malware_rule_name___TP_match_table" : [
""
],
"malware_rule_id___TP_match_table" : [
"c075536d-81e9-2642-85e0-3a8a9c49df7d"
],
"layer_name___TP_match_table" : [
"Standard Threat Prevention"
],
"layer_uuid___TP_match_table" : [
"b267f23c-ff59-4062-923f-605c371d15d3"
],
"received_bytes" : 52,
"sent_bytes" : 0,
"suppressed_logs" : 1,
"tenant_id" : "abcdefg"
}
],
"recordsCount" : 1,
"nextPageToken" : "NULL"
}
}
今回取得したログからは、8月10日の13:29に192.168.1.224の端末からC&Cサイトへの接続が試みられ、Quantum SparkのAnti-Bot機能でブロックされていることがわかります。
このように、Infinity EventsサービスにはCheckPointのすべての製品、サービスのログが集約されるため、このInfinity EventsのAPIを用いることで任意の製品、サービスのログを条件を指定して取得することができます。
例えば
・Harmony Endpoint(EDR)でRansomwareに関するログが発生していないか
・Quantum Spark(UTM)で感染した端末に関するログ(Anti-Bot)が発生していないか
・Harmony SASE(SASE)でSandBoxにより未知のマルウェアを検出したログ(Threat Emulation)が発生していないか
などなど。。ログ監視の夢は広がるばかりです!
さあ、皆さんもこのAPIを使ってクリスマス休暇に自分好みのログ分析システムを作ってみるのはいかがでしょうか?

