Примеры

Получение API-ключа

Чтобы получить API-ключ, отправьте запрос POST login с логином и паролем.

Получить API-ключ, созданный ранее

Чтобы получить один из созданных API-ключей, укажите значение параметра new_key: false, или просто не указывайте этот параметр:

curl -X POST https://vxcube.drweb.com/api-2.0/login \

-H "Content-Type: application/json" \

-d "{\"login\":\"example@drweb.com\", \"password\":\"secret_password\"}"

Вы получите ответ с API-ключом (его требуется указывать в заголовке каждого последующего запроса):

{

   "new_key": false,

   "api_key": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",

   "start_date": "2019-02-08T04:08:15.162342+00:00"

}

Создать API-ключ

Чтобы создать новый API-ключ, укажите значение параметра new_key: true (если у вас нет созданных API-ключей, параметр можно не указывать, API-ключ будет создан все равно):

curl -X POST https://vxcube.drweb.com/api-2.0/login \

-H "Content-Type: application/json" \

-d "{\"login\":\"example@drweb.com\", \"password\":\"secret_password\", \"new_key\": true, \"name\":\"example_name_api"}"

Вы получите ответ с API-ключом (его требуется указывать в заголовке каждого последующего запроса):

{

  "new_key": true,

  "api_key": "bbbbbbbb-cccc-dddd-eeee-ffffffffffff",

  "start_date": "2019-03-08T04:08:15.162342+00:00",

  "name": "example_name_api"

}

Загрузка файла на сервер Dr.Web vxCube

Чтобы загрузить файл на сервер, отправьте запрос POST samples:

curl -X POST https://vxcube.drweb.com/api-2.0/samples \

-F "file=@testfile.pdf" \

-H "Authorization: api-key aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"

В ответ вы получите объект Sample, который содержит данные о загруженном файле, в том числе формат файла, определенный автоматически, и список поддерживаемых платформ. Используйте полученные данные для последующего анализа файла.

Ответ:

{

   "id": 6784,

   "size": 10881846,

   "name": "testfile.pdf",

   "is_x64": null,

   "format_name": "pdf",

   "upload_date": "2019-02-08T04:08:15.162343+00:00",

   "md5": "34fb8ae3c01653985085ee7e2f749ea5",

   "sha1": "00a610100a3516f4d0daa33e7de317d2ddb6c2c6",

   "sha256": "11bd131be00cbe1c43b4444ec4300dc7651805ea36393b1cca1675983dc275bc",

   "platforms": [

       "acrobat_xp_10",

       "acrobat_7_32_11",

       "acrobat_7_64_15",

       "acrobat_10_64_15"

   ]

}

Запуск анализа

Чтобы запустить анализ файла, отправьте запрос POST analyses:

curl -X POST https://vxcube.drweb.com/api-2.0/analyses \

-H "Content-Type: application/json" \

-H "Authorization: api-key aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" \

-d "{\"sample_id\":\"6784\", \"platforms\":[\"acrobat_7_32_11\", \"acrobat_7_64_15\"]}"

В запросе указаны ID загруженного файла и список платформ для выполнения файла. Значения параметров взяты из ответа на предыдущий запрос.

Чтобы запустить анализ с перенаправлением сетевого трафика, отправьте запрос POST analyses:

curl -X POST https://<IP-адрес/доменное имя сервера>/api-2.0/analyses \

-H "Content-Type: application/json" \

-H "Authorization: api-key aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" \

-d "{\"sample_id\":\"6784\", \"platforms\":[\"acrobat_7_32_11\", \"acrobat_7_64_15\",

\"net\": \"socks5://username:password@<proxyaddress>:1080?udp=on\"}"]}"

В ответ вы получите объект Analysis, который содержит общие сведения об анализе:

{

   "id": 6260,

   "sample_id": 6784,

   "size": 10881846,

   "sha1": "00a610100a3516f4d0daa33e7de317d2ddb6c2c6",

   "start_date": "2019-02-08T04:08:15.162343+00:00",

   "format_name": "pdf",

   "user_name": "example@drweb.com",

   "tasks": [{

       "message": null,

       "end_date": null,

       "platform_code": "acrobat_7_64_15",

       "maliciousness": null,

       "progress": 0,

       "id": 18676,

       "status": "in queue",

       "start_date": "2019-02-08T04:08:15.643122+00:00"

   }, {

       "message": null,

       "end_date": null,

       "platform_code": "acrobat_7_32_11",

       "maliciousness": null,

       "progress": 0,

       "id": 18675,

       "status": "in queue",

       "start_date": "2019-02-08T04:08:15.632924+00:00"

   }]

}

Получение информации об анализе

Чтобы получить подробную информацию об анализе, дождитесь его завершения и отправьте запрос GET analyses/<analysis_id:uuid>. В запросе укажите ID анализа:

curl -X GET https://vxcube.drweb.com/api-2.0/analyses/60e21c98-7c2a-4112-81b5-a577f6cdf4db \

-H "Content-Type: application/json" \

-H "Authorization: api-key aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"

В ответ вы получите объект Analysis:

{

   "id": 60e21c98-7c2a-4112-81b5-a577f6cdf4db,

   "sample_id": 6784,

   "size": 10881846,

   "sha1": "00a610100a3516f4d0daa33e7de317d2ddb6c2c6",

   "start_date": "2019-02-08T04:08:15.162343+00:00",

   "format_name": "pdf",

   "user_name": "example@drweb.com",

   "tasks": [{

     "rules": {

       "neutral": [

         "Creating a window",

         "Launching a process"

       ]

     },

     "detects": [

         "behavior",

         "files_dumps"

      ]

     "end_date": "2019-02-08T15:51:05.186896+00:00",

     "platform_code": "acrobat_7_64_15",

     "maliciousness": 6,

     "id": 18676,

     "status": "successful",

     "start_date": "2019-02-08T15:32:50.643122+00:00",

     "verdict": "clean1"

   }, {

     "end_date": "2019-02-08T15:50:01.943030+00:00",

     "platform_code": "acrobat_7_32_11",

     "maliciousness": 6,

     "id": 18675,

     "status": "successful",

     "start_date": "2019-02-08T04:08:15.632924+00:00",

     "rules": {

       "neutral": [

         "Creating a window",

         "Creating a file in the %temp% directory"

       ]

     },

     "detects": [

         "behavior",

         "files_dumps"

      ]

     "verdict": "clean1"

   }

 ],

 "sha1": "00a610186a3526f4d0daa28e7de317d2ddb6c2c6"

}

Скачивание отчета

Чтобы скачать архив отчета об анализе целиком, отправьте запрос GET analyses/<analysis_id:uuid>/archive:

curl -X GET https://vxcube.drweb.com/api-2.0/analyses/40e2fc98-1c2a-4112-81b5-a57df2cd22db/archive \

-H "Content-Type: application/json" \

-H "Authorization: api-key aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" \

-o <output_archive>

Чтобы скачать один из файлов отчета, отправьте запрос GET tasks/<task_id:number>/archive_storage. Пример запроса на скачивание файла PCAP:

curl -X GET https://vxcube.drweb.com/api-2.0/tasks/18681/archive_storage \

-H "Content-Type: application/json" \

-H "Authorization: api-key aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" \

-d "{\"path\": \"network.pcap\"}" \

-o some_file