
Ky artikull do t'u ndihmojë atyre që janë të njohur me teknologjitë Check Point për emulimin e skedarëve (Emulimi i Kërcënimeve) dhe pastrimin proaktiv të skedarëve (Ekstraktimi i Kërcënimeve) dhe dëshiron të heqë një hap drejt automatizimit të këtyre detyrave. Check Point ka , i cili funksionon si në cloud, ashtu edhe në pajisje lokale, dhe funksionalisht është identik me kontrollin e skedarëve në trafikun web/smtp/ftp/smb/nfs. Ky artikull është pjesërisht një interpretim autoral i një grupi artikujsh nga dokumentacioni zyrtar, por i ndërtuar mbi përvojën time të përdorimit dhe në shembujt e mi. Gjatë artikullit do të gjeni gjithashtu koleksione autorale të Postman për punë me Threat Prevention API.
Abreviaturat kryesore
Threat Prevention API punon me tre komponentë kryesorë, të cilët në API thirren përmes këtyre vlerave tekstuale:
av — komponenti Anti-Virus, përgjegjës për analizën e nënshkrimeve të kërcënimeve të njohura.
te — komponenti Emulimi i Kërcënimeve, përgjegjës për kontrollin e skedarëve në kutinë e rërë, dhe nxjerrjen e një verdikti të keq (malicious)/të pastër (benign) pas emulimit.
ekstraktimi — komponenti Threat Extraction, përgjegjës për konvertimin e shpejtë të dokumenteve zyrtare në një formë të sigurt (ku hiqet gjithë përmbajtja që mund të jetë e dëmshme), për t'u dorëzuar shpejt përdoruesve/sistemeve.
Struktura e API dhe kufizimet kryesore
API-i i Parandalimit të Kërcënimeve përdor vetëm 4 kërkesa — upload, query, download dhe quota. Në titullin e të katër kërkesave duhet të kaloni çelësin e API, duke përdorur parametrin Authorization. Në shikim të parë, struktura mund të duket shumë më e thjeshtë se në , por numri i fushave në kërkesat upload dhe query dhe struktura e këtyre kërkesave janë mjaft komplekse. Ato mund të krahasohen funksionalisht me profilin e Parandalimit të Kërcënimeve në politikën e sigurisë së portës/përgatitjes.
Në këtë moment, është lëshuar një version i vetëm i API të Parandalimit të Kërcënimeve — 1.0, në URL për thirrjet API duhet të specifikoni v1 në atë pjesë ku duhet të specifikohet versioni. Ndryshe nga API-i i Menaxhimit, specifikimi i versionit të API-së në adresën URL është i detyrueshëm, përndryshe kërkesa nuk do të ekzekutohet.
Komponenti Anti-Virus, kur thirret pa komponentë të tjerë (te, extraction), për momentin mbështet vetëm kërkesat query me hash md5. Threat Emulation dhe Threat Extraction mbështesin gjithashtu hash të tipit sha1 dhe sha256.
Është shumë e rëndësishme të mos bëni gabime në kërkesa! Kërkesa mund të përfundojë pa gabime, por jo plotësisht. Pak përpara, le të shqyrtojmë se çfarë mund të ndodhë në rast të gabimeve/typo-ve në kërkesa.
Kërkesa me një typo në fjalën reports (reportss)
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
reportss: ["tar", "pdf", "xml"]
}
}
]
}Në përgjigje nuk do të ketë gabime, por informacioni mbi raportet nuk do të jetë fare.
{
"response": [
{
"status": {
"code": 1001,
"label": "GJETUR",
"message": "Kërkesa është përgjigjur plotësisht."
},
"sha256": "9cc488fa6209caeb201678f8360a6bb806bd2f85b59d108517ddbbf90baec33a",
"file_type": "pdf",
"file_name": "",
"features": [
"te"
],
"te": {
"trust": 10,
"images": [
{
"report": {
"verdict": "malicious"
},
"status": "gjetur",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"score": -2147483648,
"combined_verdict": "malicious",
"severity": 4,
"confidence": 3,
"status": {
"code": 1001,
"label": "GJETUR",
"message": "Kërkesa është përgjigjur plotësisht."
}
}
}
]
}Dhe ja për një kërkesë pa typo në çelësin reports
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
reports: ["tar", "pdf", "xml"]
}
}
]
}Marrimë një përgjigje që tashmë përmban id për shkarkimin e raporteve
{
"response": [
{
"status": {
"code": 1001,
"label": "GJETUR",
"message": "Kërkesa është përgjigjur plotësisht."
},
"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": "gjetur",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"score": -2147483648,
"combined_verdict": "malicious",
"severity": 4,
"confidence": 3,
"status": {
"code": 1001,
"label": "GJETUR",
"message": "Kërkesa është përgjigjur plotësisht."
}
}
}
]
}Nëse dërgohet një çelës API të gabuar/te kaluar, atëherë do të marrim një gabim 403 si përgjigje.
SandBlast API: në re dhe në pajisje lokale
Kërkesat API mund të dërgohen në pajisjet Check Point, në të cilat komponenti (blade) Threat Emulation është i aktivizuar. Si adresë për kërkesat duhet të përdoret ip/url e pajisjes dhe porta 18194 (p.sh. — https://10.10.57.19:18194/tecloud/api/v1/file/query). Также следует убедиться в том, что политикой безопасности на устройстве разрешено такое подключение. Авторизация через API ключ на локальных устройствах по умолчанию çaktivizuar dhe çelësi Authorization në titujt e kërkesave mund të mos dërgohet fare.
Kërkesat API për cloud-in CheckPoint duhet të dërgohen në adresën te.checkpoint.com (p.sh. — https://te.checkpoint.com/tecloud/api/v1/file/query). API ключ можно получить в виде триальной лицензии на 60 дней, обратившись к партнерам Check Point или в локальный офис компании.
Në pajisjet lokale, Threat Extraction ende nuk mbështetet në standardin dhe duhet përdorur (për të cilin do të flasim më në detaje në fund të artikullit).
Pajisjet lokale nuk mbështesin kërkesën quota.
Përveç kësaj, nuk ka dallime midis kërkesave për pajisjet locale dhe për cloud-in.
Thirrja e Upload API
Metoda e përdorur — POST
Adresa për thirrje — https://<service_address>/tecloud/api/v1/file/upload
Kërkesa përbëhet nga dy pjesë (form-data): një skedë e destinuar për emulimin/pastrimin dhe trupi i kërkesës me tekstin.
Teksti i kërkesës nuk mund të jetë bosh, por mund të mos përmbajë asnjë konfigurim. Për qëllim që kërkesa të jetë e suksesshme, duhet të dërgohet të paktën teksti në vijim në kërkesë:
Minimumi i nevojshëm për kërkesën upload
HTTP POST
https://<service_address>/tecloud/api/v1/file/upload
Headers:
Authorization: <api_key>
Body
{
«request»: {
}
}
File
File
Në këtë rast, skedari për përpunim do të përfshihet sipas parametrave të paracaktuar: komponent - te, imazhet e OS - Win XP dhe Win 7, pa gjenerimin e raporteve.
Komentet në fushat kryesore në kërkesën tekstuale:
file_name dhe file_type mund të lihen bosh ose të mos dërgohen fare, pasi nuk janë informacion të dobishëm për ngarkimin e skedarit. Në përgjigjen e API, këto fusha do të plotësohen automatikisht në bazë të emrit të skedarit të ngarkuar, dhe informatat në cache gjithsesi do të duhet të kërkohen sipas hash-ëve md5/sha1/sha256.
Shembulli i kërkesës me file_name dhe file_type bosh
{
"request": {
"file_name": "",
"file_type": "",
}
}features — lista që tregon funksionalitetin e nevojshëm gjatë procesimit në sandbox — av (Antivirus), te (Emulimi i Kërcënimeve), extraction (Nxjerrja e Kërcënimeve). Nëse ky parametër nuk dërgohet fare, vetëm komponenti i paracaktuar do të aktivizohet — te (Emulimi i Kërcënimeve).
Për të aktivizuar verifikimin në tre komponentët e disponueshëm, nevojitet të shkruhen këto komponent në kërkesën API.
Shembulli i kërkesës me verifikim në av, te dhe extraction
{ "request": [
{
"sha256": {{sha256}},
"features": ["av", "te", "extraction"]
}
]
}Çelësat në seksionin te
images — një listë e cila duhet të përmbajë përkufizime me id dhe numrin e revizionit të sistemeve operative, në të cilat do të kryhet kontrolli. ID dhe numrat e revizionit janë të njëjta për të gjitha pajisjet lokale dhe cloud.
Lista e sistemeve operative dhe revizionet
ID e Disponueshme të Imazhit të OS
Revizioni
Imazhi OS dhe Aplikacioni
e50e99f3-5963-4573-af9e-e3f4750b55e2
1
Microsoft Windows: XP — 32bit SP3
Zyra: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash Player 9r115 dhe ActiveX 10.0
Java Runtime: 1.6.0u22
7e6fe36e-889e-4c25-8704-56378f0830df
1
Microsoft Windows: 7 — 32bit
Zyra: 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
Zyra: 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
Zyra: 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
Zyra: 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
Zyra: 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
Zyra: Professional Plus 2016 en-us
Adobe Acrobat Reader: DC 2015 MUI
Flash Player: 20 (Plugin & ActiveX)
Java Runtime: 1.7.0u9
Nëse çelsi i imazheve nuk përcaktohet fare, simulimi do të kalojë në imazhet e rekomanduara nga Check Point (aktualisht kjo është Win XP dhe Win 7). Këto imazhe janë rekomanduar për shkak të një bilanci optimal të performancës dhe catch rate.
raportet — një listë raportesh që ne kërkojmë në rast se skedari del të jetë i dëmshëm. Disponohen mundësitë e mëposhtme:
përmbledhja — arkivi .tar.gz, që përmban raportin e simulimit me të gjitha me të kërkuar image’ave (si një faqe html ashtu edhe komponentë si video nga emulatori i OS, dump i trafikut rrjet, raport në json, si dhe mostra e vet në një arkiv me fjalëkalim). Në përgjigje kërkojmë çelësin — raporti_përmbledhës për ngarkimin e mëvonshëm të raportit.
pdf — dokumenti mbi emulimin në një image, i cili është përdorur shumë për t'u marrë përmes Smart Console. Në përgjigje kërkojmë çelësin — pdf_raporti për ngarkimin e mëvonshëm të raportit.
xml — dokumenti mbi emulimin në një image, i përshtatshëm për analizën e mëvonshme të parametrave në raport. Në përgjigje kërkojmë çelësin — xml_raporti për ngarkimin e mëvonshëm të raportit.
tar — arkiv .tar.gz, që përmban raportin mbi emulimin në një me të kërkuar image’ave (si një faqe html ashtu edhe komponentë si video nga emulatori i OS, dump i trafikut rrjet, raport në json, si dhe mostra e vet në një arkiv me fjalëkalim). Në përgjigje kërkojmë çelësin — raporti_i_plotë për ngarkimin e mëvonshëm të raportit.
Çfarë ka brenda raportit përmbledhës
Çelësat raportit_të_plotë, pdf_raporti, xml_raporti janë në fjalor për çdo OS
{
"response": [
{
"status": {
"code": 1001,
"label": "GJETUR",
"message": "Kërkesa është përgjigjur plotësisht."
},
"sha256": "9e6f07d03b37db0d3902bde4e239687a9e3d650e8c368188c7095750e24ad2d5",
"file_type": "html",
"file_name": "",
"features": [
"te"
],
"te": {
"trust": 10,
"images": [
{
"report": {
"verdict": "keqdashur",
"full_report": "8d18067e-b24d-4103-8469-0117cd25eea9",
"pdf_report": "05848b2a-4cfd-494d-b949-6cfe15d0dc0b",
"xml_report": "ecb17c9d-8607-4904-af49-0970722dd5c8"
},
"status": "gjetur",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
},
{
"report": {
"verdict": "keqdashur",
"full_report": "d7c27012-8e0c-4c7e-8472-46cc895d9185",
"pdf_report": "488e850c-7c96-4da9-9bc9-7195506afe03",
"xml_report": "e5a3a78d-c8f0-4044-84c2-39dc80ddaea2"
},
"status": "gjetur",
"id": "6c453c9b-20f7-471a-956c-3198a868dc92",
"revision": 1
}
],
"score": -2147483648,
"combined_verdict": "keqdashur",
"severity": 4,
"confidence": 3,
"status": {
"code": 1001,
"label": "GJETUR",
"message": "Kërkesa është përgjigjur plotësisht."
}
}
}
]
}Ky është çelësi summary_report — ka një për të emuluar përgjithësisht.
{
"response": [
{
"status": {
"code": 1001,
"label": "GJETUR",
"message": "Kërkesa është përgjigjur plotësisht."
},
"sha256": "d57eadb7b2f91eea66ea77a9e098d049c4ecebd5a4c70fb984688df08d1fa833",
"file_type": "exe",
"file_name": "",
"features": [
"te"
],
"te": {
"trust": 10,
"images": [
{
"report": {
"verdict": "keqdashëse",
"full_report": "c9a1767b-741e-49da-996f-7d632296cf9f",
"xml_report": "cc4dbea9-518c-4e59-b6a3-4ea463ca384b"
},
"status": "gjetur",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
},
{
"report": {
"verdict": "keqdashëse",
"full_report": "ba520713-8c0b-4672-a12f-0b4a1575b913",
"xml_report": "87bdb8ca-dc44-449d-a9ab-2d95e7fe2503"
},
"status": "gjetur",
"id": "6c453c9b-20f7-471a-956c-3198a868dc92",
"revision": 1
}
],
"score": -2147483648,
"combined_verdict": "keqdashëse",
"severity": 4,
"confidence": 3,
"summary_report": "7e7db12d-5df6-4e14-85f3-2c1e29cd3e34",
"status": {
"code": 1001,
"label": "GJETUR",
"message": "Kërkesa është përgjigjur plotësisht."
}
}
}
]
}Mund të kërkoni raportet tar, xml dhe pdf njëkohësisht; mund të kërkoni summary dhe tar dhe xml. Nuk mund të kërkoni njëkohësisht raportin summary dhe pdf.
Çelësat në seksionin extraction
Për ekstraktimin e threat përdoren vetëm dy çelësa:
metoda — pdf (konvertim në pdf, përdoret si të parazgjedhur) ose clean (pastrimi i përmbajtjes aktive).
kodi i pjesëve të ekstraktuara — lista e kodeve për të fshirë përmbajtjen aktive, e zbatueshme vetëm për metodën clean
Kodet për të fshirë përmbajtjen nga skedarët
Kodi
Përshkrimi
1025
Objektet e lidhura
1026
Makrot dhe Kodi
1034
Hiperlinket e ndjeshme
1137
PDF GoToR Veprimet
1139
PDF Veprimet e Nisjes
1141
PDF Veprimet URI
1142
PDF Veprimet e Zërit
1143
PDF Veprimet e Filmit
1150
PDF Veprimet JavaScript
1151
PDF Veprimet e Dërgimit të Formularit
1018
Kërkesat e Bazës së të Dhënave
1019
Objektet e Përcaktuara
1021
Ruaj të Dhëna Shpejt
1017
Pronat e Personalizuara
1036
Pronat Statistike
1037
Pronat e Përmbledhjes
Për të shkarkuar një kopje të pastër, duhet të bëni gjithashtu një kërkesë query (për të cilin do të flasim më vonë) pas disa sekondash, duke specifikuar shumën hash të skedarit dhe komponentin e nxjerrjes në tekstin e kërkesës. Dosjen e pastruar mund ta merrni me id-në nga përgjigjja në kërkesën query — extracted_file_download_id. Përsëri, duke e kaluar pak, po sjell shembuj të kërkesës dhe përgjigjes query për të gjetur id-në për shkarkimin e dokumentit të pastër.
Kërkesa query për të gjetur çelësin extracted_file_download_id
{ "request": [
{
"sha256": "9a346005ee8c9adb489072eb8b5b61699652962c17596de9c326ca68247a8876",
"features": ["extraction"] ,
"extraction": {
"method": "pdf"
}
}
]
}Përgjigja në kërkesën query (gjeni çelësin extracted_file_download_id)
{
"response": [
{
"status": {
"code": 1001,
"label": "GJETUR",
"message": "Kërkesa është përgjigjur plotësisht."
},
"sha256": "9a346005ee8c9adb489072eb8b5b61699652962c17596de9c326ca68247a8876",
"file_type": "",
"file_name": "",
"features": [
"nxjerrja"
],
"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 dhe Kodi",
"extraction_data": {
"input_extension": "xls",
"input_real_extension": "xls",
"message": "Mirë",
"output_file_name": "kp-20-xls.cleaned.xls.pdf",
"protection_name": "Përmbajtje potencialisht e dëmshme e nxjerrë",
"protection_type": "Konversion në PDF",
"protocol_version": "1.0",
"risk": 5.0,
"scrub_activity": "Përmbajtje aktive u gjet - skedari XLS u konvertua në PDF",
"scrub_method": "Konverto në PDF",
"scrub_result": 0.0,
"scrub_time": "0.013",
"scrubbed_content": "Macros dhe Kodi"
},
"tex_product": false,
"status": {
"code": 1001,
"label": "GJETUR",
"message": "Kërkesa është përgjigjur plotësisht."
}
}
}
]
}Informacione të përgjithshme
Në një thirrje API, mund të dërgohet vetëm një skedare për verifikim.
Komponenti av nuk i nevojitet një seksion shtesë me çelësa, mjafton të specifikohet në fjalorin. features.
Thirrja e Query API
Metoda e përdorur — POST
Adresa për thirrje — https://<service_address>/tecloud/api/v1/file/query
Para se të dërgoni një skedar për ngarkim (kërkesa upload), është e dëshirueshme të kryeni një kontrolle të caches sandbox (kërkesa query) për të optimizuar ngarkesën në serverin API, që mund të ketë informacion dhe vendim për skedarin e ngarkuar. Thirrja përbëhet vetëm nga pjesa tekstuale. Pjesa e detyrueshme e kërkesës është hash-i sha1/sha256/md5 i skedarit. Sigurisht, mund ta merrni atë në përgjigjen e kërkesës upload.
Minimi i nevojshëm për kërkesën query
HTTP POST
https://<service_address>/tecloud/api/v1/file/query
Headers:
Authorization: <api_key>
Body
{
«request»: {
"sha256": <sha256 hash sum>
}
}
Shembulli i përgjigjes për kërkesën upload, ku duken hash-et sha1/md5/sha256
{
"response": {
"status": {
"code": 1002,
"label": "UPLOAD_SUCCESS",
"message": "Skedari u ngarkua me sukses."
},
"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": "Skedari u ngarkua me sukses."
}
}
}
}Kërkesa query, përveç hash-it, idealisht duhet të jetë e njëjtë me kërkesën upload, ose madje "tjetër" (të ketë më pak fusha në kërkesën query sesa në kërkesën upload). Në rast se kërkesa query përmban më shumë fusha sesa ishte në kërkesën upload, do të merrni një përgjigje që nuk përmban të gjitha informatat e kërkuara.
Ja një shembull i përgjigjes për kërkesën query, ku nuk janë gjetur të gjitha të dhënat e kërkuara.
{
"response": [
{
"status": {
"code": 1006,
"label": "PARTIALLY_FOUND",
"message": "Kërkesa nuk mund të përgjigjet plotësisht në këtë moment."
},
"sha256": "313c0feb009356495b7f4a60e96737120beb30e1912c6d866218cee830aebd90",
"file_type": "doc",
"file_name": "",
"features": [
"te",
"ekstraksion"
],
"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": "Kërkesa është përgjigjur plotësisht."
}
},
"extraction": {
"method": "pdf",
"tex_product": false,
"status": {
"code": 1004,
"label": "NOT_FOUND",
"message": "Nuk u gjet skedari i kërkuar. Ju lutemi ngarko atë."
}
}
}
]
}Vini re si fushat kode dhe etiketë. Këto fusha shfaqen tre herë në fjalorët status. Fillimisht shohim çelësin global 'kode': 1006 dhe 'etiketë': 'PARTIALLY_FOUND'. Më pas, këto çelësa shfaqen për çdo komponent të veçantë që kërkuam - te dhe ekstraktim. Dhe nëse për te është e qartë se të dhënat janë gjetur, për ekstraktim informacioni mungon.
Kështu dukej kërkesa query për shembullin e sipërm
{ "request": [
{
"sha256": {{sha256}},
"features": ["te", "ekstraktim"] ,
"te": {
"imazh": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"raportet": [
"xml", "pdf"
]
}
}
]
}Nëse dërgon kërkesën query pa komponentin ekstraktim
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"imazh": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"raportet": [
"xml", "pdf"
]
}
}
]
}Atëherë në përgjigje do të ketë informacione të plota ('kode': 1001, 'etiketë': 'FOUND')
{
"response": [
{
"status": {
"code": 1001,
"label": "GJETUR",
"message": "Kërkesa është përgjigjur plotësisht."
},
"sha256": "313c0feb009356495b7f4a60e96737120beb30e1912c6d866218cee830aebd90",
"file_type": "doc",
"file_name": "",
"features": [
"te"
],
"te": {
"trust": 10,
"images": [
{
"report": {
"verdict": "malicioze",
"pdf_report": "4e9cddaf-03a4-489f-aa03-3c18f8d57a52",
"xml_report": "9c18018f-c761-4dea-9372-6a12fcb15170"
},
"status": "gjetur",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"score": -2147483648,
"combined_verdict": "malicioze",
"severity": 4,
"confidence": 1,
"status": {
"code": 1001,
"label": "GJETUR",
"message": "Kërkesa është përgjigjur plotësisht."
}
}
}
]
}Nëse nuk ka asnjë informacion në memorie, atëherë në përgjigje do të ketë "label": "NUK_GJETUR"
{
"response": [
{
"status": {
"code": 1004,
"label": "NOT_FOUND",
"message": "Nuk u gjet file i kërkuar. Ju lutemi ngarkoni atë."
},
"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": "Nuk u gjet file i kërkuar. Ju lutemi ngarkoni atë."
}
}
}
]
}Në një thirrje API mund të dërgoni disa hash të shpejtë për t'u verifikuar. Të dhënat do të kthehen në të njëjtin rend siç u dërguan në kërkesë.
Shembulli i kërkesës query me disa sha256 hash.
{ "request": [
{
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd81"
},
{
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd82"
}
]
}Përgjigja në kërkesën query me disa sha256 hash.
{
"response": [
{
"status": {
"code": 1001,
"label": "GJETUR",
"message": "Kërkesa është përgjigjur plotësisht."
},
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd81",
"file_type": "dll",
"file_name": "",
"features": [
"te"
],
"te": {
"trust": 10,
"images": [
{
"report": {
"verdict": "malicioz"
},
"status": "gjetur",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"score": -2147483648,
"combined_verdict": "malicioz",
"severity": 4,
"confidence": 3,
"status": {
"code": 1001,
"label": "GJETUR",
"message": "Kërkesa është përgjigjur plotësisht."
}
}
},
{
"status": {
"code": 1004,
"label": "NUK ËSHTË GJETUR",
"message": "Nuk mund të gjendet skedari i kërkuar. Ju lutemi ngarkohet."
},
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd82",
"file_type": "",
"file_name": "",
"features": [
"te"
],
"te": {
"trust": 0,
"images": [
{
"report": {
"verdict": "e panjohur"
},
"status": "nuk_gjetur",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"score": -2147483648,
"status": {
"code": 1004,
"label": "NUK ËSHTË GJETUR",
"message": "Nuk mund të gjendet skedari i kërkuar. Ju lutemi ngarkohet."
}
}
}
]
}Thirrja e shumë hash-eve në kërkesën query gjithashtu do të ndihmojë në performancën e serverit API.
Thirrja e API-së për Shkarkim
Metoda e përdorur — POST (sipas dokumentacionit), GET sigurisht punon (dhe mund të duket më logjike)
Adresa për thirrje — https://<service_address>/tecloud/api/v1/file/download?id=<id>
Në titull duhet të dërgohet çelësi API, trupi i kërkesës është bosh, id për ngarkimin dërgohet në url.
Në përgjigjen e kërkesës query, në rast se simulimi përfundon dhe në ngarkimin e skedarit janë kërkuar raporte, do të shihen id për ngarkimin e raporteve. Nëse kërkohet një kopje e pastër, atëherë duhet të kërkohet id për ngarkimin e dokumentit të pastruar.
Pra, çelësat në përgjigjen për kërkesën query, të cilat përmbajnë vlerën id për ngarkim mund të jenë:
raporti_përmbledhës
raporti_i_plotë
pdf_raporti
xml_raporti
extracted_file_download_id
Pa dyshim, që në përgjigjen e kërkesës query të merrni këta çelësa, ata duhet të specifikohen në kërkesë (për raporte) ose mos harroni të bëni kërkesë për funksionin extraction (për dokumentet e pastruar)
Thirrja e Quota API
Metoda e përdorur — POST
Adresa për thirrje — https://<service_address>/tecloud/api/v1/file/quota
Për të kontrolluar kuotën e mbetur në cloud, përdoret kërkesa quota. Trupi i kërkesës është bosh.
Shembulli i përgjigjes për kërkesën quota
{
"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 për Security Gateway
Ky kyç API është zhvilluar përpara API-së së Parandalimit të Kërcënimeve dhe është i destinuar vetëm për pajisjet lokale. Në këtë moment, ai mund të jetë i dobishëm vetëm nëse ju nevojitet API i Ekstraktimit të Kërcënimeve. Për Emulimin e Kërcënimeve, është më mirë të përdorni API-në e zakonshme të Parandalimit të Kërcënimeve. Për ta aktivizuar TP API për SG dhe për të konfiguruar çelësin e API-së, duhen ndjekur hapat nga . Rekomandoj të kushtoni vëmendje hapit 6b dhe të kontrolloni aksesin në faqen https:///UserCheck/TPAPI sepse në rastin e një rezultati negativ, konfigurimi i mëtejmë nuk ka kuptim. Të gjitha thirrjet e API-së do të dërgohen në këtë URL. Lloji i thirrjes (upload/query) rregullohet në çelësin e trupit të thirrjes — request_name. Gjithashtu çelësat e detyrueshëm janë — api_key (duhet ta mbani mend gjatë konfigurimit) dhe protocol_version (versioni aktual është 1.1). Dokumentacionin zyrtar për këtë API mund ta gjeni në . Avantazhet përfshijnë mundësinë për të dërguar disa skedarë për simulim gjatë ngarkimit të tyre, pasi skedarët dërgohen si një varg teksti base64. Për të koduar/dekoduara skedarët në/nga base64, mund të përdorni konvertuesin online në Postman, për shembull — . Në praktikë, gjatë shkrimit të kodit, duhet të përdoren metodat e ndërtuara encode dhe decode.
Tani do të ndalemi më në detaje te funksionet te dhe ekstraktimi në këtë API.
Për komponentin te është parashikuar një fjalor te_options në kërkesat upload/query, dhe çelësat në këtë kërkesë përputhen plotësisht me çelësat te .
Shembulli i kërkesës për simulimin e skedarit në Win10 me raporte
{
"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"]
}
}
]
}Për komponentin ekstraktimi është parashikuar një fjalor scrub_options. Në këtë kërkesë përcaktohet metoda e pastrimit: konvertim në PDF, pastrim nga përmbajtja aktive ose zgjidhni modalitetin sipas profilit të Parandalimit të Kërcënimeve (përshkruhet emri i profilit). Veçoria dalluese e përgjigjes për kërkesën API me extraction për skedarin është se merrni një kopje të pastër në përgjigje të kësaj kërkese në formën e një stringu të koduar base64 (nuk është e nevojshme të bëni një kërkesë query dhe të kërkoni id për të shkarkuar dokumentin)
Shembulli i kërkesës për pastrimin e skedarit
{
"request": [{
"protocol_version": "1.1",
"api_key": "",
"request_name": "UploadFile",
"file_enc_data": "",
"file_orig_name": "hi.txt",
"scrub_options": {
"scrub_method": 2
}
}]
}Përgjigja në kërkesë
{
"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": "Nxjerr përmbajtje potencialisht të dëmshme",
"protection_type": "Konvertim në PDF",
"real_extension": "txt",
"risk": 0,
"scrub_activity": "Skedari TXT u konvertua në PDF",
"scrub_method": "Konvertim në PDF",
"scrub_result": 0,
"scrub_time": "0.011",
"scrubbed_content": ""
}
}]
} Megjithatë, megjithëse kërkesa për kopjen e pastër kërkon më pak kërkesa API, e konsideroj këtë opsion më pak të preferuar dhe të rehatshëm se sa kërkesa form-data, e përdorur në .
Koleksionet Postman
Unë kam krijuar koleksione në Postman si për Threat Prevention API ashtu edhe për Threat Prevention API për Security Gateway, ku janë paraqitur kërkesat më të zakonshme API. Për qëllim që ip/url API i serverit dhe çelësi të vendosen automatikisht në kërkesa, ndërsa suma hash sha256 pas ngarkimit të skedarit gjithashtu ruhet, brenda koleksioneve janë krijuar tre variabla (mund t'i gjeni duke kaluar në cilësimet e koleksionit Edit -> Variables): te_api (duhet të plotësohet), api_key (duhet të plotësohet, përveç rastit të përdorimit të TP API me pajisje lokale), sha256 (lëreni të zbrazët, nuk përdoret në TP API për SG).
Shembuj përdorimi
Në komunitet janë prezentuar skripte të shkruara në Python, të cilat kontrollojnë skedarët nga dosja e nevojshme si përmes , ashtu edhe . Nëpërmjet bashkëpunimit me Threat Prevention API, mundësitë tuaja për kontrollimin e skedarëve zgjerohen ndjeshëm, pasi tani mund të kontrolloni skedarët menjëherë në disa platforma (e veçantë është kontrollimi në , dhe më pas në sandboxin Check Point), si dhe skedarët të cilët mund të merren jo vetëm nga trafiku në rrjet, por gjithashtu të tërhiqen nga çdo disk rrjeti dhe, për shembull, nga sistemet CRM.
Burimi: habr.com
