
Ez a cikk hasznos lesz azoknak, akik ismerik a technológiákat Check Point fájlok emulálásához (Fenyegetés Emanáció) és a fájlok proaktív törléséhez (Fenyegetés Kivonás) és szeretnék lépést tenni az ilyen feladatok automatizálása felé. A Check Point rendelkezik , amely a felhőben és a helyi eszközökön is működik, és funkcionálisan az web/smtp/ftp/smb/nfs forgalomban található fájlok ellenőrzésével azonos.Ez a cikk részben saját értelmezése egy hivatalos dokumentációs cikkekből álló készletnek, de saját tapasztalaton és példákon alapul. A cikkben Postman gyűjteményeket is talál majd a Threat Prevention API-val való munkához.
Főbb rövidítések
A Threat Prevention API három fő komponenssel működik, amelyeket az API-ban az alábbi szöveges értékekkel hívunk meg:
av — Anti-Virus komponens, amely a már ismert fenyegetések aláírás-elemzéséért felelős.
%Dátum — Threat Emulation komponens, amely a fájlok ellenőrzéséért felelős a homokozóban, és a vezető ítéletének kiadásáért felelős, hogy kártevő (malicious) vagy tiszta (benign) az emuláció után.
extraction — Threat Extraction komponens, amely a potenciálisan káros tartalom eltávolításával gyorsan átkonvertálja az irodai dokumentumokat biztonságos formátumba, a felhasználóknak/rendszereknek való gyors kiszállítás céljából.
API struktúra és főbb korlátozások
A Threat Prevention API összesen 4 lekérdezést használ — upload, query, download és quota. Az összes négy lekérdezéshez az API kulcsot kell átadni a paraméter segítségével. Authorization. Első pillantásra a struktúra sokkal egyszerűbbnek tűnhet, mint a , de a upload és query lekérdezések mezőinek száma és azok struktúrája meglehetősen összetett. Ezek funkcionálisan összehasonlíthatók a Threat Prevention profilokkal a tűzfal/homokozó biztonsági politikájában.
Jelenleg az egyetlen verziója a Threat Prevention API-nak — 1.0, az API hívások URL-jében meg kell adni v1 azt a részt, ahol a verzió megjelölését kérik. A Management API-val ellentétben az API verziójának megadása az URL-ben kötelező, különben a lekérdezés nem fog teljesülni.
Az Anti-Virus komponens más komponensek (te, extraction) nélkül történő hívásánál jelenleg csak az md5 hash értékekkel ellátott query lekérdezéseket támogat. A Threat Emulation és Threat Extraction sha1 és sha256 hash értékeket is támogat.
Nagyon fontos, hogy ne hibázzunk a lekérdezésekben! A lekérdezést hibátlanul végrehajtják, de nem teljesen. Egy kis előreugrással nézzük meg, mi történhet a lekérdezési hibák/eltírások során.
Elgépelés a reports (reportss) szónál
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
reportss: ["tar", "pdf", "xml"]
}
}
]
}A válaszban nem lesz hiba, de az jelentések információi sem fognak megjelenni
{
"response": [
{
"status": {
"code": 1001,
"label": "FOUND",
"message": "A kérés teljes mértékben megválaszolva."
},
"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": "A kérés teljes mértékben megválaszolva."
}
}
}
]
}Ez a kérés helyes reports kulcs nélkül
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
reports: ["tar", "pdf", "xml"]
}
}
]
}Olyan választ kapunk, amely már tartalmazza az id-kat a jelentések letöltéséhez
{
"response": [
{
"status": {
"code": 1001,
"label": "FOUND",
"message": "A kérés teljes mértékben megválaszolva."
},
"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": "A kérés teljes mértékben megválaszolva."
}
}
}
]
}Ha helytelen vagy lejárt API kulcsot küldünk, akkor a válaszban 403-as hibát kapunk.
SandBlast API: felhőben és lokális eszközökön
API kéréseket a Check Point eszközökre lehet küldeni, ahol a Threat Emulation komponens (blade) be van kapcsolva. A kérésekhez az eszköz IP-címét vagy URL-jét és a 18194 portot kell használni (például — https://10.10.57.19:18194/tecloud/api/v1/file/query). Также следует убедиться в том, что политикой безопасности на устройстве разрешено такое подключение. Авторизация через API ключ на локальных устройствах по умолчанию ki van kapcsolva és az Authorization kulcsot a kérés fejlécei között nem is szükséges küldeni.
A CheckPoint felhőbe küldött API kéréseket a következő címre kell küldeni te.checkpoint.com (például — https://te.checkpoint.com/tecloud/api/v1/file/query). API ключ можно получить в виде триальной лицензии на 60 дней, обратившись к партнерам Check Point или в локальный офис компании.
A lokális eszközökön a Threat Extraction jelenleg nem támogatott a standardban és használni kell (erről részletesebben a cikk végén beszélünk).
A lokális eszközök nem támogatják a quota lekérdezést.
Egyébként nincs különbség a lokális eszközökhöz és a felhőhöz intézett lekérdezések között.
A Upload API hívása
Használt módszer - POST http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/junos-conf-root:configuration/junos-conf-protocols:protocols
A hívás címe - LETS_ENCRYPT_STAGING<service_address>/tecloud/api/v1/file/upload
A kérés két részből áll (form-data): egy fájlt a szimulációhoz/tisztításhoz és a kérés törzsét szöveggel.
A szöveges kérés nem lehet üres, de nem is tartalmazhat semmilyen konfigurációt. Ahhoz, hogy a kérés sikeres legyen, a következő minimum szöveget kell elküldeni:
A szükséges minimum a feltöltési kéréshez
HTTP POST
LETS_ENCRYPT_STAGING<service_address>/tecloud/api/v1/file/upload
Fejlécek:
Authorization: <api_key>
Body
{
"request": {
}
}
Fájl
Fájl
Ebben az esetben a fájl a feldolgozásra alapértelmezett paraméterek szerint kerül: komponens - %Dátum, operációs rendszerek képei - Win XP és Win 7, jelentésgenerálás nélkül.
Megjegyzések a szöveges kérés főbb mezőiről:
file_name és file_type üresen is hagyhatók, vagy egyáltalán nem küldhetők el, mivel ez nem túl hasznos információ a fájl feltöltésekor. Az API válaszában ezek a mezők automatikusan kitöltődnek a feltöltött fájl neve alapján, és az információt a cache-ben mindenképpen a md5/sha1/sha256 hash értékek alapján kell keresni.
Példa megkeresésre üres file_name és file_type mezőkkel
{
"request": {
"file_name": "",
"file_type": "",
}
}features — egy lista, amelyben a szükséges funkciók szerepelnek a homokozóban történő feldolgozás során — av (Anti-Virus), te (Threat Emulation), extraction (Threat Extraction). Ha ezt a paramétert egyáltalán nem adjuk meg, akkor csak az alapértelmezett komponens kerül alkalmazásra — te (Threat Emulation).
A három elérhető komponens ellenőrzésének bekapcsolásához ezeket a komponenseket kell megadni az API lekérdezésben.
Példa lekérdezésre az av, te és extraction ellenőrzésével
{ "request": [
{
"sha256": {{sha256}},
"features": ["av", "te", "extraction"]
}
]
}A te szekció kulcsai
images — egy lista, amelyben szótárakat kell megadni az operációs rendszerek id-jével és verziószámával, amelyekben elvégzik az ellenőrzést. Az ID-k és verziószámok az összes lokális eszközre és a felhőre nézve azonosak.
Operációs rendszerek és verziók listája
Elérhető OS Kép ID
Verzió
Kép OS és Alkalmazás
e50e99f3-5963-4573-af9e-e3f4750b55e2
1
Microsoft Windows: XP — 32bit SP3
Office: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash Player 9r115 és 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.2r152 (Plugin& 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 (Plugin & 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 (Plugin & 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 (Plugin & 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 (Plugin & 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 (Plugin & ActiveX)
Java Runtime: 1.7.0u9
Ha a képek kulcsa nincs megadva, akkor az emuláció a Check Point által ajánlott képekben fog végbemenni (jelenleg ez a Win XP és Win 7). Ezeket a képeket a teljesítmény és a hatékonyság legjobb egyensúlyának elérése alapján ajánlják.
jelentések — a listája azoknak a jelentéseknek, amelyeket kérünk, ha a fájl kártékony lenne. Az alábbi lehetőségek állnak rendelkezésre:
summary — .tar.gz archívum, amely tartalmazza az emulációs jelentést minden a kért image-ekről (mint html oldal, valamint olyan elemek, mint az emulátor operációs rendszeréből származó videofelvétel, a hálózati forgalom dumpja, a json jelentés, és magát a mintát jelszóval védett archívumban). A válaszban keressük a kulcsot — summary_report a jelentés későbbi letöltéséhez.
pdf — az emulációs dokumentum egy egy image, amelyet sokan megszoktak a Smart Console-on keresztül kapni. A válaszban keressük a kulcsot — pdf_report a jelentés későbbi letöltéséhez.
xml — az emulációs dokumentum egy egy image, amely kényelmes a jelentés paramétereinek későbbi feldolgozásához. A válaszban keressük a kulcsot — xml_report a jelentés későbbi letöltéséhez.
tar — .tar.gz archívum, amely tartalmazza az emulációs jelentést a egy a kért image-ekről (mint html oldal, valamint olyan elemek, mint az emulátor operációs rendszeréből származó videofelvétel, a hálózati forgalom dumpja, a json jelentés, és magát a mintát jelszóval védett archívumban). A válaszban keressük a kulcsot — full_report a jelentés későbbi letöltéséhez.
Mi található a summary jelentésben
A kulcsok full_report, pdf_report, xml_report minden operációs rendszerhez benne vannak a szótárban.
{
"response": [
{
"status": {
"code": 1001,
"label": "FOUND",
"message": "A kérés teljes mértékben megválaszolva."
},
"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": "A kérés teljes mértékben megválaszolva."
}
}
}
]
}A summary_report kulcs az emulációra vonatkozóan egyetlen egységet képvisel.
{
"response": [
{
"status": {
"code": 1001,
"label": "MEGTALÁLT",
"message": "A kérés teljes megválaszolásra került."
},
"sha256": "d57eadb7b2f91eea66ea77a9e098d049c4ecebd5a4c70fb984688df08d1fa833",
"file_type": "exe",
"file_name": "",
"features": [
"te"
],
"te": {
"trust": 10,
"images": [
{
"report": {
"verdict": "rosszindulatú",
"full_report": "c9a1767b-741e-49da-996f-7d632296cf9f",
"xml_report": "cc4dbea9-518c-4e59-b6a3-4ea463ca384b"
},
"status": "megtalálva",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
},
{
"report": {
"verdict": "rosszindulatú",
"full_report": "ba520713-8c0b-4672-a12f-0b4a1575b913",
"xml_report": "87bdb8ca-dc44-449d-a9ab-2d95e7fe2503"
},
"status": "megtalálva",
"id": "6c453c9b-20f7-471a-956c-3198a868dc92",
"revision": 1
}
],
"score": -2147483648,
"combined_verdict": "rosszindulatú",
"severity": 4,
"confidence": 3,
"summary_report": "7e7db12d-5df6-4e14-85f3-2c1e29cd3e34",
"status": {
"code": 1001,
"label": "MEGTALÁLT",
"message": "A kérés teljes megválaszolásra került."
}
}
}
]
}A tar, xml és pdf jelentések egyszerre kérhetők, a summary, tar és xml jelentések pedig szintén kérhetők. A summary jelentés és pdf egyszerre nem kérhető.
Az extraction szakaszban található kulcsok
A fenyegetés kiemelésére összesen két kulcsot használnak:
method — pdf (pdf-be konvertálás, alapértelmezés szerint használják) vagy clean (aktív tartalom eltávolítása).
extracted_parts_codes — az aktív tartalom eltávolításához szükséges kódok listája, csak a clean módszerre alkalmazható
Kódok a tartalom eltávolításához a fájlokból
Code
Leírás
1025
Kapcsolt objektumok
1026
Makrók és kódok
1034
Érzékeny hiperhivatkozások
1137
PDF GoToR műveletek
1139
PDF Launch műveletek
1141
PDF URI műveletek
1142
PDF Hang műveletek
1143
PDF Film műveletek
1150
PDF JavaScript műveletek
1151
PDF Beküldési űrlap műveletek
1018
Adatbázis lekérdezések
1019
Beágyazott objektumok
1021
Gyors mentési adatok
1017
Egyedi tulajdonságok
1036
Statisztikai tulajdonságok
1037
Összefoglaló tulajdonságok
A tisztított másolat letöltéséhez további query lekérdezést kell benyújtani (erről később lesz szó) néhány másodpercen belül, megadva a fájl hash értékét és a kérés szövegében az extraction összetevőt. A tisztított fájl letölthető lesz a query válaszában szereplő id segítségével — extracted_file_download_id. Ismétlem, előre is, bemutatok példákat a query kérésére és válaszára az id keresésére a tisztított dokumentum letöltéséhez.
A query kérése az extracted_file_download_id keresésére
{ "request": [
{
"sha256": "9a346005ee8c9adb489072eb8b5b61699652962c17596de9c326ca68247a8876",
"features": ["extraction"] ,
"extraction": {
"method": "pdf"
}
}
]
}A query kérés válasza (keresse meg az extracted_file_download_id kulcsot)
{
"response": [
{
"status": {
"code": 1001,
"label": "FOUND",
"message": "A kérés teljes mértékben válaszolva lett."
},
"sha256": "9a346005ee8c9adb489072eb8b5b61699652962c17596de9c326ca68247a8876",
"file_type": "",
"file_name": "",
"features": [
"kivonás"
],
"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": "Makrók és Kód",
"extraction_data": {
"input_extension": "xls",
"input_real_extension": "xls",
"message": "OK",
"output_file_name": "kp-20-xls.cleaned.xls.pdf",
"protection_name": "Potenciálisan káros tartalom kivonva",
"protection_type": "PDF-re való konvertálás",
"protocol_version": "1.0",
"risk": 5.0,
"scrub_activity": "Aktív tartalom található - az XLS fájl PDF-re volt konvertálva",
"scrub_method": "Konvertálás PDF-re",
"scrub_result": 0.0,
"scrub_time": "0.013",
"scrubbed_content": "Makrók és Kód"
},
"tex_product": false,
"status": {
"code": 1001,
"label": "FOUND",
"message": "A kérés teljes mértékben válaszolva lett."
}
}
}
]
}Áttekintés
Egy API hívásban csak egy fájl küldése megengedett ellenőrzésre.
Az av komponens nem igényel külön kulcsokkal ellátott szakaszt, elegendő, ha a szótárban szerepel. features.
Query API hívás.
Használt módszer - POST http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/junos-conf-root:configuration/junos-conf-protocols:protocols
A hívás címe - LETS_ENCRYPT_STAGING<service_address>/tecloud/api/v1/file/query
A fájl feltöltése előtt (upload kérés) célszerű elvégezni a homokozó gyorsítótárának ellenőrzését (query kérés) az API szerver terhelésének optimalizálása érdekében, mivel előfordulhat, hogy az API szerveren már van információ és ítélet a feltöltendő fájlra vonatkozóan. A hívás csak a szöveges részből áll. A kérés kötelező része — a fájl sha1/sha256/md5 hashe. Egyébként ezt a feltöltésre adott válaszban is megkaphatjuk.
A query kéréshez szükséges minimum.
HTTP POST
LETS_ENCRYPT_STAGING<service_address>/tecloud/api/v1/file/query
Fejlécek:
Authorization: <api_key>
Body
{
"request": {
"sha256": <sha256 hash sum>
}
}
Példa válasz egy feltöltési kérésre, amelyben láthatók a sha1/md5/sha256 hash összeg.
{
"response": {
"status": {
"code": 1002,
"label": "UPLOAD_SUCCESS",
"message": "A fájl sikeresen feltöltve."
},
"sha1": "954b5a851993d49ef8b2412b44f213153bfbdb32",
"md5": "ac29b7c26e7dcf6c6fdb13ac0efe98ec",
"sha256": "313c0feb009356495b7f4a60e96737120beb30e1912c6d866218cee830aebd90",
"file_type": "",
"file_name": "kp-20-doc.doc",
"features": [
"te"
],
"te": {
"trust": 0,
"images": [
{
"report": {
"verdict": "ismeretlen"
},
"status": "not_found",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"score": -2147483648,
"status": {
"code": 1002,
"label": "UPLOAD_SUCCESS",
"message": "A fájl sikeresen feltöltve."
}
}
}
}A query request should ideally be the same as the upload request (or planned to be) or even "already" (contain fewer fields in the query than in the upload request). If the query request contains more fields than the upload request, you will not receive all the required information in response.
Here is an example response to the query request where not all required data has been found.
{
"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."
}
}
}
]
}Please note the fields. kód és label. These fields appear three times in the status dictionaries. Initially, we see the global key "code": 1006 and "label": "PARTIALLY_FOUND". Later, these keys appear for each individual component we requested — te and extraction. While it is clear that data was found for te, there is no information for extraction.
This is how the query request looked for the example above.
{ "request": [
{
"sha256": {{sha256}},
"features": ["te", "extraction"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"reports": [
"xml", "pdf"
]
}
}
]
}If the query request is sent without the extraction component.
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"reports": [
"xml", "pdf"
]
}
}
]
}Thus, the response will contain complete information ("code": 1001, "label": "FOUND").
{
"response": [
{
"status": {
"code": 1001,
"label": "MEGTALÁLT",
"message": "A kérés teljesen megválaszolva.
"
},
"sha256": "313c0feb009356495b7f4a60e96737120beb30e1912c6d866218cee830aebd90",
"file_type": "doc",
"file_name": "",
"features": [
"te"
],
"te": {
"trust": 10,
"images": [
{
"report": {
"verdict": "rosszindulatú",
"pdf_report": "4e9cddaf-03a4-489f-aa03-3c18f8d57a52",
"xml_report": "9c18018f-c761-4dea-9372-6a12fcb15170"
},
"status": "megállapítva",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"score": -2147483648,
"combined_verdict": "rosszindulatú",
"severity": 4,
"confidence": 1,
"status": {
"code": 1001,
"label": "MEGTALÁLT",
"message": "A kérés teljesen megválaszolva."
}
}
}
]
}Ha a gyorsítótárban egyáltalán nincs információ, akkor a válaszban a "label": "NINCS_MEGTALÁLVA" szerepel.
{
"response": [
{
"status": {
"code": 1004,
"label": "NINCS_MEGTALÁLVA",
"message": "Nem található a kért fájl. Kérjük, töltsd fel.
"
},
"sha256": "313c0feb009356495b7f4a60e96737120beb30e1912c6d866218cee830aebd91",
"file_type": "",
"file_name": "",
"features": [
"te"
],
"te": {
"trust": 0,
"images": [
{
"report": {
"verdict": "ismeretlen"
},
"status": "nem_megtalálva",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"score": -2147483648,
"status": {
"code": 1004,
"label": "NINCS_MEGTALÁLVA",
"message": "Nem található a kért fájl. Kérjük, töltsd fel.
"
}
}
}
]
}Egy API-hívás során egyszerre több hash összeg is ellenőrizhető. A válaszban az adatok ugyanabban a sorrendben kerülnek visszaadásra, ahogyan a kérésben benyújtották őket.
Példa query kérésre, több sha256 összeggel.
{ "request": [
{
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd81"
},
{
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd82"
}
]
}Válasz a query kérésre, több sha256 összeggel.
{
"response": [
{
"status": {
"code": 1001,
"label": "MEGTALÁLT",
"message": "A kérés teljes mértékben megválaszolva."
},
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd81",
"file_type": "dll",
"file_name": "",
"features": [
"te"
],
"te": {
"trust": 10,
"images": [
{
"report": {
"verdict": "rosszindulatú"
},
"status": "megtalálva",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"score": -2147483648,
"combined_verdict": "rosszindulatú",
"severity": 4,
"confidence": 3,
"status": {
"code": 1001,
"label": "MEGTALÁLT",
"message": "A kérés teljes mértékben megválaszolva."
}
}
},
{
"status": {
"code": 1004,
"label": "NEM_TALÁLVA",
"message": "Nem található a kért fájl. Kérlek, töltsd fel."
},
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd82",
"file_type": "",
"file_name": "",
"features": [
"te"
],
"te": {
"trust": 0,
"images": [
{
"report": {
"verdict": "ismeretlen"
},
"status": "nem_találva",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"score": -2147483648,
"status": {
"code": 1004,
"label": "NEM_TALÁLVA",
"message": "Nem található a kért fájl. Kérlek, töltsd fel."
}
}
}
]
}Több hash érték egyidejű lekérdezése kedvezően befolyásolja az API szerver teljesítményét.
Letöltési API hívás
Használt módszer - POST http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/junos-conf-root:configuration/junos-conf-protocols:protocols (a dokumentáció szerint), GET szintén működik (és logikusabbnak tűnhet)
A hívás címe - LETS_ENCRYPT_STAGING<service_address>/tecloud/api/v1/file/download?id=<id>
A fejlécekben meg kell adni az API kulcsot, a kérés törzse üres, az id a letöltéshez az url címben kerül megadásra.
A query kérésre adott válaszban, ha az emuláció befejeződött, és a fájl letöltési jelentéseket kértünk, az id-k láthatók a jelentések letöltéséhez. Ha tisztított másolatot kérünk, akkor az id-ket a tisztított dokumentum letöltéséhez kell keresni.
Összességében, a query kérésre adott válaszban az id-k letöltéséhez a következő kulcsok lehetnek:
summary_report
full_report
pdf_report
xml_report
extracted_file_download_id
Természetesen, hogy a query kérésre az id-k visszakapásra kerüljenek, ezeket meg kell adni a kérésben (jelentésekhez), vagy ne felejtsük el végrehajtani a kérést az extraction funkcióval (tisztított dokumentumokhoz).
Quota API hívás
Használt módszer - POST http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/junos-conf-root:configuration/junos-conf-protocols:protocols
A hívás címe - LETS_ENCRYPT_STAGING<service_address>/tecloud/api/v1/file/quota
A felhőben meglévő kvóta ellenőrzéséhez a quota kérés használható. A kérés törzse üres.
A quota kérésre adott válasz példája
{
"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 for Security Gateway
Ez az API a Threat Prevention API előtt készült, és kizárólag helyi eszközökhöz készült. Jelenleg hasznos lehet, ha szüksége van a Threat Extraction API-ra. A Threat Emulation esetében az alap Threat Prevention API használata javasolt. A bekapcsolásához TP API SG-hez és az API kulcs konfigurálásához el kell végezni az alábbi lépéseket . Javaslom, hogy figyeljen a 6b lépésre, és ellenőrizze a következő oldal elérhetőségét https:///UserCheck/TPAPI , mivel kedvezőtlen eredmény esetén a további konfiguráció értelmetlen. Az API hívásokat erre az URL-re kell küldeni. A hívás típusa (upload/query) a hívás törzsében található kulcsban állítható be — request_name. A kötelező kulcsok közé tartozik — api_key, (ezt a konfiguráció során meg kell jegyezni) és protocol_version, (jelenleg az aktuális verzió 1.1). A hivatalos dokumentációt a következő helyen találja . Az alábbiakban elérhető előnyök közé tartozik, hogy több fájl egyszerre is elküldhető az emulációhoz, mivel a fájlok base64 szöveges formátumban kerülnek küldésre. A fájlok base64 kódolásához/dekódolásához a Postmanben az online konverterek közül például ezt használhatja — . Gyakorlati céllal kódírás során az beépített encode és decode módszereket javasolt használni.
Most nézzük meg részletesebben a funkcionalitásokat %Dátum és extraction ebben az API-ban.
A következő komponenshez %Dátum a te_options szótár biztosított az upload/query kérésekben, ahol a kulcsok teljesen megegyeznek a te kulcsaival Példa egy Win10 fájl emulációs kérésére a jelentésekhez .
{ "request": [{ "protocol_version": "1.1", "api_key": "", "request_name": "UploadFile", "file_enc_data": "", "file_orig_name": "", "te_options": { "images": [ { "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244", "revision": 1 } ], "reports": ["summary", "xml"] } } ] }
scrub_optionsA következő komponenshez extraction a te_options szótár biztosított scrub_options. A kérésben meg kell adni a tisztítási módszert: PDF-re konvertálás, aktív tartalom eltávolítása, vagy választani egy módot a Threat Prevention profil szerint (a profil nevét kell megadni). A fájlra vonatkozó API kérés válaszának különlegessége, hogy a válaszban egy tisztított másolatot kap, bázis64 kódolt karakterláncként (nincs szüksége lekérdezésre és a dokumentum azonosítójának megkeresésére).
Fájl tisztítási kérés példája
{
"request": [{
"protocol_version": "1.1",
"api_key": "",
"request_name": "UploadFile",
"file_enc_data": "",
"file_orig_name": "hi.txt",
"scrub_options": {
"scrub_method": 2
}
}]
}A kérés válasza
{
"response": [{
"protocol_version": "1.1",
"src_ip": "",
"scrub": {
"file_enc_data": "",
"input_real_extension": "js",
"message": "OK",
"orig_file_url": "",
"output_file_name": "hi.cleaned.pdf",
"protection_name": "Potenciálisan káros tartalom eltávolítása",
"protection_type": "PDF-re konvertálás",
"real_extension": "txt",
"risk": 0,
"scrub_activity": "A TXT fájl PDF-re lett konvertálva",
"scrub_method": "Konvertálás PDF-re",
"scrub_result": 0,
"scrub_time": "0.011",
"scrubbed_content": ""
}
}]
} Bár a tisztított másolat megszerzéséhez kevesebb API-kérés szükséges, én az ilyen opciót kevésbé kedvezőnek és kényelmesnek tartom, mint a fálj formátumban elküldött kérést, amely a .
Postman gyűjtemények
Létrehoztam a Postman gyűjteményeket a Threat Prevention API és a Threat Prevention API for Security Gateway számára, ahol a leggyakoribb API-kérések találhatók. Ahhoz, hogy az ip/url API kiszolgáló és a kulcs automatikusan be legyenek illesztve a kérésekbe, és a fájl feltöltése után a sha256 hash összeg is megjegyzésre kerüljön, a gyűjtemények belsejében három változót hoztam létre (ezeket a gyűjtemény beállításaiban találhatja meg, Edit -> Variables): te_api (kitöltés szükséges), api_key (kitöltés szükséges, kivéve a TP API helyi eszközökkel való használata esetén), sha256 (hagyja üresen, a TP API for SG-ben nem használják).
Használati példák
A közösségben Python nyelven írt szkriptek találhatók, amelyek fájlokat ellenőriznek a kívánt könyvtárból, akár a , valamint . A Threat Prevention API-val való együttműködés jelentősen bővíti a fájlok ellenőrzési lehetőségeit, mivel most már több platformon is ellenőrizheti a fájlokat (érdekes a , majd a Check Point homokozóban), a fájlok nemcsak a hálózati forgalomból származhatnak, hanem bármely hálózati meghajtóról és például CRM rendszerekből is lekérhetők.
Forrás: habr.com
