Organizations are turning to serverless environments to help realize the full potential of DevOps/agile development. Serverless technologies enable instant scalability, high availability, greater business agility and improved cost-efficiency. According to a recent report, serverless adoption in the enterprise has seen a 209% increase in average weekly invocations over the last 12 months.
The ability to build applications without worrying about the server infrastructure on which they reside is a huge advantage. It removes a complicated issue from the plate of the development team and puts it in the hands of the cloud service. It also brings other benefits:
- Better observability across the application. Because applications are broken into smaller functions, it is easier to troubleshoot and identify problems.
- Scalability. As with other cloud-based solutions, serverless architectures simplify the management of traffic fluctuations and eliminate the need for idle capacity on hand for peak usage.
- More focus on UX. At the end of the day, user experience is the most critical consideration for developers, and more focus can be directed here when the architecture is outsourced.
- Faster deployments. The ability to build software on a dynamic, scalable infrastructure enables yet another exponential improvement in development speed.
- Cost savings. Maintaining servers and databases is labor-intensive and often takes administrators away from more strategic tasks.
While serverless is quickly becoming a preferred approach for helping organizations accelerate the development of new applications, their existing toolsets for application security testing (AST) perpetuate inefficiencies that ultimately bottleneck release cycles. Serverless environments themselves present some advantages when it comes to security. However, some key differences create some unique challenges.
These include:
- An expanded attack surface: Serverless has more points of attack to potentially exploit. Every function, application programming interface (API) and protocol presents a potential attack vector.
- A porous perimeter is harder to secure: Serverless applications have more fragmented boundaries.
- Greater complexity: Permissions and access issues can be challenging and time-consuming to manage.
Serverless architectures also lack security visibility due to “no-edge blindness” – functions that have no public-facing endpoint or URL. Abstraction of the infrastructure, network and virtual machines provide zero context for traditional application security tools to reference. This reduces the accuracy of AST results. While some tools promote static scans for serverless applications, scanning code with zero context is not a real serverless AST solution.
“For serverless to succeed and deliver the full value that it promises, organizations require AST tools…”
Deployment of traditional AST solutions for serverless applications typically takes a long time—including complex evaluation and tuning by security experts. Similarly, AST operation depends on manual processes between security and development teams due to a high rate of false-positive results that must be triaged and analyzed before remediation can begin. These complexities and manual dependencies make it very difficult for application security to scale in lockstep with rapid serverless development processes.
Retrofitting traditional security tools for serverless application testing cannot provide the requisite speed, accuracy or visibility into serverless architectures. For serverless to succeed and deliver the full value that it promises, organizations require AST tools designed for the particular needs of serverless application development environments.
Serverless computing will undoubtedly continue to gain prominence in the coming years. The myriad benefits of entrusting server and database management to someone else are impossible to deny. This means that application security teams must accelerate their own innovation to match the pace of their DevOps colleagues to keep these growing environments secure. Organizations need to do a better job reducing their serverless security debt by addressing vulnerabilities as they occur. And crucially, they must achieve full security observability for both serverless and non-serverless applications.
To do this, organizations must design a serverless application security strategy that accounts for the unique aspects of serverless computing and enables developers to solve problems in real-time. In other words, what is needed is a comprehensive, purpose-built tool for serverless security.
Tal Melamed Senior Director, Cloud Native Security Research, Contrast Security