Interaktion med Check Point SandBlast via API

Interaktion med Check Point SandBlast via API

Den här artikeln kommer att vara användbar för dem som är bekanta med teknik Check Point genom filemulering (Hotemulering) och proaktiv filrensning (Utvinning av hot) och vill ta ett steg mot att automatisera dessa uppgifter. Check Point har Threat Prevention API, som körs både i molnet och på lokala enheter, och funktionellt är det identiskt med att kontrollera filer i webb/smtp/ftp/smb/nfs trafikströmmar. Den här artikeln är delvis författarens tolkning av en uppsättning artiklar från den officiella dokumentationen, men baserad på min egen operativa erfarenhet och mina egna exempel. Även i artikeln hittar du författarens Postman-samlingar för att arbeta med Threat Prevention API.

Grundläggande förkortningar

Threat Prevention API fungerar med tre huvudkomponenter, som anropas i API:t genom följande textvärden:

av — Antiviruskomponent, ansvarig för signaturanalys av kända hot.

te - Threat Emulation-komponent, ansvarig för att kontrollera filer i sandlådan och göra en skadlig/godartad dom efter emulering.

extraktion - Threat Extraction-komponent, ansvarig för att snabbt konvertera kontorsdokument till en säker form (i vilken allt potentiellt skadligt innehåll tas bort), för att snabbt kunna leverera dem till användare/system.

API-struktur och huvudsakliga begränsningar

Threat Prevention API använder endast 4 förfrågningar - ladda upp, fråga, ladda ner och kvotera. I rubriken för alla fyra förfrågningar måste du skicka API-nyckeln med parametern Tillstånd. Vid första anblicken kan strukturen verka mycket enklare än i Management API, men antalet fält i uppladdnings- och frågeförfrågningarna och strukturen för dessa förfrågningar är ganska komplexa. Dessa kan funktionellt jämföras med Threat Prevention-profiler i en säkerhetspolicy för gateway/sandlåda.

För närvarande har den enda versionen av Threat Prevention API släppts - 1.0; URL:en för API-anrop bör inkludera v1 i den del där du behöver ange version. Till skillnad från Management API är det nödvändigt att ange API-versionen i URL:en, annars kommer begäran inte att exekveras.

Antiviruskomponenten, när den anropas utan andra komponenter (te, extraktion), stöder för närvarande endast frågeförfrågningar med md5-hashsummor. Threat Emulation och Threat Extraction stöder också sha1 och sha256 hashsummor.

Det är mycket viktigt att inte göra fel i frågor! Begäran kan utföras utan fel, men inte helt. Tittar vi lite framåt, låt oss titta på vad som kan hända när det finns fel/stavfel i frågor.

Begäran med ett stavfel med ordet reports(reportss)

