IOT OWASP Pentesting Checklist
IOT OWASP Pentesting Checklist
Ecosystem (general)
Device Memory
Device Firmware
Device Firmware
Administrative Interface
Update Mechanism
Mobile Application
Ecosystem Communication
Network Traffic
Network Traffic
Authentication/
Authorization
Privacy
Hardware (Sensors)
Vulnerability
Interoperability standards
Data governance
System wide failure
Individual stakeholder risks
Implicit trust between components
Enrollment security
Decommissioning system
Lost access procedures
Sensitive data
Cleartext usernames
Cleartext passwords
Third-party credentials
Encryption keys
Firmware extraction
User CLI
Admin CLI
Privilege escalation
Reset to insecure state
Removal of storage media
Tamper resistance
Debug port
UART (Serial)
JTAG / SWD
Device ID/Serial number exposure
Standard set of web application vulnerabilities, see:
OWASP Web Top 10
OWASP ASVS
OWASP Testing guide
Credential management vulnerabilities:
Username enumeration
Weak passwords
Account lockout
Known default credentials
Insecure password recovery mechanism
Sensitive data exposure (See OWASP Top 10 - A6 Sensitive data exposure):
Backdoor accounts
Hardcoded credentials
Encryption keys
Encryption (Symmetric, Asymmetric)
Sensitive information
Sensitive URL disclosure
Firmware version display and/or last update date
Vulnerable services (web, ssh, tftp, etc.)
Verify for old sw versions and possible attacks (Heartbleed, Shellshock, old PHP versions etc)
Security related function API exposure
Firmware downgrade possibility
Information disclosure
User CLI
Administrative CLI
Injection
Denial of Service
Unencrypted Services
Poorly implemented encryption
Test/Development Services
Buffer Overflow
UPnP
Vulnerable UDP Services
DoS
Device Firmware OTA update block
Firmware loaded over insecure channel (no TLS)
Replay attack
Lack of payload verification
Lack of message integrity check
Credential management vulnerabilities:
Username enumeration
Weak passwords
Account lockout
Known default credentials
Insecure password recovery mechanism
Standard set of web application vulnerabilities, see:
OWASP Web Top 10
OWASP ASVS
OWASP Testing guide
Credential management vulnerabilities:
Username enumeration
Weak passwords
Account lockout
Known default credentials
Insecure password recovery mechanism
Security/encryption options
Logging options
Two-factor authentication
Check for insecure direct object references
Inability to wipe device
Unencrypted data
Data encrypted with discovered keys
Lack of data integrity checks
Use of static same enc/dec key
Standard set of web application vulnerabilities, see:
OWASP Web Top 10
OWASP ASVS
OWASP Testing guide
Credential management vulnerabilities:
Username enumeration
Weak passwords
Account lockout
Known default credentials
Insecure password recovery mechanism
Transport encryption
Two-factor authentication
Unencrypted PII sent
Encrypted PII sent
Device information leaked
Location leaked
Update sent without encryption
Updates not signed
Update location writable
Update verification
Update authentication
Malicious update
Missing update mechanism
No manual update mechanism
Implicitly trusted by device or cloud
Username enumeration
Account lockout
Known default credentials
Weak passwords
Insecure data storage
Transport encryption
Insecure password recovery mechanism
Two-factor authentication
Inherent trust of cloud or mobile application
Weak authentication
Weak access controls
Injection attacks
Hidden services
Health checks
Heartbeats
Ecosystem commands
Deprovisioning
Pushing updates
LAN
LAN to Internet
Short range
Non-standard
Wireless (WiFi, Z-wave, XBee, Zigbee, Bluetooth, LoRA)
Protocol fuzzing
Authentication/Authorization related values (session key, token, cookie, etc.) disclosure
Reusing of session key, token, etc.
Device to device authentication
Device to mobile Application authentication
Device to cloud system authentication
Mobile application to cloud system authentication
Web application to cloud system authentication
Lack of dynamic authentication
User data disclosure
User/device location disclosure
Differential privacy
Sensing Environment Manipulation
Tampering (Physically)
Damage (Physicall)
Vulnerability Attack Surface
Administrative Interface
Device Web Interface
Username Enumeration
Cloud Interface
Mobile Application
Administrative Interface
Device Web Interface
Weak Passwords
Cloud Interface
Mobile Application
Administrative Interface
Device Web Interface
Account Lockout
Cloud Interface
Mobile Application
Unencrypted Services Device Network Services
Administrative Interface
Two-factor Authentication
Cloud Web Interface
Mobile Application
Poorly Implemented Encryption Device Network Services
Update Sent Without Encryption Update Mechanism
Update Location Writable Update Mechanism
Denial of Service Device Network Services
Removal of Storage Media Device Physical Interfaces
No Manual Update Mechanism Update Mechanism
Missing Update Mechanism Update Mechanism
Firmware Version Display and/or Last Update Date Device Firmware
JTAG / SWD interface
In-Situ dumping
Intercepting a OTA update
Firmware and storage extraction
Downloading from the manufacturers web page
eMMC tapping
Unsoldering the SPI Flash / eMMC chip and reading it in a adapter
JTAG / SWD interface
Manipulating the code execution flow of the device
Side channel attacks like glitching
Ability to collect a set of valid usernames by interacting with the authentication mechanism
Network services are not properly encrypted to prevent eavesdropping or tampering by attackers
Encryption is implemented however it is improperly configured or is not being properly updated, e.g. using SSL v2
Updates are transmitted over the network without using TLS or encrypting the update file itself
Storage location for update files is world writable potentially allowing firmware to be modified and distributed to all users
Service can be attacked in a way that denies service to that service or the entire device
Ability to physically remove the storage media from the device
No ability to manually force an update check for the device
No ability to update device
Current firmware version is not displayed and/or the last update date is not displayed
Firmware contains a lot of useful information, like source code and binaries of running services, pre-set passwords, ssh keys etc.
With the help of a JTAG adapter and gdb we can modify the execution of firmware in the device and bypass almost all software based security controls.
Side channel attacks can also modify the execution flow or can be used to leak interesting information from the device
By connecting to a serial interface, we will obtain full console access to a device
Usually security measures include custom bootloaders that prevent the attacker from entering single user mode, but that can also be bypassed.
Out of date versions of busybox, openssl, ssh, web servers, etc.
Attack Surface
Ecosystem (general)
HL7
Device Memory
Device Firmware
Device Network Services
Administrative Interface
Update Mechanism
Mobile Application
Ecosystem Communication
Network Traffic
Authentication/Authorization
Authentication/Authorization
Data Flow
Hardware (Sensors)
Vulnerability
Interoperability standards
Data governance
System wide failure
Individual stakeholder risks
Implicit trust between components
Enrollment security
Decommissioning system
Lost access procedures
XML Parsing
XSS
Information Disclosure
Sensitive data
Cleartext usernames
Cleartext passwords
Third-party credentials
Encryption keys
Firmware extraction
User CLI
Admin CLI
Privilege escalation
Reset to insecure state
Removal of storage media
Tamper resistance
Debug port
Device ID/Serial number exposure
Standard set of web vulnerabilities:
SQL injection
Cross-site scripting
Cross-site Request Forgery
Username enumeration
Credential management vulnerabilities:
Username enumeration
Weak passwords
Account lockout
Known default credentials
Insecure password recovery mechanism
Sensitive data exposure:
Backdoor accounts
Hardcoded credentials
Encryption keys
Encryption (Symmetric, Asymmetric)
Sensitive information
Sensitive URL disclosure
Firmware version display and/or last update date
Vulnerable services (web, ssh, tftp, etc.)
Security related function API exposure
Firmware downgrade
Information disclosure
User CLI
Administrative CLI
Injection
Denial of Service
Unencrypted Services
Poorly implemented encryption
Test/Development Services
Buffer Overflow
UPnP
Vulnerable UDP Services
DoS
Device Firmware OTA update block
Replay attack
Lack of payload verification
Lack of message integrity check
Credential management vulnerabilities:
Username enumeration
Weak passwords
Account lockout
Known default credentials
Insecure password recovery mechanism
Standard web vulnerabilities:
SQL injection
Cross-site scripting
Cross-site Request Forgery
Username enumeration
Credential management vulnerabilities:
Username enumeration
Weak passwords
Account lockout
Known default credentials
Insecure password recovery mechanism
Security/encryption options
Logging options
Two-factor authentication
Inability to wipe device
Unencrypted data
Data encrypted with discovered keys
Lack of data integrity checks
Use of static same enc/dec key
Standard set of web vulnerabilities:
SQL injection
Cross-site scripting
Cross-site Request Forgery
Credential management vulnerabilities:
Username enumeration
Weak passwords
Account lockout
Known default credentials
Insecure password recovery mechanism
Transport encryption
Two-factor authentication
Unencrypted PII sent
Encrypted PII sent
Device information leaked
Location leaked
Update sent without encryption
Updates not signed
Update location writable
Update verification
Update authentication
Malicious update
Missing update mechanism
No manual update mechanism
Implicitly trusted by device or cloud
Username enumeration
Account lockout
Known default credentials
Weak passwords
Insecure data storage
Transport encryption
Insecure password recovery mechanism
Two-factor authentication
Inherent trust of cloud or mobile application
Weak authentication
Weak access controls
Injection attacks
Hidden services
Health checks
Heartbeats
Ecosystem commands
Deprovisioning
Pushing updates
LAN
LAN to Internet
Short range
Non-standard
Wireless (WiFi, Z-wave, XBee, Zigbee, Bluetooth, LoRA)
Protocol fuzzing
Authentication/Authorization related values (session key, token, cookie, etc.) disclosure
Reusing of session key, token, etc.
Device to device authentication
Device to mobile Application authentication
Device to cloud system authentication
Mobile application to cloud system authentication
Web application to cloud system authentication
Lack of dynamic authentication
What data is being captured?
How does it move within the ecosystem?
How is it protected in transit?
How is it protected at rest?
Who is that data shared with?
Sensing Environment Manipulation
Tampering (Physically)
Damaging (Physically)
Failure state analysis
Section
Manufacturer Recommendations
Vulnerable Firmware
Vulnerability
Out-of-date core components
Unsupported core components
Expired and/or self-signed certificates
Same certificate used on multiple devices
Admin web interface concerns
Hardcoded or easy to guess credentials
Sensitive information disclosure
Sensitive URL disclosure
Encryption key exposure
Backdoor accounts
Vulnerable services (web, ssh, tftp, etc.)
Ensure that supported and up-to-date software is used by developers
Ensure that robust update mechanisms are in place for devices
Ensure that certificates are not duplicated across devices and product lines.
Ensure supported and up-to-date software is used by developers
Develop a mechanism to ensure a new certificate is installed when old ones expire
Disable deprecated SSL versions
Ensure developers do not code in easy to guess or common admin passwords
Ensure services such as SSH have a secure password created
Develop a mechanism that requires the user to create a secure admin password during initial device s
Ensure developers do not hard code passwords or hashes
Have source code reviewed by a third party before releasing device to production
Ensure industry standard encryption or strong hashing is used
Firmware file analysis
Firmware extraction
Dynamic binary analysis
Static binary analysis
Static code analysis
Firmware emulation
File system analysis
Firmwalker
Firmware Modification Kit
Angr binary analysis framework
Binwalk firmware analysis tool
Binary Analysis Tool
Firmadyne
Damn Vulnerable Router Firmware
Event Category
Request Exceptions
Authentication Exceptions
Session Exceptions
Input Exceptions
Reputation Exceptions
Events
Attempt to Invoke Unsupported HTTP Method
Unexpected Quantity of Characters in Parameter
Unexpected Type of Characters in Parameter
Multiple Failed Passwords
High Rate of Login Attempts
Additional POST Variable
Deviation from Normal GEO Location
Modifying the Existing Cookie
Substituting Another User's Valid SessionID or Cookie
Source Location Changes During Session
Modifying URL Argument Within a GET for Direct Object Access Attempt
Modifying Parameter Within a POST for Direct Object Access Attempt
Forced Browsing Attempt
Traffic Seen from Disenrolled System
Traffic Seen from Unenrolled System
Failed Attempt to Enroll in Ecosystem
Multiple Attempts to Enroll in Ecosystem
Device Case Tampering Detected
Device Logic Board Tampering Detected
Device Entered Administrative Mode
Device Accessed Using Default Administrative Credentials
Double Encoded Character
Unexpected Encoding Used
Blacklist Inspection for Common SQL Injection Values
Abnormal Quantity of Returned Records
Honey Trap Resource Requested
Honey Trap Data Used
Suspicious or Disallowed User Source Location
Rank and ID
1 - CWE-119
2 - CWE-20
3 - CWE-22
4 - CWE-264
5 - CWE-200
6 - CWE-255
7 - CWE-287
8 - CWE-399
9 - CWE-79
10 - CWE-189
Title
Improper Restriction of Operations within the Bounds of a Memory Buffer
Improper Input Validation
Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
Permissions, Privileges, and Access Controls
Information Exposure
Credentials Management
Improper Authentication
Resource Management Errors
Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
Numeric Errors
Firmware software tools
Fortunately, most firmware analysis tools are free and open source. Some of the tools are actively updated while others may
but still work. The following are a number of firmware software tools which can analyze firmware images, disassemble images
to firmware processes during runtime:
Binwalk
Firmadyne
Firmwalker
Angr
Firmware-mod-toolkit
Firmware analysis toolkit
GDB
Radare2
Binary Analysis Tool (BAT)
Qemu
IDA Pro (optional)
Android SDK
Android emulator
Enjarify
JD-Gui
Mob-SF
SQLite browser
Burp Suite
OWASP ZAP
iOS
idb
Xcode tools
Class-dump
Hopper (optional)
Mob-SF
SQLite browser
Burp Suite
OWASP ZAP
Jailbroken iDevice
Cydia
openURL
dumpdecrypted
ipainstaller
SSL Kill Switch 2
Clutch2
Cycript
Multimeters
http://int3.cc/products/the-shikra
https://www.sparkfun.com/products/12942
http://www.grandideastudio.com/jtagulator/
https://www.saleae.com/
Radio analysis hardware
HackRF One
Yardstick One
XBee with Xbee Shield
Ubertooth
BLe adapter