Ynteraksje mei Check Point SandBlast fia API

Ynteraksje mei Check Point SandBlast fia API

Dit artikel sil nuttich wêze foar dyjingen dy't bekend binne mei technology Check Point troch triem emulaasje (Threat Emulation) en pro-aktive triem skjinmeitsjen (Threat Extraction) en wol in stap nimme om dizze taken te automatisearjen. Check Point hat Threat Prevention API, dy't rint sawol yn 'e wolk en op lokale apparaten, en funksjoneel is it identyk oan it kontrolearjen fan bestannen yn web/smtp/ftp/smb/nfs ferkearsstreamen. Dit artikel is foar in part de ynterpretaasje fan 'e skriuwer fan in set artikels út' e offisjele dokumintaasje, mar basearre op myn eigen wurkûnderfining en myn eigen foarbylden. Ek yn it artikel fine jo de Postman-kolleksjes fan 'e skriuwer foar wurkjen mei de Threat Prevention API.

Basis ôfkoartings

De Threat Prevention API wurket mei trije haadkomponinten, dy't yn 'e API wurde neamd fia de folgjende tekstwearden:

av - Anti-Virus-komponint, ferantwurdlik foar hantekeninganalyse fan bekende bedrigingen.

te - Threat Emulation-komponint, ferantwurdlik foar it kontrolearjen fan bestannen yn 'e sânbak, en it meitsjen fan in kwea-aardich / goedaardige oardiel nei emulaasje.

ekstraksje - Component Threat Extraction, ferantwurdlik foar it fluch omsette fan kantoardokuminten yn in feilige foarm (wêryn alle potensjeel kweade ynhâld wurdt fuortsmiten), om se fluch te leverjen oan brûkers / systemen.

API struktuer en wichtichste beheinings

Threat Prevention API brûkt mar 4 fersiken - upload, query, download en kwota. Yn 'e koptekst foar alle fjouwer oanfragen moatte jo de API-kaai trochjaan mei de parameter Machtiging. Op it earste each kin de struktuer folle ienfâldiger lykje as yn Management API, mar it oantal fjilden yn 'e upload- en query-oanfragen en de struktuer fan dizze oanfragen binne frij kompleks. Dizze kinne funksjoneel wurde fergelike mei Threat Prevention-profilen yn in gateway-/sandbox-feiligensbelied.

Op it stuit is de ienige ferzje fan 'e Threat Prevention API frijjûn - 1.0 de URL foar API-oproppen moat befetsje v1 yn it diel wêr't jo de ferzje moatte opjaan. Oars as de Management API is it nedich om de API-ferzje yn 'e URL oan te jaan, oars sil it fersyk net wurde útfierd.

De anty-firus-komponint, as oproppen sûnder oare komponinten (te, ekstraksje), stipet op it stuit allinich query-oanfragen mei md5-hash-summen. Threat Emulation en Threat Extraction stypje ek sha1 en sha256 hash summen.

It is heul wichtich om gjin flaters te meitsjen yn fragen! It fersyk kin sûnder flater útfierd wurde, mar net folslein. In bytsje foarút sjen, litte wy sjen wat der kin barre as der flaters/typfouten binne yn queries.

Fersyk mei in typflater mei it wurd rapporten (rapporten)

