Kaspersky Endpoint Security для Linux
[Topic 213871]

Запрос на проверку (POST)

Назначение

Проверка объекта, указанного в теле запроса.

Предусмотрена проверка следующих объектов:

Путь

http://<server>:<port>/scans[?wait=1]

Параметры

Необязательный параметр wait задает тип сессии проверки.

Если параметру присвоено значение 1, то выполняется синхронная проверка и приложение присылает отчет после окончания проверки.

Если параметру присвоено значение 0, то выполняется асинхронная проверка, а ответ будет иметь вид:

{

"id"="7d27e9b4-a4d7-469b-bdcf-ebfe953498e4",

"location"="/scans/7d27e9b4-a4d7-469b-bdcf-ebfe953498e4"

}

где:

  • id – уникальный идентификатор сессии проверки;
  • location – путь для запроса информации по этой секции вида http://<server>:<port>/scans/<location>.

Заголовки запроса

Запрос может содержать следующие заголовки:

  • Content-Type

    Определяет тип объекта, который передается на проверку.

    Поддерживаемые значения:

    • application/octet-stream – один файл;
    • multipart/form-data – несколько файлов;
    • text/plain – Docker-образ или несколько Docker-образов, расположенных в определенном репозитории;
    • application/json – Docker-образ или несколько Docker-образов, расположенных в определенном репозитории, с указанием дополнительных параметров.
  • x-api-key (необязательный)

    API-ключ, заданный в переменной окружения KRAS4D_XAPIKEY или переменной xapikey конфигурационного файла.

Возможные ошибки

Если в заголовке Content-Type указано неподдерживаемое значение, приложение вернет ошибку следующего вида:

{

"error"={

"code"="NOT_SUPPORTED_CONTENT_TYPE",

"details"="<content type>",

"message"="Not supported Content-Type"

},

"status"="error"

}

В этом разделе

Запрос на проверку файла

Запрос на проверку нескольких файлов

Запрос на проверку Docker-образов

Запрос на проверку Docker-образов с дополнительными параметрами

В начало
[Topic 213875]

Запрос на проверку файла

Content-Type

application/octet-stream

Тело запроса

Файл.

Пример ответа:

{

"completed": "Mon, 01 Mar 2021 06:54:39 GMT",

"created": "Mon, 01 Mar 2021 06:54:38 GMT",

"progress": 100,

"scan_result": {

"noname": {

"started": "2021-03-01 06:54:39",

"stopped": "2021-03-01 06:54:39",

"threats": [

{

"name": "EICAR-Test-File",

"object": "/root/kesl-service/tmp/b8eb4128-8cb4-4964-87cf-b9853e6544ec"

}

],

"verdict": "infected"

}

},

"status": "completed",

"verdicts": [

"infected"

]

}

В начало
[Topic 213876]

Запрос на проверку нескольких файлов

Content-Type

multipart/form-data

Тело запроса

Несколько файлов.

Пример ответа:

{

"completed": "Mon, 01 Mar 2021 06:55:44 GMT",

"created": "Mon, 01 Mar 2021 06:55:43 GMT",

"progress": 100,

"scan_result": {

"clean": {

"started": "2021-03-01 06:55:43",

"stopped": "2021-03-01 06:55:43",

"verdict": "clean"

},

"corrupted.com": {

"errors": [

{

"error": "Corrupted object",

"object": "/root/kesl-service/tmp/75d28fe6-8154-4361-9382-90a76861518a"

}

],

"started": "2021-03-01 06:55:43",

"stopped": "2021-03-01 06:55:43",

"verdict": "non scanned"

},

"error.com": {

"errors": [

{

"error": "read error",

"object": "/root/kesl-service/tmp/37f6e0dd-13f9-4d11-899c-5fe0f23e407d"

}

],

"started": "2021-03-01 06:55:44",

"stopped": "2021-03-01 06:55:44",

"verdict": "non scanned"

},

"infected.com": {

"started": "2021-03-01 06:55:44",

"stopped": "2021-03-01 06:55:44",

"threats": [

{

"name": "EICAR-Test-File",

"object": "/root/kesl-service/tmp/7d664646-bf56-4060-b958-5ce9e746c929"

}

],

"verdict": "infected"

}

},

"status": "completed",

"verdicts": [

"clean",

"non scanned",

"infected"

]

}

В начало
[Topic 213878]

Запрос на проверку Docker-образов

Content-Type

text/plain

Тело запроса

Ссылка на Docker‑образ или Docker‑образы для проверки.

