Interaksie met Check Point SandBlast via API

Interaksie met Check Point SandBlast via API

Hierdie artikel sal nuttig wees vir diegene wat vertroud is met tegnologie Check Point deur lêer emulasie (Bedreigingsemulasie) en proaktiewe lêer skoonmaak (Bedreiging onttrekking) en wil 'n stap neem om hierdie take te outomatiseer. Check Point het Bedreigingsvoorkoming API, wat beide in die wolk en op plaaslike toestelle loop, en funksioneel is dit identies aan die nagaan van lêers in web/smtp/ftp/smb/nfs verkeerstrome. Hierdie artikel is deels die skrywer se interpretasie van 'n stel artikels uit die amptelike dokumentasie, maar gebaseer op my eie bedryfservaring en my eie voorbeelde. Ook in die artikel sal jy die skrywer se Postman-versamelings vind om met die Threat Prevention API te werk.

Basiese afkortings

Die Threat Prevention API werk met drie hoofkomponente, wat deur die volgende tekswaardes in die API opgeroep word:

av — Anti-Virus-komponent, verantwoordelik vir handtekeningontleding van bekende bedreigings.

te - Bedreigingsemulasie-komponent, verantwoordelik vir die nagaan van lêers in die sandbox, en die maak van 'n kwaadwillige/goedaardige uitspraak na emulasie.

ontginning - Bedreiging onttrekking komponent, verantwoordelik vir die vinnige omskakeling van kantoor dokumente in 'n veilige vorm (waarin alle potensieel kwaadwillige inhoud verwyder word), om dit vinnig aan gebruikers/stelsels te lewer.

API-struktuur en hoofbeperkings

Threat Prevention API gebruik slegs 4 versoeke - oplaai, navraag doen, aflaai en kwota. In die kopskrif vir al vier versoeke moet jy die API-sleutel deur die parameter deur te gee Magtiging. Met die eerste oogopslag kan die struktuur baie eenvoudiger lyk as in Bestuur API, maar die aantal velde in die oplaai- en navraagversoeke en die struktuur van hierdie versoeke is redelik kompleks. Dit kan funksioneel vergelyk word met Threat Prevention-profiele in 'n gateway/sandbox-sekuriteitsbeleid.

Op die oomblik is die enigste weergawe van die Threat Prevention API vrygestel - 1.0; die URL vir API-oproepe moet insluit v1 in die deel waar jy die weergawe moet spesifiseer. Anders as die Management API, is dit nodig om die API-weergawe in die URL aan te dui, anders sal die versoek nie uitgevoer word nie.

Die Anti-Virus-komponent, wanneer dit sonder ander komponente (te, onttrekking) opgeroep word, ondersteun tans slegs navraagversoeke met md5-hash-somme. Bedreigingsemulasie en Bedreigingekstraksie ondersteun ook sha1- en sha256-hash-somme.

Dit is baie belangrik om nie foute in navrae te maak nie! Die versoek kan sonder foute uitgevoer word, maar nie heeltemal nie. As ons 'n bietjie vorentoe kyk, kom ons kyk wat kan gebeur as daar foute/tikfoute in navrae is.

Versoek met 'n tikfout met die woord reports(reports)

