Ky artikull do të jetë i dobishëm për ata që janë të njohur me teknologjinë Kontrollo Point me emulim skedari (Emulimi i kërcënimit) dhe pastrim proaktiv të skedarëve (Nxjerrja e kërcënimit) dhe dëshiron të ndërmarrë një hap drejt automatizimit të këtyre detyrave. Check Point ka
Shkurtesat bazë
API për Parandalimin e Kërcënimeve funksionon me tre komponentë kryesorë, të cilët thirren në API përmes vlerave të mëposhtme të tekstit:
av — Komponenti anti-virus, përgjegjës për analizën e nënshkrimit të kërcënimeve të njohura.
te - Komponenti i Emulimit të Kërcënimeve, përgjegjës për kontrollimin e skedarëve në sandbox dhe marrjen e një vendimi keqdashës/dashamirës pas emulimit.
nxjerrja - Komponenti i Nxjerrjes së Kërcënimeve, përgjegjës për konvertimin e shpejtë të dokumenteve të zyrës në një formë të sigurt (në të cilën hiqet e gjithë përmbajtja potencialisht me qëllim të keq), në mënyrë që t'i dorëzojë ato shpejt te përdoruesit/sistemet.
Struktura e API dhe kufizimet kryesore
Threat Prevention API përdor vetëm 4 kërkesa - ngarkoni, kërkoni, shkarkoni dhe kuotoni. Në kokën për të katër kërkesat, duhet të kaloni çelësin API duke përdorur parametrin Autorizim. Në pamje të parë, struktura mund të duket shumë më e thjeshtë se sa në
Për momentin, versioni i vetëm i API-së për Parandalimin e Kërcënimeve është lëshuar - 1.0; URL-ja për thirrjet API duhet të përfshijë v1 në pjesën ku duhet të specifikoni versionin. Ndryshe nga API i Menaxhimit, është e nevojshme të tregohet versioni i API në URL, përndryshe kërkesa nuk do të ekzekutohet.
Komponenti Anti-Virus, kur thirret pa komponentë të tjerë (te, ekstraktimi), aktualisht mbështet vetëm kërkesat për pyetje me shuma hash md5. Emulimi i Kërcënimit dhe Ekstraktimi i Kërcënimeve gjithashtu mbështesin shumat e hash sha1 dhe sha256.
Është shumë e rëndësishme të mos bëni gabime në pyetje! Kërkesa mund të ekzekutohet pa gabime, por jo plotësisht. Duke parë pak përpara, le të shohim se çfarë mund të ndodhë kur ka gabime / gabime shtypi në pyetje.
Kërkesë me një gabim shkrimi me fjalën raporte (raporte)
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
reportss: ["tar", "pdf", "xml"]
}
}
]
}
Nuk do të ketë asnjë gabim në përgjigje, por nuk do të ketë fare informacion për raportet
{
"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."
}
}
}
]
}
Por për një kërkesë pa një gabim shtypi në raportet kyç
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
reports: ["tar", "pdf", "xml"]
}
}
]
}
Ne marrim një përgjigje që tashmë përmban ID për shkarkimin e raporteve
{
"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."
}
}
}
]
}
Nëse dërgojmë një çelës API të pasaktë/të skaduar, do të marrim një gabim 403 si përgjigje.
SandBlast API: në cloud dhe në pajisjet lokale
Kërkesat për API mund të dërgohen te pajisjet Check Point që kanë të aktivizuar komponentin Threat Emulation (blade). Si adresë për kërkesat, duhet të përdorni ip/url-në e pajisjes dhe portin 18194 (për shembull, https://10.10.57.19:18194/tecloud/api/v1/file/query). Duhet të siguroheni gjithashtu që politika e sigurisë në pajisje ta lejon këtë lidhje. Autorizimi nëpërmjet çelësit API në pajisjet lokale si parazgjedhje fikur dhe çelësi i autorizimit në titujt e kërkesës mund të mos dërgohet fare.
Kërkesat API në renë e CheckPoint duhet të dërgohen te te.checkpoint.com (për shembull - https://te.checkpoint.com/tecloud/api/v1/file/query). Çelësi API mund të merret si licencë prove për 60 ditë duke kontaktuar partnerët e Check Point ose zyrën lokale të kompanisë.
Në pajisjet lokale, Threat Extraction nuk mbështetet ende si standard.
Pajisjet lokale nuk e mbështesin kërkesën për kuotë.
Përndryshe, nuk ka dallime midis kërkesave për pajisjet lokale dhe renë kompjuterike.
Ngarko thirrje API
Metoda e përdorur − POST
Adresa e thirrjes - https:///tecloud/api/v1/file/upload
Kërkesa përbëhet nga dy pjesë (formë-të dhëna): një skedar i destinuar për emulim/pastrim dhe një trup kërkese me tekst.
Kërkesa për tekst nuk mund të jetë bosh, por mund të mos përmbajë ndonjë konfigurim. Në mënyrë që kërkesa të jetë e suksesshme, duhet të dërgoni të paktën tekstin e mëposhtëm në kërkesë:
Minimumi i kërkuar për një kërkesë ngarkimi
HTTP POST
https:///tecloud/api/v1/file/upload
Titujt:
autorizimi:
trup
{
"kërkesë": {
}
}
Skedar
Skedar
Në këtë rast, skedari do të përpunohet në përputhje me parametrat e paracaktuar: komponenti - te, imazhet e OS - Win XP dhe Win 7, pa gjeneruar një raport.
Komentet mbi fushat kryesore në kërkesën për tekst:
emri i skedarit и lloji i skedarit Mund t'i lini bosh ose të mos i dërgoni fare, pasi ky nuk është një informacion veçanërisht i dobishëm kur ngarkoni një skedar. Në përgjigjen API, këto fusha do të plotësohen automatikisht në bazë të emrit të skedarit të shkarkuar dhe informacioni në cache do të duhet ende të kërkohet duke përdorur sasitë hash md5/sha1/sha256.
Shembull i kërkesës me emrin e skedarit dhe llojin e skedarit bosh
{
"request": {
"file_name": "",
"file_type": "",
}
}
karakteristika — një listë që tregon funksionalitetin e nevojshëm gjatë përpunimit në sandbox - av (Anti-Virus), te (Emulimi i kërcënimit), nxjerrja (Nxjerrja e kërcënimit). Nëse ky parametër nuk kalohet fare, atëherë do të përdoret vetëm komponenti i paracaktuar - te (Threat Emulation).
Për të mundësuar kontrollin në tre komponentët e disponueshëm, duhet t'i specifikoni këto komponentë në kërkesën API.
Shembull i një kërkese me kontroll në av, te dhe nxjerrje
{ "request": [
{
"sha256": {{sha256}},
"features": ["av", "te", "extraction"]
}
]
}
Çelësat në seksionin te
images — një listë që përmban fjalorë me id dhe numrin e rishikimit të sistemeve operative në të cilat do të kryhet kontrolli. ID-të dhe numrat e rishikimit janë të njëjtë për të gjitha pajisjet lokale dhe cloud.
Lista e sistemeve operative dhe rishikimet
ID-ja e imazhit të disponueshëm të OS
Rishikim
Sistemi operativ i imazhit dhe aplikacioni
e50e99f3-5963-4573-af9e-e3f4750b55e2
1
Microsoft Windows: XP - 32bit SP3
Zyrë: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash Player 9r115 dhe ActiveX 10.0
Koha e ekzekutimit në Java: 1.6.0u22
7e6fe36e-889e-4c25-8704-56378f0830df
1
Microsoft Windows: 7 - 32 bit
Zyrë: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash Player: 10.2r152 (plugin& ActiveX)
Koha e ekzekutimit në Java: 1.6.0u0
8d188031-1010-4466-828b-0cd13d4303ff
1
Microsoft Windows: 7 - 32 bit
Zyrë: 2010
Adobe Acrobat Reader: 9.4
Flash Player: 11.0.1.152 (plugin & ActiveX)
Koha e ekzekutimit në Java: 1.7.0u0
5e5de275-a103-4f67-b55b-47532918fa59
1
Microsoft Windows: 7 - 32 bit
Zyrë: 2013
Adobe Acrobat Reader: 11.0
Flash Player: 15 (plugin & ActiveX)
Koha e ekzekutimit në Java: 1.7.0u9
3ff3ddae-e7fd-4969-818c-d5f1a2be336d
1
Microsoft Windows: 7 - 64 bit
Zyrë: 2013 (32 bit)
Adobe Acrobat Reader: 11.0.01
Flash Player: 13 (plugin & ActiveX)
Koha e ekzekutimit në Java: 1.7.0u9
6c453c9b-20f7-471a-956c-3198a868dc92
1
Microsoft Windows: 8.1 - 64 bit
Zyrë: 2013 (64 bit)
Adobe Acrobat Reader: 11.0.10
Flash Player: 18.0.0.160 (plugin & ActiveX)
Koha e ekzekutimit në Java: 1.7.0u9
10b4a9c6-e414-425c-ae8b-fe4dd7b25244
1
Microsoft Windows: 10
Zyrë: Professional Plus 2016 en-us
Adobe Acrobat Reader: DC 2015 MUI
Flash Player: 20 (plugin & ActiveX)
Koha e ekzekutimit në Java: 1.7.0u9
Nëse çelësi i imazheve nuk është fare i specifikuar, atëherë emulimi do të bëhet në imazhet e rekomanduara nga Check Point (aktualisht Win XP dhe Win 7). Këto imazhe rekomandohen bazuar në konsideratat e balancës më të mirë të performancës dhe shkallës së kapjes.
Raportet — një listë raportesh që kërkojmë në rast se skedari rezulton të jetë me qëllim të keq. Opsionet e mëposhtme janë në dispozicion:
-
përmbledhje - Arkivi .tar.gz që përmban një raport mbi emulimin nga të gjithë imazhet e kërkuara (si një faqe html ashtu edhe komponentë të tillë si një video nga emulatori OS, një grumbullim i trafikut në rrjet, një raport në json dhe vetë mostra në një arkiv të mbrojtur me fjalëkalim). Ne po kërkojmë çelësin në përgjigje - raporti_përmbledhës për shkarkimin e mëvonshëm të raportit.
-
pdf - dokument për emulimin në një imazh, të cilin shumë janë mësuar ta marrin përmes Smart Console. Ne po kërkojmë çelësin në përgjigje - pdf_raport për shkarkimin e mëvonshëm të raportit.
-
xml - dokument për emulimin në një imazh, i përshtatshëm për analizimin e mëvonshëm të parametrave në raport. Ne po kërkojmë çelësin në përgjigje - xml_raport për shkarkimin e mëvonshëm të raportit.
-
katran - Arkivi .tar.gz që përmban një raport mbi emulimin në një imazhet e kërkuara (si një faqe html ashtu edhe komponentë të tillë si një video nga emulatori OS, një grumbullim i trafikut në rrjet, një raport në json dhe vetë mostra në një arkiv të mbrojtur me fjalëkalim). Ne po kërkojmë çelësin në përgjigje - raporti i plotë për shkarkimin e mëvonshëm të raportit.
Çfarë ka brenda raportit përmbledhës
Çelësat full_report, pdf_report, xml_report janë në fjalor për secilin 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."
}
}
}
]
}
Por çelësi summary_report - ekziston një për emulim në përgjithësi
{
"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."
}
}
}
]
}
Ju mund të kërkoni raporte tar dhe xml dhe pdf në të njëjtën kohë, mund të kërkoni përmbledhje dhe tar dhe xml. Nuk do të jetë e mundur të kërkohet një raport përmbledhës dhe një pdf në të njëjtën kohë.
Çelësat në seksionin e nxjerrjes
Për nxjerrjen e kërcënimit, përdoren vetëm dy çelësa:
metodë — pdf (konvertoni në pdf, përdoret si parazgjedhje) ose pastroni (pastrimi i përmbajtjes aktive).
Kodet e_pjesëve të nxjerra - lista e kodeve për heqjen e përmbajtjes aktive, e zbatueshme vetëm për metodën e pastër
Kodet për heqjen e përmbajtjes nga skedarët
kod
Përshkrim
1025
Objektet e lidhura
1026
Makrot dhe kodi
1034
Hiperlidhje të ndjeshme
1137
Veprimet PDF GoToR
1139
Veprimet e nisjes së PDF-së
1141
Veprimet PDF URI
1142
Veprimet e zërit PDF
1143
Veprimet e filmit PDF
1150
Veprimet e JavaScript PDF
1151
Veprimet e formularit të paraqitjes në PDF
1018
Kërkesat e bazës së të dhënave
1019
Objektet e ngulitura
1021
Ruajtja e shpejtë e të dhënave
1017
Vetitë e personalizuara
1036
Vetitë statistikore
1037
Vetitë përmbledhëse
Për të shkarkuar një kopje të pastruar, do t'ju duhet gjithashtu të bëni një kërkesë për pyetje (e cila do të diskutohet më poshtë) pas disa sekondash, duke specifikuar sasinë hash të skedarit dhe komponentin e nxjerrjes në tekstin e kërkesës. Ju mund të merrni skedarin e pastruar duke përdorur ID-në nga përgjigja ndaj pyetjes - extracted_file_download_id. Edhe një herë, duke parë pak përpara, jap shembuj të një kërkese dhe një përgjigje pyetjeje për të kërkuar një ID për shkarkimin e një dokumenti të pastruar.
Kërkesë pyetëse për të kërkuar çelësin e nxjerrë_file_download_id
{ "request": [
{
"sha256": "9a346005ee8c9adb489072eb8b5b61699652962c17596de9c326ca68247a8876",
"features": ["extraction"] ,
"extraction": {
"method": "pdf"
}
}
]
}
Përgjigja ndaj pyetjes (kërkoni për çelësin extracted_file_download_id)
{
"response": [
{
"status": {
"code": 1001,
"label": "FOUND",
"message": "The request has been fully answered."
},
"sha256": "9a346005ee8c9adb489072eb8b5b61699652962c17596de9c326ca68247a8876",
"file_type": "",
"file_name": "",
"features": [
"extraction"
],
"extraction": {
"method": "pdf",
"extract_result": "CP_EXTRACT_RESULT_SUCCESS",
"extracted_file_download_id": "b5f2b34e-3603-4627-9e0e-54665a531ab2",
"output_file_name": "kp-20-xls.cleaned.xls.pdf",
"time": "0.013",
"extract_content": "Macros and Code",
"extraction_data": {
"input_extension": "xls",
"input_real_extension": "xls",
"message": "OK",
"output_file_name": "kp-20-xls.cleaned.xls.pdf",
"protection_name": "Potential malicious content extracted",
"protection_type": "Conversion to PDF",
"protocol_version": "1.0",
"risk": 5.0,
"scrub_activity": "Active content was found - XLS file was converted to PDF",
"scrub_method": "Convert to PDF",
"scrub_result": 0.0,
"scrub_time": "0.013",
"scrubbed_content": "Macros and Code"
},
"tex_product": false,
"status": {
"code": 1001,
"label": "FOUND",
"message": "The request has been fully answered."
}
}
}
]
}
Përmbledhje
Në një telefonatë API, mund të dërgoni vetëm një skedar për verifikim.
Komponenti av nuk kërkon një seksion shtesë me çelësa, mjafton ta specifikoni atë në fjalor karakteristika.
Pyetje për thirrjen API
Metoda e përdorur − POST
Adresa e thirrjes - https:///tecloud/api/v1/file/query
Para se të dërgoni një skedar për shkarkim (kërkesë për ngarkim), këshillohet që të kontrolloni cache-in e sandbox (kërkesës për pyetje) në mënyrë që të optimizoni ngarkesën në serverin API, pasi serveri API mund të ketë tashmë informacion dhe një verdikt për skedarin e shkarkuar. Thirrja përbëhet vetëm nga një pjesë tekstuale. Pjesa e kërkuar e kërkesës është sha1/sha256/md5 sasia hash e skedarit. Nga rruga, ju mund ta merrni atë në përgjigjen e kërkesës së ngarkimit.
Minimumi i kërkuar për pyetje
HTTP POST
https:///tecloud/api/v1/file/query
Titujt:
autorizimi:
trup
{
"kërkesë": {
"sha256":
}
}
Një shembull i një përgjigjeje ndaj një kërkese për ngarkim, ku shumat e hash sha1/md5/sha256 janë të dukshme
{
"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."
}
}
}
}
Kërkesa për pyetje, përveç sasisë së hash-it, në mënyrë ideale duhet të jetë e njëjtë me kërkesën e ngarkimit (ose është planifikuar të jetë), ose edhe "tashmë" (përmbajë më pak fusha në kërkesën e pyetjes sesa në kërkesën e ngarkimit). Në rastin kur kërkesa për pyetje përmban më shumë fusha sesa në kërkesën për ngarkim, nuk do të merrni të gjithë informacionin e kërkuar në përgjigje.
Këtu është një shembull i një përgjigjeje ndaj një pyetjeje ku nuk u gjetën të gjitha të dhënat e kërkuara
{
"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."
}
}
}
]
}
Kushtojini vëmendje fushave kod и etiketë. Këto fusha shfaqen tre herë në fjalorët e statusit. Së pari shohim "kodin" e çelësit global: 1006 dhe "etiketën": "PARTIALLY_FOUND". Më pas, këto çelësa gjenden për secilin komponent individual që kemi kërkuar - te dhe nxjerrja. Dhe nëse për ju është e qartë se të dhënat janë gjetur, atëherë për nxjerrjen nuk ka asnjë informacion.
Kështu dukej pyetja për shembullin e mësipërm
{ "request": [
{
"sha256": {{sha256}},
"features": ["te", "extraction"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"reports": [
"xml", "pdf"
]
}
}
]
}
Nëse dërgoni një kërkesë për pyetje pa komponentin e nxjerrjes
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"reports": [
"xml", "pdf"
]
}
}
]
}
Pastaj përgjigja do të përmbajë informacion të plotë (“kodi”: 1001, “etiketa”: “FUND”)
{
"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."
}
}
}
]
}
Nëse nuk ka fare informacion në cache, atëherë përgjigja do të jetë "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."
}
}
}
]
}
Në një telefonatë API, mund të dërgoni disa sasi hash në të njëjtën kohë për verifikim. Përgjigja do t'i kthejë të dhënat në të njëjtin rend si është dërguar në kërkesë.
Shembull i kërkesës për pyetje me disa shuma sha256
{ "request": [
{
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd81"
},
{
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd82"
}
]
}
Përgjigjuni një pyetjeje me shuma të shumta sha256
{
"response": [
{
"status": {
"code": 1001,
"label": "FOUND",
"message": "The request has been fully answered."
},
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd81",
"file_type": "dll",
"file_name": "",
"features": [
"te"
],
"te": {
"trust": 10,
"images": [
{
"report": {
"verdict": "malicious"
},
"status": "found",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"score": -2147483648,
"combined_verdict": "malicious",
"severity": 4,
"confidence": 3,
"status": {
"code": 1001,
"label": "FOUND",
"message": "The request has been fully answered."
}
}
},
{
"status": {
"code": 1004,
"label": "NOT_FOUND",
"message": "Could not find the requested file. Please upload it."
},
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd82",
"file_type": "",
"file_name": "",
"features": [
"te"
],
"te": {
"trust": 0,
"images": [
{
"report": {
"verdict": "unknown"
},
"status": "not_found",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"score": -2147483648,
"status": {
"code": 1004,
"label": "NOT_FOUND",
"message": "Could not find the requested file. Please upload it."
}
}
}
]
}
Kërkimi i disa shumave hash në të njëjtën kohë në një kërkesë për pyetje do të ketë gjithashtu një efekt të dobishëm në performancën e serverit API.
Shkarkoni thirrjen API
Metoda e përdorur − POST (sipas dokumentacionit), GET gjithashtu funksionon (dhe mund të duket më logjike)
Adresa e thirrjes - https:///tecloud/api/v1/file/download?id=
Kreu kërkon që të kalohet çelësi API, pjesa e kërkesës është bosh, ID-ja e shkarkimit kalon në adresën URL.
Në përgjigje të një kërkese, nëse emulimi është përfunduar dhe raportet janë kërkuar gjatë shkarkimit të skedarit, ID-ja për shkarkimin e raporteve do të jetë e dukshme. Nëse kërkohet një kopje e pastruar, duhet të kërkoni ID-në për të shkarkuar dokumentin e pastruar.
Në total, çelësat në përgjigjen ndaj pyetjes që përmban vlerën id për ngarkim mund të jenë:
-
raporti_përmbledhës
-
raporti i plotë
-
pdf_raport
-
xml_raport
-
ID_ja e shkarkimit të skedarit të nxjerrë
Sigurisht, për të marrë këta çelësa në përgjigje të kërkesës së pyetjes, ato duhet të specifikohen në kërkesë (për raporte) ose mos harroni të bëni një kërkesë duke përdorur funksionin e nxjerrjes (për dokumentet e pastruara)
Thirrje kuota API
Metoda e përdorur − POST
Adresa e thirrjes - https:///tecloud/api/v1/file/quota
Për të kontrolluar kuotën e mbetur në renë kompjuterike, përdorni pyetjen e kuotës. Trupi i kërkesës është bosh.
Shembull përgjigje ndaj një kërkese për kuotë
{
"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 për Parandalimin e Kërcënimeve për Portën e Sigurisë
Kjo API është zhvilluar përpara API-së për Parandalimin e Kërcënimeve dhe është menduar vetëm për pajisjet lokale. Tani për tani mund të jetë i dobishëm vetëm nëse keni nevojë për API-në e Nxjerrjes së Kërcënimit. Për Emulimin e Kërcënimeve është më mirë të përdorni API-në e rregullt të Parandalimit të Kërcënimeve. Te ndezesh TP API për SG dhe konfiguroni çelësin API që ju nevojitet për të ndjekur hapat nga
Tani le t'i hedhim një vështrim më të afërt funksioneve te и nxjerrja në këtë API.
Për komponentin te fjalori i ofruar te_opcionet në kërkesat për ngarkim/pyetje, dhe çelësat në këtë kërkesë përkojnë plotësisht me çelësat te in
Shembull i kërkesës për emulimin e skedarëve 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 nxjerrja fjalori i ofruar opsionet e pastrimit. Kjo kërkesë specifikon metodën e pastrimit: konvertojeni në PDF, pastroni përmbajtjen aktive ose zgjidhni një modalitet në përputhje me profilin e Parandalimit të Kërcënimeve (tregohet emri i profilit). Gjëja më e mirë për t'iu përgjigjur një kërkese të API-së për një skedar është se ju merrni një kopje të pastruar në përgjigjen e asaj kërkese si një varg i koduar bazë64 (nuk keni nevojë të bëni një kërkesë për pyetje dhe të kërkoni ID-në për të shkarkuar dokument)
Shembull i një kërkese për të pastruar një skedar
{
"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
}
}]
}
Përgjigjuni një kërkese
{
"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": ""
}
}]
}
Përkundër faktit se kërkohen më pak kërkesa API për të marrë një kopje të pastruar, unë e shoh këtë opsion më pak të preferueshëm dhe të përshtatshëm sesa kërkesa për të dhënat e formularit të përdorur në
Koleksionet e Postierit
Kam krijuar koleksione në Postman si për API-në e Parandalimit të Kërcënimeve, ashtu edhe për API-në e Parandalimit të Kërcënimeve për Portën e Sigurisë, të cilat përfaqësojnë kërkesat më të zakonshme të API-së. Në mënyrë që API dhe çelësi ip/url i serverit të zëvendësohen automatikisht në kërkesa dhe sasia e hash-it sha256 të mbahet mend pas shkarkimit të skedarit, brenda koleksioneve janë krijuar tre variabla (mund t'i gjeni duke shkuar te cilësimet e koleksionit Redakto -> Variablat): te_api (kërkohet), api_key (kërkohet të plotësohet, përveç kur përdoret TP API me pajisjet lokale), sha256 (lëre bosh, nuk përdoret në TP API për SG).
Shembuj të përdorimit
Në komunitet
Burimi: www.habr.com