样本提交
该API端点向平台提交样本。
提交URL:
https://SANDBOX_IP/api/v1/upload
API端点需要接收包含JSON格式检测选项和二进制文件的HTTP多部分请求。通过URL提交时,请求中不应包含二进制文件。
JSON格式选项
|
字段 |
类型 |
可选 |
描述 |
|---|---|---|---|
|
|
字符串 |
否 |
用于引爆样本的镜像ID。 |
|
detonation |
对象 |
否 |
该对象具有以下结构:
|
|
|
Object |
是 |
包含引爆选项的对象。具体选项描述详见下一章节。 |
引爆选项
所有选项均为可选。若省略某项, 沙箱分析器 使用默认值。
|
选项 |
类型 |
默认值 |
描述 |
|---|---|---|---|
|
|
字符串 |
未提供参数。 |
沙箱分析器引爆样本时使用的命令行参数列表。 Sandbox Analyzer 此选项仅适用于文件提交。 |
|
|
数值 |
6分钟 |
引爆过程允许持续的最大分钟数。 |
|
|
数值 |
2次重试 |
失败时的引爆尝试次数。 |
|
|
布尔值 |
True |
指定
Sandbox Analyzer
是否缓存先前分析的样本(
|
|
|
布尔值 |
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"
}