Փոխազդեցություն Check Point SandBlast-ի հետ API-ի միջոցով

Փոխազդեցություն Check Point SandBlast-ի հետ API-ի միջոցով

Այս հոդվածը օգտակար կլինի նրանց, ովքեր ծանոթ են տեխնոլոգիային Check Point ֆայլի էմուլյացիայի միջոցով (Սպառնալիքների էմուլյացիա) և ֆայլերի ակտիվ մաքրում (Վտանգների արդյունահանում) և ցանկանում է քայլ կատարել այս առաջադրանքների ավտոմատացման ուղղությամբ: Check Point-ն ունի Threat Prevention API, որն աշխատում է ինչպես ամպի, այնպես էլ տեղական սարքերի վրա, և ֆունկցիոնալ առումով այն նույնական է վեբ/smtp/ftp/smb/nfs տրաֆիկի հոսքերում ֆայլերը ստուգելուն. Այս հոդվածը մասամբ հեղինակի մեկնաբանությունն է պաշտոնական փաստաթղթերից մի շարք հոդվածների, բայց հիմնված իմ սեփական աշխատանքային փորձի և իմ սեփական օրինակների վրա: Նաև հոդվածում կգտնեք հեղինակի փոստատարի հավաքածուները՝ Threat Prevention API-ի հետ աշխատելու համար:

Հիմնական հապավումներ

The Threat Prevention API-ն աշխատում է երեք հիմնական բաղադրիչներով, որոնք API-ում կանչվում են հետևյալ տեքստային արժեքների միջոցով.

av — Հակավիրուսային բաղադրիչ, որը պատասխանատու է հայտնի սպառնալիքների ստորագրության վերլուծության համար:

te - Threat Emulation բաղադրիչը, որը պատասխանատու է ավազատուփում ֆայլերը ստուգելու և էմուլյացիայից հետո վնասակար/բարենպաստ դատավճիռ կայացնելու համար:

արդյունահանում - Վտանգների արդյունահանման բաղադրիչ, որը պատասխանատու է գրասենյակային փաստաթղթերի արագ փոխակերպման համար (որում բոլոր հնարավոր վնասակար բովանդակությունը հեռացվում է), որպեսզի դրանք արագ փոխանցվեն օգտատերերին/համակարգերին:

API կառուցվածքը և հիմնական սահմանափակումները

Threat Prevention API-ն օգտագործում է ընդամենը 4 հարցում վերբեռնում, հարցում, ներբեռնում և քվոտա. Բոլոր չորս հարցումների վերնագրում դուք պետք է փոխանցեք API ստեղնը՝ օգտագործելով պարամետրը լիազորություն. Առաջին հայացքից կառուցվածքը կարող է թվալ շատ ավելի պարզ, քան ներսում Կառավարման API, բայց վերբեռնման և հարցումների հարցումների դաշտերի քանակը և այդ հարցումների կառուցվածքը բավականին բարդ են: Դրանք կարող են ֆունկցիոնալորեն համեմատվել վտանգի կանխարգելման պրոֆիլների հետ դարպասի/ավազի անվտանգության քաղաքականության մեջ:

Այս պահին թողարկվել է Threat Prevention API-ի միակ տարբերակը՝ 1.0; API զանգերի URL-ը պետք է ներառի v1 այն մասում, որտեղ դուք պետք է նշեք տարբերակը: Ի տարբերություն կառավարման API-ի, URL-ում անհրաժեշտ է նշել API-ի տարբերակը, հակառակ դեպքում հարցումը չի կատարվի։

Հակավիրուսային բաղադրիչը, երբ կանչվում է առանց այլ բաղադրիչների (te, արդյունահանում), ներկայումս միայն աջակցում է հարցումների հարցումները md5 հեշ գումարներով: Threat Emulation-ը և Threat Extraction-ը նաև աջակցում են sha1 և sha256 հեշ գումարները:

Շատ կարևոր է չսխալվել հարցումներում։ Հարցումը կարող է կատարվել առանց սխալի, բայց ոչ ամբողջությամբ: Մի փոքր առաջ նայելով, եկեք տեսնենք, թե ինչ կարող է լինել, երբ հարցումներում սխալներ/տառասխալներ կան:

