Interakce s Check Point SandBlast přes API

Interakce s Check Point SandBlast přes API

Tento článek bude užitečný pro ty, kteří jsou obeznámeni s technologií Check Point pomocí emulace souboru (Emulace hrozeb) a proaktivní čištění souborů (Extrakce hrozby) a chce udělat krok směrem k automatizaci těchto úkolů. Check Point má Threat Prevention API, který běží jak v cloudu, tak na lokálních zařízeních, a funkčně je totožné s kontrolou souborů v dopravních tocích web/smtp/ftp/smb/nfs. Tento článek je částečně autorovou interpretací souboru článků z oficiální dokumentace, ale vychází z mých vlastních provozních zkušeností a vlastních příkladů. V článku také najdete autorovy sbírky Postman pro práci s Threat Prevention API.

Základní zkratky

Rozhraní Threat Prevention API pracuje se třemi hlavními komponentami, které jsou v API volány prostřednictvím následujících textových hodnot:

av — Anti-Virus komponenta, zodpovědná za analýzu signatur známých hrozeb.

te - Komponenta Threat Emulation, která je zodpovědná za kontrolu souborů v karanténě a za provedení škodlivého/neškodného verdiktu po emulaci.

extrakce - Komponenta Threat Extraction, zodpovědná za rychlou konverzi kancelářských dokumentů do bezpečné podoby (ve které je odstraněn veškerý potenciálně škodlivý obsah), aby byly rychle doručeny uživatelům/systémům.

Struktura API a hlavní omezení

Threat Prevention API používá pouze 4 požadavky − upload, dotaz, download a kvóta. V záhlaví pro všechny čtyři požadavky musíte předat klíč API pomocí parametru Povolení. Na první pohled se může zdát struktura mnohem jednodušší než v Management API, ale počet polí v požadavcích na nahrávání a dotazování a struktura těchto požadavků jsou poměrně složité. Ty lze funkčně porovnat s profily prevence hrozeb v zásadách zabezpečení brány/izolovaného prostoru.

V tuto chvíli byla vydána jediná verze Threat Prevention API – 1.0; URL pro volání API by měla obsahovat v1 v části, kde je třeba zadat verzi. Na rozdíl od Management API je nutné v URL uvést verzi API, jinak se požadavek nevykoná.

Součást Anti-Virus, pokud je volána bez dalších součástí (te, extrakce), v současné době podporuje pouze požadavky na dotazy se součty hash md5. Emulace hrozeb a extrakce hrozeb také podporují hašovací součty sha1 a sha256.

Je velmi důležité nedělat chyby v dotazech! Požadavek lze provést bez chyby, ale ne úplně. Když se podíváme trochu dopředu, podívejme se, co se může stát, když jsou v dotazech chyby/překlepy.

Žádost s překlepem se slovem reporty (reports)

{ "request":  [  

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

V odpovědi nebude žádná chyba, ale nebudou tam vůbec žádné informace o hlášeních

{
  "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."
        }
      }
    }
  ]
}

Ale na požadavek bez překlepu v klíči reportů

{ "request":  [  

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

Obdržíme odpověď, která již obsahuje ID pro stahování přehledů

{
  "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."
        }
      }
    }
  ]
}

Pokud odešleme nesprávný/prošlý klíč API, obdržíme jako odpověď chybu 403.

SandBlast API: v cloudu a na místních zařízeních

