通過 API 與 Check Point SandBlast 交互

通過 API 與 Check Point SandBlast 交互

這篇文章對於熟悉科技的人會有用 檢查點 透過檔案模擬(威脅模擬)和主動文件清理(威脅提取)並希望朝著自動化這些任務邁出一步。 檢查點有 威脅防禦API,它在雲端和本地設備上運行,並且 從功能上來說,它與檢查 web/smtp/ftp/smb/nfs 流量流中的檔案相同。 本文部分是作者對官方文件中的一組文章的解讀,而是基於我自己的操作經驗和我自己的例子。 另外,在本文中,您也可以找到作者用於使用威脅防護 API 的 Postman 集合。

基本縮寫

威脅防護 API 與三個主要元件配合使用,這些元件在 API 中透過以下文字值進行呼叫:

av — 防毒組件,負責已知威脅的簽章分析。

te - 威脅模擬元件,負責檢查沙箱中的文件,並在模擬後做出惡意/良性的判斷。

萃取 - 威脅提取元件,負責快速將辦公室文件轉換為安全形式(其中所有潛在惡意內容均被刪除),以便快速將其傳遞給使用者/系統。

API結構和主要限制

威脅防護 API 僅使用 4 個請求 - 上傳、查詢、下載、配額。 在所有四個請求的標頭中,您需要使用參數傳遞 API 金鑰 授權。 乍一看,結構可能比上面簡單得多 管理接口,但是上傳和查詢請求中的欄位數量以及這些請求的結構相當複雜。 這些可以在功能上與網關/沙箱安全策略中的威脅防護設定檔進行比較。

目前,威脅防護 API 的唯一版本已發布 - 1.0;API 呼叫的 URL 應包括 v1 在需要指定版本的部分。 與管理API不同的是,需要在URL中標示API版本,否則請求將不會執行。

當防毒元件在沒有其他元件(te、提取)的情況下呼叫時,目前僅支援具有 md5 雜湊和的查詢請求。 威脅模擬和威脅提取也支援 sha1 和 sha256 哈希和。

查詢時不要出錯非常重要! 請求可以無錯誤地執行,但不能完全執行。 展望未來,讓我們看看當查詢中出現錯誤/拼寫錯誤時會發生什麼。

