IoT Spy: Telemetry for Security Metrics
Xenia Mountrouidou
Network Automation Engineer
Network to Code
Challenges in IoT Security
Solution: IoT Spy
Security Metrics for IoT
Implementation
Visualizations
Demo
Recap
Agenda
Challenges in IoT Security
(Image Credit: The Connectivist)
Challenges in IoT Security
(Image Credit: The Connectivist)
Challenge: Security metrics
Prior work:
Solution: IoT Spy
Open Source tcpdump streaming solution: https://github.com/mundruid/iot_spy
Solution: IoT Spy
https://github.com/mundruid/iot_spy
Solution: IoT Spy
Solution: IoT Spy
Extensible & Configurable
Security Metrics for IoT
Security metrics vs telemetry metrics
Security metrics | Telemetry metrics |
Reduce uncertainty | Specific Values |
Probabilistic | Deterministic |
Set of measurements lead to a score | Single measurement |
IoT Spy Metrics
Security Metric | IoT Feature | CIANA Principle |
# of inbound connections | Communication | Confidentiality, Availability |
# of outbound connections | Communication | Confidentiality |
# of active services | Communication, purpose, mobility | CIA & Safety |
packet statistics: length & interarrival | Communication, purpose, mobility | Availability |
Not just another Internet of Things taxonomy: A method for validation of taxonomies
X Mountrouidou, B Billings, L Mejia-Ricart - Internet of Things, 2019
How do our metrics apply to security?
Security pillars
# of inbound/outbound connections
Unscheduled inbound request
�
Unsolicited
Confidentiality
Brute force
�
Scanning
Availability
# of services connections
Open ports
�
Weak passwords
Confidentiality
Integrity
Availability
Safety
IoT Metrics and Automation for Security Evaluation
T Setzler, X Mountrouidou - 2021 IEEE 18th Annual Consumer Communications & Networking, 2021
Packet statistics
Intrusion Detection monitoring metric
Architecture - Testbed
Tcpdump to JSON
Architecture: TIG Stack Overview
Implementation
Collector
Architecture - Data Model
tcpdump,dev_src=Alexa,dev_dst=unknown,protocol=UDP port_src=”12345”,port_dst=”53”,ip_src=”10.0.0.30”,ip_dst=”8.8.8.8” 1631669265000000
Data Model
tcpdump,dev_src=Alexa,dev_dst=unknown,protocol=UDP, port_src=12345,port_dst=53,ip_src=”10.0.0.30”,ip_dst=”8.8.8.8” length=80,interarrival=0.023 1631669265000000
measurement
tags
timestamp
fields
Graphs & Alerting
Visualizations
Dashboards
Time Series
Probabilities
CDFs
Tables
Histograms
Exploratory Data Analysis (EDA)
What is EDA?
Time series ~= Mean plot
Probabilities, CDFs
==
Probability plots
Histograms
Tables ~= Block plots
Probabilistic visualizations
A = SELECT count("ip_dst") FROM "tcpdump" WHERE ("port_dst" =~ /^$port_dst$/ AND "device_dst" =~ /^$device_dst$/) AND $timeFilter GROUP BY time(1d) fill(null)
B = SELECT count("ip_dst") FROM "tcpdump" WHERE ("device_dst" =~ /^$device_dst$/) AND $timeFilter GROUP BY time(1d) fill(null)
C = $A / $B
Probabilistic visualizations - Cumulative Distribution
Histograms
Tables
Testbed
Phones
Printers
Demo
Good, bad, ugly
Good, bad, ugly
Good, bad, ugly
Good, bad, ugly
Recap
Thank you
Questions?
Logos & Icons
Grab our logos here:
Grab our logos here:
Grafana Enterprise Data Source Plugins
Diagramming Kit
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
component
Small icon/logo
Medium icon/logo
Large icon/logo
Write Path
Query Path
Control Requests
Distributor
Query/Frontend
Configs API �(optional)
Alertmanager �(optional)
Ingester
Querier
Table Manager
Ruler �(optional)
What you handle
We take it from here
Gateway/Query
Frontend / NGINX
Grafana
Remote Write API
Prometheus
Example Diagram:
Please use 'blank_light' or 'blank_dark' background layout when creating diagrams.
Nodes
Pods
Ingresses
Consul
Results Memcache
Index Memcache
Chunks Memcache
Postgres
BigTable/
Cassandra/
DynamoDB
S3/GCS
(optional)
scrape
jobs