Požadavky API lze zasílat na zařízení Check Point, která mají povolenou komponentu Threat Emulation (blade). Jako adresu pro požadavky musíte použít ip/url zařízení a port 18194 (například https://10.10.57.19:18194/tecloud/api/v1/file/query). Měli byste se také ujistit, že zásady zabezpečení zařízení toto připojení umožňují. Ve výchozím nastavení autorizace pomocí klíče API na místních zařízeních vypnuto a Autorizační klíč v hlavičkách požadavků nemusí být odeslán vůbec.

Požadavky API do cloudu CheckPoint by se měly odesílat na te.checkpoint.com (například - https://te.checkpoint.com/tecloud/api/v1/file/query). Klíč API lze získat jako zkušební licenci na 60 dní kontaktováním partnerů Check Point nebo místní kanceláře společnosti.

Na lokálních zařízeních zatím není standardně podporována extrakce hrozeb. Threat Prevention API a měl by být použit Threat Prevention API pro Security Gateway (podrobněji si o tom povíme na konci článku).

Místní zařízení požadavek na kvótu nepodporují.

Jinak mezi požadavky na místní zařízení a do cloudu nejsou žádné rozdíly.

Nahrát volání API

Použitá metoda − POST

Adresa pro volání - https:///tecloud/api/v1/file/upload

Požadavek se skládá ze dvou částí (form-data): souboru určeného k emulaci/čištění a těla požadavku s textem.

Textový požadavek nemůže být prázdný, ale nesmí obsahovat žádnou konfiguraci. Aby byla žádost úspěšná, musíte v žádosti zaslat alespoň tento text:

Minimum požadované pro požadavek na nahrání

HTTP POST

https:///tecloud/api/v1/file/upload

Záhlaví:

Oprávnění:

Tělo

{

"požadavek": {

}

}

Soubor

Soubor

V tomto případě bude soubor zpracován v souladu s výchozími parametry: komponenta - te, obrázky OS - Win XP a Win 7bez generování přehledu.

Komentáře k hlavním polím v textové žádosti:

název souboru и typ souboru Můžete je ponechat prázdné nebo je vůbec neposílat, protože to není příliš užitečná informace při nahrávání souboru. V odpovědi API budou tato pole vyplněna automaticky na základě názvu stahovaného souboru a informace v mezipaměti bude stále nutné hledat pomocí md5/sha1/sha256 hash množství.

Příklad požadavku s prázdným file_name a file_type

{

"request": {

"file_name": "",

"file_type": "",

}

}

funkce — seznam, který uvádí potřebnou funkcionalitu při zpracování v karanténě - av (Anti-Virus), te (Emulace hrozeb), extrakce (Extrakce hrozeb). Pokud tento parametr není předán vůbec, bude použita pouze výchozí komponenta - te (Emulace hrozeb).

Chcete-li povolit kontrolu ve třech dostupných komponentách, musíte tyto komponenty zadat v požadavku API.

Příklad požadavku s odbavením av, te a extrakcí

{ "request":  [  

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

Klíče v sekci te

obrazy — seznam obsahující slovníky s ID a číslem revize operačních systémů, ve kterých bude kontrola provedena. ID a čísla revizí jsou stejná pro všechna místní zařízení a cloud.

Seznam operačních systémů a revizí

Dostupné ID obrázku operačního systému

Revize

Obrázek OS a aplikace

e50e99f3-5963-4573-af9e-e3f4750b55e2

1

Microsoft Windows: XP - 32bit SP3
Office: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash Player 9r115 a ActiveX 10.0
Java Runtime: 1.6.0u22

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

1

Microsoft Windows: 7-32bit
Office: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash Player: 10.2 r152 (ZapojitActiveX)
Java Runtime: 1.6.0u0

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

1

Microsoft Windows: 7-32bit
Office: 2010
Adobe Acrobat Reader: 9.4
Flash Player: 11.0.1.152 (Zapojit & ActiveX)
Java Runtime: 1.7.0u0

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

1

Microsoft Windows: 7-32bit
Office: 2013
Adobe Acrobat Reader: 11.0
Flash Player: 15 (Zapojit & ActiveX)
Java Runtime: 1.7.0u9

3ff3ddae-e7fd-4969-818c-d5f1a2be336d

1

Microsoft Windows: 7-64bit
Office: 2013 (32bit)
Adobe Acrobat Reader: 11.0.01
Flash Player: 13 (Zapojit & ActiveX)
Java Runtime: 1.7.0u9

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

 

Microsoft Windows: 8.1-64bit
Office: 2013 (64bit)
Adobe Acrobat Reader: 11.0.10
Flash Player: 18.0.0.160 (Zapojit & ActiveX)
Java Runtime: 1.7.0u9

10b4a9c6-e414-425c-ae8b-fe4dd7b25244 

 

1

Microsoft Windows: 10
Office: Professional Plus 2016 en-us  
Adobe Acrobat Reader: DC 2015 MUI
Flash Player: 20 (Zapojit & ActiveX)
Java Runtime: 1.7.0u9

Pokud není klíč obrázků zadán vůbec, emulace proběhne v obrázcích doporučených Check Pointem (aktuálně Win XP a Win 7). Tyto obrázky jsou doporučeny na základě úvah o nejlepším vyvážení výkonu a rychlosti odlovu.

Zprávy — seznam zpráv, které požadujeme v případě, že se ukáže, že soubor je škodlivý. K dispozici jsou následující možnosti:

  1. shrnutí - Archiv .tar.gz obsahující zprávu o emulaci od vše požadované obrázky (stránka html i komponenty, jako je video z operačního systému emulátoru, výpis síťového provozu, zpráva v json a samotný vzorek v archivu chráněném heslem). Hledáme klíč v odpovědi - souhrnná_zpráva pro následné stažení zprávy.

  2. pdf - dokument o emulaci v jeden obraz, který jsou mnozí zvyklí přijímat prostřednictvím Smart Console. Hledáme klíč v odpovědi - pdf_report pro následné stažení zprávy.

  3. xml - dokument o emulaci v jeden obrázek, vhodný pro následnou analýzu parametrů ve zprávě. Hledáme klíč v odpovědi - xml_report pro následné stažení zprávy.

  4. dehet - Archiv .tar.gz obsahující zprávu o emulaci v jeden požadované obrázky (stránka html i komponenty, jako je video z operačního systému emulátoru, výpis síťového provozu, zpráva v json a samotný vzorek v archivu chráněném heslem). Hledáme klíč v odpovědi - full_report pro následné stažení zprávy.

Co je v souhrnné zprávěInterakce s Check Point SandBlast přes API

Klíče full_report, pdf_report, xml_report jsou ve slovníku pro každý 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."
        }
      }
    }
  ]
}

