本文列出了 Defender for IoT OT 传感器支持的设备库存管理 API。
使用此 API 可请求所有设备连接的列表。
URI:/api/v1/devices/connections
GET
查询参数
定义以下任何查询参数以筛选返回的结果。 如果未设置查询参数,则返回所有设备连接。
名称 |
步骤 |
示例 |
必需/可选 |
discoveredBefore |
数值。 筛选在给定时间之前检测到的结果,其中给定时间以毫秒为单位定义,采用 Epoch 时间和 UTC 时区。 |
/api/v1/devices/2/connections?discoveredBefore=<epoch> |
可选 |
discoveredAfter |
数值。 筛选在给定时间之后检测到的结果,其中给定时间以毫秒为单位定义,采用 Epoch 时间和 UTC 时区。 |
/api/v1/devices/2/connections?discoveredAfter=<epoch> |
可选 |
lastActiveInMinutes |
数值。 按连接处于活动状态的给定时间范围筛选结果。 从当前时间向后定义(以分钟为单位)。 |
/api/v1/devices/2/connections?lastActiveInMinutes=20 |
可选 |
响应类型:JSON
表示设备连接的 JSON 对象数组或以下失败消息:
成功响应字段
名称 |
类型 |
可为空/不可为 null |
值列表 |
firstDeviceId |
Numeric |
不可为 null |
- |
secondDeviceId |
Numeric |
不可为 null |
- |
lastSeen |
Numeric |
不可为 null |
Epoch (UTC) |
discovered |
Numeric |
不可为 null |
Epoch (UTC) |
ports |
数字数组 |
Nullable |
- |
protocols |
JSON 数组 |
Nullable |
协议字段 |
协议字段
名称 |
类型 |
可为空/不可为 null |
name |
字符串 |
不可为 null |
commands |
字符串数组 |
Nullable |
响应示例
[
{
"firstDeviceId": 171,
"secondDeviceId": 22,
"lastSeen": 1511281457933,
"discovered": 1511872830000,
"ports": [
502
],
"protocols": [
{
name: "modbus",
commands: [
"Read Coils"
]
},
{
name: "ams",
commands: [
"AMS Write"
]
},
{
name: "http",
commands: [
]
}
]
},
{
"firstDeviceId": 171,
"secondDeviceId": 23,
"lastSeen": 1511281457933,
"discovered": 1511872830000,
"ports": [
502
],
"protocols": [
{
name: "s7comm",
commands: [
"Download block",
"Upload"
]
}
]
}
]
类型:GET
API:
curl -k -H "Authorization: <AUTH_TOKEN>" https://<IP_ADDRESS>/api/v1/devices/connections
示例:
curl -k -H "Authorization: 1234b734a9244d54ab8d40aedddcabcd" https://127.0.0.1/api/v1/devices/connections
使用此 API 可请求每个设备的所有连接的列表。
URI:/api/v1/devices/<deviceID>/connections
GET
路径参数
名称 |
步骤 |
示例 |
必需/可选 |
deviceId |
获取给定设备的连接。 |
/api/v1/devices/<deviceId>/connections |
必需 |
查询参数
名称 |
步骤 |
示例 |
必需/可选 |
discoveredBefore |
数值。 筛选在给定时间之前检测到的结果,其中给定时间以毫秒为单位定义,采用 Epoch 时间和 UTC 时区。 |
/api/v1/devices/2/connections?discoveredBefore=<epoch> |
可选 |
discoveredAfter |
数值。 筛选在给定时间之后检测到的结果,其中给定时间以毫秒为单位定义,采用 Epoch 时间和 UTC 时区。 |
/api/v1/devices/2/connections?discoveredAfter=<epoch> |
可选 |
lastActiveInMinutes |
数值。 按连接处于活动状态的给定时间范围筛选结果。 从当前时间向后定义(以分钟为单位)。 |
/api/v1/devices/2/connections?lastActiveInMinutes=20 |
可选 |
响应类型:JSON
表示设备连接的 JSON 对象数组或以下失败消息:
成功响应字段
名称 |
类型 |
可为空/不可为 null |
值列表 |
firstDeviceId |
Numeric |
不可为 null |
- |
secondDeviceId |
Numeric |
不可为 null |
- |
lastSeen |
Numeric |
不可为 null |
Epoch (UTC) |
discovered |
Numeric |
不可为 null |
Epoch (UTC) |
ports |
数字数组 |
Nullable |
- |
protocols |
JSON 数组 |
Nullable |
协议字段 |
协议字段
名称 |
类型 |
可为空/不可为 null |
name |
字符串 |
不可为 null |
commands |
字符串数组 |
Nullable |
响应示例
[
{
"firstDeviceId": 171,
"secondDeviceId": 22,
"lastSeen": 1511281457933,
"discovered": 1511872830000,
"ports": [
502
],
"protocols": [
{
name: "modbus",
commands: [
"Read Coils"
]
},
{
name: "ams",
commands: [
"AMS Write"
]
},
{
name: "http",
commands: [
]
}
]
},
{
"firstDeviceId": 171,
"secondDeviceId": 23,
"lastSeen": 1511281457933,
"discovered": 1511872830000,
"ports": [
502
],
"protocols": [
{
name: "s7comm",
commands: [
"Download block",
"Upload"
]
}
]
}
]
类型:GET
API:
curl -k -H "Authorization: <AUTH_TOKEN>" 'https://<IP_ADDRESS>/api/v1/devices/<deviceId>/connections?lastActiveInMinutes=&discoveredBefore=&discoveredAfter=
示例:
使用给定的查询参数:
curl -k -H "Authorization: 1234b734a9244d54ab8d40aedddcabcd" 'https://127.0.0.1/api/v1/devices/2/connections?lastActiveInMinutes=20&discoveredBefore=1594550986000&discoveredAfter=1594550986000
使用此 API 可请求在网络中的设备上发现的所有已知 CVE 的列表,按 CVE 分数降序排序。
URI:/api/v1/devices/cves
GET
示例:/api/v1/devices/cves
定义以下任何查询参数以筛选返回的结果。
名称 |
步骤 |
示例 |
必需/可选 |
返回页首 |
数值。 确定要为每个设备 IP 地址获取多少个得分最高的 CVE。 |
/api/v1/devices/cves?top=50
/api/v1/devices/<ipAddress>/cves?top=50 |
可选。 默认值 = 100 |
类型:JSON
设备 CVE 对象的 JSON 数组,或以下失败消息:
成功响应字段
名称 |
类型 |
可为空/不可为 null |
值列表 |
cveId |
字符串 |
不可为 null |
给定 CVE 的行业标准规范 ID。 |
ipAddress |
字符串 |
不可为 null |
IP 地址 |
score |
字符串 |
不可为 null |
CVE 分数,介于 0.0 到 10.0 之间 |
attackVector |
字符串 |
不可为 null |
Network 、Adjacent Network 、Local 或 Physical |
description |
字符串 |
不可为 null |
- |
响应示例
[
{
"cveId": "CVE-2007-0099",
"score": "9.3",
"ipAddress": "10.35.1.51",
"attackVector": "NETWORK",
"description": "Race condition in the msxml3 module in Microsoft XML Core
Services 3.0, as used in Internet Explorer 6 and other
applications, allows remote attackers to execute arbitrary
code or cause a denial of service (application crash) via many
nested tags in an XML document in an IFRAME, when synchronous
document rendering is frequently disrupted with asynchronous
events, as demonstrated using a JavaScript timer, which can
trigger NULL pointer dereferences or memory corruption, aka
\"MSXML Memory Corruption Vulnerability.\""
},
{
"cveId": "CVE-2009-1547",
"score": "9.3",
"ipAddress": "10.35.1.51",
"attackVector": "NETWORK",
"description": "Unspecified vulnerability in Microsoft Internet Explorer 5.01
SP4, 6, 6 SP1, and 7 allows remote attackers to execute
arbitrary code via a crafted data stream header that triggers
memory corruption, aka \"Data Stream Header Corruption
Vulnerability.\""
}
]
类型:GET
API:
curl -k -H "Authorization: <AUTH_TOKEN>" https://<IP_ADDRESS>/api/v1/devices/cves
示例:
curl -k -H "Authorization: 1234b734a9244d54ab8d40aedddcabcd" https://127.0.0.1/api/v1/devices/cves
使用此 API 可请求在网络中的设备上为特定 IP 地址发现的所有已知 CVE 的列表。
URI:/api/v1/devices/cves
GET
示例:/api/v1/devices/cves
路径参数
名称 |
步骤 |
示例 |
必需/可选 |
ipAddress |
获取给定 IP 地址的 CVE。 |
/api/v1/devices/<ipAddress>/cves |
必需 |
定义以下查询参数以筛选返回的结果。
名称 |
步骤 |
示例 |
必需/可选 |
返回页首 |
数值。 确定要为每个设备 IP 地址获取多少个得分最高的 CVE。 |
/api/v1/devices/cves?top=50
/api/v1/devices/<ipAddress>/cves?top=50 |
可选。 默认值 = 100 |
类型:JSON
设备 CVE 对象的 JSON 数组,或以下失败消息:
成功响应字段
名称 |
类型 |
可为空/不可为 null |
值列表 |
cveId |
字符串 |
不可为 null |
给定 CVE 的行业标准规范 ID。 |
ipAddress |
字符串 |
不可为 null |
IP 地址 |
score |
字符串 |
不可为 null |
CVE 分数,介于 0.0 到 10.0 之间 |
attackVector |
字符串 |
不可为 null |
Network 、Adjacent Network 、Local 或 Physical |
description |
字符串 |
不可为 null |
- |
响应示例
[
{
"cveId": "CVE-2007-0099",
"score": "9.3",
"ipAddress": "10.35.1.51",
"attackVector": "NETWORK",
"description": "Race condition in the msxml3 module in Microsoft XML Core
Services 3.0, as used in Internet Explorer 6 and other
applications, allows remote attackers to execute arbitrary
code or cause a denial of service (application crash) via many
nested tags in an XML document in an IFRAME, when synchronous
document rendering is frequently disrupted with asynchronous
events, as demonstrated using a JavaScript timer, which can
trigger NULL pointer dereferences or memory corruption, aka
\"MSXML Memory Corruption Vulnerability.\""
},
{
"cveId": "CVE-2009-1547",
"score": "9.3",
"ipAddress": "10.35.1.51",
"attackVector": "NETWORK",
"description": "Unspecified vulnerability in Microsoft Internet Explorer 5.01
SP4, 6, 6 SP1, and 7 allows remote attackers to execute
arbitrary code via a crafted data stream header that triggers
memory corruption, aka \"Data Stream Header Corruption
Vulnerability.\""
}
]
类型:GET
API:
curl -k -H "Authorization: <AUTH_TOKEN>" https://<IP_ADDRESS>/api/v1/devices/<deviceIpAddress>/cves?top=
示例:
使用给定的查询参数:
curl -k -H "Authorization: 1234b734a9244d54ab8d40aedddcabcd" https://127.0.0.1/api/v1/devices/10.10.10.15/cves?top=50
使用此 API 可请求此传感器检测到的所有设备的列表。
URI:api/v1/devices/
GET
查询参数
定义以下查询参数以筛选返回的结果。 如果未设置查询参数,则返回所有设备连接。
名称 |
步骤 |
示例 |
必需/可选 |
已授权 |
布尔:
- true :仅筛选已授权设备上的数据。 - false :仅筛选未经授权的设备上的数据。 |
/api/v1/devices/ |
可选 |
类型:GET
curl -k -H "Authorization: <AUTH_TOKEN>" 'https://<IP_ADDRESS>/api/v1/devices/'
后续步骤
有关详细信息,请参阅 Defender for IoT API 参考概述。