Geräteseitige Metriken
Bei der Erstellung eines Sicherheitsprofils können Sie das erwartete Verhalten Ihres IoT-Geräts festlegen, indem Sie Verhalten und Schwellenwerte für von IoT-Geräten generierte Metriken konfigurieren. Bei den folgenden Kennzahlen handelt es sich um geräteseitige Metriken, bei denen es sich um Messwerte von Agenten handelt, die Sie auf Ihren Geräten installieren.
Ausgehende Bytes (aws:all-bytes-out
)
Die Anzahl der ausgehenden Bytes von einem Gerät während eines bestimmten Zeitraums.
Mit dieser Metrik geben Sie die maximale oder minimale Menge des ausgehenden Datenverkehrs an, die ein Gerät in einem bestimmten Zeitraum senden soll, gemessen in Byte.
Kompatibel mit: Rules Detect | ML Detect
Operatoren: less-than | less-than-equals | greater-than | greater-than-equals
Wert: eine nicht negative Ganzzahl
Einheiten: Byte
Dauer: eine nicht negative Ganzzahl. Gültige Werte sind 300, 600, 900, 1800 oder 3600 Sekunden.
Beispiel
{ "name": "TCP outbound traffic", "metric": "aws:all-bytes-out", "criteria": { "comparisonOperator": "less-than-equals", "value": { "count": 4096 }, "durationSeconds": 300, "consecutiveDatapointsToAlarm": 1, "consecutiveDatapointsToClear": 1 }, "suppressAlerts": true }
Beispiel für die Nutzung von statisticalThreshold
{ "name": "TCP outbound traffic", "metric": "aws:all-bytes-out", "criteria": { "comparisonOperator": "less-than-equals", "statisticalThreshold": { "statistic": "p50" }, "durationSeconds": 900, "consecutiveDatapointsToAlarm": 1, "consecutiveDatapointsToClear": 1 }, "suppressAlerts": true }
Beispiel mit ML Detect
{ "name": "Outbound traffic ML behavior", "metric": "aws:all-bytes-out", "criteria": { "consecutiveDatapointsToAlarm": 1, "consecutiveDatapointsToClear": 1, "mlDetectionConfig": { "confidenceLevel": "HIGH" } }, "suppressAlerts": true }
Bytes in (aws:all-bytes-in
)
Die Anzahl der eingehenden Bytes zu einem Gerät während eines bestimmten Zeitraums.
Mit dieser Metrik geben Sie die maximale oder minimale Menge an eingehendem Datenverkehr an, die ein Gerät in einem bestimmten Zeitraum empfangen soll, gemessen in Byte.
Kompatibel mit: Rules Detect | ML Detect
Operatoren: less-than | less-than-equals | greater-than | greater-than-equals
Wert: eine nicht negative Ganzzahl
Einheiten: Byte
Dauer: eine nicht negative Ganzzahl. Gültige Werte sind 300, 600, 900, 1800 oder 3600 Sekunden.
Beispiel
{ "name": "TCP inbound traffic", "metric": "aws:all-bytes-in", "criteria": { "comparisonOperator": "less-than-equals", "value": { "count": 4096 }, "durationSeconds": 300, "consecutiveDatapointsToAlarm": 1, "consecutiveDatapointsToClear": 1 }, "suppressAlerts": true }
Beispiel für die Nutzung von statisticalThreshold
{ "name": "TCP inbound traffic", "metric": "aws:all-bytes-in", "criteria": { "comparisonOperator": "less-than-equals", "statisticalThreshold": { "statistic": "p90" }, "durationSeconds": 300, "consecutiveDatapointsToAlarm": 1, "consecutiveDatapointsToClear": 1 }, "suppressAlerts": true }
Beispiel mit ML Detect
{ "name": "Inbound traffic ML behavior", "metric": "aws:all-bytes-in", "criteria": { "consecutiveDatapointsToAlarm": 1, "consecutiveDatapointsToClear": 1, "mlDetectionConfig": { "confidenceLevel": "HIGH" } }, "suppressAlerts": true }
Überwachen der Anzahl an TCP-Ports (aws:num-listening-tcp-ports
)
Die Anzahl der TCP-Ports, die das Gerät überwacht.
Mit diesem Parameter geben Sie die maximale oder minimale Anzahl von TCP-Ports an, die jedes Gerät überwachen soll.
Kompatibel mit: Rules Detect | ML Detect
Einheit: Fehler
Operatoren: less-than | less-than-equals | greater-than | greater-than-equals
Wert: eine nicht negative Ganzzahl
Einheit: Fehler
Dauer: eine nicht negative Ganzzahl. Gültige Werte sind 300, 600, 900, 1800 oder 3600 Sekunden.
Beispiel
{ "name": "Max TCP Ports", "metric": "aws:num-listening-tcp-ports", "criteria": { "comparisonOperator": "less-than-equals", "value": { "count": 5 }, "durationSeconds": 300, "consecutiveDatapointsToAlarm": 1, "consecutiveDatapointsToClear": 1 }, "suppressAlerts": true }
Beispiel für die Nutzung von statisticalThreshold
{ "name": "Max TCP Ports", "metric": "aws:num-listening-tcp-ports", "criteria": { "comparisonOperator": "less-than-equals", "statisticalThreshold": { "statistic": "p50" }, "durationSeconds": 300, "consecutiveDatapointsToAlarm": 1, "consecutiveDatapointsToClear": 1 }, "suppressAlerts": true }
Beispiel mit ML Detect
{ "name": "Max TCP Port ML behavior", "metric": "aws:num-listening-tcp-ports", "criteria": { "consecutiveDatapointsToAlarm": 1, "consecutiveDatapointsToClear": 1, "mlDetectionConfig": { "confidenceLevel": "HIGH" } }, "suppressAlerts": true }
Überwachen der Anzahl an UDP-Ports (aws:num-listening-udp-ports
)
Die Anzahl der UDP-Ports, die das Gerät überwacht.
Mit diesem Parameter geben Sie die maximale Anzahl an UDP-Ports an, die jedes Gerät überwachen soll.
Kompatibel mit: Rules Detect | ML Detect
Einheit: Fehler
Operatoren: less-than | less-than-equals | greater-than | greater-than-equals
Wert: eine nicht negative Ganzzahl
Einheit: Fehler
Dauer: eine nicht negative Ganzzahl. Gültige Werte sind 300, 600, 900, 1800 oder 3600 Sekunden.
Beispiel
{ "name": "Max UDP Ports", "metric": "aws:num-listening-udp-ports", "criteria": { "comparisonOperator": "less-than-equals", "value": { "count": 5 }, "durationSeconds": 300, "consecutiveDatapointsToAlarm": 1, "consecutiveDatapointsToClear": 1 }, "suppressAlerts": true }
Beispiel für die Nutzung von statisticalThreshold
{ "name": "Max UDP Ports", "metric": "aws:num-listening-udp-ports", "criteria": { "comparisonOperator": "less-than-equals", "statisticalThreshold": { "statistic": "p50" }, "durationSeconds": 300, "consecutiveDatapointsToAlarm": 1, "consecutiveDatapointsToClear": 1 }, "suppressAlerts": true }
Beispiel mit ML Detect
{ "name": "Max UPD Port ML behavior", "metric": "aws:num-listening-tcp-ports", "criteria": { "consecutiveDatapointsToAlarm": 1, "consecutiveDatapointsToClear": 1, "mlDetectionConfig": { "confidenceLevel": "HIGH" } }, "suppressAlerts": true }
Ausgehende Pakete (aws:all-packets-out
)
Die Anzahl der ausgehenden Pakete von einem Gerät während eines bestimmten Zeitraums.
Mit dieser Metrik geben Sie die maximale oder minimale Menge an gesamtem ausgehendem Datenverkehr an, die ein Gerät in einem bestimmten Zeitraum senden soll.
Kompatibel mit: Rules Detect | ML Detect
Operatoren: less-than | less-than-equals | greater-than | greater-than-equals
Wert: eine nicht negative Ganzzahl
Einheiten: Pakete
Dauer: eine nicht negative Ganzzahl. Gültige Werte sind 300, 600, 900, 1800 oder 3600 Sekunden.
Beispiel
{ "name": "TCP outbound traffic", "metric": "aws:all-packets-out", "criteria": { "comparisonOperator": "less-than-equals", "value": { "count": 100 }, "durationSeconds": 300, "consecutiveDatapointsToAlarm": 1, "consecutiveDatapointsToClear": 1 }, "suppressAlerts": true }
Beispiel für die Nutzung von statisticalThreshold
{ "name": "TCP outbound traffic", "metric": "aws:all-packets-out", "criteria": { "comparisonOperator": "less-than-equals", "statisticalThreshold": { "statistic": "p90" }, "durationSeconds": 300, "consecutiveDatapointsToAlarm": 1, "consecutiveDatapointsToClear": 1 }, "suppressAlerts": true }
Beispiel mit ML Detect
{ "name": "Outbound sent ML behavior", "metric": "aws:all-packets-out", "criteria": { "consecutiveDatapointsToAlarm": 1, "consecutiveDatapointsToClear": 1, "mlDetectionConfig": { "confidenceLevel": "HIGH" } }, "suppressAlerts": true }
Pakete in (aws:all-packets-in
)
Die Anzahl der eingehenden Pakete zu einem Gerät während eines bestimmten Zeitraums.
Mit dieser Metrik geben Sie die maximale oder minimale Menge an insgesamt eingehendem Datenverkehr an, die ein Gerät in einem bestimmten Zeitraum empfangen soll.
Kompatibel mit: Rule Detect | ML Detect
Operatoren: less-than | less-than-equals | greater-than | greater-than-equals
Wert: eine nicht negative Ganzzahl
Einheiten: Pakete
Dauer: eine nicht negative Ganzzahl. Gültige Werte sind 300, 600, 900, 1800 oder 3600 Sekunden.
Beispiel
{ "name": "TCP inbound traffic", "metric": "aws:all-packets-in", "criteria": { "comparisonOperator": "less-than-equals", "value": { "count": 100 }, "durationSeconds": 300, "consecutiveDatapointsToAlarm": 1, "consecutiveDatapointsToClear": 1 }, "suppressAlerts": true }
Beispiel für die Nutzung von statisticalThreshold
{ "name": "TCP inbound traffic", "metric": "aws:all-packets-in", "criteria": { "comparisonOperator": "less-than-equals", "statisticalThreshold": { "statistic": "p90" }, "durationSeconds": 300, "consecutiveDatapointsToAlarm": 1, "consecutiveDatapointsToClear": 1 }, "suppressAlerts": true }
Beispiel mit ML Detect
{ "name": "Inbound sent ML behavior", "metric": "aws:all-packets-in", "criteria": { "consecutiveDatapointsToAlarm": 1, "consecutiveDatapointsToClear": 1, "mlDetectionConfig": { "confidenceLevel": "HIGH" } }, "suppressAlerts": true }
Ziel-IPs (aws:destination-ip-addresses
)
Ein Satz von IP-Zieladressen.
Mit dieser Metrik geben Sie einen Satz von zugelassenen (vormals als auf einer Whitelist stehend bezeichnet) bzw. verbotenen (vormals als auf einer Blacklist stehend bezeichnet) Classless Inter-Domain Routings (CIDR) an, von denen jedes Gerät eine Verbindung mit AWS IoT herstellen darf bzw. keine Verbindung herstellen darf.
Kompatibel mit: Rules Detect
Operatoren: in-cidr-set | not-in-cidr-set
Werte: eine Liste von CIDRs
Einheiten: –
Beispiel
{ "name": "Denied source IPs", "metric": "aws:destination-ip-address", "criteria": { "comparisonOperator": "not-in-cidr-set", "value": { "cidrs": [ "12.8.0.0/16", "15.102.16.0/24" ] } }, "suppressAlerts": true }
Überwachen von TCP-Ports (aws:listening-tcp-ports
)
Die TCP-Ports, die das Gerät überwacht.
Mit dieser Metrik geben Sie einen Satz von zugelassenen (vormals als auf einer Whitelist stehend bezeichnet) bzw. verbotenen (vormals als auf einer Blacklist stehend bezeichnet) TCP-Ports an, auf denen jedes Gerät horchen darf bzw. nicht horchen darf.
Kompatibel mit: Rules Detect
Operatoren: in-port-set | not-in-port-set
Werte: eine Liste von Ports
Einheiten: –
{ "name": "Listening TCP Ports", "metric": "aws:listening-tcp-ports", "criteria": { "comparisonOperator": "in-port-set", "value": { "ports": [ 443, 80 ] } }, "suppressAlerts": true }
Überwachen von UDP-Ports (aws:listening-udp-ports
)
Die UDP-Ports, die das Gerät überwacht.
Mit dieser Metrik geben Sie einen Satz von zugelassenen (vormals als auf einer Whitelist stehend bezeichnet) bzw. verbotenen (vormals als auf einer Blacklist stehend bezeichnet) UDP-Ports an, auf denen jedes Gerät horchen darf bzw. nicht horchen darf.
Kompatibel mit: Rules Detect
Operatoren: in-port-set | not-in-port-set
Werte: eine Liste von Ports
Einheiten: –
{ "name": "Listening UDP Ports", "metric": "aws:listening-udp-ports", "criteria": { "comparisonOperator": "in-port-set", "value": { "ports": [ 1025, 2000 ] } } }
Anzahl etablierter TCP-Verbindungen (aws:num-established-tcp-connections
)
Die Anzahl der TCP-Verbindungen für ein Gerät.
Mit diesem Parameter geben Sie die maximale oder minimale Anzahl aktiver TCP-Verbindungen an, die jedes Gerät haben sollte (alle TCP-Status).
Kompatibel mit: Rules Detect | ML Detect
Operatoren: less-than | less-than-equals | greater-than | greater-than-equals
Wert: eine nicht negative Ganzzahl
Einheiten: Verbindungen
Beispiel
{ "name": "TCP Connection Count", "metric": "aws:num-established-tcp-connections", "criteria": { "comparisonOperator": "less-than-equals", "value": { "count": 3 }, "consecutiveDatapointsToAlarm": 1, "consecutiveDatapointsToClear": 1 }, "suppressAlerts": true }
Beispiel für die Nutzung von statisticalThreshold
{ "name": "TCP Connection Count", "metric": "aws:num-established-tcp-connections", "criteria": { "comparisonOperator": "less-than-equals", "statisticalThreshold": { "statistic": "p90" }, "durationSeconds": 900, "consecutiveDatapointsToAlarm": 1, "consecutiveDatapointsToClear": 1 }, "suppressAlerts": true }
Beispiel mit ML Detect
{ "name": "Connection count ML behavior", "metric": "aws:num-established-tcp-connections", "criteria": { "consecutiveDatapointsToAlarm": 1, "consecutiveDatapointsToClear": 1, "mlDetectionConfig": { "confidenceLevel": "HIGH" } }, "suppressAlerts": true }
Spezifikationen für Gerätemetriken
Langer Name |
Kurzname |
Erforderlich |
Typ |
Beschränkungen |
Hinweise |
---|---|---|---|---|---|
header |
hed |
Y |
Object |
Vollständiger Block für gültiges Berichtsformat erforderlich. |
|
Kennzahlen |
met |
Y |
Object |
Ein Bericht kann mindestens einen – |
|
custom_metrics |
comet |
Y |
Object |
Ein Bericht kann mindestens einen – |
Langer Name |
Kurzname |
Erforderlich |
Typ |
Beschränkungen |
Hinweise |
---|---|---|---|---|---|
report_id |
rid |
Y |
Ganzzahl |
Der Wert wird monotonisch erhöht. Ein Epoche-Zeitstempel wird empfohlen. |
|
version |
V |
Y |
String |
Major.Minor |
Kleine Schritte mit dem Hinzufügen eines Feldes. Große Schritte, wenn Metriken entfernt werden. |
Metriken-Block:
Langer Name |
Kurzname |
Übergeordnetes Element |
Erforderlich |
Typ |
Beschränkungen |
Hinweise |
---|---|---|---|---|---|---|
tcp_connections |
tc |
Kennzahlen |
N |
Object |
||
established_connections |
ec |
tcp_connections |
N |
Object |
Eingerichtete TCP-Status- |
|
Verbindungen |
cs |
established_connections |
N |
List<Object> |
||
remote_addr |
rad |
Verbindungen |
Y |
Zahl |
ip:port |
IP kann IPv6 oder IPv4 sein |
local_port |
lp |
Verbindungen |
N |
Zahl |
>= 0 |
|
local_interface |
li |
Verbindungen |
N |
String |
Schnittstellenname |
|
total |
t |
established_connections |
N |
Zahl |
>= 0 |
Anzahl der eingerichteten Verbindungen |
Langer Name |
Kurzname |
Übergeordnetes Element |
Erforderlich |
Typ |
Beschränkungen |
Hinweise |
---|---|---|---|---|---|---|
listening_tcp_ports |
tp |
Kennzahlen |
N |
Object |
||
ports |
pts |
listening_tcp_ports |
N |
List<Object> |
> 0 |
|
port |
pt |
ports |
N |
Zahl |
> 0 |
Ports sollten Zahlen größer 0 sein |
interface |
if |
ports |
N |
String |
Schnittstellenname |
|
total |
t |
listening_tcp_ports |
N |
Zahl |
>= 0 |
Langer Name |
Kurzname |
Übergeordnetes Element |
Erforderlich |
Typ |
Beschränkungen |
Hinweise |
---|---|---|---|---|---|---|
listening_udp_ports |
up |
Kennzahlen |
N |
Object |
||
ports |
pts |
listening_udp_ports |
N |
Liste<Port> |
> 0 |
|
port |
pt |
ports |
N |
Zahl |
> 0 |
Ports sollten Zahlen größer 0 sein |
interface |
if |
ports |
N |
String |
Schnittstellenname |
|
total |
t |
listening_udp_ports |
N |
Zahl |
>= 0 |
Langer Name |
Kurzname |
Übergeordnetes Element |
Erforderlich |
Typ |
Beschränkungen |
Hinweise |
---|---|---|---|---|---|---|
network_stats |
ns |
Kennzahlen |
N |
Object |
||
bytes_in |
bi |
network_stats |
N |
Zahl |
Delta Metric, >= 0 |
|
bytes_out |
bo |
network_stats |
N |
Zahl |
Delta Metric, >= 0 |
|
packets_in |
pi |
network_stats |
N |
Zahl |
Delta Metric, >= 0 |
|
packets_out |
po |
network_stats |
N |
Zahl |
Delta Metric, >= 0 |
Beispiel
Die folgende JSON-Struktur verwendet lange Namen.
{ "header": { "report_id": 1530304554, "version": "1.0" }, "metrics": { "listening_tcp_ports": { "ports": [ { "interface": "eth0", "port": 24800 }, { "interface": "eth0", "port": 22 }, { "interface": "eth0", "port": 53 } ], "total": 3 }, "listening_udp_ports": { "ports": [ { "interface": "eth0", "port": 5353 }, { "interface": "eth0", "port": 67 } ], "total": 2 }, "network_stats": { "bytes_in": 29358693495, "bytes_out": 26485035, "packets_in": 10013573555, "packets_out": 11382615 }, "tcp_connections": { "established_connections": { "connections": [ { "local_interface": "eth0", "local_port": 80, "remote_addr": "192.168.0.1:8000" }, { "local_interface": "eth0", "local_port": 80, "remote_addr": "192.168.0.1:8000" } ], "total": 2 } } }, "custom_metrics": { "MyMetricOfType_Number": [ { "number": 1 } ], "MyMetricOfType_NumberList": [ { "number_list": [ 1, 2, 3 ] } ], "MyMetricOfType_StringList": [ { "string_list": [ "value_1", "value_2" ] } ], "MyMetricOfType_IpList": [ { "ip_list": [ "172.0.0.0", "172.0.0.10" ] } ] } }
Beispiel für eine JSON-Struktur mit kurzen Namen
{ "hed": { "rid": 1530305228, "v": "1.0" }, "met": { "tp": { "pts": [ { "if": "eth0", "pt": 24800 }, { "if": "eth0", "pt": 22 }, { "if": "eth0", "pt": 53 } ], "t": 3 }, "up": { "pts": [ { "if": "eth0", "pt": 5353 }, { "if": "eth0", "pt": 67 } ], "t": 2 }, "ns": { "bi": 29359307173, "bo": 26490711, "pi": 10014614051, "po": 11387620 }, "tc": { "ec": { "cs": [ { "li": "eth0", "lp": 80, "rad": "192.168.0.1:8000" }, { "li": "eth0", "lp": 80, "rad": "192.168.0.1:8000" } ], "t": 2 } } }, "cmet": { "MyMetricOfType_Number": [ { "number": 1 } ], "MyMetricOfType_NumberList": [ { "number_list": [ 1, 2, 3 ] } ], "MyMetricOfType_StringList": [ { "string_list": [ "value_1", "value_2" ] } ], "MyMetricOfType_IpList": [ { "ip_list": [ "172.0.0.0", "172.0.0.10" ] } ] } }
Senden von Metriken von Geräten
AWS IoT Device Defender Detect kann von AWS IoT-Geräten generierte Metrikdaten sammeln, aggregieren und überwachen, um Geräte zu identifizieren, die ein ungewöhnliches Verhalten zeigen. In diesem Abschnitt erfahren Sie, wie Sie Metriken von einem Gerät an AWS IoT Device Defender senden.
Sie müssen auf Ihren über AWS IoT verbundenen Geräten oder Geräte-Gateways auf sichere Weise die AWS IoT SDK Version 2 zum Erfassen von geräteseitigen Metriken bereitstellen. Die vollständige Liste der SDKs finden Sie hier.
Sie können den AWS IoT Geräteclient zum Veröffentlichen von Metriken verwenden, da er einen einzigen Agent bietet, der alle Funktionen des Gerätemanagements von AWS IoT Device Defender und AWS IoT abdeckt. Zu diesen Funktionen gehören Jobs, sicheres Tunneling, die Veröffentlichung von AWS IoT Device Defender Metriken uvm.
Sie veröffentlichen geräteseitige Metriken zum Erfassen und Evaluieren unter dem reservierten Thema in AWS IoT für AWS IoT Device Defender.
Verwenden des AWS IoT Geräteclients zum Veröffentlichen von Metriken
Um den AWS IoT Geräteclient zu installieren, können Sie ihn von Githubdevice-defender
festgelegt sind:
"device-defender": { "enabled": true, "interval-in-seconds": 300 }
Warnung
Sie sollten das Zeitintervall auf mindestens 300 Sekunden festlegen. Wenn Sie das Zeitintervall auf weniger als 300 Sekunden festlegen, werden Ihre Metrikdaten möglicherweise gedrosselt.
Nachdem Sie Ihre Konfiguration aktualisiert haben, können Sie auf der AWS IoT Device Defender Konsole Sicherheitsprofile und Sicherheitsverhalten erstellen, um die Messwerte zu überwachen, die Ihre Geräte in der Cloud veröffentlichen. Sie finden veröffentlichte Metriken auf der AWS IoT Core-Konsole, indem Sie Defend, Detect und dann Metrics auswählen.