Organizations are increasingly turning to cloud-native applications to gain speed, flexibility and scalability. But this new technology radically changes the way software operates and interacts, which also changes the ways that software needs to be protected.
“Cloud-native,” in this context, does not simply refer to applications that are hosted in the cloud; it means applications are truly native to the cloud. These applications are put together on the fly, built from large numbers of small packages called containers that interact through microservices, Computer Weekly noted.
The Challenges of a Distributed Technology
The same speed and flexibility that make cloud-native applications so powerful also creates the need for new security measures with the same characteristics. A further challenge, as InfoWorld reported, is that containers are not visible to traditional security technologies.
A container resembles a lightweight virtual machine. It is lightweight because it does not have its own independent operating system, but instead uses application program interfaces (APIs) to make operating system service calls. Tools that were built to protect a single operating system or host machine interactions cannot “see” containers or their interactions.
Because cloud-native applications are so fast and flexible, their attack surfaces are constantly changing as containers and microservices come and go. Data flow is distributed, requiring constant monitoring, and the speed and volume of activity means that monitoring must be automated.
Following Security Basics and Protecting the Secrets
The appropriate security response can be divided into two phases: initial build and deployment, and runtime activity. Cloud-native applications still adhere to the basic rule that security should be built in from the outset, not bolted on as an afterthought.
Container images — the executables — should be as simple as possible, scanned for known issues during development and digitally signed to verify their integrity. Access to the operating system must be strictly regulated, and segmentation policies should govern how microservices interact with each other. Microservices often exchange sensitive data such as passwords or keys. Data packets of these types are collectively known as secrets, and some implementation platforms provide integrated tools for managing and protecting secrets.
But build-time protective measures can only go so far, because the constantly changing environments in which containers and their microservices live and operate will always be full of surprises. The application environment must therefore be fully instrumented for visibility, and tools must be in place to track and analyze microservice behavior for indications of abnormalities.
Striking a Secure Balance With Cloud-Native Applications
The specific technologies of containers and microservices are new, but the evolution of cloud-native applications is part of the broad, long-term trend that has taken us from the isolated, stand-alone application environments of the mainframe era toward a distributed computing ecosystem. Throughout this evolution, the combination of building in security and continually monitoring activity has been the key to keeping rich and complex environments as secure as possible.