Տառասխալով հարցում՝ հաշվետվություններ բառով (հաշվետվություններ)

{ "request":  [  

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

Պատասխանի մեջ սխալ չի լինի, բայց հաշվետվությունների մասին ընդհանրապես տեղեկություն չի լինի

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

Բայց առանց տառասխալի խնդրանքի հաշվետվությունների բանալի

{ "request":  [  

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

Մենք ստանում ենք պատասխան, որն արդեն պարունակում է հաշվետվություններ ներբեռնելու 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."
        }
      }
    }
  ]
}

Եթե ​​մենք ուղարկենք սխալ/ժամկետանց API բանալի, մենք պատասխան կստանանք 403 սխալ:

SandBlast API՝ ամպի մեջ և տեղական սարքերում

API հարցումները կարող են ուղարկվել Check Point սարքերին, որոնցում միացված է Threat Emulation բաղադրիչը (blade): Որպես հարցումների հասցե, դուք պետք է օգտագործեք սարքի ip/url և 18194 պորտը (օրինակ՝ https://10.10.57.19:18194/tecloud/api/v1/file/query): Դուք նաև պետք է համոզվեք, որ սարքի անվտանգության քաղաքականությունը թույլ է տալիս նման միացում: Թույլտվություն API բանալիի միջոցով տեղական սարքերում լռելյայնորեն անջատված է և հարցումների վերնագրերում Թույլտվության բանալին կարող է ընդհանրապես չուղարկվել:

API հարցումները CheckPoint ամպին պետք է ուղարկվեն te.checkpoint.com (օրինակ - https://te.checkpoint.com/tecloud/api/v1/file/query): API-ի բանալին կարելի է ձեռք բերել որպես փորձնական լիցենզիա 60 օրվա ընթացքում՝ կապվելով Check Point-ի գործընկերների հետ կամ ընկերության տեղական գրասենյակի հետ:

Տեղական սարքերում Threat Extraction-ը դեռ չի աջակցվում որպես ստանդարտ: Threat Prevention API և պետք է օգտագործվի Threat Prevention API for Security Gateway (այդ մասին ավելի մանրամասն կխոսենք հոդվածի վերջում):

Տեղական սարքերը չեն աջակցում քվոտայի հարցումը:

Հակառակ դեպքում, տեղական սարքերի և ամպի հարցումների միջև տարբերություններ չկան:

Վերբեռնեք API զանգ

Օգտագործված մեթոդ - POST

Զանգի հասցե - https:///tecloud/api/v1/file/upload

Հարցումը բաղկացած է երկու մասից (ձև-տվյալներ)՝ էմուլյացիայի/մաքրման համար նախատեսված ֆայլ և տեքստով հարցման մարմին։

Տեքստային հարցումը չի կարող դատարկ լինել, բայց այն չի կարող պարունակել որևէ կոնֆիգուրացիա: Որպեսզի հարցումը հաջող լինի, դուք պետք է խնդրանքի մեջ ուղարկեք առնվազն հետևյալ տեքստը.

Վերբեռնման հայտի համար պահանջվող նվազագույնը

HTTP POST

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

Վերնագրեր:

Հեղինակ `

Մարմին

{

"խնդրանք": {

}

}

Ֆայլ

Ֆայլ

Այս դեպքում ֆայլը կմշակվի լռելյայն պարամետրերի համաձայն. բաղադրիչ - te, ՕՀ պատկերներ - Win XP և Win 7, առանց հաշվետվություն ստեղծելու։

Մեկնաբանություններ տեքստային հարցման հիմնական դաշտերի վերաբերյալ.

ֆայլի_անուն и file_type Դուք կարող եք դրանք դատարկ թողնել կամ ընդհանրապես չուղարկել, քանի որ սա առանձնապես օգտակար տեղեկատվություն չէ ֆայլ վերբեռնելիս: API-ի պատասխանում այս դաշտերը կլրացվեն ավտոմատ կերպով՝ հիմնվելով ներբեռնված ֆայլի անվան վրա, և քեշի տեղեկատվությունը դեռ պետք է որոնվի՝ օգտագործելով md5/sha1/sha256 հեշ գումարները:

Հարցման օրինակ դատարկ file_name-ով և file_type-ով

{

"request": {

"file_name": "",

"file_type": "",

}

}

Հատկություններ — ցուցակ, որը ցույց է տալիս անհրաժեշտ ֆունկցիոնալությունը ավազատուփում մշակելիս՝ av (Anti-virus), te (Threat Emulation), արդյունահանում (Threat Extraction): Եթե ​​այս պարամետրն ընդհանրապես չի փոխանցվում, ապա կօգտագործվի միայն լռելյայն բաղադրիչը՝ te (Threat Emulation):

Երեք հասանելի բաղադրիչների ստուգումն ակտիվացնելու համար դուք պետք է նշեք այս բաղադրիչները API հարցումում:

Av, te-ում և արդյունահանման ստուգմամբ հարցման օրինակ

{ "request":  [  

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

Ստեղներ te բաժնում

պատկերներ — ցուցակ, որը պարունակում է բառարաններ՝ id-ով և օպերացիոն համակարգերի վերանայման համարներով, որոնցում կկատարվի ստուգումը: ID-ները և վերանայման համարները նույնն են բոլոր տեղական սարքերի և ամպի համար:

Օպերացիոն համակարգերի ցանկը և վերանայումները

Հասանելի OS Image ID

Վերանայում

Image OS և հավելված

e50e99f3-5963-4573-af9e-e3f4750b55e2

1

Microsoft WindowsXP - 32 բիթ SP3
Գրասենյակ: 2003, 2007
Adobe Acrobat Reader- ը: 9.0
Flash Player 9r115 և ActiveX 10.0
Java Runtime: 1.6.0u22

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

1

Microsoft Windows7 - 32 բիթ
Գրասենյակ: 2003, 2007
Adobe Acrobat Reader- ը: 9.0
Flash Player: 10.2r152 (ՄիացնելActiveX)
Java Runtime: 1.6.0u0

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

1

Microsoft Windows7 - 32 բիթ
Գրասենյակ: 2010
Adobe Acrobat Reader- ը: 9.4
Flash Player: 11.0.1.152 (Միացնել & ActiveX)
Java Runtime: 1.7.0u0

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

1

Microsoft Windows7 - 32 բիթ
Գրասենյակ: 2013
Adobe Acrobat Reader- ը: 11.0
Flash Player: 15 (Միացնել & ActiveX)
Java Runtime: 1.7.0u9

3ff3ddae-e7fd-4969-818c-d5f1a2be336d

1

Microsoft Windows7 - 64 բիթ
Գրասենյակ: 2013 (32 բիթ)
Adobe Acrobat Reader- ը: 11.0.01
Flash Player: 13 (Միացնել & ActiveX)
Java Runtime: 1.7.0u9

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

 

Microsoft Windows8.1 - 64 բիթ
Գրասենյակ: 2013 (64 բիթ)
Adobe Acrobat Reader- ը: 11.0.10
Flash Player: 18.0.0.160 (Միացնել & ActiveX)
Java Runtime: 1.7.0u9

10b4a9c6-e414-425c-ae8b-fe4dd7b25244 

 

1

Microsoft Windows: 10
ԳրասենյակProfessional Plus 2016 en-us  
Adobe Acrobat Reader- ըDC 2015 MUI
Flash Player: 20 (Միացնել & ActiveX)
Java Runtime: 1.7.0u9

Եթե ​​պատկերների ստեղնն ընդհանրապես նշված չէ, ապա նմանակումը տեղի կունենա Check Point-ի առաջարկած պատկերներում (ներկայումս Win XP և Win 7): Այս պատկերները առաջարկվում են՝ ելնելով կատարողականի և բռնելու արագության լավագույն հավասարակշռության նկատառումներից:

Ռեպորտաժ — հաշվետվությունների ցանկ, որոնք մենք պահանջում ենք, եթե պարզվի, որ ֆայլը վնասակար է: Հետևյալ տարբերակները մատչելի են.

  1. ամփոփում - .tar.gz արխիվ, որը պարունակում է հաշվետվություն ընդօրինակման մասին ամբողջ պահանջված պատկերներ (ինչպես html էջը, այնպես էլ բաղադրիչները, ինչպիսիք են տեսանյութը emulator OS-ից, ցանցային երթևեկության աղբարկղը, հաշվետվությունը json-ում և ինքնին նմուշը գաղտնաբառով պաշտպանված արխիվում): Մենք բանալին ենք փնտրում պատասխանի մեջ. ամփոփ_զեկույց հաշվետվության հետագա ներբեռնման համար:

  2. որոնվածը - փաստաթուղթ էմուլյացիայի մասին մեկը պատկեր, որը շատերը սովոր են ստանալ Smart Console-ի միջոցով: Մենք բանալին ենք փնտրում պատասխանի մեջ. pdf_report հաշվետվության հետագա ներբեռնման համար:

  3. XML Նամակ - փաստաթուղթ էմուլյացիայի մասին մեկը պատկեր, հարմար է զեկույցի պարամետրերի հետագա վերլուծության համար: Մենք բանալին ենք փնտրում պատասխանի մեջ. xml_report հաշվետվության հետագա ներբեռնման համար:

  4. կուպր - .tar.gz արխիվ, որը պարունակում է զեկույց ընդօրինակման մասին մեկը պահանջված պատկերներ (ինչպես html էջը, այնպես էլ բաղադրիչները, ինչպիսիք են տեսանյութը emulator OS-ից, ցանցային երթևեկության աղբարկղը, հաշվետվությունը json-ում և ինքնին նմուշը գաղտնաբառով պաշտպանված արխիվում): Մենք բանալին ենք փնտրում պատասխանի մեջ. full_report հաշվետվության հետագա ներբեռնման համար:

Ինչ կա ամփոփ զեկույցի ներսումՓոխազդեցություն Check Point SandBlast-ի հետ API-ի միջոցով

Full_report, pdf_report, xml_report ստեղները յուրաքանչյուր ՕՀ-ի բառարանում են

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

Բայց summary_report ստեղնը - ընդհանուր առմամբ նմանակման համար կա մեկը

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

Կարող եք միաժամանակ պահանջել tar և xml և pdf հաշվետվություններ, կարող եք պահանջել ամփոփագիր և tar և xml: Միաժամանակ հնարավոր չի լինի պահանջել ամփոփ հաշվետվություն և pdf:

Բանալին արդյունահանման բաժնում

Վտանգների արդյունահանման համար օգտագործվում են միայն երկու բանալի.

մեթոդ — pdf (փոխակերպել pdf-ի, օգտագործվում է լռելյայն) կամ մաքուր (ակտիվ բովանդակության մաքրում):

արդյունահանված_մասերի_կոդերը - ակտիվ բովանդակությունը հեռացնելու կոդերի ցանկ, որը կիրառելի է միայն մաքուր մեթոդի համար

Ֆայլերից բովանդակությունը հեռացնելու կոդեր

Կոդ

Նկարագրություն

1025

Կապակցված օբյեկտներ

1026

Մակրոներ և կոդ

1034

Զգայուն հիպերհղումներ

1137

PDF GoToR գործողություններ

1139

PDF գործարկման գործողություններ

1141

PDF URI գործողություններ

1142

PDF ձայնային գործողություններ

1143

PDF ֆիլմի գործողություններ

1150

PDF JavaScript գործողություններ

1151

PDF ուղարկել ձևի գործողություններ

1018

Տվյալների բազայի հարցումներ

1019

Ներդրված օբյեկտներ

1021

Տվյալների արագ պահպանում

1017

Պատվերով հատկություններ

1036

Վիճակագրական հատկություններ

1037

Համառոտ Հատկություններ

Մաքրված պատճենը ներբեռնելու համար դուք նաև պետք է հարցում կատարեք (որը կքննարկվի ստորև) մի քանի վայրկյան հետո՝ նշելով ֆայլի հեշի քանակը և արդյունահանման բաղադրիչը հարցման տեքստում: Դուք կարող եք մաքրված ֆայլը վերցնել՝ օգտագործելով id-ը հարցման պատասխանից՝ extracted_file_download_id: Կրկին, մի փոքր առաջ նայելով, ես տալիս եմ խնդրանքի և հարցման պատասխանի օրինակներ՝ մաքրված փաստաթուղթը ներբեռնելու համար ID որոնելու համար:

Հարցման հարցում՝ extracted_file_download_id ստեղնը որոնելու համար

{ "request":  [  

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

Հարցման պատասխանը (փնտրեք 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."
                }
            }
        }
    ]
}

Overview

API-ի մեկ զանգի ժամանակ դուք կարող եք ուղարկել միայն մեկ ֆայլ՝ ստուգման համար:

Av բաղադրիչը չի պահանջում ստեղներով լրացուցիչ բաժին, բավական է այն նշել բառարանում Հատկություններ.

Հարցում API զանգ

Օգտագործված մեթոդ - POST

Զանգի հասցե - https:///tecloud/api/v1/file/query

Նախքան ֆայլը ներբեռնման (վերբեռնման հարցում) ուղարկելը, խորհուրդ է տրվում ստուգել Sandbox քեշը (հարցման հարցում)՝ API սերվերի բեռնվածությունը օպտիմալացնելու համար, քանի որ API սերվերն արդեն կարող է տեղեկատվություն և դատավճիռ ունենալ ներբեռնված ֆայլի վերաբերյալ: Զանգը բաղկացած է միայն տեքստային մասից: Հարցման պահանջվող մասը ֆայլի sha1/sha256/md5 հեշ քանակն է: Ի դեպ, այն կարող եք ստանալ վերբեռնման հարցման պատասխանում։

Հարցման համար պահանջվող նվազագույնը

HTTP POST

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

Վերնագրեր:

Հեղինակ `

Մարմին

{

"խնդրանք": {

«sha256»:

}

}

Վերբեռնման հարցման պատասխանի օրինակ, որտեղ sha1/md5/sha256 հեշի գումարները տեսանելի են

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

Հարցման հարցումը, ի լրումն հեշի քանակի, իդեալականորեն պետք է լինի նույնը, ինչ վերբեռնման հարցումը եղել է (կամ նախատեսվում է լինել), կամ նույնիսկ «արդեն» (հարցման հարցումը պարունակում է ավելի քիչ դաշտեր, քան վերբեռնման հարցումը): Այն դեպքում, երբ հարցման հարցումը պարունակում է ավելի շատ դաշտեր, քան վերբեռնման հարցումն էր, դուք պատասխանում չեք ստանա բոլոր պահանջվող տեղեկությունները:

Ահա մի հարցման պատասխանի օրինակ, որտեղ ոչ բոլոր պահանջվող տվյալները են գտնվել

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

Ուշադրություն դարձրեք դաշտերին կոդը и պիտակ. Այս դաշտերը հայտնվում են երեք անգամ կարգավիճակի բառարաններում: Սկզբում մենք տեսնում ենք գլոբալ բանալին «կոդ»՝ 1006 և «պիտակ»՝ «PARTIALLY_FOUND»: Հաջորդը, այս բանալիները գտնվել են յուրաքանչյուր առանձին բաղադրիչի համար, որը մենք խնդրել ենք՝ te և արդյունահանում: Իսկ եթե ձեզ համար պարզ է, որ տվյալները գտնվել են, ապա հանելու համար տեղեկություն չկա։

Ահա թե ինչ տեսք ուներ հարցումը վերը նշված օրինակի համար

{ "request":  [  

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

Եթե ​​հարցում եք ուղարկում առանց արդյունահանման բաղադրիչի

{ "request":  [  

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

Այնուհետև պատասխանը կպարունակի ամբողջական տեղեկատվություն («կոդ»՝ 1001, «պիտակ»՝ «ԳՏՆՎԵԼ Է»)

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

Եթե ​​քեշում ընդհանրապես տեղեկատվություն չկա, ապա պատասխանը կլինի «պիտակ»՝ «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."
        }
      }
    }
  ]
}

API-ի մեկ զանգով դուք կարող եք միանգամից մի քանի հեշ գումար ուղարկել ստուգման համար: Պատասխանը կվերադարձնի տվյալները նույն հաջորդականությամբ, ինչ ուղարկվել է հարցումով:

Հարցման օրինակ մի քանի sha256 գումարներով

{ "request":  [  

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

Հարցման պատասխանը մի քանի sha256 գումարներով

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

Հարցման հարցում միանգամից մի քանի հեշ գումարներ պահանջելը նույնպես բարենպաստ ազդեցություն կունենա API սերվերի աշխատանքի վրա:

Ներբեռնեք API զանգը

Օգտագործված մեթոդ - POST (ըստ փաստաթղթերի), GET նույնպես աշխատում է (և կարող է ավելի տրամաբանական թվալ)

Զանգի հասցե - https:///tecloud/api/v1/file/download?id=

Վերնագիրը պահանջում է API բանալի փոխանցել, հարցման հիմնական մասը դատարկ է, ներբեռնման ID-ն փոխանցվում է URL հասցեում:

Հարցման հարցմանն ի պատասխան, եթե էմուլյացիան ավարտված է, և ֆայլը ներբեռնելիս պահանջվել է հաշվետվություններ, հաշվետվությունների ներբեռնման ID-ն տեսանելի կլինի: Եթե ​​պահանջվում է մաքրված պատճեն, դուք պետք է փնտրեք id-ն՝ մաքրված փաստաթուղթը ներբեռնելու համար:

Ընդհանուր առմամբ, բեռնման համար id արժեքը պարունակող հարցման պատասխանի բանալիները կարող են լինել.

  • ամփոփ_զեկույց

  • full_report

  • pdf_report

  • xml_report

  • extracted_file_download_id

Իհարկե, այս բանալիները ի պատասխան հարցման հարցման ստանալու համար, դրանք պետք է նշվեն հարցումում (հաշվետվությունների համար) կամ հիշեք հարցում կատարել՝ օգտագործելով արդյունահանման գործառույթը (մաքրված փաստաթղթերի համար)

Quota API զանգ

Օգտագործված մեթոդ - POST

Զանգի հասցե - https:///tecloud/api/v1/file/quota

Ամպում մնացած քվոտան ստուգելու համար օգտագործեք քվոտայի հարցումը: Հարցման մարմինը դատարկ է:

Քվոտայի հարցման պատասխանի օրինակ

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

Այս API-ն մշակվել է Threat Prevention API-ից առաջ և նախատեսված է միայն տեղական սարքերի համար: Առայժմ այն ​​կարող է օգտակար լինել միայն այն դեպքում, եթե ձեզ անհրաժեշտ է Threat Extraction API: Threat Emulation-ի համար ավելի լավ է օգտագործել սովորական Threat Prevention API-ը: Միացնել TP API SG-ի համար և կարգավորեք API ստեղնը, որից պետք է հետևեք քայլերին sk113599. Խորհուրդ եմ տալիս ուշադրություն դարձնել 6b քայլին և ստուգել էջի հասանելիությունը https://<IPAddressofSecurityGateway>/UserCheck/TPAPI քանի որ բացասական արդյունքի դեպքում հետագա կոնֆիգուրացիան իմաստ չունի։ Բոլոր API զանգերը կուղարկվեն այս url-ին: Զանգի տեսակը (վերբեռնում/հարցում) կարգավորվում է զանգի հիմնական ստեղնում − հարցում_անուն. Պահանջվում են նաև բանալիներ - api_key (դուք պետք է հիշեք այն կազմաձևման գործընթացում) և protocol_version (ներկայումս ընթացիկ տարբերակը 1.1 է): Այս API-ի պաշտոնական փաստաթղթերը կարող եք գտնել այստեղ sk137032. Հարաբերական առավելությունները ներառում են դրանք բեռնելիս մի քանի ֆայլեր միաժամանակ ուղարկելու կարողությունը, քանի որ ֆայլերը ուղարկվում են որպես base64 տեքստային տող: Base64 ֆայլերը կոդավորելու/վերծանելու համար դուք կարող եք օգտագործել առցանց փոխարկիչը Postman-ում ցուցադրական նպատակներով, օրինակ՝ https://base64.guru. Գործնական նպատակների համար կոդ գրելիս պետք է օգտագործեք ներկառուցված կոդավորման և վերծանման մեթոդները:

Այժմ եկեք ավելի սերտ նայենք գործառույթներին te и արդյունահանում այս API-ում:

Բաղադրիչի համար te տրամադրված բառարան te_options վերբեռնման/հարցման հարցումներում, և այս հարցումի ստեղները լիովին համընկնում են te ստեղների հետ Threat Prevention API.

Win10-ում ֆայլերի էմուլյացիայի օրինակ՝ հաշվետվություններով

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

Բաղադրիչի համար արդյունահանում տրամադրված բառարան scrub_options. Այս հարցումը սահմանում է մաքրման եղանակը՝ փոխարկել PDF-ի, մաքրել ակտիվ բովանդակությունը կամ ընտրել ռեժիմ՝ համաձայն սպառնալիքների կանխարգելման պրոֆիլին (նշված է պրոֆիլի անունը): Ֆայլի համար արդյունահանման API-ի հարցումին արձագանքելու հիանալի բանն այն է, որ դուք ստանում եք մաքրված պատճեն այդ հարցման պատասխանում՝ որպես base64 կոդավորված տող (դուք կարիք չունեք հարցում կատարել և փնտրել ID-ն՝ ներբեռնելու համար: փաստաթուղթ)

Ֆայլը մաքրելու խնդրանքի օրինակ

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

Պատասխանել հարցմանը

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

Չնայած այն հանգամանքին, որ ավելի քիչ API հարցումներ են պահանջվում մաքրված պատճենը ստանալու համար, ես գտնում եմ, որ այս տարբերակը պակաս նախընտրելի և հարմար է, քան օգտագործված ձևա-տվյալների հարցումը: Threat Prevention API.

Փոստատարի հավաքածուներ

Ես ստեղծեցի հավաքածուներ Postman-ում ինչպես Threat Prevention API-ի, այնպես էլ Threat Prevention API-ի համար Security Gateway-ի համար, որոնք ներկայացնում են ամենատարածված API հարցումները: Որպեսզի սերվերի ip/url API-ն և բանալին ինքնաբերաբար փոխարինվեն հարցումներով, և ֆայլը ներբեռնելուց հետո հիշվի sha256 հաշի գումարը, հավաքածուների ներսում ստեղծվել են երեք փոփոխականներ (դրանք կարող եք գտնել՝ անցնելով հավաքածուի կարգավորումներ։ Խմբագրել -> Փոփոխականներ): te_api (պարտադիր), api_key (պահանջվում է լրացնել, բացառությամբ տեղական սարքերի հետ TP API-ի օգտագործման), sha256 (թողեք դատարկ, չի օգտագործվում TP API-ում SG-ի համար).

Ներբեռնեք փոստատարի հավաքածուն վտանգների կանխարգելման API-ի համար

Ներբեռնեք փոստատարի հավաքածուն անվտանգության դարպասի համար սպառնալիքների կանխարգելման API-ի համար

Օգտագործման օրինակներ

Համայնքում Ստուգեք Mates Ներկայացվում են Python-ով գրված սկրիպտներ, որոնք ստուգում են ֆայլերը ցանկալի գրացուցակից միջոցով TP APIԻսկ TP API SG-ի համար. Threat Prevention API-ի հետ փոխազդեցության միջոցով ֆայլերը սկանավորելու ձեր կարողությունը զգալիորեն ընդլայնվում է, քանի որ այժմ դուք կարող եք սկանավորել ֆայլերը միանգամից մի քանի հարթակներում (ստուգում. VirusTotal API, և այնուհետև Check Point sandbox-ում) և ստացեք ֆայլեր ոչ միայն ցանցային տրաֆիկից, այլև վերցրեք դրանք ցանկացած ցանցային սկավառակներից և, օրինակ, CRM համակարգերից:

Source: www.habr.com

Добавить комментарий