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á
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
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.
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 (Zapojit& ActiveX)
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
1
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:
-
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.
-
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.
-
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.
-
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ě
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ů
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
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
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).
Příklady použití
V komunitě
Zdroj: www.habr.com