Ale klíč Summary_report - existuje jeden pro emulaci obecně

{
  "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."
        }
      }
    }
  ]
}

Můžete si vyžádat zprávy tar a xml a pdf současně, můžete požádat o souhrn a tar a xml. Souhrnné hlášení a pdf nebude možné žádat současně.

Klíče v extrakční části

Pro extrakci hrozeb se používají pouze dva klíče:

metoda — pdf (převést na pdf, používá se ve výchozím nastavení) nebo čisté (čištění aktivního obsahu).

extrahované_kódy_dílů - seznam kódů pro odstranění aktivního obsahu, použitelný pouze pro čistou metodu

Kódy pro odstranění obsahu ze souborů

Kód

Popis

1025

Propojené objekty

1026

Makra a kód

1034

Citlivé hypertextové odkazy

1137

Akce PDF GoToR

1139

Akce spouštění PDF

1141

Akce PDF URI

1142

Zvukové akce PDF

1143

Akce ve formátu PDF

1150

Akce PDF JavaScript

1151

Akce formuláře pro odeslání PDF

1018

Databázové dotazy

1019

Vložené objekty

1021

Rychlé ukládání dat

1017

Vlastní vlastnosti

1036

Statistické vlastnosti

1037

Souhrnné vlastnosti

Chcete-li stáhnout vyčištěnou kopii, budete také muset po několika sekundách vytvořit požadavek na dotaz (který bude popsán níže), přičemž v textu požadavku uvedete hodnotu hash souboru a komponentu extrakce. Vyčištěný soubor si můžete vyzvednout pomocí id z odpovědi na dotaz -extrahovaný_soubor_download_id. Ještě jednou, trochu dopředu, uvádím příklady požadavku a odpovědi na dotaz k vyhledání ID pro stažení vyčištěného dokumentu.

Požadavek dotazu na vyhledání klíče extract_file_download_id

{ "request":  [  

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

Odpověď na dotaz (hledejte klíč extract_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."
                }
            }
        }
    ]
}

Přehled

V jednom volání API můžete odeslat pouze jeden soubor k ověření.

Komponenta av nevyžaduje další sekci s klíči, stačí ji specifikovat ve slovníku funkce.

Dotaz volání API

