Too few people doing container development are paying attention to security issues. Doubling down on scanning at every stage is a simple solution. Credit: IDG / Thinkstock Containers, certainly containers running on public clouds, are really old hat by now. These self-contained, lightweight software packages come with their own runtime environment and are relocatable from platform to platform, typically without significant changes to code. Containers include an application as well as its dependencies, such as libraries, other binaries, and configuration files needed to run them. Containers are one of the most popular application development approaches, also supporting the “wrapping” of applications existing within containers, but there are flaws and vulnerabilities that are systemic to containers. This has made using them one of the scarier things for cloud security specialists and a preferred attack vector for wrongdoers. [ Also on InfoWorld: No one wants to manage Kubernetes anymore ] The core issue is that any exposures can easily include the other systems, applications, and data that are connected to the containers. Furthermore, defects in these components may provide an attacker with the ability to gain control of a system and any sensitive data that the system may have access to. This is when bad things happen. What are the best approaches for detecting container vulnerabilities? More importantly, what can be done to minimize disruption to those who have to build using containers? The answers are really in two parts: Scan for vulnerabilities and build to avoid vulnerabilities. Scanning is the most common approach, considering that it’s part of a CI/CD (continuous integration and continuous delivery) pipeline. Scanning looks for security issues when the code is created, tested, reviewed, and deployed, as well as during operations. Automated scanning processes can spot vulnerabilities and, in some cases, automatically correct them without any developer interaction. Registry scanning, or culling through a collection of repositories, looks over many container images at once. These become running containers when they are instantiated from the registry to a production system, whether in the cloud or not. Runtime environment scanning is another method, which is all about scanning executing containers for security issues. Your best bet is to leverage as many types of vulnerability scanning as you can and thus remove some (but not all) of the risk in building and deploying container-based applications. Building to avoid vulnerabilities is often a matter of using common sense—considering vulnerabilities that can be introduced by doing dumb things, such as using base images from untrusted sources. Other issues would be leveraging tools that have been vetted by a security audit, only using code that has a known legacy, and providing special training for developers in terms of making the right choices when building for secure containers. Pick the right tools for scanning, and overdo scanning of containers being built, tested, staged, and deployed. Checking each stage for security issues really does not slow things down, and it just lowers risk. This is not rocket science. You’re leveraging tools that are already around and proven. That said, many container developers are not using some of the most basic security tools and approaches. Given how dependent on containers most IT shops moving to the cloud are, we’re going to need to fix that. Related content feature 14 great preprocessors for developers who love to code Sometimes it seems like the rules of programming are designed to make coding a chore. Here are 14 ways preprocessors can help make software development fun again. By Peter Wayner Nov 18, 2024 10 mins Development Tools Software Development feature Designing the APIs that accidentally power businesses Well-designed APIs, even those often-neglected internal APIs, make developers more productive and businesses more agile. By Jean Yang Nov 18, 2024 6 mins APIs Software Development news Spin 3.0 supports polyglot development using Wasm components Fermyon’s open source framework for building server-side WebAssembly apps allows developers to compose apps from components created with different languages. By Paul Krill Nov 18, 2024 2 mins Microservices Serverless Computing Development Libraries and Frameworks news Go language evolving for future hardware, AI workloads The Go team is working to adapt Go to large multicore systems, the latest hardware instructions, and the needs of developers of large-scale AI systems. By Paul Krill Nov 15, 2024 3 mins Google Go Generative AI Programming Languages Resources Videos