Ovaj članak će biti koristan onima koji su upoznati s tehnologijom Check Point emulacijom datoteke (Emulacija prijetnje) i proaktivno čišćenje fajlova (Izvlačenje prijetnje) i želi napraviti korak ka automatizaciji ovih zadataka. Check Point ima
Osnovne skraćenice
API za prevenciju prijetnji radi s tri glavne komponente, koje se u API-ju pozivaju kroz sljedeće tekstualne vrijednosti:
av — Anti-Virus komponenta, odgovorna za analizu potpisa poznatih pretnji.
te - Komponenta Threat Emulation, odgovorna za provjeru datoteka u sandboxu i donošenje zlonamjerne/benigne presude nakon emulacije.
vađenje - Komponenta Threat Extraction, odgovorna za brzo pretvaranje kancelarijskih dokumenata u bezbjednu formu (u kojoj se uklanja sav potencijalno zlonamjeran sadržaj), kako bi se brzo isporučili korisnicima/sistemima.
Struktura API-ja i glavna ograničenja
API za prevenciju prijetnji koristi samo 4 zahtjeva − otpremanje, upit, preuzimanje i kvota. U zaglavlju za sva četiri zahtjeva morate proći API ključ pomoću parametra autorizacija. Na prvi pogled, struktura može izgledati mnogo jednostavnija nego u
Trenutno je objavljena jedina verzija API-ja za prevenciju prijetnji - 1.0 URL za API pozive bi trebao uključivati; v1 u dijelu gdje trebate navesti verziju. Za razliku od API-ja za upravljanje, potrebno je u URL-u navesti verziju API-ja, inače se zahtjev neće izvršiti.
Komponenta Anti-Virus, kada se pozove bez drugih komponenti (te, ekstrakcija), trenutno podržava samo zahteve za upite sa md5 hash sumama. Emulacija prijetnje i ekstrakcija prijetnje također podržavaju sha1 i sha256 hash sume.
Veoma je važno da ne pogrešite u upitima! Zahtjev se može izvršiti bez greške, ali ne u potpunosti. Gledajući malo unapred, hajde da pogledamo šta se može dogoditi kada postoje greške/greške u kucanju u upitima.
Zahtjev sa greškom u kucanju sa riječju izvještaji (izvještaji)
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
reportss: ["tar", "pdf", "xml"]
}
}
]
}
Neće biti greške u odgovoru, ali uopće neće biti informacija o prijavama
{
"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."
}
}
}
]
}
Ali za zahtjev bez greške u kucanju u ključu izvještaja
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
reports: ["tar", "pdf", "xml"]
}
}
]
}
Dobijamo odgovor koji već sadrži ID za preuzimanje izvještaja
{
"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."
}
}
}
]
}
Ako pošaljemo neispravan/istekao API ključ, dobićemo grešku 403 kao odgovor.
SandBlast API: u oblaku i na lokalnim uređajima
API zahtjevi se mogu poslati na Check Point uređaje koji imaju omogućenu komponentu Threat Emulation (blade). Kao adresu za zahtjeve trebate koristiti ip/url uređaja i port 18194 (na primjer, https://10.10.57.19:18194/tecloud/api/v1/file/query). Također biste trebali provjeriti da li sigurnosna politika na uređaju dozvoljava ovu vezu. Autorizacija putem API ključa na lokalnim uređajima prema zadanim postavkama isključeno i autorizacijski ključ u zaglavljima zahtjeva se možda uopće neće poslati.
API zahtjeve za CheckPoint oblak treba poslati na te.checkpoint.com (na primjer - https://te.checkpoint.com/tecloud/api/v1/file/query). API ključ se može dobiti kao probna licenca na 60 dana tako što ćete kontaktirati Check Point partnere ili lokalni ured kompanije.
Na lokalnim uređajima ekstrakcija prijetnji još nije standardno podržana.
Lokalni uređaji ne podržavaju zahtjev za kvotom.
Inače, nema razlike između zahtjeva prema lokalnim uređajima i oblaku.
Upload API poziv
Korištena metoda − POST
Adresa poziva - https:///tecloud/api/v1/file/upload
Zahtjev se sastoji od dva dijela (forma-podaci): datoteke namijenjene emulaciji/čišćenju i tijela zahtjeva sa tekstom.
Tekstualni zahtjev ne može biti prazan, ali ne može sadržavati nikakvu konfiguraciju. Da bi zahtjev bio uspješan, u zahtjevu morate poslati najmanje sljedeći tekst:
Minimum potreban za zahtjev za otpremanje
HTTP POST
https:///tecloud/api/v1/file/upload
Zaglavlja:
Autorizacija:
tijelo
{
"zahtjev": {
}
}
fajl
fajl
U ovom slučaju, datoteka će biti obrađena u skladu sa zadanim parametrima: komponenta - te, OS slike - Win XP i Win 7, bez generiranja izvještaja.
Komentari na glavna polja u tekstualnom zahtjevu:
ime dokumenta и file_type Možete ih ostaviti prazne ili ih uopće ne slati, jer to nije posebno korisna informacija prilikom učitavanja datoteke. U API odgovoru, ova polja će se automatski popuniti na osnovu imena preuzete datoteke, a informacije u kešu će se i dalje morati pretraživati koristeći md5/sha1/sha256 hash iznose.
Primjer zahtjeva s praznim file_name i file_type
{
"request": {
"file_name": "",
"file_type": "",
}
}
funkcije — lista koja ukazuje na potrebnu funkcionalnost prilikom obrade u sandboxu - av (Anti-Virus), te (Emulacija prijetnje), ekstrakcija (Izvlačenje prijetnje). Ako ovaj parametar uopće nije proslijeđen, tada će se koristiti samo zadana komponenta - te (Emulacija prijetnje).
Da biste omogućili provjeru u tri dostupne komponente, trebate navesti ove komponente u API zahtjevu.
Primjer zahtjeva sa provjerom av, te i ekstrakcijom
{ "request": [
{
"sha256": {{sha256}},
"features": ["av", "te", "extraction"]
}
]
}
Ključevi u sekciji te
slika — lista koja sadrži rečnike sa ID-om i brojem revizije operativnih sistema u kojima će se provera izvršiti. ID-ovi i brojevi revizija su isti za sve lokalne uređaje i oblak.
Lista operativnih sistema i revizija
Dostupan ID slike OS-a
revizija
Image OS i aplikacija
e50e99f3-5963-4573-af9e-e3f4750b55e2
1
Microsoft Windows: XP - 32bit SP3
ured: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash Player 9r115 i ActiveX 10.0
Java Runtime: 1.6.0u22
7e6fe36e-889e-4c25-8704-56378f0830df
1
Microsoft Windows: 7 - 32 bit
ured: 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 - 32 bit
ured: 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 - 32 bit
ured: 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 - 64 bit
ured: 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 - 64 bit
ured: 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
ured: Professional Plus 2016 hr
Adobe Acrobat Reader: DC 2015 MUI
Flash Player: 20 (plugin & ActiveX)
Java Runtime: 1.7.0u9
Ako ključ za slike uopće nije naveden, tada će se emulacija odvijati u slikama koje preporučuje Check Point (trenutno Win XP i Win 7). Ove slike se preporučuju na osnovu razmatranja najbolje ravnoteže performansi i stope hvatanja.
izvještaja — lista izvještaja koje tražimo u slučaju da se pokaže da je datoteka zlonamjerna. Dostupne su sljedeće opcije:
-
rezime - .tar.gz arhiva koja sadrži izvještaj o emulaciji od strane svima tražene slike (i html stranica i komponente kao što su video iz OS emulatora, dump mrežnog saobraćaja, izvještaj u json-u i sam uzorak u arhivi zaštićenoj lozinkom). Tražimo ključ u odgovoru - summary_report za naknadno preuzimanje izvještaja.
-
pdf - dokument o emulaciji u jedan sliku, koju su mnogi navikli da primaju preko Smart Console. Tražimo ključ u odgovoru - pdf_report za naknadno preuzimanje izvještaja.
-
XML - dokument o emulaciji u jedan slika, pogodna za naknadnu analizu parametara u izvještaju. Tražimo ključ u odgovoru - xml_report za naknadno preuzimanje izvještaja.
-
katran - .tar.gz arhiva koja sadrži izvještaj o emulaciji u jedan tražene slike (i html stranica i komponente kao što su video iz OS emulatora, dump mrežnog saobraćaja, izvještaj u json-u i sam uzorak u arhivi zaštićenoj lozinkom). Tražimo ključ u odgovoru - full_report za naknadno preuzimanje izvještaja.
Šta je unutar sažetog izvještaja
Ključevi full_report, pdf_report, xml_report nalaze se u rječniku za svaki 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."
}
}
}
]
}
Ali ključ summary_report - postoji jedan za emulaciju općenito
{
"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."
}
}
}
]
}
Možete tražiti tar i xml i pdf izvještaje u isto vrijeme, možete zatražiti sažetak i tar i xml. Neće biti moguće zatražiti zbirni izvještaj i pdf u isto vrijeme.
Ključevi u odeljku za ekstrakciju
Za ekstrakciju prijetnji koriste se samo dva ključa:
način — pdf (pretvori u pdf, koristi se po defaultu) ili clean (čišćenje aktivnog sadržaja).
ekstrahirani_kodovi_dijelova - lista kodova za uklanjanje aktivnog sadržaja, primjenjiva samo za čistu metodu
Kodovi za uklanjanje sadržaja iz datoteka
kod
Opis
1025
Povezani objekti
1026
Makroi i kod
1034
Osjetljive hiperveze
1137
PDF GoToR Akcije
1139
Radnje pokretanja PDF-a
1141
PDF URI akcije
1142
PDF Zvučne akcije
1143
PDF filmske radnje
1150
PDF JavaScript Akcije
1151
Radnje obrasca za slanje PDF-a
1018
Upiti baze podataka
1019
Ugrađeni objekti
1021
Brzo spremanje podataka
1017
Prilagođena svojstva
1036
Statistička svojstva
1037
Summary Properties
Da biste preuzeli očišćenu kopiju, takođe ćete morati da napravite zahtev za upit (o čemu će biti reči u nastavku) nakon nekoliko sekundi, navodeći heš količinu datoteke i komponentu za ekstrakciju u tekstu zahteva. Možete preuzeti očišćeni fajl koristeći ID iz odgovora na upit - extracted_file_download_id. Još jednom, gledajući malo unaprijed, dajem primjere zahtjeva i odgovora na upit za traženje id-a za preuzimanje očišćenog dokumenta.
Zahtjev za upitom za traženje ključa extracted_file_download_id
{ "request": [
{
"sha256": "9a346005ee8c9adb489072eb8b5b61699652962c17596de9c326ca68247a8876",
"features": ["extraction"] ,
"extraction": {
"method": "pdf"
}
}
]
}
Odgovor na upit (potražite izvučeni_file_download_id ključ)
{
"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."
}
}
}
]
}
Opšte informacije
U jednom API pozivu možete poslati samo jednu datoteku na verifikaciju.
Komponenta av ne zahtijeva dodatni odjeljak sa ključevima, dovoljno je navesti ga u rječniku funkcije.
Poziv API-ja upita
Korištena metoda − POST
Adresa poziva - https:///tecloud/api/v1/file/query
Prije slanja datoteke na preuzimanje (zahtjev za upload), preporučljivo je provjeriti sandbox keš (zahtjev za upit) kako bi se optimiziralo opterećenje na API serveru, jer API server možda već ima informacije i presudu o preuzetom fajlu. Poziv se sastoji samo od tekstualnog dijela. Potreban dio zahtjeva je sha1/sha256/md5 hash količina datoteke. Usput, možete ga dobiti u odgovoru na zahtjev za upload.
Minimum potreban za upit
HTTP POST
https:///tecloud/api/v1/file/query
Zaglavlja:
Autorizacija:
tijelo
{
"zahtjev": {
"sha256":
}
}
Primjer odgovora na zahtjev za upload, gdje su vidljivi sha1/md5/sha256 hash iznosi
{
"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."
}
}
}
}
Zahtjev za upit, pored iznosa heširanja, idealno bi trebao biti isti kao što je bio zahtjev za otpremanje (ili je planiran), ili čak "već" (sadržati manje polja u zahtjevu za upit nego u zahtjevu za otpremanje). U slučaju da zahtjev za upit sadrži više polja nego što je bilo u zahtjevu za učitavanje, nećete dobiti sve potrebne informacije u odgovoru.
Evo primjera odgovora na upit u kojem nisu pronađeni svi potrebni podaci
{
"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."
}
}
}
]
}
Obratite pažnju na polja kod и etiketa. Ova polja se pojavljuju tri puta u rječnicima statusa. Prvo vidimo globalni ključ “code”: 1006 i “label”: “PARTIALLY_FOUND”. Zatim se ovi ključevi nalaze za svaku pojedinačnu komponentu koju smo tražili - te i ekstrakciju. I ako je za te jasno da su podaci pronađeni, onda za ekstrakciju nema informacija.
Ovako je izgledao upit za gornji primjer
{ "request": [
{
"sha256": {{sha256}},
"features": ["te", "extraction"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"reports": [
"xml", "pdf"
]
}
}
]
}
Ako pošaljete zahtjev za upit bez komponente ekstrakcije
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"reports": [
"xml", "pdf"
]
}
}
]
}
Tada će odgovor sadržavati potpune informacije (“šifra”: 1001, “oznaka”: “PRONAĐENO”)
{
"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."
}
}
}
]
}
Ako u predmemoriji uopće nema informacija, tada će odgovor biti "oznaka": "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."
}
}
}
]
}
U jednom API pozivu možete poslati nekoliko heš iznosa odjednom radi provjere. Odgovor će vratiti podatke istim redoslijedom kako su poslani u zahtjevu.
Primjer zahtjeva za upitom s nekoliko sha256 iznosa
{ "request": [
{
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd81"
},
{
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd82"
}
]
}
Odgovor na upit s više sha256 iznosa
{
"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."
}
}
}
]
}
Zahtjev za nekoliko hash suma odjednom u zahtjevu za upitom također će imati povoljan učinak na performanse API servera.
Preuzmite API poziv
Korištena metoda − POST (prema dokumentaciji), GET također radi (i može izgledati logičnije)
Adresa poziva - https:///tecloud/api/v1/file/download?id=
Zaglavlje zahtijeva da se prenese API ključ, tijelo zahtjeva je prazno, id preuzimanja se prosljeđuje u URL adresi.
Kao odgovor na zahtjev upita, ako je emulacija završena i izvještaji su zatraženi prilikom preuzimanja datoteke, ID za preuzimanje izvještaja će biti vidljiv. Ako se traži očišćena kopija, trebali biste potražiti ID za preuzimanje očišćenog dokumenta.
Ukupno, ključevi u odgovoru na upit koji sadrži vrijednost id za učitavanje mogu biti:
-
summary_report
-
full_report
-
pdf_report
-
xml_report
-
izvađen_file_download_id
Naravno, da biste primili ove ključeve kao odgovor na zahtjev upita, oni moraju biti navedeni u zahtjevu (za izvještaje) ili ne zaboravite napraviti zahtjev pomoću funkcije ekstrakcije (za očišćene dokumente)
Quota API poziv
Korištena metoda − POST
Adresa poziva - https:///tecloud/api/v1/file/quota
Da biste provjerili preostalu kvotu u oblaku, koristite upit kvote. Tijelo zahtjeva je prazno.
Primjer odgovora na zahtjev za kvotom
{
"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 za prevenciju prijetnji za sigurnosni prolaz
Ovaj API je razvijen prije API-ja za prevenciju prijetnji i namijenjen je samo za lokalne uređaje. Za sada može biti korisno samo ako vam je potreban API za ekstrakciju prijetnji. Za emulaciju prijetnje bolje je koristiti obični API za prevenciju prijetnji. Uključiti TP API za SG i konfigurirajte API ključ od kojeg trebate slijediti korake
Sada pogledajmo bliže funkcije te и vađenje u ovom API-ju.
Za komponentu te obezbjeđen rječnik te_options u zahtjevima za učitavanje/upit, a ključevi u ovom zahtjevu se potpuno poklapaju sa te ključevima u
Primjer zahtjeva za emulaciju datoteke u Win10 sa izvještajima
{
"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"]
}
}
]
}
Za komponentu vađenje obezbjeđen rječnik scrub_options. Ovaj zahtjev navodi metod čišćenja: pretvoriti u PDF, obrisati aktivni sadržaj ili odabrati način rada u skladu sa profilom za prevenciju prijetnji (naziv profila je naznačen). Odlična stvar u odgovoru na zahtjev API-ja za ekstrakciju za datoteku je da dobijete očišćenu kopiju u odgovoru na taj zahtjev kao base64 šifrirani niz (ne morate napraviti zahtjev za upitom i potražiti ID za preuzimanje dokument)
Primjer zahtjeva za brisanje datoteke
{
"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
}
}]
}
Odgovorite na zahtjev
{
"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": ""
}
}]
}
Unatoč činjenici da je potrebno manje API zahtjeva za dobivanje očišćene kopije, smatram da je ova opcija manje poželjna i zgodna od zahtjeva za podatke obrasca koji se koristi u
Postman Collections
Napravio sam kolekcije u Postmanu i za API za prevenciju pretnji i za API za prevenciju pretnji za bezbednosni gateway, koji predstavljaju najčešće API zahteve. Da bi se serverski ip/url API i ključ automatski zamijenili u zahtjeve, a količina hash sha256 koja se pamti nakon preuzimanja datoteke, unutar kolekcija su kreirane tri varijable (možete ih pronaći u postavkama kolekcije Uredi -> Varijable): te_api (obavezno), api_key (obavezno popuniti, osim kada koristite TP API s lokalnim uređajima), sha256 (ostavite prazno, ne koristi se u TP API-ju za SG).
Primjeri upotrebe
U zajednici
izvor: www.habr.com