{ "request":  [  

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

Det blir inga fel i svaret, men det kommer ingen information om rapporterna alls

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

Men för en förfrågan utan stavfel i rapporttangenten

{ "request":  [  

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

Vi får ett svar som redan innehåller id för nedladdning av rapporter

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

Om vi ​​skickar en felaktig/förfallen API-nyckel får vi ett 403-fel som svar.

SandBlast API: i molnet och på lokala enheter

API-förfrågningar kan skickas till Check Point-enheter som har Threat Emulation-komponenten (bladet) aktiverad. Som adress för förfrågningar måste du använda enhetens ip/url och port 18194 (till exempel https://10.10.57.19:18194/tecloud/api/v1/file/query). Du bör också se till att säkerhetspolicyn på enheten tillåter en sådan anslutning. Auktorisering via API-nyckel på lokala enheter som standard av och auktoriseringsnyckeln i förfrågningshuvuden kanske inte skickas alls.

API-förfrågningar till CheckPoint-molnet ska skickas till te.checkpoint.com (till exempel - https://te.checkpoint.com/tecloud/api/v1/file/query). API-nyckeln kan erhållas som en testlicens i 60 dagar genom att kontakta Check Point-partners eller företagets lokala kontor.

På lokala enheter stöds ännu inte Threat Extraction som standard. Threat Prevention API och bör användas Threat Prevention API för Security Gateway (vi kommer att prata om det mer i detalj i slutet av artikeln).

Lokala enheter stöder inte kvotbegäran.

Annars finns det inga skillnader mellan förfrågningar till lokala enheter och till molnet.

Ladda upp API-anrop

Metod som används − POST

Ring adress - https:///tecloud/api/v1/file/uppladdning

Begäran består av två delar (form-data): en fil avsedd för emulering/rengöring och en förfrågningstext med text.

Textbegäran kan inte vara tom, men den kanske inte innehåller någon konfiguration. För att begäran ska lyckas måste du skicka minst följande text i begäran:

Minimum krävs för en uppladdningsbegäran

HTTP POST

https:///tecloud/api/v1/file/uppladdning

rubriker:

Tillstånd:

Kaross

{

"request": {

}

}

Fil

Fil

I det här fallet kommer filen att bearbetas i enlighet med standardparametrarna: komponent - te, OS-bilder - Vinn XP och Win 7utan att skapa en rapport.

Kommentarer till huvudfälten i textförfrågan:

filnamn и filtyp Du kan lämna dem tomma eller inte skicka dem alls, eftersom detta inte är särskilt användbar information när du laddar upp en fil. I API-svaret kommer dessa fält att fyllas i automatiskt baserat på namnet på den nedladdade filen, och informationen i cachen kommer fortfarande att behöva sökas med md5/sha1/sha256 hash-mängder.

Exempelförfrågan med tomt filnamn och filtyp

{

"request": {

"file_name": "",

"file_type": "",

}

}

pass — en lista som anger nödvändig funktionalitet vid bearbetning i sandlådan - av (Anti-Virus), te (Threat Emulation), extraction (Threat Extraction). Om denna parameter inte skickas alls, kommer bara standardkomponenten att användas - te (Threat Emulation).

För att aktivera incheckning av de tre tillgängliga komponenterna måste du ange dessa komponenter i API-begäran.

Exempel på förfrågan med incheckning av, te och extraktion

{ "request":  [  

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

Knappar i te-sektionen

bilder — En lista som innehåller ordböcker med id och revisionsnummer för de operativsystem där kontrollen kommer att utföras. ID:n och revisionsnummer är desamma för alla lokala enheter och molnet.

Lista över operativsystem och revisioner

Tillgängligt OS Image ID

Revision

Bild OS och applikation

e50e99f3-5963-4573-af9e-e3f4750b55e2

1

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

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

1

Microsoft Windows: 7 - 32 bitar
Office: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash spelare: 10.2r152 (InsticksmodulenActiveX)
Java Runtime: 1.6.0u0

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

1

Microsoft Windows: 7 - 32 bitar
Office: 2010
Adobe Acrobat Reader: 9.4
Flash spelare: 11.0.1.152 (Insticksmodulen & ActiveX)
Java Runtime: 1.7.0u0

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

1

Microsoft Windows: 7 - 32 bitar
Office: 2013
Adobe Acrobat Reader: 11.0
Flash spelare: 15 (Insticksmodulen & ActiveX)
Java Runtime: 1.7.0u9

3ff3ddae-e7fd-4969-818c-d5f1a2be336d

1

Microsoft Windows: 7 - 64 bitar
Office: 2013 (32bit)
Adobe Acrobat Reader: 11.0.01
Flash spelare: 13 (Insticksmodulen & ActiveX)
Java Runtime: 1.7.0u9

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

 

Microsoft Windows: 8.1 - 64 bitar
Office: 2013 (64bit)
Adobe Acrobat Reader: 11.0.10
Flash spelare: 18.0.0.160 (Insticksmodulen & ActiveX)
Java Runtime: 1.7.0u9

10b4a9c6-e414-425c-ae8b-fe4dd7b25244 

 

1

Microsoft Windows: 10
Office: Professional Plus 2016 sv-us  
Adobe Acrobat Reader: DC 2015 MUI
Flash spelare: 20 (Insticksmodulen & ActiveX)
Java Runtime: 1.7.0u9

Om bildnyckeln inte är specificerad alls, kommer emulering att ske i bilder som rekommenderas av Check Point (för närvarande Win XP och Win 7). Dessa bilder rekommenderas baserat på överväganden om den bästa balansen mellan prestanda och fångsthastighet.

rapporter — en lista över rapporter som vi begär om filen skulle visa sig vara skadlig. Följande alternativ är tillgängliga:

  1. sammanfattning - .tar.gz-arkiv som innehåller en rapport om emulering av alla efterfrågade bilder (både en HTML-sida och komponenter som en video från emulatorns operativsystem, en nätverkstrafikdump, en rapport i json och själva provet i ett lösenordsskyddat arkiv). Vi letar efter nyckeln i svaret - sammanfattande rapport för senare nedladdning av rapporten.

  2. pdf - dokument om emulering i ett bild, som många är vana vid att få via Smart Console. Vi letar efter nyckeln i svaret - pdf_rapport för senare nedladdning av rapporten.

  3. xml - dokument om emulering i ett bild, bekvämt för efterföljande analys av parametrar i rapporten. Vi letar efter nyckeln i svaret - xml_report för senare nedladdning av rapporten.

  4. tjära - .tar.gz-arkiv som innehåller en rapport om emulering i ett efterfrågade bilder (både en HTML-sida och komponenter som en video från emulatorns operativsystem, en nätverkstrafikdump, en rapport i json och själva provet i ett lösenordsskyddat arkiv). Vi letar efter nyckeln i svaret - fullständig_rapport för senare nedladdning av rapporten.

Vad finns i den sammanfattande rapportenInteraktion med Check Point SandBlast via API

Nycklarna full_report, pdf_report, xml_report finns i ordlistan för varje operativsystem

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

Men summary_report-nyckeln - det finns en för emulering i allmänhet

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

Du kan begära tar- och xml- och pdf-rapporter samtidigt, du kan begära sammanfattning och tar och xml. Det kommer inte att vara möjligt att begära en sammanfattande rapport och en pdf samtidigt.

Knappar i extraktionssektionen

För hotextraktion används endast två nycklar:

metod — pdf (konvertera till pdf, används som standard) eller ren (rensar aktivt innehåll).

extraherade_delar_koder - lista över koder för att ta bort aktivt innehåll, endast tillämplig för den rena metoden

Koder för att ta bort innehåll från filer

Koda

Beskrivning

1025

Länkade objekt

1026

Makron och kod

1034

Känsliga hyperlänkar

1137

PDF GoToR-åtgärder

1139

PDF-startåtgärder

1141

PDF URI-åtgärder

1142

PDF Ljudåtgärder

1143

PDF-filmåtgärder

1150

PDF JavaScript-åtgärder

1151

PDF Skicka formuläråtgärder

1018

Databasfrågor

1019

Inbäddade objekt

1021

Snabbt spara data

1017

Anpassade egenskaper

1036

Statistiska egenskaper

1037

Sammanfattningsegenskaper

För att ladda ner en rensad kopia måste du också göra en frågeförfrågan (som kommer att diskuteras nedan) efter några sekunder, och specificera hash-mängden för filen och extraktionskomponenten i begäranstexten. Du kan hämta den rensade filen med id:t från svaret på frågan - extracted_file_download_id. Återigen, när jag ser lite framåt, ger jag exempel på en förfrågan och ett frågesvar för att söka efter ett id för att ladda ner ett rensat dokument.

Fråga för att söka efter nyckeln extracted_file_download_id

{ "request":  [  

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

Svar på fråga (leta efter nyckel för extracted_file_download_id)

{
    "response": [
        {
            "status": {
                "code": 1001,
                "label": "FOUND",
                "message": "The request has been fully answered."
            },
            "sha256": "9a346005ee8c9adb489072eb8b5b61699652962c17596de9c326ca68247a8876",
            "file_type": "",
            "file_name": "",
            "features": [
                "extraction"
            ],
            "extraction": {
                "method": "pdf",
                "extract_result": "CP_EXTRACT_RESULT_SUCCESS",
                "extracted_file_download_id": "b5f2b34e-3603-4627-9e0e-54665a531ab2",
                "output_file_name": "kp-20-xls.cleaned.xls.pdf",
                "time": "0.013",
                "extract_content": "Macros and Code",
                "extraction_data": {
                    "input_extension": "xls",
                    "input_real_extension": "xls",
                    "message": "OK",
                    "output_file_name": "kp-20-xls.cleaned.xls.pdf",
                    "protection_name": "Potential malicious content extracted",
                    "protection_type": "Conversion to PDF",
                    "protocol_version": "1.0",
                    "risk": 5.0,
                    "scrub_activity": "Active content was found - XLS file was converted to PDF",
                    "scrub_method": "Convert to PDF",
                    "scrub_result": 0.0,
                    "scrub_time": "0.013",
                    "scrubbed_content": "Macros and Code"
                },
                "tex_product": false,
                "status": {
                    "code": 1001,
                    "label": "FOUND",
                    "message": "The request has been fully answered."
                }
            }
        }
    ]
}

Översikt

I ett API-anrop kan du bara skicka en fil för verifiering.

Av-komponenten kräver inte en extra sektion med nycklar, det räcker med att ange den i ordboken pass.

Fråga API-anrop

Metod som används − POST

Ring adress - https:///tecloud/api/v1/file/query

Innan du skickar en fil för nedladdning (uppladdningsbegäran) är det lämpligt att kontrollera sandlådecachen (förfrågansbegäran) för att optimera belastningen på API-servern, eftersom API-servern redan kan ha information och ett omdöme om den nedladdade filen. Samtalet består endast av en textdel. Den nödvändiga delen av begäran är sha1/sha256/md5 hash-mängd av filen. Du kan förresten få det i svaret på uppladdningsförfrågan.

Minimum krävs för fråga

HTTP POST

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

rubriker:

Tillstånd:

Kaross

{

"request": {

"sha256":

}

}

Ett exempel på ett svar på en uppladdningsbegäran, där sha1/md5/sha256 hashbelopp är synliga

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

Frågeförfrågan, utöver hashbeloppet, bör helst vara densamma som uppladdningsbegäran var (eller planeras att vara), eller till och med "redan" (innehålla färre fält i frågeförfrågan än i uppladdningsbegäran). I det fall då frågeförfrågan innehåller fler fält än vad som fanns i uppladdningsbegäran, kommer du inte att få all nödvändig information i svaret.

Här är ett exempel på ett svar på en fråga där inte alla nödvändiga data hittades

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

Var uppmärksam på fälten koda и etikett. Dessa fält visas tre gånger i statusordböcker. Först ser vi den globala nyckeln "code": 1006 och "label": "PARTIALLY_FOUND". Därefter hittas dessa nycklar för varje enskild komponent som vi begärde - te och extraktion. Och om det är tydligt att data har hittats, så finns det ingen information för utvinning.

Så här såg frågan ut för exemplet ovan

{ "request":  [  

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

Om du skickar en förfrågan utan extraktionskomponenten

{ "request":  [  

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

Då kommer svaret att innehålla fullständig information ("kod": 1001, "etikett": "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."
        }
      }
    }
  ]
}

Om det inte finns någon information i cachen alls, kommer svaret att vara "label": "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."
        }
      }
    }
  ]
}

I ett API-anrop kan du skicka flera hashbelopp samtidigt för verifiering. Svaret kommer att returnera data i samma ordning som det skickades i begäran.

Exempel på frågeförfrågan med flera sha256-belopp

{ "request":  [  

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

Svar på en fråga med flera sha256-belopp

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

Att begära flera hashsummor samtidigt i en frågeförfrågan kommer också att ha en gynnsam effekt på API-serverns prestanda.

Ladda ner API-anrop

Metod som används − POST (enligt dokumentation), fungerar också (och kan verka mer logiskt)

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

Rubriken kräver att API-nyckeln skickas, brödtexten i begäran är tom, nedladdnings-ID:t skickas i URL-adressen.

Som svar på en frågeförfrågan, om emuleringen är klar och rapporter begärdes när filen laddades ner, kommer ID:t för nedladdning av rapporter att vara synligt. Om en rensad kopia efterfrågas bör du leta efter id:t för att ladda ner det rensade dokumentet.

Totalt kan nycklarna i svaret på frågan som innehåller id-värdet för laddning vara:

  • sammanfattande rapport

  • fullständig_rapport

  • pdf_rapport

  • xml_report

  • extraherad_fil_nedladdnings-id

Naturligtvis, för att ta emot dessa nycklar som svar på frågeförfrågan måste de anges i begäran (för rapporter) eller komma ihåg att göra en begäran med hjälp av extraheringsfunktionen (för rensade dokument)

Quota API-anrop

Metod som används − POST

Ring adress - https:///tecloud/api/v1/file/quota

För att kontrollera den återstående kvoten i molnet, använd kvotfrågan. Begäran är tom.

Exempel på svar på en kvotförfrågan

{
  "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 för Security Gateway

Detta API utvecklades före Threat Prevention API och är endast avsett för lokala enheter. För närvarande kan det bara vara användbart om du behöver Threat Extraction API. För Threat Emulation är det bättre att använda det vanliga Threat Prevention API. Att slå på TP API för SG och konfigurera API-nyckeln du behöver följa stegen från sk113599. Jag rekommenderar att du uppmärksammar steg 6b och kontrollerar sidans tillgänglighet https://<IPAddressofSecurityGateway>/UserCheck/TPAPI eftersom ytterligare konfiguration inte är meningsfull vid ett negativt resultat. Alla API-anrop kommer att skickas till den här webbadressen. Anropstypen (uppladdning/förfrågan) regleras i samtalets huvudknapp − request_name. Också nödvändiga nycklar är - api_key (du måste komma ihåg det under konfigurationsprocessen) och protocol_version (för närvarande är den nuvarande versionen 1.1). Du hittar den officiella dokumentationen för detta API på sk137032. Relativa fördelar inkluderar möjligheten att skicka flera filer samtidigt för emulering när de laddas, eftersom filerna skickas som en base64-textsträng. För att koda/avkoda filer till/från base64 kan du använda en onlinekonverterare i Postman för demonstrationsändamål, till exempel - https://base64.guru. För praktiska ändamål bör du använda de inbyggda kodnings- och avkodningsmetoderna när du skriver kod.

Låt oss nu titta närmare på funktionerna te и extraktion i detta API.

För komponent te ordbok tillhandahålls te_alternativ i uppladdnings-/frågaförfrågningar, och nycklarna i denna begäran sammanfaller helt med te-nycklarna Threat Prevention API.

Exempelbegäran för filemulering i Win10 med rapporter

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

För komponent extraktion ordbok tillhandahålls scrub_options. Denna begäran anger rengöringsmetoden: konvertera till PDF, rensa aktivt innehåll eller välj ett läge i enlighet med profilen för förebyggande av hot (profilnamnet anges). Det fantastiska med att svara på en extraktions-API-begäran för en fil är att du får den rensade kopian i svaret på den begäran som en base64-krypterad sträng (du behöver inte göra en frågeförfrågan och slå upp id:t för att ladda ner dokumentet)

Exempel på en begäran om att rensa en fil

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

Svara på begäran

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

Trots det faktum att färre API-förfrågningar krävs för att få en godkänd kopia, tycker jag att det här alternativet är mindre föredraget och bekvämt än formulärdatabegäran som används i Threat Prevention API.

Postman Samlingar

Jag skapade samlingar i Postman för både Threat Prevention API och Threat Prevention API för Security Gateway, som representerar de vanligaste API-förfrågningarna. För att serverns ip/url API och nyckel automatiskt ska ersättas med förfrågningar, och sha256 hash-mängden ska komma ihåg efter nedladdning av filen, har tre variabler skapats inuti samlingarna (du kan hitta dem genom att gå till samlingsinställningarna Redigera -> Variabler): te_api (obligatoriskt), api_key (krävs att fyllas i, förutom när du använder TP API med lokala enheter), sha256 (lämna tomt, används inte i TP API för SG).

Ladda ner Postman-samlingen för Threat Prevention API

Ladda ner Postman-samlingen för Threat Prevention for Security Gateway API

Exempel på användning

I samhället Kolla kompisar skript skrivna i Python presenteras som kontrollerar filer från önskad katalog via TP API, och TP API för SG. Genom interaktion med Threat Prevention API utökas din förmåga att skanna filer avsevärt, eftersom du nu kan skanna filer på flera plattformar samtidigt (checkar in VirusTotal API, och sedan i Check Point-sandlådan), och ta emot filer inte bara från nätverkstrafik, utan också ta dem från alla nätverksenheter och till exempel CRM-system.

Källa: will.com

Lägg en kommentar