Naslaginformatie over de API voor beveiligingsbeheer voor ot-bewakingssensoren
- Artikel
In dit artikel worden de REST API's voor het beheer van beveiligingsproblemen vermeld die worden ondersteund voor Microsoft Defender voor IoT OT-bewakingssensoren.
De gegevens in de API-antwoorden bevatten dezelfde informatie als wanneer u een beveiligingsrapport hebt gegenereerd vanuit de on-premises beheerconsole.
apparaten (informatie over beveiligingsproblemen van apparaten ophalen)
Gebruik deze API om evaluatieresultaten voor beveiligingsproblemen voor elk apparaat aan te vragen.
URI: /api/v1/reports/vulnerabilities/devices
GET
Deze API wordt aangeroepen zonder aanvraagparameters.
Type: JSON
Matrix van JSON-objecten die geëvalueerde apparaten en de gerapporteerde beveiligingsproblemen vertegenwoordigen.
Apparaten die geen beveiligingsproblemen hebben, worden niet opgenomen in het resultaatantwoord.
Apparaatvelden
Naam | Type | Nullable /Not nullable | Lijst met waarden |
---|---|---|---|
name | Tekenreeks | Niet nullable | - |
ipAddresses | JSON-matrix | Niet nullable | - |
securityScore | Numeriek | Niet nullable | - |
Leverancier | Tekenreeks | Null-waarde toegestaan | |
firmwareversie | Tekenreeks | Null-waarde toegestaan | - |
Model | Tekenreeks | Null-waarde toegestaan | - |
isWirelessAccessPoint | Booleaans | Niet nullable | True of False |
Operatingsystem | Besturingssysteemobject | Null-waarde toegestaan | - |
Kwetsbaarheden | Object Beveiligingsproblemen | Niet nullable | - |
Besturingssysteemvelden
Naam | Type | Nullable /Not nullable | Lijst met waarden |
---|---|---|---|
name | Tekenreeks | Niet nullable | - |
type | Tekenreeks | Niet nullable | - |
version | Tekenreeks | Null-waarde toegestaan | - |
latestVersion | Tekenreeks | Null-waarde toegestaan | - |
Velden voor beveiligingsproblemen
Naam | Type | Nullable /Not nullable | Lijst met waarden |
---|---|---|---|
Antiviruses | JSON-matrix met tekenreeksen | Null-waarde toegestaan | Antivirusnamen |
plainTextPasswords | JSON-matrix | Null-waarde toegestaan | Wachtwoordobjecten |
remoteAccess | JSON-matrix | Null-waarde toegestaan | RAS-objecten |
isBackupServer | Booleaans | Niet nullable | True of False |
openedPorts | JSON-matrix | Null-waarde toegestaan | Geopende poortobjecten |
isEngineeringStation | Booleaans | Niet nullable | True of False |
isKnownScanner | Booleaans | Niet nullable | True of False |
cves | JSON-matrix | Null-waarde toegestaan | CVE-objecten |
isUnauthorized | Booleaans | Niet nullable | True of False |
malwareIndicationsDetected | Booleaans | Niet nullable | True of False |
weakAuthentication | JSON-matrix met tekenreeksen | Null-waarde toegestaan | Gedetecteerde toepassingen die gebruikmaken van zwakke verificatie |
Wachtwoordvelden
Naam | Type | Nullable /Not nullable | Lijst met waarden |
---|---|---|---|
password | Tekenreeks | Niet nullable | - |
protocol | Tekenreeks | Niet nullable | - |
Kracht | Tekenreeks | Niet nullable | Very weak , Weak , Medium , Strong |
Velden voor externe toegang
Naam | Type | Null-waarde toegestaan | Lijst met waarden |
---|---|---|---|
Poort | Numeriek | Niet nullable | - |
Vervoer | Tekenreeks | Niet nullable | TCP , UDP |
Client | Tekenreeks | Niet nullable | IP-adres |
clientSoftware | Tekenreeks | Niet nullable | Naam van het externe protocol, zoals SSH , VNC , Remote desktop of Team viewer |
Poortvelden openen
Naam | Type | Nullable /Not nullable | Lijst met waarden |
---|---|---|---|
Poort | Numeriek | Niet nullable | - |
Vervoer | Tekenreeks | Niet nullable | TCP of UDP |
protocol | Tekenreeks | Null-waarde toegestaan | - |
isConflictingWithFirewall | Booleaans | Niet nullable | True of False |
CVE-velden
Naam | Type | Nullable /Not nullable | Lijst met waarden |
---|---|---|---|
id | Tekenreeks | Niet nullable | - |
Score | Numerieke, decimale waarde | Niet nullable | - |
beschrijving | Tekenreeks | Niet nullable | - |
Voorbeeld van antwoord
[
{
"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
}
}
]
Type: GET
API:
curl -k -H "Authorization: <AUTH_TOKEN>" https://<IP_ADDRESS>/api/v1/reports/vulnerabilities/devices
Voorbeeld:
curl -k -H "Authorization: 1234b734a9244d54ab8d40aedddcabcd" https://127.0.0.1/api/v1/reports/vulnerabilities/devices
beveiliging (beveiligingsproblemen ophalen)
Gebruik deze API om resultaten op te vragen van een algemeen evaluatierapport voor beveiligingsproblemen. Deze evaluatie biedt inzicht in het beveiligingsniveau van uw systeem.
Deze evaluatie is gebaseerd op algemene netwerk- en systeeminformatie en niet op een specifieke apparaatevaluatie.
URI: /api/v1/reports/vulnerabilities/security
GET
Deze API wordt aangeroepen zonder aanvraagparameters.
Type: JSON-weergave van een of meer gegevenstabellen, elk met specifieke en mogelijk verschillende structuren.
Het antwoord wordt weergegeven in een kaartweergave, waarin tabeltitels worden toegewezen aan tabelrijen. Rijen worden weergegeven als een lijst met objecten met dezelfde structuren.
unauthorizedDevices-velden
Naam | Type | Nullable /Not nullable | Lijst met waarden |
---|---|---|---|
Adres | Tekenreeks | Null-waarde toegestaan | IP- of MAC-adres van het niet-geautoriseerde apparaat |
name | Tekenreeks | Null-waarde toegestaan | Naam van het niet-geautoriseerde apparaat |
firstDetectionTime | Numeriek | Null-waarde toegestaan | Tijdstempel van het apparaat is voor het eerst gedetecteerd, in milliseconden vanaf Epoch-tijd en in UTC-tijdzone |
lastSeen | Numeriek | Null-waarde toegestaan | Tijdstempel dat verkeer voor het laatst is gedetecteerd als verzonden naar of van het apparaat, in milliseconden vanaf Epoch-tijd en in UTC-tijdzone |
illegalTrafficByFirewallRules velden
Naam | Type | Nullable /Not nullable | Lijst met waarden |
---|---|---|---|
Server | Tekenreeks | Null-waarde toegestaan | IP-adres van server |
Client | Tekenreeks | Null-waarde toegestaan | IP-adres van client |
Poort | Numeriek | Null-waarde toegestaan | De serverpoort |
Vervoer | Tekenreeks | Null-waarde toegestaan | TCP , UDP of ICMP |
weakFirewallRules velden
Naam | Type | Nullable /Not nullable | Lijst met waarden |
---|---|---|---|
Bronnen | JSON-matrix met bronnen | Null-waarde toegestaan | JSON-matrix met bronnen in een van de volgende indelingen: - Any - ip address (host) - from ip-to ip (RANGE) - ip address, subnet mask (NETWORK) |
Bestemmingen | JSON-matrix met bestemmingen | Null-waarde toegestaan | JSON-matrix met doelobjecten, in een van de volgende indelingen: - Any - ip address (host) - from ip-to ip (RANGE) - ip address, subnet mask (NETWORK) |
Poorten | JSON-matrix van poorten | Null-waarde toegestaan | JSON-matrix met poortobjecten, in een van de volgende indelingen: - Any - port (protocol, if detected) - from port-to port (protocol, if detected) |
accessPoints-velden
Naam | Type | Nullable /Not nullable | Lijst met waarden |
---|---|---|---|
macAddress | Tekenreeks | Null-waarde toegestaan | Het MAC-adres van het toegangspunt |
Leverancier | Tekenreeks | Null-waarde toegestaan | De naam van de leverancier van het toegangspunt |
ipAddress | Tekenreeks | Null-waarde toegestaan | Het IP-adres van het toegangspunt of N.w.z. |
name | Tekenreeks | Null-waarde toegestaan | De apparaatnaam van het toegangspunt of n.a.w. |
Draadloze | Tekenreeks | Null-waarde toegestaan | Of het toegangspunt is verbonden met een draadloos netwerk: No , Suspected , of Yes |
connectionsBetweenSubnets fields
Naam | Type | Nullable /Not nullable | Lijst met waarden |
---|---|---|---|
Server | Tekenreeks | Null-waarde toegestaan | Het IP-adres van de server |
Client | Tekenreeks | Null-waarde toegestaan | Het IP-adres van de client |
industrialMalwareIndicators (velden)
Naam | Type | Nullable /Not nullable | Lijst met waarden |
---|---|---|---|
detectionTime | Numeriek | Null-waarde toegestaan | Tijdstempel: de malware is voor het eerst gedetecteerd, in milliseconden vanaf Epoch-tijd en in UTC-tijdzone |
alertMessage | Tekenreeks | Null-waarde toegestaan | Het verzonden waarschuwingsbericht |
beschrijving | Tekenreeks | Null-waarde toegestaan | De beschrijving van het waarschuwingsbericht |
Apparaten | JSON-matrix | Niet nullable | Een JSON-matrix met tekenreeksen die apparaatnamen vertegenwoordigen |
internetConnections velden
Naam | Type | Nullable /Not nullable | Lijst met waarden |
---|---|---|---|
internalAddress | Tekenreeks | Null-waarde toegestaan | Het interne IP-adres van de verbinding |
Gemachtigd | Booleaans | Null-waarde toegestaan | Yes of No |
externalAddresses | JSON-matrix | Niet nullable | Een JSON-matrix van de externe IP-adressen van de verbinding |
Voorbeeld van antwoord
{
"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"
}
]
}
Type: GET
API's:
curl -k -H "Authorization: <AUTH_TOKEN>" https://<IP_ADDRESS>/api/v1/reports/vulnerabilities/security
Voorbeeld:
curl -k -H "Authorization: 1234b734a9244d54ab8d40aedddcabcd" https://127.0.0.1/api/v1/reports/vulnerabilities/security
operationeel (operationele beveiligingsproblemen ophalen)
Gebruik deze API om resultaten van een algemene evaluatie van beveiligingsproblemen op te vragen. Deze evaluatie biedt inzicht in de operationele status van uw netwerk. Het is gebaseerd op algemene netwerk- en systeeminformatie en niet op een specifieke apparaatevaluatie.
URI: /api/v1/reports/vulnerabilities/operational
GET
Deze API wordt aangeroepen zonder aanvraagparameters.
Type: JSON-weergave van een of meer gegevenstabellen, elk met specifieke en mogelijk verschillende structuren.
Het antwoord wordt weergegeven in een kaartweergave, waarin tabeltitels worden toegewezen aan tabelrijen. Rijen worden weergegeven als een lijst met objecten met dezelfde structuren.
backupServer-resultaatvelden
Naam | Type | Nullable /Not nullable | Lijst met waarden |
---|---|---|---|
bron | Tekenreeks | Null-waarde toegestaan | Het bron-IP-adres |
Bestemming | Tekenreeks | Null-waarde toegestaan | Het doel-IP-adres |
Poort | Numeriek | Null-waarde toegestaan | De poort van de back-upserver |
Vervoer | Tekenreeks | Null-waarde toegestaan | Het transportprotocol TCP van de back-upserver of UDP |
backupMaximalInterval | Tekenreeks | Null-waarde toegestaan | De maximale intervaltijd tussen back-ups |
lastSeenBackup | Numeriek | Null-waarde toegestaan | Tijdstempel dat een back-up voor het laatst is gezien, in milliseconden vanaf Epoch-tijd en in UTC-tijdzone |
ipNetworks-resultaatvelden
Naam | Type | Nullable /Not nullable | Lijst met waarden |
---|---|---|---|
Adressen | Numeriek | Niet nullable | Het aantal IP-adressen dat is gedetecteerd in het subnetbereik. |
network | Tekenreeks | Niet nullable | Het basis-IP-adres van het subnet. |
masker | Tekenreeks | Niet nullable | Het subnetmasker. |
protocolProblems-resultaatvelden
Naam | Type | Nullable /Not nullable | Lijst met waarden |
---|---|---|---|
protocol | Tekenreeks | Niet nullable | Een protocol waarvoor een waarschuwing voor protocolschending is geactiveerd |
Adressen | JSON-matrix met IP-adressen | Niet nullable | JSON-matrix met IP-adressen waarvan de schending afkomstig is |
Alert | Tekenreeks | Niet nullable | De titel van de geactiveerde waarschuwing |
reportTime | Numeriek | Niet nullable | Tijdstempel dat een rapport voor het laatst is gegenereerd, in milliseconden van Epoch-tijd en in UTC-tijdzone |
protocolDataVolumes-resultaatvelden
Naam | Type | Nullable /Not nullable | Lijst met waarden |
---|---|---|---|
protocol | Tekenreeks | Null-waarde toegestaan | Een protocol dat op het netwerk is gedetecteerd door de OT-netwerksensor |
Volume | Tekenreeks | Null-waarde toegestaan | Het volume van protocolpakketten dat is vastgelegd door de OT-netwerksensor, in MB |
resultaatvelden voor verbroken verbindingen
Naam | Type | Nullable /Not nullable | Lijst met waarden |
---|---|---|---|
assetAddress | Tekenreeks | Null-waarde toegestaan | Het IP-adres van de niet-verbonden asset |
assetName | Tekenreeks | Null-waarde toegestaan | De naam van de niet-verbonden asset |
lastDetectionTime | Numeriek | Null-waarde toegestaan | Tijdstempel dat de verbinding voor het laatst is gedetecteerd, in milliseconden van Epoch-tijd en in UTC-tijdzone |
backToNormalTime | Numeriek | Null-waarde toegestaan | Tijdstempel dat de verbinding heeft geretourneerd, in milliseconden vanaf Epoch-tijd en in UTC-tijdzone |
Voorbeeld van antwoord
{
"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
}
]
}
Type: GET
API's:
curl -k -H "Authorization: <AUTH_TOKEN>" https://<IP_ADDRESS>/api/v1/reports/vulnerabilities/operational
Voorbeeld:
curl -k -H "Authorization: 1234b734a9244d54ab8d40aedddcabcd" https://127.0.0.1/api/v1/reports/vulnerabilities/operational
beperking (oplossingsstappen ophalen)
Gebruik deze API om een beperkingsevaluatie aan te vragen. Deze evaluatie bevat aanbevolen stappen voor het beperken van gedetecteerde beveiligingsproblemen. Het is gebaseerd op algemene netwerk- en systeeminformatie en niet op een specifieke apparaatevaluatie.
URI: /api/v1/reports/vulnerabilities/mitigation
GET
Deze API wordt aangeroepen zonder aanvraagparameters.
Type: JSON
JSON-object dat de aanbevolen risicobeperkingsstappen vertegenwoordigt.
Antwoordvelden
Veldnaam | Type | Null-waarde toegestaan | Lijst met waarden |
---|---|---|---|
Meldingen | JSON-matrix met tekenreeksen | Niet nullable | Aanbevolen oplossingsstappen voor gedetecteerde beveiligingsproblemen |
Mitigatie | JSON-matrix | Niet nullable | risicobeperkingsobjecten |
beperkingsvelden
Veldnaam | Type | Null-waarde toegestaan | Lijst met waarden |
---|---|---|---|
Inhoud | Tekenreeks | Niet nullable | Aanbevolen oplossingsstappen voor gedetecteerde beveiligingsproblemen |
scoreImprovement | Geheel getal | Null-waarde toegestaan | Verwacht percentage beveiligingsverbeteringen nadat er risicobeperkingsstappen zijn genomen. |
Details | Tabel | Null-waarde toegestaan | Een tabel met aanbevelingen voor risicobeperking, zoals wordt gegenereerd in het rapport Risicobeoordeling . Elke aanbeveling bevat details over mogelijke gevolgen voor de beveiliging als de actie wordt uitgevoerd en meer. Zie Risicobeperking voor meer informatie. |
Notitie
Mogelijk hebt u meerdere risicobeperkingsstappen, waarbij sommige worden geretourneerd in het notifications
veld en andere in het mitigation
veld. Items met scoreImprovement
en details
worden alleen in het mitigation
veld geretourneerd. Items zonder scoreImprovement
gegevens en details
worden alleen in het notifications
veld geretourneerd.
Voorbeeld van antwoord
{
"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"
Volgende stappen
Zie het overzicht naslaginformatie voor Defender for IoT API voor meer informatie.