跳至主内容

样本提交

该API端点向平台提交样本。

提交URL: https://SANDBOX_IP/api/v1/upload

API端点需要接收包含JSON格式检测选项和二进制文件的HTTP多部分请求。通过URL提交时,请求中不应包含二进制文件。

JSON格式选项

字段

类型

可选

描述

imageId

字符串

用于引爆样本的镜像ID。

detonation

对象

该对象具有以下结构:

  • type - 表示提交信息类型的字符串。可能包含以下值之一: file - 当提交二进制文件时使用,或 url - 当提交URL时使用。

  • detonationProfile - 包含引爆配置文件的字符串。允许您在沙箱引爆吞吐量和检测精度之间进行选择或平衡。可选值为:

    • low - 提高沙箱分析器吞吐量,同时降低引爆分析复杂度。检测精度仍保持在可接受标准内。

    • medium - 引爆时间与分析精度之间的最佳平衡点。

    • high - 最佳分析精度。副作用是引爆吞吐量未达最优。

  • url - 包含待分析URL的字符串。该属性为可选。

  • fileName - 表示控制台中显示文件名的字符串。 该属性为可选。若省略,// 沙箱分析器 将自动生成。

  • archivePassword - 包含解密密码的字符串。 该属性为可选。若省略,//将无法分析加密压缩包内容。

detonationOptions

Object

包含引爆选项的对象。具体选项描述详见下一章节。

引爆选项

所有选项均为可选。若省略某项, 沙箱分析器 使用默认值。

选项

类型

默认值

描述

commandLineArguments

字符串

未提供参数。

沙箱分析器引爆样本时使用的命令行参数列表。 Sandbox Analyzer 此选项仅适用于文件提交。

timeLimit

数值

6分钟

引爆过程允许持续的最大分钟数。

numberOfReruns

数值

2次重试

失败时的引爆尝试次数。

preFiltering

布尔值

True

指定 Sandbox Analyzer 是否缓存先前分析的样本( True )。

internetAccess

布尔值

True

设置虚拟机的互联网访问权限。若为 True ,则虚拟机可访问互联网。

例如,以下是一个加密压缩文件样本的JSON配置示例,该样本需通过命令行参数在无网络访问的虚拟机中引爆:

{
    "imageId": "1787b5e3689a8435388b96b7a32e9c87f",
    "detonation": {
        "type": "file",
        "detonationProfile": "medium",
        "fileName: "infected.zip",
        "archivePassword": "123infected"
    },
    "detonationOptions": {
        "commandLineArguments": "--extraParam 41",
        "internetAccess": false
    }
}

下一个示例是不带选项的URL提交JSON:

{
    "imageId": "1787b5e3689a8435388b96b7a32e9c87f",
    "detonation": {
        "type": "url",
        "detonationProfile": "medium",
        "url": "http://storage.infected.info/images/test.php"
    }
}

返回值

该方法返回包含提交信息的对象,结构如下:

  • code - 表示HTTP状态码的整数

  • message - 响应描述字符串

  • submissionId - 分配给提交样本的ID(出错时省略)

  • errors - 错误请求时的字符串数组(仅错误时返回)

示例

请求 :

鉴于沙箱门户API采用HTTP多部分请求而非JSON RPC提交,此处提供cURL调用示例。

以下示例展示如何使用API密钥设置授权头: UjlMS+0m1l9IUZjpjWyJG8gbnv2Mta4T .

从文件读取引爆选项:

curl -X POST \
    https://{sandbox_ip}:9090/api/v1/upload \
    -H 'Authorization: Basic \
        VWpsTVMrMG0xbDlJVVpqcGpXeUpHOGdibnYyTXRhNFQ=' \
    -F 'options=@{/path/to/json_with_detonation_options}' \
    -F 'upload_file=@{/path/to/binary_file}'

注意

请求首部必须是包含引爆选项的JSON,否则提交将失败。

提交文件对应的多部分字段名称必须为 upload_file ,否则提交将失败。

动态生成引爆选项:

curl -X POST \
    https://{sandbox_ip}:9090/api/v1/upload \
    -H 'Authorization: Basic \
        VWpsTVMrMG0xbDlJVVpqcGpXeUpHOGdibnYyTXRhNFQ=' \
    -F 'options={
            "imageId": "1787b5e3689a8435388b96b7a32e9c87f",
            "detonation": {
                "type": "url",
                "detonationProfile": "medium",
                "url": "http://www.infected.info/test.php"
            }
        }'

响应 :

{
    "code": 200,
    "message": "成功",
    "submissionId": "sp02_1547807011_936_e5",
    "file": "infected.zip"
}