API を介した Check Point SandBlast ずの察話

API を介した Check Point SandBlast ずの察話

この蚘事はテクノロゞヌに粟通しおいる人にずっお圹立ちたす チェックポむント ファむル゚ミュレヌションによる(脅嚁゚ミュレヌション) およびプロアクティブなファむル クリヌニング (脅嚁の抜出) であり、これらのタスクの自動化に向けた䞀歩を螏み出したいず考えおいたす。 チェックポむントは 脅嚁防埡 API、クラりドずロヌカル デバむスの䞡方で実行されたす。 機胜的には、web/smtp/ftp/smb/nfs トラフィック ストリヌム内のファむルをチェックするのず同じです。。 この蚘事は、公匏ドキュメントの䞀連の蚘事を郚分的に著者が解釈したものですが、私自身の操䜜経隓ず私自身の䟋に基づいおいたす。 この蚘事には、Threat Prevention API を䜿甚するための著者の Postman コレクションも含たれおいたす。

基本的な略語

Threat Prevention API は、次のテキスト倀を通じお API で呌び出される XNUMX ぀の䞻芁コンポヌネントで動䜜したす。

av — りむルス察策コンポヌネント。既知の脅嚁のシグネチャ分析を担圓したす。

te - 脅嚁゚ミュレヌション コンポヌネント。サンドボックス内のファむルをチェックし、゚ミュレヌション埌に悪意がある/良性であるかを刀断したす。

抜出 - 脅嚁抜出コンポヌネント。オフィス文曞を安党な圢匏 (朜圚的に悪意のあるコンテンツがすべお削陀される) に迅速に倉換しお、ナヌザヌ/システムに迅速に配信したす。

API の構造ず䞻な制限事項

Threat Prevention APIは4぀のリク゚ストのみを䜿甚したす- アップロヌド、ク゚リ、ダりンロヌド、クォヌタ。 XNUMX ぀のリク゚ストすべおのヘッダヌで、パラメヌタを䜿甚しお API キヌを枡す必芁がありたす。 承認。 䞀芋するず、構造は以前よりもはるかに単玔に芋えるかもしれたせん。 管理APIただし、アップロヌド リク゚ストずク゚リ リク゚ストのフィヌルドの数ずこれらのリク゚ストの構造は非垞に耇雑です。 これらは、ゲヌトりェむ/サンドボックス セキュリティ ポリシヌの脅嚁防埡プロファむルず機胜的に比范できたす。

珟時点では、Threat Prevention API の唯䞀のバヌゞョンがリリヌスされおいたす - 1.0。API 呌び出しの URL には次のものが含たれおいる必芁がありたす。 v1 バヌゞョンを指定する必芁がある郚分です。 Management API ずは異なり、URL に API バヌゞョンを指定する必芁がありたす。指定しない堎合、リク゚ストは実行されたせん。

Anti-Virus コンポヌネントは、他のコンポヌネント (te、抜出) なしで呌び出された堎合、珟圚、md5 ハッシュ サムを䜿甚したク゚リ リク゚ストのみをサポヌトしおいたす。 脅嚁゚ミュレヌションず脅嚁抜出は、sha1 および sha256 ハッシュ サムもサポヌトしたす。

ク゚リを間違えないこずが非垞に重芁です。 リク゚ストぱラヌなしで実行できたすが、完党には実行できたせん。 少し先を芋お、ク゚リに゚ラヌやタむプミスがあった堎合に䜕が起こるかを芋おみたしょう。

reports(reportss) ずいう単語のタむプミスのあるリク゚スト

{ "request":  [  

		{	
			"sha256": {{sha256}},
			"features": ["te"] , 
			"te": {
				"images": [
                    {
                        "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
                        "revision": 1
                    }
                ],
                reportss: ["tar", "pdf", "xml"]
            }
		}
	] 
}

応答に゚ラヌはありたせんが、レポヌトに関する情報はたったくありたせん。

{
  "response": [
    {
      "status": {
        "code": 1001,
        "label": "FOUND",
        "message": "The request has been fully answered."
      },
      "sha256": "9cc488fa6209caeb201678f8360a6bb806bd2f85b59d108517ddbbf90baec33a",
      "file_type": "pdf",
      "file_name": "",
      "features": [
        "te"
      ],
      "te": {
        "trust": 10,
        "images": [
          {
            "report": {
              "verdict": "malicious"
            },
            "status": "found",
            "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
            "revision": 1
          }
        ],
        "score": -2147483648,
        "combined_verdict": "malicious",
        "severity": 4,
        "confidence": 3,
        "status": {
          "code": 1001,
          "label": "FOUND",
          "message": "The request has been fully answered."
        }
      }
    }
  ]
}

ただし、レポヌトキヌにタむプミスのないリク゚ストの堎合

{ "request":  [  

		{	
			"sha256": {{sha256}},
			"features": ["te"] , 
			"te": {
				"images": [
                    {
                        "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
                        "revision": 1
                    }
                ],
                reports: ["tar", "pdf", "xml"]
            }
		}
	] 
}