Возможны следующие значения:

  • Путь в репозитории к одному образу (например, https://index.docker.io/jerbi/eicar:latest).
  • Маска пути, соответствующая несколькими образам (например, https://index.docker.io/<name mask>:<tag mask> ). Для указания маски можно использовать символы ? и *.

Пример ответа:

{

"completed": "Sun, 31 Jan 2021 10:29:26 GMT",

"created": "Sun, 31 Jan 2021 10:29:20 GMT",

"progress": 100,

"scan_result": {

"jerbi/eicar:latest": {

"started": "2021-01-31 10:29:25",

"stopped": "2021-01-31 10:29:26",

"threats": [

{

"name": "EICAR-Test-File",

"object": "[image:docker.io/jerbi/eicar:latest] /eicar.com.txt"

}

],

"verdict": "infected"

}

},

"status": "completed",

"verdicts": [

"infected"

]

}

Возможные ошибки

Для получения списка образов по маске используется запрос с использованием Docker REST API.

Однако на многих публичных серверах эта возможность запрещена по причинам безопасности. Попытка проверки образов по маске на таких серверах приводит к ошибке.

Пример ошибки:

{

"completed": "Mon, 01 Mar 2021 07:02:24 GMT",

"created": "Mon, 01 Mar 2021 07:02:22 GMT",

"scan_errors": [

{

"code": 401,

"details": {

"context": {

"image_mask": "/jerbi/eic*:latest",

"repository": "index.docker.io",

"repository_base": "index.docker.io"

},

"errors": [

"Unauthorized"

]

},

"message": "Invalid source"

},

[

"Unauthorized"

]

],

"status": "completed"

}

В начало
[Topic 213879]

Запрос на проверку Docker-образов с дополнительными параметрами

Content-Type

application/json

Тело запроса

JSON следующего вида:

{

"source": "https://index.docker.io/jerbi/eicar:latest",

"params": {

"destination": "https://fake",

"skipimageifexists": true,

"custom_callbacks": {

"on_detect": {

"uri": "http://10.16.42.75:5050",

"content-type": "application/json",

"body": {

"session_id": "100",

"session_init": "20201105T072403+0300",

"infected_items": "$infected"

}

},

"on_complete": {

"body": {

"session_id": "100",

},

"uri": "http://10.16.42.75:5050/on_complete",

}

}

}

}

Дополнительные параметры запроса

Секция params может содержать следующие параметры:

  • destination (необязательный параметр) – сервер, на который нужно скопировать проверенный образ.
  • skipimageifexists (необязательный параметр) – не проверять и не копировать образ, если на сервере-приемнике уже есть образ с тем же именем и хеш-суммой SHA256. Этот параметр можно указать только при наличии параметра destination.
  • custom_callbacks (необязательный параметр) – описываются запросы, которые должны быть отправлены после окончания проверки:
    • on_detect – запрос отправляется в случае нахождения угрозы.
    • on_complete – запрос отправляется всегда по окончании проверки.

В описании тела запроса можно указать переменную подстановки $infected, вместо которой подставляется список зараженный объектов.

Пример ответа:

{

"completed": "Mon, 01 Mar 2021 07:13:49 GMT",

"created": "Mon, 01 Mar 2021 07:13:42 GMT",

"progress": 100,

"scan_errors": [

{

"code": 500,

"message": "Unable to get images hash from destination registry"

}

],

"scan_params": {

"destination": "https://fake",

"skipimageifexists": true

},

"scan_result": {

"jerbi/eicar:latest": {

"started": "2021-03-01 07:13:48",

"stopped": "2021-03-01 07:13:49",

"threats": [

{

"name": "EICAR-Test-File",

"object": "[image:docker.io/jerbi/eicar:latest] /eicar.com.txt"

}

],

"verdict": "infected"

}

},

"status": "completed",

"verdicts": [

"infected"

]

}

В начало
[Topic 213880]

Запрос на получение информации по сессиям проверки (GET)

Назначение

Получение информации о сессиях проверки.

Путь

http://<server>:<port>/scans[?force] – запрос на получение списка сессий

http://<server>:<port>/scans/<уникальный идентификатор сессии проверки>[?force] – запрос на получение информации по конкретной сессии

Параметры

KESL‑контейнер хранит данные о сессиях проверки в памяти, записывая их в базу данных результатов проверок.

Необязательный параметр ?force инициирует чтение информации из базы данных в случае, если несколько экземпляров KESL‑контейнера работают с одной и той же базой данных. В случае отсутствия параметра будет выводиться информация только о тех сессиях, которые были инициированы конкретным экземпляром KESL‑контейнера.

В этом разделе

Запрос на получение списка сессий проверки

Запрос на получение информации по конкретной сессии

В начало
[Topic 213884]

Запрос на получение списка сессий проверки

Путь

http://<server>:<port>/scans[?force]

Пример ответа:

{

"629ae0a9-28de-4e2f-b130-67e87ba4d61d": {

"progress": 100,

"status": "completed"

},

"655b96fc-34ca-4915-9c41-d52724a277de": {

"progress": 100,

"status": "completed"

},

"7d27e9b4-a4d7-469b-bdcf-ebfe953498e4": {

"progress": 100,

"status": "completed"

},

"c32ca88f-2d24-47ec-b040-0540366bea4b": {

"progress": 100,

"status": "completed"

},

"df11ad81-26aa-42f9-94bb-39dee4304807": {

"progress": 0,

"status": "completed"

},

"fa25340f-4898-497f-ab59-8df494f4ea47": {

"progress": 100,

"status": "completed"

}

}

В начало
[Topic 213889]

Запрос на получение информации по конкретной сессии

Путь

http://<server>:<port>/scans/<уникальный идентификатор сессии проверки>[?force]

Пример ответа:

{

"completed": "Mon, 01 Mar 2021 06:45:19 GMT",

"created": "Mon, 01 Mar 2021 06:45:19 GMT",

"progress": 100,

"scan_result": {

"noname": {

"started": "2021-03-01 06:45:19",

"stopped": "2021-03-01 06:45:19",

"threats": [

{

"name": "EICAR-Test-File",

"object": "/root/kesl-service/tmp/65b55d89-b758-4609-a2f3-f63ef839815d"

}

],

"verdict": "infected"

}

},

"status": "completed",

"verdicts": [

"infected"

]

}

В начало
[Topic 213891]

Запрос на добавление сертификата реестра (POST)

Назначение

Добавление сертификата реестра без перезагрузки KESL‑контейнера.

Путь

http://<server>:<port>/addcert

Заголовки запроса

Запрос содержит заголовок Content-Type.

Поддерживаемые значения:

  • application/octet-stream – один файл сертификата;
  • multipart/form-data – несколько файлов сертификатов.
В начало
[Topic 214105]