API vasitəsilə Check Point SandBlast ilə qarşılıqlı əlaqə

API vasitəsilə Check Point SandBlast ilə qarşılıqlı əlaqə

Bu məqalə texnologiya ilə tanış olanlar üçün faydalı olacaqdır Point yoxlayın fayl emulyasiyası ilə (Təhdid Emulyasiyası) və proaktiv fayl təmizlənməsi (Təhlükənin çıxarılması) və bu vəzifələrin avtomatlaşdırılması istiqamətində addım atmaq istəyir. Check Point var Təhdidlərin qarşısının alınması API, həm buludda, həm də yerli cihazlarda işləyən və funksional olaraq web/smtp/ftp/smb/nfs trafik axınlarında faylların yoxlanılması ilə eynidir.. Bu məqalə qismən rəsmi sənədlərdəki məqalələr toplusunun müəllifin şərhidir, lakin öz əməliyyat təcrübəmə və öz nümunələrimə əsaslanır. Həmçinin məqalədə Təhlükənin qarşısının alınması API ilə işləmək üçün müəllifin Postman kolleksiyalarını tapa bilərsiniz.

Əsas abbreviaturalar

Threat Prevention API API-də aşağıdakı mətn dəyərləri vasitəsilə çağırılan üç əsas komponentlə işləyir:

av — Məlum təhlükələrin imza analizinə cavabdeh olan Anti-Virus komponenti.

te - Təhdid Emulyasiyası komponenti, qum qutusundakı faylların yoxlanılması və emulyasiyadan sonra zərərli/yaxşı qərarın verilməsi üçün cavabdehdir.

hasilat - Təhlükələrin çıxarılması komponenti, ofis sənədlərini tez bir zamanda istifadəçilərə/sistemlərə çatdırmaq üçün təhlükəsiz formaya (bütün potensial zərərli məzmunun silindiyi) çevrilməsinə cavabdehdir.

API strukturu və əsas məhdudiyyətlər

Threat Prevention API yalnız 4 sorğudan istifadə edir - yükləmə, sorğu, yükləmə və kvota. Bütün dörd sorğu üçün başlıqda parametrdən istifadə edərək API açarını ötürməlisiniz Icazə. İlk baxışdan quruluş əvvəlkindən daha sadə görünə bilər İdarəetmə API, lakin yükləmə və sorğu sorğularında sahələrin sayı və bu sorğuların strukturu kifayət qədər mürəkkəbdir. Bunlar funksional olaraq şlüz/sandbox təhlükəsizlik siyasətində Təhlükənin qarşısının alınması profilləri ilə müqayisə oluna bilər.

Hazırda təhlükənin qarşısının alınması API-nin yeganə versiyası buraxılmışdır - 1.0; API zəngləri üçün URL daxil edilməlidir v1 versiyanı göstərməyiniz lazım olan hissədə. İdarəetmə API-dən fərqli olaraq, URL-də API versiyasını göstərmək lazımdır, əks halda sorğu yerinə yetirilməyəcək.

Anti-Virus komponenti digər komponentlər olmadan (te, çıxarış) çağırıldıqda, hazırda yalnız md5 hash məbləğləri ilə sorğu sorğularını dəstəkləyir. Təhdid Emulyasiyası və Təhdid Çıxarışı da sha1 və sha256 hash məbləğlərini dəstəkləyir.

Sorğularda səhv etməmək çox vacibdir! Sorğu səhvsiz yerinə yetirilə bilər, lakin tam deyil. Bir az irəliyə baxaraq, sorğularda səhvlər/yazı xətləri olduqda nələrin baş verə biləcəyinə baxaq.

Hesabatlar (reportss) sözü ilə yazı səhvi ilə sorğu