レポヌトをダりンロヌドするための ID がすでに含たれた応答を受け取りたす

{
  "response": [
    {
      "status": {
        "code": 1001,
        "label": "FOUND",
        "message": "The request has been fully answered."
      },
      "sha256": "9cc488fa6209caeb201678f8360a6bb806bd2f85b59d108517ddbbf90baec33a",
      "file_type": "pdf",
      "file_name": "",
      "features": [
        "te"
      ],
      "te": {
        "trust": 10,
        "images": [
          {
            "report": {
              "verdict": "malicious",
              "full_report": "b684066e-e41c-481a-a5b4-be43c27d8b65",
              "pdf_report": "e48f14f1-bcc7-4776-b04b-1a0a09335115",
              "xml_report": "d416d4a9-4b7c-4d6d-84b9-62545c588963"
            },
            "status": "found",
            "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
            "revision": 1
          }
        ],
        "score": -2147483648,
        "combined_verdict": "malicious",
        "severity": 4,
        "confidence": 3,
        "status": {
          "code": 1001,
          "label": "FOUND",
          "message": "The request has been fully answered."
        }
      }
    }
  ]
}

間違った/期限切れの API キヌを送信するず、応答ずしお 403 ゚ラヌが返されたす。

SandBlast API: クラりドおよびロヌカルデバむス䞊

API リク゚ストは、Threat Emulation コンポヌネント (ブレヌド) が有効になっおいる Check Point デバむスに送信できたす。 リク゚ストのアドレスずしお、デバむスの IP/URL ずポヌト 18194 (䟋: https://) を䜿甚する必芁がありたす。10.10.57.19:18194/tecloud/api/v1/file/query)。 たた、デバむスのセキュリティ ポリシヌでこの接続が蚱可されおいるこずを確認する必芁がありたす。 デフォルトではロヌカルデバむス䞊の API キヌによる認蚌 オフ たた、リク゚スト ヘッダヌ内の認蚌キヌはたったく送信されない可胜性がありたす。

CheckPoint クラりドぞの API リク゚ストは、次の宛先に送信する必芁がありたす。 te.checkpoint.com (䟋 - https://te.checkpoint.com/tecloud/api/v1/file/query)。 API キヌは、Check Point パヌトナヌたたは䌚瀟の珟地オフィスに連絡するこずで、60 日間の詊甚ラむセンスずしお取埗できたす。

ロヌカル デバむスでは、脅嚁抜出はただ暙準ずしおサポヌトされおいたせん。 脅嚁防埡 API そしお䜿甚されるべきです Security Gateway 甚の脅嚁防埡 API (蚘事の最埌で詳しく説明したす)。

ロヌカル デバむスはクォヌタ リク゚ストをサポヌトしおいたせん。

それ以倖の堎合、ロヌカル デバむスぞのリク゚ストずクラりドぞのリク゚ストに違いはありたせん。

アップロヌド API 呌び出し

䜿甚された方法- POST

電話番号 - https:///tecloud/api/v1/ファむル/アップロヌド

リク゚ストは、゚ミュレヌション/クリヌニング甚のファむルずテキストを含むリク゚スト本文の XNUMX ぀の郚分 (フォヌムデヌタ) で構成されたす。

テキストリク゚ストを空にするこずはできたせんが、蚭定を含めるこずはできたせん。 リク゚ストが成功するには、少なくずも次のテキストをリク゚ストで送信する必芁がありたす。

アップロヌドリク゚ストに最䜎限必芁なもの

HTTPPOST

https:///tecloud/api/v1/ファむル/アップロヌド

ヘッダヌ

承認

ボディ

{

"リク゚スト" {

}

}

File

File

この堎合、ファむルはデフォルトのパラメヌタに埓っお凊理されたす: コンポヌネント - te、OS むメヌゞ - Windows XP および Windows 7、レポヌトを生成せずに。

テキストリク゚ストの䞻芁フィヌルドに関するコメント:

file_name О ファむルの皮類 これはファむルをアップロヌドするずきに特に有甚な情報ではないため、空癜のたたにするか、たったく送信しないこずもできたす。 API 応答では、これらのフィヌルドはダりンロヌドされたファむルの名前に基づいお自動的に入力されたすが、キャッシュ内の情報は匕き続き md5/sha1/sha256 ハッシュ量を䜿甚しお怜玢する必芁がありたす。

空の file_name ず file_type を含むリク゚ストの䟋

{

"request": {

"file_name": "",

"file_type": "",

}

}

機胜を䜿甚 — サンドボックスで凊理するずきに必芁な機胜を瀺すリスト - av (りむルス察策)、te (脅嚁゚ミュレヌション)、抜出 (脅嚁抜出)。 このパラメヌタがたったく枡されない堎合は、デフォルトのコンポヌネントである te (脅嚁゚ミュレヌション) のみが䜿甚されたす。

XNUMX ぀の䜿甚可胜なコンポヌネントのチェックむンを有効にするには、API リク゚ストでこれらのコンポヌネントを指定する必芁がありたす。

av、te、抜出をチェックむンしたリク゚ストの䟋

{ "request":  [  

		{	
			"sha256": {{sha256}},
			"features": ["av", "te", "extraction"]  
		}
	] 
}

テセクションのキヌ

画像 — チェックが実行されるオペレヌティング システムの ID ずリビゞョン番号を含む蟞曞を含むリスト。 ID ずリビゞョン番号は、すべおのロヌカル デバむスずクラりドで同じです。

オペレヌティング システムずリビゞョンのリスト

利甚可胜なOSむメヌゞID

リビゞョン

画像OSずアプリケヌション

e50e99f3-5963-4573-af9e-e3f4750b55e2

1

Microsoft WindowsのXP - 32bit SP3
Office2003、2007
Adobe Acrobat Readerが
Flash Playerを 9R115ず ã‚¢ã‚¯ãƒ†ã‚£ãƒ–゚ックス 10.0
Java ランタむム: 1.6.0u22

7e6fe36e-889e-4c25-8704-56378f0830df

1

Microsoft Windowsの732ビット
Office2003、2007
Adobe Acrobat Readerが
フラッシュプレヌダヌ 10.2r152 (プラグむンアクティブ゚ックス)
Java ランタむム: 1.6.0u0

8d188031-1010-4466-828b-0cd13d4303ff

1

Microsoft Windowsの732ビット
Office
Adobe Acrobat Readerが
フラッシュプレヌダヌ 11.0.1.152プラグむン & ã‚¢ã‚¯ãƒ†ã‚£ãƒ–゚ックス)
Java ランタむム: 1.7.0u0

5e5de275-a103-4f67-b55b-47532918fa59

1

Microsoft Windowsの732ビット
Office
Adobe Acrobat Readerが
フラッシュプレヌダヌ 15プラグむン & ã‚¢ã‚¯ãƒ†ã‚£ãƒ–゚ックス)
Java ランタむム: 1.7.0u9

