你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
OT 监视传感器的漏洞管理 API 参考
- 项目
本文列出了 Microsoft Defender for IoT OT 监视传感器支持的漏洞管理 REST API。
API 响应中所含数据包含与从本地管理控制台生成漏洞报告相同的信息。
设备(检索设备漏洞信息)
使用此 API 可请求每个设备的漏洞评估结果。
URI:/api/v1/reports/vulnerabilities/devices
GET
调用此 API 时未使用任何请求参数。
类型:JSON
表示已评估的设备及其报告的漏洞的 JSON 对象数组。
结果响应中不包含经发现没有漏洞的设备。
设备字段
名称 | 类型 | 可为空/不可为 null | 值列表 |
---|---|---|---|
name | 字符串 | 不可为 null | - |
ipAddresses | JSON 数组 | 不可为 null | - |
securityScore | Numeric | 不可为 null | - |
vendor | 字符串 | Nullable | |
firmwareVersion | 字符串 | Nullable | - |
model | 字符串 | Nullable | - |
isWirelessAccessPoint | 布尔 | 不可为 null |
True 或 False |
OperatingSystem | 操作系统对象 | Nullable | - |
vulnerabilities | 漏洞对象 | 不可为 null | - |
操作系统字段
名称 | 类型 | 可为空/不可为 null | 值列表 |
---|---|---|---|
name | 字符串 | 不可为 null | - |
type | 字符串 | 不可为 null | - |
version | String | Nullable | - |
latestVersion | 字符串 | Nullable | - |
漏洞字段
名称 | 类型 | 可为空/不可为 null | 值列表 |
---|---|---|---|
antiViruses | 字符串的 JSON 数组 | Nullable | 防病毒软件名称 |
plainTextPasswords | JSON 数组 | Nullable | 密码对象 |
remoteAccess | JSON 数组 | Nullable | 远程访问对象 |
isBackupServer | 布尔 | 不可为 null |
True 或 False |
openedPorts | JSON 数组 | Nullable | 打开的端口对象 |
isEngineeringStation | 布尔 | 不可为 null |
True 或 False |
isKnownScanner | 布尔 | 不可为 null |
True 或 False |
cves | JSON 数组 | Nullable | CVE 对象 |
isUnauthorized | 布尔 | 不可为 null |
True 或 False |
malwareIndicationsDetected | 布尔 | 不可为 null |
True 或 False |
weakAuthentication | 字符串的 JSON 数组 | Nullable | 检测到使用弱身份验证的应用程序 |
密码字段
名称 | 类型 | 可为空/不可为 null | 值列表 |
---|---|---|---|
password | 字符串 | 不可为 null | - |
protocol | 字符串 | 不可为 null | - |
strength | 字符串 | 不可为 null |
Very weak , Weak , Medium , Strong |
远程访问字段
名称 | 类型 | Nullable | 值列表 |
---|---|---|---|
port | Numeric | 不可为 null | - |
transport | 字符串 | 不可为 null |
TCP , UDP |
客户端 | 字符串 | 不可为 null | IP 地址 |
clientSoftware | 字符串 | 不可为 null | 远程协议的名称,例如 SSH 、VNC 、Remote desktop 或 Team viewer |
打开端口字段
名称 | 类型 | 可为空/不可为 null | 值列表 |
---|---|---|---|
port | Numeric | 不可为 null | - |
transport | 字符串 | 不可为 null |
TCP 或 UDP |
protocol | 字符串 | Nullable | - |
isConflictingWithFirewall | 布尔 | 不可为 null |
True 或 False |
CVE 字段
名称 | 类型 | 可为空/不可为 null | 值列表 |
---|---|---|---|
id | String | 不可为 null | - |
score | 数值,十进制值 | 不可为 null | - |
description | 字符串 | 不可为 null | - |
响应示例
[
{
"name": "IED \#10",
"ipAddresses": ["10.2.1.10"],
"securityScore": 100,
"vendor": "ABB Switzerland Ltd, Power Systems",
"firmwareVersion": null,
"model": null,
"operatingSystem": {
"name": "ABB Switzerland Ltd, Power Systems",
"type": "abb",
"version": null,
"latestVersion": null
},
"vulnerabilities": {
"antiViruses": [
"McAfee"
],
"plainTextPasswords": [
{
"password": "123456",
"protocol": "HTTP",
"strength": "Very Weak"
}
],
"remoteAccess": [
{
"port": 5900,
"transport": "TCP",
"clientSoftware": "VNC",
"client": "10.2.1.20"
}
],
"isBackupServer": true,
"openedPorts": [
{
"port": 445,
"transport": "TCP",
"protocol": "SMP Over IP",
"isConflictingWithFirewall": false
},
{
"port": 80,
"transport": "TCP",
"protocol": "HTTP",
"isConflictingWithFirewall": false
}
],
"isEngineeringStation": false,
"isKnownScanner": false,
"cves": [
{
"id": "CVE-2015-6490",
"score": 10,
"description": "Frosty URL - Stack-based buffer overflow on Allen-Bradley MicroLogix 1100 devices before B FRN 15.000 and 1400 devices through B FRN 15.003 allows remote attackers to execute arbitrary code via unspecified vectors"
},
{
"id": "CVE-2012-6437",
"score": 10,
"description": "MicroLogix 1100 and 1400 do not properly perform authentication for Ethernet firmware updates, which allows remote attackers to execute arbitrary code via a Trojan horse update image"
},
{
"id": "CVE-2012-6440",
"score": 9.3,
"description": "MicroLogix 1100 and 1400 allows man-in-the-middle attackers to conduct replay attacks via HTTP traffic."
}
],
"isUnauthorized": false,
"malwareIndicationsDetected": true
}
}
]
类型:GET
API:
curl -k -H "Authorization: <AUTH_TOKEN>" https://<IP_ADDRESS>/api/v1/reports/vulnerabilities/devices
示例:
curl -k -H "Authorization: 1234b734a9244d54ab8d40aedddcabcd" https://127.0.0.1/api/v1/reports/vulnerabilities/devices
安全(检索安全漏洞)
使用此 API 可请求一般漏洞评估报告的结果。 此评估可提供有关系统安全级别的深入见解。
此评估基于常规网络和系统信息,而不是基于特定的设备评估。
URI:/api/v1/reports/vulnerabilities/security
GET
调用此 API 时未使用任何请求参数。
类型:一个或多个数据表的 JSON 表示形式,每个数据表都具有可能不同的特定结构。
响应显示在映射视图中,该视图将表标题映射到表行。 行表示为具有相同结构的对象列表。
unauthorizedDevices 字段
名称 | 类型 | 可为空/不可为 null | 值列表 |
---|---|---|---|
address | 字符串 | Nullable | 未经授权设备的 IP 或 MAC 地址 |
name | 字符串 | Nullable | 未经授权设备的名称 |
firstDetectionTime | Numeric | Nullable | 首次检测到设备的时间戳,以毫秒为单位,采用 Epoch 时间和 UTC 时区 |
lastSeen | Numeric | Nullable | 上次检测到流量发送到设备或从设备发送流量的时间戳,以毫秒为单位,采用 Epoch 时间和 UTC 时区 |
illegalTrafficByFirewallRules 字段
名称 | 类型 | 可为空/不可为 null | 值列表 |
---|---|---|---|
服务器 | 字符串 | Nullable | 服务器 IP 地址 |
客户端 | 字符串 | Nullable | 客户端 IP 地址 |
port | Numeric | Nullable | 服务器端口 |
transport | 字符串 | Nullable |
TCP 、UDP 或 ICMP |
weakFirewallRules 字段
名称 | 类型 | 可为空/不可为 null | 值列表 |
---|---|---|---|
sources | 源的 JSON 数组 | Nullable | 采用以下任一格式的源的 JSON 数组: - Any - ip address (host) - from ip-to ip (RANGE) - ip address, subnet mask (NETWORK) |
destinations | 目标的 JSON 数组 | Nullable | 采用以下任一格式的目标对象 JSON 数组: - Any - ip address (host) - from ip-to ip (RANGE) - ip address, subnet mask (NETWORK) |
ports | 端口的 JSON 数组 | Nullable | 采用以下任一格式的端口对象 JSON 数组: - Any - port (protocol, if detected) - from port-to port (protocol, if detected) |
accessPoints 字段
名称 | 类型 | 可为空/不可为 null | 值列表 |
---|---|---|---|
macAddress | 字符串 | Nullable | 接入点的 MAC 地址 |
vendor | 字符串 | Nullable | 接入点的供应商名称 |
ipAddress | 字符串 | Nullable | 接入点的 IP 地址或不适用 |
name | 字符串 | Nullable | 接入点的设备名称或不适用 |
wireless | 字符串 | Nullable | 接入点是否连接到无线网络:No 、Suspected 或 Yes |
connectionsBetweenSubnets 字段
名称 | 类型 | 可为空/不可为 null | 值列表 |
---|---|---|---|
服务器 | 字符串 | Nullable | 服务器的 IP 地址 |
客户端 | 字符串 | Nullable | 客户端的 IP 地址 |
industrialMalwareIndicators 字段
名称 | 类型 | 可为空/不可为 null | 值列表 |
---|---|---|---|
detectionTime | Numeric | Nullable | 首次检测到恶意软件的时间戳,以毫秒为单位,采用 Epoch 时间和 UTC 时区 |
alertMessage | 字符串 | Nullable | 发送的警报消息 |
description | 字符串 | Nullable | 警报消息说明 |
devices | JSON 数组 | 不可为 null | 表示设备名称的字符串的 JSON 数组 |
internetConnections 字段
名称 | 类型 | 可为空/不可为 null | 值列表 |
---|---|---|---|
internalAddress | 字符串 | Nullable | 连接的内部 IP 地址 |
已授权 | Boolean | Nullable |
Yes 或 No |
externalAddresses | JSON 数组 | 不可为 null | 连接的外部 IP 地址的 JSON 数组 |
响应示例
{
"unauthorizedDevices": [
{
"address": "10.2.1.14",
"name": "PLC \#14",
"firstDetectionTime": 1462645483000,
"lastSeen": 1462645495000,
}
],
"redundantFirewallRules": [
{
"sources": "170.39.3.0/255.255.255.0",
"destinations": "Any",
"ports": "102"
}
],
"connectionsBetweenSubnets": [
{
"server": "10.2.1.22",
"client": "170.39.2.0"
}
],
"industrialMalwareIndications": [
{
"detectionTime": 1462645483000,
"alertMessage": "Suspicion of Malicious Activity (Regin)",
"description": "Suspicious network activity was detected. Such behavior might be attributed to the Regin malware.",
"addresses": [
"10.2.1.4",
"10.2.1.5"
]
}
],
"illegalTrafficByFirewallRules": [
{
"server": "10.2.1.7",
"port": "20000",
"client": "10.2.1.4",
"transport": "TCP"
},
{
"server": "10.2.1.8",
"port": "20000",
"client": "10.2.1.4",
"transport": "TCP"
},
{
"server": "10.2.1.9",
"port": "20000",
"client": "10.2.1.4",
"transport": "TCP"
}
],
"internetConnections": [
{
"internalAddress": "10.2.1.1",
"authorized": "Yes",
"externalAddresses": ["10.2.1.2",”10.2.1.3”]
}
],
"accessPoints": [
{
"macAddress": "ec:08:6b:0f:1e:22",
"vendor": "TP-LINK TECHNOLOGIES",
"ipAddress": "173.194.112.22",
"name": "Enterprise AP",
"wireless": "Yes"
}
],
"weakFirewallRules": [
{
"sources": "170.39.3.0/255.255.255.0",
"destinations": "Any",
"ports": "102"
}
]
}
类型:GET
API:
curl -k -H "Authorization: <AUTH_TOKEN>" https://<IP_ADDRESS>/api/v1/reports/vulnerabilities/security
示例:
curl -k -H "Authorization: 1234b734a9244d54ab8d40aedddcabcd" https://127.0.0.1/api/v1/reports/vulnerabilities/security
操作(检索操作漏洞)
使用此 API 可请求一般漏洞评估结果。 此评估可提供有关网络操作状态的见解。 它基于常规网络和系统信息,而不是基于特定的设备评估。
URI:/api/v1/reports/vulnerabilities/operational
GET
调用此 API 时未使用任何请求参数。
类型:一个或多个数据表的 JSON 表示形式,每个数据表都具有可能不同的特定结构。
响应显示在映射视图中,该视图将表标题映射到表行。 行表示为具有相同结构的对象列表。
backupServer 结果字段
名称 | 类型 | 可为空/不可为 null | 值列表 |
---|---|---|---|
source | 字符串 | Nullable | 源 IP 地址 |
destination | 字符串 | Nullable | 目标 IP 地址 |
port | Numeric | Nullable | 备份服务器端口 |
transport | 字符串 | Nullable | 备份服务器传输协议 TCP 或 UDP |
backupMaximalInterval | 字符串 | Nullable | 备份的最大间隔时间 |
lastSeenBackup | Numeric | Nullable | 上次进行备份的时间戳,以毫秒为单位,采用 Epoch 时间和 UTC 时区 |
ipNetworks 结果字段
名称 | 类型 | 可为空/不可为 null | 值列表 |
---|---|---|---|
addresses | Numeric | 不可为 null | 子网范围中发现的 IP 地址数。 |
network | 字符串 | 不可为 null | 子网的基本 IP 地址。 |
mask | 字符串 | 不可为 null | 子网掩码。 |
protocolProblems 结果字段
名称 | 类型 | 可为空/不可为 null | 值列表 |
---|---|---|---|
protocol | 字符串 | 不可为 null | 触发协议违规警报的协议 |
addresses | IP 地址的 JSON 数组 | 不可为 null | 产生违规的 IP 地址的 JSON 数组 |
alert | 字符串 | 不可为 null | 触发的警报标题 |
reportTime | Numeric | 不可为 null | 上次生成报表的时间戳,以毫秒为单位,采用 Epoch 时间和 UTC 时区 |
protocolDataVolumes 结果字段
名称 | 类型 | 可为空/不可为 null | 值列表 |
---|---|---|---|
protocol | 字符串 | Nullable | OT 网络传感器在网络中检测到的协议 |
volume | String | Nullable | OT 网络传感器捕获的协议数据包量(以 MB 为单位) |
disconnections 结果字段
名称 | 类型 | 可为空/不可为 null | 值列表 |
---|---|---|---|
assetAddress | 字符串 | Nullable | 断开连接的资产的 IP 地址 |
assetName | 字符串 | Nullable | 断开连接的资产的名称 |
lastDetectionTime | Numeric | Nullable | 上次检测到断开连接的时间戳,以毫秒为单位,采用 Epoch 时间和 UTC 时区 |
backToNormalTime | Numeric | Nullable | 返回连接的时间戳,以毫秒为单位,采用 Epoch 时间和 UTC 时区 |
响应示例
{
"backupServer": [
{
"backupMaximalInterval": "1 Hour, 29 Minutes",
"source": "10.2.1.22",
"destination": "170.39.2.14",
"port": 10000,
"transport": "TCP",
"lastSeenBackup": 1462645483000
}
],
"ipNetworks": [
{
"addresses": "21",
"network": "10.2.1.0",
"mask": "255.255.255.0"
},
{
"addresses": "3",
"network": "170.39.2.0",
"mask": "255.255.255.0"
}
],
"protocolProblems": [
{
"protocol": "DNP3",
"addresses": [
"10.2.1.7",
"10.2.1.8"
],
"alert": "Illegal DNP3 Operation",
"reportTime": 1462645483000
},
{
"protocol": "DNP3",
"addresses": [
"10.2.1.15"
],
"alert": "Master Requested an Application Layer Confirmation",
"reportTime": 1462645483000
}
],
"protocolDataVolumes": [
{
"protocol": "MODBUS (502)",
"volume": "21.07 MB"
},
{
"protocol": "SSH (22)",
"volume": "0.001 MB"
}
],
"disconnections": [
{
"assetAddress": "10.2.1.3",
"assetName": "PLC \#3",
"lastDetectionTime": 1462645483000,
"backToNormalTime": 1462645484000
}
]
}
类型:GET
API:
curl -k -H "Authorization: <AUTH_TOKEN>" https://<IP_ADDRESS>/api/v1/reports/vulnerabilities/operational
示例:
curl -k -H "Authorization: 1234b734a9244d54ab8d40aedddcabcd" https://127.0.0.1/api/v1/reports/vulnerabilities/operational
缓解(检索缓解步骤)
使用此 API 可请求缓解评估。 此评估提供用于缓解检测到的漏洞的建议步骤。 它基于常规网络和系统信息,而不是基于特定的设备评估。
URI:/api/v1/reports/vulnerabilities/mitigation
GET
调用此 API 时未使用任何请求参数。
类型:JSON
表示建议缓解步骤的 JSON 对象。
响应字段
字段名称 | 类型 | Nullable | 值列表 |
---|---|---|---|
通知 | 字符串的 JSON 数组 | 不可为 null | 针对检测到的漏洞的建议缓解步骤 |
mitigation | JSON 数组 | 不可为 null | 缓解对象 |
缓解字段
字段名称 | 类型 | Nullable | 值列表 |
---|---|---|---|
content | 字符串 | 不可为 null | 针对检测到的漏洞的建议缓解步骤 |
scoreImprovement | Integer | Nullable | 采取缓解措施后预期的安全改进百分比。 |
details | 表 | Nullable | 列出缓解建议的表,例如将在风险评估报告中生成的表。 每个建议都包含有关执行操作时可能产生的安全影响等详细信息。 有关详细信息,请参阅风险缓解。 |
注意
可能有多个缓解步骤,其中一些在 notifications
字段中返回,而另一些在 mitigation
字段中返回。 包含 scoreImprovement
和 details
数据的项仅在 mitigation
字段中返回。 不包含 scoreImprovement
和 details
数据的项仅在 notifications
字段中返回。
响应示例
{
"notifications": ["Firewall policy import", "Marking \"important devices\"", "Further device information import"],
"mitigation": [{
"content": "Install an Antivirus solution to increase protection of the workstations",
"details": null,
"scoreImprovement": 10
}, {
"content": "Investigate all malware indicators (Contact your incident response team or support.microsoft.com). When assured the problem is solved, acknowledge the alert",
"details": {
"name": "",
"description": {
"name": "",
"important": false,
"warning": false
},
"headers": ["Detection Time", "Alert Message", "Description", "Devices"],
"rows": [
["03/10/2022 07:10:24", "Address Scan Detected", "Address scan detected.\nScanning address: 10.10.10.22\nScanned subnet: 10.11.0.0/16\nScanned addresses: 10.11.1.1, 10.11.20.1, 10.11.20.10, 10.11.20.100, 10.11.20.2, 10.11.20.3, 10.11.20.4, 10.11.20.5, 10.11.20.6, 10.11.20.7...\nIt is recommended to notify the security officer of the incident.", ""],
]
},
"scoreImprovement": 8
}, {
"content": "Install a backup server in the network",
"details": null,
"scoreImprovement": 5
}, {
"content": "Install latest security updates (Devices: 2)",
"details": {
"name": "",
"description": {
"name": "",
"important": false,
"warning": false
},
"headers": ["Name", "Address"],
"rows": [
["10.13.10.5", "10.13.10.5"],
["192.168.1.127", "192.168.1.127"]
]
},
"scoreImprovement": 2
}, {
"content": "Increase password complexity for authentication (Devices: 53)",
"details": {
"name": "",
"description": {
"name": "",
"important": false,
"warning": false
},
"headers": ["Name", "Address"],
"rows": [
["10.10.10.13", "10.10.10.13"],
["10.10.10.14", "10.10.10.14"],
["10.10.10.15", "10.10.10.15"],
["10.13.10.3", "10.13.10.3"],
["10.13.10.40", "10.13.10.40"],
["10.13.10.5", "10.13.10.5"],
["10.13.11.2", "10.13.11.2"],
["10.13.11.3", "10.13.11.3"],
["192.168.1.100", "192.168.1.100"],
["192.168.1.242", "192.168.1.242"]
]
},
"scoreImprovement": 2
}, {
"content": "Investigate and acknowledge all unacknowledge alerts",
"details": {
"name": "",
"description": {
"name": "",
"important": false,
"warning": false
},
"headers": ["Detection Time", "Alert Message", "Description"],
"rows": [
["03/10/2022 07:10:24", "Address Scan Detected", "Address scan detected.\nScanning address: 10.10.10.22\nScanned subnet: 10.11.0.0/16\nScanned addresses: 10.11.1.1, 10.11.20.1, 10.11.20.10, 10.11.20.100, 10.11.20.2, 10.11.20.3, 10.11.20.4, 10.11.20.5, 10.11.20.6, 10.11.20.7...\nIt is recommended to notify the security officer of the incident."],
["03/10/2022 07:44:52", "No Traffic Detected on Sensor Interface", "The sensor stopped detecting network traffic on local_listener."]
]
},
"scoreImprovement": 1
}]
}
curl -k -H "Authorization: 1234b734a9244d54ab8d40aedddcabcd" "https://<IP address>/api/v1/reports/vulnerabilities/mitigation"
后续步骤
有关详细信息,请参阅 Defender for IoT API 参考概述。
反馈
此页面是否有帮助?