請求中包含單字「報告」(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 請求可以傳送到啟用了威脅模擬元件(刀片)的 Check Point 裝置。 作為請求的位址,您需要使用裝置的 ip/url 和連接埠 18194(例如 https://10.10.57.19:18194/tecloud/api/v1/文件/查詢)。 您還應該確保設備上的安全策略允許此連線。 預設透過本機裝置上的 API 金鑰進行授權 離開 並且請求標頭中的授權密鑰可能根本不會發送。

對 CheckPoint 雲端的 API 請求應發送至 te.checkpoint.com (例如 - https://te.checkpoint.com/tecloud/api/v1/文件/查詢)。 您可以透過聯絡 Check Point 合作夥伴或公司的當地辦公室來取得 API 金鑰作為 60 天的試用授權。

在本地設備上,威脅提取尚未作為標準支援。 威脅防禦API 並且應該使用 安全閘道的威脅防護 API (我們將在文章末尾更詳細地討論它)。

本機不支援配額請求。

否則,對本地設備和對雲端的請求之間沒有區別。

上傳API呼叫

使用的方法 - 解決方案&帖子

致電地址- https:///tecloud/api/v1/檔案/上傳

此請求由兩部分組成(表單資料):用於模擬/清理的文件和帶有文字的請求正文。

文字請求不能為空,但不能包含任何配置。 為了使請求成功,您必須在請求中至少發送以下文字:

上傳請求的最低要求

HTTP POST

https:///tecloud/api/v1/檔案/上傳

頭:

授權:

美體

{

「要求」: {

}

}

文件

文件

在這種情況下,文件將按照預設參數進行處理:組件 - te, 作業系統映像 - Win XP 與 Win 7,而不產生報告。

對文字請求中主要欄位的註解:

文檔名稱 и 文件類型 您可以將它們留空或完全不發送,因為在上傳文件時這不是特別有用的信息。 在API回應中,這些欄位將根據下載檔案的名稱自動填寫,並且快取中的資訊仍然需要使用md5/sha1/sha256哈希值進行搜尋。

具有空 file_name 和 file_type 的請求範例

{

"request": {

"file_name": "",

"file_type": "",

}

}

功能 — 指示在沙箱中處理時所需功能的清單 - av(防毒)、te(威脅模擬)、提取(威脅提取)。 如果完全不傳遞此參數,則僅使用預設元件 - te(威脅模擬)。

若要啟用檢查三個可用元件,您需要在 API 請求中指定這些元件。

簽入 av、te 和提取的請求範例

{ "request":  [  

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

te 部分的按鍵

圖片 — 包含字典的列表,其中包含將執行檢查的作業系統的 ID 和修訂號。 所有本機裝置和雲端的 ID 和修訂號都相同。

作業系統和修訂版本列表

可用作業系統映像 ID

調整

影像作業系統及應用

e50e99f3-5963-4573-af9e-e3f4750b55e2

1

微軟Windows:XP-32位元SP3
辦公:2003,2007
使用Adobe Acrobat Reader:9.0
Flash播放器 9r115 和 的ActiveX 10.0
Java運行時: 1.6.0u22

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

1

微軟Windows:7 - 32 位
辦公:2003,2007
使用Adobe Acrobat Reader:9.0
Flash播放器: 10.2r152(插件的ActiveX)
Java運行時: 1.6.0u0

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

1

微軟Windows:7 - 32 位
辦公:2010
使用Adobe Acrobat Reader:9.4
Flash播放器: 11.0.1.152(插件 & 的ActiveX)
Java運行時: 1.7.0u0

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

1

微軟Windows:7 - 32 位
辦公:2013
使用Adobe Acrobat Reader:11.0
Flash播放器: 15(插件 & 的ActiveX)
Java運行時: 1.7.0u9

3ff3ddae-e7fd-4969-818c-d5f1a2be336d

1

微軟Windows:7 - 64 位
辦公:2013 年(32 位)
使用Adobe Acrobat Reader:11.0.01
Flash播放器: 13(插件 & 的ActiveX)
Java運行時: 1.7.0u9

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

 

微軟Windows:8.1 - 64 位
辦公:2013 年(64 位)
使用Adobe Acrobat Reader:11.0.10
Flash播放器: 18.0.0.160(插件 & 的ActiveX)
Java運行時: 1.7.0u9

10b4a9c6-e414-425c-ae8b-fe4dd7b25244 

 

1

微軟Windows:10
辦公:Professional Plus 2016 zh-CN  
使用Adobe Acrobat Reader:DC 2015 MUI
Flash播放器: 20(插件 & 的ActiveX)
Java運行時: 1.7.0u9

如果根本未指定影像金鑰,則會在 Check Point 建議的影像中進行模擬(目前為 Win XP 和 Win 7)。 這些影像是基於性能和捕獲率的最佳平衡考慮而建議的。

報告 — 我們要求的報告列表,以防文件被證明是惡意的。 可以使用以下選項:

  1. 總結 - .tar.gz 存檔,包含模擬報告 對所有人 請求的映像(html 頁面和元件,例如來自模擬器作業系統的影片、網路流量轉儲、json 格式的報告以及受密碼保護的存檔中的範例本身)。 我們正在尋找答案的關鍵—— 總結報告 以便隨後下載報告。

  2. PDF格式 - 有關仿真的文檔 影像,許多人習慣於透過智慧型控制台接收影像。 我們正在尋找答案的關鍵—— pdf_報告 以便隨後下載報告。

  3. XML - 有關仿真的文檔 圖片,方便後續解析報告中的參數。 我們正在尋找答案的關鍵—— xml_報告 以便隨後下載報告。

  4. 焦油 - .tar.gz 存檔,包含有關模擬的報告 請求的映像(html 頁面和元件,例如來自模擬器作業系統的影片、網路流量轉儲、json 格式的報告以及受密碼保護的存檔中的範例本身)。 我們正在尋找答案的關鍵—— 完整報告 以便隨後下載報告。

摘要報告的內容通過 API 與 Check Point SandBlast 交互

鍵 full_report、pdf_report、xml_report 位於每個作業系統的字典中

{
  "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 文件。

提取部分的按鍵

對於威脅提取,僅使用兩個金鑰:

方法 — pdf(轉換為 pdf,預設使用)或 clean(清理活動內容)。

提取的零件代碼 - 用於刪除活動內容的程式碼列表,僅適用於 clean 方法

從檔案中刪除內容的程式碼

推薦碼

產品描述

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。

用於搜尋 extract_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."
                }
            }
        }
    ]
}

概觀

在一次 API 呼叫中,您只能傳送一個檔案進行驗證。

av 元件不需要有鍵的附加部分,在字典中指定它就足夠了 功能.

查詢API呼叫

使用的方法 - 解決方案&帖子

致電地址- https:///tecloud/api/v1/文件/查詢

在發送文件進行下載(上傳請求)之前,建議檢查沙箱快取(查詢請求),以優化 API 伺服器上的負載,因為 API 伺服器可能已經擁有有關下載文件的資訊和判斷。 此呼叫僅包含文字部分。 請求的必需部分是檔案的 sha1/sha256/md5 雜湊值。 順便說一句,您可以在上傳請求的回應中取得它。

查詢所需的最低限度

HTTP POST

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 次。 首先我們看到全域鍵「code」:XNUMX和「label」:「PARTIALLY_FOUND」。 接下來,為我們請求的每個單獨元件找到這些金鑰 - te 和提取。 如果對於 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"
                ]
            }
		}
	] 
}