{ "request":  [  

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

Der sil gjin flater yn it antwurd, mar der sil gjin ynformaasje oer de rapporten op alle

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

Mar foar in fersyk sûnder in typflater yn de rapporten kaai

{ "request":  [  

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

Wy krije in antwurd dat al id befettet foar it downloaden fan rapporten

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

As wy in ferkearde / ferrûne API-kaai stjoere, krije wy in 403-flater as antwurd.

SandBlast API: yn 'e wolk en op lokale apparaten

API-oanfragen kinne stjoerd wurde nei Check Point-apparaten dy't de Threat Emulation-komponint (blade) ynskeakele hawwe. As adres foar oanfragen moatte jo de ip/url fan it apparaat en poarte 18194 brûke (bygelyks https://10.10.57.19:18194/tecloud/api/v1/file/query). Jo moatte ek soargje dat it befeiligingsbelied op it apparaat dizze ferbining lit. Autorisaasje fia API-kaai op lokale apparaten standert út en de autorisaasjekaai yn fersykkoppen meie hielendal net stjoerd wurde.

API-oanfragen nei de CheckPoint-wolk moatte wurde stjoerd nei te.checkpoint.com (bygelyks - https://te.checkpoint.com/tecloud/api/v1/file/query). De API-kaai kin wurde krigen as proeflisinsje foar 60 dagen troch kontakt op te nimmen mei Check Point-partners of it lokale kantoar fan it bedriuw.

Op lokale apparaten wurdt Threat Extraction noch net as standert stipe. Threat Prevention API en moat brûkt wurde Threat Prevention API foar Security Gateway (wy sille prate oer it yn mear detail oan 'e ein fan it artikel).

Lokale apparaten stypje it kwotafersyk net.

Oars binne d'r gjin ferskillen tusken oanfragen nei lokale apparaten en nei de wolk.

Upload API oprop

Brûkte metoade - PEAL

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

It fersyk bestiet út twa dielen (formulier-gegevens): in triem bedoeld foar emulaasje/skjinmeitsjen en in fersyk lichem mei tekst.

It tekstfersyk kin net leech wêze, mar it kin gjin konfiguraasje befetsje. Om it fersyk suksesfol te meitsjen, moatte jo op syn minst de folgjende tekst yn it fersyk stjoere:

Minimum nedich foar in upload fersyk

HTTP POST

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

Headers:

Machtiging:

Body

{

"request": {

}

}

file

file

Yn dit gefal sil it bestân wurde ferwurke yn oerienstimming mei de standertparameters: komponint - te, OS-ôfbyldings - Win XP en Win 7, sûnder in rapport te generearjen.

Opmerkings oer de haadfjilden yn it tekstfersyk:

Bestânsnamme и file_type Jo kinne se leech litte of se hielendal net ferstjoere, om't dit net bysûnder nuttige ynformaasje is by it opladen fan in bestân. Yn it API-antwurd wurde dizze fjilden automatysk ynfolle op basis fan de namme fan it ynladen bestân, en de ynformaasje yn 'e cache sil noch moatte wurde socht mei md5/sha1/sha256-hashbedragen.

Foarbyld fersyk mei lege file_name en file_type

{

"request": {

"file_name": "",

"file_type": "",

}

}

features - in list dy't de nedige funksjonaliteit oanjout by it ferwurkjen yn 'e sânbak - av (Anti-Virus), te (Threat Emulation), ekstraksje (Threat Extraction). As dizze parameter hielendal net trochjûn wurdt, sil allinich de standertkomponint brûkt wurde - te (Threat Emulation).

Om it kontrolearjen fan de trije beskikbere komponinten yn te skeakeljen, moatte jo dizze komponinten opjaan yn it API-fersyk.

Foarbyld fan in fersyk mei check yn av, te en winning

{ "request":  [  

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

Keys yn de te seksje

bylden - in list mei wurdboeken mei id en revyzjenûmer fan de bestjoeringssystemen wêryn de kontrôle sil wurde útfierd. ID's en revyzjenûmers binne itselde foar alle lokale apparaten en de wolk.

List fan bestjoeringssystemen en ferzjes

Beskikbere OS Image ID

Revyzje

Ofbylding OS en applikaasje

e50e99f3-5963-4573-af9e-e3f4750b55e2

1

Microsoft Windows: XP - 32bit SP3
Kantoar: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash Player 9 r115 en ActiveX 10.0
Java Runtime: 1.6.0u22

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

1

Microsoft Windows: 7 - 32 bit
Kantoar: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash Player: 10.2r152 (YnstekkeActiveX)
Java Runtime: 1.6.0u0

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

1

Microsoft Windows: 7 - 32 bit
Kantoar: 2010
Adobe Acrobat Reader: 9.4
Flash Player: 11.0.1.152 (Ynstekke & ActiveX)
Java Runtime: 1.7.0u0

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

1

Microsoft Windows: 7 - 32 bit
Kantoar: 2013
Adobe Acrobat Reader: 11.0
Flash Player: 15 (Ynstekke & ActiveX)
Java Runtime: 1.7.0u9

3ff3ddae-e7fd-4969-818c-d5f1a2be336d

1

Microsoft Windows: 7 - 64 bit
Kantoar: 2013 (32bit)
Adobe Acrobat Reader: 11.0.01
Flash Player: 13 (Ynstekke & ActiveX)
Java Runtime: 1.7.0u9

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

 

Microsoft Windows: 8.1 - 64 bit
Kantoar: 2013 (64bit)
Adobe Acrobat Reader: 11.0.10
Flash Player: 18.0.0.160 (Ynstekke & ActiveX)
Java Runtime: 1.7.0u9

10b4a9c6-e414-425c-ae8b-fe4dd7b25244 

 

1

Microsoft Windows: 10
Kantoar: Professional Plus 2016 en-us  
Adobe Acrobat Reader: DC 2015 MUI
Flash Player: 20 (Ynstekke & ActiveX)
Java Runtime: 1.7.0u9

As de byldkaai hielendal net oantsjutte is, sil emulaasje plakfine yn bylden oanrikkemandearre troch Check Point (op it stuit Win XP en Win 7). Dizze ôfbyldings wurde oanrikkemandearre op basis fan ôfwagings fan 'e bêste balâns fan prestaasjes en fangrate.

rapporten - in list mei rapporten dy't wy oanfreegje foar it gefal dat it bestân kwealik blykt te wêzen. De folgjende opsjes binne beskikber:

  1. gearfetting - .tar.gz argyf mei dêryn in rapport oer emulaasje troch foar allegear oanfrege ôfbyldings (sawol in html-side as komponinten lykas in fideo fan 'e emulator OS, in netwurkferkeardump, in rapport yn json, en it foarbyld sels yn in wachtwurdbeskerme argyf). Wy sykje de kaai yn it antwurd - gearfetting_rapport foar it folgjende downloaden fan it rapport.

  2. pdf - dokumint oer emulaasje yn ien ôfbylding, dy't in protte binne wend te ûntfangen fia de Smart Console. Wy sykje de kaai yn it antwurd - pdf_rapport foar it folgjende downloaden fan it rapport.

  3. xml - dokumint oer emulaasje yn ien ôfbylding, handich foar it folgjende parsearjen fan parameters yn it rapport. Wy sykje de kaai yn it antwurd - xml_rapport foar it folgjende downloaden fan it rapport.

  4. tar - .tar.gz argyf mei dêryn in rapport oer emulaasje yn ien oanfrege ôfbyldings (sawol in html-side as komponinten lykas in fideo fan 'e emulator OS, in netwurkferkeardump, in rapport yn json, en it foarbyld sels yn in wachtwurdbeskerme argyf). Wy sykje de kaai yn it antwurd - folslein_rapport foar it folgjende downloaden fan it rapport.

Wat is binnen de gearfetting rapportYnteraksje mei Check Point SandBlast fia API

De kaaien full_report, pdf_report, xml_report binne yn it wurdboek foar elk 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."
        }
      }
    }
  ]
}

Mar de summary_report-kaai - d'r is ien foar emulaasje yn 't algemien

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

Jo kinne tar- en xml- en pdf-rapporten tagelyk oanfreegje, jo kinne gearfetting en tar en xml oanfreegje. It sil net mooglik wêze om tagelyk in gearfettingrapport en in pdf op te freegjen.

Kaaien yn 'e ekstraksje seksje

Foar bedrigingsekstraksje wurde mar twa kaaien brûkt:

metoade - pdf (konvertearje nei pdf, standert brûkt) of skjin (aktive ynhâld skjinmeitsje).

extracted_parts_codes - list mei koades foar it fuortheljen fan aktive ynhâld, allinich fan tapassing foar de skjinne metoade

Koades foar it fuortsmiten fan ynhâld út triemmen

Koade

Beskriuwing

1025

Keppele objekten

1026

Makro's en koade

1034

Gefoelige hyperlinks

1137

PDF GoToR-aksjes

1139

PDF-startaksjes

1141

PDF URI Aksjes

1142

PDF Lûdaksjes

1143

PDF-filmaksjes

1150

PDF JavaScript Actions

1151

PDF Submit Form Actions

1018

Databankfragen

1019

Ynbêde objekten

1021

Gegevens fluch bewarje

1017

Oanpaste Eigenskippen

1036

Statistyske eigenskippen

1037

Gearfetting Eigenskippen

Om in skjinmakke kopy te downloaden, moatte jo ek nei in pear sekonden in query-oanfraach meitsje (dy't hjirûnder wurdt besprutsen), en spesifisearje it hashbedrach fan it bestân en de ekstraksjekomponint yn 'e fersyktekst. Jo kinne it skjinmakke bestân ophelje mei de id fan it antwurd op 'e fraach - extracted_file_download_id. Nochris, in bytsje foarút sjoch, jou ik foarbylden fan in fersyk en in query-antwurd om te sykjen nei in id foar it downloaden fan in wiske dokumint.

Query fersyk om te sykjen nei de extracted_file_download_id kaai

{ "request":  [  

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

Antwurd op fraach (sykje foar extracted_file_download_id-kaai)

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

Algemiene ynformaasje

Yn ien API-oprop kinne jo mar ien bestân stjoere foar ferifikaasje.

De av-komponint fereasket gjin ekstra seksje mei kaaien, it is genôch om it oan te jaan yn it wurdboek features.

Query API oprop

Brûkte metoade - PEAL

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

Foardat jo in bestân ferstjoere foar download (fersyk foar upload), is it oan te rieden om de sânbox-cache te kontrolearjen (query-fersyk) om de lading op 'e API-tsjinner te optimalisearjen, om't de API-tsjinner al ynformaasje en in oardiel hat oer it ynladen bestân. De oprop bestiet allinnich út in tekstdiel. It fereaske diel fan it fersyk is sha1/sha256/md5 hash bedrach fan it bestân. Trouwens, jo kinne it krije yn it antwurd op it uploadfersyk.

Minimum fereaske foar query

HTTP POST

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

Headers:

Machtiging:

Body

{

"request": {

"sha256":

}

}

In foarbyld fan in antwurd op in oplaadfersyk, wêrby't sha1/md5/sha256 hash bedraggen sichtber binne

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

It query-fersyk, neist it hashbedrach, soe ideaal itselde wêze moatte as it uploadfersyk wie (of is pland te wêzen), of sels "al" (befette minder fjilden yn 'e query-fersyk dan yn 'e upload-fersyk). Yn it gefal dêr't de query fersyk befettet mear fjilden as wiene yn de upload fersyk, Jo krije net alle fereaske ynformaasje yn it antwurd.

Hjir is in foarbyld fan in antwurd op in query dêr't net alle fereaske gegevens waarden fûn

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

Jou omtinken oan de fjilden code и etiket. Dizze fjilden komme trije kear foar yn statuswurdboeken. Earst sjogge wy de globale kaai "koade": 1006 en "label": "PARTIALLY_FOUND". Folgjende, dizze kaaien wurde fûn foar elke yndividuele komponint dat wy oanfrege - te en ekstraksje. En as foar te dúdlik is dat de gegevens fûn binne, dan is der foar ekstraksje gjin ynformaasje.

Dit is hoe't de query der útseach foar it foarbyld hjirboppe

{ "request":  [  

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

As jo ​​stjoere in query fersyk sûnder de ekstraksje komponint

{ "request":  [  

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

Dan sil it antwurd folsleine ynformaasje befetsje ("koade": 1001, "label": "FOUND")

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

As d'r hielendal gjin ynformaasje yn 'e cache is, dan sil it antwurd "label" wêze: "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."
        }
      }
    }
  ]
}

Yn ien API-oprop kinne jo ferskate hashbedragen tagelyk stjoere foar ferifikaasje. It antwurd sil gegevens weromjaan yn deselde folchoarder as it waard ferstjoerd yn it fersyk.

Foarbyld query fersyk mei ferskate sha256 bedraggen

{ "request":  [  

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

Antwurd op in fraach mei meardere sha256 bedraggen

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

It oanfreegjen fan ferskate hash-summen tagelyk yn in query-fersyk sil ek in foardielich effekt hawwe op de prestaasjes fan 'e API-tsjinner.

Download API-oprop

Brûkte metoade - PEAL (neffens dokumintaasje), KRIJE wurket ek (en kin logysker lykje)

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

De koptekst fereasket dat de API-kaai trochjûn wurdt, it lichem fan it fersyk is leech, de download-id wurdt trochjûn yn it URL-adres.

As antwurd op in fraachfraach, as de emulaasje foltôge is en rapporten waarden oanfrege by it downloaden fan it bestân, sil de id foar it downloaden fan rapporten sichtber wêze. As in skjinmakke kopy wurdt oanfrege, moatte jo sykje nei de id om it skjinmakke dokumint te downloaden.

Yn totaal kinne de kaaien yn it antwurd op 'e query mei de id-wearde foar it laden wêze:

  • gearfetting_rapport

  • folslein_rapport

  • pdf_rapport

  • xml_rapport

  • extracted_file_download_id

Fansels, om dizze kaaien te ûntfangen yn antwurd op it fraachfersyk, moatte se wurde spesifisearre yn it fersyk (foar rapporten) of tink om in fersyk te meitsjen mei de ekstraksjefunksje (foar skjinmakke dokuminten)

Quota API oprop

Brûkte metoade - PEAL

Beladres - https:///tecloud/api/v1/file/quota

Om it oerbleaune kwota yn 'e wolk te kontrolearjen, brûk de kwotafraach. It fersyk lichem is leech.

Foarbyld antwurd op in kwota fersyk

{
  "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 foar Security Gateway

Dizze API is ûntwikkele foar de Threat Prevention API en is allinich bedoeld foar lokale apparaten. Foar no kin it allinich nuttich wêze as jo de Threat Extraction API nedich binne. Foar Threat Emulation is it better om de reguliere Threat Prevention API te brûken. Oansette TP API foar SG en konfigurearje de API-kaai dy't jo moatte folgje de stappen fan sk113599. Ik advisearje omtinken te jaan oan stap 6b en kontrolearje de tagonklikens fan 'e side https://<IPAddressofSecurityGateway>/UserCheck/TPAPI want yn it gefal fan in negatyf resultaat hat fierdere konfiguraasje gjin sin. Alle API-oproppen wurde nei dizze url stjoerd. It oproptype (upload/query) wurdt regele yn 'e oproptekst - request_name. Ek fereaske kaaien binne - api_key (jo moatte it ûnthâlde tidens it konfiguraasjeproses) en protocol_version (de hjoeddeistige ferzje is 1.1). Jo kinne de offisjele dokumintaasje foar dizze API fine op sk137032. Relative foardielen omfetsje de mooglikheid om ferskate bestannen tagelyk te stjoeren foar emulaasje by it laden, om't de bestannen wurde ferstjoerd as in base64-tekststring. Om triemmen te kodearjen/dekodearjen nei/fan base64 kinne jo in online converter brûke yn Postman foar demonstraasjedoelen, bygelyks - https://base64.guru. Foar praktyske doelen moatte jo de ynboude kodearring en dekodearjen metoaden brûke by it skriuwen fan koade.

Litte wy no de funksjes fan tichterby besjen te и ekstraksje yn dizze API.

Foar komponint te wurdboek foarsjoen te_opsjes yn upload / query fersiken, en de kaaien yn dit fersyk falle folslein oerien mei de te toetsen yn Threat Prevention API.

Foarbyld fersyk foar triememulaasje yn Win10 mei rapporten

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

Foar komponint ekstraksje wurdboek foarsjoen scrub_opsjes. Dit fersyk spesifiseart de skjinmakmetoade: konvertearje nei PDF, wiskje aktive ynhâld, of selektearje in modus yn oerienstimming mei it profyl fan Threat Prevention (de profylnamme wurdt oanjûn). It geweldige ding oer it reagearjen op in ekstraksje API-fersyk foar in bestân is dat jo in skjinmakke kopy krije yn it antwurd op dat fersyk as in base64-fersifere tekenrige (jo hoege gjin query-fersyk te meitsjen en de id op te sykjen om de dokumint)

Foarbyld fan in fersyk om in triem te wiskjen

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

Antwurdzje op in fersyk

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

Nettsjinsteande it feit dat minder API-oanfragen nedich binne om in wiske kopy te krijen, fyn ik dizze opsje minder foarkar en handich dan it formulier-gegevensfersyk dat brûkt wurdt yn Threat Prevention API.

Postman Samlingen

Ik makke kolleksjes yn Postman foar sawol de Threat Prevention API as de Threat Prevention API foar Security Gateway, dy't de meast foarkommende API-oanfragen fertsjintwurdigje. Om de server ip / url API en kaai automatysk te ferfangen yn fersiken, en it sha256 hash bedrach te ûnthâlden nei it downloaden fan it bestân, binne trije fariabelen makke binnen de kolleksjes (jo kinne se fine troch te gean nei de kolleksje ynstellings Bewurkje -> Fariabelen): te_api (ferplicht), api_key (ferplicht yn te foljen, útsein by it brûken fan TP API mei lokale apparaten), sha256 (lit leech, net brûkt yn TP API foar SG).

Download de Postman-kolleksje foar Threat Prevention API

Download de Postman-kolleksje foar Threat Prevention for Security Gateway API

Foarbylden fan gebrûk

Yn de mienskip Kontrolearje Mates skripts skreaun yn Python wurde presintearre dy't kontrolearje triemmen út de winske map fia TP APIen TP API foar SG. Troch ynteraksje mei de Threat Prevention API wurdt jo fermogen om bestannen te scannen signifikant útwreide, om't jo no bestannen op ferskate platfoarms tagelyk kinne scannen (ynchecken VirusTotal API, en dan yn 'e Check Point-sandbox), en ûntfange bestannen net allinich fan netwurkferkear, mar nimme se ek fan alle netwurkskiven en, bygelyks, CRM-systemen.

Boarne: www.habr.com

Add a comment