After completing this chapter, you will be able to:
Identify and explain the OWASP IoT Top 10 vulnerabilities and their real-world impact
Analyze how default credentials, insecure network services, and unpatched firmware create attack surfaces
Apply lessons from major IoT security incidents (Mirai botnet, Jeep Cherokee hack) to system design
Design mitigation strategies for each OWASP IoT Top 10 vulnerability category
Key Concepts
OWASP IoT Top 10: A community-maintained list of the ten most critical IoT security risks: Weak Passwords, Insecure Network Services, Insecure Ecosystem Interfaces, Lack of Secure Update Mechanism, Use of Insecure or Outdated Components, Insufficient Privacy Protection, Insecure Data Transfer and Storage, Lack of Device Management, Insecure Default Settings, and Lack of Physical Hardening.
Insecure network services: Unnecessary network-accessible services (Telnet, HTTP without TLS, SNMP) running on IoT devices that expand the attack surface and provide attackers with additional exploitation vectors.
Insecure ecosystem interfaces: Vulnerabilities in web dashboards, mobile applications, cloud APIs, and backend services that interact with IoT devices, providing indirect paths to device compromise.
Insufficient privacy protection: Collection, transmission, or storage of personal IoT data without appropriate consent, encryption, data minimisation, or retention controls — violating user privacy and regulatory requirements.
Lack of device management: The absence of centralised visibility into device inventory, health, firmware versions, and security posture, making it impossible to respond effectively to security incidents or deploy patches.
Lack of physical hardening: Insufficient physical security controls (accessible debug ports, easily removed storage, no tamper detection) that allow attackers with physical access to compromise device security.
In 60 Seconds
The OWASP IoT Top 10 identifies the ten most critical and prevalent security risks in IoT systems — from weak passwords and insecure network services to lack of secure update mechanisms — providing a prioritised, evidence-based starting point for IoT security assessment and hardening that is more practical than attempting to address every possible threat simultaneously.
For Beginners: OWASP IoT Top 10 Vulnerabilities
IoT security threats are the various ways that connected devices and their data can be compromised. Think of your IoT system as a house – you need to understand how burglars might try to get in before you can choose the right locks, alarms, and security cameras. This chapter helps you understand the threats so you can build effective defenses.
Sensor Squad: The Top 10 Mistakes to Avoid!
“OWASP made a list of the ten worst security mistakes in IoT, and guess what number one is?” Sammy the Sensor asked the group. “Weak and default passwords! The Mirai botnet tried just 62 common passwords and took over 600,000 devices. That is like leaving your front door unlocked with a sign that says ‘Come on in!’”
Max the Microcontroller went through the list. “Number two is insecure network services – things like Telnet and open ports. Number three is insecure interfaces like web panels with no protection. Number four is no update mechanism, which means bugs can never be fixed. Each one is a real door that attackers walk through every day!”
“My least favorite on the list is ‘Insufficient Privacy Protection,’” Lila the LED said. “Some devices collect way more data than they need and store it without encryption. Smart TVs recording conversations, fitness trackers sharing your location with advertisers – that is not just a security risk, it is a privacy invasion!”
“The good news is that most of these are easy to fix IF you know about them,” Bella the Battery said cheerfully. “Change default passwords: done. Encrypt your data: done. Disable unused services: done. Add a firmware update mechanism: done. The OWASP Top 10 is like a checklist – go through it item by item, and your device will be safer than 90 percent of IoT products out there!”
15.1 OWASP IoT Top 10 Vulnerabilities
How It Works: Mirai Botnet Attack Propagation
The 2016 Mirai botnet demonstrated how IoT vulnerabilities cascade into massive attacks:
Phase 1: Scanning (Reconnaissance)
Botnet scans internet IP ranges for open Telnet (port 23) and SSH (port 22)
Uses SYN scan to minimize detection (half-open connections)
Identifies ~600,000 vulnerable devices in first 72 hours
Phase 2: Credential Attack
Automated login attempts using 62 hardcoded default credentials
Common pairs: admin/admin, root/root, admin/12345
Success rate: ~40% of discovered devices (240,000+ compromised)
Phase 3: Malware Installation
Downloads lightweight malware loader (6-8 KB)
Malware runs in memory only (no disk writes avoid detection)
Closes original exploit port after infection (prevents re-infection by competitors)
Phase 4: Command & Control Enrollment
Infected device connects to C2 server via IRC or custom protocol
Awaits commands for DDoS attacks
Reports device type, bandwidth, geolocation
Phase 5: DDoS Execution
C2 server commands all bots to flood target simultaneously
Peak attack: 620 Gbps against Dyn DNS (October 2016)
Attack types: UDP flood, TCP SYN flood, HTTP flood
Phase 6: Persistence and Spread
Infected devices scan for new victims (exponential growth)
Reinfection after reboot (malware memory-only, reboots clean device but rescanning continues)
Why It Worked: Combination of OWASP IoT vulnerabilities: - I1: Default credentials never changed - I4: Telnet enabled and exposed to internet - I5: No firmware update mechanism to patch - I10: Insecure default settings (Telnet enabled, UPnP active)
Defense: Any single fix would have broken the attack chain - changing default passwords, disabling Telnet, or enabling automatic updates would have prevented 600,000+ compromises.
The Most Critical IoT Security Risks
The Open Web Application Security Project (OWASP) identifies the top 10 IoT vulnerabilities based on industry-wide research and real-world incident analysis:
Rank
Vulnerability
Description
Real-World Impact
Example
I1
Insufficient Security Configurability
Weak/default passwords, no password requirements
80% of IoT devices fail basic password requirements
Mirai botnet: 600,000+ devices compromised via “admin/admin”
Root cause: I5 (insecure firmware update mechanism) - No rollback capability - No staged rollout - No update verification before deployment
Lesson: IoT updates must be tested, staged, and reversible
15.3 Deep Dive: IoT Botnet Attack Patterns and Defense
IoT botnets represent one of the most significant threats to internet infrastructure. Understanding their architecture, propagation methods, and defense strategies is critical for securing IoT deployments at scale.
15.3.1 Botnet Architecture Evolution
First Generation (Mirai-style, 2016):
Centralized Command & Control server
Single point of failure for takedown
Hardcoded C2 domains
Second Generation (Peer-to-Peer, 2018+):
Decentralized P2P architecture
Commands propagate peer-to-peer
No single point of failure
15.3.2 Attack Lifecycle Phases
Phase
Mirai Method
Modern Variants
Detection Opportunity
1. Reconnaissance
Scan port 23 (Telnet), 22 (SSH)
Port 80/443/8080, UPnP discovery
Unusual port scan patterns
2. Weaponization
Hardcoded 62 default credentials
Dictionary attacks, CVE exploits
Failed login rate spike
3. Delivery
Telnet brute force
Zero-day exploits, supply chain
Exploit signature matching
4. Installation
Memory-resident (doesn’t survive reboot)
Persistent (firmware modification)
File integrity monitoring
5. C2 Communication
Hardcoded C2 domains
DGA (Domain Generation Algorithm)
DNS anomaly detection
6. Actions
DDoS (TCP/UDP floods)
Cryptomining, data exfiltration, ransomware
Traffic volume/pattern analysis
15.3.3 Propagation Techniques
Credential-Based (Most Common):
# Mirai-style credential stuffing (simplified)DEFAULT_CREDS = [ ("admin", "admin"), ("root", "root"), ("admin", "1234"), ("root", "12345"), ("admin", ""), ("support", "support"),# ... 62 credential pairs in original Mirai]def scan_and_infect(target_ip):for username, password in DEFAULT_CREDS:if try_telnet_login(target_ip, username, password): download_and_execute_payload(target_ip) report_to_c2(target_ip) # New bot enrolledbreak
Network Traffic Anomalies: | Indicator | Normal Baseline | Botnet Behavior | Alert Threshold | |———–|—————-|—————–|—————–| | Outbound connections | <10/hour to known services | 1000s to random IPs | >50/hour to new IPs | | DNS queries | <100/hour, cached | DGA: thousands unique | >500 unique domains/hour | | Upload/Download ratio | Download > Upload | Upload spikes (DDoS) | Upload > 10x normal | | Port diversity | 80, 443, 8883 (MQTT) | 23, 22, 37215 | Any non-standard port |
Host-Based Indicators:
Unexpected processes: /tmp/.x, /var/run/.t
Modified binaries: /bin/busybox checksum mismatch
New cron jobs or startup scripts
Memory-resident processes (no disk footprint)
15.3.7 Implementation Checklist for IoT Manufacturers
15.3.8 Regulatory Responses
Regulation
Region
Key Requirements
Effective
ETSI EN 303 645
EU
No default passwords, vulnerability disclosure
2024
California SB-327
US (CA)
Unique passwords, reasonable security
2020
PSTI Act
UK
Password requirements, update period disclosure
2024
NIST IR 8259
US
Baseline capabilities for IoT devices
Voluntary
15.4 Security Tradeoffs
Tradeoff: Continuous Vulnerability Scanning vs Periodic Penetration Testing
Option A: Continuous automated vulnerability scanning - cost ~$5-15K/year for enterprise scanner (Qualys, Tenable), detects known CVEs within 24 hours of disclosure, 15-30% false positive rate, covers 100% of network-accessible assets weekly, minimal human expertise required
Option B: Periodic third-party penetration testing - cost ~$15-50K per engagement, discovers unknown/complex vulnerabilities through manual exploitation, 2-5% false positive rate, quarterly or annual coverage, requires 2-4 week engagement windows
Decision Factors:
Choose continuous scanning for large IoT fleets (1,000+ devices), compliance requirements (PCI-DSS, HIPAA), budget constraints, or rapid CVE patching needs
Choose penetration testing for validating security architecture, assessing complex attack chains, compliance mandates (SOC 2 Type II), or testing physical security
Best practice: Combine both - continuous scanning for breadth (known vulnerabilities), annual penetration testing for depth (unknown vulnerabilities). Budget allocation: 70% scanning infrastructure, 30% expert testing.
Tradeoff: Zero Trust Architecture vs Perimeter-Based Security
Option A: Zero Trust (“never trust, always verify”) - every device request authenticated/authorized regardless of network location, micro-segmentation isolates each device, implementation cost ~$200-500K, operational overhead increases 40-60%, eliminates lateral movement
Option B: Perimeter-based security with trusted internal network - firewall at boundary, devices trust each other within VLAN, implementation cost ~$50-100K, lower operational overhead, vulnerable to insider threats
Decision Factors:
Choose Zero Trust for high-value targets (medical, industrial control), regulatory requirements (IEC 62443), untrusted physical environments, or safety-critical systems
Choose perimeter security for physically secured facilities, low-value sensors, budget constraints, or legacy device compatibility
Key metric: Average breach dwell time drops from 280 days (perimeter) to 30 days (Zero Trust) due to continuous verification detecting anomalies faster.
Worked Example: Securing a Smart Camera Against OWASP Top 10
Device: Wyze Cam v3 (hypothetical security audit before product launch)
OWASP I1 - Weak Passwords: Factory default is unique per-device QR code (strength: 12 alphanumeric characters printed on base). On first setup, app forces user to create account password with minimum requirements (8+ chars, 1 number, 1 special). Pass - no shared default, mandatory change.
OWASP I2 - Insecure Web Interface: Camera exposes web UI on port 80 for local configuration. Audit reveals: - Session cookies lack HttpOnly flag (XSS can steal session) - No CSRF tokens (attacker can forge requests) - Fix: Add HttpOnly; Secure; SameSite=Strict to cookies, implement CSRF tokens, redirect HTTP → HTTPS
OWASP I4 - Insecure Network Services: Telnet enabled on port 23 for “manufacturing diagnostics” (forgot to disable in production firmware). Critical vulnerability - allows root shell with no password. Fix: Remove Telnet entirely, replace with SSH with key-based auth (disabled by default, requires physical button press to enable).
OWASP I5 - Insecure Firmware: OTA updates downloaded over HTTP (not HTTPS), no signature verification. Attacker on network can inject malicious firmware. Fix: 1. HTTPS for download (prevents MITM) 2. ECDSA signature verification before flash 3. Dual-bank bootloader with automatic rollback if new firmware fails to boot
OWASP I6 - Hardware: UART pins exposed on PCB (4-pin header labeled TX/RX/GND/VCC). Attacker with physical access gets root shell in 30 seconds. Partial fix: Disable UART in production fuses, require factory reset + physical button hold to re-enable (reduces casual attacks, won’t stop determined adversary with chip-off attacks).
Quantified Results:
Pre-audit: Vulnerable to 7/10 OWASP IoT categories
Post-fix: Vulnerable to 2/10 (I6 hardware attack still possible, I9 privacy concerns around cloud data retention)
Development cost: 3 weeks additional firmware work ($15,000), $0.40/unit BOM cost (secure boot MCU), $8,000 penetration testing
Total security investment: $23,000 + $0.40/unit
Compare to: One CVE disclosure + mandatory recall = estimated $500,000 (reputation damage, firmware re-spin, customer notifications)
Decision Framework: Penetration Testing vs. Automated Scanning
Option A: Automated Vulnerability Scanning
Tools: Nessus, Qualys, OpenVAS scan network for known CVEs, open ports, weak configs
Common mistake: Only testing once at launch, then never again. Vulnerabilities appear continuously (new CVEs, dependency updates, firmware changes). Ongoing automated scanning catches regressions.
Common Mistake: Assuming HTTPS Alone Secures API Communication
What practitioners do wrong: Switching an IoT device’s API from HTTP to HTTPS and assuming all communication security problems are solved. The device sends authenticated requests like:
POST https://api.example.com/device/update
Authorization: Bearer abc123-device-token
Why it fails: HTTPS encrypts transport but doesn’t prevent: 1. Token theft: If device is compromised (I6 hardware attack), attacker extracts abc123-device-token from firmware/config 2. Token reuse: That token often has no expiration, allowing indefinite impersonation 3. Missing token rotation: Same token used for months/years 4. No device attestation: Server can’t verify request came from legitimate hardware vs. attacker replaying stolen token
Real-world example - Nest thermostat vulnerability (2014): Researcher extracted OAuth tokens from Nest device firmware. Tokens had no expiration and could be used from any IP address indefinitely. With one stolen token, attacker controlled user’s thermostat permanently until user manually revoked it (which most users never do).
Correct approach - Defense in depth:
HTTPS: Prevents eavesdropping (baseline, not sufficient alone)
Short-lived tokens: Access tokens expire after 1 hour, refresh tokens after 30 days
Token rotation: Device requests new token before expiration
Mutual TLS (mTLS): Server verifies device certificate, device verifies server certificate
Hardware attestation: Secure element (TPM, secure enclave) proves token came from legitimate hardware
Anomaly detection: Server flags token use from unusual geo-location or at unusual times
Payment terminals: All of above + PCI-DSS compliance audit
The OWASP I7 (Insecure Cloud Interface) category specifically calls out the assumption that HTTPS alone is sufficient. It’s not - tokens must be protected, rotated, and validated.
Putting Numbers to It: Vulnerability Prevalence Statistics
Vulnerability prevalence is the probability that a randomly selected IoT device contains a specific weakness class.
\[P(V_i) = \frac{N_{\text{vulnerable to } i}}{N_{\text{total devices scanned}}}\]
Result: Epidemiological model predicts 380,000 infections in 72 hours, matching observed Mirai growth. The 90% prevalence of default credentials created conditions for exponential spread.
In practice: OWASP Top 10 ranks vulnerabilities by prevalence × exploitability. I1 (default credentials) ranks #1 because 90% prevalence makes it the path of least resistance for attackers, despite being trivial to fix.
1. Treating the OWASP Top 10 as a complete security checklist
The OWASP IoT Top 10 covers the most common risks but not all relevant risks for every deployment. For critical infrastructure or medical devices, supplement the Top 10 with sector-specific threat modelling and applicable regulatory requirements.
2. Addressing Top 10 items in numerical order rather than risk order
The Top 10 is not a priority ranking — it is a categorisation of common risks. Assess which items have the highest actual risk in your specific deployment context and address them in risk-priority order rather than by list position.
3. Implementing mitigations for one Top 10 item in isolation
Many Top 10 mitigations are interdependent. Implementing secure update mechanisms (item 4) without device identity (item 10) means updates cannot be authenticated. Address related items together and validate that mitigations work correctly in combination.
4. Not reassessing against the Top 10 after system changes
Adding a new device type, a new cloud integration, or a new management interface creates new potential risks that should be assessed against the Top 10. Schedule OWASP Top 10 reviews whenever the system architecture changes significantly.