那麼答案將包含完整的資訊(“code”:1001,“label”:“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."
        }
      }
    }
  ]
}

在一次 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調用

使用的方法 - 解決方案&帖子 (根據文件), GET 也有效(並且可能看起來更合乎邏輯)

致電地址- https:///tecloud/api/v1/file/download?id=

標頭需要傳遞 API 金鑰,請求內文為空,下載 id 在 URL 位址中傳遞。

回應查詢請求,如果仿真完成並且在下載文件時請求報告,則下載報告的 ID 將可見。 如果需要清理後的副本,您應該尋找 ID 來下載清理後的文件。

總的來說,包含要載入的 id 值的查詢回應中的鍵可以是:

  • 總結報告

  • 完整報告

  • pdf_報告

  • xml_報告

  • 提取檔案下載 ID

當然,為了回應查詢請求接收這些金鑰,必須在請求中指定它們(對於報告)或記住使用提取功能發出請求(對於清理的文件)

配額API調用

使用的方法 - 解決方案&帖子

致電地址- 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"
    }
  ]
}

安全閘道的威脅防護 API

此 API 是在威脅防護 API 之前開發的,僅適用於本機設備。 目前,它僅在您需要威脅提取 API 時才有用。 對於威脅模擬,最好使用常規威脅防護 API。 打開 SG 的 TP API 並配置您需要按照以下步驟操作的 API 金鑰 sk113599。 我建議注意步驟 6b 並檢查頁面的可訪問性 https://<IPAddressofSecurityGateway>/UserCheck/TPAPI 因為如果結果是否定的,進一步的配置就沒有意義。 所有 API 呼叫都將發送到此 url。 呼叫類型(上傳/查詢)在呼叫主體鍵中進行調節 - 請求名稱. 還需要的金鑰是 - api_key (您需要在配置過程中記住它)和 協議版本 (目前目前版本為1.1)。 您可以在以下位置找到該 API 的官方文件: sk137032。 相對優勢包括能夠在載入多個檔案時一次發送多個檔案進行模擬,因為檔案是作為 Base64 文字字串發送的。 要將文件編碼為 Base64 或從 BaseXNUMX 解碼文件,您可以使用 Postman 中的線上轉換器進行演示,例如 - https://base64.guru。 出於實際目的,您在編寫程式碼時應該使用內建的編碼和解碼方法。

現在讓我們仔細看看這些功能 te и 萃取 在此 API 中。

對於組件 te 提供字典 te_選項 在上傳/查詢請求中,且該請求中的key與te中的key完全一致 威脅防禦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 和安全閘道的威脅防護 API 建立了集合,它們代表了最常見的 API 請求。 為了讓伺服器 ip/url API 和 key 自動替換到請求中,並在下載檔案後記住 sha256 雜湊值,在集合中創建了三個變數(您可以在集合設定中找到它們)編輯->變數) : te_api(必需), api_key(必須填寫,本地設備使用TP API時除外), sha256(留空,SG 的 TP API 中未使用).

下載威脅防護 API 的 Postman 集合

下載安全閘道 API 威脅防護的 Postman 集合

使用示例

在社區 檢查配合 提供了用 Python 編寫的腳本,可以透過以下方式檢查所需目錄中的文件 TP APISG 的 TP API。 透過與威脅防護 API 交互,您掃描文件的能力會顯著擴展,因為現在您可以同時掃描多個平台中的文件(簽入 病毒總數 API,然後在 Check Point 沙箱中),不僅可以從網路流量接收文件,還可以從任何網路磁碟機(例如 CRM 系統)取得文件。

來源: www.habr.com

添加評論