Ta članek bo koristen za tiste, ki so seznanjeni s tehnologijo Check Point z emulacijo datoteke (Emulacija groženj) in proaktivno čiščenje datotek (Ekstrakcija groženj) in želi narediti korak k avtomatizaciji teh opravil. Check Point ima
Osnovne okrajšave
API za preprečevanje groženj deluje s tremi glavnimi komponentami, ki se v API-ju kličejo prek naslednjih besedilnih vrednosti:
av — Protivirusna komponenta, odgovorna za analizo podpisov znanih groženj.
te - Komponenta emulacije groženj, ki je odgovorna za preverjanje datotek v peskovniku in izdelavo zlonamerne/benigne sodbe po emulaciji.
pridobivanje - Komponenta Threat Extraction, odgovorna za hitro pretvorbo pisarniških dokumentov v varno obliko (v kateri je odstranjena vsa potencialno zlonamerna vsebina) z namenom hitre dostave uporabnikom/sistemom.
Struktura API-ja in glavne omejitve
API za preprečevanje groženj uporablja samo 4 zahteve − nalaganje, poizvedba, prenos in kvota. V glavi za vse štiri zahteve morate posredovati ključ API z uporabo parametra Dovoljenje. Na prvi pogled se zdi struktura veliko enostavnejša kot v
Trenutno je izdana edina različica API-ja za preprečevanje groženj - 1.0; URL za klice API-ja mora vsebovati v1 v delu, kjer morate določiti različico. Za razliko od API-ja za upravljanje je treba v URL-ju navesti različico API-ja, sicer zahteva ne bo izvedena.
Protivirusna komponenta, ko je poklicana brez drugih komponent (te, ekstrakcija), trenutno podpira samo zahteve poizvedb z zgoščenimi vsotami md5. Emulacija groženj in ekstrakcija groženj podpirata tudi zgoščene vsote sha1 in sha256.
Zelo pomembno je, da ne delate napak pri poizvedbah! Zahtevo je mogoče izvesti brez napake, vendar ne v celoti. Če pogledamo malo naprej, si poglejmo, kaj se lahko zgodi, če so v poizvedbah napake/tipkarske napake.
Zahteva s tipkarsko napako z besedo poročila(poročila)
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
reportss: ["tar", "pdf", "xml"]
}
}
]
}
V odgovoru ne bo napake, ne bo pa podatkov o poročilih
{
"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."
}
}
}
]
}
Toda za zahtevo brez tipkarske napake v ključu poročil
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
reports: ["tar", "pdf", "xml"]
}
}
]
}
Prejmemo odgovor, ki že vsebuje ID za prenos poročil
{
"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."
}
}
}
]
}
Če pošljemo napačen/potekel API ključ, bomo v odgovor prejeli napako 403.
SandBlast API: v oblaku in na lokalnih napravah
Zahteve API-ja je mogoče poslati napravam Check Point, ki imajo omogočeno komponento Threat Emulation (rezilo). Kot naslov za zahteve morate uporabiti ip/url naprave in vrata 18194 (na primer https://10.10.57.19:18194/tecloud/api/v1/file/query). Prepričajte se tudi, da varnostna politika v napravi dovoljuje to povezavo. Privzeto avtorizacija prek ključa API na lokalnih napravah izklopljeno in avtorizacijski ključ v glavah zahtev morda sploh ne bo poslan.
Zahteve API-ja za oblak CheckPoint je treba poslati na te.checkpoint.com (na primer - https://te.checkpoint.com/tecloud/api/v1/file/query). Ključ API lahko dobite kot preskusno licenco za 60 dni, tako da stopite v stik s partnerji Check Pointa ali lokalno pisarno podjetja.
V lokalnih napravah ekstrakcija groženj še ni standardno podprta.
Lokalne naprave ne podpirajo zahteve za kvoto.
Sicer pa ni razlik med zahtevami v lokalne naprave in v oblak.
Naloži API klic
Uporabljena metoda − POST
Klicni naslov - https:///tecloud/api/v1/file/upload
Zahteva je sestavljena iz dveh delov (form-data): datoteke, namenjene emulaciji/čiščenju in telesa zahteve z besedilom.
Besedilna zahteva ne sme biti prazna, vendar ne sme vsebovati nobene konfiguracije. Da bo zahteva uspešna, morate v zahtevi poslati vsaj naslednje besedilo:
Zahtevano najmanjše število za zahtevo za nalaganje
HTTP POST
https:///tecloud/api/v1/file/upload
Naslovi:
Dovoljenje:
Karoserija
{
"prošnja": {
}
}
file
file
V tem primeru bo datoteka obdelana v skladu s privzetimi parametri: komponenta - te, OS slike - Win XP in Win 7, brez ustvarjanja poročila.
Komentarji na glavna polja v besedilni zahtevi:
Ime datoteke и vrsta datoteke Lahko jih pustite prazne ali pa jih sploh ne pošljete, saj to ni posebno uporabna informacija pri nalaganju datoteke. V odgovoru API-ja bodo ta polja samodejno izpolnjena glede na ime prenesene datoteke, podatke v predpomnilniku pa bo treba še vedno iskati z zgoščenimi količinami md5/sha1/sha256.
Primer zahteve s praznim file_name in file_type
{
"request": {
"file_name": "",
"file_type": "",
}
}
lastnosti — seznam, ki označuje potrebno funkcionalnost pri obdelavi v peskovniku - av (protivirusni program), te (emulacija groženj), ekstrakcija (ekstrakcija groženj). Če ta parameter sploh ni posredovan, bo uporabljena samo privzeta komponenta - te (Threat Emulation).
Če želite omogočiti preverjanje treh razpoložljivih komponent, morate te komponente določiti v zahtevi API.
Primer zahteve s preverjanjem av, te in ekstrakcijo
{ "request": [
{
"sha256": {{sha256}},
"features": ["av", "te", "extraction"]
}
]
}
Ključi v razdelku te
slike — seznam slovarjev z ID-jem in številko revizije operacijskih sistemov, v katerih bo opravljeno preverjanje. ID-ji in številke revizij so enaki za vse lokalne naprave in oblak.
Seznam operacijskih sistemov in revizij
ID razpoložljive slike OS
Revizija
Slika OS in aplikacija
e50e99f3-5963-4573-af9e-e3f4750b55e2
1
Microsoft Windows: XP - 32-bitni SP3
Office: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash Player 9r115 in ActiveX 10.0
Java Runtime: 1.6.0u22
7e6fe36e-889e-4c25-8704-56378f0830df
1
Microsoft Windows: 7 - 32-bitni
Office: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash Player: 10.2r152 (Plugin& ActiveX)
Java Runtime: 1.6.0u0
8d188031-1010-4466-828b-0cd13d4303ff
1
Microsoft Windows: 7 - 32-bitni
Office: 2010
Adobe Acrobat Reader: 9.4
Flash Player: 11.0.1.152 (Plugin & ActiveX)
Java Runtime: 1.7.0u0
5e5de275-a103-4f67-b55b-47532918fa59
1
Microsoft Windows: 7 - 32-bitni
Office: 2013
Adobe Acrobat Reader: 11.0
Flash Player: 15 (Plugin & ActiveX)
Java Runtime: 1.7.0u9
3ff3ddae-e7fd-4969-818c-d5f1a2be336d
1
Microsoft Windows: 7 - 64-bitni
Office: 2013 (32bit)
Adobe Acrobat Reader: 11.0.01
Flash Player: 13 (Plugin & ActiveX)
Java Runtime: 1.7.0u9
6c453c9b-20f7-471a-956c-3198a868dc92
1
Microsoft Windows: 8.1 - 64-bitni
Office: 2013 (64bit)
Adobe Acrobat Reader: 11.0.10
Flash Player: 18.0.0.160 (Plugin & ActiveX)
Java Runtime: 1.7.0u9
10b4a9c6-e414-425c-ae8b-fe4dd7b25244
1
Microsoft Windows: 10
Office: Professional Plus 2016 en-us
Adobe Acrobat Reader: DC 2015 MUI
Flash Player: 20 (Plugin & ActiveX)
Java Runtime: 1.7.0u9
Če ključ za slike sploh ni določen, bo emulacija potekala v slikah, ki jih priporoča Check Point (trenutno Win XP in Win 7). Te slike so priporočene na podlagi premislekov o najboljšem razmerju med zmogljivostjo in stopnjo ulova.
Poročila — seznam poročil, ki jih zahtevamo, če se izkaže, da je datoteka zlonamerna. Na voljo so naslednje možnosti:
-
Povzetek - Arhiv .tar.gz, ki vsebuje poročilo o emulaciji avtorja vse zahtevane slike (tako stran html kot komponente, kot je video iz operacijskega sistema emulatorja, izpis omrežnega prometa, poročilo v json in sam vzorec v arhivu, zaščitenem z geslom). Iščemo ključ v odgovoru - povzetek_poročila za kasnejši prenos poročila.
-
pdf - dokument o emulaciji v eno sliko, ki so jo mnogi navajeni prejemati prek pametne konzole. Iščemo ključ v odgovoru - pdf_poročilo za kasnejši prenos poročila.
-
xml - dokument o emulaciji v eno slika, primerna za naknadno razčlenjevanje parametrov v poročilu. Iščemo ključ v odgovoru - xml_report za kasnejši prenos poročila.
-
katran - arhiv .tar.gz, ki vsebuje poročilo o emulaciji v eno zahtevane slike (tako stran html kot komponente, kot je video iz operacijskega sistema emulatorja, izpis omrežnega prometa, poročilo v json in sam vzorec v arhivu, zaščitenem z geslom). Iščemo ključ v odgovoru - celotno_poročilo za kasnejši prenos poročila.
Kaj je v povzetku poročila
Ključi full_report, pdf_report, xml_report so v slovarju za vsak 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."
}
}
}
]
}
Toda ključ summary_report - na splošno obstaja za emulacijo
{
"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."
}
}
}
]
}
Istočasno lahko zahtevate poročila tar in xml ter pdf, lahko zahtevate povzetek in tar in xml. Hkrati ne bo mogoče zahtevati sumarnega poročila in pdf.
Ključi v razdelku ekstrakcije
Za ekstrakcijo groženj se uporabljata samo dva ključa:
Metoda — pdf (pretvori v pdf, uporablja se privzeto) ali očisti (čiščenje aktivne vsebine).
izvlečene_kode_delov - seznam kod za odstranjevanje aktivne vsebine, velja samo za čisto metodo
Kode za odstranjevanje vsebine iz datotek
Koda
Opis
1025
Povezani predmeti
1026
Makri in koda
1034
Občutljive hiperpovezave
1137
PDF GoToR Actions
1139
Dejanja zagona PDF
1141
Dejanja PDF URI
1142
Zvočne akcije PDF
1143
Dejanja filma PDF
1150
PDF dejanja JavaScript
1151
Dejanja obrazca za oddajo PDF
1018
Poizvedbe po zbirki podatkov
1019
Vdelani predmeti
1021
Hitro shranjevanje podatkov
1017
Lastnosti po meri
1036
Statistične lastnosti
1037
Lastnosti povzetka
Če želite prenesti očiščeno kopijo, boste morali po nekaj sekundah narediti tudi zahtevo za poizvedbo (o kateri bomo razpravljali spodaj) in v besedilu zahteve navesti količino zgoščene vrednosti datoteke in komponento ekstrakcije. Očiščeno datoteko lahko prevzamete z ID-jem iz odgovora na poizvedbo - extracted_file_download_id. Še enkrat, če malo pogledam naprej, podajam primere zahteve in odgovora na poizvedbo za iskanje ID-ja za prenos prečiščenega dokumenta.
Zahteva poizvedbe za iskanje ključa extracted_file_download_id
{ "request": [
{
"sha256": "9a346005ee8c9adb489072eb8b5b61699652962c17596de9c326ca68247a8876",
"features": ["extraction"] ,
"extraction": {
"method": "pdf"
}
}
]
}
Odgovor na poizvedbo (poiščite ključ 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."
}
}
}
]
}
Pregled
V enem klicu API-ja lahko v preverjanje pošljete samo eno datoteko.
Komponenta av ne zahteva dodatnega razdelka s ključi, dovolj je, da ga določite v slovarju lastnosti.
Klic API-ja za poizvedbo
Uporabljena metoda − POST
Klicni naslov - https:///tecloud/api/v1/file/query
Preden datoteko pošljete v prenos (zahteva za nalaganje), je priporočljivo preveriti predpomnilnik peskovnika (zahteva za poizvedbo), da optimizirate obremenitev strežnika API, saj ima strežnik API morda že informacije in razsodbo o preneseni datoteki. Klic je sestavljen samo iz besedilnega dela. Zahtevani del zahteve je sha1/sha256/md5 zgoščena količina datoteke. Mimogrede, dobite ga lahko v odgovoru na zahtevo za nalaganje.
Minimalno zahtevano za poizvedbo
HTTP POST
https:///tecloud/api/v1/file/query
Naslovi:
Dovoljenje:
Karoserija
{
"prošnja": {
"sha256":
}
}
Primer odgovora na zahtevo za nalaganje, kjer so vidne zgoščene količine sha1/md5/sha256
{
"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."
}
}
}
}
Zahteva poizvedbe bi morala biti poleg zneska zgoščene vrednosti v idealnem primeru enaka, kot je bila (ali je načrtovana, da bo) zahteva za nalaganje ali celo »že« (vsebovati manj polj v zahtevi za poizvedbo kot v zahtevi za nalaganje). V primeru, da zahteva poizvedbe vsebuje več polj, kot jih je bilo v zahtevi za nalaganje, v odgovoru ne boste prejeli vseh zahtevanih informacij.
Tukaj je primer odgovora na poizvedbo, kjer niso bili najdeni vsi zahtevani podatki
{
"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."
}
}
}
]
}
Bodite pozorni na polja Koda и nalepka. Ta polja se v slovarjih stanja pojavijo trikrat. Najprej vidimo globalni ključ »code«: 1006 in »label«: »PARTIALLY_FOUND«. Nato se ti ključi najdejo za vsako posamezno komponento, ki smo jo zahtevali - te in ekstrakcija. In če je za te jasno, da so bili podatki najdeni, potem za ekstrakcijo ni informacij.
Takole je izgledala poizvedba v zgornjem primeru
{ "request": [
{
"sha256": {{sha256}},
"features": ["te", "extraction"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"reports": [
"xml", "pdf"
]
}
}
]
}
Če pošljete zahtevo za poizvedbo brez komponente ekstrakcije
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"reports": [
"xml", "pdf"
]
}
}
]
}
Nato bo odgovor vseboval popolne informacije (»code«: 1001, »label«: »FOUND«)
{
"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."
}
}
}
]
}
Če v predpomnilniku sploh ni nobenih informacij, bo odgovor »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."
}
}
}
]
}
V enem klicu API-ja lahko za preverjanje pošljete več zgoščenih vrednosti hkrati. Odgovor bo vrnil podatke v enakem vrstnem redu, kot so bili poslani v zahtevi.
Primer zahteve za poizvedbo z več zneski sha256
{ "request": [
{
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd81"
},
{
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd82"
}
]
}
Odgovor na poizvedbo z več zneski 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."
}
}
}
]
}
Zahtevanje več zgoščenih vsot hkrati v zahtevi poizvedbe bo prav tako ugodno vplivalo na delovanje strežnika API.
Prenesite API klic
Uporabljena metoda − POST (po dokumentaciji), GET tudi deluje (in morda se zdi bolj logično)
Klicni naslov - https:///tecloud/api/v1/file/download?id=
Glava zahteva posredovanje ključa API, telo zahteve je prazno, ID prenosa je posredovan v naslovu URL.
Če je emulacija končana in so bila ob prenosu datoteke zahtevana poročila, bo kot odgovor na zahtevo poizvedbe viden ID za prenos poročil. Če se zahteva očiščena kopija, morate poiskati ID za prenos očiščenega dokumenta.
Skupaj so lahko ključi v odgovoru na poizvedbo, ki vsebuje vrednost id za nalaganje:
-
povzetek_poročila
-
celotno_poročilo
-
pdf_poročilo
-
xml_report
-
ekstrahirana_datoteka_download_id
Seveda, če želite prejeti te ključe kot odgovor na zahtevo poizvedbe, jih morate navesti v zahtevi (za poročila) ali ne pozabite vložiti zahteve s funkcijo ekstrakcije (za očiščene dokumente).
Klic API-ja kvote
Uporabljena metoda − POST
Klicni naslov - https:///tecloud/api/v1/file/quota
Če želite preveriti preostalo kvoto v oblaku, uporabite poizvedbo o kvoti. Telo zahteve je prazno.
Primer odgovora na zahtevo za kvoto
{
"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 preprečevanje groženj za varnostni prehod
Ta API je bil razvit pred API-jem za preprečevanje groženj in je namenjen samo lokalnim napravam. Zaenkrat je lahko uporaben samo, če potrebujete API za ekstrakcijo groženj. Za emulacijo groženj je bolje uporabiti običajni API za preprečevanje groženj. Prižgati TP API za SG in konfigurirajte ključ API, iz katerega morate izvesti korake
Zdaj pa si podrobneje oglejmo funkcije te и pridobivanje v tem API-ju.
Za komponento te priložen slovar te_možnosti v zahtevah za nalaganje/poizvedbo in ključi v tej zahtevi popolnoma sovpadajo s ključi te v
Primer zahteve za emulacijo datoteke v Win10 s poročili
{
"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 komponento pridobivanje priložen slovar scrub_options. Ta zahteva določa način čiščenja: pretvorite v PDF, počistite aktivno vsebino ali izberite način v skladu s profilom za preprečevanje groženj (ime profila je navedeno). Odlična stvar pri odzivanju na zahtevo API-ja za ekstrakcijo za datoteko je, da v odgovoru na to zahtevo dobite očiščeno kopijo kot šifriran niz base64 (ni vam treba narediti zahteve za poizvedbo in poiskati ID-ja, da prenesete dokument)
Primer zahteve 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 zahtevo
{
"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": ""
}
}]
}
Kljub dejstvu, da je za pridobitev očiščene kopije potrebnih manj zahtev API-ja, se mi zdi ta možnost manj zaželena in priročna kot zahteva za podatke obrazca, ki se uporablja v
Zbirke poštarjev
V programu Postman sem ustvaril zbirke za API za preprečevanje groženj in API za preprečevanje groženj za varnostni prehod, ki predstavljata najpogostejše zahteve API-ja. Da se API in ključ strežnika za ip/url samodejno nadomestita v zahteve in da se količina razpršitve sha256 zapomni po prenosu datoteke, so bile znotraj zbirk ustvarjene tri spremenljivke (najdete jih v nastavitvah zbirke Uredi -> Spremenljivke): te_api (obvezno), api_key (obvezno izpolniti, razen pri uporabi TP API z lokalnimi napravami), sha256 (pustite prazno, ne uporablja se v TP API za SG).
Primeri uporabe
V skupnosti
Vir: www.habr.com