Å is raksts bÅ«s noderÄ«gs tiem, kas pÄrzina tehnoloÄ£ijas Check Point ar faila emulÄciju (Draudu emulÄcija) un proaktÄ«va failu tÄ«rÄ«Å”ana (Draudu ekstrakcija) un vÄlas spert soli Å”o uzdevumu automatizÄÅ”anas virzienÄ. Check Point ir
Pamata saÄ«sinÄjumi
Draudu novÄrÅ”anas API darbojas ar trim galvenajiem komponentiem, kas API tiek izsaukti, izmantojot Å”Ädas teksta vÄrtÄ«bas:
av ā PretvÄ«rusu komponents, kas atbild par zinÄmo apdraudÄjumu parakstu analÄ«zi.
te - Draudu emulÄcijas komponents, kas atbild par failu pÄrbaudi smilÅ”kastÄ un ļaunprÄtÄ«ga/labdabÄ«ga sprieduma pieÅemÅ”anu pÄc emulÄcijas.
ieguve - Draudu ekstrakcijas komponents, kas atbild par biroja dokumentu Ätru pÄrveidoÅ”anu droÅ”Ä formÄ (kurÄ tiek noÅemts viss potenciÄli ļaunprÄtÄ«gais saturs), lai tos Ätri piegÄdÄtu lietotÄjiem/sistÄmÄm.
API struktūra un galvenie ierobežojumi
Threat Prevention API izmanto tikai 4 pieprasÄ«jumus ā augÅ”upielÄde, vaicÄjums, lejupielÄde un kvota. Visu Äetru pieprasÄ«jumu galvenÄ ir jÄnodod API atslÄga, izmantojot parametru atļauja. No pirmÄ acu uzmetiena struktÅ«ra var Ŕķist daudz vienkÄrÅ”Äka nekÄ iekÅ”Ä
Å obrÄ«d ir izlaista vienÄ«gÄ draudu novÄrÅ”anas API versija ā 1.0; API izsaukumu vietrÄdÄ« URL ir jÄiekļauj v1 daļÄ, kurÄ jÄnorÄda versija. AtŔķirÄ«bÄ no pÄrvaldÄ«bas API, URL ir jÄnorÄda API versija, pretÄjÄ gadÄ«jumÄ pieprasÄ«jums netiks izpildÄ«ts.
PretvÄ«rusu komponents, kad tas tiek izsaukts bez citiem komponentiem (te, izvilkÅ”ana), paÅ”laik atbalsta tikai vaicÄjumu pieprasÄ«jumus ar md5 hash summÄm. Draudi emulÄcija un draudu ekstrakcija atbalsta arÄ« sha1 un sha256 jaucÄjsummas.
Ir ļoti svarÄ«gi nepieļaut kļūdas vaicÄjumos! PieprasÄ«jumu var izpildÄ«t bez kļūdÄm, bet ne pilnÄ«bÄ. Nedaudz skatoties uz priekÅ”u, apskatÄ«sim, kas var notikt, ja vaicÄjumos ir kļūdas/drukas kļūdas.
PieprasÄ«t ar drukas kļūdu ar vÄrdu 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 par atskaitÄm informÄcijas nebÅ«s vispÄr
{
"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."
}
}
}
]
}
Bet par pieprasÄ«jumu bez drukas kļūdas atskaites atslÄgÄ
{ "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 ietverts atskaiÅ”u lejupielÄdes ID
{
"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."
}
}
}
]
}
Ja nosÅ«tÄ«sim nepareizu/beidzies API atslÄgu, atbildÄ saÅemsim kļūdu 403.
SandBlast API: mÄkonÄ« un vietÄjÄs ierÄ«cÄs
API pieprasÄ«jumus var nosÅ«tÄ«t uz Check Point ierÄ«cÄm, kurÄs ir iespÄjots draudu emulÄcijas komponents (asmens). KÄ pieprasÄ«jumu adrese ir jÄizmanto ierÄ«ces ip/url un ports 18194 (piemÄram, https://10.10.57.19:18194/tecloud/api/v1/file/query). Jums arÄ« jÄpÄrliecinÄs, vai ierÄ«ces droŔības politika atļauj Å”Ädu savienojumu. AutorizÄcija, izmantojot API atslÄgu vietÄjÄs ierÄ«cÄs pÄc noklusÄjuma izslÄgts un autorizÄcijas atslÄga pieprasÄ«jumu galvenÄs var netikt nosÅ«tÄ«ta vispÄr.
API pieprasÄ«jumi CheckPoint mÄkonim jÄnosÅ«ta uz te.checkpoint.com (piemÄram, https://te.checkpoint.com/tecloud/api/v1/file/query). API atslÄgu var iegÅ«t kÄ izmÄÄ£inÄjuma licenci uz 60 dienÄm, sazinoties ar Check Point partneriem vai uzÅÄmuma vietÄjo biroju.
VietÄjÄs ierÄ«cÄs draudu ekstrakcija vÄl netiek atbalstÄ«ta kÄ standarts.
VietÄjÄs ierÄ«ces neatbalsta kvotas pieprasÄ«jumu.
PretÄjÄ gadÄ«jumÄ pieprasÄ«jumi vietÄjÄm ierÄ«cÄm un mÄkoni neatŔķiras.
AugÅ”upielÄdÄjiet API zvanu
IzmantotÄ metode ā POST
Zvana adrese - https:///tecloud/api/v1/file/upload
PieprasÄ«jums sastÄv no divÄm daļÄm (form-data): faila, kas paredzÄts emulÄcijai/tÄ«rÄ«Å”anai, un pieprasÄ«juma pamatteksta ar tekstu.
Teksta pieprasÄ«jums nevar bÅ«t tukÅ”s, taÄu tajÄ nedrÄ«kst bÅ«t konfigurÄcijas. Lai pieprasÄ«jums bÅ«tu veiksmÄ«gs, pieprasÄ«jumÄ jÄnosÅ«ta vismaz Å”Äds teksts:
MinimÄlais, kas nepiecieÅ”ams augÅ”upielÄdes pieprasÄ«jumam
HTTP POST
https:///tecloud/api/v1/file/upload
Galvenes:
AutorizÄcija:
Ķermenis
{
"pieprasījums": {
}
}
fileja
fileja
Å ajÄ gadÄ«jumÄ fails tiks apstrÄdÄts saskaÅÄ ar noklusÄjuma parametriem: komponents - te, OS attÄli - Win XP un Win 7, neÄ£enerÄjot atskaiti.
KomentÄri par galvenajiem teksta pieprasÄ«juma laukiem:
faila nosaukums Šø faila_tips Varat atstÄt tos tukÅ”us vai nesÅ«tÄ«t tos vispÄr, jo tÄ nav Ä«paÅ”i noderÄ«ga informÄcija, augÅ”upielÄdÄjot failu. API atbildÄ Å”ie lauki tiks aizpildÄ«ti automÄtiski, pamatojoties uz lejupielÄdÄtÄ faila nosaukumu, un informÄcija keÅ”atmiÅÄ joprojÄm bÅ«s jÄmeklÄ, izmantojot md5/sha1/sha256 hash summas.
PieprasÄ«juma piemÄrs ar tukÅ”u file_name un file_type
{
"request": {
"file_name": "",
"file_type": "",
}
}
funkcijas ā saraksts, kas norÄda nepiecieÅ”amo funkcionalitÄti, apstrÄdÄjot smilÅ”kastÄ - av (Anti-Virus), te (Threat Emulation), ekstrakcija (Threat Extraction). Ja Å”is parametrs netiek nodots vispÄr, tad tiks izmantots tikai noklusÄjuma komponents - te (Threat Emulation).
Lai iespÄjotu trÄ«s pieejamo komponentu reÄ£istrÄÅ”anu, Å”ie komponenti ir jÄnorÄda API pieprasÄ«jumÄ.
PieprasÄ«juma piemÄrs ar av, te un ekstrakcijas pÄrbaudi
{ "request": [
{
"sha256": {{sha256}},
"features": ["av", "te", "extraction"]
}
]
}
TaustiÅi te sadaļÄ
attÄlus ā saraksts, kurÄ ir vÄrdnÄ«cas ar to operÄtÄjsistÄmu ID un versijas numuriem, kurÄs tiks veikta pÄrbaude. ID un versiju numuri ir vienÄdi visÄm vietÄjÄm ierÄ«cÄm un mÄkonÄ«.
OperÄtÄjsistÄmu un versiju saraksts
Pieejamais OS attÄla ID
Revīzija
AttÄlu operÄtÄjsistÄma un lietojumprogramma
e50e99f3-5963-4573-af9e-e3f4750b55e2
1
Microsoft Windows: XP ā 32 bitu SP3
Office: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash Player 9r115 un ActiveX 10.0
Java izpildlaiks: 1.6.0u22
7e6fe36e-889e-4c25-8704-56378f0830df
1
Microsoft Windows: 7ā32 biti
Office: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash atskaÅotÄjs: 10.2r152 (Spraudnis& ActiveX)
Java izpildlaiks: 1.6.0u0
8d188031-1010-4466-828b-0cd13d4303ff
1
Microsoft Windows: 7ā32 biti
Office: 2010
Adobe Acrobat Reader: 9.4
Flash atskaÅotÄjs: 11.0.1.152 (Spraudnis & ActiveX)
Java izpildlaiks: 1.7.0u0
5e5de275-a103-4f67-b55b-47532918fa59
1
Microsoft Windows: 7ā32 biti
Office: 2013
Adobe Acrobat Reader: 11.0
Flash atskaÅotÄjs: 15 (Spraudnis & ActiveX)
Java izpildlaiks: 1.7.0u9
3ff3ddae-e7fd-4969-818c-d5f1a2be336d
1
Microsoft Windows: 7ā64 biti
Office: 2013 (32 biti)
Adobe Acrobat Reader: 11.0.01
Flash atskaÅotÄjs: 13 (Spraudnis & ActiveX)
Java izpildlaiks: 1.7.0u9
6c453c9b-20f7-471a-956c-3198a868dc92
1
Microsoft Windows: 8.1ā64 biti
Office: 2013 (64 biti)
Adobe Acrobat Reader: 11.0.10
Flash atskaÅotÄjs: 18.0.0.160 (Spraudnis & ActiveX)
Java izpildlaiks: 1.7.0u9
10b4a9c6-e414-425c-ae8b-fe4dd7b25244
1
Microsoft Windows: 10
Office: Professional Plus 2016 lv
Adobe Acrobat Reader: DC 2015 MUI
Flash atskaÅotÄjs: 20 (Spraudnis & ActiveX)
Java izpildlaiks: 1.7.0u9
Ja attÄlu atslÄga vispÄr nav norÄdÄ«ta, tad emulÄcija notiks Check Point ieteiktajos attÄlos (Å”obrÄ«d Win XP un Win 7). Å ie attÄli ir ieteicami, pamatojoties uz vislabÄko veiktspÄjas un uztverÅ”anas Ätruma lÄ«dzsvaru.
ziÅojumi ā to ziÅojumu saraksts, kurus pieprasÄm gadÄ«jumÄ, ja fails izrÄdÄs ļaunprÄtÄ«gs. Ir pieejamas Å”Ädas opcijas:
-
kopsavilkums - .tar.gz arhÄ«vs, kurÄ ir pÄrskats par emulÄciju viss pieprasÄ«tie attÄli (gan HTML lapa, gan komponenti, piemÄram, video no emulatora OS, tÄ«kla trafika dump, ziÅojums json formÄtÄ un pats paraugs ar paroli aizsargÄtÄ arhÄ«vÄ). MÄs meklÄjam atbildes atslÄgu - kopsavilkuma_pÄrskats vÄlÄkai pÄrskata lejupielÄdei.
-
pdf - dokuments par emulÄciju iekÅ”Ä vienu attÄlu, ko daudzi ir pieraduÅ”i saÅemt caur Smart Console. MÄs meklÄjam atbildes atslÄgu - pdf_report vÄlÄkai pÄrskata lejupielÄdei.
-
xml - dokuments par emulÄciju iekÅ”Ä vienu attÄls, Ärts turpmÄkai parametru parsÄÅ”anai atskaitÄ. MÄs meklÄjam atbildes atslÄgu - xml_report vÄlÄkai pÄrskata lejupielÄdei.
-
darva - .tar.gz arhÄ«vs, kurÄ ir pÄrskats par emulÄciju vienu pieprasÄ«tie attÄli (gan HTML lapa, gan komponenti, piemÄram, video no emulatora OS, tÄ«kla trafika dump, ziÅojums json formÄtÄ un pats paraugs ar paroli aizsargÄtÄ arhÄ«vÄ). MÄs meklÄjam atbildes atslÄgu - pilns_pÄrskats vÄlÄkai pÄrskata lejupielÄdei.
Kas atrodas kopsavilkuma ziÅojumÄ
AtslÄgas full_report, pdf_report, xml_report ir katras OS vÄrdnÄ«cÄ.
{
"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."
}
}
}
]
}
Bet summary_report atslÄga - vispÄr tÄda ir emulÄcijai
{
"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."
}
}
}
]
}
JÅ«s varat pieprasÄ«t tar un xml un pdf atskaites vienlaikus, varat pieprasÄ«t kopsavilkumu un tar un xml. Kopsavilkuma atskaiti un pdf nebÅ«s iespÄjams pieprasÄ«t vienlaikus.
AtslÄgas ekstrakcijas sadaļÄ
Draudi iegÅ«Å”anai tiek izmantotas tikai divas atslÄgas:
metode ā pdf (konvertÄt uz pdf, tiek izmantots pÄc noklusÄjuma) vai tÄ«rs (aktÄ«vÄ satura tÄ«rÄ«Å”ana).
Extracted_parts_codes - kodu saraksts aktÄ«vÄ satura noÅemÅ”anai, kas attiecas tikai uz tÄ«ro metodi
Kodi satura noÅemÅ”anai no failiem
kods
Apraksts
1025
Saistītie objekti
1026
Makro un kods
1034
Sensitīvas hipersaites
1137
PDF GoToR darbības
1139
PDF palaiŔanas darbības
1141
PDF URI darbības
1142
PDF skaÅas darbÄ«bas
1143
PDF filmu darbības
1150
PDF JavaScript darbības
1151
PDF iesniegŔanas veidlapas darbības
1018
VaicÄjumi datu bÄzÄ
1019
Iegultie objekti
1021
Ätra datu saglabÄÅ”ana
1017
PielÄgoti rekvizÄ«ti
1036
Statistikas īpaŔības
1037
Kopsavilkuma īpaŔības
Lai lejupielÄdÄtu notÄ«rÄ«tu kopiju, pÄc dažÄm sekundÄm bÅ«s jÄveic arÄ« vaicÄjuma pieprasÄ«jums (par to tiks runÄts tÄlÄk), pieprasÄ«juma tekstÄ norÄdot faila jaukÅ”anas apjomu un izvilkÅ”anas komponentu. JÅ«s varat paÅemt notÄ«rÄ«to failu, izmantojot id no atbildes uz vaicÄjumu - extracted_file_download_id. VÄlreiz, nedaudz skatoties uz priekÅ”u, es sniedzu piemÄrus pieprasÄ«jumam un vaicÄjuma atbildei, lai meklÄtu id, lai lejupielÄdÄtu notÄ«rÄ«tu dokumentu.
VaicÄjuma pieprasÄ«jums, lai meklÄtu atslÄgu extracted_file_download_id
{ "request": [
{
"sha256": "9a346005ee8c9adb489072eb8b5b61699652962c17596de9c326ca68247a8876",
"features": ["extraction"] ,
"extraction": {
"method": "pdf"
}
}
]
}
Atbilde uz vaicÄjumu (meklÄjiet atslÄgu extracted_file_download_id)
{
"response": [
{
"status": {
"code": 1001,
"label": "FOUND",
"message": "The request has been fully answered."
},
"sha256": "9a346005ee8c9adb489072eb8b5b61699652962c17596de9c326ca68247a8876",
"file_type": "",
"file_name": "",
"features": [
"extraction"
],
"extraction": {
"method": "pdf",
"extract_result": "CP_EXTRACT_RESULT_SUCCESS",
"extracted_file_download_id": "b5f2b34e-3603-4627-9e0e-54665a531ab2",
"output_file_name": "kp-20-xls.cleaned.xls.pdf",
"time": "0.013",
"extract_content": "Macros and Code",
"extraction_data": {
"input_extension": "xls",
"input_real_extension": "xls",
"message": "OK",
"output_file_name": "kp-20-xls.cleaned.xls.pdf",
"protection_name": "Potential malicious content extracted",
"protection_type": "Conversion to PDF",
"protocol_version": "1.0",
"risk": 5.0,
"scrub_activity": "Active content was found - XLS file was converted to PDF",
"scrub_method": "Convert to PDF",
"scrub_result": 0.0,
"scrub_time": "0.013",
"scrubbed_content": "Macros and Code"
},
"tex_product": false,
"status": {
"code": 1001,
"label": "FOUND",
"message": "The request has been fully answered."
}
}
}
]
}
PÄrskats
VienÄ API izsaukumÄ verifikÄcijai varat nosÅ«tÄ«t tikai vienu failu.
Av komponentam nav nepiecieÅ”ama papildu sadaļa ar taustiÅiem, pietiek ar to norÄdÄ«t vÄrdnÄ«cÄ funkcijas.
VaicÄjuma API izsaukums
IzmantotÄ metode ā POST
Zvana adrese - https:///tecloud/api/v1/file/query
Pirms faila nosÅ«tÄ«Å”anas lejupielÄdei (augÅ”upielÄdes pieprasÄ«jums), ieteicams pÄrbaudÄ«t smilÅ”kastes keÅ”atmiÅu (vaicÄjuma pieprasÄ«jumu), lai optimizÄtu API servera slodzi, jo API serverim jau var bÅ«t informÄcija un spriedums par lejupielÄdÄto failu. Zvans sastÄv tikai no teksta daļas. NepiecieÅ”amÄ pieprasÄ«juma daļa ir faila sha1/sha256/md5 hash apjoms. Starp citu, to var iegÅ«t atbildÄ uz augÅ”upielÄdes pieprasÄ«jumu.
VaicÄjumam nepiecieÅ”amais minimums
HTTP POST
https:///tecloud/api/v1/file/query
Galvenes:
AutorizÄcija:
Ķermenis
{
"pieprasījums": {
"sha256":
}
}
PiemÄrs atbildei uz augÅ”upielÄdes pieprasÄ«jumu, kur ir redzamas sha1/md5/sha256 jaucÄjsummas
{
"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."
}
}
}
}
VaicÄjuma pieprasÄ«jumam papildus jaukÅ”anas apjomam ideÄlÄ gadÄ«jumÄ vajadzÄtu bÅ«t tÄdam paÅ”am, kÄds bija (vai tiek plÄnots) augÅ”upielÄdes pieprasÄ«jumam, vai pat ājauā (vaicÄjuma pieprasÄ«jumÄ ir mazÄk lauku nekÄ augÅ”upielÄdes pieprasÄ«jumÄ). GadÄ«jumÄ, ja vaicÄjuma pieprasÄ«jumÄ ir vairÄk lauku, nekÄ bija augÅ”upielÄdes pieprasÄ«jumÄ, jÅ«s nesaÅemsiet visu nepiecieÅ”amo informÄciju atbildÄ.
Å eit ir piemÄrs atbildei uz vaicÄjumu, kurÄ netika atrasti visi nepiecieÅ”amie dati
{
"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."
}
}
}
]
}
PievÄrsiet uzmanÄ«bu laukiem kods Šø etiÄ·ete. Å ie lauki statusa vÄrdnÄ«cÄs parÄdÄs trÄ«s reizes. Vispirms mÄs redzam globÄlÄs atslÄgas ākodsā: 1006 un āetiÄ·eteā: āPARTIALLY_FOUNDā. TÄlÄk Ŕīs atslÄgas tiek atrastas katram atseviŔķam komponentam, kuru mÄs pieprasÄ«jÄm - te un ieguvei. Un, ja priekÅ” te ir skaidrs, ka dati ir atrasti, tad ieguvei informÄcijas nav.
Å Ädi izskatÄ«jÄs vaicÄjums iepriekÅ” minÄtajÄ piemÄrÄ
{ "request": [
{
"sha256": {{sha256}},
"features": ["te", "extraction"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"reports": [
"xml", "pdf"
]
}
}
]
}
Ja nosÅ«tÄt vaicÄjuma pieprasÄ«jumu bez ekstrakcijas komponenta
{ "request": [
{
"sha256": {{sha256}},
"features": ["te"] ,
"te": {
"images": [
{
"id": "10b4a9c6-e414-425c-ae8b-fe4dd7b25244",
"revision": 1
}
],
"reports": [
"xml", "pdf"
]
}
}
]
}
Tad atbilde saturÄs pilnÄ«gu informÄciju (ākodsā: 1001, āetiÄ·eteā: āATRASTā)
{
"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."
}
}
}
]
}
Ja keÅ”atmiÅÄ informÄcijas vispÄr nav, atbilde bÅ«s āiezÄ«meā: ā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."
}
}
}
]
}
VienÄ API izsaukumÄ verifikÄcijai varat nosÅ«tÄ«t vairÄkas jaukÅ”anas summas vienlaikus. AtbildÄ tiks atgriezti dati tÄdÄ paÅ”Ä secÄ«bÄ, kÄdÄ tie tika nosÅ«tÄ«ti pieprasÄ«jumÄ.
VaicÄjuma pieprasÄ«juma piemÄrs ar vairÄkÄm sha256 summÄm
{ "request": [
{
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd81"
},
{
"sha256": "b84531d3829bf6131655773a3863d6b16f6389b7f4036aef9b81c0cb60e7fd82"
}
]
}
Atbilde uz vaicÄjumu ar vairÄkÄm sha256 summÄm
{
"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."
}
}
}
]
}
VairÄku jaucÄjsummu pieprasÄ«Å”ana vienlaikus vaicÄjuma pieprasÄ«jumÄ labvÄlÄ«gi ietekmÄs arÄ« API servera veiktspÄju.
LejupielÄdÄt API zvanu
IzmantotÄ metode ā POST (saskaÅÄ ar dokumentÄciju), GET arÄ« darbojas (un var Ŕķist loÄ£iskÄk)
Zvana adrese - https:///tecloud/api/v1/file/download?id=
Galvenei ir jÄnodod API atslÄga, pieprasÄ«juma pamatteksts ir tukÅ”s, lejupielÄdes ID tiek nodots URL adresÄ.
Atbildot uz vaicÄjuma pieprasÄ«jumu, ja emulÄcija ir pabeigta un, lejupielÄdÄjot failu, tika pieprasÄ«tas atskaites, bÅ«s redzams atskaiÅ”u lejupielÄdes ID. Ja tiek pieprasÄ«ta notÄ«rÄ«ta kopija, jums jÄmeklÄ ID, lai lejupielÄdÄtu notÄ«rÄ«to dokumentu.
KopumÄ atslÄgas atbildÄ uz vaicÄjumu, kas satur ielÄdes id vÄrtÄ«bu, var bÅ«t:
-
kopsavilkuma_pÄrskats
-
pilns_pÄrskats
-
pdf_report
-
xml_report
-
Extracted_file_download_id
Protams, lai saÅemtu Ŕīs atslÄgas, atbildot uz vaicÄjuma pieprasÄ«jumu, tÄs ir jÄnorÄda pieprasÄ«jumÄ (atskaitÄm) vai jÄatceras veikt pieprasÄ«jumu, izmantojot izvilkÅ”anas funkciju (notÄ«rÄ«tiem dokumentiem)
Kvotas API izsaukums
IzmantotÄ metode ā POST
Zvana adrese - https:///tecloud/api/v1/file/quota
Lai pÄrbaudÄ«tu atlikuÅ”o kvotu mÄkonÄ«, izmantojiet kvotas vaicÄjumu. PieprasÄ«juma pamatteksts ir tukÅ”s.
Atbildes piemÄrs uz kvotas 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 droŔības vÄrtejai
Å Ä« API tika izstrÄdÄta pirms draudu novÄrÅ”anas API, un tÄ ir paredzÄta tikai vietÄjÄm ierÄ«cÄm. PagaidÄm tas var bÅ«t noderÄ«gs tikai tad, ja jums ir nepiecieÅ”ama draudu ekstrakcijas API. Draudu emulÄcijai labÄk izmantot parasto draudu novÄrÅ”anas API. IeslÄgt TP API SG un konfigurÄjiet API atslÄgu, kas jÄveic, lai veiktu darbÄ«bas
Tagad sÄ«kÄk aplÅ«kosim funkcijas te Šø ieguve Å”ajÄ API.
Komponentam te nodroÅ”inÄta vÄrdnÄ«ca te_options augÅ”upielÄdes/vaicÄjuma pieprasÄ«jumos, un atslÄgas Å”ajÄ pieprasÄ«jumÄ pilnÄ«bÄ sakrÄ«t ar ievadÄ«tajÄm atslÄgÄm
PieprasÄ«juma piemÄrs failu emulÄcijai operÄtÄjsistÄmÄ Win10 ar atskaitÄm
{
"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"]
}
}
]
}
Komponentam ieguve nodroÅ”inÄta vÄrdnÄ«ca scrub_options. Å is pieprasÄ«jums norÄda tÄ«rÄ«Å”anas metodi: konvertÄt uz PDF, notÄ«rÄ«t aktÄ«vo saturu vai atlasÄ«t režīmu saskaÅÄ ar draudu novÄrÅ”anas profilu (tiek norÄdÄ«ts profila nosaukums). LieliskÄ lieta, atbildot uz faila ekstrakcijas API pieprasÄ«jumu, ir tÄda, ka atbildÄ uz Å”o pieprasÄ«jumu saÅemat notÄ«rÄ«tu kopiju kÄ base64 Å”ifrÄtu virkni (jums nav jÄiesniedz vaicÄjuma pieprasÄ«jums un jÄmeklÄ ID, lai lejupielÄdÄtu dokuments)
PieprasÄ«juma notÄ«rÄ«t failu piemÄrs
{
"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
}
}]
}
AtbildÄt uz pieprasÄ«jumu
{
"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": ""
}
}]
}
Neskatoties uz to, ka ir nepiecieÅ”ams mazÄk API pieprasÄ«jumu, lai iegÅ«tu notÄ«rÄ«tu kopiju, Ŕī opcija man Ŕķiet mazÄk ieteicama un Ärta nekÄ veidlapas datu pieprasÄ«jums, ko izmanto
Pastnieku kolekcijas
Es pakalpojumÄ Postman izveidoju kolekcijas gan Threat Prevention API, gan Threat Prevention API for Security Gateway, kas atspoguļo visbiežÄk sastopamos API pieprasÄ«jumus. Lai servera ip/url API un atslÄga tiktu automÄtiski aizstÄti pieprasÄ«jumos un sha256 hash apjoms tiktu atcerÄties pÄc faila lejupielÄdes, kolekcijÄs ir izveidoti trÄ«s mainÄ«gie (tos var atrast, atverot kolekcijas iestatÄ«jumus RediÄ£Ät -> MainÄ«gie): te_api (obligÄti), api_key (jÄaizpilda, izÅemot gadÄ«jumus, kad tiek izmantots TP API ar vietÄjÄm ierÄ«cÄm), sha256 (atstÄjiet tukÅ”u, netiek izmantots SG TP API).
LietoÅ”anas piemÄri
SabiedrÄ«bÄ
Avots: www.habr.com