Please use this identifier to cite or link to this item: http://hdl.handle.net/10316/24333
Title: Software Vulnerability Detection in Service-Based Infrastructures: Techniques and Tools
Authors: Antunes, Nuno Manuel dos Santos 
Orientador: Vieira, Marco
Keywords: Software services; Service-based infrastructures; Security vulnerabilities; Vulnerability detection; Testing; Security assessment; Benchmarking; Serviços de Software; Infraestruturas baseadas em serviços; Vulnerabilidades de segurança
Issue Date: 20-Mar-2014
Citation: ANTUNES, Nuno Manuel dos Santos - Software vulnerability detection in service-based infrastructures : techniques and tools. Coimbra : [s.n.], 2014. Tese de doutoramento. Disponível na WWW: http://hdl.handle.net/10316/24333
Abstract: Service-based infrastructures consist of several software resources that interact to support (critical) business services of organizations. These resources are packaged as services, which are well-defined, self-contained, standard-based and protocol-independent modules providing business functionalities that are independent from the state or context of other services. These infrastructures typically support the implementation of Service Oriented Architectures (SOAs) and can be supported by different types of services and technologies, although Web Services are usually the implementation of choice. Although software services should behave in a secure manner, they are often deployed with bugs that can be maliciously exploited. In fact, several studies show that, in general, web applications and services present dangerous flaws. Furthermore, the characteristics of service-based environments open the door to security challenges that must be handled properly, including services under the control of multiple providers and the dynamism of interactions and compositions. To prevent security vulnerabilities, developers should apply best coding practices, perform security inspections, execute penetration tests, etc. However, many times, developers focus on the satisfying user’s functional requirements and time-to-market constraints, disregarding security aspects. The problem is that software services are so exposed that hackers will most probably uncover any existing security vulnerability. Under this scenario, automated vulnerability detection techniques and tools play an extremely important role on helping deploying more secure service-based infrastructures, as they provide an easy and low cost way to detect software vulnerabilities. This thesis addresses the problem of automated detection of software vulnerabilities in services and service-based infrastructures. First, the thesis proposes a framework defining the assumptions, the concepts, and the generic approaches that lay the basis for the development of innovative vulnerability detection techniques and tools. In practice, the framework defines a reference service-based infrastructure and proposes generic approaches for designing vulnerability detection tools for web services and for service-based environments. The thesis also presents different techniques and tools to detect software vulnerabilities, designed following the approaches in the proposed framework. These include three new techniques to detect vulnerabilities in individual web services, each one addressing a different testing scenario and based on a different detection approach, namely: improved penetration testing, attack signatures and interface monitoring, and runtime anomaly detection. Built on top of such techniques, it is also proposed an integrated approach for security testing of service-based infrastructures, which is based on continuous monitoring to automatically discover and test the existing services, resources and interactions, coping with the specificities of these dynamic and complex environments. Finally, the thesis proposes a generic approach for designing benchmarks that allow assessing and comparing vulnerability detection tools for service environments. The approach specifies the components and the steps needed to implement concrete benchmarks, while focusing on two key metrics: precision and recall. It has been used to define two benchmarks, one supported by a predefined set of workload services and the other based on a set of services provided by the benchmark user. These benchmarks have been used to run several case studies to assess the vulnerability detection techniques proposed in the thesis, and to compare them to other existing tools, which at the same time allowed validating the benchmarking approach.
As infraestruturas baseadas em serviços consistem em conjuntos de componentes de software que interagem entre si, utilizados de forma a suportar os processos de negócio (críticos) das organizações. Estes componentes, designados como serviços, são módulos bem definidos, auto contidos, baseados em standards e independentes de protocolos, que disponibilizam funcionalidades que são independentes do contexto ou estado de outros serviços. Estas infra-estruturas suportam a implementação de Arquiteturas Orientadas a Serviços (SOAs), e podem usar diferentes tipos de serviços e tecnologias, embora os serviços web sejam a forma de implementação mais comum. Apesar de estes serviços possuírem requisitos de confiabilidade, vários estudos demonstram precisamente o contrário. De facto, estes estudos mostram que muitos dos serviços e aplicações web são disponibilizados com falhas graves que podem ser exploradas de forma maliciosa. Para além disso, as características inerentes aos ambientes baseados em serviços, incluindo serviços sob controlo de vários fornecedores de serviço assim como dinamismo na interação e composição de serviços, abrem a porta a novos desafios de segurança. De forma a evitar vulnerabilidades de segurança, as equipas de desenvolvimento devem aplicar boas práticas de programação, levar a cabo inspeções de segurança, executar testes de penetração, entre outros. No entanto, muitas vezes estas equipas focam nos aspectos funcionais e na apresentação do produto dentro do tempo especificado, desprezando as preocupações de segurança. O problema é que estes serviços estão de tal modo expostos que qualquer brecha existentes acaba, muito provavelmente, por ser descoberta por potenciais atacantes. Nesse sentido, as técnicas e ferramentas de detecção automática de vulnerabilidades são extremamente importantes para facilitar a disponibilização de infraestruturas baseadas em serviços mais seguras, uma vez que proporcionam uma forma fácil e de baixo custo para detectar potenciais vulnerabilidades. Esta tese ataca o problema da detecção automática de vulnerabilidades em serviços e infraestruturas baseadas em serviços. Primeiro, a tese define um enquadramento que inclui os pressupostos, conceitos e abordagens genéricas para o desenvolvimento de técnicas inovadoras para detecção de vulnerabilidades. Na prática, este enquadramento define uma infraestrutura baseada em serviços de referência e propõe abordagens genéricas para desenhar ferramentas de detecção de vulnerabilidades em serviços web e em ambientes baseados em serviços. Para além disso, a tese apresenta diferentes técnicas e ferramentas que permitem detetar vulnerabilidades de software, desenhadas seguindo as abordagens mencionadas acima. Assim, foram desenvolvidas três novas técnicas de detecção de vulnerabilidades em serviços web, cada uma delas baseada numa abordagem diferente e dirigida a um cenário de teste diferente, nomeadamente: testes de penetração, assinaturas de ataques e monitorização de interligações, e por fim detecção de anomalias em tempo de execução. Tirando partido destas técnicas, é ainda proposta uma abordagem integrada para testes de segurança em infraestruturas baseadas em serviços, a qual é baseada em monitorização contínua para descobrir e testar os serviços, recursos e interacções existentes, lidando com as especificidades destes ambientes dinâmicos e complexos. Por fim, esta tese propõe uma abordagem genérica para desenhar testes padronizados que permitam avaliar e comparar ferramentas de detecção de vulnerabilidades para ambientes baseados em serviços. Esta abordagem especifica os componentes e os passos necessários para a implementação de testes concretos, tendo por base duas métricas chave: precisão e recuperação. Esta abordagem foi utilizada para definir dois testes padronizados: um baseado num conjunto pré-definido de serviços e outro baseado em serviços fornecidos pelo utilizador. Estes testes foram aplicados em vários casos de estudos, permitindo desse modo não só avaliar as técnicas de detecção de vulnerabilidades propostas na tese (estabelecendo uma comparação com outras ferramentas disponíveis no mercado), mas também validar a abordagem genérica para desenho de testes padronizados.
Description: Tese de doutoramento em Ciências da Informação e Tecnologia, apresentada ao Departamento de Engenharia Informática da Faculdade de Ciências e Tecnologia da Universidade de Coimbra
URI: http://hdl.handle.net/10316/24333
Rights: openAccess
Appears in Collections:FCTUC Eng.Informática - Teses de Doutoramento

Files in This Item:
File Description SizeFormat
Software Vulnerability Detection.pdf8.18 MBAdobe PDFView/Open
Show full item record

Page view(s)

148
checked on Sep 28, 2020

Download(s) 20

891
checked on Sep 28, 2020

Google ScholarTM

Check


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.