Použitá metoda − POST

Adresa pro volání - https:///tecloud/api/v1/file/query

Před odesláním souboru ke stažení (požadavek na nahrání) je vhodné zkontrolovat mezipaměť sandboxu (požadavek na dotaz), aby se optimalizovalo zatížení serveru API, protože server API již může mít informace a verdikt o staženém souboru. Výzva se skládá pouze z textové části. Požadovaná část požadavku je sha1/sha256/md5 hash množství souboru. Mimochodem, můžete jej získat v odpovědi na žádost o nahrání.

Minimální potřeba pro dotaz

HTTP POST

https:///tecloud/api/v1/file/query

Záhlaví:

Oprávnění:

Tělo

{

"požadavek": {

"sha256":

}

}

Příklad odpovědi na požadavek na nahrání, kde jsou viditelné hodnoty hash 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."
      }
    }
  }
}

Požadavek na dotaz, kromě množství hashe, by měl být v ideálním případě stejný, jako byl (nebo se plánuje být) požadavek na nahrání, nebo dokonce „již“ (obsahovat v požadavku dotazu méně polí než v požadavku na nahrání). V případě, že požadavek na dotaz obsahuje více polí, než bylo v požadavku na nahrání, neobdržíte v odpovědi všechny požadované informace.

Zde je příklad odpovědi na dotaz, kde nebyla nalezena všechna požadovaná data

{
  "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."
        }
      }
    }
  ]
}

Dávejte pozor na pole kód и štítek. Tato pole se ve slovnících stavu objeví třikrát. Nejprve vidíme globální klíč „code“: 1006 a „label“: „PARTIALLY_FOUND“. Dále jsou tyto klíče nalezeny pro každou jednotlivou komponentu, kterou jsme požadovali - te a extrakci. A pokud je pro vás jasné, že data byla nalezena, pak pro extrakci nejsou žádné informace.

Takto vypadal dotaz pro výše uvedený příklad

{ "request":  [  

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

Pokud odešlete dotaz bez komponenty extrakce

{ "request":  [  

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

Poté bude odpověď obsahovat kompletní informace („kód“: 1001, „štítek“: „NAJDENO“)

{
  "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."
        }
      }
    }
  ]
}

Pokud v mezipaměti nejsou vůbec žádné informace, odpověď bude „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."
        }
      }
    }
  ]
}

V jednom volání API můžete odeslat několik hashových částek najednou pro ověření. Odpověď vrátí data ve stejném pořadí, v jakém byla odeslána v požadavku.

Příklad dotazu s několika částkami sha256

{ "request":  [  

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

Odpověď na dotaz s více částkami 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."
        }
      }
    }
  ]
}

Požadavek několika hash součtů najednou v požadavku dotazu bude mít také příznivý vliv na výkon serveru API.

Stáhnout volání API

Použitá metoda − POST (podle dokumentace), GET také funguje (a může se zdát logičtější)

Adresa pro volání - https:///tecloud/api/v1/file/download?id=

Hlavička vyžaduje předání API klíče, tělo požadavku je prázdné, ID ke stažení je předáno v URL adrese.

V reakci na požadavek dotazu, pokud je emulace dokončena a při stahování souboru byly požadovány přehledy, bude viditelné ID pro stahování přehledů. Pokud je požadována vyčištěná kopie, měli byste hledat id pro stažení vyčištěného dokumentu.

Celkově mohou klíče v odpovědi na dotaz obsahující hodnotu id pro načtení být:

  • souhrnná_zpráva

  • full_report

  • pdf_report

  • xml_report

  • Extrahovaný_soubor_stahovací_id

Samozřejmě, abyste tyto klíče obdrželi jako odpověď na dotaz, musí být specifikovány v požadavku (pro sestavy) nebo nezapomeňte provést požadavek pomocí funkce extrakce (pro vyčištěné dokumenty)

Volání API kvóty

Použitá metoda − POST

Adresa pro volání - https:///tecloud/api/v1/file/quota

Chcete-li zkontrolovat zbývající kvótu v cloudu, použijte dotaz na kvótu. Tělo požadavku je prázdné.

Příklad odpovědi na žádost o kvótu

{
  "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"
    }
  ]
}

Threat Prevention API pro Security Gateway

Toto API bylo vyvinuto před Threat Prevention API a je určeno pouze pro místní zařízení. Prozatím to může být užitečné pouze v případě, že potřebujete Threat Extraction API. Pro Threat Emulation je lepší použít běžné Threat Prevention API. Zapnout TP API pro SG a nakonfigurujte klíč API, ze kterého musíte postupovat podle kroků sk113599. Doporučuji věnovat pozornost kroku 6b a zkontrolovat přístupnost stránky https://<IPAddressofSecurityGateway>/UserCheck/TPAPI protože v případě negativního výsledku nemá další konfigurace smysl. Všechna volání API budou odeslána na tuto adresu URL. Typ hovoru (upload/query) je regulován v tlačítku těla hovoru − request_name. Také jsou vyžadovány klíče - api_key (musíte si to pamatovat během procesu konfigurace) a Protocol_version (aktuální verze je 1.1). Oficiální dokumentaci k tomuto API najdete na sk137032. Mezi relativní výhody patří možnost odeslat několik souborů najednou k emulaci při jejich načítání, protože soubory jsou odesílány jako textový řetězec base64. Pro kódování/dekódování souborů do/z base64 můžete použít online konvertor v Postman pro demonstrační účely, například - https://base64.guru. Pro praktické účely byste při psaní kódu měli používat vestavěné metody kódování a dekódování.

Nyní se podíváme blíže na funkce te и extrakce v tomto API.

Pro komponentu te poskytnutý slovník te_options v požadavcích na upload/dotaz a klíče v tomto požadavku se zcela shodují s klíči v Threat Prevention API.

Příklad požadavku na emulaci souboru ve Win10 s reporty

{
"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"]
    }
    }
    ]
}

Pro komponentu extrakce poskytnutý slovník scrub_options. Tento požadavek specifikuje metodu čištění: převod do PDF, vymazání aktivního obsahu nebo výběr režimu v souladu s profilem Prevence hrozeb (je uveden název profilu). Skvělá věc na odpovědi na požadavek extrakčního rozhraní API pro soubor je, že v odpovědi na tento požadavek získáte vyčištěnou kopii jako zašifrovaný řetězec base64 (nemusíte zadávat požadavek na dotaz a hledat id, abyste si stáhli soubor dokument)

Příklad požadavku na vymazání souboru

    {
	"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
		}
	}]
}

Odpověď na žádost

{
	"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": ""
		}
	}]
} 

Navzdory skutečnosti, že k získání vyčištěné kopie je zapotřebí méně požadavků API, považuji tuto možnost za méně výhodnou a pohodlnější než požadavek na data formuláře používaný v Threat Prevention API.

Sbírky pošťáků

V Postman jsem vytvořil kolekce pro Threat Prevention API i Threat Prevention API pro Security Gateway, které představují nejběžnější požadavky API. Aby se serverové ip/url API a klíč automaticky nahradily požadavky a aby se po stažení souboru zapamatovalo množství hash sha256, byly uvnitř kolekcí vytvořeny tři proměnné (najdete je v nastavení kolekce Upravit -> Proměnné): te_api (povinné), api_key (povinné vyplnit, kromě případů, kdy používáte TP API s místními zařízeními), sha256 (nechte prázdné, nepoužívá se v TP API pro SG).

Stáhněte si kolekci Postman pro Threat Prevention API

Stáhněte si kolekci Postman for Threat Prevention for Security Gateway API

Příklady použití

V komunitě Zkontrolujte Matese jsou prezentovány skripty napsané v Pythonu, které kontrolují soubory z požadovaného adresáře přes TP APIA TP API pro SG. Prostřednictvím interakce s Threat Prevention API se vaše schopnost skenovat soubory výrazně rozšiřuje, protože nyní můžete skenovat soubory na několika platformách najednou (přihlášení VirusTotal APIa poté v karanténě Check Point) a přijímat soubory nejen ze síťového provozu, ale také je brát z libovolných síťových disků a například ze systémů CRM.

Zdroj: www.habr.com

Přidat komentář