![]() |
VOOZH | about |
We’re so glad you’re here. You can expect all the best TNS content to arrive Monday through Friday to keep you on top of the news and at the top of your game.
Check your inbox for a confirmation email where you can adjust your preferences and even join additional groups.
Follow TNS on your favorite social media networks.
Become a TNS follower on LinkedIn.
Check out the latest featured and trending stories while you wait for your first TNS newsletter.
Cloud services like software-as-a-service apps, data storage and media streaming, are becoming more common, which makes application architecture more complicated. Not all applications are easy to move from a local server to the cloud. Most of the time, “lifting and shifting” apps don’t work, and apps need to be redesigned to make the best use of cloud resources. This is made even more complicated by multicloud and hybrid cloud situations. To deal with this problem, organizations need a well-documented security plan, not just for applications, but also for managing the underlying platform.
Infrastructure as Code (IaC) lets you define cloud-based systems in a declarative way, and it can be treated just like the application code that runs on it. A cloud security plan should include a safe system development life cycle for code-based design, development, testing and deployment to the cloud.
Although the cloud is not a new technology anymore, it is still maturing. Cloud-service providers offer new services based on clients’ demand, and that can make it hard at times to keep up with the level of change. Without a documented and approved plan, all activities can happen on an ad hoc basis. This lack of proper process can lead to resource misconfigurations, insecure access, disclosure of secrets in code in repositories and more.
Cloud resource misconfiguration is one of many threats in cloud infrastructure that can lead to business risks. For example, if a network security group with an Azure-based architecture has a rule that allows anyone on the internet to access an Azure VM using the SSH port, that channel can be used to access any cloud resource that the VM has access. SSH ports are used for the administration of cloud-based architecture, so opening this channel to the internet increases the attack surface.
Modern cloud applications are developed using mostly open source libraries. If any of these software components include vulnerabilities, the application itself becomes vulnerable. Using these components in an application increases the attack surface for hackers. These applications are packaged with a base image to run on containers or virtual machines, and threat actors try to exploit those vulnerabilities to access the underlying host machines. Scanning the base images and application images stored in repositories and registries can help detect vulnerabilities.
The IaC deployment pipeline should be secured to ensure cloud platform integrity as well as the security of the applications running on it. For example, access to overly permissive credentials contributes to continuous integration pipeline poisoning.
IaC has changed the way organizations think about building and securing infrastructure because it means that applications as well as the underlying platform can be software-defined and version-controlled, include automated security checks through Policy as Code and guardrails like manual approvals, and have vulnerabilities remediated before deployment.
Like any application and system development, cloud-based architectures need to be designed using secure guiding principles that are derived from business requirements as well as regulatory compliance requirements. The first step must be the development of an IaC security strategy. This strategy must specify how security is embedded at each stage, from development to deployment, as well as at runtime.
For example, during code development, integrated development environment (IDEs) plugins can identify resource configurations that violate a security policy. Developers can immediately make changes in the code before committing to the code repository.
An IaC-secure SDLC process must ensure that cloud resources are securely configured before they are provisioned. Code and patterns should be designed to ensure that they are reusable, maintainable, auditable and scalable. Secure coding guidelines must be developed to help developers know what security controls should be embedded in code for security to be built in.
Automated security checks can be embedded in repositories, deployment pipelines and at runtime to avoid the need for manual checks against policy requirements. This is known as Policy as Code (PaC). PaC can perform security checks quickly and without the risk of human error. It can also be version controlled just like IaC and application code. If the platform engineering team, for example, is responsible for developing IaC, a team such as the information security team should be responsible for developing and deploying PaC. Native tools provided by cloud service providers such as Azure Policy may be adopted for PaC implementation support. Alternatively, third-party cloud native application protection plan (CNAPP) tools such as Orca can be plugged into a CI/CD pipeline at runtime to enforce PaC.
Tags for resources can be used to set the context of a resource. Doing so helps ensure that resources are configured appropriately. For example, if an S3 bucket is holding public data, it may not need encryption and may be publicly accessible.
To ensure that the development and deployment process of IaC are secure by design, security guardrails must be implemented. These controls detect any drift or deviation from the expected outcome and prevent it. They also provide vulnerability and recommendation feedback to development teams, which can then make necessary changes to mitigate the vulnerability. This is done using automation, reducing the chance of manual error and improving security, since development teams will not be allowed to bypass any security policies embedded in the pipeline. Any policy exception, then, must go through a manual review process and be recorded.
Some examples of these guardrails:
Security scans in CI/CD pipelines typically use third-party open source tools. It is good practice to use a licensed product plugged into the pipeline. Ensure the tools have enough permission to scan the code but are not allowed to access other cloud resources or components.
IaC scripts should get similar treatment as any application software. The IaC security strategy must have a secure SDLC, access control, testing using PaC and secure deployment. This helps in application security as well as data protection. As businesses are adopting the cloud more and getting into complex, multicloud architecture, reusable, modular, hardened IaC patterns are the best way to manage growing demand.
Synopsys helps organizations improve their cloud security posture by assessing the maturity of their cloud adoption processes and proposing a roadmap of activities. In most cases, we find that organizations lack a robust documented process for cloud infrastructure deployment.