Serverless computing simplifies the process to build agile applications with the flexibility to use it in conjunction with micro-services, which have transformed the way organizations approach the application build cycle. Besides, excessive hype related to serverless via microservices has pushed the industry to adopt a binary approach to application decomposition (all microservices or none) rather than adopting a more pragmatic and risk effective multi-grained service model.
A serverless service primarily uses a deployment infrastructure that abstracts or hides any concept of servers (i.e. reserved or preallocated resources) physical or virtual hosts, or containers. The deployment infrastructure can be a utility also operated by a public cloud provider.
The underlying infrastructure takes the service’s code and executes it and subscribers are charged for each request based on the resources consumed. It can typically use either containers, Kubernetes, or leverage virtual machines to isolate the service. However, these details are abstracted.
Some key characteristics of serverless deployment include:
Regardless of the serverless model considered and growing awareness of securing the ecosystem, breaches continue to occur. This is primarily causing extensive adoption of serverless frameworks across the cloud and also incrementally widens the attack surface. Even though multiple security vendors are working to address the problem, the DevSecOps team needs to secure and ensure the serverless environment is not compromised.
Besides having decade-old injection-based vulnerabilities, OWASP related issues with applications, and over-privileged functional permission sets and roles, there are other sophisticated challenges that organizations face with serverless deployments. It profoundly requires a fundamental shift in how organizations look at application security.
With multiple serverless frameworks and deployment models available across cloud platforms, there are a plethora of configuration settings that allow subscribers to customize their environment to specific requirements. There have been multiple instances identified wherein, misconfigurations across cloud storage, web application firewall, network policies, segregation of trust zones, etc. are exploited to introduce vulnerabilities into the serverless ecosystem.
The key challenges which organizations face emerge due to decentralized view of serverless especially via deployment settings – per function-related permissions, lack of comprehensive secrets and key management lifecycle plan, and inadequate visibility due to lack of security events logging and monitoring.
Some of the other key challenges which we have remediated include:
The following items illustrate the key actionable steps which we recommend organizations to focus on at minimum:
We at WeSecureApp enforce the Prevention, Detection, and Mitigation (PDM) principle wherein, we emphasize organizations to conduct a threat modeling exercise and identify all the serverless workflows in place, before conforming to the following:
There are many ways to get started depending on the needs, priorities, and maturity of a program, however, we have listed some of the must-haves to consider during the journey to secure the serverless ecosystem: