
Å is raksts bÅ«s noderÄ«gs tiem, kas ir iepazinuÅ”ies ar tehnoloÄ£ijÄm Check Point par failu emulÄciju (Threat Emulation) un proaktÄ«vo failu tÄ«rīŔanu (Threat Extraction) un vÄlas veikt soli uz automatizÄciju Å”ajÄs jomÄs. Check Point piedÄvÄ , kas darbojas gan mÄkoÅos, gan uz vietÄjiem ierÄ«cÄm, un funkcionÄli tas ir identisks failu pÄrbaudei web/smtp/ftp/smb/nfs plÅ«smÄs. Å is raksts daļÄji ir autora interpretÄcija oficiÄlÄs dokumentÄcijas rakstu kopumam, taÄu balstÄs uz personÄ«go pieredzi un piemÄriem. RakstÄ jÅ«s atradÄ«siet arÄ« autora Postman kolekcijas darbam ar Threat Prevention API.
GalvenÄs saÄ«sinÄjumi
Threat Prevention API darbojas ar trim galvenajiem komponentiem, kuri API tiek izsaukti ar Å”Ädiem tekstu vÄrtÄ«bÄm:
av ā Anti-Virus komponenta, kas atbild par parakstu analÄ«zi pazÄ«stamÄm draudiem.
te ā Threat Emulation komponenta, kas atbild par failu pÄrbaudi smiltÄ«s un lÄmuma pieÅemÅ”anu, vai failus var uzskatÄ«t par ļaunprÄtÄ«giem (malicious)/tÄ«riem (benign) pÄc emulÄcijas.
extraction ā Threat Extraction komponenta, kas atbild par Ätru biroja dokumentu konvertÄÅ”anu droÅ”Ä formÄ (no kurÄm tiek izÅemts viss potenciÄli kaitÄ«gais saturs), lai to Ätri varÄtu piegÄdÄt lietotÄjiem/sistÄmÄm.
API struktūra un galvenie ierobežojumi
Threat Prevention API izmanto tikai 4 pieprasÄ«jumus ā upload, query, download un quota. Visos Äetros pieprasÄ«jumos ir jÄnodroÅ”ina API atslÄga, izmantojot parametru Authorization. PirmÄ mirkļa iespaidÄ struktÅ«ra var Ŕķist daudz vienkÄrÅ”Äka nekÄ , taÄu lauku skaits pieprasÄ«jumos upload un query, kÄ arÄ« Å”o pieprasÄ«jumu struktÅ«ra ir pietiekami sarežģīta. Tos var funkcionÄli salÄ«dzinÄt ar Threat Prevention profiliem droŔības politikas ietvaros/gasÅ«lÄs.
PaÅ”laik ir izlaista tikai viena Threat Prevention API versija ā 1.0, un URL API izsaukumiem jÄnorÄda v1 tajÄ daļÄ, kur vajadzÄ«gs norÄdÄ«t versiju. AtŔķirÄ«bÄ no Management API, versiju API URL obligÄti jÄnorÄda, citÄdi pieprasÄ«jums netiks veikts.
Anti-Virus komponents, izsaucot bez citiem komponentiem (te, extraction), Å”obrÄ«d atbalsta tikai query pieprasÄ«jumus ar md5 hash summÄm. Threat Emulation un Threat Extraction atbalsta arÄ« sha1 un sha256 hash summas.
Ir ļoti svarÄ«gi neizdarÄ«t kļūdas pieprasÄ«jumos! PieprasÄ«jums var tikt izpildÄ«ts bez kļūdÄm, bet ne pilnÄ«bÄ. Nedaudz ieskicÄjot, aplÅ«kosim, kas notiek pie kļūdÄm/printÄÅ”anas kļūdÄm pieprasÄ«jumos.
PieprasÄ«jums ar drukas kļūdu vÄrdÄ reports(reportss)
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
reportss: ["tar", "pdf", "xml"]
}
}
]
}AtbildÄ kļūdu nebÅ«s, bet informÄcija par ziÅojumiem vispÄr nebÅ«s
{
"response": [
{
"status": {
"code": 1001,
"label": "ATRASTS",
"message": "PieprasÄ«jums ir pilnÄ«bÄ atbildÄts."
},
"sha256": "9cc488fa6209caeb201678f8360a6bb806bd2f85b59d108517ddbbf90baec33a",
"file_type": "pdf",
"file_name": "",
"features": [
"te"
],
"te": {
"trust": 10,
"images": [
{
"report": {
"verdict": "ļaunprÄtÄ«gs"
},
"status": "atrodams",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"score": -2147483648,
"combined_verdict": "ļaunprÄtÄ«gs",
"severity": 4,
"confidence": 3,
"status": {
"code": 1001,
"label": "ATRASTS",
"message": "PieprasÄ«jums ir pilnÄ«bÄ atbildÄts."
}
}
}
]
}Un Å”eit ir pieprasÄ«jums bez kļūdas atslÄgas vÄrdÄ reports
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
reports: ["tar", "pdf", "xml"]
}
}
]
}MÄs saÅemam atbildi, kurÄ jau ir iekļauti id ziÅojumu lejupielÄdei
{
"response": [
{
"status": {
"code": 1001,
"label": "ATRASTS",
"message": "PieprasÄ«jums ir pilnÄ«bÄ atbildÄts."
},
"sha256": "9cc488fa6209caeb201678f8360a6bb806bd2f85b59d108517ddbbf90baec33a",
"file_type": "pdf",
"file_name": "",
"features": [
"te"
],
"te": {
"trust": 10,
"images": [
{
"report": {
"verdict": "ļaunprÄtÄ«gs",
"full_report": "b684066e-e41c-481a-a5b4-be43c27d8b65",
"pdf_report": "e48f14f1-bcc7-4776-b04b-1a0a09335115",
"xml_report": "d416d4a9-4b7c-4d6d-84b9-62545c588963"
},
"status": "atrodams",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"score": -2147483648,
"combined_verdict": "ļaunprÄtÄ«gs",
"severity": 4,
"confidence": 3,
"status": {
"code": 1001,
"label": "ATRASTS",
"message": "PieprasÄ«jums ir pilnÄ«bÄ atbildÄts."
}
}
}
]
}Ja nosÅ«tÄ«siet nepareizu/novÄloti API atslÄgu, atbildÄ saÅemsim kļūdu 403.
SandBlast API: mÄkoÅos un lokÄlajÄs ierÄ«cÄs
API pieprasÄ«jumus var nosÅ«tÄ«t uz Check Point ierÄ«cÄm, kurÄs ir aktivizÄts Threat Emulation komponents (blade). KÄ adresi pieprasÄ«jumiem jÄizmanto ierÄ«ces ip/url un ports 18194 (piemÄram ā https://10.10.57.19:18194/tecloud/api/v1/file/query). Также ŃŠ»ŠµŠ“ŃŠµŃ ŃŠ±ŠµŠ“ŠøŃŃŃŃ Š² ŃŠ¾Š¼, ŃŃŠ¾ ŠæŠ¾Š»ŠøŃŠøŠŗŠ¾Š¹ Š±ŠµŠ·Š¾ŠæŠ°ŃŠ½Š¾ŃŃŠø на ŃŃŃŃŠ¾Š¹ŃŃŠ²Šµ ŃŠ°Š·ŃŠµŃŠµŠ½Š¾ ŃŠ°ŠŗŠ¾Šµ поГклŃŃŠµŠ½ŠøŠµ. ŠŠ²ŃŠ¾ŃŠøŠ·Š°ŃŠøŃ ŃŠµŃез API ŠŗŠ»ŃŃ Š½Š° Š»Š¾ŠŗŠ°Š»ŃŠ½ŃŃ ŃŃŃŃŠ¾Š¹ŃŃŠ²Š°Ń по ŃŠ¼Š¾Š»ŃŠ°Š½ŠøŃ izslÄgts un Authorization atslÄgu var nepildÄ«t vispÄr pie pieprasÄ«jumu galviÅÄm.
API pieprasÄ«jumus CheckPoint mÄkoÅa vajadzÄ«bÄm jÄnosÅ«ta uz adresi te.checkpoint.com (piemÄram ā https://te.checkpoint.com/tecloud/api/v1/file/query). API ŠŗŠ»ŃŃ Š¼Š¾Š¶Š½Š¾ полŃŃŠøŃŃ Š² виГе ŃŃŠøŠ°Š»Ńной Š»ŠøŃензии на 60 Гней, Š¾Š±ŃŠ°ŃŠøŠ²ŃŠøŃŃ Šŗ паŃŃŠ½ŠµŃам Check Point или в Š»Š¾ŠŗŠ°Š»ŃнŃй Š¾ŃŠøŃ компании.
LokalizÄtajos ierÄ«cÄs Threat Extraction pagaidÄm netiek atbalstÄ«ts standarta un jÄizmanto (par to runÄsim sÄ«kÄk raksta beigÄs).
LokalizÄtÄs ierÄ«ces neatbalsta quota pieprasÄ«jumus.
PÄrÄjÄ ziÅÄ atŔķirÄ«bu starp pieprasÄ«jumiem uz lokalizÄtÄm ierÄ«cÄm un mÄkoÅa nav.
Upload API izsaukums
IzmantojamÄ metode ā POST
Izsaukuma adrese ā https://<service_address>/tecloud/api/v1/file/upload
PieprasÄ«jums sastÄv no divÄm daļÄm (form-data): faila, kas paredzÄts emulÄÅ”anai/izsistīŔanai, un pieprasÄ«juma Ä·ermeÅa ar tekstu.
Teksta pieprasÄ«jums nedrÄ«kst bÅ«t tukÅ”s, bet tas var nesaturÄt nekÄdu konfigurÄciju. Lai pieprasÄ«jums bÅ«tu veiksmÄ«gs, jÄnosÅ«ta vismaz Å”Äds teksts pieprasÄ«jumÄ:
NepiecieŔamais minimums upload pieprasījumam
HTTP POST
https://<service_address>/tecloud/api/v1/file/upload
Galvenes:
Authorization: <api_key>
Ķermenis
{
«request»: {
}
}
Fails
Fails
Å ajÄ gadÄ«jumÄ fails tiks apstrÄdÄts atbilstoÅ”i noklusÄjuma parametriem: komponents ā te, operÄtÄjsistÄmu attÄli ā Win XP un Win 7, bez ziÅojumu Ä£enerÄÅ”anas.
PiezÄ«mes par galvenajiem laukiem tekstÄ pieprasÄ«jumÄ:
file_name un file_type var atstÄt tukÅ”us vai vispÄr nesÅ«tÄ«t, jo Ŕī informÄcija nav Ä«paÅ”i noderÄ«ga faila augÅ”upielÄdÄ. API atbildÄ Å”ie lauki tiks automÄtiski aizpildÄ«ti, pamatojoties uz augÅ”upielÄdÄtÄ faila nosaukumu, un informÄcija keÅ”atmiÅÄ tomÄr bÅ«s jÄmeklÄ pÄc md5/sha1/sha256 hash summÄm.
PiemÄrs pieprasÄ«jumam ar tukÅ”iem file_name un file_type
{
"request": {
"file_name": "",
"file_type": "",
}
}features ā saraksts, kurÄ norÄdÄ«ts nepiecieÅ”amais funkcionalitÄte apstrÄdÄ smiltÄ«s ā av (Anti-Virus), te (Threat Emulation), extraction (Threat Extraction). Ja Å”o parametru vispÄr nenodot, tiks izmantots tikai noklusÄjuma komponents ā te (Threat Emulation).
Lai ieslÄgtu pÄrbaudi trÄ«s pieejamos komponentos, nepiecieÅ”ams norÄdÄ«t Å”os komponentus API pieprasÄ«jumÄ.
PiemÄrs pieprasÄ«jumam ar pÄrbaudi av, te un extraction
{ "request": [
{
"sha256": {{sha256}},
"features": ["av", "te", "extraction"]
}
]
}AtslÄgas sadaÄ¼Ä te
images ā saraksts, kurÄ jÄiekļauj vÄrdnÄ«cas ar id un versijas numuru operÄtÄjsistÄmÄm, kurÄs tiks veikta pÄrbaude. ID un versijas numuri ir vienÄdi visÄm lokalizÄtÄm ierÄ«cÄm un mÄkoÅiem.
OperÄtÄjsistÄmu un versiju saraksts
Available OS Image ID
Revision
Image OS and Application
e50e99f3-5963-4573-af9e-e3f4750b55e2
1
Microsoft Windows: XP ā 32bit SP3
Birojs: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash PlayerĀ 9r115 unĀ ActiveXĀ 10.0
Java Runtime:Ā 1.6.0u22
7e6fe36e-889e-4c25-8704-56378f0830df
1
Microsoft Windows: 7 ā 32biti
Birojs: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash Player:Ā 10.2r152 (PaplaÅ”inÄjums&Ā ActiveX)
Java Runtime:Ā 1.6.0u0
8d188031-1010-4466-828b-0cd13d4303ff
1
Microsoft Windows: 7 ā 32biti
Birojs: 2010
Adobe Acrobat Reader: 9.4
Flash Player:Ā 11.0.1.152 (PaplaÅ”inÄjumsĀ &Ā ActiveX)
Java Runtime:Ā 1.7.0u0
5e5de275-a103-4f67-b55b-47532918fa59
1
Microsoft Windows: 7 ā 32biti
Birojs: 2013
Adobe Acrobat Reader: 11.0
Flash Player:Ā 15 (PaplaÅ”inÄjumsĀ &Ā ActiveX)
Java Runtime:Ā 1.7.0u9
3ff3ddae-e7fd-4969-818c-d5f1a2be336d
1
Microsoft Windows: 7 ā 64biti
Birojs: 2013 (32biti)
Adobe Acrobat Reader: 11.0.01
Flash Player:Ā 13 (PaplaÅ”inÄjumsĀ &Ā ActiveX)
Java Runtime:Ā 1.7.0u9
6c453c9b-20f7-471a-956c-3198a868dc92Ā
Ā
1Ā
Microsoft Windows: 8.1 ā 64biti
Birojs: 2013 (64biti)
Adobe Acrobat Reader: 11.0.10
Flash Player:Ā 18.0.0.160 (PaplaÅ”inÄjumsĀ &Ā ActiveX)
Java Runtime:Ā 1.7.0u9
10b4a9c6-e414-425c-ae8b-fe4dd7b25244Ā
Ā
1
Microsoft Windows: 10
Birojs: Professional Plus 2016 en-usĀ Ā
Adobe Acrobat Reader: DC 2015 MUI
Flash Player:Ā 20 (PaplaÅ”inÄjumsĀ &Ā ActiveX)
Java Runtime:Ā 1.7.0u9
Ja atslÄga images netiek norÄdÄ«ta, emulÄcija notiks, izmantojot Check Point ieteiktos attÄlus (paÅ”laik tie ir Win XP un Win 7). Å ie attÄli ir ieteikti, Åemot vÄrÄ labÄko veiktspÄjas un catch rate lÄ«dzsvaru.
pÄrskati ā saraksts ar pÄrskatiem, kurus mÄs pieprasÄm, ja fails izrÄdÄs kaitÄ«gs. Pieejami Å”Ädi varianti:
kopsavilkums ā .tar.gz arhÄ«vs, kas satur emulÄcijas pÄrskatu par visiem pieprasÄ«tajiem attÄliem (kÄ html lapa, kÄ arÄ« tÄdi komponenti kÄ video no emulators, tÄ«kla trafika dumps, pÄrskats json formÄtÄ, kÄ arÄ« pats paraugs arhÄ«vÄ ar paroli aizsargÄts). AtbildÄ meklÄjam atslÄgu ā summary_report lai turpmÄk lejupielÄdÄtu pÄrskatu.
pdf ā emulÄcijas dokuments vienÄ attÄlÄ, ko daudzi ir pieraduÅ”i saÅemt caur Smart Console. AtbildÄ meklÄjam atslÄgu ā pdf_report lai turpmÄk lejupielÄdÄtu pÄrskatu.
xml ā emulÄcijas dokuments vienÄ attÄls, Ärts turpmÄkai parametru parsÄÅ”anai pÄrskatÄ. AtbildÄ meklÄjam atslÄgu ā xml_report lai turpmÄk lejupielÄdÄtu pÄrskatu.
tar ā .tar.gz arhÄ«vs, kas satur emulÄcijas pÄrskatu par vienÄ pieprasÄ«tajiem attÄliem (kÄ html lapa, kÄ arÄ« tÄdi komponenti kÄ video no emulators, tÄ«kla trafika dumps, pÄrskats json formÄtÄ, kÄ arÄ« pats paraugs arhÄ«vÄ ar paroli aizsargÄts). AtbildÄ meklÄjam atslÄgu ā full_report lai turpmÄk lejupielÄdÄtu pÄrskatu.
Kas iekļauts kopsavilkuma pÄrskatÄ
AtslÄgas full_report, pdf_report, xml_report ir vÄrdnÄ«cÄ katrai OS
{
"response": [
{
"status": {
"code": 1001,
"label": "ATRADÄS",
"message": "PieprasÄ«jums ir pilnÄ«bÄ atbildÄts."
},
"sha256": "9e6f07d03b37db0d3902bde4e239687a9e3d650e8c368188c7095750e24ad2d5",
"file_type": "html",
"file_name": "",
"features": [
"te"
],
"te": {
"trust": 10,
"images": [
{
"report": {
"verdict": "kaitīgs",
"full_report": "8d18067e-b24d-4103-8469-0117cd25eea9",
"pdf_report": "05848b2a-4cfd-494d-b949-6cfe15d0dc0b",
"xml_report": "ecb17c9d-8607-4904-af49-0970722dd5c8"
},
"status": "atrasts",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
},
{
"report": {
"verdict": "kaitīgs",
"full_report": "d7c27012-8e0c-4c7e-8472-46cc895d9185",
"pdf_report": "488e850c-7c96-4da9-9bc9-7195506afe03",
"xml_report": "e5a3a78d-c8f0-4044-84c2-39dc80ddaea2"
},
"status": "atrasts",
"id": "6c453c9b-20f7-471a-956c-3198a868dc92",
"revision": 1
}
],
"score": -2147483648,
"combined_verdict": "kaitīgs",
"severity": 4,
"confidence": 3,
"status": {
"code": 1001,
"label": "ATRADÄS",
"message": "PieprasÄ«jums ir pilnÄ«bÄ atbildÄts."
}
}
}
]
}Å eit atslÄga summary_report ir viena visai emulÄcijai
{
"response": [
{
"status": {
"code": 1001,
"label": "ATRASTS",
"message": "PieprasÄ«jums ir pilnÄ«bÄ apstrÄdÄts."
},
"sha256": "d57eadb7b2f91eea66ea77a9e098d049c4ecebd5a4c70fb984688df08d1fa833",
"file_type": "exe",
"file_name": "",
"features": [
"te"
],
"te": {
"trust": 10,
"images": [
{
"report": {
"verdict": "ļaunprÄtÄ«gs",
"full_report": "c9a1767b-741e-49da-996f-7d632296cf9f",
"xml_report": "cc4dbea9-518c-4e59-b6a3-4ea463ca384b"
},
"status": "atrodams",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
},
{
"report": {
"verdict": "ļaunprÄtÄ«gs",
"full_report": "ba520713-8c0b-4672-a12f-0b4a1575b913",
"xml_report": "87bdb8ca-dc44-449d-a9ab-2d95e7fe2503"
},
"status": "atrodams",
"id": "6c453c9b-20f7-471a-956c-3198a868dc92",
"revision": 1
}
],
"score": -2147483648,
"combined_verdict": "ļaunprÄtÄ«gs",
"severity": 4,
"confidence": 3,
"summary_report": "7e7db12d-5df6-4e14-85f3-2c1e29cd3e34",
"status": {
"code": 1001,
"label": "ATRASTS",
"message": "PieprasÄ«jums ir pilnÄ«bÄ apstrÄdÄts."
}
}
}
]
}Vienlaikus var pieprasÄ«t tar, xml un pdf ziÅojumus, kÄ arÄ« var pieprasÄ«t kopsavilkumu un tar un xml. Kopsavilkumu un pdf vienlaikus nevar pieprasÄ«t.
AtslÄgas seksijÄ extraction
TÄpat draudu izÅÄmumam izmanto tikai divas atslÄgas:
metode ā pdf (konversija uz pdf, tiek izmantots noklusÄjumÄ) vai clean (aktÄ«vÄ satura attÄ«rīŔana).
izÅemto_daļu_kodi ā aktÄ«vÄ satura dzÄÅ”anas kodi, attiecas tikai uz metodi clean
Kodi satura noÅemÅ”anai no failiem
Kods
Apraksts
1025
Saistītie objekti
1026
Makros un kods
1034
Jutīgi hiperlinki
1137
PDF GoToR darbības
1139
PDF Launch darbības
1141
PDF URI darbības
1142
PDF skaÅas darbÄ«bas
1143
PDF filmas darbības
1150
PDF JavaScript darbības
1151
PDF formas nosūtīŔanas darbības
1018
DatubÄzes vaicÄjumi
1019
Iegultie objekti
1021
ÄtrÄ saglabÄÅ”anas dati
1017
PielÄgotÄs Ä«paŔības
1036
Statistikas īpaŔības
1037
Kopsavilkuma īpaŔības
Lai lejupielÄdÄtu attÄ«rÄ«tu kopiju, bÅ«s jÄdara vÄl viens vaicÄjums (par to tiks runÄts tÄlÄk) pÄc dažÄm sekundÄm, norÄdot faila hash summu un komponentu extraction tekstÄ. AttÄ«rÄ«tu failu varÄs lejupielÄdÄt, izmantojot id no atbildes uz vaicÄjumu ā extracted_file_download_id. VÄlreiz, nedaudz iepriekÅ” iepriekÅ” norÄdot, sniedzu vaicÄjuma un atbildes piemÄrus, lai atrastu id attÄ«rÄ«tÄ dokumenta lejupielÄdei.
VaicÄjums query, lai atrastu atslÄgu extracted_file_download_id
{ "request": [
{
"sha256": "9a346005ee8c9adb489072eb8b5b61699652962c17596de9c326ca68247a8876",
"features": ["extraction"] ,
"extraction": {
"method": "pdf"
}
}
]
}Atbilde uz vaicÄjumu query (atrodiet atslÄgu extracted_file_download_id)
{
"response": [
{
"status": {
"code": 1001,
"label": "ATRADÄS",
"message": "PieprasÄ«jums ir pilnÄ«bÄ apstrÄdÄts."
},
"sha256": "9a346005ee8c9adb489072eb8b5b61699652962c17596de9c326ca68247a8876",
"file_type": "",
"file_name": "",
"features": [
"izvilkŔana"
],
"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": "Makro un kods",
"extraction_data": {
"input_extension": "xls",
"input_real_extension": "xls",
"message": "Labi",
"output_file_name": "kp-20-xls.cleaned.xls.pdf",
"protection_name": "IespÄjams ļaunprÄtÄ«gs saturs izvilkts",
"protection_type": "Konversija uz PDF",
"protocol_version": "1.0",
"risk": 5.0,
"scrub_activity": "Atrasta aktÄ«vÄ satura - XLS fails tika konvertÄts uz PDF",
"scrub_method": "KonvertÄt uz PDF",
"scrub_result": 0.0,
"scrub_time": "0.013",
"scrubbed_content": "Makro un kods"
},
"tex_product": false,
"status": {
"code": 1001,
"label": "ATRADÄS",
"message": "PieprasÄ«jums ir pilnÄ«bÄ apstrÄdÄts."
}
}
}
]
}VispÄrÄ«ga informÄcija
Viena API izsaukuma ietvaros var nosÅ«tÄ«t tikai vienu failu pÄrbaudei.
Komponentam av nav nepiecieÅ”ams papildu atslÄgu sekcijas, pietiek to norÄdÄ«t vÄrdnÄ«cÄ features.
Query API izsaukums
IzmantojamÄ metode ā POST
Izsaukuma adrese ā https://<service_address>/tecloud/api/v1/file/query
Pirms sÅ«tÄ«t failu augÅ”upielÄdei (augÅ”upielÄdes pieprasÄ«jums), vÄlams veikt smilÅ”u kastes keÅ”a pÄrbaudi (query pieprasÄ«jums), lai optimizÄtu slodzi uz API serveri, jo iespÄjams, ka API serverÄ« jau ir informÄcija un slÄdzi par augÅ”upielÄdÄjamo failu. Izsaukums sastÄv tikai no teksta daļas. ObligÄtÄ pieprasÄ«juma daļa ir sha1/sha256/md5 hash summa failam. TÄs vÄrtÄ«bu var saÅemt atbildÄ uz augÅ”upielÄdes pieprasÄ«jumu.
MinimÄlais nepiecieÅ”amais pieprasÄ«jums par query
HTTP POST
https://<service_address>/tecloud/api/v1/file/query
Galvenes:
Authorization: <api_key>
Ķermenis
{
«request»: {
«sha256»: <sha256 hash sum>
}
}
AugÅ”upielÄdes pieprasÄ«juma atbildes piemÄrs, kurÄ redzamas sha1/md5/sha256 hash summas
{
"response": {
"status": {
"code": 1002,
"label": "UPLOAD_SUCCESS",
"message": "Fails tika veiksmÄ«gi augÅ”upielÄdÄts."
},
"sha1": "954b5a851993d49ef8b2412b44f213153bfbdb32",
"md5": "ac29b7c26e7dcf6c6fdb13ac0efe98ec",
"sha256": "313c0feb009356495b7f4a60e96737120beb30e1912c6d866218cee830aebd90",
"file_type": "",
"file_name": "kp-20-doc.doc",
"features": [
"te"
],
"te": {
"trust": 0,
"images": [
{
"report": {
"verdict": "nezinÄms"
},
"status": "nav atrasts",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"score": -2147483648,
"status": {
"code": 1002,
"label": "UPLOAD_SUCCESS",
"message": "Fails tika veiksmÄ«gi augÅ”upielÄdÄts."
}
}
}
}Query pieprasÄ«jumam, izÅemot hash summu, ideÄlÄ gadÄ«jumÄ jÄbÅ«t tÄdam paÅ”am kÄ upload pieprasÄ«jumam (vai tas ir plÄnots), vai pat "jau" (tÄ jÄietver query pieprasÄ«jumÄ mazÄk lauku nekÄ upload pieprasÄ«jumÄ). GadÄ«jumÄ, ja query pieprasÄ«jumÄ ir vairÄk lauku nekÄ upload pieprasÄ«jumÄ, jÅ«s saÅemsiet atbildi bez visiem nepiecieÅ”amajiem datiem.
Å eit ir piemÄrs atbildei uz query pieprasÄ«jumu, kurÄ nebija atrasti visi nepiecieÅ”amie dati.
{
"response": [
{
"status": {
"code": 1006,
"label": "PARTIALLY_FOUND",
"message": "PieprasÄ«jumu Å”obrÄ«d nevar pilnÄ«bÄ apstrÄdÄt."
},
"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": "PieprasÄ«jumu ir pilnÄ«bÄ apstrÄdÄts."
}
},
"extraction": {
"method": "pdf",
"tex_product": false,
"status": {
"code": 1004,
"label": "NOT_FOUND",
"message": "Neatrada pieprasÄ«to failu. LÅ«dzu, augÅ”upielÄdÄjiet to."
}
}
}
]
}LÅ«dzu, pievÄrsiet uzmanÄ«bu pieprasÄ«juma laukiem. code un label. Å ie lauki parÄdÄs trÄ«s reizes status vÄrdnÄ«cÄs. SÄkumÄ redzam globÄlo atslÄgu "code": 1006 un "label": "PARTIALLY_FOUND". PÄc tam Å”ie atslÄgas vÄrdi parÄdÄs katram atseviŔķam komponentam, ko mÄs pieprasÄ«jÄm ā te un extraction. Un, ja par te ir skaidrs, ka dati ir atrasti, tad attiecÄ«bÄ uz extraction informÄcija trÅ«kst.
TÄ izskatÄ«jÄs query pieprasÄ«jums iepriekÅ” minÄtajam piemÄram.
{ "request": [
{
"sha256": {{sha256}},
"features": ["te", "extraction"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"reports": [
"xml", "pdf"
]
}
}
]
}Ja nosÅ«tÄt query pieprasÄ«jumu bez komponenta extraction.
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"reports": [
"xml", "pdf"
]
}
}
]
}Tad arÄ« atbildÄ bÅ«s pilnÄ«ga informÄcija ("code": 1001, "label": "FOUND").
{
"response": [
{
"status": {
"code": 1001,
"label": "ATRASTS",
"message": "PieprasÄ«jums ir pilnÄ«bÄ apstrÄdÄts."
},
"sha256": "313c0feb009356495b7f4a60e96737120beb30e1912c6d866218cee830aebd90",
"file_type": "doc",
"file_name": "",
"features": [
"te"
],
"te": {
"trust": 10,
"images": [
{
"report": {
"verdict": "ļaunprÄtÄ«gs",
"pdf_report": "4e9cddaf-03a4-489f-aa03-3c18f8d57a52",
"xml_report": "9c18018f-c761-4dea-9372-6a12fcb15170"
},
"status": "atrasts",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"score": -2147483648,
"combined_verdict": "ļaunprÄtÄ«gs",
"severity": 4,
"confidence": 1,
"status": {
"code": 1001,
"label": "ATRASTS",
"message": "PieprasÄ«jums ir pilnÄ«bÄ apstrÄdÄts."
}
}
}
]
}Ja nav vispÄr nekÄdas informÄcijas keÅ”atmiÅÄ, atbilde bÅ«s "label": "NAV_ATRASTS"
{
"response": [
{
"status": {
"code": 1004,
"label": "NAV_ATRASTS",
"message": "Nebija iespÄjams atrast pieprasÄ«to failu. LÅ«dzu, augÅ”upielÄdÄjiet to."
},
"sha256": "313c0feb009356495b7f4a60e96737120beb30e1912c6d866218cee830aebd91",
"file_type": "",
"file_name": "",
"features": [
"te"
],
"te": {
"trust": 0,
"images": [
{
"report": {
"verdict": "nezinÄms"
},
"status": "nav_atrast",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"score": -2147483648,
"status": {
"code": 1004,
"label": "NAV_ATRASTS",
"message": "Nebija iespÄjams atrast pieprasÄ«to failu. LÅ«dzu, augÅ”upielÄdÄjiet to."
}
}
}
]
}Viens API pieprasÄ«jums var nosÅ«tÄ«t vairÄkas hash summas pÄrbaudei. Atbilde tiks atgriezta tajÄ paÅ”Ä secÄ«bÄ, kÄdÄ tÄs tika nosÅ«tÄ«tas pieprasÄ«jumÄ.
PieprasÄ«juma query piemÄrs ar vairÄkÄm sha256 summÄm
{ "request": [
{
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd81"
},
{
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd82"
}
]
}Atbilde uz pieprasÄ«jumu query ar vairÄkÄm sha256 summÄm
{
"response": [
{
"status": {
"code": 1001,
"label": "ATRASTOTS",
"message": "PieprasÄ«jums ir pÄc iespÄjas pilnÄ«bÄ apmierinÄts."
},
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd81",
"file_type": "dll",
"file_name": "",
"features": [
"te"
],
"te": {
"trust": 10,
"images": [
{
"report": {
"verdict": "ļaunprÄtÄ«gs"
},
"status": "atrodams",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"score": -2147483648,
"combined_verdict": "ļaunprÄtÄ«gs",
"severity": 4,
"confidence": 3,
"status": {
"code": 1001,
"label": "ATRASTOTS",
"message": "PieprasÄ«jums ir pÄc iespÄjas pilnÄ«bÄ apmierinÄts."
}
}
},
{
"status": {
"code": 1004,
"label": "NEATRASTOTS",
"message": "NeizdevÄs atrast pieprasÄ«to failu. LÅ«dzu, augÅ”upielÄdÄjiet to."
},
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd82",
"file_type": "",
"file_name": "",
"features": [
"te"
],
"te": {
"trust": 0,
"images": [
{
"report": {
"verdict": "nezinÄms"
},
"status": "neatrasts",
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"score": -2147483648,
"status": {
"code": 1004,
"label": "NEATRASTOTS",
"message": "NeizdevÄs atrast pieprasÄ«to failu. LÅ«dzu, augÅ”upielÄdÄjiet to."
}
}
}
]
}VairÄku hash summu pieprasīŔana vienlaikus query pieprasÄ«jumÄ arÄ« labvÄlÄ«gi ietekmÄs API servera veiktspÄju.
Download API izsaukums
IzmantojamÄ metode ā POST (saskaÅÄ ar dokumentÄciju), GET arÄ« darbojas (un var Ŕķist loÄ£iskÄks)
Izsaukuma adrese ā https://<service_address>/tecloud/api/v1/file/download?id=<id>
GalvenÄ ir jÄnosÅ«ta API atslÄga, pieprasÄ«juma Ä·ermenis ā tukÅ”s, id tiek nosÅ«tÄ«ts URL adresÄ.
Atbildot uz query pieprasÄ«jumu, ja emulÄcija ir pabeigta un faila augÅ”upielÄdes laikÄ tika pieprasÄ«ti ziÅojumi, bÅ«s redzami id ziÅojumu lejupielÄdÄÅ”anai. Ja tiek pieprasÄ«ts attÄ«rÄ«ts dokuments, tad jÄmeklÄ id attÄ«rÄ«tajam dokumentam.
KopumÄ atbildÄ uz query pieprasÄ«jumu, kas satur id vÄrtÄ«bas lejupielÄdei, var bÅ«t Å”Ädi atslÄgas:
summary_report
full_report
pdf_report
xml_report
extracted_file_download_id
Bez Å”aubÄm, lai atbildÄ uz query pieprasÄ«jumu tiktu saÅemtas Ŕīs atslÄgas, tÄs ir jÄnorÄda pieprasÄ«jumÄ (ziÅojumiem) vai jÄpÄrliecinÄs, ka tiek veikts izsaukums uz extraction funkciju (attÄ«rÄ«tiem dokumentiem)
Quota API izsaukums
IzmantojamÄ metode ā POST
Izsaukuma adrese ā https://<service_address>/tecloud/api/v1/file/quota
AtlikuÅ”Äs kvotas pÄrbaude mÄkoÅos tiek veikta, izmantojot quota pieprasÄ«jumu. PieprasÄ«juma Ä·ermenis ir tukÅ”s.
PiemÄrs atbildei uz quota pieprasÄ«jumu
{
"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
Å is API tika izstrÄdÄts pirms Threat Prevention API un ir paredzÄts tikai lokÄlajiem ierÄ«cÄm. PaÅ”laik tas var bÅ«t noderÄ«gs tikai tad, ja jums ir nepiecieÅ”ams Threat Extraction API. Threat Emulation labÄk izmantot parasto Threat Prevention API. TP API for SG Lai konfigurÄtu API atslÄgu, jÄveic soļi no . Iesaku pievÄrst uzmanÄ«bu 6b. solim un pÄrbaudÄ«t lapas pieejamÄ«bu https:///UserCheck/TPAPI , jo negatÄ«vÄ rezultÄtÄ tÄlÄkÄ konfigurÄcija nav jÄgpilna. Uz Å”o URL tiks nosÅ«tÄ«ti visi API izsaukumi. Izsaukuma veids (upload/query) tiek regulÄts izsaukuma Ä·ermeÅa atslÄgÄ ā request_name. ObligÄti nepiecieÅ”amÄs atslÄgas ir ā api_key (jÄatceras to konfigurÄcijas procesÄ) un protocol_version (paÅ”laik aktuÄlÄ versija ir 1.1). OficiÄlo dokumentÄciju Å”im API varat atrast . AttiecÄ«gajiem ieguvumiem var minÄt iespÄju nosÅ«tÄ«t vairÄkus failus uz simulÄciju, jo faili tiek sÅ«tÄ«ti kÄ base64 teksta virkne. Failu kodÄÅ”anai/dekodÄÅ”anai no base64 var izmantot tieÅ”saistes konvertÄtÄju, piemÄram ā . Praktiskos nolÅ«kos kodÄÅ”anas rakstīŔanas ietvaros vajadzÄtu izmantot iebÅ«vÄtos encode un decode metodus.
Tagad pievÄrsÄ«simies detalizÄtÄk funkcijÄm te un extraction Å”ajÄ API.
Komponentam te ir paredzÄts vÄrdnÄ«ca te_options izsaukumos upload/query, un atslÄgas Å”ajÄ izsaukumÄ pilnÄ«bÄ sakrÄ«t ar atslÄgÄm te .
PiemÄrs pieprasÄ«jumam, lai simulÄtu failu Win10 ar ziÅojumiem
{
"request": [{
"protocol_version": "1.1",
"api_key": "",
"request_name": "UploadFile",
"file_enc_data": "",
"file_orig_name": "",
"te_options": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"reports": ["summary", "xml"]
}
}
]
}Komponentam extraction ir paredzÄts vÄrdnÄ«ca scrub_optionsÅ ajÄ pieprasÄ«jumÄ norÄdÄ«ts tÄ«rīŔanas metode: konvertÄcija PDF, aktÄ«vÄ satura tÄ«rīŔana vai izvÄlÄties režīmu atbilstoÅ”i Threat Prevention profilam (norÄdiet profila nosaukumu). IzŔķiroÅ”a atŔķirÄ«ba API pieprasÄ«juma atbildÄ ar ekstrakciju failam ir tÄ, ka jÅ«s saÅemat tÄ«rÄ«tu kopiju atbildÄ uz Å”o pieprasÄ«jumu kÄ Å”ifrÄtu base64 virkni (jums nav nepiecieÅ”ams veikt query pieprasÄ«jumu un meklÄt id, lai lejupielÄdÄtu dokumentu)
Faila tÄ«rīŔanas pieprasÄ«juma piemÄrs
{
"request": [{
"protocol_version": "1.1",
"api_key": "",
"request_name": "UploadFile",
"file_enc_data": "",
"file_orig_name": "hi.txt",
"scrub_options": {
"scrub_method": 2
}
}]
}Atbilde uz pieprasījumu
{
"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": "IespÄjamu ļaunprÄtÄ«gu satura izvilkÅ”ana",
"protection_type": "Konversija uz PDF",
"real_extension": "txt",
"risk": 0,
"scrub_activity": "TXT fails tika konvertÄts uz PDF",
"scrub_method": "KonvertÄt uz PDF",
"scrub_result": 0,
"scrub_time": "0.011",
"scrubbed_content": ""
}
}]
} Neskatoties uz to, ka, lai iegÅ«tu tÄ«rÄ«tu kopiju, nepiecieÅ”ams mazÄk API pieprasÄ«jumu, es uzskatu, ka Å”Äda iespÄja ir mazÄk vÄlama un Ärta nekÄ form-data pieprasÄ«jums, kas tiek izmantots .
Postman kolekcijas
Es esmu izveidojis kolekcijas Postman gan Threat Prevention API, gan Threat Prevention API for Security Gateway, kur ir sniegti visbiežÄk lietotie API pieprasÄ«jumi. Lai API servera ip/url un atslÄga tiktu automÄtiski ievadÄ«tas pieprasÄ«jumos, kÄ arÄ« sha256 kopsumma pÄc faila augÅ”upielÄdes tiktu atcerÄta, iekÅ”Ä kolekcijÄs ir izveidotas trÄ«s mainÄ«gÄs (tÄs var atrast, pÄrejot uz kolekcijas iestatÄ«jumiem Edit -> Variables): te_api (jÄaizpilda), api_key (jÄaizpilda, izÅemot gadÄ«jumus, kad tiek izmantots TP API ar lokÄlÄm ierÄ«cÄm), sha256 (jÄatstÄj tukÅ”s, TP API for SG netiek izmantots).
IzmantoÅ”anas piemÄri
KopienÄ ir sniegti Python valodÄ rakstÄ«ti skripti, kas pÄrbauda failus no izvÄlÄtÄs direktorijas gan caur , gan . SadarbÄ«bÄ ar Threat Prevention API jÅ«su iespÄjas failu pÄrbaudei ievÄrojami paplaÅ”inÄs, jo tagad varat pÄrbaudÄ«t failus vienlaicÄ«gi vairÄkÄs platformÄs (interesanti ir pÄrbaudÄ«t ar , un pÄc tam Check Point smilÅ”u kastÄ), un failus iegÅ«t ne tikai no tÄ«kla trafika, bet arÄ« Åemt tos no jebkuriem tÄ«kla diskiem un, piemÄram, CRM sistÄmÄm.
Avots: habr.com