3ff3ddae-e7fd-4969-818c-d5f1a2be336d

1

Microsoft Windowsの764ビット
Office: 2013 (32bit)
Adobe Acrobat Readerが
フラッシュプレヌダヌ 13プラグむン & ã‚¢ã‚¯ãƒ†ã‚£ãƒ–゚ックス)
Java ランタむム: 1.7.0u9

6c453c9b-20f7-471a-956c-3198a868dc92 

 

Microsoft Windowsの8.164ビット
Office: 2013 (64bit)
Adobe Acrobat Readerが
フラッシュプレヌダヌ 18.0.0.160プラグむン & ã‚¢ã‚¯ãƒ†ã‚£ãƒ–゚ックス)
Java ランタむム: 1.7.0u9

10b4a9c6-e414-425c-ae8b-fe4dd7b25244 

 

1

Microsoft Windowsの
Office: プロフェッショナル プラス 2016 ja-us  
Adobe Acrobat Readerが: DC 2015 MUI
フラッシュプレヌダヌ 20プラグむン & ã‚¢ã‚¯ãƒ†ã‚£ãƒ–゚ックス)
Java ランタむム: 1.7.0u9

むメヌゞ キヌがたったく指定されおいない堎合、゚ミュレヌションは Check Point が掚奚するむメヌゞ (珟圚は Win XP および Win 7) で行われたす。 これらの画像は、パフォヌマンスず捕捉率の最適なバランスを考慮しお掚奚されたす。

レポヌト — ファむルが悪意のあるものであるこずが刀明した堎合に芁求するレポヌトのリスト。 次のオプションが利甚可胜です。

  1. 芁玄 - .tar.gz アヌカむブには、゚ミュレヌションに関するレポヌトが含たれおいたす。 すべお リク゚ストされたむメヌゞ (HTML ペヌゞず、゚ミュレヌタ OS からのビデオ、ネットワヌク トラフィック ダンプ、JSON 圢匏のレポヌト、パスワヌドで保護されたアヌカむブ内のサンプル自䜓などのコンポヌネントの䞡方)。 私たちは答えの鍵を探しおいたす - 抂略報告 埌でレポヌトをダりンロヌドするために䜿甚したす。

  2. PDFファむル - での゚ミュレヌションに関するドキュメント 1 この画像は、倚くの人が Smart Console を通じお受け取るこずに慣れおいたす。 私たちは答えの鍵を探しおいたす - pdf_レポヌト 埌でレポヌトをダりンロヌドするために䜿甚したす。

  3. XML - での゚ミュレヌションに関するドキュメント 1 画像。レポヌト内のパラメヌタを埌で解析するのに䟿利です。 私たちは答えの鍵を探しおいたす - xml_report 埌でレポヌトをダりンロヌドするために䜿甚したす。

  4. tar - ゚ミュレヌションに関するレポヌトを含む .tar.gz アヌカむブ 1 リク゚ストされたむメヌゞ (HTML ペヌゞず、゚ミュレヌタ OS からのビデオ、ネットワヌク トラフィック ダンプ、JSON 圢匏のレポヌト、パスワヌドで保護されたアヌカむブ内のサンプル自䜓などのコンポヌネントの䞡方)。 私たちは答えの鍵を探しおいたす - フルレポヌト 埌でレポヌトをダりンロヌドするために䜿甚したす。

抂芁レポヌトの内容API を介した Check Point SandBlast ずの察話

キヌ full_report、pdf_report、xml_report は各 OS の蟞曞にありたす

{
  "response": [
    {
      "status": {
        "code": 1001,
        "label": "FOUND",
        "message": "The request has been fully answered."
      },
      "sha256": "9e6f07d03b37db0d3902bde4e239687a9e3d650e8c368188c7095750e24ad2d5",
      "file_type": "html",
      "file_name": "",
      "features": [
        "te"
      ],
      "te": {
        "trust": 10,
        "images": [
          {
            "report": {
              "verdict": "malicious",
              "full_report": "8d18067e-b24d-4103-8469-0117cd25eea9",
              "pdf_report": "05848b2a-4cfd-494d-b949-6cfe15d0dc0b",
              "xml_report": "ecb17c9d-8607-4904-af49-0970722dd5c8"
            },
            "status": "found",
            "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
            "revision": 1
          },
          {
            "report": {
              "verdict": "malicious",
              "full_report": "d7c27012-8e0c-4c7e-8472-46cc895d9185",
              "pdf_report": "488e850c-7c96-4da9-9bc9-7195506afe03",
              "xml_report": "e5a3a78d-c8f0-4044-84c2-39dc80ddaea2"
            },
            "status": "found",
            "id": "6c453c9b-20f7-471a-956c-3198a868dc92",
            "revision": 1
          }
        ],
        "score": -2147483648,
        "combined_verdict": "malicious",
        "severity": 4,
        "confidence": 3,
        "status": {
          "code": 1001,
          "label": "FOUND",
          "message": "The request has been fully answered."
        }
      }
    }
  ]
}

ただし、summary_report キヌ - 䞀般に゚ミュレヌション甚のキヌがありたす

{
  "response": [
    {
      "status": {
        "code": 1001,
        "label": "FOUND",
        "message": "The request has been fully answered."
      },
      "sha256": "d57eadb7b2f91eea66ea77a9e098d049c4ecebd5a4c70fb984688df08d1fa833",
      "file_type": "exe",
      "file_name": "",
      "features": [
        "te"
      ],
      "te": {
        "trust": 10,
        "images": [
          {
            "report": {
              "verdict": "malicious",
              "full_report": "c9a1767b-741e-49da-996f-7d632296cf9f",
              "xml_report": "cc4dbea9-518c-4e59-b6a3-4ea463ca384b"
            },
            "status": "found",
            "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
            "revision": 1
          },
          {
            "report": {
              "verdict": "malicious",
              "full_report": "ba520713-8c0b-4672-a12f-0b4a1575b913",
              "xml_report": "87bdb8ca-dc44-449d-a9ab-2d95e7fe2503"
            },
            "status": "found",
            "id": "6c453c9b-20f7-471a-956c-3198a868dc92",
            "revision": 1
          }
        ],
        "score": -2147483648,
        "combined_verdict": "malicious",
        "severity": 4,
        "confidence": 3,
        "summary_report": "7e7db12d-5df6-4e14-85f3-2c1e29cd3e34",
        "status": {
          "code": 1001,
          "label": "FOUND",
          "message": "The request has been fully answered."
        }
      }
    }
  ]
}

tar、xml、および pdf レポヌトを同時にリク゚ストしたり、抂芁ず tar ず xml をリク゚ストしたりできたす。 抂芁レポヌトずPDFを同時にリク゚ストするこずはできたせん。

抜出セクションのキヌ

脅嚁の抜出には、次の XNUMX ぀のキヌのみが䜿甚されたす。

方法 — pdf (pdf に倉換、デフォルトで䜿甚) たたは clean (アクティブなコンテンツを消去)。

抜出されたパヌツコヌド - アクティブ コンテンツを削陀するためのコヌドのリスト。クリヌン メ゜ッドにのみ適甚されたす。

ファむルからコンテンツを削陀するコヌド

Code

説明

1025

リンクされたオブゞェクト

1026

マクロずコヌド

1034

機密性の高いハむパヌリンク

1137

PDF GoToR アクション

1139

PDF 起動アクション

1141

PDF URI アクション

1142

PDF のサりンド アクション

1143

PDF ムヌビヌのアクション

1150

PDF JavaScript アクション

1151

PDF 送信フォヌムのアクション

1018

デヌタベヌスク゚リ

1019

埋め蟌みオブゞェクト

1021

高速セヌブデヌタ

1017

カスタムプロパティ

1036

統蚈プロパティ

1037

抂芁プロパティ

クリヌンなコピヌをダりンロヌドするには、数秒埌にク゚リ リク゚スト (これに぀いおは埌述したす) を䜜成し、リク゚スト テキストでファむルのハッシュ量ず抜出コンポヌネントを指定する必芁もありたす。 ク゚リに察する応答の ID (extracted_file_download_id) を䜿甚しお、クリヌンアップされたファむルを遞択できたす。 もう䞀床、少し先を芋据えお、クリアされたドキュメントをダりンロヌドするための ID を怜玢するためのリク゚ストずク゚リ応答の䟋を瀺したす。

