Interakcija sa Check Point SandBlast putem API-ja

Interakcija sa Check Point SandBlast putem API-ja

Ovaj članak će biti koristan onima koji su upoznati s tehnologijom Check Point emulacijom datoteke (Emulacija prijetnje) i proaktivno čišćenje fajlova (Izvlačenje prijetnje) i želi napraviti korak ka automatizaciji ovih zadataka. Check Point ima API za prevenciju prijetnji, koji radi i u oblaku i na lokalnim uređajima, i funkcionalno je identično provjeravanju datoteka u web/smtp/ftp/smb/nfs tokovima prometa. Ovaj članak je djelomično autorska interpretacija skupa članaka iz službene dokumentacije, ali zasnovana na vlastitom operativnom iskustvu i vlastitim primjerima. Takođe u članku ćete pronaći autorove kolekcije Postman za rad sa API-jem za prevenciju pretnji.

Osnovne skraćenice

API za prevenciju prijetnji radi s tri glavne komponente, koje se u API-ju pozivaju kroz sljedeće tekstualne vrijednosti:

av — Anti-Virus komponenta, odgovorna za analizu potpisa poznatih pretnji.

te - Komponenta Threat Emulation, odgovorna za provjeru datoteka u sandboxu i donošenje zlonamjerne/benigne presude nakon emulacije.

vađenje - Komponenta Threat Extraction, odgovorna za brzo pretvaranje kancelarijskih dokumenata u bezbjednu formu (u kojoj se uklanja sav potencijalno zlonamjeran sadržaj), kako bi se brzo isporučili korisnicima/sistemima.

Struktura API-ja i glavna ograničenja

API za prevenciju prijetnji koristi samo 4 zahtjeva − otpremanje, upit, preuzimanje i kvota. U zaglavlju za sva četiri zahtjeva morate proći API ključ pomoću parametra autorizacija. Na prvi pogled, struktura može izgledati mnogo jednostavnija nego u API za upravljanje, ali broj polja u zahtjevima za otpremanje i upite i struktura ovih zahtjeva su prilično složeni. Oni se mogu funkcionalno uporediti sa profilima za sprečavanje pretnji u bezbednosnoj politici mrežnog prolaza/zaštićenog okruženja.

Trenutno je objavljena jedina verzija API-ja za prevenciju prijetnji - 1.0 URL za API pozive bi trebao uključivati; v1 u dijelu gdje trebate navesti verziju. Za razliku od API-ja za upravljanje, potrebno je u URL-u navesti verziju API-ja, inače se zahtjev neće izvršiti.

Komponenta Anti-Virus, kada se pozove bez drugih komponenti (te, ekstrakcija), trenutno podržava samo zahteve za upite sa md5 hash sumama. Emulacija prijetnje i ekstrakcija prijetnje također podržavaju sha1 i sha256 hash sume.

Veoma je važno da ne pogrešite u upitima! Zahtjev se može izvršiti bez greške, ali ne u potpunosti. Gledajući malo unapred, hajde da pogledamo šta se može dogoditi kada postoje greške/greške u kucanju u upitima.

Zahtjev sa greškom u kucanju sa riječju izvještaji (izvještaji)

{ "request":  [  

		{	
			"sha256": {{sha256}},
			"features": ["te"] , 
			"te": {
				"images": [
                    {
                        "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
                        "revision": 1
                    }
                ],
                reportss: ["tar", "pdf", "xml"]
            }
		}
	] 
}

Neće biti greške u odgovoru, ali uopće neće biti informacija o prijavama

{
  "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."
        }
      }
    }
  ]
}

Ali za zahtjev bez greške u kucanju u ključu izvještaja

{ "request":  [  

		{	
			"sha256": {{sha256}},
			"features": ["te"] , 
			"te": {
				"images": [
                    {
                        "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
                        "revision": 1
                    }
                ],
                reports: ["tar", "pdf", "xml"]
            }
		}
	] 
}

Dobijamo odgovor koji već sadrži ID za preuzimanje izvještaja

{
  "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."
        }
      }
    }
  ]
}

Ako pošaljemo neispravan/istekao API ključ, dobićemo grešku 403 kao odgovor.

SandBlast API: u oblaku i na lokalnim uređajima

API zahtjevi se mogu poslati na Check Point uređaje koji imaju omogućenu komponentu Threat Emulation (blade). Kao adresu za zahtjeve trebate koristiti ip/url uređaja i port 18194 (na primjer, https://10.10.57.19:18194/tecloud/api/v1/file/query). Također biste trebali provjeriti da li sigurnosna politika na uređaju dozvoljava ovu vezu. Autorizacija putem API ključa na lokalnim uređajima prema zadanim postavkama isključeno i autorizacijski ključ u zaglavljima zahtjeva se možda uopće neće poslati.

API zahtjeve za CheckPoint oblak treba poslati na te.checkpoint.com (na primjer - https://te.checkpoint.com/tecloud/api/v1/file/query). API ključ se može dobiti kao probna licenca na 60 dana tako što ćete kontaktirati Check Point partnere ili lokalni ured kompanije.

Na lokalnim uređajima ekstrakcija prijetnji još nije standardno podržana. API za prevenciju prijetnji i treba ga koristiti API za prevenciju prijetnji za sigurnosni prolaz (o tome ćemo detaljnije govoriti na kraju članka).

Lokalni uređaji ne podržavaju zahtjev za kvotom.

Inače, nema razlike između zahtjeva prema lokalnim uređajima i oblaku.

Upload API poziv

Korištena metoda − POST

Adresa poziva - https:///tecloud/api/v1/file/upload

Zahtjev se sastoji od dva dijela (forma-podaci): datoteke namijenjene emulaciji/čišćenju i tijela zahtjeva sa tekstom.

Tekstualni zahtjev ne može biti prazan, ali ne može sadržavati nikakvu konfiguraciju. Da bi zahtjev bio uspješan, u zahtjevu morate poslati najmanje sljedeći tekst:

Minimum potreban za zahtjev za otpremanje

HTTP POST

https:///tecloud/api/v1/file/upload

Zaglavlja:

Autorizacija:

tijelo

{

"zahtjev": {

}

}

fajl

fajl

U ovom slučaju, datoteka će biti obrađena u skladu sa zadanim parametrima: komponenta - te, OS slike - Win XP i Win 7, bez generiranja izvještaja.

Komentari na glavna polja u tekstualnom zahtjevu:

ime dokumenta и file_type Možete ih ostaviti prazne ili ih uopće ne slati, jer to nije posebno korisna informacija prilikom učitavanja datoteke. U API odgovoru, ova polja će se automatski popuniti na osnovu imena preuzete datoteke, a informacije u kešu će se i dalje morati pretraživati ​​koristeći md5/sha1/sha256 hash iznose.

Primjer zahtjeva s praznim file_name i file_type

{

"request": {

"file_name": "",

"file_type": "",

}

}

funkcije — lista koja ukazuje na potrebnu funkcionalnost prilikom obrade u sandboxu - av (Anti-Virus), te (Emulacija prijetnje), ekstrakcija (Izvlačenje prijetnje). Ako ovaj parametar uopće nije proslijeđen, tada će se koristiti samo zadana komponenta - te (Emulacija prijetnje).

Da biste omogućili provjeru u tri dostupne komponente, trebate navesti ove komponente u API zahtjevu.

Primjer zahtjeva sa provjerom av, te i ekstrakcijom

{ "request":  [  

		{	
			"sha256": {{sha256}},
			"features": ["av", "te", "extraction"]  
		}
	] 
}

Ključevi u sekciji te

slika — lista koja sadrži rečnike sa ID-om i brojem revizije operativnih sistema u kojima će se provera izvršiti. ID-ovi i brojevi revizija su isti za sve lokalne uređaje i oblak.

Lista operativnih sistema i revizija

Dostupan ID slike OS-a

revizija

Image OS i aplikacija

e50e99f3-5963-4573-af9e-e3f4750b55e2

1

Microsoft Windows: XP - 32bit SP3
ured: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash Player 9r115 i ActiveX 10.0
Java Runtime: 1.6.0u22

7e6fe36e-889e-4c25-8704-56378f0830df

1

Microsoft Windows: 7 - 32 bit
ured: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash Player: 10.2r152 (pluginActiveX)
Java Runtime: 1.6.0u0

8d188031-1010-4466-828b-0cd13d4303ff

1

Microsoft Windows: 7 - 32 bit
ured: 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 bit
ured: 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 bit
ured: 2013 (32bit)
Adobe Acrobat Reader: 11.0.01
Flash Player: 13 (plugin & ActiveX)
Java Runtime: 1.7.0u9

6c453c9b-20f7-471a-956c-3198a868dc92 

 

Microsoft Windows: 8.1 - 64 bit
ured: 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
ured: Professional Plus 2016 hr  
Adobe Acrobat Reader: DC 2015 MUI
Flash Player: 20 (plugin & ActiveX)
Java Runtime: 1.7.0u9

Ako ključ za slike uopće nije naveden, tada će se emulacija odvijati u slikama koje preporučuje Check Point (trenutno Win XP i Win 7). Ove slike se preporučuju na osnovu razmatranja najbolje ravnoteže performansi i stope hvatanja.

izvještaja — lista izvještaja koje tražimo u slučaju da se pokaže da je datoteka zlonamjerna. Dostupne su sljedeće opcije:

  1. rezime - .tar.gz arhiva koja sadrži izvještaj o emulaciji od strane svima tražene slike (i html stranica i komponente kao što su video iz OS emulatora, dump mrežnog saobraćaja, izvještaj u json-u i sam uzorak u arhivi zaštićenoj lozinkom). Tražimo ključ u odgovoru - summary_report za naknadno preuzimanje izvještaja.

  2. pdf - dokument o emulaciji u jedan sliku, koju su mnogi navikli da primaju preko Smart Console. Tražimo ključ u odgovoru - pdf_report za naknadno preuzimanje izvještaja.

  3. XML - dokument o emulaciji u jedan slika, pogodna za naknadnu analizu parametara u izvještaju. Tražimo ključ u odgovoru - xml_report za naknadno preuzimanje izvještaja.

  4. katran - .tar.gz arhiva koja sadrži izvještaj o emulaciji u jedan tražene slike (i html stranica i komponente kao što su video iz OS emulatora, dump mrežnog saobraćaja, izvještaj u json-u i sam uzorak u arhivi zaštićenoj lozinkom). Tražimo ključ u odgovoru - full_report za naknadno preuzimanje izvještaja.

Šta je unutar sažetog izvještajaInterakcija sa Check Point SandBlast putem API-ja

Ključevi full_report, pdf_report, xml_report nalaze se u rječniku za svaki 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."
        }
      }
    }
  ]
}

Ali ključ summary_report - postoji jedan za emulaciju općenito

{
  "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."
        }
      }
    }
  ]
}

Možete tražiti tar i xml i pdf izvještaje u isto vrijeme, možete zatražiti sažetak i tar i xml. Neće biti moguće zatražiti zbirni izvještaj i pdf u isto vrijeme.

Ključevi u odeljku za ekstrakciju

Za ekstrakciju prijetnji koriste se samo dva ključa:

način — pdf (pretvori u pdf, koristi se po defaultu) ili clean (čišćenje aktivnog sadržaja).

ekstrahirani_kodovi_dijelova - lista kodova za uklanjanje aktivnog sadržaja, primjenjiva samo za čistu metodu

Kodovi za uklanjanje sadržaja iz datoteka

kod

Opis

1025

Povezani objekti

1026

Makroi i kod

1034

Osjetljive hiperveze

1137

PDF GoToR Akcije

1139

Radnje pokretanja PDF-a

1141

PDF URI akcije

1142

PDF Zvučne akcije

1143

PDF filmske radnje

1150

PDF JavaScript Akcije

1151

Radnje obrasca za slanje PDF-a

1018

Upiti baze podataka

1019

Ugrađeni objekti

1021

Brzo spremanje podataka

1017

Prilagođena svojstva

1036

Statistička svojstva

1037

Summary Properties

Da biste preuzeli očišćenu kopiju, takođe ćete morati da napravite zahtev za upit (o čemu će biti reči u nastavku) nakon nekoliko sekundi, navodeći heš količinu datoteke i komponentu za ekstrakciju u tekstu zahteva. Možete preuzeti očišćeni fajl koristeći ID iz odgovora na upit - extracted_file_download_id. Još jednom, gledajući malo unaprijed, dajem primjere zahtjeva i odgovora na upit za traženje id-a za preuzimanje očišćenog dokumenta.

Zahtjev za upitom za traženje ključa extracted_file_download_id

{ "request":  [  

		{	
			"sha256": "9a346005ee8c9adb489072eb8b5b61699652962c17596de9c326ca68247a8876",
			"features": ["extraction"] , 
			"extraction": {
		        "method": "pdf"
            }
		}
	] 
}

Odgovor na upit (potražite izvučeni_file_download_id ključ)

{
    "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."
                }
            }
        }
    ]
}

Opšte informacije

U jednom API pozivu možete poslati samo jednu datoteku na verifikaciju.

Komponenta av ne zahtijeva dodatni odjeljak sa ključevima, dovoljno je navesti ga u rječniku funkcije.

Poziv API-ja upita

Korištena metoda − POST

Adresa poziva - https:///tecloud/api/v1/file/query

Prije slanja datoteke na preuzimanje (zahtjev za upload), preporučljivo je provjeriti sandbox keš (zahtjev za upit) kako bi se optimiziralo opterećenje na API serveru, jer API server možda već ima informacije i presudu o preuzetom fajlu. Poziv se sastoji samo od tekstualnog dijela. Potreban dio zahtjeva je sha1/sha256/md5 hash količina datoteke. Usput, možete ga dobiti u odgovoru na zahtjev za upload.

Minimum potreban za upit

HTTP POST

https:///tecloud/api/v1/file/query

Zaglavlja:

Autorizacija:

tijelo

{

"zahtjev": {

"sha256":

}

}

Primjer odgovora na zahtjev za upload, gdje su vidljivi sha1/md5/sha256 hash iznosi

{
  "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."
      }
    }
  }
}

Zahtjev za upit, pored iznosa heširanja, idealno bi trebao biti isti kao što je bio zahtjev za otpremanje (ili je planiran), ili čak "već" (sadržati manje polja u zahtjevu za upit nego u zahtjevu za otpremanje). U slučaju da zahtjev za upit sadrži više polja nego što je bilo u zahtjevu za učitavanje, nećete dobiti sve potrebne informacije u odgovoru.

Evo primjera odgovora na upit u kojem nisu pronađeni svi potrebni podaci

{
  "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."
        }
      }
    }
  ]
}

Obratite pažnju na polja kod и etiketa. Ova polja se pojavljuju tri puta u rječnicima statusa. Prvo vidimo globalni ključ “code”: 1006 i “label”: “PARTIALLY_FOUND”. Zatim se ovi ključevi nalaze za svaku pojedinačnu komponentu koju smo tražili - te i ekstrakciju. I ako je za te jasno da su podaci pronađeni, onda za ekstrakciju nema informacija.

Ovako je izgledao upit za gornji primjer

{ "request":  [  

		{	
			"sha256": {{sha256}},
			"features": ["te", "extraction"] , 
			"te": {
				"images": [
                    {
                        "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
                        "revision": 1
                    }
                ],
                "reports": [
                    "xml", "pdf"
                ]
            }
		}
	] 
}

Ako pošaljete zahtjev za upit bez komponente ekstrakcije

{ "request":  [  

		{	
			"sha256": {{sha256}},
			"features": ["te"] , 
			"te": {
				"images": [
                    {
                        "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
                        "revision": 1
                    }
                ],
                "reports": [
                    "xml", "pdf"
                ]
            }
		}
	] 
}

Tada će odgovor sadržavati potpune informacije (“šifra”: 1001, “oznaka”: “PRONAĐENO”)

{
  "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."
        }
      }
    }
  ]
}

Ako u predmemoriji uopće nema informacija, tada će odgovor biti "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."
        }
      }
    }
  ]
}

U jednom API pozivu možete poslati nekoliko heš iznosa odjednom radi provjere. Odgovor će vratiti podatke istim redoslijedom kako su poslani u zahtjevu.

Primjer zahtjeva za upitom s nekoliko sha256 iznosa

{ "request":  [  

		{	
			"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd81"
        },
        		{	
			"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd82"
        }
	] 
}

Odgovor na upit s više sha256 iznosa

{
  "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."
        }
      }
    }
  ]
}

Zahtjev za nekoliko hash suma odjednom u zahtjevu za upitom također će imati povoljan učinak na performanse API servera.

Preuzmite API poziv

Korištena metoda − POST (prema dokumentaciji), GET također radi (i može izgledati logičnije)

Adresa poziva - https:///tecloud/api/v1/file/download?id=

Zaglavlje zahtijeva da se prenese API ključ, tijelo zahtjeva je prazno, id preuzimanja se prosljeđuje u URL adresi.

Kao odgovor na zahtjev upita, ako je emulacija završena i izvještaji su zatraženi prilikom preuzimanja datoteke, ID za preuzimanje izvještaja će biti vidljiv. Ako se traži očišćena kopija, trebali biste potražiti ID za preuzimanje očišćenog dokumenta.

Ukupno, ključevi u odgovoru na upit koji sadrži vrijednost id za učitavanje mogu biti:

  • summary_report

  • full_report

  • pdf_report

  • xml_report

  • izvađen_file_download_id

Naravno, da biste primili ove ključeve kao odgovor na zahtjev upita, oni moraju biti navedeni u zahtjevu (za izvještaje) ili ne zaboravite napraviti zahtjev pomoću funkcije ekstrakcije (za očišćene dokumente)

Quota API poziv

Korištena metoda − POST

Adresa poziva - https:///tecloud/api/v1/file/quota

