SorbSecurity Cloud Sandbox API Reference

SorbSecurity Cloud Sandbox(SCS) provides an Application Programming Interface (API) framework for external applications to access core functions through the REST protocol.

The API is implemented as a RESTful web services API. Each request will require the user’s API key. REST stands for Representational State Transfer. It relies on a stateless, client-server and cacheable communication protocol – HTTP. It is an architecture style for designing networked applications. RESTful applications use HTTP requests to post data (create and/or update), get data (query information) and delete data. Thus, REST uses HTTP for all CRUD (Create/Read/Update/Delete) operations. It is a lightweight alternative to mechanisms like RPC (Remote Procedure Calls) and Web Services such as SOAP and WSDL.

Each organization has limits on request rate and total requests; these limits are laid out in each organization’s terms of service. Unless otherwise specified, there are separate limits for report requests and run requests.

APIDescription
File AnalysisSubmit a file to analyze, return format is JSON.
URL AnalysisSubmit a URL to analyze, return format is JSON.
File SearchSearch MD5, SHA1, SHA256 in the database for sample file info, return format is JSON.
File Analysis Task SearchSearch MD5, SHA1, SHA256 in the database for file analysis task info, return format is JSON.
Advanced Analysis Task SearchSearch other parameters in the database for analysis task info, return format is JSON.
List Analysis TasksView analysis tasks info by searching analysis tasks ID range, return format is JSON.
Analysis Task InfoView basic info of a giving analysis task, return format is JSON.
Analysis Tasks Statusview analysis status of a giving analysis task, return format is JSON.
Analysis Task Summary ReportDownload the summary report of an analysis task, return format is JSON.
Analysis Task ReportDownload the analysis report of an analysis task, return format is JSON.
Analysis Task IOCsView Indicators of Compromises(IOCs) information of an analysis task, return format is JSON.
Analysis Task ScreenshotsView/Download the virtual execution screenshots of an analysis task, return format is image/jpeg or octet-stream. (.jpg or .tar.bz2).
Analysis Task PCAPDownload the virtual execution PCAP file during network analysis, return format is application/vnd.tcpdump.pcap. (.pcap)
Analysis Task Dropped FilesDownload the virtual execution dropped files of an analysis task, return format is octet-stream. (.tar.bz2)
Analysis Task Sample DownloadSearch and download the file sample of an analysis task through task ID, file MD5/SHA1/SHA256, return format is octet-stream. (.bin)

1. File Analysis
Submit a file to SorbSecurity Cloud Sandbox analysis, return format is JSON.

How to use

curl -F file=@/path/to/file https://<FQDN>/apineo/tasks/create/file/

Input

ParametersDescription
API keyUser’s API Key
FilePath to the file sample for which the analysis is being requested

Output

ParametersDescription
task_idsThe unique analysis task id that can be used to query the task status and analysis result
urlThe Web URL generated to track and present the task status and analysis result of the submitted task
dataThe returned value form system that indicates the status of the API execution (file analysis task submission)
errorResponse of API execution status. error: false – the task file submission succeeded error: true – the task file submission failed
error_valueThe reason that you received this error response 

Example

$ curl -F file=@1.exe https://<FQDN>/apineo/3333caedc1e02f99f0441c22775bcece/tasks/create/file/
{
    "task_ids": [
        "8RT-7-f9Qj3cHEvmgYSOM_MO8Hil93jfK36JFXYLIhQ="
    ], 
    "url": [
        "https://<IP>/submit/status/8RT-7-f9Qj3cHEvmgYSOM_MO8Hil93jfK36JFXYLIhQ=/"
    ], 
    "data": "Task 8RT-7-f9Qj3cHEvmgYSOM_MO8Hil93jfK36JFXYLIhQ= has been created successfully!", 
    "error": false
}

2. File View

Search MD5, SHA1, SHA256 in the SorbSecurity Cloud Sandbox database for sample file info, return format is JSON.

How to use

curl https://<FQDN>/apineo/<Customer’s API Key>/files/view/md5/[md5 hash]/
curl https://<FQDN>/apineo/<Customer’s API Key>/files/view/sha1/[sha1 hash]/
curl https://<FQDN>/apineo/<Customer’s API Key>/files/view/sha256/[sha256 hash]/

Input

ParametersDescription
API keyUser’s API Key
File MD5 hashThe MD5 hash string of the file for which the search is being requested
File SHA1 hashThe SHA1 hash string of the file for which the search is being requested
File SHA256 hashThe SHA256 hash string of the file for which the search is being requested

Output

ParametersDescription
sha1The SHA1 hash string of the file being searched
file_typeThe File Type of the file being searched
file_sizeThe size of the file being searched (in Bytes)
ssdeepThe ssdeep (Fuzzy hash) hash string of the file being searched
sha256The SHA256 hash string of the file being searched
sha512The SHA512 hash string of the file being searched
idThe analysis task id of the file sample that is being searched
md5The MD5 hash string of the file being searched
errorResponse of API execution status. error: false – the file view succeeded error: true – the file view failed
error_valueThe reason that you received this error response 

Example

$curl https://<FQDN>/apineo/3333caedc1e02f99f0441c22775bcece/files/view/md5/0272c002492d3c8163b79acd3697aa6c/
{
    "data": {
        "sha1": "399d23ebb83e33d88fb8748e974361a8ed3a6ee6", 
        "file_type": "PE32 executable (GUI) Intel 80386, for MS Windows, Nullsoft Installer self-extracting archive", 
        "file_size": 222010, 
        "crc32": "057ECF19", 
        "ssdeep": null, 
        "sha256": "21bbbd5d502a1119dc503962ba1fb895315d86d8dad28778e036a82a3f2de20e", 
        "sha512": "e444a239f7dd4ec3f7891abb88ab586d4487c6a6fa213e43580a4c1d7a956ae685343d241a180ba89f2e77457c46811c29224e908ebd4d0235670fbba3a57474", 
        "id": "Yx1v2dTDsqdGP4D86fYu09BvmqStAO6K6_zVd9bjwXM=", 
        "md5": "0272c002492d3c8163b79acd3697aa6c"
    }, 
    "error": false
}

3. File Analysis Task Search

Search MD5, SHA1, SHA256 in the SorbSecurity Cloud Sandbox database for file analysis task info, return format is JSON.

How to use

curl https://<FQDN>/apineo/<Customer’s API Key>/tasks/search/md5/[md5 hash]/
curl https://<FQDN>/apineo/<Customer’s API Key>/tasks/search/sha1/[sha1 hash]/
curl https://<FQDN>/apineo/<Customer’s API Key>/tasks/search/sha256/[sha256 hash]/

Input

ParametersDescription
API keyUser’s API Key
File MD5 hashThe MD5 hash string of the file for which the search is being requested
File SHA1 hashThe SHA1 hash string of the file for which the search is being requested
File SHA256 hashThe SHA256 hash string of the file for which the search is being requested

Output

ParametersDescription
idThe analysis task id of the file sample that is being searched
targetThe analysis target (i.e, filename) of the file sample being searched
completed_onThe analysis completion time of the file sample being searched
added_onThe time that the analysis task has been added to the analysis queue
started_onThe analysis start time of the file sample being searched
errorResponse of API execution status. error: false – the file analysis task search succeeded error: true – the file analysis task search failed
error_valueThe reason that you received this error response 

Example

$ curl https://<FQDN>/apineo/3333caedc1e02f99f0441c22775bcece/tasks/search/md5/0272c002492d3c8163b79acd3697aa6c/
{
"data": [
        {
            "id": "uUbgdpvBtmGCYPT2H0GUT-2lIn-6zfJENEol01_pSJg=", 
            "target": "1.exe", 
            "completed_on": "2018-02-04 09:31:23", 
            "added_on": "2018-02-04 09:28:17", 
            "started_on": "2018-02-04 09:28:19"
        }
    ], 
    "error": false
}

4. Analysis Task Info

Request basic info of a given analysis task, return format is JSON.

How to use

curl https://<FQDN>/apineo/<Customer’s API Key>/tasks/view/[task id]/

Input

ParametersDescription
API keyUser’s API Key
task idThe analysis task id of the file sample that is being searched

Output

ParametersDescription
idThe analysis task id of the file sample that is being searched
completed_onThe analysis completion time of the file sample being searched
added_onThe time that the analysis task has been added to the analysis queue
started_onThe analysis start time of the file sample being searched
errorResponse of API execution status. error: false – the analysis task view succeeded error: true – the analysis task view failed
error_valueThe reason that you received this error response 