{ "request":  [  

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

Daar sal geen fout in die antwoord wees nie, maar daar sal glad nie inligting oor die verslae wees nie

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

Maar vir 'n versoek sonder 'n tikfout in die verslae sleutel

{ "request":  [  

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

Ons ontvang 'n antwoord wat reeds ID bevat vir die aflaai van verslae

{
  "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 ons 'n verkeerde/verval API-sleutel stuur, sal ons 'n 403-fout in reaksie ontvang.

SandBlast API: in die wolk en op plaaslike toestelle

API-versoeke kan na Check Point-toestelle gestuur word wat die Threat Emulation-komponent (lem) geaktiveer het. As 'n adres vir versoeke, moet jy die ip/url van die toestel en poort 18194 gebruik (byvoorbeeld https://10.10.57.19:18194/tecloud/api/v1/file/query). U moet ook seker maak dat die sekuriteitsbeleid op die toestel hierdie verbinding toelaat. Magtiging via API-sleutel op plaaslike toestelle by verstek af en die magtigingsleutel in versoekopskrifte mag glad nie gestuur word nie.

API-versoeke na die CheckPoint-wolk moet gestuur word na te.checkpoint.com (byvoorbeeld - https://te.checkpoint.com/tecloud/api/v1/file/query). Die API-sleutel kan as 'n proeflisensie vir 60 dae verkry word deur Check Point-vennote of die maatskappy se plaaslike kantoor te kontak.

Op plaaslike toestelle word Threat Extraction nog nie as standaard ondersteun nie. Bedreigingsvoorkoming API en moet gebruik word Bedreigingsvoorkoming-API vir sekuriteitspoort (Ons sal aan die einde van die artikel in meer besonderhede daaroor praat).

Plaaslike toestelle ondersteun nie die kwotaversoek nie.

Andersins is daar geen verskille tussen versoeke aan plaaslike toestelle en na die wolk nie.

Laai API-oproep op

Metode gebruik − POS

Bel adres - https:///tecloud/api/v1/lêer/oplaai

Die versoek bestaan ​​uit twee dele (vorm-data): 'n lêer wat bedoel is vir emulasie/skoonmaak en 'n versoekliggaam met teks.

Die teksversoek kan nie leeg wees nie, maar dit mag geen konfigurasie bevat nie. Om die versoek suksesvol te laat slaag, moet jy ten minste die volgende teks in die versoek stuur:

Minimum vereis vir 'n oplaai versoek

HTTP POST

https:///tecloud/api/v1/lêer/oplaai

Opskrifte:

Magtiging:

Liggaam

{

"versoek": {

}

}

File

File

In hierdie geval sal die lêer verwerk word in ooreenstemming met die verstekparameters: komponent - te, OS beelde - Wen XP en Win 7, sonder om 'n verslag te genereer.

Opmerkings oor die hoofvelde in die teksversoek:

lêernaam и leër tipe U kan hulle leeg laat of glad nie stuur nie, aangesien dit nie besonder nuttige inligting is wanneer u 'n lêer oplaai nie. In die API-reaksie sal hierdie velde outomaties ingevul word op grond van die naam van die afgelaaide lêer, en die inligting in die kas sal steeds deursoek moet word met md5/sha1/sha256 hash-bedrae.

Voorbeeldversoek met leë lêernaam en lêertipe

{

"request": {

"file_name": "",

"file_type": "",

}

}

kenmerke — 'n lys wat die nodige funksionaliteit aandui wanneer dit in die sandbox verwerk word - av (Anti-Virus), te (Threat Emulation), onttrekking (Threat Extraction). As hierdie parameter glad nie geslaag word nie, sal slegs die verstekkomponent gebruik word - te (Threat Emulation).

Om die inboek van die drie beskikbare komponente moontlik te maak, moet jy hierdie komponente in die API-versoek spesifiseer.

Voorbeeld van 'n versoek met inboek av, te en onttrekking

{ "request":  [  

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

Sleutels in die te-afdeling

beelde — 'n lys wat woordeboeke bevat met id en hersieningsnommer van die bedryfstelsels waarin die kontrole uitgevoer sal word. ID's en hersieningsnommers is dieselfde vir alle plaaslike toestelle en die wolk.

Lys van bedryfstelsels en hersienings

Beskikbare OS Image ID

Hersiening

Beeld-bedryfstelsel en toepassing

e50e99f3-5963-4573-af9e-e3f4750b55e2

1

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

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

1

Microsoft Windows: 7 - 32 bis
Office: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash Player: 10.2r152 (pluginActiveX)
Java-looptyd: 1.6.0u0

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

1

Microsoft Windows: 7 - 32 bis
Office: 2010
Adobe Acrobat Reader: 9.4
Flash Player: 11.0.1.152 (plugin & ActiveX)
Java-looptyd: 1.7.0u0

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

1

Microsoft Windows: 7 - 32 bis
Office: 2013
Adobe Acrobat Reader: 11.0
Flash Player: 15 (plugin & ActiveX)
Java-looptyd: 1.7.0u9

3ff3ddae-e7fd-4969-818c-d5f1a2be336d

1

Microsoft Windows: 7 - 64 bis
Office: 2013 (32bis)
Adobe Acrobat Reader: 11.0.01
Flash Player: 13 (plugin & ActiveX)
Java-looptyd: 1.7.0u9

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

 

Microsoft Windows: 8.1 - 64 bis
Office: 2013 (64bis)
Adobe Acrobat Reader: 11.0.10
Flash Player: 18.0.0.160 (plugin & ActiveX)
Java-looptyd: 1.7.0u9

10b4a9c6-e414-425c-ae8b-fe4dd7b25244 

 

1

Microsoft Windows: 10
Office: Professional Plus 2016 en-ons  
Adobe Acrobat Reader: DC 2015 MUI
Flash Player: 20 (plugin & ActiveX)
Java-looptyd: 1.7.0u9

As die beeldsleutel glad nie gespesifiseer is nie, sal emulasie plaasvind in beelde wat deur Check Point aanbeveel word (tans Win XP en Win 7). Hierdie beelde word aanbeveel op grond van oorwegings van die beste balans van prestasie en vangtempo.

verslae — 'n lys verslae wat ons versoek indien die lêer kwaadwillig blyk te wees. Die volgende opsies is beskikbaar:

  1. opsomming - .tar.gz argief wat 'n verslag bevat oor navolging deur al aangevraagde beelde (beide 'n HTML-bladsy en komponente soos 'n video van die emulator-bedryfstelsel, 'n netwerkverkeerstorting, 'n verslag in json, en die voorbeeld self in 'n wagwoordbeskermde argief). Ons soek die sleutel in die antwoord - opsomming_verslag vir die daaropvolgende aflaai van die verslag.

  2. pdf - dokument oor emulasie in een beeld, wat baie gewoond is om deur die Smart Console te ontvang. Ons soek die sleutel in die antwoord - pdf_verslag vir die daaropvolgende aflaai van die verslag.

  3. xml - dokument oor emulasie in een beeld, gerieflik vir die daaropvolgende ontleding van parameters in die verslag. Ons soek die sleutel in die antwoord - xml_verslag vir die daaropvolgende aflaai van die verslag.

  4. teer - .tar.gz-argief wat 'n verslag oor emulasie in een aangevraagde beelde (beide 'n HTML-bladsy en komponente soos 'n video van die emulator-bedryfstelsel, 'n netwerkverkeerstorting, 'n verslag in json, en die voorbeeld self in 'n wagwoordbeskermde argief). Ons soek die sleutel in die antwoord - volledige_verslag vir die daaropvolgende aflaai van die verslag.

Wat is in die opsommingsverslagInteraksie met Check Point SandBlast via API

Die sleutels full_report, pdf_report, xml_report is in die woordeboek vir elke bedryfstelsel

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

Maar die summary_report sleutel - daar is een vir emulasie in die algemeen

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

Jy kan terselfdertyd teer- en xml- en pdf-verslae aanvra, jy kan opsomming en teer en xml aanvra. Dit sal nie moontlik wees om 'n opsommende verslag en 'n pdf tegelykertyd aan te vra nie.

Sleutels in die onttrekkingsafdeling

Vir die onttrekking van bedreigings word slegs twee sleutels gebruik:

metode - pdf (omskakel na pdf, gebruik by verstek) of skoon (skoon aktiewe inhoud).

onttrek_onderdele_kodes - lys kodes vir die verwydering van aktiewe inhoud, slegs van toepassing op die skoon metode

Kodes vir die verwydering van inhoud uit lêers

kode

Beskrywing

1025

Gekoppelde voorwerpe

1026

Makro's en kode

1034

Sensitiewe hiperskakels

1137

PDF GoToR-aksies

1139

PDF-beginaksies

1141

PDF URI-aksies

1142

PDF Klankaksies

1143

PDF-filmaksies

1150

PDF JavaScript-aksies

1151

PDF Dien Vorm Aksies in

1018

Databasisnavrae

1019

Ingebedde voorwerpe

1021

Stoor data vinnig

1017

Aangepaste eienskappe

1036

Statistiese eienskappe

1037

Opsomming Eienskappe

Om 'n skoongemaakte kopie af te laai, sal jy ook 'n navraagversoek (wat hieronder bespreek sal word) na 'n paar sekondes moet maak, wat die hash-hoeveelheid van die lêer en die onttrekkingskomponent in die versoekteks spesifiseer. Jy kan die skoongemaakte lêer optel deur die id van die antwoord op die navraag te gebruik - extracted_file_download_id. Weereens, terwyl ek 'n bietjie vorentoe kyk, gee ek voorbeelde van 'n versoek en 'n navraagantwoord om te soek na 'n id vir die aflaai van 'n uitgevee dokument.

Navraagversoek om na die extracted_file_download_id-sleutel te soek

{ "request":  [  

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

Antwoord op navraag (soek vir extracted_file_download_id-sleutel)

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

Oorsig

In een API-oproep kan jy net een lêer stuur vir verifikasie.

Die av-komponent benodig nie 'n bykomende afdeling met sleutels nie, dit is genoeg om dit in die woordeboek te spesifiseer kenmerke.

Soek API-oproep

Metode gebruik − POS

Bel adres - https:///tecloud/api/v1/file/query

Voordat u 'n lêer vir aflaai (oplaaiversoek) stuur, is dit raadsaam om die sandbox-kas (navraagversoek) na te gaan om die las op die API-bediener te optimaliseer, aangesien die API-bediener dalk reeds inligting en 'n uitspraak oor die afgelaaide lêer het. Die oproep bestaan ​​slegs uit 'n teksgedeelte. Die vereiste deel van die versoek is sha1/sha256/md5 hash bedrag van die lêer. Terloops, jy kan dit kry in die antwoord op die oplaaiversoek.

Minimum vereis vir navraag

HTTP POST

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

Opskrifte:

Magtiging:

Liggaam

{

"versoek": {

"sha256":

}

}

'n Voorbeeld van 'n antwoord op 'n oplaaiversoek, waar sha1/md5/sha256 hash-bedrae sigbaar is

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

Die navraagversoek, benewens die hash-bedrag, behoort ideaal gesproke dieselfde te wees as wat die oplaaiversoek was (of beplan word om te wees), of selfs "reeds" (bevat minder velde in die navraagversoek as in die oplaaiversoek). In die geval waar die navraagversoek meer velde bevat as wat in die oplaaiversoek was, sal jy nie al die vereiste inligting in die antwoord ontvang nie.

Hier is 'n voorbeeld van 'n antwoord op 'n navraag waar nie alle vereiste data gevind is nie

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

Gee aandag aan die velde kode и etiket. Hierdie velde verskyn drie keer in statuswoordeboeke. Eerstens sien ons die globale sleutel "kode": 1006 en "etiket": "PARTIALLY_FOUND". Vervolgens word hierdie sleutels gevind vir elke individuele komponent wat ons aangevra het - te en onttrekking. En as dit duidelik is dat die data gevind is, dan is daar geen inligting vir onttrekking nie.

Dit is hoe die navraag gelyk het vir die voorbeeld hierbo

{ "request":  [  

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

As jy 'n navraag versoek sonder die onttrekkingskomponent

{ "request":  [  

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

Dan sal die antwoord volledige inligting bevat (“kode”: 1001, “etiket”: “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 daar glad nie inligting in die kas is nie, sal die antwoord "label" wees: "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."
        }
      }
    }
  ]
}

In een API-oproep kan jy verskeie hash-bedrae gelyktydig stuur vir verifikasie. Die antwoord sal data in dieselfde volgorde terugstuur as wat dit in die versoek gestuur is.

Voorbeeld navraag versoek met verskeie sha256 bedrae

{ "request":  [  

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

Reaksie op 'n navraag met veelvuldige sha256-bedrae

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

Om verskeie hash-somme gelyktydig in 'n navraagversoek te versoek, sal ook 'n voordelige uitwerking op die werkverrigting van die API-bediener hê.

Laai API-oproep af

Metode gebruik − POS (volgens dokumentasie), KRY werk ook (en lyk dalk meer logies)

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

Die kopskrif vereis dat die API-sleutel geslaag word, die liggaam van die versoek is leeg, die aflaai-ID word in die URL-adres deurgegee.

In reaksie op 'n navraagversoek, as die emulasie voltooi is en verslae aangevra is tydens die aflaai van die lêer, sal die ID vir die aflaai van verslae sigbaar wees. As 'n skoongemaakte kopie aangevra word, moet jy die id soek om die skoongemaakte dokument af te laai.

In totaal kan die sleutels in die antwoord op die navraag wat die id-waarde bevat vir laai wees:

  • opsomming_verslag

  • volledige_verslag

  • pdf_verslag

  • xml_verslag

  • extracted_file_download_id

Natuurlik, om hierdie sleutels in reaksie op die navraagversoek te ontvang, moet hulle in die versoek gespesifiseer word (vir verslae) of onthou om 'n versoek te rig deur die onttrekkingsfunksie (vir skoongemaakte dokumente) te gebruik.

Kwota API oproep

Metode gebruik − POS

Bel adres - https:///tecloud/api/v1/file/quota

Om die oorblywende kwota in die wolk na te gaan, gebruik die kwota-navraag. Die versoekliggaam is leeg.

Voorbeeldreaksie op 'n kwotaversoek

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

Bedreigingsvoorkoming-API vir sekuriteitspoort

Hierdie API is ontwikkel voor die Threat Prevention API en is slegs bedoel vir plaaslike toestelle. Vir nou kan dit net nuttig wees as jy die Threat Extraction API nodig het. Vir Threat Emulasie is dit beter om die gewone Threat Prevention API te gebruik. Om aan te sit TP API vir SG en stel die API-sleutel op waaruit u die stappe moet volg sk113599. Ek beveel aan dat u aandag gee aan stap 6b en die toeganklikheid van die bladsy nagaan https://<IPAddressofSecurityGateway>/UserCheck/TPAPI want in die geval van 'n negatiewe resultaat maak verdere konfigurasie nie sin nie. Alle API-oproepe sal na hierdie url gestuur word. Die oproeptipe (oplaai/navraag) word in die oproepliggaamsleutel − gereguleer versoek_naam. Ook vereiste sleutels is - api_sleutel (jy moet dit onthou tydens die konfigurasieproses) en protokol_weergawe (huidige weergawe is tans 1.1). U kan die amptelike dokumentasie vir hierdie API vind by sk137032. Relatiewe voordele sluit in die vermoë om verskeie lêers gelyktydig te stuur vir emulasie wanneer dit gelaai word, aangesien die lêers as 'n base64-teksstring gestuur word. Om lêers na/van base64 te enkodeer/dekodeer, kan jy 'n aanlyn-omskakelaar in Postman gebruik vir demonstrasiedoeleindes, byvoorbeeld - https://base64.guru. Vir praktiese doeleindes moet jy die ingeboude enkodeer- en dekodeermetodes gebruik wanneer jy kode skryf.

Kom ons kyk nou van nader na die funksies te и ontginning in hierdie API.

Vir komponent te woordeboek verskaf te_opsies in oplaai-/navraagversoeke, en die sleutels in hierdie versoek stem heeltemal saam met die te sleutels in Bedreigingsvoorkoming API.

Voorbeeldversoek vir lêer-emulasie in Win10 met verslae

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

Vir komponent ontginning woordeboek verskaf skrop_opsies. Hierdie versoek spesifiseer die skoonmaakmetode: skakel om na PDF, maak aktiewe inhoud skoon, of kies 'n modus in ooreenstemming met die Bedreigingsvoorkomingsprofiel (die profielnaam word aangedui). Die wonderlike ding om op 'n onttrekking-API-versoek vir 'n lêer te reageer, is dat jy 'n skoongemaakte kopie in die reaksie op daardie versoek kry as 'n base64-geënkripteerde string (jy hoef nie 'n navraagversoek te maak en die ID op te soek om die dokument)

Voorbeeld van 'n versoek om 'n lêer skoon te maak

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

Antwoord op 'n versoek

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

Ten spyte van die feit dat minder API-versoeke nodig is om 'n skoongemaakte kopie te bekom, vind ek hierdie opsie minder verkieslik en gerieflik as die vormdataversoek wat in Bedreigingsvoorkoming API.

Posman Versamelings

Ek het versamelings in Postman geskep vir beide die Threat Prevention API en die Threat Prevention API vir Security Gateway, wat die mees algemene API-versoeke verteenwoordig. Om die bediener ip/url API en sleutel outomaties in versoeke te vervang, en die sha256 hash-bedrag om onthou te word nadat die lêer afgelaai is, is drie veranderlikes binne die versamelings geskep (jy kan dit vind deur na die versameling-instellings te gaan Wysig -> Veranderlikes): te_api (vereis), api_key (vereis om ingevul te word, behalwe wanneer TP API met plaaslike toestelle gebruik word), sha256 (laat leeg, nie gebruik in TP API vir SG).

Laai die Postman-versameling vir Threat Prevention API af

Laai die Postman-versameling vir Threat Prevention for Security Gateway API af

Gebruiksvoorbeelde

In die gemeenskap Kontroleer maats skrifte wat in Python geskryf is, word aangebied wat lêers nagaan vanaf die verlangde gids via TP APIEn TP API vir SG. Deur interaksie met die Threat Prevention API, word jou vermoë om lêers te skandeer aansienlik uitgebrei, aangesien jy nou lêers op verskeie platforms gelyktydig kan skandeer (aanmeld VirusTotal API, en dan in die Check Point-sandbox), en ontvang lêers nie net van netwerkverkeer nie, maar neem dit ook vanaf enige netwerkaandrywers en, byvoorbeeld, CRM-stelsels.

Bron: will.com

Voeg 'n opmerking