Interakció a Check Point SandBlast alkalmazással API-n keresztül

Interakció a Check Point SandBlast alkalmazással API-n keresztül

Ez a cikk hasznos lesz azoknak, akik ismerik a technológiát Check Point fájl emulációval (Fenyegetés emuláció) és proaktív fájltisztítás (Fenyegetés eltávolítása), és szeretne egy lépést tenni e feladatok automatizálása felé. A Check Point rendelkezik Threat Prevention API, amely felhőben és helyi eszközökön is fut, és funkcionálisan megegyezik a web/smtp/ftp/smb/nfs forgalmi folyamokban lévő fájlok ellenőrzésével. Ez a cikk részben a szerző értelmezése a hivatalos dokumentáció cikkeinek sorozatáról, de saját üzemeltetési tapasztalataim és saját példáim alapján. A cikkben megtalálja a szerző Postman gyűjteményeit is a Threat Prevention API-val való együttműködéshez.

Alapvető rövidítések

A Threat Prevention API három fő összetevővel működik, amelyeket az API a következő szöveges értékeken keresztül hív meg:

av — Víruskereső komponens, amely az ismert fenyegetések aláíráselemzéséért felelős.

te - Threat Emulation komponens, amely a homokozóban lévő fájlok ellenőrzéséért és az emuláció utáni rosszindulatú/jóindulatú ítéletekért felelős.

kitermelés - Fenyegetés-eltávolító komponens, amely az irodai dokumentumok gyors biztonságos formába történő konvertálásáért felelős (amelyben minden potenciálisan rosszindulatú tartalom eltávolításra kerül), annak érdekében, hogy gyorsan eljuttassák azokat a felhasználókhoz/rendszerekhez.

API szerkezete és fő korlátozásai

A Threat Prevention API csak 4 kérést használ − feltöltés, lekérdezés, letöltés és kvóta. Mind a négy kérés fejlécében át kell adnia az API-kulcsot a paraméter használatával Meghatalmazás. Első pillantásra a szerkezet sokkal egyszerűbbnek tűnhet, mint benne Menedzsment API, de a feltöltési és lekérdezési kérelmek mezőinek száma és e kérések szerkezete meglehetősen összetett. Ezek funkcionálisan összehasonlíthatók az átjáró/sandbox biztonsági szabályzatban található fenyegetésmegelőzési profilokkal.

Jelenleg a Threat Prevention API egyetlen verziója jelent meg – 1.0; az API-hívások URL-jének tartalmaznia kell v1 abban a részben, ahol meg kell adni a verziót. A Management API-val ellentétben az URL-ben meg kell adni az API verzióját, ellenkező esetben a kérés nem hajtódik végre.

A víruskereső összetevő, ha más összetevők nélkül hívják meg (te, kibontás), jelenleg csak az md5 hash összegű lekérdezéseket támogatja. A Threat Emulation és Threat Extraction szintén támogatja az sha1 és sha256 hash összegeket.

Nagyon fontos, hogy a lekérdezések során ne tévedjünk! A kérés hiba nélkül végrehajtható, de nem teljesen. Kicsit előre tekintve nézzük meg, mi történhet, ha hibák/elírási hibák vannak a lekérdezésekben.

Kérjen elírást a reports(reportss) szóval

{ "request":  [  

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

A válaszban hiba nem lesz, de a bejelentésekről egyáltalán nem lesz információ

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

De egy olyan kéréshez, amely nem tartalmaz elírást a jelentéskulcsban

{ "request":  [  

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

Olyan választ kapunk, amely már tartalmazza a jelentések letöltésének azonosítóját

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

Ha hibás/lejárt API-kulcsot küldünk, 403-as hibaüzenetet kapunk válaszul.

SandBlast API: a felhőben és a helyi eszközökön

Az API-kérelmek olyan Check Point-eszközökre küldhetők, amelyeken engedélyezve van a Threat Emulation komponens (blade). A kérések címeként az eszköz ip/url-jét és az 18194-es portot kell használnia (például https://10.10.57.19:18194/tecloud/api/v1/file/query). Győződjön meg arról is, hogy az eszköz biztonsági szabályzata lehetővé teszi ezt a kapcsolatot. Alapértelmezés szerint engedélyezés API-kulccsal a helyi eszközökön ki és előfordulhat, hogy a kérésfejlécekben lévő engedélyezési kulcsot egyáltalán nem küldik el.

A CheckPoint felhőhöz intézett API-kéréseket a következő címre kell küldeni te.checkpoint.com (például - https://te.checkpoint.com/tecloud/api/v1/file/query). Az API-kulcs 60 napos próbalicencként szerezhető be, ha kapcsolatba lép a Check Point partnereivel vagy a vállalat helyi irodájával.

A helyi eszközökön a fenyegetések eltávolítása még nem támogatott alapértelmezés szerint. Threat Prevention API és használni kell Threat Prevention API for Security Gateway (erről a cikk végén bővebben is szó lesz).

A helyi eszközök nem támogatják a kvótakérést.

Ellenkező esetben nincs különbség a helyi eszközökre és a felhőre irányuló kérések között.

API-hívás feltöltése

Alkalmazott módszer − POST

Hívás címe - https:///tecloud/api/v1/file/upload

A kérelem két részből áll (form-data): egy emulációra/tisztításra szánt fájlból és egy szöveges kéréstörzsből.

A szöveges kérés nem lehet üres, de nem tartalmazhat semmilyen konfigurációt. Ahhoz, hogy a kérés sikeres legyen, legalább a következő szöveget el kell küldenie a kérelemben:

Feltöltési kérelemhez szükséges minimum

HTTP POST

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

fejlécek:

engedély:

Test

{

"kérés": {

}

}

filé

filé

Ebben az esetben a fájl feldolgozása az alapértelmezett paraméterek szerint történik: komponens - te, OS képek - Win XP és Win 7, jelentés generálása nélkül.

Megjegyzések a szöveges kérés főbb mezőihez:

fájl név и fájltípus Hagyja üresen, vagy egyáltalán ne küldje el, mivel ez nem különösebben hasznos információ egy fájl feltöltésekor. Az API-válaszban ezek a mezők a letöltött fájl neve alapján automatikusan kitöltődnek, és továbbra is md5/sha1/sha256 hash mennyiségekkel kell keresni a cache-ben lévő információkat.

Példakérelem üres fájlnévvel és fájltípussal

{

"request": {

"file_name": "",

"file_type": "",

}

}

jellemzők — egy lista, amely jelzi a szükséges funkcionalitást a homokozóban történő feldolgozás során - av (Vírusirtó), te (Threat Emulation), Extraction (Threat Extraction). Ha ezt a paramétert egyáltalán nem adjuk át, akkor csak az alapértelmezett komponens kerül felhasználásra - te (fenyegetés emuláció).

A három elérhető komponens ellenőrzésének engedélyezéséhez meg kell adnia ezeket az összetevőket az API-kérésben.

Példa kérésre az av, te és a kivonat ellenőrzésével

{ "request":  [  

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

Kulcsok a te részben

képek — a szótárakat tartalmazó lista azon operációs rendszerek azonosítójával és verziószámával, amelyekben az ellenőrzést végrehajtják. Az azonosítók és a verziószámok minden helyi eszköznél és a felhőnél azonosak.

Az operációs rendszerek és a verziók listája

Elérhető operációs rendszer képazonosító

Felülvizsgálat

Kép operációs rendszer és alkalmazás

e50e99f3-5963-4573-af9e-e3f4750b55e2

1

Microsoft Windows: XP - 32 bites SP3
Office: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash Player 9r115 és ActiveX 10.0
Java futási idő: 1.6.0u22

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

1

Microsoft Windows: 7-32 bites
Office: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash player: 10.2r152 (CsatlakoztatActiveX)
Java futási idő: 1.6.0u0

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

1

Microsoft Windows: 7-32 bites
Office: 2010
Adobe Acrobat Reader: 9.4
Flash player: 11.0.1.152 (Csatlakoztat & ActiveX)
Java futási idő: 1.7.0u0

5e5de275-a103-4f67-b55b-47532918fa59

1

Microsoft Windows: 7-32 bites
Office: 2013
Adobe Acrobat Reader: 11.0
Flash player: 15 (Csatlakoztat & ActiveX)
Java futási idő: 1.7.0u9

3ff3ddae-e7fd-4969-818c-d5f1a2be336d

1

Microsoft Windows: 7-64 bites
Office: 2013 (32 bites)
Adobe Acrobat Reader: 11.0.01
Flash player: 13 (Csatlakoztat & ActiveX)
Java futási idő: 1.7.0u9

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

 

Microsoft Windows: 8.1-64 bites
Office: 2013 (64 bites)
Adobe Acrobat Reader: 11.0.10
Flash player: 18.0.0.160 (Csatlakoztat & ActiveX)
Java futási idő: 1.7.0u9

10b4a9c6-e414-425c-ae8b-fe4dd7b25244 

 

1

Microsoft Windows: 10
Office: Professional Plus 2016 hu-hu  
Adobe Acrobat Reader: DC 2015 MUI
Flash player: 20 (Csatlakoztat & ActiveX)
Java futási idő: 1.7.0u9

Ha az images kulcsot egyáltalán nem adjuk meg, akkor az emuláció a Check Point által ajánlott képeken (jelenleg Win XP és Win 7) történik. Ezeket a képeket a teljesítmény és a fogási arány legjobb egyensúlyának megfontolása alapján ajánljuk.

jelentések — azon jelentések listája, amelyeket arra az esetre kérünk, ha a fájl rosszindulatúnak bizonyulna. A következő lehetőségek állnak rendelkezésre:

  1. összefoglalás - .tar.gz archívum, amely egy jelentést tartalmaz az emulációról mindenkinek kért képeket (egy html oldalt és olyan összetevőket, mint egy videó az emulátor operációs rendszerből, egy hálózati forgalom kiíratása, egy jelentés json formátumban, és maga a minta egy jelszóval védett archívumban). Keressük a kulcsot a válaszban - összegző jelentés a jelentés későbbi letöltéséhez.

  2. pdf - dokumentum az emulációról egy képet, amelyet sokan megszoktak a Smart Console-on keresztül. Keressük a kulcsot a válaszban - pdf_jelentés a jelentés későbbi letöltéséhez.

  3. xml - dokumentum az emulációról egy kép, kényelmes a paraméterek későbbi elemzéséhez a jelentésben. Keressük a kulcsot a válaszban - xml_report a jelentés későbbi letöltéséhez.

  4. kátrány - .tar.gz archívum, amely egy jelentést tartalmaz az emulációról egy kért képeket (egy html oldalt és olyan összetevőket, mint egy videó az emulátor operációs rendszerből, egy hálózati forgalom kiíratása, egy jelentés json formátumban, és maga a minta egy jelszóval védett archívumban). Keressük a kulcsot a válaszban - teljes_jelentés a jelentés későbbi letöltéséhez.

Mi van az összefoglaló jelentésbenInterakció a Check Point SandBlast alkalmazással API-n keresztül

A full_report, pdf_report, xml_report kulcsok minden operációs rendszer szótárában találhatók

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

De a summary_report kulcs - általában van egy emulációhoz

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

Egyszerre kérhet tar és xml és pdf riportokat, kérhet összefoglalót és tar és xml-t. Összefoglaló jelentést és pdf-et egyszerre nem lehet majd kérni.

Kulcsok az extrakciós részben

A fenyegetés kivonásához csak két kulcsot használnak:

módszer — pdf (pdf-be konvertálás, alapértelmezés szerint használatos) vagy tiszta (aktív tartalom tisztítása).

kivont_alkatrészek_kódjai - az aktív tartalom eltávolítására szolgáló kódok listája, amely csak a tiszta módszerre vonatkozik

Kódok a tartalom fájlokból való eltávolításához

Kód

Leírás

1025

Kapcsolt objektumok

1026

Makrók és kód

1034

Érzékeny hiperhivatkozások

1137

PDF GoToR-műveletek

1139

PDF indítási műveletek

1141

PDF URI-műveletek

1142

PDF Hangműveletek

1143

PDF filmműveletek

1150

PDF JavaScript-műveletek

1151

PDF Nyomtatvány beküldése Műveletek

1018

Adatbázis lekérdezések

1019

Beágyazott objektumok

1021

Gyors adatmentés

1017

Egyéni tulajdonságok

1036

Statisztikai tulajdonságok

1037

Összefoglaló tulajdonságok

A megtisztított másolat letöltéséhez néhány másodperc múlva lekérdezési kérelmet is kell küldenie (amiről az alábbiakban lesz szó), és a kérés szövegében meg kell adni a fájl hash mennyiségét és a kibontási összetevőt. A megtisztított fájlt a lekérdezésre adott válasz azonosítójával veheti fel - kivont_fájl_letöltési_azonosítója. Még egyszer, kicsit előre tekintve, példákat adok egy kérésre és egy lekérdezési válaszra, amellyel egy törölt dokumentum letöltéséhez szükséges azonosítót keresni.

Lekérdezési kérelem a kibontott_file_download_id kulcs kereséséhez

{ "request":  [  

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

Válasz a lekérdezésre (keresse ki a kibontott_file_download_id kulcsot)

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

Áttekintés

Egy API-hívás során csak egy fájlt küldhet ellenőrzésre.

Az av komponens nem igényel további kulcsos részt, elég megadni a szótárban jellemzők.

API-hívás lekérdezése

Alkalmazott módszer − POST

Hívás címe - https:///tecloud/api/v1/file/query

Fájl letöltésre küldése (feltöltési kérés) előtt célszerű ellenőrizni a sandbox gyorsítótárat (lekérdezési kérést), hogy optimalizálni lehessen az API szerver terhelését, mivel az API szerver már rendelkezhet információkkal és ítélettel a letöltött fájlról. A hívás csak egy szöveges részből áll. A kérés kötelező része a fájl sha1/sha256/md5 hash mennyisége. Egyébként a feltöltési kérésre adott válaszban kaphatod meg.

Minimum szükséges a lekérdezéshez

HTTP POST

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

fejlécek:

engedély:

Test

{

"kérés": {

"sha256":

}

}

Példa egy feltöltési kérésre adott válaszra, ahol az sha1/md5/sha256 hash összegek láthatók

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

A lekérdezési kérésnek a hash mennyisége mellett ideális esetben meg kell egyeznie a feltöltési kérelemmel, vagy akár „már” (kevesebb mezőt kell tartalmaznia a lekérdezési kérelemben, mint a feltöltési kérelemben). Abban az esetben, ha a lekérdezési kérelem több mezőt tartalmaz, mint amennyi a feltöltési kérelemben szerepelt, nem kap meg minden szükséges információt a válaszban.

Íme egy példa egy olyan lekérdezésre adott válaszra, ahol nem található meg minden szükséges adat

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

Ügyeljen a mezőkre kód и címke. Ezek a mezők háromszor jelennek meg az állapotszótárban. Először a globális kulcs „kódját” látjuk: 1006 és a „címkét”: „PARTIALLY_FOUND”. Ezután ezeket a kulcsokat minden egyes kért komponenshez megtaláljuk – te és kivonás. És ha a te számára egyértelmű, hogy az adatokat megtalálták, akkor a kinyeréshez nincs információ.

Így nézett ki a lekérdezés a fenti példában

{ "request":  [  

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

Ha lekérdezési kérelmet küld a kibontási összetevő nélkül

{ "request":  [  

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

Ekkor a válasz teljes információt fog tartalmazni („kód”: 1001, „címke”: „TALÁLT”)

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

Ha a gyorsítótárban egyáltalán nincs információ, akkor a válasz „címke” lesz: „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."
        }
      }
    }
  ]
}

Egy API-hívásban egyszerre több hash-összeget is küldhet ellenőrzésre. A válasz a kérésben elküldésük sorrendjében adja vissza az adatokat.

Példa lekérdezési kérelem több sha256 összeggel

{ "request":  [  

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

Válasz több sha256 összeget tartalmazó lekérdezésre

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

Ha egy lekérdezésben egyszerre több hash összeget kér le, az szintén jótékony hatással lesz az API szerver teljesítményére.

API-hívás letöltése

Alkalmazott módszer − POST (a dokumentáció szerint), GET is működik (és logikusabbnak tűnhet)

Hívás címe - https:///tecloud/api/v1/file/download?id=

A fejléc megköveteli az API kulcs átadását, a kérés törzse üres, a letöltési azonosító az URL-címben kerül átadásra.

Lekérdezési kérésre válaszul, ha az emuláció befejeződött, és a fájl letöltésekor jelentéseket kértek, a jelentések letöltésének azonosítója látható lesz. Ha tisztított másolatot kér, keresse meg az azonosítót a megtisztított dokumentum letöltéséhez.

Összességében a betöltéshez szükséges id értéket tartalmazó lekérdezésre adott válasz kulcsai lehetnek:

  • összegző jelentés

  • teljes_jelentés

  • pdf_jelentés

  • xml_report

  • kivont_fájl_letöltési_azonosítója

Természetesen ahhoz, hogy ezeket a kulcsokat megkapja a lekérdezési kérésre, meg kell adni azokat a kérésben (jelentéseknél), vagy ne felejtsen el kérni a kivonatolás funkcióval (tisztított dokumentumok esetén)

Kvóta API hívás

Alkalmazott módszer − POST

Hívás címe - https:///tecloud/api/v1/file/quota

A felhőben fennmaradó kvóta ellenőrzéséhez használja a kvótalekérdezést. A kérelem törzse üres.

Példa válasz kvótakérésre

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

Threat Prevention API for Security Gateway

Ezt az API-t a Threat Prevention API előtt fejlesztették ki, és csak helyi eszközökhöz készült. Egyelőre csak akkor lehet hasznos, ha szüksége van a Threat Extraction API-ra. A fenyegetés-emulációhoz jobb a szokásos Threat Prevention API használata. Bekapcsolni TP API az SG-hez és konfigurálja az API-kulcsot, amelynek lépéseit követnie kell sk113599. Javaslom, hogy figyeljen a 6b lépésre, és ellenőrizze az oldal elérhetőségét https://<IPAddressofSecurityGateway>/UserCheck/TPAPI mert negatív eredmény esetén nincs értelme a további konfigurációnak. Minden API-hívás erre az URL-re lesz elküldve. A hívás típusa (feltöltés/lekérdezés) a hívás törzskulcsában szabályozható kérés_neve. A szükséges kulcsok is - api_key (a konfigurációs folyamat során emlékeznie kell rá) és protokoll_verziója (jelenleg az 1.1-es verzió). Az API hivatalos dokumentációját itt találja meg sk137032. A relatív előnyök közé tartozik, hogy betöltésekor több fájlt is el lehet küldeni emuláció céljából, mivel a fájlok base64-es szöveges karakterláncként kerülnek elküldésre. Fájlok base64-re/ből való kódolásához/dekódolásához használhat egy online konvertert a Postman programban demonstrációs célokra, például - https://base64.guru. Gyakorlati okokból a kód írásakor a beépített kódolási és dekódolási módszereket kell használni.

Most nézzük meg közelebbről a funkciókat te и kitermelés ebben az API-ban.

Alkatrészhez te szótár biztosított te_options a feltöltési/lekérdezési kérésekben, és a kérés kulcsai teljesen egybeesnek a bejövő kulcsokkal Threat Prevention API.

Példa egy fájlnak a Win10 rendszerben jelentésekkel való emulálására vonatkozó kérésre

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

Alkatrészhez kitermelés szótár biztosított scrub_options. Ez a kérés meghatározza a tisztítási módszert: konvertálás PDF-be, aktív tartalom törlése vagy mód kiválasztása a fenyegetésmegelőzési profilnak megfelelően (a profil neve megjelenik). A fájl kibontási API-kéréseinek megválaszolásában az a nagyszerű, hogy a kérésre adott válaszban egy megtisztított másolatot kapunk base64 titkosított karakterláncként (nem kell lekérdezést küldenie és megkeresni az azonosítót a fájl letöltéséhez dokumentum)

Példa egy fájl törlésére irányuló kérelemre

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

Válasz egy kérésre

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

Annak ellenére, hogy kevesebb API-kérés szükséges egy törölt másolat megszerzéséhez, ezt a lehetőséget kevésbé tartom előnyösebbnek és kényelmesebbnek, mint a Threat Prevention API.

Postás gyűjtemények

A Postmanben gyűjteményeket készítettem a Threat Prevention API és a Threat Prevention API for Security Gateway számára, amelyek a leggyakoribb API kéréseket képviselik. Annak érdekében, hogy a szerver ip/url API-ja és kulcsa automatikusan becserélődjön a kérésekbe, és a fájl letöltése után az sha256 hash mennyisége emlékezzen, három változót hoztak létre a gyűjteményekben (ezeket a gyűjtemény beállításainál találja meg Szerkesztés -> Változók): te_api (kötelező), api_key (ki kell tölteni, kivéve ha TP API-t használunk helyi eszközökkel), sha256 (hagyja üresen, nincs használatban az SG TP API-jában).

Töltse le a Postman gyűjteményt a Threat Prevention API-hoz

Töltse le a Postman gyűjteményt a Threat Prevention for Security Gateway API-hoz

Példák a felhasználásra

A közösségben Ellenőrizze a társakat Pythonban írt szkriptek jelennek meg, amelyek a kívánt könyvtár fájljait ellenőrzik ezen keresztül TP APIÉs TP API az SG-hez. A Threat Prevention API-val való interakció révén a fájlok vizsgálatának lehetősége jelentősen bővül, mivel mostantól egyszerre több platformon is vizsgálhat fájlokat (bejelentkezés VirusTotal API, majd a Check Point homokozóban), és nem csak a hálózati forgalomból fogadhat fájlokat, hanem vegye át azokat bármilyen hálózati meghajtóról és például CRM-rendszerekből.

Forrás: will.com

Hozzászólás