{ "request":  [  

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

Cavabda heç bir səhv olmayacaq, lakin hesabatlar haqqında ümumiyyətlə məlumat olmayacaq

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

Lakin hesabat açarında yazı xətası olmayan sorğu üçün

{ "request":  [  

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

Hesabatları endirmək üçün artıq id ehtiva edən cavab alırıq

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

Yanlış/müddəti bitmiş API açarı göndərsək, cavab olaraq 403 xətası alacağıq.

SandBlast API: buludda və yerli cihazlarda

API sorğuları Təhdid Emulyasiya komponenti (bıçaq) aktivləşdirilmiş Check Point cihazlarına göndərilə bilər. Sorğular üçün ünvan kimi cihazın ip/url-indən və 18194 portundan istifadə etməlisiniz (məsələn, https://10.10.57.19:18194/tecloud/api/v1/file/query). Siz həmçinin cihazdakı təhlükəsizlik siyasətinin belə bir əlaqəyə icazə verdiyinə əmin olmalısınız. Defolt olaraq yerli cihazlarda API açarı vasitəsilə avtorizasiya off və sorğu başlıqlarında Avtorizasiya açarı ümumiyyətlə göndərilə bilməz.

CheckPoint buluduna API sorğuları göndərilməlidir te.checkpoint.com (məsələn - https://te.checkpoint.com/tecloud/api/v1/file/query). API açarını Check Point tərəfdaşları və ya şirkətin yerli ofisi ilə əlaqə saxlamaqla 60 gün müddətinə sınaq lisenziyası kimi əldə etmək olar.

Yerli cihazlarda Təhdidlərin çıxarılması standart olaraq hələ dəstəklənmir. Təhdidlərin qarşısının alınması API və istifadə edilməlidir Təhlükəsizlik Gateway üçün Təhdidlərin qarşısının alınması API (bu barədə məqalənin sonunda daha ətraflı danışacağıq).

Yerli cihazlar kvota sorğusunu dəstəkləmir.

Əks halda, yerli cihazlar və bulud sorğuları arasında heç bir fərq yoxdur.

API çağırışını yükləyin

İstifadə olunan üsul - POST

Zəng ünvanı - https:///tecloud/api/v1/file/upload

Sorğu iki hissədən (forma-data) ibarətdir: emulyasiya/təmizləmə üçün nəzərdə tutulmuş fayl və mətni olan sorğu orqanı.

Mətn sorğusu boş ola bilməz, lakin heç bir konfiqurasiyaya malik olmaya bilər. Sorğunun uğurlu olması üçün sorğuda ən azı aşağıdakı mətni göndərməlisiniz:

Yükləmə sorğusu üçün minimum tələb olunur

HTTP POST

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

Başlıqlar:

Avtorizasiya:

Bodi

{

"istək": {

}

}

fayl

fayl

Bu halda, fayl standart parametrlərə uyğun olaraq işlənəcək: komponent - te, OS şəkilləri - Win XP və Win 7, hesabat yaratmadan.

Mətn sorğusunda əsas sahələr üzrə şərhlər:

fayl adı и fayl_növü Onları boş qoya və ya ümumiyyətlə göndərməyə bilərsiniz, çünki bu, fayl yükləyərkən xüsusilə faydalı məlumat deyil. API cavabında bu sahələr endirilmiş faylın adına əsasən avtomatik doldurulacaq və keşdəki məlumat hələ də md5/sha1/sha256 hash məbləğlərindən istifadə etməklə axtarılmalıdır.

Boş fayl_adı və fayl_tipi ilə nümunə sorğu

{

"request": {

"file_name": "",

"file_type": "",

}

}

xüsusiyyətləri — qum qutusunda emal edərkən lazımi funksionallığı göstərən siyahı - av (Anti-Virus), te (Təhlükə Emulyasiyası), çıxarma (Threat Extraction). Əgər bu parametr ümumiyyətlə qəbul edilmirsə, onda yalnız standart komponent istifadə olunacaq - te (Threat Emulation).

Üç mövcud komponentin yoxlanılmasını aktivləşdirmək üçün API sorğusunda bu komponentləri göstərməlisiniz.

Av, te və çıxarışların yoxlanılması ilə sorğu nümunəsi

{ "request":  [  

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

Te bölməsində açarlar

şəkillər — yoxlamanın aparılacağı əməliyyat sistemlərinin id və reviziya nömrəsi olan lüğətlərdən ibarət siyahı. İdentifikatorlar və təftiş nömrələri bütün yerli cihazlar və bulud üçün eynidir.

Əməliyyat sistemlərinin və düzəlişlərin siyahısı

Mövcud OS Image ID

Təftiş

Şəkil ƏS və Tətbiq

e50e99f3-5963-4573-af9e-e3f4750b55e2

1

Microsoft Windows: XP - 32 bit SP3
Ofis: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash Player 9r115 və ActiveX 10.0
Java icra müddəti: 1.6.0u22

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

1

Microsoft Windows: 7 - 32 bit
Ofis: 2003, 2007
Adobe Acrobat Reader: 9.0
flash player: 10.2r152 (PluginActiveX)
Java icra müddəti: 1.6.0u0

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

1

Microsoft Windows: 7 - 32 bit
Ofis: 2010
Adobe Acrobat Reader: 9.4
flash player: 11.0.1.152 (Plugin & ActiveX)
Java icra müddəti: 1.7.0u0

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

1

Microsoft Windows: 7 - 32 bit
Ofis: 2013
Adobe Acrobat Reader: 11.0
flash player: 15 (Plugin & ActiveX)
Java icra müddəti: 1.7.0u9

3ff3ddae-e7fd-4969-818c-d5f1a2be336d

1

Microsoft Windows: 7 - 64 bit
Ofis: 2013 (32 bit)
Adobe Acrobat Reader: 11.0.01
flash player: 13 (Plugin & ActiveX)
Java icra müddəti: 1.7.0u9

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

 

Microsoft Windows: 8.1 - 64 bit
Ofis: 2013 (64 bit)
Adobe Acrobat Reader: 11.0.10
flash player: 18.0.0.160 (Plugin & ActiveX)
Java icra müddəti: 1.7.0u9

10b4a9c6-e414-425c-ae8b-fe4dd7b25244 

 

1

Microsoft Windows: 10
Ofis: Professional Plus 2016 en-us  
Adobe Acrobat Reader: DC 2015 MUI
flash player: 20 (Plugin & ActiveX)
Java icra müddəti: 1.7.0u9

Şəkillər açarı ümumiyyətlə göstərilməyibsə, emulyasiya Check Point tərəfindən tövsiyə olunan şəkillərdə baş verəcək (hazırda Win XP və Win 7). Bu şəkillər ən yaxşı performans və tutma nisbəti mülahizələrinə əsasən tövsiyə olunur.

hesabat — faylın zərərli olduğu ortaya çıxdıqda tələb etdiyimiz hesabatların siyahısı. Aşağıdakı seçimlər mövcuddur:

  1. xülasə - tərəfindən emulyasiya haqqında hesabatı ehtiva edən .tar.gz arxivi bütün tələb olunan şəkillər (həm html səhifəsi, həm də emulator ƏS-dən video, şəbəkə trafikinin boşaldılması, json-da hesabat və parolla qorunan arxivdəki nümunənin özü kimi komponentlər). Cavabda açar axtarırıq - xülasə_hesabat hesabatın sonrakı yüklənməsi üçün.

  2. pdf - emulyasiya haqqında sənəd bir çoxlarının Smart Console vasitəsilə almağa adət etdiyi görüntü. Cavabda açar axtarırıq - pdf_hesabat hesabatın sonrakı yüklənməsi üçün.

  3. xml - emulyasiya haqqında sənəd bir hesabatda parametrlərin sonrakı təhlili üçün əlverişli olan şəkil. Cavabda açar axtarırıq - xml_report hesabatın sonrakı yüklənməsi üçün.

  4. tar - .tar.gz arxivində təqlid haqqında hesabat var bir tələb olunan şəkillər (həm html səhifəsi, həm də emulator ƏS-dən video, şəbəkə trafikinin boşaldılması, json-da hesabat və parolla qorunan arxivdəki nümunənin özü kimi komponentlər). Cavabda açar axtarırıq - tam_hesabat hesabatın sonrakı yüklənməsi üçün.

Xülasə hesabatında nə varAPI vasitəsilə Check Point SandBlast ilə qarşılıqlı əlaqə

full_report, pdf_report, xml_report düymələri hər bir ƏS üçün lüğətdədir

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

Ancaq summary_report açarı - ümumiyyətlə emulyasiya üçün bir var

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

Siz eyni zamanda tar və xml və pdf hesabatlarını istəyə bilərsiniz, xülasə və tar və xml tələb edə bilərsiniz. Eyni zamanda xülasə hesabatı və pdf tələb etmək mümkün olmayacaq.

Çıxarma bölməsində açarlar

Təhlükənin çıxarılması üçün yalnız iki açar istifadə olunur:

üsul — pdf (pdf-ə çevirin, standart olaraq istifadə olunur) və ya təmiz (aktiv məzmunun təmizlənməsi).

çıxarılan_hissələrin_kodları - aktiv məzmunu silmək üçün kodların siyahısı, yalnız təmiz metod üçün tətbiq olunur

Fayllardan məzmunu silmək üçün kodlar

Kodu

təsvir

1025

Əlaqədar Obyektlər

1026

Makrolar və Kod

1034

Həssas Hiperlinklər

1137

PDF GoToR hərəkətləri

1139

PDF başlatma hərəkətləri

1141

PDF URI hərəkətləri

1142

Pdf səs hərəkətləri

1143

Pdf film hərəkətləri

1150

PDF JavaScript hərəkətləri

1151

PDF Göndərmə Forması Əməliyyatları

1018

Verilənlər bazası sorğuları

1019

Daxili Obyektlər

1021

Məlumatları Sürətli Saxla

1017

Xüsusi Xüsusiyyətlər

1036

Statistika Xüsusiyyətləri

1037

Xülasə Xüsusiyyətləri

Təmizlənmiş nüsxəni yükləmək üçün siz həmçinin bir neçə saniyədən sonra sorğu mətnində faylın hash miqdarını və çıxarış komponentini göstərərək sorğu sorğusu (bu barədə aşağıda müzakirə olunacaq) etməli olacaqsınız. Təmizlənmiş faylı sorğuya cavabdan id-dən istifadə edərək götürə bilərsiniz - extracted_file_download_id. Bir daha, bir az irəliyə baxaraq, təmizlənmiş sənədi yükləmək üçün id axtarmaq üçün sorğu və sorğu cavabı nümunələri verirəm.

Extracted_file_download_id açarını axtarmaq üçün sorğu sorğusu

{ "request":  [  

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

Sorğuya cavab (extracted_file_download_id açarını axtarın)

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

Baxış

Bir API çağırışında siz yoxlama üçün yalnız bir fayl göndərə bilərsiniz.

Av komponenti düymələri olan əlavə bölmə tələb etmir, onu lüğətdə qeyd etmək kifayətdir xüsusiyyətləri.

Sorğu API çağırışı

İstifadə olunan üsul - POST

Zəng ünvanı - https:///tecloud/api/v1/file/query

Faylı yükləmək üçün göndərməzdən əvvəl (yükləmə sorğusu), API serverindəki yükü optimallaşdırmaq üçün sandbox keşini (sorğu sorğusu) yoxlamaq məsləhətdir, çünki API serverində artıq yüklənmiş fayl haqqında məlumat və hökm ola bilər. Zəng yalnız mətn hissəsindən ibarətdir. Sorğunun tələb olunan hissəsi faylın sha1/sha256/md5 hash miqdarıdır. Yeri gəlmişkən, onu yükləmə sorğusuna cavabda əldə edə bilərsiniz.

Sorğu üçün minimum tələb olunur

HTTP POST

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

Başlıqlar:

Avtorizasiya:

Bodi

{

"istək": {

"sha256":

}

}

Sha1/md5/sha256 hash məbləğlərinin göründüyü yükləmə sorğusuna cavab nümunəsi

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

Sorğu sorğusu, hash məbləğindən əlavə, ideal olaraq yükləmə sorğusu ilə eyni olmalıdır (və ya olması planlaşdırılır) və ya hətta “artıq” (sorğu sorğusunda yükləmə sorğusundan daha az sahə ehtiva edir). Sorğu sorğusunda yükləmə sorğusunda olduğundan daha çox sahə varsa, siz cavabda bütün tələb olunan məlumatları qəbul etməyəcəksiniz.

Bütün tələb olunan məlumatların tapılmadığı bir sorğuya cavab nümunəsidir

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

Sahələrə diqqət yetirin kod и etiket. Bu sahələr status lüğətlərində üç dəfə görünür. Əvvəlcə qlobal açar "kodu" görürük: 1006 və "etiket": "PARTIALLY_FOUND". Sonra, bu açarlar tələb etdiyimiz hər bir fərdi komponent üçün tapılır - te və çıxarış. Əgər məlumatların tapıldığı aydındırsa, çıxarış üçün heç bir məlumat yoxdur.

Yuxarıdakı nümunə üçün sorğu belə görünürdü

{ "request":  [  

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

Çıxarış komponenti olmadan sorğu sorğusu göndərsəniz

{ "request":  [  

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

Daha sonra cavabda tam məlumat olacaq (“kod”: 1001, “etiket”: “TAPADI”)

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

Keşdə ümumiyyətlə məlumat yoxdursa, cavab "etiket" olacaq: "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."
        }
      }
    }
  ]
}

Bir API çağırışında siz yoxlama üçün eyni anda bir neçə hash məbləği göndərə bilərsiniz. Cavab məlumatları sorğuda göndərildiyi qaydada qaytaracaq.

Bir neçə sha256 məbləği ilə nümunə sorğu sorğusu

{ "request":  [  

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

Çox sayda sha256 məbləği olan sorğuya cavab

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

Sorğu sorğusunda eyni anda bir neçə hash məbləğinin tələb edilməsi də API serverinin işinə faydalı təsir göstərəcək.

API zəngi yükləyin

İstifadə olunan üsul - POST (sənədlərə görə), GET da işləyir (və daha məntiqli görünə bilər)

Zəng ünvanı - https:///tecloud/api/v1/file/download?id=

Başlıq API açarının ötürülməsini tələb edir, sorğunun əsas hissəsi boşdur, yükləmə id-si URL ünvanına ötürülür.

Sorğu sorğusuna cavab olaraq, emulyasiya tamamlanıbsa və faylı endirərkən hesabatlar tələb olunubsa, hesabatların endirilməsi üçün id görünəcək. Təmizlənmiş nüsxə tələb olunarsa, təmizlənmiş sənədi yükləmək üçün id-ni axtarmalısınız.

Ümumilikdə, yükləmə üçün id dəyərini ehtiva edən sorğuya cavabda olan düymələr ola bilər:

  • xülasə_hesabat

  • tam_hesabat

  • pdf_hesabat

  • xml_report

  • çıxarılmış_fayl_download_id

Əlbəttə ki, sorğu sorğusuna cavab olaraq bu açarları almaq üçün onlar sorğuda göstərilməlidir (hesabatlar üçün) və ya çıxarma funksiyasından istifadə edərək sorğu verməyi unutmayın (təmizlənmiş sənədlər üçün)

Kvota API çağırışı

İstifadə olunan üsul - POST

Zəng ünvanı - https:///tecloud/api/v1/file/quota

Buludda qalan kvotanı yoxlamaq üçün kvota sorğusundan istifadə edin. Sorğunun əsas hissəsi boşdur.

Kvota sorğusuna cavab nümunəsi

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

Təhlükəsizlik Gateway üçün Təhdidlərin qarşısının alınması API

Bu API Təhdidlərin qarşısının alınması API-dən əvvəl hazırlanmışdır və yalnız yerli cihazlar üçün nəzərdə tutulub. Hələlik o, yalnız Threat Extraction API ehtiyacınız olduqda faydalı ola bilər. Təhlükə Emulyasiyası üçün adi Təhlükənin qarşısının alınması API-dən istifadə etmək daha yaxşıdır. Yandırmaq üçün SG üçün TP API və addımları izləmək üçün lazım olan API açarını konfiqurasiya edin sk113599. 6b addımına diqqət yetirməyi və səhifənin əlçatanlığını yoxlamağı tövsiyə edirəm https://<IPAddressofSecurityGateway>/UserCheck/TPAPI çünki mənfi nəticə halında əlavə konfiqurasiyanın mənası yoxdur. Bütün API zəngləri bu URL-ə göndəriləcək. Zəng növü (yükləmə/sorğu) zəng əsas düyməsində tənzimlənir - sorğu_adı. Tələb olunan açarlar da var - api_key (konfiqurasiya prosesi zamanı bunu yadda saxlamaq lazımdır) və protokol_versiya (hazırda cari versiya 1.1-dir). Bu API üçün rəsmi sənədləri burada tapa bilərsiniz sk137032. Nisbi üstünlüklərə bir neçə faylı yükləyərkən emulyasiya üçün eyni anda göndərmək imkanı daxildir, çünki fayllar base64 mətn sətri kimi göndərilir. Faylları base64-dən kodlaşdırmaq/deşifrə etmək üçün siz nümayiş məqsədləri üçün Postman-da onlayn çeviricidən istifadə edə bilərsiniz, məsələn - https://base64.guru. Praktik məqsədlər üçün kod yazarkən daxili kodlaşdırma və deşifrə üsullarından istifadə etməlisiniz.

İndi funksiyalara daha yaxından nəzər salaq te и hasilat bu API-də.

Komponent üçün te lüğət təmin edilmişdir te_seçimlər yükləmə/sorğu sorğularında və bu sorğudakı düymələr in te düymələri ilə tamamilə üst-üstə düşür Təhdidlərin qarşısının alınması API.

Hesabatlarla Win10-da fayl emulyasiyası üçün nümunə sorğusu

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

Komponent üçün hasilat lüğət təmin edilmişdir skrub_seçimləri. Bu sorğu təmizləmə üsulunu müəyyən edir: PDF-ə çevirin, aktiv məzmunu təmizləyin və ya Təhlükənin qarşısının alınması profilinə uyğun rejim seçin (profil adı göstərilir). Fayl üçün hasilat API sorğusuna cavab vermənin ən yaxşı tərəfi odur ki, bu sorğuya cavab olaraq base64 şifrəli sətir kimi təmizlənmiş surət əldə edirsiniz (sizə sorğu sorğusu göndərmək və faylı yükləmək üçün id-yə baxmaq lazım deyil) sənəd)

Faylı təmizləmək üçün sorğu nümunəsi

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

Sorğuya cavab verin

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

Təmizlənmiş nüsxə əldə etmək üçün daha az API sorğusu tələb olunmasına baxmayaraq, mən bu seçimi istifadə edilən forma-data sorğusundan daha az üstünlüklü və əlverişli hesab edirəm. Təhdidlərin qarşısının alınması API.

Poçtalyon kolleksiyaları

Mən ən çox yayılmış API sorğularını təmsil edən Təhlükənin Qarşısının Alınması API və Təhlükəsizlik Gateway üçün Təhlükənin qarşısının alınması API üçün Postman-da kolleksiyalar yaratdım. Server ip/url API və açarının avtomatik olaraq sorğularda əvəzlənməsi və faylı endirdikdən sonra sha256 hash məbləğinin yadda qalması üçün kolleksiyaların daxilində üç dəyişən yaradılıb (onları kolleksiya parametrlərinə keçməklə tapa bilərsiniz) Redaktə et -> Dəyişənlər): te_api (tələb olunur), api_key (yerli cihazlarla TP API istifadə halları istisna olmaqla, doldurulması tələb olunur), sha256 (boş buraxın, SG üçün TP API-də istifadə edilmir).

Threat Prevention API üçün Postman kolleksiyasını endirin

Təhlükəsizlik Gateway API üçün Təhlükənin qarşısının alınması üçün Poçtalyon kolleksiyasını endirin

İstifadə nümunələri

Cəmiyyətdə Yoldaşları yoxlayın Python-da yazılmış skriptlər təqdim olunur ki, faylları istədiyiniz kataloqdan yoxlayır TP APISG üçün TP API. Threat Prevention API ilə qarşılıqlı əlaqə sayəsində faylları skan etmək imkanınız əhəmiyyətli dərəcədə genişlənir, çünki indi siz eyni anda bir neçə platformada faylları skan edə bilərsiniz (yoxlanaraq VirusTotal API, və sonra Check Point qum qutusunda) və faylları yalnız şəbəkə trafikindən deyil, həm də istənilən şəbəkə sürücüsündən və məsələn, CRM sistemlərindən götürün.

Mənbə: www.habr.com

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