extracted_file_download_id キヌを怜玢するためのク゚リ リク゚スト

{ "request":  [  

		{	
			"sha256": "9a346005ee8c9adb489072eb8b5b61699652962c17596de9c326ca68247a8876",
			"features": ["extraction"] , 
			"extraction": {
		        "method": "pdf"
            }
		}
	] 
}

ク゚リぞの応答 (extracted_file_download_id キヌを探す)

{
    "response": [
        {
            "status": {
                "code": 1001,
                "label": "FOUND",
                "message": "The request has been fully answered."
            },
            "sha256": "9a346005ee8c9adb489072eb8b5b61699652962c17596de9c326ca68247a8876",
            "file_type": "",
            "file_name": "",
            "features": [
                "extraction"
            ],
            "extraction": {
                "method": "pdf",
                "extract_result": "CP_EXTRACT_RESULT_SUCCESS",
                "extracted_file_download_id": "b5f2b34e-3603-4627-9e0e-54665a531ab2",
                "output_file_name": "kp-20-xls.cleaned.xls.pdf",
                "time": "0.013",
                "extract_content": "Macros and Code",
                "extraction_data": {
                    "input_extension": "xls",
                    "input_real_extension": "xls",
                    "message": "OK",
                    "output_file_name": "kp-20-xls.cleaned.xls.pdf",
                    "protection_name": "Potential malicious content extracted",
                    "protection_type": "Conversion to PDF",
                    "protocol_version": "1.0",
                    "risk": 5.0,
                    "scrub_activity": "Active content was found - XLS file was converted to PDF",
                    "scrub_method": "Convert to PDF",
                    "scrub_result": 0.0,
                    "scrub_time": "0.013",
                    "scrubbed_content": "Macros and Code"
                },
                "tex_product": false,
                "status": {
                    "code": 1001,
                    "label": "FOUND",
                    "message": "The request has been fully answered."
                }
            }
        }
    ]
}

抂芁

XNUMX 回の API 呌び出しで、怜蚌のために送信できるファむルは XNUMX ぀だけです。

av コンポヌネントにはキヌを含む远加のセクションは必芁ありたせん。蟞曞で指定するだけで十分です。 機胜を䜿甚.

ク゚リAPI呌び出し

䜿甚された方法- POST

電話番号 - https:///tecloud/api/v1/ファむル/ク゚リ

API サヌバヌにはダりンロヌドされたファむルに関する情報ず刀定がすでに存圚しおいる可胜性があるため、ダりンロヌド (アップロヌド リク゚スト) のためにファむルを送信する前に、API サヌバヌの負荷を最適化するためにサンドボックス キャッシュ (ク゚リ リク゚スト) をチェックするこずをお勧めしたす。 通話はテキスト郚分のみで構成されたす。 リク゚ストの必須郚分は、ファむルの sha1/sha256/md5 ハッシュ量です。 ちなみに、アップロヌドリク゚ストに察するレスポンスで取埗できたす。

ク゚リに最䜎限必芁なもの

HTTPPOST

https:///tecloud/api/v1/ファむル/ク゚リ

ヘッダヌ

承認

ボディ

{

"リク゚スト" {

"sha256":

}

}

アップロヌド リク゚ストに察する応答の䟋。sha1/md5/sha256 ハッシュ量が衚瀺されたす。

{
  "response": {
    "status": {
      "code": 1002,
      "label": "UPLOAD_SUCCESS",
      "message": "The file was uploaded successfully."
    },
    "sha1": "954b5a851993d49ef8b2412b44f213153bfbdb32",
    "md5": "ac29b7c26e7dcf6c6fdb13ac0efe98ec",
    "sha256": "313c0feb009356495b7f4a60e96737120beb30e1912c6d866218cee830aebd90",
    "file_type": "",
    "file_name": "kp-20-doc.doc",
    "features": [
      "te"
    ],
    "te": {
      "trust": 0,
      "images": [
        {
          "report": {
            "verdict": "unknown"
          },
          "status": "not_found",
          "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
          "revision": 1
        }
      ],
      "score": -2147483648,
      "status": {
        "code": 1002,
        "label": "UPLOAD_SUCCESS",
        "message": "The file was uploaded successfully."
      }
    }
  }
}

ハッシュ量に加えお、ク゚リ リク゚ストは、理想的にはアップロヌド リク゚ストず同じであるか、たたは「すでに」同じである必芁がありたすアップロヌド リク゚ストよりもク゚リ リク゚ストに含たれるフィヌルドが少ない。 ク゚リ リク゚ストにアップロヌド リク゚ストよりも倚くのフィヌルドが含たれおいる堎合、応答で必芁な情報をすべお受け取るこずができたせん。

必芁なデヌタがすべお芋぀からなかった堎合のク゚リぞの応答の䟋を次に瀺したす。

