Interaksjon med Check Point SandBlast via API

Interaksjon med Check Point SandBlast via API

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 API for trusselforebygging, 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 Management API, 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å. API for trusselforebygging og bør brukes Trusselforebyggings-API for Security Gateway (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 (PluginActiveX)
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 

 

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:

  1. 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.

  2. 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.

  3. 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.

  4. 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 sammendragsrapportenInteraksjon med Check Point SandBlast via API

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 sk113599Jeg 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 sk137032De 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 - https://base64.guruAv 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 API for trusselforebygging.

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 API for trusselforebygging.

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).

Last ned Postman Collection for API for trusselforebygging

Last ned Postman Collection for trusselforebygging for Security Gateway API

Eksempler på bruk

I samfunnet Sjekk Mates skript skrevet i Python presenteres som sjekker filer fra den nødvendige katalogen både gjennom TP APIOg TP API for SGVed å samhandle med Threat Prevention API-et utvides filskanningsmulighetene dine betraktelig, ettersom du nå kan skanne filer på flere plattformer samtidig (sjekker inn VirusTotal API, 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

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig webhotell med DDoS-beskyttelse, VPS VDS-servere | ProHoster