Serverless computing has seen tremendous growth in recent years. This growth was accompanied by a flourishing rich ecosystem of new solutions that offer observability, real-time tracing, deployment frameworks, and application security.
As awareness around serverless security risks started to gain attention, scoffers, and cynics repeated the age-old habit of calling “FUD“ — fear, uncertainty and doubt — on any attempt to point out that while serverless offers tremendous value in the form of rapid software development and huge reduction in TCO, there are also new security challenges.
The Evolving Serverless Ecosystem
One of the key indicators for a mature technology is the ecosystem that evolves around it. Having a thriving community, extensive documentation, best-practices guides, and tooling is what will drive organizations to trust new technologies and adopt them.
Recently, the Cloud Security Alliance (CSA) joined forces with PureSec, where I am CTO and co-founder, to develop an extensive serverless security guide. The guide draws much of its content from last year’s effort, but with the addition of two important risk classes.
The guide, titled “The 12 Most Critical Risks for Serverless Applications,” was written for both security and development audiences dealing with serverless applications but goes well beyond pointing the risks. It also provides best practices for all major platforms. The risk categories are defined as follows:
Risk 1: Function Event-Data Injection
Serverless functions can consume input from different types of event sources, and each event source has its own message format and encoding schemes. Various parts of these event messages may contain attacker-controlled or untrusted inputs that should be carefully inspected.
Risk 2: Broken Authentication
Since serverless promotes a microservices-oriented system design, applications may contain dozens or even hundreds of functions. Applying robust authentication can easily go awry if not executed carefully.
Risk 3: Insecure Serverless Deployment Configuration
Cloud providers offer many configuration settings to adapt services for specific needs. Out-of-the-box settings are not necessarily always the most secure. As more organizations are migrating to the cloud, cloud configuration flaws will become more prevalent.
Risk 4: Overprivileged Function Permissions and Roles
Managing function permissions and roles is one of the most daunting security tasks organizations are facing when deploying applications to the cloud. It is quite common to see developers cut corners and apply a “wildcard” (catch-all) permission model.
Risk 5: Inadequate Function Monitoring and Logging
While most cloud vendors provide extremely capable logging facilities, these logs are not always suitable for the purpose of providing a full security event audit trail at the application layer.
Risk 6: Insecure Third-Party Dependencies
While the problem of insecure third-party libraries is not specific to serverless, being able to detect malicious packages is more complex in serverless environments given the lack of ability to apply network and behavioral security controls.
Risk 7: Insecure Application Secrets Storage
One of the most frequently recurring mistakes related to application secrets storage, is to simply store these secrets in a plain text configuration file that is a part of the software project. Another common mistake is to store these secrets in plain text, as environment variables.
Risk 8: Denial-of-Service and Financial Resource Exhaustion
Serverless architectures bring promises of automated scalability and high availability; however, as with any other type of application, it is critical to apply best practices and good design in order to avoid bottlenecks.
Risk 9: Serverless Business Logic Manipulation
Business logic manipulation is a common problem in many types of software. However, serverless applications are unique, as they often follow the microservices design and contain numerous functions chained together to form the overall logic. Without proper enforcement, attackers may be able to tamper with the intended logic.
Risk 10: Improper Exception Handling and Verbose Error Messages
Line-by-line debugging options for serverless-based applications are limited (and more complex) when compared with debugging capabilities for standard applications. As a result, developers frequently adopt the use of verbose error messages, which may leak sensitive data.
Risk 11: Legacy/Unused Functions & Cloud Resources
Over time, serverless functions and related cloud resources may become obsolete and should be decommissioned. The reason behind pruning obsolete components is to reduce unnecessary costs and eliminate avoidable attack surfaces. Obsolete serverless application components may include deprecated serverless function versions, unused cloud resources, unnecessary event sources, unused roles or identities, and unused dependencies.
Risk 12: Cross-Execution Data Persistency
Serverless platforms offer application developers local disk storage, environment variables, and memory to perform their tasks. To make serverless platforms efficient in handling new invocations, cloud providers might reuse the execution environment for subsequent invocations. If the serverless execution environment is reused for subsequent invocations, belonging to different users or sessions, it is possible that sensitive data will be left behind and might be exposed.
It’s important to note that the purpose of the guide is to raise awareness and help organizations innovate with serverless securely, not to spread fear. Security risks exist in any type of platform, and serverless is no different. CSA’s goal in raising these issues is to encourage organizations to adopt new technologies while avoiding risks and common mistakes.
Editors’ note: Ory Segal is a CSA Israel chapter board member. He led the effort behind the “The 12 Most Critical Risks for Serverless Applications” guide.
Join Dark Reading LIVE for two cybersecurity summits at Interop 2019. Learn from the industry’s most knowledgeable IT security experts. Check out the Interop agenda here.
Ory Segal is a world-renowned expert in application security, with 20 years of experience in the field. Ory is the CTO and co-founder of PureSec, a start-up that enables organizations to secure serverless applications. Prior to PureSec, Ory was senior director of threat … View Full Bio