Suhtlemine Check Point SandBlastiga läbi API

Suhtlemine Check Point SandBlastiga läbi API

See artikkel on kasulik neile, kes on tuttavad tehnoloogiatega Check Point failide emuleerimise kohta (Ohuteemaline emulatsioon) ja failide proaktiivse puhastamise kohta (Ohuteemaline ekstraktsioon) ning soovivad astuda sammu automatiseerimise suunas. Check Point pakub Threat Prevention API, mis töötab nii pilves kui ka kohalikelt seadmetelt, ning funktsionaalselt on see identne failide kontrollimisega web/smtp/ftp/smb/nfs liikluses. See artikkel on osaliselt autori tõlgendus ametliku dokumentatsiooni artiklitest, kuid põhineb oma kasutuskogemusel ja isiklikel näidistel. Samuti leiate artiklist autori Postmani kogumid, et töötada Threat Prevention API-ga.

Peamised lühendid

Threat Prevention API töötab kolme põhikomponendiga, mida API-s kutsutakse järgmiste tekstitähtedega:

av — Anti-Viruse komponent, vastutab tuntud ohtude allkirja analüüsi eest.

te — Threat Emulation komponent, vastutab failide kontrollimise eest liivakastis ja annavad otsuse pahatahtlik (malicious)/puhas (benign) pärast emuleerimist.

ekstraktsioon — Threat Extraction komponent, mis vastutab kontoridokumentide kiire konverteerimise eest turvaliseks vormiks (milles eemaldatakse kogu potentsiaalselt kahjulik sisu), et need saaksid kiiresti kasutajatele/süsteemidele edastatud.

API struktuur ja peamised piirangud

Threat Prevention API kasutab kokku 4 päringut — upload, query, download ja quota.Kõikide nelja päringu päises tuleb edastada API võti, kasutades parameetrit Authorization.Esmapilgul võib struktuur tunduda palju lihtsam kui Management API, kuid upload ja query päringute väljade arv ning nende struktuur on piisavalt keerulised. Neid saab funktsionaalselt võrrelda Threat Prevention profiilidega turbe-/liivakasti poliitikas.

Praegu on välja antud ainus Threat Prevention API versioon — 1.0, API väljakutsete URL-is tuleb märkida v1 koht, kus tuleb märkida versioon. Erinevalt Management API-st on API versiooni märkimine URL-is kohustuslik, vastasel juhul ei teostata päringut.

Anti-Virus komponent toetab hetkel ainult query päringuid md5 räsi summadega, kui seda kutsutakse ilma teiste komponentideta (te, extraction). Threat Emulation ja Threat Extraction toetavad ka sha1 ja sha256 räsi summasid.

Oluline on mitte teha vigu päringutes! Päringut võib täita ilma veata, kuid mitte täielikult. Veidi ettepoole liikudes vaatame, mis võib juhtuda, kui päringutes esinevad vead või trükivead.

Päring trükiveaga sõnas reports(reportss)

{ "request":  [  

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

Vastuses ei tule viga, kuid teavet aruannete kohta ei ole üldse.

{
  "response": [
    {
      "status": {
        "code": 1001,
        "label": "LEIDUD",
        "message": "Päringule on vastatud täielikult."
      },
      "sha256": "9cc488fa6209caeb201678f8360a6bb806bd2f85b59d108517ddbbf90baec33a",
      "file_type": "pdf",
      "file_name": "",
      "features": [
        "te"
      ],
      "te": {
        "trust": 10,
        "images": [
          {
            "report": {
              "verdict": "kahjulik"
            },
            "status": "leitud",
            "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
            "revision": 1
          }
        ],
        "score": -2147483648,
        "combined_verdict": "kahjulik",
        "severity": 4,
        "confidence": 3,
        "status": {
          "code": 1001,
          "label": "LEIDUD",
          "message": "Päringule on vastatud täielikult."
        }
      }
    }
  ]
}

Ja siin on päring, kus klahvis reports pole trükiviga.

{ "request":  [  

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

Saame vastuse, kus juba on olemas allalaadimise aruannete id.

{
  "response": [
    {
      "status": {
        "code": 1001,
        "label": "FOUND",
        "message": "Taotlus on täielikult vastatud."
      },
      "sha256": "9cc488fa6209caeb201678f8360a6bb806bd2f85b59d108517ddbbf90baec33a",
      "file_type": "pdf",
      "file_name": "",
      "features": [
        "te"
      ],
      "te": {
        "trust": 10,
        "images": [
          {
            "report": {
              "verdict": "kahjulik",
              "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": "kahjulik",
        "severity": 4,
        "confidence": 3,
        "status": {
          "code": 1001,
          "label": "FOUND",
          "message": "Taotlus on täielikult vastatud."
        }
      }
    }
  ]
}

Kui saadetakse vale/vana API võti, saame vastuseks vea 403.

SandBlast API: nii pilves kui ka kohalikes seadmetes

API päringud saab saata Check Pointi seadmetele, millel on sisse lülitatud Threat Emulation komponent (blade). Päringute aadressina tuleb kasutada seadme ip/url ja port 18194 (näiteks — https://10.10.57.19:18194/tecloud/api/v1/file/query). Также следует убедиться в том, что политикой безопасности на устройстве разрешено такое подключение. Авторизация через API ключ на локальных устройствах по умолчанию välja lülitatud ja autoriseerimise võti Authorization pole päringute pealkirjades üldse vajalik.

API päringud CheckPointi pilve tuleb saata aadressile te.checkpoint.com (näiteks — https://te.checkpoint.com/tecloud/api/v1/file/query). API ключ можно получить в виде триальной лицензии на 60 дней, обратившись к партнерам Check Point или в локальный офис компании.

Kohalikest seadmetest ei toetata Threat Extraction standardsetelt Threat Prevention API ja tuleks kasutada Threat Prevention API for Security Gateway (sellest räägime lähemalt artikli lõpus).

Kohalikud seadmed ei toeta päringut quota.

Muudelt osalt ei ole kohalike seadmete ja pilve vahel päringute osas erinevusi.

Upload API kutsumine

Kasutatav meetod — POST

Kutse aadress — https://<service_address>/tecloud/api/v1/file/upload

Päring koosneb kahest osast (form-data): fail, mis on mõeldud emuleerimiseks/puhastamiseks, ja päringu kehast tekstiga.

Tekstipäring ei tohi olla tühi, kuid see ei pruugi sisaldada mingit konfiguratsiooni. Et päring oleks edukas, tuleb edastada vähemalt järgmine tekst:

Nõutav minimaalne upload päringu jaoks

HTTP POST

https://<service_address>/tecloud/api/v1/file/upload

Pealkirjad:

Authorization: <api_key>

Keha

{

«request»: {

}

}

File

File

Sell juhul satub fail töötlemisse vaikeparameetrite kohaselt: komponent — te, OS pildid — Win XP ja Win 7, ilma aruande genereerimiseta.

Peamiste väljade kommentaarid tekstipäringus:

file_name ja file_type võib jätta tühjaks või üldse mitte edastada, kuna see ei ole faili üleslaadimisel eriti kasulik teave. API vastuses täidetakse need väljad automaatselt üleslaaditud faili nime alusel, kuid teavet mälus tuleb siiski otsida md5/sha1/sha256 hash summade põhjal.

Näide päringust tühjade file_name ja file_type'idega

{

"request":  {

"file_name": "",

"file_type": "",

}

}

features — nimekiri, mis näitab vajalikku funktsionaalsust töötlemisel liivakastis — av (Anti-Virus), te (Threat Emulation), extraction (Threat Extraction). Kui seda parameetrit üldse ei edastata, kasutatakse ainult vaikekomponenti — te (Threat Emulation).

Kolme saadaoleva komponendi kontrollimiseks tuleb need komponendid API päringus määrata.

Näide päringust av, te ja extraction kontrollimiseks

{ "request":  [  

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

Võtmed jaotises te

images — nimekiri, mille sees peaksid olema sõnastikud, kus on id ja operatsioonisüsteemide versioon, millel kontroll teostatakse. Id ja versioonid on kõikide kohalike seadmete ja pilve jaoks samad.

Operatsioonisüsteemide ja versioonide nimekiri

Saadaval OS pildi ID

Versioon

Pildi OS ja rakendus

e50e99f3-5963-4573-af9e-e3f4750b55e2

1

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

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

1

Microsoft Windows: 7 — 32bit
Office: 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 — 32bit
Office: 2010
Adobe Acrobat Reader: 9.4
Flash Player: 11.0.1.152 (Plugin & ActiveX)
Java Runtime: 1.7.0u0

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

1

Microsoft Windows: 7 — 32bit
Office: 2013
Adobe Acrobat Reader: 11.0
Flash Player: 15 (Plugin & ActiveX)
Java Runtime: 1.7.0u9

3ff3ddae-e7fd-4969-818c-d5f1a2be336d

1

Microsoft Windows: 7 — 64bit
Office: 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 — 64bit
Office: 2013 (64bit)
Adobe Acrobat Reader: 11.0.10
Flash Player: 18.0.0.160 (Plugin & ActiveX)
Java Runtime: 1.7.0u9

10b4a9c6-e414-425c-ae8b-fe4dd7b25244 

 

1

Microsoft Windows: 10
Office: Professional Plus 2016 en-us  
Adobe Acrobat Reader: DC 2015 MUI
Flash Player: 20 (Plugin & ActiveX)
Java Runtime: 1.7.0u9

Kui pilti keelt images üldse ei määra, siis toimub emulatsioon Check Pointi soovitatud piltides (praegu on need Win XP ja Win 7). Need pildid on soovitatud parima jõudluse ja catch rate'i tasakaalu põhjal.

aruanded — aruandluse nimekiri, mida me küsime juhul, kui fail osutub pahatahtlikuks. Saadaval on järgmised valikud:

  1. kokkuvõte — .tar.gz arhiv, mis sisaldab emulatsiooniaruannet kõikidest taotletud piltide jaoks (nii html leht kui ka sellised komponendid nagu video emulaatorist, võrgu liikluse dump, json formaadis raport, samuti näidis, mis on parooliga kaitstud arhiivis). Vastuses otsime võtit — summary_report järgnevaks raporti üleslaadimiseks.

  2. pdf — emulatsiooni dokument ühes pildis, mille paljud on harjunud saama läbi Smart Console. Vastuses otsime võtit — pdf_report järgnevaks raporti üleslaadimiseks.

  3. xml — emulatsiooni dokument ühes pilt, mis on mugav edasiste parameetrite analüüsimiseks raportis. Vastuses otsime võtit — xml_report järgnevaks raporti üleslaadimiseks.

  4. tar — .tar.gz arhiiv, mis sisaldab endas emulatsiooni raportit ühes taotletud piltide jaoks (nii html leht kui ka sellised komponendid nagu video emulaatorist, võrgu liikluse dump, json formaadis raport, samuti näidis, mis on parooliga kaitstud arhiivis). Vastuses otsime võtit — full_report järgnevaks raporti üleslaadimiseks.

Mida sisaldab resumen raportSuhtlemine Check Point SandBlastiga läbi API

Võtmed full_report, pdf_report, xml_report on igas OS-i sõnastikus

{
  "response": [
    {
      "status": {
        "code": 1001,
        "label": "FOUND",
        "message": "Päringule on täielikult vastatud."
      },
      "sha256": "9e6f07d03b37db0d3902bde4e239687a9e3d650e8c368188c7095750e24ad2d5",
      "file_type": "html",
      "file_name": "",
      "features": [
        "te"
      ],
      "te": {
        "trust": 10,
        "images": [
          {
            "report": {
              "verdict": "pahatahtlik",
              "full_report": "8d18067e-b24d-4103-8469-0117cd25eea9",
              "pdf_report": "05848b2a-4cfd-494d-b949-6cfe15d0dc0b",
              "xml_report": "ecb17c9d-8607-4904-af49-0970722dd5c8"
            },
            "status": "leitud",
            "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
            "revision": 1
          },
          {
            "report": {
              "verdict": "pahatahtlik",
              "full_report": "d7c27012-8e0c-4c7e-8472-46cc895d9185",
              "pdf_report": "488e850c-7c96-4da9-9bc9-7195506afe03",
              "xml_report": "e5a3a78d-c8f0-4044-84c2-39dc80ddaea2"
            },
            "status": "leitud",
            "id": "6c453c9b-20f7-471a-956c-3198a868dc92",
            "revision": 1
          }
        ],
        "score": -2147483648,
        "combined_verdict": "pahatahtlik",
        "severity": 4,
        "confidence": 3,
        "status": {
          "code": 1001,
          "label": "FOUND",
          "message": "Päringule on täielikult vastatud."
        }
      }
    }
  ]
}

Kuid märkus summary_report — on olemas üks emulatsiooni jaoks kokkuvõtte tegemiseks.

{
  "response": [
    {
      "status": {
        "code": 1001,
        "label": "LEITUD",
        "message": "Päringule on täielikult vastatud."
      },
      "sha256": "d57eadb7b2f91eea66ea77a9e098d049c4ecebd5a4c70fb984688df08d1fa833",
      "file_type": "exe",
      "file_name": "",
      "features": [
        "te"
      ],
      "te": {
        "trust": 10,
        "images": [
          {
            "report": {
              "verdict": "kahjulik",
              "full_report": "c9a1767b-741e-49da-996f-7d632296cf9f",
              "xml_report": "cc4dbea9-518c-4e59-b6a3-4ea463ca384b"
            },
            "status": "leitud",
            "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
            "revision": 1
          },
          {
            "report": {
              "verdict": "kahjulik",
              "full_report": "ba520713-8c0b-4672-a12f-0b4a1575b913",
              "xml_report": "87bdb8ca-dc44-449d-a9ab-2d95e7fe2503"
            },
            "status": "leitud",
            "id": "6c453c9b-20f7-471a-956c-3198a868dc92",
            "revision": 1
          }
        ],
        "score": -2147483648,
        "combined_verdict": "kahjulik",
        "severity": 4,
        "confidence": 3,
        "summary_report": "7e7db12d-5df6-4e14-85f3-2c1e29cd3e34",
        "status": {
          "code": 1001,
          "label": "LEITUD",
          "message": "Päringule on täielikult vastatud."
        }
      }
    }
  ]
}

Ühe korraga võib küsida nii tar, xml kui pdf raporteid; samuti võib küsida summary ning tar ja xml. Samal ajal summary raportit ja pdf-d küsida ei saa.

Ava võtmed sektsioonis extraction

Threat extraction puhul kasutatakse vaid kahte võtit:

meetod — pdf (muundamine pdf-ks, kasutatakse vaikimisi) või clean (aktiivse sisu puhastamine).

ekstraheeritud_osade_koodid — loendi koodid aktiivse sisu eemaldamiseks, rakendatav ainult meetodi clean jaoks

Sisu eemaldamise koodid failidest

Kood

Kirjeldus

1025

Lingitud objektid

1026

Makrod ja kood

1034

Tundlikud hüperlingid

1137

PDF GoToR tegevused

1139

PDF alustustegevused

1141

PDF URI tegevused

1142

PDF heli tegevused

1143

PDF filmi tegevused

1150

PDF JavaScript tegevused

1151

PDF vormi esitamise tegevused

1018

Andmebaasi päringud

1019

Sisseembeditud objektid

1021

Kiire andmete salvestamine

1017

Kohandatud omadused

1036

Statistika omadused

1037

Kokkuvõtte omadused

Puhastatud koopia üleslaadimiseks on vaja teha ka päring query (millest räägime hiljem) mõne sekundi jooksul, märkides faili hash-summa ja komponendi extraction päringu tekstis. Puhastatud faili saab kätte id kaudu, mis tuleb päringu query vastuses — extracted_file_download_id. Taaskord, paar sammu ettepoole minnes, toon näite päringu ja päringu vastuse kohta id otsimiseks puhastatud dokumendi allalaadimiseks.

Päring query extracted_file_download_id võtme otsimiseks

{ "request":  [  

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

Päringu query vastus (leidke võtme extracted_file_download_id)

{
    "response": [
        {
            "status": {
                "code": 1001,
                "label": "LEITUD",
                "message": "Päring on täielikult vastatud."
            },
            "sha256": "9a346005ee8c9adb489072eb8b5b61699652962c17596de9c326ca68247a8876",
            "file_type": "",
            "file_name": "",
            "features": [
                "ekstraktsioon"
            ],
            "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": "Makrod ja Kood",
                "extraction_data": {
                    "input_extension": "xls",
                    "input_real_extension": "xls",
                    "message": "OK",
                    "output_file_name": "kp-20-xls.cleaned.xls.pdf",
                    "protection_name": "Potentsiaalne kahjulik sisu avati",
                    "protection_type": "Konversioon PDF-ks",
                    "protocol_version": "1.0",
                    "risk": 5.0,
                    "scrub_activity": "Aktiivne sisu avastati - XLS-fail konverteeriti PDF-ks",
                    "scrub_method": "Konverteeri PDF-ks",
                    "scrub_result": 0.0,
                    "scrub_time": "0.013",
                    "scrubbed_content": "Makrod ja Kood"
                },
                "tex_product": false,
                "status": {
                    "code": 1001,
                    "label": "LEITUD",
                    "message": "Päring on täielikult vastatud."
                }
            }
        }
    ]
}

Ülevaade

Ühes API-kutses saab kontrollimiseks saata ainult ühe faili.

av komponent ei vaja eraldi sektsiooni võtmetega, piisab selle määramisest sõnastikus features.

Query API kutsumine

Kasutatav meetod — POST

Kutse aadress — https://<service_address>/tecloud/api/v1/file/query

Enne faili üleslaadimise saatmist (upload päring) on soovitatav teha liivakasti vahemälu kontroll (query päring), et optimeerida koormust API serverile, kuna API serveris võib juba olla teave ja otsus üles laaditud faili kohta. Kutsumine koosneb ainult tekstiosast. Päringu kohustuslik osa on faili sha1/sha256/md5 hajus summa. Selle saab muide päringu vastuses upload.

Query päringu jaoks vajalik minimaalne info

HTTP POST

https://<service_address>/tecloud/api/v1/file/query

Pealkirjad:

Authorization: <api_key>

Keha

{

«request»: {

«sha256»: <sha256 hash sum>

}

}

Näide vastusest upload päringule, kus on näha sha1/md5/sha256 hajus summad

{
  "response": {
    "status": {
      "code": 1002,
      "label": "UPLOAD_SUCCESS",
      "message": "Faili on edukalt üles laaditud."
    },
    "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": "Faili on edukalt üles laaditud."
      }
    }
  }
}

Query запрос peaks hash summa ideaal peab olema sama, nagu oli (või plaanitakse olla) upload päring, või isegi „juba” (sisaldama päringus query vähem välju kui päringus upload). Kui päringus query on rohkem välju kui oli päringus upload, saate vastuses mitte kogu vajaliku teabe.

Siin on näide vastusest päringule query, kus ei leitud kõiki vajalikke andmeid.

{
  "response": [
    {
      "status": {
        "code": 1006,
        "label": "PARTIALLY_FOUND",
        "message": "Päringule ei saa hetkel täielikult vastata."
      },
      "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": "Päring on täielikult vastatud."
        }
      },
      "extraction": {
        "method": "pdf",
        "tex_product": false,
        "status": {
          "code": 1004,
          "label": "NOT_FOUND",
          "message": "Külastatud faili ei leitud. Palun laadige see üles."
        }
      }
    }
  ]
}

Pange tähele välju code ja silt. Need väljad esinevad kolmes kohas status sõnaraamatus. Esiteks näeme globaalses võtmes „code”: 1006 ja „label”: „OSALISELT_LEIUD”. Seejärel esinevad need võtmed igas eraldi komponendis, mida soovisime — te ja extraction. Kui te osas on andmed leitud, siis extractioni osas teave puudub.

Nii nägi välja eelneva näite päring

{ "request":  [  

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

Kui saata päring query ilma extraction komponendita

{ "request":  [  

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

Siis on ka vastuses täielik teave („code”: 1001, „label”: „LEIDUD”)

{
  "response": [
    {
      "status": {
        "code": 1001,
        "label": "FOUND",
        "message": "Käsk on täielikult vastatud."
      },
      "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": "Käsk on täielikult vastatud."
        }
      }
    }
  ]
}

Kui vahemikus ei ole üldse mingit teavet, siis vastuses on «label»: «NOT_FOUND»

{
  "response": [
    {
      "status": {
        "code": 1004,
        "label": "NOT_FOUND",
        "message": "Taotletud faili ei leitud. Palun laadige see üles."
      },
      "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": "Taotletud faili ei leitud. Palun laadige see üles."
        }
      }
    }
  ]
}

Ühes API kutsega saab saata korraga mitu räsisummat kontrollimiseks. Vastuses tagastatakse andmed samas järjekorras, nagu nad külast saadeti.

Näidis päring query mitme sha256 räsisumma jaoks

{ "request":  [  

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

Vastus päringule query mitme sha256 räsisumma kohta

{
  "response": [
    {
      "status": {
        "code": 1001,
        "label": "LEI KATSE", 
        "message": "Päringule on täielikult vastatud."
      },
      "sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd81",
      "file_type": "dll",
      "file_name": "",
      "features": [
        "te"
      ],
      "te": {
        "trust": 10,
        "images": [
          {
            "report": {
              "verdict": "kahjulik"
            },
            "status": "leitud",
            "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
            "revision": 1
          }
        ],
        "score": -2147483648,
        "combined_verdict": "kahjulik",
        "severity": 4,
        "confidence": 3,
        "status": {
          "code": 1001,
          "label": "LEI KATSE",
          "message": "Päringule on täielikult vastatud."
        }
      }
    },
    {
      "status": {
        "code": 1004,
        "label": "EI LEITU",
        "message": "Taotletud faili ei leitud. Palun laadige see üles."
      },
      "sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd82",
      "file_type": "",
      "file_name": "",
      "features": [
        "te"
      ],
      "te": {
        "trust": 0,
        "images": [
          {
            "report": {
              "verdict": "teadmata"
            },
            "status": "ei_leitud",
            "id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
            "revision": 1
          }
        ],
        "score": -2147483648,
        "status": {
          "code": 1004,
          "label": "EI LEITU",
          "message": "Taotletud faili ei leitud. Palun laadige see üles."
        }
      }
    }
  ]
}

Mitme hash summa samaaegne pärimine query kaudu mõjutab ka API serveri töötlust positiivselt.

Laadi API kõne

Kasutatav meetod — POST (dokumentatsioonist lähtudes), GET töötab samuti (ja võib tunduda loogilisem)

Kutse aadress — https://<service_address>/tecloud/api/v1/file/download?id=<id>

Pealkirjas tuleb edastada API võtme, päringu keha on tühi, id laadimise jaoks edastatakse url-aadressis.

Päringu vastusena, juhul kui emulatsioon on lõpetatud ja faili laadimise ajal on soovitud aruanded, kuvatakse laadimisid. Kui küsitakse puhast koopiat, tuleb otsida puhastatud dokumendi laadimisid.

Kokkuvõttes võivad päringu vastuses id laadimiseks sisaldada järgmised võtmed:

  • summary_report

  • full_report

  • pdf_report

  • xml_report

  • extracted_file_download_id

Muidugi, et päringu vastuses need võtmed saada, tuleb need päringus näidata (aruannete jaoks) või mitte unustada teha päring funktsiooni extraction (puhastatud dokumentide jaoks)

Quota API väljakutse

Kasutatav meetod — POST

Kutse aadress — https://<service_address>/tecloud/api/v1/file/quota

Pilve jäänud kvota kontrollimiseks kasutatakse päringut quota. Päringu keha on tühi.

Quota päringu vastuse näide

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

See API on kujundati enne Threat Prevention API ja on mõeldud ainult kohalikele seadmetele. Praegu võib see olla kasulik ainult juhul, kui vajate Threat Extraction API-d. Threat Emulation jaoks on parem kasutada tavalist Threat Prevention API-d. Kuidas aktiveerida TP API for SG ja API võtme konfigureerimiseks tuleb järgida samme sk113599. Soovitan pöörata tähelepanu sammule 6b ja kontrollida lehe kättesaadavust https:///UserCheck/TPAPI sest juhul, kui tulemus on negatiivne, pole edasine konfigureerimine mõistlik. Kõik API kutseid saadetakse sellele URL-ile. Kutse tüüp (upload/query) reguleeritakse kutse keha võtmes — request_name. Ka kohustuslikud võtmed on — api_key (peate selle konfigureerimise käigus meeles pidama) ja protocol_version (üldiselt on kehtiv versioon 1.1). Ametlikku dokumentatsiooni selle API kohta leiate sk137032. Suhteliste eeliste hulka kuulub võimalus edastada samaaegselt mitu faili emuleerimisele, kuna failid saadetakse base64 tekstistringa vormis. Failide kodeerimiseks/dekodeerimiseks base64 formaati saab kasutada näiteks Postmani veebikonverterit — https://base64.guru. Praktilistel eesmärkidel koodi kirjutamisel tuleb kasutada sisseehitatud meetodeid encode ja decode.

Nüüd peatume lähemalt funktsioonidel te ja ekstraktsioon selles API-s.

Komponendi te kohta on ette nähtud sõnastik te_options upload/query päringutes, ja selles päringus olevad võtmed kattuvad täielikult te võtmetega Threat Prevention API.

Näide Win10 faili emuleerimise päringust koos raportitega

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

Komponendi ekstraktsioon kohta on ette nähtud sõnastik scrub_options. Käesolevas päringus näidatakse puhastusmeetodit: PDF-ks konverteerimine, aktiivse sisu eemaldamine või valimine vastavalt Threat Prevention profiilile (näidatakse profiili nime). API päringu vastuse eripära failide väljatõmbamisel on see, et saate puhastatud koopia vastusena krüpteeritud base64 stringina (te ei pea tegema päringut query ja otsima dokumenti üles laadimise ID-d).

Faili puhastamise päringu näide

    {
	"request": [{
		"protocol_version": "1.1",
		"api_key": "",
		"request_name": "UploadFile",
		"file_enc_data": "",
		"file_orig_name": "hi.txt",
		"scrub_options": {
			"scrub_method": 2
		}
	}]
}

Päringu vastus

{
	"response": [{
		"protocol_version": "1.1",
		"src_ip": "",
		"scrub": {
			"file_enc_data": "",
			"input_real_extension": "js",
			"message": "OK",
			"orig_file_url": "",
			"output_file_name": "hi.cleaned.pdf",
			"protection_name": "Kustuta potentsiaalselt pahatahtlik sisu",
			"protection_type": "PDF-ks konverteerimine",
			"real_extension": "txt",
			"risk": 0,
			"scrub_activity": "TXT-fail muudetakse PDF-iks",
			"scrub_method": "Konverteerimine PDF-ks",
			"scrub_result": 0,
			"scrub_time": "0.011",
			"scrubbed_content": ""
		}
	}]
} 

Kuigi puhastatud koopia saamiseks on vajalik vähem API päringuid, pean seda varianti vähem eelistatavaks ja mugavaks võrreldes form-data päringu kasutamisega, mis on kasutusel. Threat Prevention API.

Postmani kogud

Olen loonud Postmanis kogusid nii Threat Prevention API jaoks kui ka Threat Prevention API for Security Gateway jaoks, kus on esitatud kõige sagedasemad API päringud. Selleks, et ip/URL API server ja võti lisataks päringutesse automaatselt, ning et SHA256 räsiväärtus pärast faili üleslaadimist salvestataks, on kogudes loodud kolm muutujat (leiad need, minnes kogude seadete Edit -> Variables): te_api (vajalik täitmine), api_key (vajalik täitmine, välja arvatud TP API kasutamise korral kohalike seadmete puhul), sha256 (jätke tühjaks, TP API for SG ei kasuta seda).

Laadi alla Postmani kogus Threat Prevention API jaoks

Laadi alla Postmani kogus Threat Prevention for Security Gateway API jaoks

Kasutusnäited

Kogukonnas Check Mates on esitatud Pythonis kirjutatud skriptid, mis kontrollivad faile vajalikust kaustast läbi TP API, kui ka TP API for SG. Koostöö kaudu Threat Prevention API-ga laienevad teie failide kontrollimisvõimalused märkimisväärselt, kuna nüüd saate kontrollida faile mitmes platvormis (huvitav on kontrollimine VirusTotal API, ja seejärel Check Point'i liivakastis), ning faile saab vastuvõtta mitte ainult võrgu liiklusest, vaid ka need saab võtta mistahes võrku ühendatud ketastest ja näiteks CRM süsteemidest.

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster