Интеракција со Check Point SandBlast преку API

Интеракција со Check Point SandBlast преку API

Оваа статија ќе биде корисна за оние кои се запознаени со технологијата Check Point со емулација на датотека (Емулација на закани) и проактивно чистење на датотеки (Екстракција на закана) и сака да направи чекор кон автоматизирање на овие задачи. Check Point има API за спречување на закани, кој работи и во облак и на локални уреди, и функционално е идентично со проверка на датотеки во сообраќајни струи на веб/smtp/ftp/smb/nfs. Оваа статија е делумно интерпретација на авторот на збир на написи од официјалната документација, но врз основа на моето сопствено оперативно искуство и моите сопствени примери. Исто така во статијата ќе ги најдете збирките на авторот Поштар за работа со API за спречување закани.

Основни кратенки

API за спречување закани работи со три главни компоненти, кои се повикуваат во API преку следните текстуални вредности:

av — Анти-вирусна компонента, одговорна за анализа на потпис на познати закани.

te - Компонента Threat Emulation, одговорна за проверка на датотеките во песокот и донесување злонамерна/бенигна пресуда по емулација.

екстракција - Компонента за екстракција на закани, одговорна за брзо конвертирање на канцелариски документи во безбедна форма (во која се отстрануваат сите потенцијално злонамерни содржини), со цел брзо да се достават до корисниците/системите.

Структура на API и главни ограничувања

Threat Prevention API користи само 4 барања − испратите, побарајте, преземете и квотите. Во заглавието за сите четири барања треба да го предадете копчето API користејќи го параметарот Овластување. На прв поглед, структурата може да изгледа многу поедноставна отколку во АПИ за управување, но бројот на полиња во барањата за поставување и барање и структурата на овие барања се доста сложени. Овие можат функционално да се споредат со профилите за спречување закани во безбедносната политика на портал/песок.

Во моментов, единствената верзија на API за спречување закани е објавена - 1.0; URL-адресата за повици API треба да содржи v1 во делот каде што треба да ја наведете верзијата. За разлика од API за управување, неопходно е да се наведе верзијата на API во URL-то, во спротивно барањето нема да се изврши.

Анти-вирусната компонента, кога се повикува без други компоненти (te, екстракција), моментално поддржува само барања за пребарување со md5 хаш суми. Емулација на закани и екстракција на закани исто така поддржуваат збирови на хаш sha1 и sha256.

Многу е важно да не се прават грешки во прашањата! Барањето може да се изврши без грешка, но не целосно. Гледајќи малку напред, ајде да погледнеме што може да се случи кога има грешки/печатни грешки во барањата.

Барање со печатна грешка со зборот извештаи (извештаи)

{ "request":  [  

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

Нема да има грешка во одговорот, но воопшто нема да има информации за извештаите

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

Но, за барање без печатна грешка во извештаите клуч

{ "request":  [  

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

Добиваме одговор кој веќе содржи ID за преземање извештаи

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

Ако испратиме неточен/истечен клуч API, ќе добиеме грешка 403 како одговор.

SandBlast API: во облак и на локални уреди

Барањата за API може да се испратат до уредите Check Point кои имаат овозможена компонента за емулација на закани (сечило). Како адреса за барања, треба да ја користите ip/url-от на уредот и портата 18194 (на пример, https://10.10.57.19:18194/tecloud/api/v1/file/query). Исто така, треба да бидете сигурни дека безбедносната политика на уредот ја дозволува оваа врска. Стандардно овластување преку клуч API на локални уреди исклучен а клучот за авторизација во заглавијата на барањата може воопшто да не се испраќа.

Барањата за API до облакот CheckPoint треба да се испратат до te.checkpoint.com (на пример - https://te.checkpoint.com/tecloud/api/v1/file/query). Клучот API може да се добие како пробна лиценца за 60 дена со контактирање на партнерите на Check Point или локалната канцеларија на компанијата.

На локалните уреди, Извлекувањето закани сè уште не е поддржано како стандардно. API за спречување на закани и треба да се користи API за спречување закани за безбедносен портал (ќе зборуваме за тоа подетално на крајот од статијата).

Локалните уреди не го поддржуваат барањето за квота.

Инаку, нема разлики помеѓу барањата до локалните уреди и до облакот.

Поставете повик API

Употребен метод − ПОСТ

Адреса на повик - https:///tecloud/api/v1/file/upload

Барањето се состои од два дела (образец-податоци): датотека наменета за емулација/чистење и тело за барање со текст.

Текстуалното барање не може да биде празно, но може да не содржи никаква конфигурација. За да може барањето да биде успешно, мора да го испратите барем следниот текст во барањето:

Минимум потребен за барање за прикачување

HTTP POST

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

Заглавија:

Овластување:

Тело

{

"молба": {

}

}

датотека

датотека

Во овој случај, датотеката ќе се обработи во согласност со стандардните параметри: компонента - te, слики од ОС - Победи XP и Win 7, без да се генерира извештај.

Коментари на главните полиња во барањето за текст:

име на датотека и датотека_тип Можете да ги оставите празни или воопшто да не ги испраќате, бидејќи ова не е особено корисна информација кога поставувате датотека. Во одговорот на API, овие полиња ќе се пополнат автоматски врз основа на името на преземената датотека, а информациите во кешот сè уште ќе треба да се пребаруваат со користење на md5/sha1/sha256 хаш-количини.

Пример барање со празен file_name и file_type

{

"request": {

"file_name": "",

"file_type": "",

}

}

карактеристики — список што ја означува потребната функционалност при обработка во песок - av (Anti-Virus), te (Threat Emulation), екстракција (Threat Extraction). Доколку овој параметар воопшто не се помине, тогаш ќе се користи само стандардната компонента - te (Threat Emulation).

За да овозможите проверка на трите достапни компоненти, треба да ги наведете овие компоненти во барањето API.

Пример за барање со проверка во av, te и екстракција

{ "request":  [  

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

Клучеви во делот te

слики — список што содржи речници со идентификационен број и број на ревизија на оперативните системи во кои ќе се изврши проверката. Идентификаторите и броевите за ревизија се исти за сите локални уреди и облакот.

Список на оперативни системи и ревизии

Достапен ID на слика на ОС

Ревизија

ОС на слика и апликација

e50e99f3-5963-4573-af9e-e3f4750b55e2

1

Microsoft Windows: XP - 32 битен SP3
канцеларија: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash Player, 9r115 и ActiveX 10.0
Јава траење: 1.6.0u22

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

1

Microsoft Windows: 7 - 32 битни
канцеларија: 2003, 2007
Adobe Acrobat Reader: 9.0
Flash Player: 10.2r152 (Вклучи, ПоврзиActiveX)
Јава траење: 1.6.0u0

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

1

Microsoft Windows: 7 - 32 битни
канцеларија: 2010
Adobe Acrobat Reader: 9.4
Flash Player: 11.0.1.152 (Вклучи, Поврзи & ActiveX)
Јава траење: 1.7.0u0

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

1

Microsoft Windows: 7 - 32 битни
канцеларија: 2013
Adobe Acrobat Reader: 11.0
Flash Player: 15 (Вклучи, Поврзи & ActiveX)
Јава траење: 1.7.0u9

3ff3ddae-e7fd-4969-818c-d5f1a2be336d

1

Microsoft Windows: 7 - 64 битни
канцеларија: 2013 (32 битна)
Adobe Acrobat Reader: 11.0.01
Flash Player: 13 (Вклучи, Поврзи & ActiveX)
Јава траење: 1.7.0u9

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

 

Microsoft Windows: 8.1 - 64 битни
канцеларија: 2013 (64 битна)
Adobe Acrobat Reader: 11.0.10
Flash Player: 18.0.0.160 (Вклучи, Поврзи & ActiveX)
Јава траење: 1.7.0u9

10b4a9c6-e414-425c-ae8b-fe4dd7b25244 

 

1

Microsoft Windows: 10
канцеларија: Professional Plus 2016 en-us  
Adobe Acrobat Reader: DC 2015 MUI
Flash Player: 20 (Вклучи, Поврзи & ActiveX)
Јава траење: 1.7.0u9

Ако клучот за слики воопшто не е наведен, тогаш емулацијата ќе се одвива на сликите препорачани од Check Point (во моментов Win XP и Win 7). Овие слики се препорачуваат врз основа на размислувањата за најдобрата рамнотежа на перформансите и стапката на улов.

извештаи — список на извештаи што ги бараме во случај датотеката да се покаже дека е злонамерна. Достапни се следните опции:

  1. резиме - .tar.gz архива која содржи извештај за емулација од сите побарани слики (и html-страница и компоненти како што се видео од оперативниот систем емулатор, депонијата на мрежниот сообраќај, извештај во json и самиот примерок во архива заштитена со лозинка). Го бараме клучот во одговорот - резиме_извештај за последователно преземање на извештајот.

  2. PDF - документ за емулација во еден слика, која многумина се навикнати да ја добиваат преку Smart Console. Го бараме клучот во одговорот - pdf_извештај за последователно преземање на извештајот.

  3. XML - документ за емулација во еден слика, погодна за последователно парсирање на параметрите во извештајот. Го бараме клучот во одговорот - xml_report за последователно преземање на извештајот.

  4. катран - .tar.gz архива која содржи извештај за емулација во еден побарани слики (и html-страница и компоненти како што се видео од оперативниот систем емулатор, депонијата на мрежниот сообраќај, извештај во json и самиот примерок во архива заштитена со лозинка). Го бараме клучот во одговорот - целосен_извештај за последователно преземање на извештајот.

Што има внатре во збирниот извештајИнтеракција со Check Point SandBlast преку API

Копчињата full_report, pdf_report, xml_report се наоѓаат во речникот за секој ОС

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

Но, клучот summary_report - постои еден за емулација воопшто

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

Можете да барате извештаи за tar и xml и pdf во исто време, можете да барате резиме и tar и xml. Нема да може да се бара збирен извештај и pdf во исто време.

Клучеви во делот за екстракција

За извлекување закани, се користат само два клуча:

метод — pdf (конвертирај во pdf, стандардно се користи) или чист (чистење активна содржина).

извлечени_делови_шифри - список на шифри за отстранување на активна содржина, применлив само за чист метод

Кодови за отстранување содржина од датотеки

Код

Опис

1025

Поврзани објекти

1026

Макроа и код

1034

Чувствителни хиперврски

1137

PDF GoToR дејства

1139

Акции за стартување на PDF

1141

Акции на PDF URI

1142

PDF Звучни дејства

1143

PDF Movie Actions

1150

PDF JavaScript дејства

1151

Акции на формуларот за поднесување PDF

1018

Барања за базата на податоци

1019

Вградени објекти

1021

Брзо зачувување податоци

1017

Прилагодени својства

1036

Статистички својства

1037

Резиме Својства

За да преземете исчистена копија, исто така ќе треба да направите барање за барање (за кое ќе се дискутира подолу) по неколку секунди, наведувајќи ја количината на хаш на датотеката и компонентата за екстракција во текстот на барањето. Можете да ја подигнете исчистената датотека со помош на ID од одговорот на барањето - extracted_file_download_id. Уште еднаш, гледајќи малку напред, давам примери на барање и одговор на барање за пребарување на ид за преземање на исчистен документ.

Барање барање за пребарување на клучот extracted_file_download_id

{ "request":  [  

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

Одговор на барање (побарајте го клучот 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."
                }
            }
        }
    ]
}

Преглед

Во еден повик API, можете да испратите само една датотека за потврда.

Компонентата av не бара дополнителен дел со копчиња, доволно е да го наведете во речникот карактеристики.

Повик за пребарување на API

Употребен метод − ПОСТ

Адреса на повик - https:///tecloud/api/v1/file/query

Пред да испратите датотека за преземање (барање за поставување), препорачливо е да го проверите кешот на песокот (барање за пребарување) за да го оптимизирате оптоварувањето на серверот API, бидејќи серверот API можеби веќе има информации и пресуда за преземената датотека. Повикот се состои само од текстуален дел. Потребниот дел од барањето е sha1/sha256/md5 хаш количина на датотеката. Патем, можете да го добиете во одговорот на барањето за поставување.

Минимум потребен за барање

HTTP POST

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

Заглавија:

Овластување:

Тело

{

"молба": {

"sha256":

}

}

Пример за одговор на барање за прикачување, каде што се видливи износите на хашот sha1/md5/sha256

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

Барањето за барање, покрај износот на хаш, идеално треба да биде исто како што било (или се планира да биде) барањето за поставување или дури и „веќе“ (содржи помалку полиња во барањето за барање отколку во барањето за прикачување). Во случај кога барањето за барање содржи повеќе полиња отколку што беа во барањето за поставување, нема да ги добиете сите потребни информации во одговорот.

Еве пример за одговор на барање каде што не се пронајдени сите потребни податоци

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

Обрнете внимание на полињата код и етикета. Овие полиња се појавуваат три пати во речниците за статус. Прво го гледаме глобалниот клуч „код“: 1006 и „етикета“: „PARTIALLY_FOUND“. Следно, овие клучеви се наоѓаат за секоја поединечна компонента што ја побаравме - te и екстракција. И ако за тебе е јасно дека податоците се пронајдени, тогаш за екстракција нема информации.

Вака изгледаше барањето за примерот погоре

{ "request":  [  

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

Ако испратите барање за барање без компонента за екстракција

{ "request":  [  

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

Тогаш одговорот ќе содржи целосни информации („шифра“: 1001, „етикета“: „НАЈДЕНО“)

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

Ако воопшто нема информации во кешот, тогаш одговорот ќе биде „етикета“: „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."
        }
      }
    }
  ]
}

Во еден повик API, можете да испратите неколку хаш износи одеднаш за потврда. Одговорот ќе ги врати податоците по истиот редослед како што е испратен во барањето.

Пример барање за барање со неколку sha256 износи

{ "request":  [  

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

Одговор на барање со повеќе износи sha256

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

Барањето неколку хаш суми одеднаш во барањето за барање, исто така, ќе има корисен ефект врз перформансите на серверот API.

Преземете го повикот на API

Употребен метод − ПОСТ (според документацијата), ГЕТ исто така работи (и може да изгледа пологично)

Адреса на повик - https:///tecloud/api/v1/file/download?id=

Заглавјето бара да се пренесе клучот API, телото на барањето е празно, идентификаторот за преземање се пренесува во URL адресата.

Како одговор на барањето за барање, ако емулацијата е завршена и се побарани извештаи при преземањето на датотеката, ID за преземање извештаи ќе биде видлив. Ако се бара исчистена копија, треба да го побарате ID за да го преземете исчистениот документ.

Севкупно, клучевите во одговорот на барањето што ја содржи вредноста на id за вчитување може да бидат:

  • резиме_извештај

  • целосен_извештај

  • pdf_извештај

  • xml_report

  • извлечена_датотека_преземање_ид

Се разбира, за да ги добиете овие клучеви како одговор на барањето за барање, тие мора да бидат наведени во барањето (за извештаи) или не заборавајте да направите барање користејќи ја функцијата за извлекување (за исчистени документи)

Повик за квота API

Употребен метод − ПОСТ

Адреса на повик - https:///tecloud/api/v1/file/quota

За да ја проверите преостанатата квота во облакот, користете го барањето за квота. Телото на барањето е празно.

Пример одговор на барање за квота

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

API за спречување закани за безбедносен портал

Овој API е развиен пред API за спречување закани и е наменет само за локални уреди. Засега може да биде корисно само ако ви треба API за екстракција на закани. За емулација на закани, подобро е да се користи редовниот API за спречување закани. За да се вклучи TP API за SG и конфигурирајте го клучот API од кој треба да ги следите чекорите sk113599. Препорачувам да обрнете внимание на чекор 6б и да ја проверите пристапноста на страницата https://<IPAddressofSecurityGateway>/UserCheck/TPAPI бидејќи во случај на негативен резултат, понатамошната конфигурација нема смисла. Сите повици на API ќе бидат испратени на оваа URL адреса. Видот на повикот (подигнување/прашање) е регулиран во клучот на телото на повикот − барање_име. Потребни се и клучеви - api_key (треба да го запомните за време на процесот на конфигурација) и протокол_верзија (во моментов тековната верзија е 1.1). Официјалната документација за ова API можете да ја најдете на sk137032. Релативните предности ја вклучуваат можноста за испраќање неколку датотеки одеднаш за емулација при нивното вчитување, бидејќи датотеките се испраќаат како текстуална низа на база 64. За да ги шифрирате/декодирате датотеките во/од base64, можете да користите онлајн конвертор во Postman за демонстративни цели, на пример - https://base64.guru. За практични цели, треба да ги користите вградените методи за кодирање и декодирање кога пишувате код.

Сега да ги разгледаме подетално функциите te и екстракција во овој API.

За компонента te обезбеден речник te_options во барањата за поставување/прашање, и клучевите во ова барање целосно се совпаѓаат со копчињата te во API за спречување на закани.

Пример барање за емулација на датотеки во Win10 со извештаи

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

За компонента екстракција обезбеден речник scrub_options. Ова барање го одредува методот на чистење: претворете во PDF, исчистете ја активна содржина или изберете режим во согласност со профилот за спречување закани (името на профилот е означено). Најдоброто нешто за одговарање на барање за API за екстракција за датотека е тоа што добивате исчистена копија во одговорот на тоа барање како шифрирана низа од базата 64 (не треба да правите барање за барање и да го барате идентификаторот за да ја преземете документ)

Пример за барање за чистење датотека

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

Одговори на барање

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

И покрај фактот дека се потребни помалку барања за API за да се добие исчистена копија, сметам дека оваа опција е помалку претпочитана и удобна од барањето за форма-податоци што се користи во API за спречување на закани.

Колекции на поштарот

Создадов колекции во Postman и за API за спречување закани и за API за спречување закани за безбедносен портал, кои ги претставуваат најчестите барања за API. За да може ip/url API-то и клучот на серверот автоматски да се заменат во барања и да се запомни sha256 хашот по преземањето на датотеката, во збирките се креирани три променливи (можете да ги најдете со одење во поставките за собирање Уреди -> Променливи): te_api (задолжително), api_key (потребно е да се пополни, освен кога се користи TP API со локални уреди), sha256 (оставете празно, не се користи во TP API за SG).

Преземете ја колекцијата Поштар за API за спречување закани

Преземете ја колекцијата Поштар за API за спречување закани за безбедносен портал

Примери на употреба

Во заедницата Проверете ги Матес се претставени скрипти напишани во Python кои проверуваат датотеки од саканиот директориум преку TP APIИ TP API за SG. Преку интеракција со Threat Prevention API, вашата способност за скенирање датотеки е значително проширена, бидејќи сега можете да скенирате датотеки на неколку платформи одеднаш (проверете VirusTotal API, а потоа во песокот за проверка на точката), и примајте датотеки не само од мрежниот сообраќај, туку и земајте ги од сите мрежни дискови и, на пример, CRM системи.

Извор: www.habr.com

Додадете коментар