Principles of IoT Security

Principles of IoT Security

 * 1) Assume a Hostile Edge
 * 2) * Edge components are likely to fall into adversarial hands. Assume attackers will have physical access to edge components and can manipulate them, move them to hostile networks, and control resources such as DNS, DHCP, and internet routing.
 * 3) Test for Scale
 * 4) * The volume of IoT means that every design and security consideration must also take into account scale. Simple bootstrapping into an ecosystem can create a self denial of service condition at IoT scale.  Security countermeasures must perform at volume.
 * 5) Internet of Lies
 * 6) * Automated systems are extremely capable of presenting misinformation in convincing formats. IoT systems should always verify data from the edge in order to prevent autonomous misinformation from tainting a system.
 * 7) Exploit Autonomy
 * 8) * Automated systems are capable of complex, monotonous, and tedious operations that human users would never tolerate. IoT systems should seek to exploit this advantage for security.
 * 9) Expect Isolation
 * 10) * The advantage of autonomy should also extend to situations where a component is isolated. Security countermeasures must never degrade in the absence of connectivity.
 * 11) Protect Uniformly
 * 12) * Data encryption only protects encrypted pathways. Data that is transmitted over an encrypted link is still exposed at any point it is unencrypted, such as prior to encryption, after decryption, and along any communications pathways that do not enforce encryption.  Careful consideration must be given to full data lifecycle to ensure that encryption is applied uniformly and appropriately to guarantee protections.  Encryption is not total - be aware that metadata about encrypted data might also provide valuable information to attackers.
 * 13) Encryption is Tricky
 * 14) * It is very easy for developers to make mistakes when applying encryption. Using encryption but failing to validate certificates, failing to validate intermediate certificates, failing to encrypt traffic with a strong key, using a uniform seed, or exposing private key material are all common pitfalls when deploying encryption.  Ensure a thorough review of any encryption capability to avoid these mistakes.
 * 15) System Hardening
 * 16) * Be sure that IoT components are stripped down to the minimum viable feature set to reduce attack surface. Unused ports and protocols should be disabled, and unnecessary supporting software should be uninstalled or turned off.  Be sure to track third party components and update them where possible.
 * 17) Limit what you can
 * 18) * To the extent possible limit access based on acceptable use criteria. There's no advantage in exposing a sensor interface to the entire internet if there's no good case for a remote user in a hostile country.  Limit access to white lists of rules that make sense.
 * 19) Lifecycle Support
 * 20) * IoT systems should be able to quickly onboard new components, but should also be capable of re-credentialing existing components, and deprovisioning components for a full device lifecycle. This capability should include all components in the ecosystem from devices to users.
 * 21) Data in Aggregate is Unpredictable
 * 22) * IoT systems are capable of collecting vast quantities of data that my seem innocuous at first, but complex data analysis may reveal very sensitive patterns or information hidden in data. IoT systems must prepare for the data stewardship responsibilities of unexpected information sensitivity that may only be revealed after an ecosystem is deployed.
 * 23) Plan for the Worst
 * 24) * IoT systems should have capabilities to respond to compromises, hostile participants, malware, or other adverse events. There should be features in place to re-issue credentials, exclude participants, distribute security patches and updates, and so on, before they are ever necessary.
 * 25) The Long Haul
 * 26) * IoT system designers must recognize the extended lifespan of devices will require forward compatible security features. IoT ecosystems must be capable of aging in place and still addressing evolving security concerns.  New encryption, advances in protocols, new attack methods and techniques, and changing topology all necessitate that IoT systems be capable of addressing emerging security concerns for years after they are deployed.
 * 27) Attackers Target Weakness
 * 28) * Ensure that security controls are equivalent across interfaces in an ecosystem. Attackers will identify the weakest component and attempt to exploit it.  Mobile interfaces, hidden API's, or resource constrained environments must enforce security in the same way as more robust or feature rich interfaces.  Using multi-factor authentication for a web interface is useless if a mobile application allows access to the same API's with a four digit PIN.
 * 29) Transitive Ownership
 * 30) * IoT components are often sold or transferred during their lifespan. Plan for this eventuality and be sure IoT systems can protect and isolate data to enable safe transfer of ownership, even if a component is sold or transferred to a competitor or attacker.
 * 31) N:N Authentication
 * 32) * Realize that IoT does not follow a traditional 1:1 model of users to applications. Each component may have more than one user and a user may interact with multiple components.  Several users might access different data or capabilities on a single device, and one user might have varying rights to multiple devices.  Multiple devices may need to broker permissions on behalf of a single user account, and so on.  Be sure the IoT system can handle these complex trust and authentication schemes.