Interagado kun Check Point SandBlast per API

Interagado kun Check Point SandBlast per API

Ĉi tiu artikolo estos utila al tiuj, kiuj konas teknologion Kontroli Punkton per dosiera emulado (Emulado de Minaco) kaj iniciatema dosierpurigado (Minaco Eltiro) kaj volas fari paŝon por aŭtomatigi ĉi tiujn taskojn. Check Point havas Threat Prevention API, kiu funkcias kaj en la nubo kaj sur lokaj aparatoj, kaj funkcie ĝi estas identa al kontrolado de dosieroj en retejo/smtp/ftp/smb/nfs trafikfluoj. Ĉi tiu artikolo estas parte la interpreto de la aŭtoro de aro da artikoloj el la oficiala dokumentaro, sed bazita sur mia propra operacia sperto kaj miaj propraj ekzemploj. Ankaŭ en la artikolo vi trovos la kolektojn de Postman de la aŭtoro por labori kun la Threat Prevention API.

Bazaj mallongigoj

La Threat Prevention API funkcias kun tri ĉefaj komponentoj, kiuj estas nomitaj en la API per la sekvaj tekstaj valoroj:

av — Kontraŭvirusa komponanto, respondeca pri subskriba analizo de konataj minacoj.

te - Emulado de Minaco, respondeca por kontroli dosierojn en la sablokesto, kaj fari malican/bonan verdikton post kopiado.

eltiro - Threat Extraction-komponento, respondeca pri rapide konvertado de oficejaj dokumentoj en sekuran formon (en kiu ĉiu potenciale malica enhavo estas forigita), por rapide liveri ilin al uzantoj/sistemoj.

API-strukturo kaj ĉefaj limigoj

Threat Prevention API uzas nur 4 petojn − alŝuto, konsulto, elŝuto kaj kvoto. En la kaplinio por ĉiuj kvar petoj vi devas pasi la API-ŝlosilon uzante la parametron Rajtigo. Unuavide, la strukturo povas ŝajni multe pli simpla ol en Administrado API, sed la nombro da kampoj en la alŝutaj kaj konsultaj petoj kaj la strukturo de ĉi tiuj petoj estas sufiĉe kompleksaj. Ĉi tiuj povas esti funkcie komparitaj kun profiloj de Minaco-Preventado en sekurecpolitiko de enirejo/sandbox.

Nuntempe, la nura versio de la API-Preventado de Minacoj estis publikigita - 1.0; la URL por API-vokoj devus inkluzivi v1 en la parto, kie vi devas specifi la version. Male al la Administra API, necesas indiki la API-version en la URL, alie la peto ne estos plenumita.

La Antivirusa komponanto, kiam vokita sen aliaj komponantoj (te, eltiro), nuntempe nur subtenas petojn kun md5 hash-sumoj. Minaco-Emulado kaj Minaco-Eltiro ankaŭ subtenas sha1 kaj sha256 hash-sumojn.

Estas tre grave ne fari erarojn en demandoj! La peto povas esti plenumita sen eraro, sed ne tute. Rigardante iom antaŭen, ni rigardu, kio povas okazi kiam estas eraroj/tajpereraroj en demandoj.

Peto kun tajperaro kun la vorto raportoj(raportoj)

