
Denne artikkelen vil være nyttig for de som er kjent med teknologi. Check Point ved filemulering (Trusselemulering) og proaktiv filrensing (Trusselutvinning) og ønsker å ta et skritt mot å automatisere disse oppgavene. Check Point har , som fungerer både i skyen og på lokale enheter, og Funksjonelt sett er det identisk med å sjekke filer i web/smtp/ftp/smb/nfs-trafikkstrømmerDenne artikkelen er delvis forfatterens tolkning av et sett med artikler fra den offisielle dokumentasjonen, men basert på min egen driftserfaring og mine egne eksempler. I artikkelen finner du også forfatterens Postman-samlinger for arbeid med Threat Prevention API.
Grunnleggende forkortelser
Trusselforebyggings-API-et fungerer med tre hovedkomponenter, som kalles i API-et via følgende tekstverdier:
av — Antiviruskomponent, ansvarlig for signaturanalyse av kjente trusler.
te – Trusselemuleringskomponenten er ansvarlig for å sjekke filer i sandkassen og utstede en ondsinnet/godartet dom etter emulering.
utdrag — Trusselutvinningskomponenten, som er ansvarlig for raskt å konvertere Office-dokumenter til en sikker form (der alt potensielt skadelig innhold fjernes), med det formål å raskt levere dem til brukere/systemer.
API-struktur og hovedbegrensninger
Trusselforebyggings-APIet bruker bare 4 forespørsler - opplasting, spørring, nedlasting og kvoteI overskriften for alle fire forespørslene må du sende API-nøkkelen ved hjelp av parameteren autorisasjonVed første øyekast kan strukturen virke mye enklere enn i , men antallet felt i opplastings- og spørreforespørslene og strukturen til disse forespørslene er ganske komplekse. De kan funksjonelt sammenlignes med trusselforebyggingsprofilene i sikkerhetspolicyen for gateway/sandkasse.
For øyeblikket er den eneste utgitte versjonen av Threat Prevention API 1.0. I URL-en for API-kall bør du spesifisere v1 i den delen der du må spesifisere versjonen. I motsetning til Management API er det obligatorisk å spesifisere API-versjonen i URL-en, ellers vil ikke forespørselen bli utført.
Antiviruskomponenten støtter for øyeblikket bare spørreforespørsler med md5-hashsummer når den kalles uten andre komponenter (te, extraction). Trusselemulering og trusselutvinning støtter også sha1- og sha256-hashsummer.
Det er veldig viktig å ikke gjøre feil i spørringene dine! Forespørselen kan utføres uten feil, men ikke fullstendig. La oss se litt fremover og se på hva som kan skje med feil/skrivefeil i forespørsler.
Spørring med skrivefeil i Word-rapporter (reportss)
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
reportss: ["tar", "pdf", "xml"]
}
}
]
}Det vil ikke være noen feil i svaret, men det vil ikke være noen informasjon om rapportene i det hele tatt.
{
"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."
}
}
}
]
}Men her er en forespørsel uten skrivefeil i nøkkelrapportene
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
reports: ["tar", "pdf", "xml"]
}
}
]
}Vi mottar et svar som allerede inneholder ID-er for lasting av rapporter.
{
"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."
}
}
}
]
}Hvis du sender en feil/utløpt API-nøkkel, vil du motta en 403-feilmelding som svar.
SandBlast API: i skyen og på lokale enheter
API-forespørsler kan sendes til Check Point-enheter som har trusselemuleringskomponenten (blad) aktivert. Adressen for forespørsler bør være enhetens IP/URL og port 18194 (for eksempel https://10.10.57.19:18194/tecloud/api/v1/file/query). Du bør også sørge for at sikkerhetspolicyen på enheten tillater en slik tilkobling. Autorisasjon via API-nøkkel på lokale enheter som standard av og autorisasjonsnøkkelen i forespørselshodene kan utelates helt.
API-forespørsler til CheckPoint-skyen må sendes til adressen te.checkpoint.com (for eksempel - https://te.checkpoint.comAPI-nøkkelen kan fås som en 1-dagers prøvelisens ved å kontakte Check Point-partnere eller selskapets lokale kontor.
På lokale enheter støttes ikke trusselutvinning fra starten av ennå. og bør brukes (vi vil snakke mer detaljert om det på slutten av artikkelen).
Lokale enheter støtter ikke kvoteforespørsler.
Ellers er det ingen forskjeller mellom forespørsler til lokale enheter og til skyen.
Kaller opplastings-API
Metoden som brukes er - POST
Ringeadresse - https:///tecloud/api/v1/fil/opplasting
Forespørselen består av to deler (skjemadata): en fil beregnet for emulering/rensing og en forespørselstekst med tekst.
Tekstforespørselen kan ikke være tom, men den kan ikke inneholde noen konfigurasjon. For at forespørselen skal lykkes, må du sende minst følgende tekst i forespørselen:
Minimumskrav for opplastingsforespørsel
HTTP POST
https:///tecloud/api/v1/fil/opplasting
overskrifter:
Autorisasjon:
Body
{
"forespørsel": {
}
}
filet
filet
I dette tilfellet vil filen bli behandlet i samsvar med standardparametrene: component — te, OS-bilder - Win XP og Win 7, uten å generere en rapport.
Kommentarer til hovedfeltene i tekstspørringen:
filnavn и filtype kan stå tomt eller ikke sendes i det hele tatt, da dette ikke er spesielt nyttig informasjon når du laster opp en fil. I API-svaret vil disse feltene fylles ut automatisk basert på navnet på filen som lastes opp, og informasjonen i hurtigbufferen må fortsatt søkes etter med md5/sha1/sha256 hash-summer.
Eksempel på en forespørsel med tomt filnavn og filtype
{
"request": {
"file_name": "",
"file_type": "",
}
}egenskaper — en liste som spesifiserer den nødvendige funksjonaliteten for behandling i sandkassen — av (Antivirus), te (Trusselsemulering), extraction (Trusselsutvinning). Hvis denne parameteren ikke sendes i det hele tatt, vil bare standardkomponenten bli brukt — te (Trusselsemulering).
For å aktivere validering i de tre tilgjengelige komponentene, må du spesifisere disse komponentene i API-forespørselen.
Eksempel på en forespørsel med innsjekking av, te og uttrekking
{ "request": [
{
"sha256": {{sha256}},
"features": ["av", "te", "extraction"]
}
]
}Nøkler i seksjon te
bilder — en liste der ordbøker med ID og revisjonsnummer for operativsystemene der kontrollen skal utføres må spesifiseres. ID- og revisjonsnumre er de samme for alle lokale enheter og skyen.
Liste over operativsystemer og revisjoner
Tilgjengelig OS-bilde-ID
Revisjon
Bilde-OS og applikasjon
e50e99f3-5963-4573-af9e-e3f4750b55e2
1
Microsoft WindowsXP — 32-bit SP3
Office: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash Player 9r115 og ActiveX 10.0
Java-kjøretid: 1.6.0u22
7e6fe36e-889e-4c25-8704-56378f0830df
1
Microsoft Windows: 7 — 32-bit
Office: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash-spiller: 10.2r152 (Plugin& ActiveX)
Java-kjøretid: 1.6.0u0
8d188031-1010-4466-828b-0cd13d4303ff
1
Microsoft Windows: 7 — 32-bit
Office: 2010
Adobe Acrobat Reader: 9.4
Flash-spiller: 11.0.1.152 (Plugin & ActiveX)
Java-kjøretid: 1.7.0u0
5e5de275-a103-4f67-b55b-47532918fa59
1
Microsoft Windows: 7 — 32-bit
Office: 2013
Adobe Acrobat Reader: 11.0
Flash-spiller: 15 (Plugin & ActiveX)
Java-kjøretid: 1.7.0u9
3ff3ddae-e7fd-4969-818c-d5f1a2be336d
1
Microsoft Windows: 7 — 64-bit
Office: 2013 (32-bit)
Adobe Acrobat Reader: 11.0.01
Flash-spiller: 13 (Plugin & ActiveX)
Java-kjøretid: 1.7.0u9
6c453c9b-20f7-471a-956c-3198a868dc92
1
Microsoft Windows: 8.1 — 64-bit
Office: 2013 (64-bit)
Adobe Acrobat Reader: 11.0.10
Flash-spiller: 18.0.0.160 (Plugin & ActiveX)
Java-kjøretid: 1.7.0u9
10b4a9c6-e414-425c-ae8b-fe4dd7b25244
1
Microsoft Windows: 10
Office: Professional Plus 2016 no
Adobe Acrobat ReaderDC 2015 MUI
Flash-spiller: 20 (Plugin & ActiveX)
Java-kjøretid: 1.7.0u9
Hvis bildenøkkelen ikke er spesifisert i det hele tatt, vil emulering finne sted i bilder anbefalt av Check Point (for tiden Win XP og Win 7). Disse bildene anbefales basert på vurderinger av den beste balansen mellom ytelse og fangstrate.
rapporter — en liste over rapporter vi ber om i tilfelle filen er skadelig. Følgende alternativer er tilgjengelige:
sammendrag — .tar.gz-arkiv som inneholder en rapport om emulering alle forespurte bilder (både html-siden og komponenter som en video fra emulatorens operativsystem, en nettverkstrafikkdump, en rapport i json og selve eksemplet i et passordbeskyttet arkiv). I svaret ser vi etter nøkkelen - sammendragsrapport for senere nedlasting av rapport.
pdf — dokument om emulering i en bilde, som mange er vant til å motta gjennom Smart Console. I svaret ser vi etter nøkkelen - pdf_rapport for senere nedlasting av rapport.
xml — dokument om emulering i en bilde, praktisk for senere parsing av parametere i rapporten. I svaret ser vi etter nøkkelen - xml_rapport for senere nedlasting av rapport.
tjære — .tar.gz-arkiv som inneholder en rapport om emulering i en forespurte bilder (både html-siden og komponenter som en video fra emulatorens operativsystem, en nettverkstrafikkdump, en rapport i json og selve eksemplet i et passordbeskyttet arkiv). I svaret ser vi etter nøkkelen - full_rapport for senere nedlasting av rapport.
Hva som står i sammendragsrapporten
Nøklene full_report, pdf_report og xml_report finnes i ordboken for hvert operativsystem.
{
"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."
}
}
}
]
}Men summary_report-nøkkelen er en for emulering som helhet
{
"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."
}
}
}
]
}Du kan be om tar-, xml- og pdf-rapporter samtidig, eller sammendrag og tar og xml. Du kan ikke be om en sammendragsrapport og pdf samtidig.
Nøkler i uttrekksseksjonen
Bare to nøkler brukes til trusselutvinning:
metode — pdf (konverter til pdf, brukes som standard) eller clean (fjern aktivt innhold).
utvunnede_delkoder — liste over koder for fjerning av aktivt innhold, gjelder kun for rens metode
Koder for å fjerne innhold fra filer
Kode
Tekniske beskrivelser
1025
Koblede objekter
1026
Makroer og kode
1034
Sensitive hyperlenker
1137
PDF GoToR-handlinger
1139
PDF-starthandlinger
1141
PDF URI-handlinger
1142
PDF-lydhandlinger
1143
PDF-filmhandlinger
1150
PDF JavaScript-handlinger
1151
Handlinger for innsending av PDF-skjema
1018
Databasespørsmål
1019
Innebygde objekter
1021
Rask lagring av data
1017
Egendefinerte egenskaper
1036
Statistiske egenskaper
1037
Sammendragsegenskaper
For å laste ned en renset kopi, må du også sende en spørreforespørsel (vi skal snakke om det senere) om noen få sekunder, og spesifisere hash-summen for filen og utvinningskomponenten i forespørselsteksten. Du kan hente den rensede filen ved å bruke ID-en fra svaret på spørreforespørselen — extracted_file_download_id. Nok en gang, litt lenger frem i tid, gir jeg eksempler på en spørreforespørsel og et svar for å finne ID-en for nedlasting av et renset dokument.
Spørring for å finne nøkkelen for extracted_file_download_id
{ "request": [
{
"sha256": "9a346005ee8c9adb489072eb8b5b61699652962c17596de9c326ca68247a8876",
"features": ["extraction"] ,
"extraction": {
"method": "pdf"
}
}
]
}Svar på spørringen (finn nøkkelen for 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."
}
}
}
]
}Oversikt
Bare én fil kan sendes inn for verifisering i ett API-kall.
av-komponenten krever ikke en ekstra seksjon med nøkler, det er nok å spesifisere den i ordboken. egenskaper.
Kallende spørrings-API
Metoden som brukes er - POST
Ringeadresse - https:///tecloud/api/v1/fil/spørring
Før du sender en fil for opplasting (opplastingsforespørsel), anbefales det å sjekke sandkasse-hurtigbufferen (spørringsforespørselen) for å optimalisere belastningen på API-serveren, siden API-serveren kanskje allerede har informasjon og en vurdering av filen som lastes opp. Kallet består kun av tekstdelen. Den obligatoriske delen av forespørselen er sha1/sha256/md5-hashen til filen. Du kan forresten få den som svar på opplastingsforespørselen.
Minimumskravet for en spørring
HTTP POST
https:///tecloud/api/v1/fil/spørring
overskrifter:
Autorisasjon:
Body
{
"forespørsel": {
«sha256»:
}
}
Et eksempel på et svar på en opplastingsforespørsel, der sha1/md5/sha256 hash-summer er synlige
{
"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."
}
}
}
}Spørreforespørselen, i tillegg til hash-summen, bør ideelt sett være den samme som opplastingsforespørselen var (eller er planlagt å være), eller til og med "smalere" (inneholde færre felt i spørreforespørselen enn i opplastingsforespørselen). I tilfeller der spørreforespørselen inneholder flere felt enn det som var i opplastingsforespørselen, vil du ikke motta all nødvendig informasjon i svaret.
Her er et eksempel på et svar på en spørring der ikke alle nødvendige data ble funnet.
{
"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."
}
}
}
]
}Vær oppmerksom på feltene kode и etikettDisse feltene finnes tre ganger i statusordbøkene. Først ser vi den globale nøkkelen "kode": 1006 og "etikett": "DELVIS_FUNNET". Deretter finnes disse nøklene for hver enkelt komponent vi ba om - te og utvinning. Og hvis det for te er tydelig at dataene er funnet, finnes det ingen informasjon for utvinning.
Slik så spørringen ut for eksemplet ovenfor.
{ "request": [
{
"sha256": {{sha256}},
"features": ["te", "extraction"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"reports": [
"xml", "pdf"
]
}
}
]
}Hvis du sender en spørreforespørsel uten utvinningskomponenten
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"reports": [
"xml", "pdf"
]
}
}
]
}Da vil svaret inneholde full informasjon ("kode": 1001, "etikett": "FUNNET")
{
"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."
}
}
}
]
}Hvis det ikke finnes noen informasjon i hurtigbufferen i det hele tatt, vil svaret være "label": "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."
}
}
}
]
}I ett API-kall kan du sende flere hash-summer for verifisering samtidig. Svaret vil returnere dataene i samme rekkefølge som de ble sendt i forespørselen.
Eksempelspørring med flere sha256-summer
{ "request": [
{
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd81"
},
{
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd82"
}
]
}Svar på spørring med flere sha256-summer
{
"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."
}
}
}
]
}Å be om flere hash-summer samtidig i en spørring vil også ha en positiv effekt på ytelsen til server-API-et.
Kalling av nedlastings-API-et
Metoden som brukes er - POST (ifølge dokumentasjonen), GET fungerer også (og kan virke mer logisk)
Ringeadresse - https:///tecloud/api/v1/fil/nedlasting?id=
Overskriften krever at API-nøkkelen sendes, forespørselsteksten er tom, og ID-en for lasting sendes i URL-adressen.
Som svar på forespørselen, hvis emuleringen er fullført og rapporter ble forespurt da filen ble lastet inn, vil ID-en for lasting av rapporter være synlig. Hvis en renset kopi blir forespurt, bør du se etter ID-en for lasting av det rensede dokumentet.
Totalt sett kan nøklene i svaret på spørreforespørselen som inneholder ID-verdien for lasting være:
sammendragsrapport
full_rapport
pdf_rapport
xml_rapport
utpakket_fil_nedlastingsid
For at disse nøklene skal mottas som svar på forespørselen, må de selvfølgelig spesifiseres i forespørselen (for rapporter), eller ikke glem å sende en forespørsel ved hjelp av utvinningsfunksjonen (for rensede dokumenter).
Kalling av Quota API-et
Metoden som brukes er - POST
Ringeadresse - https:///tecloud/api/v1/fil/kvote
For å sjekke den gjenværende kvoten i skyen, bruk kvoteforespørselen. Forespørselsteksten er tom.
Eksempel på svar på kvoteforespørsel
{
"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"
}
]
}Trusselforebyggings-API for Security Gateway
Dette API-et ble utviklet før Threat Prevention API-et og er kun beregnet for lokale enheter. For øyeblikket kan det bare være nyttig hvis du trenger Threat Extraction API-et. For Threat Emulation er det bedre å bruke det vanlige Threat Prevention API-et. For å aktivere TP API for SG og for å konfigurere API-nøkkelen må du utføre trinnene fra Jeg anbefaler å følge trinn 6b og sjekke sidens tilgjengelighet. https://<IPAddressofSecurityGateway>/UserCheck/TPAPI fordi videre konfigurasjon ikke gir mening i tilfelle et negativt resultat. Alle API-kall vil bli sendt til denne URL-en. Kalltypen (opplasting/spørring) er regulert i kallets hovednøkkel — forespørselsnavn. Obligatoriske nøkler er også — api_nøkkel (du må huske det under konfigurasjonsprosessen) og protokollversjon (for øyeblikket er den nåværende versjonen 1.1). Du finner den offisielle dokumentasjonen for dette API-et i De relative fordelene inkluderer muligheten til å sende flere filer til emulering samtidig når du laster dem ned, siden filene sendes som en base64-tekststreng. For å kode/dekode filer til/fra base64 kan du bruke en online-konverterer for demonstrasjonsformål i Postman, for eksempel - Av praktiske årsaker bør du bruke de innebygde kode- og dekodemetodene når du skriver kode.
La oss nå se nærmere på funksjonene te и utdrag i dette API-et.
For komponenten te en ordbok er tilgjengelig te_options i opplastings-/spørreforespørsler, og nøklene i denne forespørselen samsvarer fullstendig med nøklene i .
Eksempelspørring for filemulering i Win10 med rapporter
{
"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"]
}
}
]
}For komponenten utdrag en ordbok er tilgjengelig skrubbalternativerDenne forespørselen spesifiserer rensemetoden: konvertering til PDF, renselse fra aktivt innhold, eller velg modus i samsvar med trusselforebyggingsprofilen (profilnavnet er spesifisert). Et særegent trekk ved svaret på API-forespørselen med uttrekking for en fil er at du mottar en renset kopi som svar på denne forespørselen som en kryptert base64-streng (du trenger ikke å sende en spørreforespørsel og lete etter en ID for å laste ned dokumentet).
Eksempel på en forespørsel om å slette en fil
{
"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
}
}]
}Svar på forespørsel
{
"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": ""
}
}]
} Selv om det krever færre API-kall for å få en renset kopi, synes jeg dette alternativet er mindre foretrukket og praktisk enn skjemadataforespørselen som brukes i .
Postmannsamlinger
Jeg opprettet samlinger i Postman for både Threat Prevention API og Threat Prevention API for Security Gateway, som inneholder de vanligste API-forespørslene. For at server-API-ens IP/URL og nøkkel automatisk skal bli erstattet i forespørsler, og at sha256 hash-summen etter nedlasting av filen også skal huskes, ble det opprettet tre variabler i samlingene (du finner dem ved å gå til samlingsinnstillingene Rediger -> Variabler): te_api(obligatorisk), api_key (må fylles ut, unntatt når TP API brukes med lokale enheter), sha256 (la stå tomt, brukes ikke i TP API for SG).
Eksempler på bruk
I samfunnet skript skrevet i Python presenteres som sjekker filer fra den nødvendige katalogen både gjennom Og Ved å samhandle med Threat Prevention API-et utvides filskanningsmulighetene dine betraktelig, ettersom du nå kan skanne filer på flere plattformer samtidig (sjekker inn , og deretter i Check Point-sandkassen), og motta filer ikke bare fra nettverkstrafikk, men også hente dem fra alle nettverksstasjoner og for eksempel CRM-systemer.
Kilde: www.habr.com