Da biste provjerili preostalu kvotu u oblaku, koristite upit kvote. Tijelo zahtjeva je prazno.

Primjer odgovora na zahtjev za kvotom

{
  "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 prevenciju prijetnji za sigurnosni prolaz

Ovaj API je razvijen prije API-ja za prevenciju prijetnji i namijenjen je samo za lokalne uređaje. Za sada može biti korisno samo ako vam je potreban API za ekstrakciju prijetnji. Za emulaciju prijetnje bolje je koristiti obični API za prevenciju prijetnji. Uključiti TP API za SG i konfigurirajte API ključ od kojeg trebate slijediti korake sk113599. Preporučujem da obratite pažnju na korak 6b i provjerite dostupnost stranice https://<IPAddressofSecurityGateway>/UserCheck/TPAPI jer u slučaju negativnog rezultata daljnja konfiguracija nema smisla. Svi API pozivi će biti poslani na ovaj URL. Tip poziva (prenos/upit) reguliran je tipkom tijela poziva − ime_zahtjeva. Takođe su potrebni ključevi - api_key (morate ga zapamtiti tokom procesa konfiguracije) i verzija_protocola (trenutno trenutna verzija je 1.1). Zvaničnu dokumentaciju za ovaj API možete pronaći na sk137032. Relativne prednosti uključuju mogućnost slanja nekoliko datoteka odjednom radi emulacije prilikom njihovog učitavanja, budući da se datoteke šalju kao base64 tekstualni niz. Za kodiranje/dekodiranje datoteka na/sa base64 možete koristiti online konverter u Postman-u u svrhu demonstracije, na primjer - https://base64.guru. U praktične svrhe, trebali biste koristiti ugrađene metode kodiranja i dekodiranja kada pišete kod.

Sada pogledajmo bliže funkcije te и vađenje u ovom API-ju.

Za komponentu te obezbjeđen rječnik te_options u zahtjevima za učitavanje/upit, a ključevi u ovom zahtjevu se potpuno poklapaju sa te ključevima u API za prevenciju prijetnji.

Primjer zahtjeva za emulaciju datoteke u Win10 sa izvještajima

{
"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 komponentu vađenje obezbjeđen rječnik scrub_options. Ovaj zahtjev navodi metod čišćenja: pretvoriti u PDF, obrisati aktivni sadržaj ili odabrati način rada u skladu sa profilom za prevenciju prijetnji (naziv profila je naznačen). Odlična stvar u odgovoru na zahtjev API-ja za ekstrakciju za datoteku je da dobijete očišćenu kopiju u odgovoru na taj zahtjev kao base64 šifrirani niz (ne morate napraviti zahtjev za upitom i potražiti ID za preuzimanje dokument)

Primjer zahtjeva 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 zahtjev

{
	"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": ""
		}
	}]
} 

Unatoč činjenici da je potrebno manje API zahtjeva za dobivanje očišćene kopije, smatram da je ova opcija manje poželjna i zgodna od zahtjeva za podatke obrasca koji se koristi u API za prevenciju prijetnji.

Postman Collections

Napravio sam kolekcije u Postmanu i za API za prevenciju pretnji i za API za prevenciju pretnji za bezbednosni gateway, koji predstavljaju najčešće API zahteve. Da bi se serverski ip/url API i ključ automatski zamijenili u zahtjeve, a količina hash sha256 koja se pamti nakon preuzimanja datoteke, unutar kolekcija su kreirane tri varijable (možete ih pronaći u postavkama kolekcije Uredi -> Varijable): te_api (obavezno), api_key (obavezno popuniti, osim kada koristite TP API s lokalnim uređajima), sha256 (ostavite prazno, ne koristi se u TP API-ju za SG).

Preuzmite kolekciju Postman za API za prevenciju prijetnji

Preuzmite kolekciju Postman za API za prevenciju prijetnji za sigurnosni pristupni prolaz

Primjeri upotrebe

U zajednici Check Mates Predstavljene su skripte napisane u Pythonu koje provjeravaju datoteke iz željenog direktorija putem TP API, i TP API za SG. Kroz interakciju sa Threat Prevention API-jem, vaša mogućnost skeniranja datoteka je značajno proširena, jer sada možete skenirati datoteke na nekoliko platformi odjednom (provjeravanjem VirusTotal API, a zatim u Check Point sandbox) i primate datoteke ne samo iz mrežnog prometa, već ih preuzimate i sa bilo kojeg mrežnog diska i, na primjer, CRM sistema.

izvor: www.habr.com

Dodajte komentar