{ "request":  [  

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

Ne estos eraro en la respondo, sed tute ne estos informoj pri la raportoj

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

Sed por peto sen tajperaro en la raportŝlosilo

{ "request":  [  

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

Ni ricevas respondon, kiu jam enhavas identigilon por elŝuti raportojn

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

Se ni sendas malĝustan/eksvaliditan API-ŝlosilon, ni ricevos 403-eraron kiel respondo.

SandBlast API: en la nubo kaj sur lokaj aparatoj

API-petoj povas esti senditaj al Check Point-aparatoj, kiuj havas la komponenton (klingo) de Emulado de Minaco ebligita. Kiel adreson por petoj, vi devas uzi la ip/url de la aparato kaj haveno 18194 (ekzemple, https://10.10.57.19:18194/tecloud/api/v1/file/query). Vi ankaŭ devas certigi, ke la sekureca politiko de la aparato permesas ĉi tiun konekton. Rajtigo per API-ŝlosilo en lokaj aparatoj defaŭlte for kaj la Rajtigo-ŝlosilo en petaj kaplinioj eble tute ne estas sendita.

API-petoj al la CheckPoint-nubo estu senditaj al te.checkpoint.com (ekzemple - https://te.checkpoint.com/tecloud/api/v1/file/query). La API-ŝlosilo povas esti akirita kiel prova permesilo dum 60 tagoj kontaktante Check Point-partnerojn aŭ la lokan oficejon de la firmao.

Sur lokaj aparatoj, Threat Extraction ankoraŭ ne estas subtenata kiel norma. Threat Prevention API kaj devus esti uzata Threat Prevention API por Sekureca Enirejo (pri tio ni parolos pli detale fine de la artikolo).

Lokaj aparatoj ne subtenas la kvotan peton.

Alie, ne estas diferencoj inter petoj al lokaj aparatoj kaj al la nubo.

Alŝutu API-vokon

Metodo uzata − POST

Voka adreso - https:///tecloud/api/v1/file/upload

La peto konsistas el du partoj (form-datumoj): dosiero destinita por kopiado/purigado kaj petokorpo kun teksto.

La tekstopeto ne povas esti malplena, sed ĝi eble ne enhavas ajnan agordon. Por ke la peto sukcesu, vi devas sendi almenaŭ la jenan tekston en la peto:

Minimumo necesa por alŝuta peto

HTTP POST

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

Kapoj:

Rajtigo:

korpo

{

"peto": {

}

}

dosiero

dosiero

En ĉi tiu kazo, la dosiero estos procesita laŭ la defaŭltaj parametroj: komponanto - te, OS-bildoj - Gajnu XP kaj Gajnu 7, sen generi raporton.

Komentoj pri la ĉefaj kampoj en la teksta peto:

dosiernomo и dosiero_tipo Vi povas lasi ilin malplenaj aŭ tute ne sendi ilin, ĉar ĉi tio ne estas precipe utila informo dum alŝuto de dosiero. En la API-respondo, ĉi tiuj kampoj estos aŭtomate plenigitaj surbaze de la nomo de la elŝutita dosiero, kaj la informoj en la kaŝmemoro ankoraŭ devos esti serĉataj per md5/sha1/sha256 hash-kvantoj.

Ekzempla peto kun malplena dosiernomo kaj dosiertipo

{

"request": {

"file_name": "",

"file_type": "",

}

}

Trajtoj — listo, kiu indikas la necesajn funkciojn dum prilaborado en la sablokesto - av (Anti-Virus), te (Threat Emulation), eltiro (Threat Extraction). Se ĉi tiu parametro tute ne estas preterpasita, tiam nur la defaŭlta komponanto estos uzata - te (Threat Emulation).

Por ebligi kontrolon de la tri disponeblaj komponantoj, vi devas specifi ĉi tiujn komponantojn en la API-peto.

Ekzemplo de peto kun kontrolo en av, te kaj eltiro

{ "request":  [  

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

Ŝlosiloj en la te sekcio

bildoj — listo enhavanta vortarojn kun id kaj revizia numero de la operaciumoj en kiuj la kontrolo estos farita. ID-oj kaj reviziaj nombroj estas la samaj por ĉiuj lokaj aparatoj kaj la nubo.

Listo de operaciumoj kaj revizioj

Disponebla OS Bilda ID

revizio

Bildo OS kaj Apliko

e50e99f3-5963-4573-af9e-e3f4750b55e2

1

Vindozo: XP - 32bit SP3
oficejo2003, 2007
Adobe Acrobat Reader: 9.0
Ekbrila Ludisto 9r115 kaj Aktiva X 10.0
Java Rultempo: 1.6.0u22

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

1

Vindozo: 7 - 32 bitoj
oficejo2003, 2007
Adobe Acrobat Reader: 9.0
Flash Player: 10.2r152 (KonektiAktiva X)
Java Rultempo: 1.6.0u0

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

1

Vindozo: 7 - 32 bitoj
oficejo: 2010
Adobe Acrobat Reader: 9.4
Flash Player: 11.0.1.152 (Konekti & Aktiva X)
Java Rultempo: 1.7.0u0

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

1

Vindozo: 7 - 32 bitoj
oficejo: 2013
Adobe Acrobat Reader: 11.0
Flash Player: 15 (Konekti & Aktiva X)
Java Rultempo: 1.7.0u9

3ff3ddae-e7fd-4969-818c-d5f1a2be336d

1

Vindozo: 7 - 64 bitoj
oficejo: 2013 (32 bitoj)
Adobe Acrobat Reader: 11.0.01
Flash Player: 13 (Konekti & Aktiva X)
Java Rultempo: 1.7.0u9

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

 

Vindozo: 8.1 - 64 bitoj
oficejo: 2013 (64 bitoj)
Adobe Acrobat Reader: 11.0.10
Flash Player: 18.0.0.160 (Konekti & Aktiva X)
Java Rultempo: 1.7.0u9

10b4a9c6-e414-425c-ae8b-fe4dd7b25244 

 

1

Vindozo: 10
oficejo: Profesia Plus 2016 en-us  
Adobe Acrobat Reader: DC 2015 MUI
Flash Player: 20 (Konekti & Aktiva X)
Java Rultempo: 1.7.0u9

Se la bildŝlosilo tute ne estas specifita, tiam kopiado okazos en bildoj rekomenditaj de Check Point (nuntempe Win XP kaj Win 7). Ĉi tiuj bildoj estas rekomenditaj surbaze de konsideroj de la plej bona ekvilibro de rendimento kaj kapta indico.

raportoj — listo de raportoj, kiujn ni petas, se la dosiero montriĝas malica. La jenaj opcioj disponeblas:

  1. resumo - .tar.gz-arkivo enhavanta raporton pri kopiado de al ĉiuj petitaj bildoj (kaj html-paĝo kaj komponantoj kiel video de la emulilo OS, rettrafika rubejo, raporto en json, kaj la specimeno mem en pasvorte protektita arkivo). Ni serĉas la ŝlosilon en la respondo - resumo_raporto por posta elŝuto de la raporto.

  2. pdf - dokumento pri emulado en unu bildo, kiun multaj kutimas ricevi per la Inteligenta Konzolo. Ni serĉas la ŝlosilon en la respondo - pdf_raporto por posta elŝuto de la raporto.

  3. xml - dokumento pri emulado en unu bildo, oportuna por posta analizo de parametroj en la raporto. Ni serĉas la ŝlosilon en la respondo - xml_raporto por posta elŝuto de la raporto.

  4. gudro - .tar.gz-arkivo enhavanta raporton pri kopiado en unu petitaj bildoj (kaj html-paĝo kaj komponantoj kiel video de la emulilo OS, rettrafika rubejo, raporto en json, kaj la specimeno mem en pasvorte protektita arkivo). Ni serĉas la ŝlosilon en la respondo - plena_raporto por posta elŝuto de la raporto.

Kio estas ene de la resuma raportoInteragado kun Check Point SandBlast per API

La klavoj full_report, pdf_report, xml_report estas en la vortaro por ĉiu OS

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

Sed la resumo_raporto ŝlosilo - ekzistas unu por emulado ĝenerale

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

Vi povas peti tar kaj xml kaj pdf-raportojn samtempe, vi povas peti resumon kaj tar kaj xml. Ne eblos peti resuman raporton kaj pdf-on samtempe.

Ŝlosiloj en la eltira sekcio

Por minaca eltiro, nur du ŝlosiloj estas uzataj:

metodo — pdf (konverti al pdf, uzata defaŭlte) aŭ purigi (purigi aktivan enhavon).

ĉerpitaj_partoj_kodoj - listo de kodoj por forigi aktivan enhavon, aplikebla nur por la pura metodo

Kodoj por forigi enhavon de dosieroj

Kodo

Priskribo

1025

Ligitaj Objektoj

1026

Makrooj kaj Kodo

1034

Sentemaj Hiperligiloj

1137

PDF GoToR Agoj

1139

PDF Lanĉaj Agoj

1141

PDF URI-Agoj

1142

PDF Sonaj Agoj

1143

PDF Filmaj Agoj

1150

PDF JavaScript Agoj

1151

PDF Sendi Formulajn Agojn

1018

Datumbazaj Demandoj

1019

Enkorpigitaj Objektoj

1021

Rapida Konservu Datumojn

1017

Propraj Propraĵoj

1036

Statistikaj Propraĵoj

1037

Resumaj Propraĵoj

Por elŝuti purigitan kopion, vi ankaŭ devos fari demandan peton (kiu estos diskutita sube) post kelkaj sekundoj, specifante la hashkvanton de la dosiero kaj la eltiran komponanton en la peta teksto. Vi povas preni la purigitan dosieron uzante la id el la respondo al la demando - extracted_file_download_id. Denove, iomete rigardante antaŭen, mi donas ekzemplojn de peto kaj demandrespondo por serĉi identigilon por elŝuti purigitan dokumenton.

Demandu peton serĉi la extracted_file_download_id-ŝlosilon

{ "request":  [  

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

Respondo al demando (serĉu extracted_file_download_id-ŝlosilon)

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

Ĝenerala informo

En unu API-voko, vi povas sendi nur unu dosieron por konfirmo.

La av-komponento ne postulas plian sekcion kun klavoj, sufiĉas specifi ĝin en la vortaro Trajtoj.

Demandu API-vokon

Metodo uzata − POST

Voka adreso - https:///tecloud/api/v1/file/query

Antaŭ sendi dosieron por elŝuto (alŝuta peto), estas konsilinde kontroli la sablokeston-kaŝmemoron (peto de konsulto) por optimumigi la ŝarĝon sur la API-servilo, ĉar la API-servilo eble jam havas informojn kaj verdikton pri la elŝutita dosiero. La alvoko konsistas nur el tekstparto. La postulata parto de la peto estas sha1/sha256/md5 hash-kvanto de la dosiero. Cetere, vi povas ricevi ĝin en la respondo al la alŝuta peto.

Minimumo necesa por konsulto

HTTP POST

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

Kapoj:

Rajtigo:

korpo

{

"peto": {

"sha256":

}

}

Ekzemplo de respondo al alŝuta peto, kie sha1/md5/sha256 hashkvantoj estas videblaj

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

La demandpeto, krom la hashkvanto, devus ideale esti la sama kiel la alŝuta peto estis (aŭ estas planita esti), aŭ eĉ "jam" (enhavu malpli da kampoj en la demandpeto ol en la alŝuta peto). En la kazo kie la demandpeto enhavas pli da kampoj ol estis en la alŝuta peto, vi ne ricevos ĉiujn postulatajn informojn en la respondo.

Jen ekzemplo de respondo al demando, kie ne ĉiuj bezonataj datumoj estis trovitaj

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

Atentu la kampojn kodo и etikedo. Tiuj ĉi kampoj aperas trifoje en statusaj vortaroj. Unue ni vidas la tutmondan ŝlosilon "kodo": 1006 kaj "etikedo": "PARTIALLY_FOUND". Poste, ĉi tiuj ŝlosiloj troviĝas por ĉiu individua komponanto, kiun ni petis - te kaj eltiro. Kaj se por te estas klare, ke la datumoj estas trovitaj, tiam por eltiro ne estas informo.

Jen kiel aspektis la demando por la supra ekzemplo

{ "request":  [  

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

Se vi sendas demandpeton sen la eltira komponanto

{ "request":  [  

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

Tiam la respondo enhavos kompletajn informojn ("kodo": 1001, "etikedo": "TROVITA")

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

Se tute ne estas informoj en la kaŝmemoro, tiam la respondo estos "etikedo": "NETROVITA"

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

En unu API-voko, vi povas sendi plurajn hashkvantojn samtempe por konfirmo. La respondo resendos datumojn en la sama ordo kiel ĝi estis sendita en la peto.

Ekzempla demandpeto kun pluraj sha256-kvantoj

{ "request":  [  

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

Respondo al demando kun multoblaj sha256 sumoj

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

Peti plurajn hash-sumojn samtempe en demanda peto ankaŭ havos utilan efikon al la agado de la API-servilo.

Elŝutu API-vokon

Metodo uzata − POST (laŭ dokumentado), GET ankaŭ funkcias (kaj eble ŝajnas pli logike)

Voka adreso - https:///tecloud/api/v1/file/download?id=

La kaplinio postulas la API-ŝlosilon esti pasita, la korpo de la peto estas malplena, la elŝuta id estas transdonita en la URL-adreso.

Responde al demanda peto, se la kopiado estas kompletigita kaj raportoj estis petitaj dum elŝuto de la dosiero, la id por elŝutado de raportoj estos videbla. Se purigita kopio estas petita, vi devus serĉi la identigilon por elŝuti la purigitan dokumenton.

Entute, la ŝlosiloj en la respondo al la demando enhavanta la id-valoron por ŝarĝo povas esti:

  • resumo_raporto

  • plena_raporto

  • pdf_raporto

  • xml_raporto

  • eltirita_dosiero_elŝuta_id

Kompreneble, por ricevi ĉi tiujn ŝlosilojn en respondo al la peto de demando, ili devas esti specifitaj en la peto (por raportoj) aŭ memori fari peton uzante la eltiran funkcion (por purigitaj dokumentoj)

Quota API-voko

Metodo uzata − POST

Voka adreso - https:///tecloud/api/v1/file/quota

Por kontroli la restantan kvoton en la nubo, uzu la kvotan demandon. La petokorpo estas malplena.

Ekzempla respondo al kvotopeto

{
  "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 por Sekureca Enirejo

Ĉi tiu API estis evoluigita antaŭ la API de Threat Prevention kaj estas destinita nur por lokaj aparatoj. Nuntempe ĝi nur povas esti utila se vi bezonas la Threat Extraction API. Por Emulado de Minaco estas pli bone uzi la regulan Threat Prevention API. Por ŝalti TP API por SG kaj agordu la API-ŝlosilon, de kiu vi devas sekvi la paŝojn sk113599. Mi rekomendas atenti la paŝon 6b kaj kontroli la alireblecon de la paĝo https://<IPAddressofSecurityGateway>/UserCheck/TPAPI ĉar en kazo de negativa rezulto, plua agordo ne havas sencon. Ĉiuj API-vokoj estos senditaj al ĉi tiu URL. La vokospeco (alŝuto/demando) estas reguligita en la voka korpoklavo − nomo_peto. Ankaŭ necesaj ŝlosiloj estas - api_key (vi devas memori ĝin dum la agorda procezo) kaj protokolo_versio (nuntempe nuna versio estas 1.1). Vi povas trovi la oficialan dokumentaron por ĉi tiu API ĉe sk137032. Relativaj avantaĝoj inkluzivas la eblon sendi plurajn dosierojn samtempe por kopiado dum ŝarĝo de ili, ĉar la dosieroj estas senditaj kiel baz64 teksta ĉeno. Por kodi/malkodi dosierojn al/de bazo64 vi povas uzi retan konvertilon en Postman por pruvaj celoj, ekzemple - https://base64.guru. Por praktikaj celoj, vi devus uzi la enkonstruitajn kodi kaj malkodi metodojn kiam vi skribas kodon.

Nun ni rigardu pli detale la funkciojn te и eltiro en ĉi tiu API.

Por komponanto te vortaro provizita te_opcioj en alŝutaj/demandaj petoj, kaj la ŝlosiloj en ĉi tiu peto tute koincidas kun la te-ŝlosiloj en Threat Prevention API.

Ekzempla peto por dosiermulado en Win10 kun raportoj

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

Por komponanto eltiro vortaro provizita scrub_opcioj. Ĉi tiu peto precizigas la purigan metodon: konverti al PDF, malplenigi aktivan enhavon aŭ elektu reĝimon laŭ la profilo de Minaco-Preventado (la nomo de profilo estas indikita). La bonega afero pri respondado al eltira API-peto por dosiero estas, ke vi ricevas purigitan kopion en la respondo al tiu peto kiel baz64 ĉifrita ĉeno (vi ne bezonas fari demandopeton kaj serĉi la identigilon por elŝuti la dokumento)

Ekzemplo de peto forigi dosieron

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

Respondu al peto

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

Malgraŭ tio, ke malpli da API-petoj estas bezonataj por akiri purigitan kopion, mi trovas ĉi tiun opcion malpli preferinda kaj oportuna ol la formular-datuma peto uzata en Threat Prevention API.

Poŝtisto-Kolektoj

Mi kreis kolektojn en Postman por kaj la Threat Prevention API kaj la Threat Prevention API por Security Gateway, kiuj reprezentas la plej oftajn API-petojn. Por ke la servilo ip/url API kaj ŝlosilo estu aŭtomate anstataŭigitaj en petojn, kaj la sha256 hash-kvanto estu memorita post elŝuto de la dosiero, tri variabloj estis kreitaj ene de la kolektoj (vi povas trovi ilin irante al la kolekto-agordoj. Redakti -> Variabloj): te_api (postulata), api_key (postulata esti plenigita, krom kiam vi uzas TP API kun lokaj aparatoj), sha256 (lasu malplena, ne uzata en TP API por SG).

Elŝutu la kolekton de Postman por Threat Prevention API

Elŝutu la kolekton de Postman por Minaco-Preventado por Sekureca Enirejo API

Uzaj Ekzemploj

En la komunumo Kontrolu amikojn skriptoj skribitaj en Python estas prezentitaj kiuj kontrolas dosierojn de la dezirata dosierujo per TP API, kaj TP API por SG. Per interago kun la API de Threat Prevention, via kapablo skani dosierojn signife pligrandiĝas, ĉar nun vi povas skani dosierojn en pluraj platformoj samtempe (kontrolante VirusTotal API, kaj poste en la sablokesto de Check Point), kaj ricevu dosierojn ne nur de rettrafiko, sed ankaŭ prenu ilin de iuj retaj diskoj kaj, ekzemple, CRM-sistemoj.

fonto: www.habr.com

Aldoni komenton