Mijiedarbība ar Check Point SandBlast, izmantojot API

Mijiedarbība ar Check Point SandBlast, izmantojot API

Å 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 Threat Prevention API, kas darbojas gan mākonÄ«, gan vietējās ierÄ«cēs, un funkcionāli tas ir identisks failu pārbaudei web/smtp/ftp/smb/nfs trafika plÅ«smās. Å is raksts ir daļēji autora interpretācija par rakstu kopu no oficiālās dokumentācijas, taču tā ir balstÄ«ta uz manu pieredzi darbā un maniem piemēriem. ArÄ« rakstā jÅ«s atradÄ«siet autora Pastnieka kolekcijas darbam ar draudu novērÅ”anas API.

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Ŕā PārvaldÄ«bas API, taču lauku skaits augÅ”upielādes un vaicājumu pieprasÄ«jumos un Å”o pieprasÄ«jumu struktÅ«ra ir diezgan sarežģīta. Tos var funkcionāli salÄ«dzināt ar draudu novērÅ”anas profiliem vārtejas/smilÅ”kastes droŔības politikā.

Å 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. Threat Prevention API un jāizmanto Threat Prevention API droŔības vārtejai (sÄ«kāk par to runāsim raksta beigās).

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 (SpraudnisActiveX)
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 

 

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:

  1. 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.

  2. 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.

  3. 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.

  4. 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āMijiedarbība ar Check Point SandBlast, izmantojot API

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 sk113599. Iesaku pievērst uzmanÄ«bu 6.b darbÄ«bai un pārbaudÄ«t lapas pieejamÄ«bu https://<IPAddressofSecurityGateway>/UserCheck/TPAPI jo negatÄ«va rezultāta gadÄ«jumā tālākai konfigurācijai nav jēgas. Visi API zvani tiks nosÅ«tÄ«ti uz Å”o URL. Zvana veids (augÅ”upielāde/vaicājums) tiek regulēts zvana pamatteksta taustiņā āˆ’ pieprasÄ«juma_nosaukums. NepiecieÅ”amas arÄ« atslēgas - api_key (jums tas jāatceras konfigurācijas procesā) un protokola_versija (paÅ”reizējā versija ir 1.1). Å Ä«s API oficiālo dokumentāciju varat atrast vietnē sk137032. RelatÄ«vās priekÅ”rocÄ«bas ietver iespēju vienlaikus nosÅ«tÄ«t vairākus failus emulācijai, tos ielādējot, jo faili tiek nosÅ«tÄ«ti kā base64 teksta virkne. Lai kodētu/atkodētu failus uz/no base64, programmā Postman varat izmantot tieÅ”saistes pārveidotāju demonstrācijas nolÅ«kos, piemēram, https://base64.guru. Praktiskiem nolÅ«kiem, rakstot kodu, jāizmanto iebÅ«vētās kodÄ“Å”anas un atÅ”ifrÄ“Å”anas metodes.

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 Threat Prevention API.

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 Threat Prevention API.

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).

Lejupielādējiet Pastnieka kolekciju draudu novērÅ”anas API

Lejupielādējiet Postman kolekciju droŔības vārtejas API draudu novērÅ”anai

LietoÅ”anas piemēri

SabiedrÄ«bā Pārbaudiet biedrus tiek parādÄ«ti Python rakstÄ«tie skripti, kas pārbauda failus no vēlamā direktorija, izmantojot TP APIUn TP API SG. Pateicoties mijiedarbÄ«bai ar draudu novērÅ”anas API, jÅ«su iespēja skenēt failus ir ievērojami paplaÅ”ināta, jo tagad varat skenēt failus vairākās platformās vienlaikus (reÄ£istrÄ“Å”anās VirusTotal API, un pēc tam Check Point smilÅ”u kastē) un saņemt failus ne tikai no tÄ«kla trafika, bet arÄ« ņemt tos no jebkuriem tÄ«kla diskdziņiem un, piemēram, CRM sistēmām.

Avots: www.habr.com

Pievieno komentāru