DevOps has accelerated the creation (and destruction) of anything not human: containers, microservices, virtual machines and code can all be categorized as machines in this ephemeral world of New IT. But how is each machine identified and trusted? And how is it protected?
Traditional IT infrastructure components can be identified with an IP address, port and often a digital certificate or key—and communications between them often secured (encrypted) with the same. Even organizations focused on "cloud first" will continue to support these.
As business embraces the benefits of DevOps and cloud—combined with the persistent reality of datacenters—machines are now legion and the old methods of ad hoc issuing and tracking identities and access for machines in many silos without unified policy or controls is ending.
Hands-on methods of managing machine identities are ending in part because of the outages that harangue business due to mishaps with certificates (like untracked expirations). But they are also ending because we continue to see an increase in factors such as gaps in process or third party-issued certificates lost in communication. Manual management techniques are also unsustainable because of the fertile soil they create for attackers to mimic trusted machines on a network, remain anonymous in encrypted machine-to-machine communications and bypass other security controls.
Zero Trust with cert-manager, Istio and Kubernetes
And anything manual slows down progress.
For example, application developers often use code signing as a way to ensure that users can trust that the code has not been modified by a third party. However, if this decades-old security technique can’t be easily incorporated into release cycles measured in minutes or hours, then DevOps developers are likely to make risky choices, such as storing code signing credentials in an insecure location so that their CI/CD pipelines can easily access them.
Without an agile framework for central issuance and control of machine identities in any form factor—certificates, SSH keys, signed code, etc.—DevOps teams will necessarily develop another method of solving that problem; typically, by relying on whatever toolset they happen to be using at the time and whatever source of certificates and keys is handy.
This is a lose-lose-lose situation. The security organization loses visibility and control and can't reasonably apply policies. Developers are forced to take on roles outside their core function and build and maintain inventories and methods for issuing and tracking identities across a dynamic CI/CD pipeline and pre-production environments while protecting the business. And the audit team, which could have consumed real-time data, is instead left with unanswered questions.
There is good news ahead: new control frameworks are being developed and industry experts are now strongly encouraging that organizations implement governance for machine identities. But the work of providing a service to internal stakeholders—whether they be auditors, security analysts, infrastructure owners, or application developers—comes down to the familiar refrain of "people, process, technology".
Every story needs a beginning, middle and end. The beginning of this story was written the first time a machine was identified on the network as trusted by presenting a known credential—a certificate or key. The middle is playing out today with new use cases and consumption of machine identities skyrocketing. The end must be automation: to ensure visibility and control across many silos (which aren't going away) and continuously changing toolsets for developers and suppliers like Certificate Authorities and Cloud Service Providers.
The world is comprised of humans and machines. We need to be able to trust the identities of both. Machines take on many forms and will necessarily evolve but without the identity of each machine firmly established, security and trust are not possible. The opportunity for progress that comes with DevOps, cloud and software-defined everything can be made much more enjoyable with reliable digital trust.
What challenges will we see in implementing this new framework for machine identity management? What must your organization do to grab the reins of how machine identities are created, used and destroyed at machine speed in the months and years ahead? Stay tuned.
This blog has been updated. It was originally published by Joel Shick on September 11, 2018.
Machine Identity Security Architecture
Related posts