Example

$ curl https://<FQDN>/apineo/3333caedc1e02f99f0441c22775bcece/tasks/view/uUbgdpvBtmGCYPT2H0GUT-2lIn-6zfJENEol01_pSJg=/
{
    "data": {
        "id": "mlJ_h8MxrznCG6QCgSEkFWoWHZivninicO_wnon0TRk=", 
        "completed_on": "2018-02-04 09:31:23", 
        "added_on": "2018-02-04 09:28:17", 
        "started_on": "2018-02-04 09:28:19"
    }, 
    "error": false
}

5. Analysis Tasks Status

Request analysis status of a given analysis task, return format is JSON.

How to use

curl https://<FQDN>/apineo/<Customer’s API Key>/tasks/status/[task id]/

Input

ParametersDescription
API keyUser’s API Key
task idThe analysis task id of the file sample that is being searched

Output

ParametersDescription
dataThe returned value form system that indicates the status of the API execution (the status of the analysis task, i.e, reported, pending, reporting, etc.)
errorResponse of API execution status. error: false – the analysis task status check succeeded error: true – the analysis task status check failed
error_valueThe reason that you received this error response 

Example

$ curl https://<FQDN>/apineo/3333caedc1e02f99f0441c22775bcece/tasks/status/uUbgdpvBtmGCYPT2H0GUT-2lIn-6zfJENEol01_pSJg=/
{
    "data": "reported", 
    "error": false
}

6. Analysis Task Summary Report

Request the summary report of an analysis task, return format is JSON.

How to use

curl https://<FQDN>/apineo/<Customer’s API Key>/tasks/get/simple_report/[task id]/

Input

ParametersDescription
API keyUser’s API Key
task idThe analysis task id of the file sample that is being searched

Output

ParametersDescription
malfamilyMalware Family (malfamily) defines the malware or virus categories that the sample fall into, and it helps user to understand the behavior category of the malicious sample.
malscoreThreat Score (malscore) usually represents the probability a sample is considered malicious or not. Malscore between 0 and 2, is normally considered as clean or safe; Malscore between 2 and 6, is normally considered as suspicious; Malscore between 6 and 10, is normally considered as dangerous or malicious, which may carry virus payload or lead to malicious behaviors on the system.
task_idThe unique analysis task id that can be used to query the task status and analysis result
errorResponse of API execution status. error: false – the analysis summary report succeeded error: true – the analysis summary report failed
error_valueThe reason that you received this error response 

Example

$ curl https://<FQDN>/apineo/3333caedc1e02f99f0441c22775bcece/tasks/get/simple_report/uUbgdpvBtmGCYPT2H0GUT-2lIn-6zfJENEol01_pSJg=/
{
“malfamily”: “”,
“malscore”: 10.0,
“task_id”: “uUbgdpvBtmGCYPT2H0GUT-2lIn-6zfJENEol01_pSJg=”
}

7. Analysis Task Screenshots

Request the virtual execution screenshots of an analysis task, return format is image/jpeg or octet-stream. (.jpg or .tar.bz2).

How to use

curl https://<FQDN>/apineo/<Customer’s API Key>/tasks/get/screenshot/[task id]/    (Downloads all screenshots)
curl https://<FQDN>/apineo/<Customer’s API Key>/tasks/get/screenshot/[task id]/[screenshot number]/

Input

ParametersDescription
API keyUser’s API Key
task idThe analysis task id of the file sample that is being searched
screenshot numberThe sequential number of the analysis task screenshot

Output

ParametersDescription
errorResponse of API execution status. error: false – the analysis task screenshots request succeeded error: true – the analysis task screenshots request failed
error_valueThe reason that you received this error response 

Example

$ curl https://<FQDN>/apineo/3333caedc1e02f99f0441c22775bcece/tasks/get/simple_report/uUbgdpvBtmGCYPT2H0GUT-2lIn-6zfJENEol01_pSJg=/
{
    "malfamily": "", 
    "malscore": 10.0, 
    "task_id": "uUbgdpvBtmGCYPT2H0GUT-2lIn-6zfJENEol01_pSJg="
}

Click HERE to see the samples.