Thesis: Supporting triage of microservice security smells, using trade-off analysis
Date
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
Microservice-based applications (MSAs) are pervading enterprise IT, as they enable building cloud native applications that can fully exploit the capabilities of cloud computing, exhibiting distributed, dynamic, and fault-resilient behavior. MSAs introduce new security challenges, including the so-called security smells, i.e., symptoms of poor decisions that may impact MSA security. Security smell instances must be carefully checked, and possibly resolved via refactoring, to preempt authenticity, integrity, or confidentiality issues. In this thesis ten smells for securing microservices are identified, and organized in a taxonomy, associating each security smell with the security properties it may violate and the refactorings enabling to mitigate its effects. Furthermore, this thesis also presents an end-to-end approach for resolving security smells in existing MSAs that automatizes smell detection and provides users with an interactive mechanism for smell resolution across the concerned MSA components. On the other hand, choosing between tolerating a given microservice security smell instance and resolving it with a refactoring requires careful trade-off considerations, since both the smell and its refactoring may impact other quality attributes besides security, e.g., maintainability and performance. For example, the centralized authorization security smell harms the authenticity and time behavior of the MSA but favors its testability. Thus, resolving the security smell by applying the use decentralized authorization refactoring would favor the MSA authenticity and modularity, but would harm its testability and resource utilization. Making informed refactoring decisions requires assessing the trade-offs of impacts on multiple affected quality attributes. This thesis also argues for trade-off analysis to help determine whether to keep a microservice security smell or to apply a refactoring, based on their positive/negative impacts on specific quality attributes and design soundness. The proposed method enacts and supports this trade-off analysis using Softgoal Interdependency Graphs (SIGs), a visual formalism that, in our case, enables a holistic view of the positive/negative impacts of microservice security smells and refactorings on software quality attributes and design soundness. Additionally, we systematically elicit possible impacts of smells and refactorings on applications’ maintainability, performance efficiency, and adherence to microservices’ key design principles, which were then validated through an online survey targeting experienced practitioners and researchers. Since multiple security smell instances can affect multiple services in an MSA, architects must not only find trade-offs for each smell instance but also decide which smell instances to resolve first. Indeed, some smell instances may be more “urgent” than others because they affect services that implement core functionalities and/or quality attributes that are critical for a service’s effective functioning. Given the number of services forming an MSA, their quality requirements, and the multiple different impacts of security smells on quality attributes, it is inherently complex and costly to determine which security smell instances should be resolved first, being the most urgent. Taking the above into consideration, this thesis also proposes a triage method to systematically associate security smell instances with “urgency codes”, similar to what triage nurses do with patients who enter a hospital emergency room and describe their symptoms. The proposed method enables assigning each security smell instance (i.e., a security smell affecting a service in an MSA) an urgency code, which is computed by combining (i) the relevance of the service to the business, and (ii) the importance of the service quality attributes that are impacted by the smell instance. The method systematizes this process by assigning smell instances to urgency codes, which can be used by practitioners to decide which smell instances to resolve first (presumably, those with the highest urgency). The practical applicability of the proposed triage method is illustrated with a use case based on a third-party MSA, and its usefulness is evaluated with a controlled experiment involving 26 practitioners. Our results suggest that the proposed triage method eases the triage process and yields urgency codes on which practitioners are more confident.
Las aplicaciones basadas en microservicios (AMS) están proliferando en las TI empresariales, ya que permiten crear aplicaciones nativas de la nube que aprovechan al máximo las capacidades de la computación en la nube, exhibiendo un comportamiento distribuido, dinámico y tolerante a fallos. Las AMS introducen nuevos desafíos de seguridad, incluyendo los denominados "olores de seguridad", es decir, síntomas de malas decisiones que pueden afectar la seguridad de las AMS. Los casos de olores de seguridad deben revisarse cuidadosamente y, posiblemente, resolverse mediante refactorización, para prevenir problemas de autenticidad, integridad o confidencialidad. En esta tesis se identifican diez olores para la seguridad de los microservicios y se organizan en una taxonomía, asociando cada olor de seguridad con las propiedades de seguridad que puede violar y las refactorizaciones que permiten mitigar sus efectos. Además, esta tesis también presenta un enfoque integral para resolver olores de seguridad en las AMS existentes que automatiza la detección de olores y proporciona a los usuarios un mecanismo interactivo para su resolución en todos los componentes de la AMS involucrados. Por otro lado, elegir entre tolerar una vulnerabilidad de seguridad en un microservicio y resolverla mediante una refactorización requiere un análisis cuidadoso de las ventajas y desventajas, ya que tanto la vulnerabilidad como la refactorización pueden afectar otros atributos de calidad además de la seguridad, como la mantenibilidad y el rendimiento. Por ejemplo, la vulnerabilidad de seguridad de la autorización centralizada perjudica la autenticidad y el comportamiento temporal del MSA, pero favorece su capacidad de prueba. Por lo tanto, resolver la vulnerabilidad de seguridad mediante una refactorización que utilice autorización descentralizada favorecería la autenticidad y la modularidad del MSA, pero perjudicaría su capacidad de prueba y la utilización de recursos. Tomar decisiones informadas sobre la refactorización requiere evaluar las ventajas y desventajas de los impactos en múltiples atributos de calidad afectados. Esta tesis también aboga por un análisis de las ventajas y desventajas para determinar si se debe mantener una vulnerabilidad de seguridad en un microservicio o aplicar una refactorización, en función de sus impactos positivos y negativos en atributos de calidad específicos y la solidez del diseño. El método propuesto implementa y respalda este análisis de compensación mediante gráficos de interdependencia de objetivos blandos (SIG), un formalismo visual que, en nuestro caso, permite una visión holística de los impactos positivos y negativos de los problemas de seguridad y las refactorizaciones de microservicios en los atributos de calidad del software y la solidez del diseño. Además, analizamos sistemáticamente los posibles impactos de los problemas de seguridad y las refactorizaciones en la mantenibilidad de las aplicaciones, la eficiencia del rendimiento y la adhesión a los principios clave de diseño de los microservicios, los cuales fueron validados mediante una encuesta en línea dirigida a profesionales e investigadores con experiencia. Dado que múltiples instancias de problemas de seguridad pueden afectar a múltiples servicios en una arquitectura de microservicios (MSA), los arquitectos no solo deben encontrar compensaciones para cada instancia, sino también decidir cuáles resolver primero. De hecho, algunas instancias de problemas pueden ser más urgentes que otras, ya que afectan a servicios que implementan funcionalidades centrales o atributos de calidad críticos para el funcionamiento eficaz del servicio. Dado el número de servicios que conforman un MSA, sus requisitos de calidad y los múltiples impactos de las vulnerabilidades de seguridad en los atributos de calidad, resulta inherentemente complejo y costoso determinar qué instancias de vulnerabilidades de seguridad deben resolverse primero, al ser las más urgentes. Teniendo en cuenta lo anterior, esta tesis propone un método de triaje para asociar sistemáticamente las vulnerabilidades de seguridad con "códigos de urgencia", similar al que utilizan los enfermeros de triaje con los pacientes que ingresan a la sala de urgencias de un hospital y describen sus síntomas. El método propuesto permite asignar a cada vulnerabilidad de seguridad (es decir, una vulnerabilidad que afecta a un servicio en un MSA) un código de urgencia, que se calcula combinando (i) la relevancia del servicio para el negocio y (ii) la importancia de los atributos de calidad del servicio afectados por la vulnerabilidad. El método sistematiza este proceso asignando vulnerabilidades a códigos de urgencia, que los profesionales pueden utilizar para decidir qué vulnerabilidades resolver primero (presumiblemente, las de mayor urgencia). La aplicabilidad práctica del método de triage propuesto se ilustra con un caso de uso basado en un sistema MSA de terceros, y su utilidad se evalúa mediante un experimento controlado con 26 profesionales. Nuestros resultados sugieren que el método de triage propuesto facilita el proceso y genera códigos de urgencia en los que los profesionales tienen mayor confianza.