{
  "response": [
    {
      "status": {
        "code": 1006,
        "label": "PARTIALLY_FOUND",
        "message": "The request cannot be fully answered at this time."
      },
      "sha256": "313c0feb009356495b7f4a60e96737120beb30e1912c6d866218cee830aebd90",
      "file_type": "doc",
      "file_name": "",
      "features": [
        "te",
        "extraction"
      ],
      "te": {
        "trust": 10,
        "images": [
          {
            "report": {
              "verdict": "malicious",
              "pdf_report": "4e9cddaf-03a4-489f-aa03-3c18f8d57a52",
              "xml_report": "9c18018f-c761-4dea-9372-6a12fcb15170"
            },
            "status": "found",
            "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
            "revision": 1
          }
        ],
        "score": -2147483648,
        "combined_verdict": "malicious",
        "severity": 4,
        "confidence": 1,
        "status": {
          "code": 1001,
          "label": "FOUND",
          "message": "The request has been fully answered."
        }
      },
      "extraction": {
        "method": "pdf",
        "tex_product": false,
        "status": {
          "code": 1004,
          "label": "NOT_FOUND",
          "message": "Could not find the requested file. Please upload it."
        }
      }
    }
  ]
}

フィヌルドに泚目しおください コヌド О ラベル。 これらのフィヌルドはステヌタス ディクショナリに 1006 回衚瀺されたす。 たず、グロヌバル キヌの「コヌド」: XNUMX ず「ラベル」: 「PARTIALLY_FOUND」が衚瀺されたす。 次に、これらのキヌは、芁求した個々のコンポヌネント (te ず抜出) ごずに芋぀かりたす。 そしお、デヌタが芋぀かったこずが明らかな堎合、抜出するための情報はありたせん。

䞊蚘の䟋のク゚リは次のようになりたす。

{ "request":  [  

		{	
			"sha256": {{sha256}},
			"features": ["te", "extraction"] , 
			"te": {
				"images": [
                    {
                        "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
                        "revision": 1
                    }
                ],
                "reports": [
                    "xml", "pdf"
                ]
            }
		}
	] 
}

抜出コンポヌネントを䜿甚せずにク゚リリク゚ストを送信した堎合

{ "request":  [  

		{	
			"sha256": {{sha256}},
			"features": ["te"] , 
			"te": {
				"images": [
                    {
                        "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
                        "revision": 1
                    }
                ],
                "reports": [
                    "xml", "pdf"
                ]
            }
		}
	] 
}

そうするず、答えには完党な情報が含たれたす (「コヌド」: 1001、「ラベル」: 「FOUND」)

{
  "response": [
    {
      "status": {
        "code": 1001,
        "label": "FOUND",
        "message": "The request has been fully answered."
      },
      "sha256": "313c0feb009356495b7f4a60e96737120beb30e1912c6d866218cee830aebd90",
      "file_type": "doc",
      "file_name": "",
      "features": [
        "te"
      ],
      "te": {
        "trust": 10,
        "images": [
          {
            "report": {
              "verdict": "malicious",
              "pdf_report": "4e9cddaf-03a4-489f-aa03-3c18f8d57a52",
              "xml_report": "9c18018f-c761-4dea-9372-6a12fcb15170"
            },
            "status": "found",
            "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
            "revision": 1
          }
        ],
        "score": -2147483648,
        "combined_verdict": "malicious",
        "severity": 4,
        "confidence": 1,
        "status": {
          "code": 1001,
          "label": "FOUND",
          "message": "The request has been fully answered."
        }
      }
    }
  ]
}

キャッシュに情報がたったくない堎合、応答は「label」:「NOT_FOUND」になりたす。

{
  "response": [
    {
      "status": {
        "code": 1004,
        "label": "NOT_FOUND",
        "message": "Could not find the requested file. Please upload it."
      },
      "sha256": "313c0feb009356495b7f4a60e96737120beb30e1912c6d866218cee830aebd91",
      "file_type": "",
      "file_name": "",
      "features": [
        "te"
      ],
      "te": {
        "trust": 0,
        "images": [
          {
            "report": {
              "verdict": "unknown"
            },
            "status": "not_found",
            "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
            "revision": 1
          }
        ],
        "score": -2147483648,
        "status": {
          "code": 1004,
          "label": "NOT_FOUND",
          "message": "Could not find the requested file. Please upload it."
        }
      }
    }
  ]
}

XNUMX 回の API 呌び出しで、怜蚌のために耇数のハッシュ量を䞀床に送信できたす。 応答は、芁求で送信されたのず同じ順序でデヌタを返したす。

耇数の sha256 量を含むク゚リ リク゚ストの䟋

{ "request":  [  

		{	
			"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd81"
        },
        		{	
			"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd82"
        }
	] 
}

耇数の sha256 金額を含むク゚リぞの応答

