Šis straipsnis bus naudingas tiems, kurie yra susipažinę su technologijomis Check Point pagal failo emuliaciją (Grėsmės emuliacija) ir aktyvus failų valymas (Grėsmės pašalinimas) ir nori žengti žingsnį šių užduočių automatizavimo link. „Check Point“ turi
Pagrindinės santrumpos
Grėsmių prevencijos API veikia su trimis pagrindiniais komponentais, kurie API iškviečiami naudojant šias teksto reikšmes:
av — Antivirusinis komponentas, atsakingas už žinomų grėsmių parašų analizę.
te - Grėsmių emuliacijos komponentas, atsakingas už failų tikrinimą smėlio dėžėje ir kenkėjiško / nepiktybinio sprendimo priėmimą po emuliacijos.
gavyba - Grėsmių pašalinimo komponentas, atsakingas už greitą biuro dokumentų konvertavimą į saugią formą (kurioje pašalinamas visas potencialiai kenksmingas turinys), kad jie būtų greitai pristatyti vartotojams / sistemoms.
API struktūra ir pagrindiniai apribojimai
Grėsmių prevencijos API naudoja tik 4 užklausas – įkelti, pateikti užklausą, atsisiųsti ir kvotuoti. Visų keturių užklausų antraštėje turite perduoti API raktą naudodami parametrą leidimas. Iš pirmo žvilgsnio konstrukcija gali atrodyti daug paprastesnė nei viduje
Šiuo metu buvo išleista vienintelė grėsmių prevencijos API versija – 1.0; API iškvietimų URL turėtų apimti v1 dalyje, kurioje reikia nurodyti versiją. Skirtingai nuo valdymo API, URL reikia nurodyti API versiją, kitaip užklausa nebus vykdoma.
Antivirusinis komponentas, kai iškviečiamas be kitų komponentų (te, ištraukimas), šiuo metu palaiko tik užklausas su md5 maišos sumomis. Grėsmių emuliacija ir grėsmių pašalinimas taip pat palaiko sha1 ir sha256 maišos sumas.
Labai svarbu nesuklysti užklausose! Prašymas gali būti įvykdytas be klaidų, bet ne visiškai. Žvelgdami į priekį, pažiūrėkime, kas gali nutikti, kai užklausose yra klaidų / rašybos klaidų.
Užklausa su rašybos klaida su žodžiu reports(reportss)
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
reportss: ["tar", "pdf", "xml"]
}
}
]
}
Klaidos atsakyme nebus, bet informacijos apie ataskaitas iš viso nebus
{
"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."
}
}
}
]
}
Bet už užklausą be rašybos klaidos ataskaitų rakte
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
reports: ["tar", "pdf", "xml"]
}
}
]
}
Gauname atsakymą, kuriame jau yra ataskaitų atsisiuntimo ID
{
"response": [
{
"status": {
"code": 1001,
"label": "FOUND",
"message": "The request has been fully answered."
},
"sha256": "9cc488fa6209caeb201678f8360a6bb806bd2f85b59d108517ddbbf90baec33a",
"file_type": "pdf",
"file_name": "",
"features": [
"te"
],
"te": {
"trust": 10,
"images": [
{
"report": {
"verdict": "malicious",
"full_report": "b684066e-e41c-481a-a5b4-be43c27d8b65",
"pdf_report": "e48f14f1-bcc7-4776-b04b-1a0a09335115",
"xml_report": "d416d4a9-4b7c-4d6d-84b9-62545c588963"
},
"status": "found",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"score": -2147483648,
"combined_verdict": "malicious",
"severity": 4,
"confidence": 3,
"status": {
"code": 1001,
"label": "FOUND",
"message": "The request has been fully answered."
}
}
}
]
}
Jei atsiųsime neteisingą / pasibaigusio API raktą, atsakydami gausime 403 klaidą.
SandBlast API: debesyje ir vietiniuose įrenginiuose
API užklausos gali būti siunčiamos į „Check Point“ įrenginius, kuriuose įjungtas grėsmių emuliacijos komponentas (blade). Kaip užklausų adresą turite naudoti įrenginio ip/url ir prievadą 18194 (pvz., https://10.10.57.19:18194/tecloud/api/v1/file/query). Taip pat turėtumėte įsitikinti, kad įrenginio saugos politika leidžia šį ryšį. Pagal numatytuosius nustatymus autorizacija naudojant API raktą vietiniuose įrenginiuose išjungti o prieigos raktas užklausų antraštėse gali būti iš viso nesiunčiamas.
API užklausos į CheckPoint debesį turėtų būti siunčiamos į te.checkpoint.com (pavyzdžiui - https://te.checkpoint.com/tecloud/api/v1/file/query). API raktą galima gauti kaip bandomąją licenciją 60 dienų susisiekus su Check Point partneriais arba įmonės vietiniu biuru.
Vietiniuose įrenginiuose grėsmių pašalinimas dar nepalaikomas kaip standartas.
Vietiniai įrenginiai nepalaiko kvotos užklausos.
Kitu atveju užklausos vietiniams įrenginiams ir debesiui nesiskiria.
Įkelti API skambutį
Naudotas metodas − POST
Skambinimo adresas - https:///tecloud/api/v1/file/upload
Užklausą sudaro dvi dalys (forma-duomenys): failas, skirtas emuliacijai/valyti, ir užklausos turinys su tekstu.
Teksto užklausa negali būti tuščia, tačiau joje gali nebūti jokios konfigūracijos. Kad užklausa būtų sėkminga, užklausoje turite atsiųsti bent tokį tekstą:
Minimalus reikalavimas įkėlimo užklausai
HTTP POST
https:///tecloud/api/v1/file/upload
Antraštės:
Autorizacija:
Kėbulas
{
"užklausa": {
}
}
filė
filė
Tokiu atveju failas bus apdorojamas pagal numatytuosius parametrus: komponentas - te, OS vaizdai - Win XP ir Win 7, negeneruojant ataskaitos.
Komentarai dėl pagrindinių teksto užklausos laukų:
failo pavadinimas и Failo tipas Galite palikti juos tuščius arba iš viso jų nesiųsti, nes tai nėra ypač naudinga informacija įkeliant failą. API atsakyme šie laukai bus užpildyti automatiškai pagal atsisiųsto failo pavadinimą, o informacijos talpykloje vis tiek teks ieškoti naudojant md5/sha1/sha256 maišos sumas.
Užklausos pavyzdys su tuščiu failo_pavadinimu ir failo_tipu
{
"request": {
"file_name": "",
"file_type": "",
}
}
funkcijos — sąrašas, kuriame nurodomos būtinos funkcijos apdorojant smėlio dėžėje - av (Anti-Virus), te (Grėsmių emuliacija), ištraukimas (Grėsmių pašalinimas). Jei šis parametras iš viso neperduodamas, bus naudojamas tik numatytasis komponentas – te (Threat Emulation).
Norėdami įgalinti trijų galimų komponentų patikrą, turite nurodyti šiuos komponentus API užklausoje.
Prašymo pavyzdys su patikrinimu av, te ir ištraukimu
{ "request": [
{
"sha256": {{sha256}},
"features": ["av", "te", "extraction"]
}
]
}
Raktai te skyriuje
vaizdai — sąrašas, kuriame yra žodynai su operacinių sistemų, kuriose bus tikrinama, ID ir pataisos numeriai. Visų vietinių įrenginių ir debesies ID ir pataisų numeriai yra vienodi.
Operacinių sistemų ir pataisų sąrašas
Galimas OS vaizdo ID
Peržiūrėjimas
Vaizdo OS ir programa
e50e99f3-5963-4573-af9e-e3f4750b55e2
1
"Microsoft Windows": XP – 32 bitų SP3
Office: 2003, 2007
"Adobe Acrobat Reader": 9.0
"flash Player" 9r115 ir "ActiveX" 10.0
Java vykdymo laikas: 1.6.0u22
7e6fe36e-889e-4c25-8704-56378f0830df
1
"Microsoft Windows": 7–32 bitai
Office: 2003, 2007
"Adobe Acrobat Reader": 9.0
Flash grotuvas: 10.2r152 (Prijungti& "ActiveX")
Java vykdymo laikas: 1.6.0u0
8d188031-1010-4466-828b-0cd13d4303ff
1
"Microsoft Windows": 7–32 bitai
Office: 2010
"Adobe Acrobat Reader": 9.4
Flash grotuvas: 11.0.1.152 (Prijungti & "ActiveX")
Java vykdymo laikas: 1.7.0u0
5e5de275-a103-4f67-b55b-47532918fa59
1
"Microsoft Windows": 7–32 bitai
Office: 2013
"Adobe Acrobat Reader": 11.0
Flash grotuvas: 15 (Prijungti & "ActiveX")
Java vykdymo laikas: 1.7.0u9
3ff3ddae-e7fd-4969-818c-d5f1a2be336d
1
"Microsoft Windows": 7–64 bitai
Office: 2013 (32 bitai)
"Adobe Acrobat Reader": 11.0.01
Flash grotuvas: 13 (Prijungti & "ActiveX")
Java vykdymo laikas: 1.7.0u9
6c453c9b-20f7-471a-956c-3198a868dc92
1
"Microsoft Windows": 8.1–64 bitai
Office: 2013 (64 bitai)
"Adobe Acrobat Reader": 11.0.10
Flash grotuvas: 18.0.0.160 (Prijungti & "ActiveX")
Java vykdymo laikas: 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 grotuvas: 20 (Prijungti & "ActiveX")
Java vykdymo laikas: 1.7.0u9
Jei vaizdų raktas visai nenurodytas, tada emuliacija vyks Check Point rekomenduojamuose vaizduose (šiuo metu Win XP ir Win 7). Šie vaizdai rekomenduojami atsižvelgiant į geriausią našumo ir gaudymo greičio pusiausvyrą.
ataskaitos — ataskaitų, kurių prašome, jei paaiškėtų, kad failas yra kenkėjiškas, sąrašas. Galimos šios parinktys:
-
santrauka - .tar.gz archyvas, kuriame yra emuliacijos ataskaita visi prašomi vaizdai (ir HTML puslapis, ir komponentai, pvz., vaizdo įrašas iš emuliatoriaus OS, tinklo srauto išvestis, ataskaita JSON ir pats pavyzdys slaptažodžiu apsaugotame archyve). Mes ieškome atsakymo rakto - suvestinė_ataskaita vėlesniam ataskaitos atsisiuntimui.
-
PDF - dokumentas apie emuliaciją vienas vaizdas, kurį daugelis yra įpratę gauti per Smart Console. Mes ieškome atsakymo rakto - pdf_ataskaita vėlesniam ataskaitos atsisiuntimui.
-
XML - dokumentas apie emuliaciją vienas vaizdas, patogus vėliau ataskaitoje analizuojant parametrus. Mes ieškome atsakymo rakto - xml_report vėlesniam ataskaitos atsisiuntimui.
-
degutas - .tar.gz archyvas, kuriame yra emuliacijos ataskaita vienas prašomi vaizdai (ir HTML puslapis, ir komponentai, pvz., vaizdo įrašas iš emuliatoriaus OS, tinklo srauto išvestis, ataskaita JSON ir pats pavyzdys slaptažodžiu apsaugotame archyve). Mes ieškome atsakymo rakto - pilna_ataskaita vėlesniam ataskaitos atsisiuntimui.
Kas yra suvestinės ataskaitos viduje
Raktai full_report, pdf_report, xml_report yra kiekvienos OS žodyne
{
"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."
}
}
}
]
}
Tačiau raktas summary_report – yra vienas, skirtas emuliacijai apskritai
{
"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."
}
}
}
]
}
Galite prašyti tar ir xml ir pdf ataskaitų vienu metu, galite prašyti santraukos ir tar ir xml. Vienu metu nebus galima prašyti suvestinės ataskaitos ir pdf.
Raktai ištraukimo skyriuje
Grėsmės išgavimui naudojami tik du raktai:
metodas — pdf (konvertuoti į pdf, naudojamas pagal numatytuosius nustatymus) arba švarus (aktyvaus turinio išvalymas).
išskleisti_dalių_kodai - aktyvaus turinio pašalinimo kodų sąrašas, taikomas tik švariam metodui
Kodai, skirti pašalinti turinį iš failų
kodas
Aprašymas
1025
Susieti objektai
1026
Makrokomandos ir kodas
1034
Jautrūs hipersaitai
1137
PDF GoToR veiksmai
1139
PDF paleidimo veiksmai
1141
PDF URI veiksmai
1142
PDF garso veiksmai
1143
Pdf filmų veiksmai
1150
PDF JavaScript veiksmai
1151
PDF pateikimo formos veiksmai
1018
Duomenų bazių užklausos
1019
Įterptieji objektai
1021
Greitas duomenų išsaugojimas
1017
Individualios ypatybės
1036
Statistinės savybės
1037
Santraukos savybės
Norėdami atsisiųsti išvalytą kopiją, taip pat po kelių sekundžių turėsite pateikti užklausos užklausą (apie tai bus kalbama toliau), prašymo tekste nurodydami failo maišos kiekį ir ištraukimo komponentą. Galite pasiimti išvalytą failą naudodami ID iš atsakymo į užklausą - extrated_file_download_id. Dar kartą, šiek tiek žvelgdamas į priekį, pateikiu užklausos ir atsakymo į užklausą pavyzdžius, ieškant ID, kad būtų galima atsisiųsti išvalytą dokumentą.
Užklausos užklausa ieškant rakto extrated_file_download_id
{ "request": [
{
"sha256": "9a346005ee8c9adb489072eb8b5b61699652962c17596de9c326ca68247a8876",
"features": ["extraction"] ,
"extraction": {
"method": "pdf"
}
}
]
}
Atsakymas į užklausą (ieškokite extrated_file_download_id rakto)
{
"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."
}
}
}
]
}
Apžvalga
Vienu API skambučiu galite siųsti tik vieną failą patvirtinimui.
Av komponentui nereikia papildomos sekcijos su klavišais, užtenka ją nurodyti žodyne funkcijos.
Užklausos API iškvietimas
Naudotas metodas − POST
Skambinimo adresas - https:///tecloud/api/v1/file/query
Prieš siunčiant failą atsisiųsti (įkėlimo užklausą), patartina patikrinti smėlio dėžės talpyklą (užklausos užklausą), kad optimizuotumėte API serverio apkrovą, nes API serveris jau gali turėti informacijos ir nuosprendžio apie atsisiųstą failą. Skambutis susideda tik iš tekstinės dalies. Reikalinga užklausos dalis yra sha1/sha256/md5 failo maišos kiekis. Beje, jį galite gauti atsakyme į įkėlimo užklausą.
Užklausai reikalingas minimumas
HTTP POST
https:///tecloud/api/v1/file/query
Antraštės:
Autorizacija:
Kėbulas
{
"užklausa": {
"sha256":
}
}
Atsakymo į įkėlimo užklausą pavyzdys, kur matomos sha1/md5/sha256 maišos sumos
{
"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."
}
}
}
}
Idealiu atveju užklausos užklausa, be maišos sumos, turėtų būti tokia pati, kokia buvo (arba planuojama) įkelti, arba netgi „jau“ (užklausos užklausoje turi būti mažiau laukų nei įkėlimo užklausoje). Tuo atveju, kai užklausos užklausoje yra daugiau laukų nei buvo įkėlimo užklausoje, atsakyme negausite visos reikiamos informacijos.
Čia yra atsakymo į užklausą pavyzdys, kai rasti ne visi reikalingi duomenys
{
"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."
}
}
}
]
}
Atkreipkite dėmesį į laukus kodas и etiketė. Šie laukai būsenos žodynuose rodomi tris kartus. Pirmiausia matome visuotinį raktą „kodas“: 1006 ir „etiketė“: „PARTIALLY_FOUND“. Toliau šie raktai randami kiekvienam atskiram komponentui, kurio paprašėme – te ir ištraukimo. Ir jei jums aišku, kad duomenys buvo rasti, tada išgauti informacijos nėra.
Taip atrodė užklausa aukščiau pateiktame pavyzdyje
{ "request": [
{
"sha256": {{sha256}},
"features": ["te", "extraction"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"reports": [
"xml", "pdf"
]
}
}
]
}
Jei siunčiate užklausos užklausą be išskyrimo komponento
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"reports": [
"xml", "pdf"
]
}
}
]
}
Tada atsakyme bus pateikta visa informacija („kodas“: 1001, „etiketė“: „RASTA“)
{
"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."
}
}
}
]
}
Jei talpykloje informacijos iš viso nėra, atsakymas bus „etiketė“: „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."
}
}
}
]
}
Vieno API skambučio metu galite išsiųsti keletą maišos sumų vienu metu patvirtinimui. Atsakyme duomenys bus pateikti tokia pačia tvarka, kokia buvo išsiųsta užklausoje.
Užklausos užklausos pavyzdys su keliomis sha256 sumomis
{ "request": [
{
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd81"
},
{
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd82"
}
]
}
Atsakymas į užklausą su keliomis sha256 sumomis
{
"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."
}
}
}
]
}
Kelių maišos sumų vienu metu užklausos užklausoje užklausa taip pat turės teigiamos įtakos API serverio veikimui.
Atsisiųskite API skambutį
Naudotas metodas − POST (pagal dokumentus), GET taip pat veikia (ir gali atrodyti logiškiau)
Skambinimo adresas - https:///tecloud/api/v1/file/download?id=
Antraštė reikalauja perduoti API raktą, užklausos turinys tuščias, atsisiuntimo ID perduodamas URL adresu.
Atsakant į užklausą, jei emuliacija baigta ir atsisiunčiant failą buvo prašoma ataskaitų, bus matomas ataskaitų atsisiuntimo ID. Jei prašoma išvalyti kopiją, turėtumėte ieškoti ID, kad galėtumėte atsisiųsti išvalytą dokumentą.
Iš viso atsakymo į užklausą, kurioje yra įkėlimo ID reikšmė, raktai gali būti:
-
suvestinė_ataskaita
-
pilna_ataskaita
-
pdf_ataskaita
-
xml_report
-
Extracted_file_download_id
Žinoma, norint gauti šiuos raktus atsakant į užklausą, jie turi būti nurodyti užklausoje (ataskaitoms) arba nepamiršti pateikti užklausos naudojant ištraukimo funkciją (išvalytiems dokumentams)
Kvotos API skambutis
Naudotas metodas − POST
Skambinimo adresas - https:///tecloud/api/v1/file/quota
Norėdami patikrinti debesyje likusią kvotą, naudokite kvotos užklausą. Užklausos turinys tuščias.
Atsakymo į kvotos prašymą pavyzdys
{
"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, skirta saugos šliuzui
Ši API buvo sukurta prieš Threat Prevention API ir skirta tik vietiniams įrenginiams. Kol kas tai gali būti naudinga tik tuo atveju, jei jums reikia Threat Extraction API. Grėsmių emuliacijai geriau naudoti įprastą Threat Prevention API. Įjungti TP API, skirta SG ir sukonfigūruokite API raktą, iš kurio turite atlikti veiksmus
Dabar atidžiau pažvelkime į funkcijas te и gavyba šioje API.
Dėl komponento te pateiktas žodynas te_options įkėlimo / užklausos užklausose, o šios užklausos raktai visiškai sutampa su įvesties raktais
Failų emuliacijos Win10 su ataskaitomis užklausos pavyzdys
{
"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"]
}
}
]
}
Dėl komponento gavyba pateiktas žodynas scrub_options. Ši užklausa nurodo valymo būdą: konvertuoti į PDF, išvalyti aktyvų turinį arba pasirinkti režimą pagal grėsmių prevencijos profilį (profilio pavadinimas yra nurodytas). Puikus dalykas reaguojant į failo išskleidimo API užklausą yra tai, kad atsakydami į tą užklausą gausite išvalytą kopiją kaip base64 užšifruotą eilutę (jums nereikia pateikti užklausos ir ieškoti ID, kad atsisiųstumėte dokumentas)
Prašymo išvalyti failą pavyzdys
{
"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
}
}]
}
Atsakyti į užklausą
{
"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": ""
}
}]
}
Nepaisant to, kad norint gauti patvirtintą kopiją reikia pateikti mažiau API užklausų, manau, kad ši parinktis yra mažiau priimtinesnė ir patogesnė nei formos duomenų užklausa, naudojama
Paštininko kolekcijos
Programoje „Postman“ sukūriau rinkinius, skirtus ir Threat Prevention API, ir Threat Prevention API for Security Gateway, kurie atspindi dažniausiai pasitaikančias API užklausas. Kad serverio ip/url API ir raktas būtų automatiškai pakeisti į užklausas, o sha256 maišos suma būtų įsimenama atsisiuntus failą, kolekcijų viduje sukurti trys kintamieji (juos rasite nuėję į rinkinio nustatymus Redaguoti -> Kintamieji): te_api (būtina), api_key (privaloma užpildyti, išskyrus kai naudojate TP API su vietiniais įrenginiais), sha256 (palikite tuščią, nenaudojama SG TP API).
Naudojimo pavyzdžiai
Bendruomenėje
Šaltinis: www.habr.com