Referensi API manajemen kerentanan untuk sensor pemantauan OT
- Artikel
Artikel ini mencantumkan REST API manajemen kerentanan yang didukung untuk Microsoft Defender untuk sensor pemantauan OT IoT.
Data yang disertakan dalam respons API mencakup informasi yang sama seolah-olah Anda membuat laporan kerentanan dari konsol manajemen lokal.
perangkat (Ambil informasi kerentanan perangkat)
Gunakan API ini untuk meminta hasil penilaian kerentanan untuk setiap perangkat.
URI: /api/v1/reports/vulnerabilities/devices
GET
API ini dipanggil tanpa parameter permintaan apa pun.
Jenis: JSON
Array objek JSON yang mewakili perangkat yang dinilai dan kerentanan yang dilaporkan.
Perangkat yang ditemukan tidak memiliki kerentanan tidak disertakan dalam respons hasil.
Bidang perangkat
Nama | Jenis | Dapat diubah ke null / Tidak dapat diubah ke null | Daftar nilai |
---|---|---|---|
nama | String | Tidak dapat diubah ke null | - |
alamatIp | Array JSON | Tidak dapat diubah ke null | - |
skorKeamanan | Numerik | Tidak dapat diubah ke null | - |
penjual | String | Dapat diubah ke null | |
VersiFirmware | String | Dapat diubah ke null | - |
model | String | Dapat diubah ke null | - |
adalahWirelessAccessPoint | Boolean | Tidak dapat diubah ke null | True atau False |
sistemOperasi | Objek sistem operasi | Dapat diubah ke null | - |
kerentanan | Objek kerentanan | Tidak dapat diubah ke null | - |
Bidang sistem operasi
Nama | Jenis | Dapat diubah ke null / Tidak dapat diubah ke null | Daftar nilai |
---|---|---|---|
nama | String | Tidak dapat diubah ke null | - |
tipe | String | Tidak dapat diubah ke null | - |
versi | String | Dapat diubah ke null | - |
versiTerbaru | String | Dapat diubah ke null | - |
Bidang kerentanan
Nama | Jenis | Dapat diubah ke null / Tidak dapat diubah ke null | Daftar nilai |
---|---|---|---|
antiVirus | String array JSON | Dapat diubah ke null | Nama antivirus |
KataSandiTeksBiasa | Array JSON | Dapat diubah ke null | Objek kata sandi |
aksesJarakJauh | Array JSON | Dapat diubah ke null | Objek akses jarak jauh |
adalahServerCadangan | Boolean | Tidak dapat diubah ke null | True atau False |
portaTerbuka | Array JSON | Dapat diubah ke null | Objek port terbuka |
adalahStasiunTeknik | Boolean | Tidak dapat diubah ke null | True atau False |
pemindaiDiketahui | Boolean | Tidak dapat diubah ke null | True atau False |
cve | Array JSON | Dapat diubah ke null | Objek CVE |
tidakSah | Boolean | Tidak dapat diubah ke null | True atau False |
indikasiMalwareTerdeteksi | Boolean | Tidak dapat diubah ke null | True atau False |
autentikasiLemah | String array JSON | Dapat diubah ke null | Aplikasi yang terdeteksi menggunakan autentikasi lemah |
Bidang kata sandi
Nama | Jenis | Dapat diubah ke null / Tidak dapat diubah ke null | Daftar nilai |
---|---|---|---|
password | String | Tidak dapat diubah ke null | - |
protokol | String | Tidak dapat diubah ke null | - |
kekuatan | String | Tidak dapat diubah ke null | Very weak , Weak , Medium , Strong |
Bidang akses jarak jauh
Nama | Jenis | Dapat diubah ke null | Daftar nilai |
---|---|---|---|
port | Numerik | Tidak dapat diubah ke null | - |
mengangkut | String | Tidak dapat diubah ke null | TCP , UDP |
klien | String | Tidak dapat diubah ke null | Alamat IP |
perangkatLunakKlien | String | Tidak dapat diubah ke null | Nama protokol jarak jauh, seperti SSH , , VNC Remote desktop , atauTeam viewer |
Buka bidang port
Nama | Jenis | Dapat diubah ke null / Tidak dapat diubah ke null | Daftar nilai |
---|---|---|---|
port | Numerik | Tidak dapat diubah ke null | - |
mengangkut | String | Tidak dapat diubah ke null | TCP atau UDP |
protokol | String | Dapat diubah ke null | - |
adalahKonflikDenganFirewall | Boolean | Tidak dapat diubah ke null | True atau False |
bidang CVE
Nama | Jenis | Dapat diubah ke null / Tidak dapat diubah ke null | Daftar nilai |
---|---|---|---|
id | String | Tidak dapat diubah ke null | - |
skor | Nilai numerik, desimal | Tidak dapat diubah ke null | - |
deskirpsi | String | Tidak dapat diubah ke null | - |
Contoh respons
[
{
"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
}
}
]
Jenis: GET
API:
curl -k -H "Authorization: <AUTH_TOKEN>" https://<IP_ADDRESS>/api/v1/reports/vulnerabilities/devices
Contoh:
curl -k -H "Authorization: 1234b734a9244d54ab8d40aedddcabcd" https://127.0.0.1/api/v1/reports/vulnerabilities/devices
keamanan (Ambil kerentanan keamanan)
Gunakan API ini untuk meminta hasil laporan penilaian kerentanan umum. Penilaian ini memberikan insight tentang tingkat keamanan sistem Anda.
Penilaian ini didasarkan pada jaringan umum dan informasi sistem dan bukan pada evaluasi perangkat tertentu.
URI: /api/v1/reports/vulnerabilities/security
GET
API ini dipanggil tanpa parameter permintaan apa pun.
Jenis: Representasi JSON dari satu atau beberapa tabel data, masing-masing dengan struktur tertentu dan berpotensi berbeda.
Respons ditampilkan dalam tampilan peta, yang memetakan judul tabel ke baris tabel. Baris direpresentasikan sebagai daftar objek dengan struktur yang sama.
bidang unauthorizedDevices
Nama | Jenis | Dapat diubah ke null / Tidak dapat diubah ke null | Daftar nilai |
---|---|---|---|
alamat | String | Dapat diubah ke null | Alamat IP atau MAC perangkat yang tidak sah |
nama | String | Dapat diubah ke null | Nama perangkat yang tidak sah |
waktuDeteksiPertama | Numerik | Dapat diubah ke null | Tanda waktu perangkat pertama kali terdeteksi, dalam milidetik dari waktu Epoch dan dalam zona waktu UTC |
TerakhirDilihat | Numerik | Dapat diubah ke null | Tanda waktu lalu lintas terakhir terdeteksi sebagai dikirim ke atau dari perangkat, dalam milidetik dari waktu Epoch dan dalam zona waktu UTC |
bidang illegalTrafficByFirewallRules
Nama | Jenis | Dapat diubah ke null / Tidak dapat diubah ke null | Daftar nilai |
---|---|---|---|
server | String | Dapat diubah ke null | Alamat IP server |
klien | String | Dapat diubah ke null | Alamat IP Klien |
port | Numerik | Dapat diubah ke null | Port server |
mengangkut | String | Dapat diubah ke null | TCP , UDP , atau ICMP |
Bidang weakFirewallRules
Nama | Jenis | Dapat diubah ke null / Tidak dapat diubah ke null | Daftar nilai |
---|---|---|---|
sumber | Array sumber JSON | Dapat diubah ke null | Array sumber JSON dalam salah satu format berikut: - Any - ip address (host) - from ip-to ip (RANGE) - ip address, subnet mask (NETWORK) |
tujuan | Array tujuan JSON | Dapat diubah ke null | Array JSON objek tujuan, dalam salah satu format berikut: - Any - ip address (host) - from ip-to ip (RANGE) - ip address, subnet mask (NETWORK) |
port | Array port JSON | Dapat diubah ke null | Array JSON objek port, dalam salah satu format berikut: - Any - port (protocol, if detected) - from port-to port (protocol, if detected) |
Bidang accessPoints
Nama | Jenis | Dapat diubah ke null / Tidak dapat diubah ke null | Daftar nilai |
---|---|---|---|
alamatMac | String | Dapat diubah ke null | Alamat MAC titik akses |
penjual | String | Dapat diubah ke null | Nama vendor titik akses |
alamatIp | String | Dapat diubah ke null | Alamat IP titik akses, atau N/A |
nama | String | Dapat diubah ke null | Nama perangkat titik akses, atau N/A |
nirkabel | String | Dapat diubah ke null | Apakah titik akses tersambung ke jaringan nirkabel: No , , Suspected atau Yes |
bidang connectionsBetweenSubnets
Nama | Jenis | Dapat diubah ke null / Tidak dapat diubah ke null | Daftar nilai |
---|---|---|---|
server | String | Dapat diubah ke null | Alamat IP server |
klien | String | Dapat diubah ke null | Alamat IP klien |
bidang industrialMalwareIndicators
Nama | Jenis | Dapat diubah ke null / Tidak dapat diubah ke null | Daftar nilai |
---|---|---|---|
waktuDeteksi | Numerik | Dapat diubah ke null | Tanda waktu malware pertama kali terdeteksi, dalam milidetik dari waktu Epoch dan di zona waktu UTC |
pesanPemberitahuan | String | Dapat diubah ke null | Pesan pemberitahuan terkirim |
deskirpsi | String | Dapat diubah ke null | Deskripsi pesan pemberitahuan |
perangkat | Array JSON | Tidak dapat diubah ke null | Array string JSON yang mewakili nama perangkat |
bidang internetConnections
Nama | Jenis | Dapat diubah ke null / Tidak dapat diubah ke null | Daftar nilai |
---|---|---|---|
alamatInternal | String | Dapat diubah ke null | Alamat IP internal koneksi |
diotorisasi | Boolean | Dapat diubah ke null | Yes atau No |
alamatEksternal | Array JSON | Tidak dapat diubah ke null | Array JSON dari alamat IP eksternal koneksi |
Contoh respons
{
"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"
}
]
}
Jenis: GET
API:
curl -k -H "Authorization: <AUTH_TOKEN>" https://<IP_ADDRESS>/api/v1/reports/vulnerabilities/security
Contoh:
curl -k -H "Authorization: 1234b734a9244d54ab8d40aedddcabcd" https://127.0.0.1/api/v1/reports/vulnerabilities/security
operasional (Ambil kerentanan operasional)
Gunakan API ini untuk meminta hasil penilaian kerentanan umum. Penilaian ini memberikan insight tentang status operasional jaringan Anda. Hal ini didasarkan pada jaringan umum dan informasi sistem dan bukan pada evaluasi perangkat tertentu.
URI: /api/v1/reports/vulnerabilities/operational
GET
API ini dipanggil tanpa parameter permintaan apa pun.
Jenis: Representasi JSON dari satu atau beberapa tabel data, masing-masing dengan struktur tertentu dan berpotensi berbeda.
Respons ditampilkan dalam tampilan peta, yang memetakan judul tabel ke baris tabel. Baris direpresentasikan sebagai daftar objek dengan struktur yang sama.
bidang hasil backupServer
Nama | Jenis | Dapat diubah ke null / Tidak dapat diubah ke null | Daftar nilai |
---|---|---|---|
sumber | String | Dapat diubah ke null | Alamat IP sumber |
tujuan | String | Dapat diubah ke null | Alamat IP tujuan |
port | Numerik | Dapat diubah ke null | Port server cadangan |
mengangkut | String | Dapat diubah ke null | Protokol TCP transportasi server cadangan atau UDP |
cadanganMaximalInterval | String | Dapat diubah ke null | Waktu interval maksimum antara pencadangan |
cadanganTerakhirDilihat | Numerik | Dapat diubah ke null | Tanda waktu bahwa cadangan terakhir terlihat, dalam milidetik dari waktu Epoch dan di zona waktu UTC |
Bidang hasil ipNetworks
Nama | Jenis | Dapat diubah ke null / Tidak dapat diubah ke null | Daftar nilai |
---|---|---|---|
alamat | Numerik | Tidak dapat diubah ke null | Jumlah alamat IP yang ditemukan dalam rentang subnet. |
network | String | Tidak dapat diubah ke null | Alamat IP dasar subnet. |
masker | String | Tidak dapat diubah ke null | Subnet mask. |
bidang hasil protocolProblems
Nama | Jenis | Dapat diubah ke null / Tidak dapat diubah ke null | Daftar nilai |
---|---|---|---|
protokol | String | Tidak dapat diubah ke null | Protokol yang pemberitahuan pelanggaran protokolnya dipicu |
alamat | Array JSON alamat IP | Tidak dapat diubah ke null | Array JSON alamat IP tempat pelanggaran berasal |
pemberitahuan | String | Tidak dapat diubah ke null | Judul pemberitahuan yang dipicu |
waktuLaporan | Numerik | Tidak dapat diubah ke null | Tanda waktu bahwa laporan terakhir dibuat, dalam milidetik dari waktu Epoch dan dalam zona waktu UTC |
bidang hasil protocolDataVolumes
Nama | Jenis | Dapat diubah ke null / Tidak dapat diubah ke null | Daftar nilai |
---|---|---|---|
protokol | String | Dapat diubah ke null | Protokol yang terdeteksi pada jaringan oleh sensor jaringan OT |
volume | String | Dapat diubah ke null | Volume paket protokol yang diambil oleh sensor jaringan OT, dalam MB |
bidang hasil pemutusan
Nama | Jenis | Dapat diubah ke null / Tidak dapat diubah ke null | Daftar nilai |
---|---|---|---|
alamatAset | String | Dapat diubah ke null | Alamat IP aset yang terputus |
namaAset | String | Dapat diubah ke null | Nama aset yang terputus |
waktuDeteksiTerakhir | Numerik | Dapat diubah ke null | Tanda waktu bahwa pemutusan sambungan terakhir terdeteksi, dalam milidetik dari waktu Epoch dan dalam zona waktu UTC |
kembaliKeWaktuNormal | Numerik | Dapat diubah ke null | Tanda waktu yang dikembalikan koneksi, dalam milidetik dari waktu Epoch dan dalam zona waktu UTC |
Contoh respons
{
"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
}
]
}
Jenis: GET
API:
curl -k -H "Authorization: <AUTH_TOKEN>" https://<IP_ADDRESS>/api/v1/reports/vulnerabilities/operational
Contoh:
curl -k -H "Authorization: 1234b734a9244d54ab8d40aedddcabcd" https://127.0.0.1/api/v1/reports/vulnerabilities/operational
mitigasi (Ambil langkah mitigasi)
Gunakan API ini untuk meminta penilaian mitigasi. Penilaian ini memberikan langkah-langkah yang direkomendasikan untuk mengurangi kerentanan yang terdeteksi. Hal ini didasarkan pada jaringan umum dan informasi sistem dan bukan pada evaluasi perangkat tertentu.
URI: /api/v1/reports/vulnerabilities/mitigation
GET
API ini dipanggil tanpa parameter permintaan apa pun.
Jenis: JSON
Objek JSON yang mewakili langkah-langkah mitigasi yang direkomendasikan.
Bidang respons
Nama bidang | Jenis | Dapat diubah ke null | Daftar nilai |
---|---|---|---|
pemberitahuan | String array JSON | Tidak dapat diubah ke null | Langkah-langkah mitigasi yang direkomendasikan untuk kerentanan yang terdeteksi |
Mitigasi | Array JSON | Tidak dapat diubah ke null | objek mitigasi |
bidang mitigasi
Nama bidang | Jenis | Dapat diubah ke null | Daftar nilai |
---|---|---|---|
konten | String | Tidak dapat diubah ke null | Langkah-langkah mitigasi yang direkomendasikan untuk kerentanan yang terdeteksi |
scoreImprovement | Bilangan bulat | Dapat diubah ke null | Persentase peningkatan keamanan yang diharapkan setelah langkah-langkah mitigasi diambil. |
Rincian | Tabel | Dapat diubah ke null | Tabel yang mencantumkan rekomendasi mitigasi, seperti akan dihasilkan dalam laporan Penilaian risiko . Setiap rekomendasi mencakup detail tentang kemungkinan dampak keamanan jika tindakan dilakukan dan banyak lagi. Untuk informasi selengkapnya, lihat Mitigasi risiko. |
Catatan
Anda mungkin memiliki beberapa langkah mitigasi, dengan beberapa dikembalikan di notifications
bidang , dan yang lain dikembalikan di mitigation
bidang . Item dengan scoreImprovement
dan details
data hanya dikembalikan di mitigation
bidang . Item tanpa scoreImprovement
dan details
data hanya dikembalikan di notifications
bidang .
Contoh respons
{
"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"
Langkah berikutnya
Untuk informasi selengkapnya, lihat Ringkasan referensi Defender for IoT API.