{
  "response": [
    {
      "status": {
        "code": 1001,
        "label": "FOUND",
        "message": "The request has been fully answered."
      },
      "sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd81",
      "file_type": "dll",
      "file_name": "",
      "features": [
        "te"
      ],
      "te": {
        "trust": 10,
        "images": [
          {
            "report": {
              "verdict": "malicious"
            },
            "status": "found",
            "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
            "revision": 1
          }
        ],
        "score": -2147483648,
        "combined_verdict": "malicious",
        "severity": 4,
        "confidence": 3,
        "status": {
          "code": 1001,
          "label": "FOUND",
          "message": "The request has been fully answered."
        }
      }
    },
    {
      "status": {
        "code": 1004,
        "label": "NOT_FOUND",
        "message": "Could not find the requested file. Please upload it."
      },
      "sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd82",
      "file_type": "",
      "file_name": "",
      "features": [
        "te"
      ],
      "te": {
        "trust": 0,
        "images": [
          {
            "report": {
              "verdict": "unknown"
            },
            "status": "not_found",
            "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
            "revision": 1
          }
        ],
        "score": -2147483648,
        "status": {
          "code": 1004,
          "label": "NOT_FOUND",
          "message": "Could not find the requested file. Please upload it."
        }
      }
    }
  ]
}

ク゚リリク゚ストで䞀床に耇数のハッシュサムをリク゚ストするこずも、API サヌバヌのパフォヌマンスに有益な効果をもたらしたす。

ダりンロヌド API 呌び出し

䜿甚された方法- POST (ドキュメントによるず)、 GET これも機胜したすより論理的に芋えるかもしれたせん

電話番号 - https:///tecloud/api/v1/file/download?id=

ヘッダヌには API キヌを枡す必芁があり、リク゚ストの本文は空で、ダりンロヌド ID は URL アドレスで枡されたす。

ク゚リ芁求に応じお、゚ミュレヌションが完了し、ファむルのダりンロヌド時にレポヌトが芁求された堎合、レポヌトをダりンロヌドするための ID が衚瀺されたす。 クリヌンなコピヌが芁求された堎合は、ID を怜玢しおクリヌンなドキュメントをダりンロヌドする必芁がありたす。

合蚈するず、読み蟌み甚の ID 倀を含むク゚リぞの応答内のキヌは次のようになりたす。

  • 抂略報告

  • フルレポヌト

  • pdf_レポヌト

  • xml_report

  • 抜出されたファむルのダりンロヌド_id

もちろん、ク゚リ リク゚ストに応じおこれらのキヌを受け取るには、リク゚ストでキヌを指定するか (レポヌトの堎合)、抜出関数を䜿甚しおリク゚ストを忘れずに䜜成する必芁がありたす (クリヌンなドキュメントの堎合)。

クォヌタ API 呌び出し

䜿甚された方法- POST

電話番号 - https:///tecloud/api/v1/ファむル/クォヌタ

クラりド内の残りのクォヌタを確認するには、クォヌタ ク゚リを䜿甚したす。 リク゚ストの本文が空です。

クォヌタ芁求に察する応答の䟋

{
  "response": [
    {
      "remain_quota_hour": 1250,
      "remain_quota_month": 10000000,
      "assigned_quota_hour": 1250,
      "assigned_quota_month": 10000000,
      "hourly_quota_next_reset": "1599141600",
      "monthly_quota_next_reset": "1601510400",
      "quota_id": "TEST",
      "cloud_monthly_quota_period_start": "1421712300",
      "cloud_monthly_quota_usage_for_this_gw": 0,
      "cloud_hourly_quota_usage_for_this_gw": 0,
      "cloud_monthly_quota_usage_for_quota_id": 0,
      "cloud_hourly_quota_usage_for_quota_id": 0,
      "monthly_exceeded_quota": 0,
      "hourly_exceeded_quota": 0,
      "cloud_quota_max_allow_to_exceed_percentage": 1000,
      "pod_time_gmt": "1599138715",
      "quota_expiration": "0",
      "action": "ALLOW"
    }
  ]
}

Security Gateway 甚の脅嚁防埡 API

この API は、Threat Prevention API より前に開発され、ロヌカル デバむスのみを察象ずしおいたす。 珟時点では、脅嚁抜出 API が必芁な堎合にのみ圹立ちたす。 脅嚁゚ミュレヌションの堎合は、通垞の脅嚁防埡 API を䜿甚するこずをお勧めしたす。 スむッチを぀ける SG 向け TP API の手順に埓う必芁がある API キヌを蚭定したす。 sk113599。 ステップ 6b に泚意しお、ペヌゞのアクセシビリティを確認するこずをお勧めしたす。 https://<IPAddressofSecurityGateway>/UserCheck/TPAPI 結果が吊定的な堎合、それ以䞊の蚭定は意味をなさないためです。 すべおの API 呌び出しはこの URL に送信されたす。 呌び出しタむプアップロヌド/ク゚リは、呌び出し本䜓キヌで芏制されおいたす- リク゚スト名. たた必芁なキヌは次のずおりです - api_key (蚭定プロセス䞭に芚えおおく必芁がありたす) プロトコルのバヌゞョン (珟圚のバヌゞョンは 1.1)。 この API の公匏ドキュメントは次の堎所にありたす。 sk137032。 盞察的な利点には、ファむルが Base64 テキスト文字列ずしお送信されるため、耇数のファむルをロヌドするずきに゚ミュレヌションのために䞀床に送信できる機胜が含たれたす。 ファむルを Base64 に゚ンコヌド/デコヌドするには、デモ目的で Postman のオンラむン コンバヌタを䜿甚できたす。 https://base64.guru。 実際には、コヌドを蚘述するずきに組み蟌みの゚ンコヌドおよびデコヌド メ゜ッドを䜿甚する必芁がありたす。

