Assume every API is accessible to the Internet and every communications channel is open to eavesdropping.
Every subject and every device should be authenticated - using 2 of something they are, something they have or something they know.
Every object access request, should be introspected, validated and then logged.
Assume everything you run is accessible from the Internet.
Trust is built from context, not location or subject.
If you can work from a coffee shop, an attacker can work from your network.
Combine location, device, subject and context during every request evaluation.
1. Assign unique, non-reusable identifiers to all subjects, objects and network devices
4. Introspect, verify and validate every object access request
7. Successful authentication should result in a revocable credential
10. Encrypt all network communications
2. Authenticate every subject
5. Log every object access request
8. Credentials should be scoped and follow least privilege
11. Protect all services, as if they're accessible from the Internet - even "private" ones
3. Authenticate every device
6. Authentication should leverage two from "something you know", "something you are" and "something you have"
9. Credentials should be bound to a user, device or transaction tuple
12. Segment processes and network traffic in to logical and operational groups
Copyright @ All Rights Reserved