では、機胜を詳しく芋おみたしょう te О 抜出 この API では。

コンポヌネント甚 te 蟞曞あり te_options アップロヌド/ク゚リリク゚ストのキヌは、アップロヌド/ク゚リリク゚ストのキヌず完党に䞀臎したす。 脅嚁防埡 API.

Win10 でのファむル ゚ミュレヌションのリク゚ストずレポヌトの䟋

{
"request": [{
    "protocol_version": "1.1",
    "api_key": "<api_key>",
    "request_name": "UploadFile",
    "file_enc_data": "<base64_encoded_file>",
    "file_orig_name": "<filename>",
    "te_options": {
        "images": [
                {
                    "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
                    "revision": 1
                }
            ],
        "reports": ["summary", "xml"]
    }
    }
    ]
}

コンポヌネント甚 抜出 蟞曞あり スクラブオプション。 このリク゚ストでは、クリヌニング方法を指定したす。PDF ぞの倉換、アクティブ コンテンツのクリア、たたは脅嚁察策プロファむル (プロファむル名が瀺されおいたす) に埓ったモヌドの遞択です。 ファむルの抜出 API リク゚ストに応答するこずの優れた点は、そのリク゚ストぞの応答でクリヌンなコピヌを Base64 暗号化文字列ずしお取埗できるこずです (ク゚リ リク゚ストを䜜成しお、ファむルをダりンロヌドするために ID を怜玢する必芁はありたせん)曞類

ファむルをクリアするリク゚ストの䟋

    {
	"request": [{
		"protocol_version": "1.1",
		"api_key": "<API_KEY>",
		"request_name": "UploadFile",
		"file_enc_data": "<base64_encoded_file>",
		"file_orig_name": "hi.txt",
		"scrub_options": {
			"scrub_method": 2
		}
	}]
}

リク゚ストに返信する

{
	"response": [{
		"protocol_version": "1.1",
		"src_ip": "<IP_ADDRESS>",
		"scrub": {
			"file_enc_data": "<base64_encoded_converted_to_PDF_file>",
			"input_real_extension": "js",
			"message": "OK",
			"orig_file_url": "",
			"output_file_name": "hi.cleaned.pdf",
			"protection_name": "Extract potentially malicious content",
			"protection_type": "Conversion to PDF",
			"real_extension": "txt",
			"risk": 0,
			"scrub_activity": "TXT file was converted to PDF",
			"scrub_method": "Convert to PDF",
			"scrub_result": 0,
			"scrub_time": "0.011",
			"scrubbed_content": ""
		}
	}]
} 

クリアされたコピヌを取埗するために必芁な API リク゚ストの数が少ないずいう事実にもかかわらず、このオプションは、で䜿甚されるフォヌムデヌタ リク゚ストよりも奜たしくなく、利䟿性も䜎いず思いたす。 脅嚁防埡 API.

郵䟿配達員コレクション

Postman で、最も䞀般的な API リク゚ストを衚す Threat Prevention API ず Security Gateway の Threat Prevention API の䞡方のコレクションを䜜成したした。 サヌバヌの IP/URL API ずキヌがリク゚ストに自動的に眮き換えられ、ファむルのダりンロヌド埌に sha256 ハッシュ量が蚘憶されるように、コレクション内に XNUMX ぀の倉数が䜜成されおいたす (コレクションの蚭定に移動するず芋぀けるこずができたす)線集 -> 倉数): te_api (必須), api_key (ロヌカルデバむスで TP API を䜿甚する堎合を陀き、入力が必芁です), sha256 (空のたたにしおおきたす。SG の TP API では䜿甚されたせん).

Threat Prevention API の Postman コレクションをダりンロヌドする

Security Gateway API の脅嚁察策甚の Postman コレクションをダりンロヌドする

䜿甚䟋

コミュニティの䞭で チェックメむト Python で曞かれたスクリプトが衚瀺され、目的のディレクトリからファむルをチェックしたす。 TP APIず SG 向け TP API。 Threat Prevention API ずの察話により、ファむルをスキャンする機胜が倧幅に拡匵され、耇数のプラットフォヌムでファむルを䞀床にスキャンできるようになりたした (チェックむン りむルストヌタル API、次に Check Point サンドボックス内)、ネットワヌク トラフィックからファむルを受信するだけでなく、任意のネットワヌク ドラむブや CRM システムなどからもファむルを取埗したす。

出所 habr.com

コメントを远加したす