Upload
doliem
View
218
Download
0
Embed Size (px)
Citation preview
Um Mapeamento Sistemático sobre Testes de Penetração
Daniel Dalalana Bertoglio, Avelino Francisco Zorzo
Relatório Técnico: no 084. Setembro de 2015.
PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO SUL FACULDADE DE INFORMÁTICA
PROGRAMA DE PÓS-‐GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
SUMÁRIO
Dentro da área de segurança da informação, as pesquisas envolvendo técnicas para testes de segurança de ambientes corporativos, redes e sistemas tem apresentado grande variedade nas suas contribuições. Dessa forma, a compreensão de como metodologias e ferramentas de testes de segurança tem sido modernizadas e evoluídas, principalmente no âmbito de Testes de Penetração (Pentest), torna-‐se uma tarefa complexa e essencial. O principal objetivo deste trabalho é fornecer um overview sobre a área de Pentest, apresentando seus cenários de aplicação, modelos, metodologias e ferramentas a partir dos trabalhos que foram publicados. Nesse sentido, este trabalho pode ajudar pesquisadores acadêmicos e interessados na área de segurança a entender os aspectos e soluções relacionadas a Pentest. Para isso, um mapeamento sistemático foi realizado com uma coleta inicial de 1019 artigos, representados por 964 artigos distintos que foram avaliados e ao final 50 estudos primários foram selecionados para serem analisados de modo quantitativo e qualitativo. Como resultado, foram classificadas ferramentas e metodologias que são utilizadas no contexto de Pentest, além de relacionar os principais cenários nos quais tais metodologias e ferramentas são aplicadas. Assim, é possível concluir que juntamente a área de segurança da informação como um todo, o tema Pentest tem tomado frente em grande parte das pesquisas, gerando contribuições e trabalhos de maneira significativa. Palavras-‐chave: Testes de Penetração, Mapeamento Sistemático, Testes de Segurança
1. INTRODUÇÃO Os riscos de segurança para empresas, organizações e entidades que trabalham com dados sensíveis, sejam eles públicos ou não, é mais que evidente. Muitas vezes, tais empresas são incapazes de compreender a extensão das estruturas de comunicação complexas de hoje e efetuam pouco ou até nenhum controle sobre elas [1]. Além disso, esse fator de risco é ainda maior quando as aplicações estão voltadas para o contexto web. Riscos que não são controlados potencializam ataques a segurança, que por sua vez implicam em perdas consideráveis. O uso de técnicas para testes de segurança, então, é tarefa essencial para os cuidados referentes a esses riscos [2].
Uma das técnicas conhecidas para isso é o Teste de Penetração (Pentest). Pentest é a tentativa controlada de penetrar um sistema ou rede a fim de detectar vulnerabilidades. Ela emprega as mesmas técnicas que são utilizadas em uma ataque propriamente dito. Essa alternativa permite que sejam tomadas
medidas adequadas para eliminar as vulnerabilidades antes que possam ser exploradas por terceiros não autorizados [3].
O processo de um Pentest se subdivide, normalmente, em atividades como: coleta de informação sobre o sistema alvo; escaneamento do sistema alvo e descoberta dos serviços; identificação de sistemas e aplicações; descoberta de vulnerabilidades e exploração de vulnerabilidades [4]. Para uma empresa, este processo é aplicado visando objetivos variados, como o natural aumento da segurança dos sistemas, identificação de vulnerabilidades, teste da equipe de segurança da empresa alvo e até mesmo o aumento da segurança organizacional e de pessoas.
Ainda nesse sentido, a aplicação do Pentest pode ser classificada em critérios como [3]:
• Base de informações: nível de conhecimento sobre a empresa antes da execução do Pentest.
• Agressividade: nível de aprofundamento do tester, variando entre apenas identificar as vulnerabilidades até a exploração de todas as vulnerabilidades detectadas.
• Escopo: define o escopo do Pentest, se é determinado para um ambiente, abrangente ou limitado.
• Abordagem: trata o método de execução do Pentest quanto a geração de ruído no ambiente.
• Técnica: quais as técnicas e metodologias usadas no Pentest.
A completude de um teste de penetração, enquanto técnica para avaliação de segurança, é robusta o suficiente para fornecer um nível de segurança no mínimo adequado e em um nível de detalhe alto em respeito a fraquezas do alvo. Inerente as atividades e critérios do Pentest, existem ainda as preocupações legais da execução e aplicação de um teste de penetração dentro de uma empresa ou ambiente, aspectos que devem ser levados fortemente em consideração.
Este trabalho apresenta um Mapeamento Sistemático (Systematic Mapping Study -‐ SMS)[5], conduzido para mapear o campo de Pentest, visando encontrar evidências que podem ser usadas para aperfeiçoar as pesquisas da área. Além disso, visa identificar tendências de pesquisa, metodologias, cenários e ferramentas de uso.
Considera-‐se SMS um estudo secundário realizado a fim de encontrar e
agregar evidências disponíveis sobre um tema específico. Portanto, ele fornece uma visão geral de uma área de pesquisa, identifica a quantidade, qualidade, tipo de pesquisa e os resultados disponíveis. A motivação para execução deste SMS é
aprofundar o conhecimento sobre os metodologias, cenários e ferramentas que estão no contexto de Pentest. Dessa forma, este estudo pode servir como base para outros, uma vez que os resultados identificam as respostas relacionadas a estes modelos e ferramentas disponíveis que são utilizados, além dos cenários de execução em questão. Provê também a discussão sobre os desafios da área, relacionando as tendências e identificando lacunas para futuras pesquisas. A principal contribuição é fornecer um overview sobre as pesquisas e trabalhos desenvolvidos sobre o tema de Testes de Penetração.
2. PESQUISAS RELACIONADAS Nos últimos anos, a área de Pentest tomou boa representatividade nas pesquisas aplicadas em Segurança da Informação. Contudo, poucos são os estudos de mapeamento, survey ou com caráter de overview dentro do campo.
Em [6], é apresentado um survey voltado a teste de penetração web, discutindo metodologias e comparando ferramentas de escaneamento de vulnerabilidades, além do levantamento de trabalhos que contém novas propostas de método ou ferramentas direcionados a Pentest. Este trabalho apresenta uma seleção de estudos primários identificados a partir de três visões: artigos que comparam métodos e ferramentas existentes, artigos que propõem um novo método ou ferramenta e estudos que propõem ambientes de teste para o processo. Inicialmente a pesquisa apresenta um comparativo de 13 ferramentas de escaneamento, com licença Open-‐source, avaliando os critérios referentes a estrutura (interface gráfica, configuração, usabilidade, estabilidade e performance) e a funcionalidades (spider, manual crawl, análise de arquivo, logging e relatório). Uma comparação em relação aos mesmo critérios é efetuada também com 7 ferramentas de escaneamento com licença comercial, avaliando conceitualmente a aplicação das mesmas. Em geral, os autores nortearam suas contribuições principais em torno da relação entre o funcionamento das ferramentas de descoberta de vulnerabilidades e seus cenários de aplicação, ambientes alvo, limitações e completude.
Já em [7], de forma mais abrangente, a pesquisa é direcionada para a discussão sobre as técnicas de teste de segurança existentes. O artigo disserta sobre Pentest considerando as seguintes outras técnicas de teste de segurança: Fuzz Testing, Binary Code Analyses e Vulnerability Scanning. Conceitualmente o autor trata Pentest como Ethical Hacking e ressalta a divisão dos tipos de Pentest entre black-‐box, white-‐box e gray-‐box.
Em [8], o artigo trata as minúcias em testes de penetração, discutindo sobre a interpretação correta dos resultados de um Pentest e reiterando a
necessidade de análises detalhadas acerca das atividades que o compõem. Da mesma forma de pesquisa teórica, [9] apresenta as principais abordagens e opiniões sobre Pentest em um artigo que representa grande parte das citações atuais de pesquisas da área em virtude da sua consolidação.
3. PLANEJAMENTO DO SMS Em particular, a ideia de realizar um mapeamento sistemático é estruturada com o intuito de identificar e investigar uma determinada área de pesquisa, neste caso, direcionada a Testes de Penetração. Em contraponto ao método de Revisão Sistemática [10], que além da identificação visa também analisar, avaliar e interpretar todas as pesquisas disponíveis para uma questão determinada, o Mapeamento Sistemático fornece uma abordagem mais abrangente e concisa em relação aos estudos primários existentes para o tema investigado.
Para tal objetivo, este SMS segue o processo proposto por Petersen et al. [5], conforme ilustrado na Figura 1.
Figura 1. Processo do mapeamento sistemático [5].
O processo demonstrado na Figura 1 é dividido em três grandes fases que
contém subatividades: Planejamento (Planning), Condução (Conduction) e Apresentação (Reporting). O Planejamento do Mapeamento Sistemático é descrito nesta seção enquanto a Condução é apresentada na seção 4 e os resultados são discutidos na seção 5. As atividades dentro de cada fase do processo resultam em um artefato, totalizando assim dois artefatos por fase. 3.1. Escopo e Objetivo Neste SMS, o foco está em identificar as principais contribuições em relação a Testes de Penetração e prover um overview sobre modelos, metodologias e ferramentas utilizadas neste campo de estudo. Deste modo, esta pesquisa destina-‐se em fornecer o embasamento necessário, de forma abrangente, sobre o processo de Pentest e sua estrutura em geral. Os resultados podem permitir uma
A SYSTEMATIC MAPPING STUDY ON MODEL-BASED TESTING 5
Software Engineering. Therefore, our process is divided in three phases (see Figure 1): Planning,
Conduction and Reporting. The SMS planning is described in this section, the study conduction is
presented in Section 4 and the SMS results are discussed in the Section 5. It is important to notice
that each phase has two activities and each activity in turn results in an artifact. As shown in Figure 1
the final artifact of the process is the systematic map.
Planning Conduction Reporting
Protocol Review Scope All Retrieved Papers
Relevant PapersClassification
Scheme Systematic Map
Legend:Activity ArtifactPhase
Definition of Research Question
Definition of the Protocol Conduct Research Screening of Papers Keyworking
Relevant TopicsData Extraction and
Mapping
Figure 1. Systematic Mapping Studies Process [5]
3.1. Scope and Objective
In this SMS, we focus on identifying the main contributions to the MBT field and to provide an
overview about the processes, models and tools from several works that were produced from January
2006 to December 2013 (inclusive). Therefore, this SMS is intended to provide a broad overview
on MBT works, presenting the main tools used to support MBT, in which domains MBT is applied
and what are the models or notations used. These results can provide a comprehensive overview to
researchers, test engineers and test analysts about MBT, its process, supporting tools, and modeling
notations.
3.2. Question Structure
We structure our research question based on PICO [13] (Population, Intervention, Comparison,
Outcome) criteria:
• Population: Published research papers on Software.
• Intervention: Model-Based Testing.
• Comparison: Not applied.
• Outcome: The expected results are the Approaches in which MBT is applied to from 2006 to
2013.
c� 2014 The Institution of Engineering and Technology IET Software (2014)
Prepared using iet.cls DOI: 10.1049/iet-sen.2014.0000/IET
análise e visão compreensivas para pesquisadores, analistas de segurança e demais profissionais correlacionados através da discussão sobre tais modelos, metodologias e ferramentas. 3.2. Estrutura da Questão A questão de pesquisa deste SMS é estruturada baseada nos critérios PICO [10] (Population, Intervation, Comparison, Outcome):
• População (Population): artigos de pesquisa publicados em Segurança da Informação.
• Intervenção (Intervention): Testes de Penetração. • Controle (Comparison): Não aplicado. • Resultados (Outcome): Tipo e quantidade de evidências relativas a
abordagens de Testes de Penetração, a fim de identificar as ferramentas, modelos, metodologias, cenários e principais desafios da área.
3.3. Questões de Pesquisa Foram definidas as seguintes questões de pesquisa: RQ1. Quais são as principais ferramentas utilizadas em Pentest? RQ2. Quais os cenários de execução de Pentest? RQ3. Quais os modelos para ferramentas de Pentest? RQ4. Quais os principais desafios em Pentest? 3.4. Processo de Pesquisa 3.4.1. Bases de Dados. Para executar a pesquisa foram selecionadas as bases de dados que (1) contém uma engine de busca na web; (2) contém um mecanismo de busca habilitado a usar palavras-‐chave; e, (3) contém artigos da Ciência da Computação. A seleção inclui ACM Digital Library, IEEE Xplore, SCOPUS e Springer Link*. 3.4.2. Termos e Sinônimos. Foram utilizadas as questões estruturadas (ilustrada na Tabela I) para a construção das strings de busca.
* dl.acm.org;ieeexplore.ieee.org; scopus.com; link.springer.com
Tabela I. Definição das Strings de Busca Estrutura Termos Sinônimos
População Security Information
Intervenção Penetration Test Pentest
Penetration Testing
Pentesting
Resultados Tool Tools
Software
Suite
Model Process
Methodology
Standard
Framework
Environment Context
Challenges Open reserch topics
Open problems 3.4.3. String. Foi utilizado o operador booleano "OR" para selecionar alternadamente palavras e sinônimos, e o operador booleano "AND" para selecionar os termos para população, intervenção e resultados (descrito na Figura 2).
3.5. Critérios de Inclusão e Exclusão Uma das atividades essenciais durante o planejamento do SMS é a definição dos Critérios de Inclusão (IC) e dos Critérios de Exclusão (EC). Tais critérios são responsáveis por apoiar a seleção dos artigos apropriados e são empregados para reduzir o número de artigos que retornam das engines de busca. Por
(("penetration test" OR "penetration testing" OR "pentest") AND (tool OR tools OR software OR suite) AND (model OR process OR framework OR methodology OR standard) AND (environment OR context) AND ("open research topics" OR challenges OR "open problems"))
Figura 2. String de busca
exemplo, se um artigo é classificado em apenas um IC, será incluído como um estudo primário e se o artigo é associado com apenas um EC, será excluído. Neste SMS os critérios de inclusão e exclusão foram definidos como:
• IC1. O estudo principal discute sobre uma ou mais ferramentas dentro do processo de Pentests;
• IC2. O estudo principal propõe um modelo/processo/framework/metodologia de Pentest;
• EC1. O estudo principal não está relacionado diretamente a Pentests; • EC2. O estudo apresenta algum
modelo/processo/framework/metodologia de Pentest, mas não fornece informações suficientes sobre seu uso.
• EC3. O estudo não contém algum tipo de avaliação para a demonstração de resultados, tais como: estudo de caso, experimentos ou exemplos de utilização.
3.6. Critérios de Avaliação de Qualidade A proposta dos critérios de qualidade (QA) é garantir a avaliação adequada dos estudos, como uma forma de mensurar a relevância de cada um deles. Os critérios de qualidades definidos são: QA1. O estudo apresenta uma contribuição ao tema de Pentests? QA2. Existe algum tipo de avaliação com análise/discussão em cima do uso dos modelos ou ferramentas de Pentest? QA3. O estudo descreve as ferramentas ou modelos utilizados?
Para cada uma das questões dos critérios de qualidade é utilizado o seguinte score: Y (sim) = 1; P (parcialmente) = 0.5, N (não) = 0. Assim, o score total (soma das três questões) pode resultar em: 0 ou 0.5 (limitado), 1 (regular), 1.5 (bom), 2 (muito bom) e 2.5 ou 3 (excelente).
Baseado nisso, a classificação tem como aspectos de avaliação: QA1. Y: a contribuição está explicitamente definida no estudo; P: a contribuição está implícita; N: a contribuição não pode ser identificada e não está claramente estabelecida; QA2. Y: o estudo tem explicitamente uma avaliação aplicada (por exemplo, um estudo de caso, um experimento, ou outro); P: a avaliação é um pequeno exemplo; N: nenhuma avaliação foi apresentada;
QA3. Y: as ferramentas ou modelos são claramente especificados; P: as ferramentas ou modelos são ligeiramente especificados; N: ferramentas ou modelos não podem ser identificados; 3.7. Processo de Seleção O processo de seleção é dividido em seis etapas, conforme demonstrado na Figura 3: Passo 1. Busca nas bases de dados. Inicialmente as strings de busca são geradas através das palavras-‐chave e seus sinônimos. Nesse sentido, a primeira seleção se dá baseadas nos critérios de inclusão e exclusão citados na seção 3.5. Passo 2. Eliminação de redundâncias. Como os resultados provêm de engines de buscas diferentes, aqueles estudos que são redundantes são eliminados e armazenados. Passo 3. Seleção intermediária. O título e o resumo de cada estudo retornado são lidos (quando necessário também são lidos introdução e conclusão). Passo 4. Seleção final. Nesta etapa todos os estudos são lidos de forma completa, e os mesmos critérios da etapa intermediária são aplicados. Passo 5. Eliminação de divergências. Em caso de conflitos ou dúvidas sobre os estudos, um terceiro especialista em Pentest lê os estudos e discute a inclusão do mesmo na seleção final; Passo 6. Avaliação da qualidade. Baseado nos critérios de qualidade citados anteriormente, a qualidade dos estudos lidos na etapa de seleção final é avaliada.
Figura 3. Processo de seleção dos estudos. 3.8. Estratégia de Extração dos Dados A extração de dados é projetada para coletar todas as informações necessárias para abordar as questões de pesquisa e os critérios de qualidade. Tais informações envolvem:
« Database: ACM, IEEE, Scopus and SpringerLink « Source: full reference conference, book, journal name « Title « Abstract « Authors « Year « Publication Type: Book Chapter, Conference, Journal, Symposium or Other « Document Type: Article, Collection, Proceeding, Periodical, Technical Report « Research Type: Empirical Study, Experimental Study, Industrial Experience, Proof
of Concepts, Opinion Papers or Theoretical « Contribution Type: Approach, Framework, Method, Methodology, Model,
Technique, Strategy or Tool « Tools: tools created or used in Pentest « Scenarios: scenarios that applying the Pentest process. « Models: models used in the Pentest process
3.9 Análise dos Dados Os dados foram tabulados da seguinte maneira:
• Identificar as ferramentas utilizadas em Pentest e suas características
(RQ1);
• Mapear os principais domínios de aplicação de Pentest (RQ2);
• Enumerar os estudos selecionados por modelos ou especificações (RQ3);
• Agregar os estudos primários selecionados pelo processo de Pentest, tipo de pesquisa e tipo de contribuição (RQ4).
4. CONDUÇÃO A condução deste SMS descreve sua realização no processo de busca baseado na string previamente definida. Tal condução foi iniciada em abril de 2015 e persistiu até maio de 2015, retornando 1019 artigos no total. Nesta seção são ainda apresentados os detalhes das etapas "Busca nas bases de dados" e "Avaliação da qualidade". 4.1. Busca nas bases de dados Os 1019 estudos retornados foram obtidos a partir da submissão da string de busca para as quatros bases de dados anteriormente citadas. Com a remoção dos 55 artigos duplicados, foram lidos o título e resumo de 964 artigos e selecionados 65 que tinham qualquer relação com algum critério de inclusão. Durante a quarta etapa todos os 65 artigos foram lidos e 3 foram descartados por não representarem correlação direta as contribuições. Dos 62 restantes, 12 foram descartados depois da avaliação de qualidade (passo 6). A Tabela II apresenta o total de estudos primários resultantes de cada base de dados, o número de estudos não duplicados, o número de estudos selecionados, a taxa de precisão e o índice de precisão. Tabela II. Engines de busca, estudos recuperados, não duplicados e selecionados Database Recuperados Não Duplic. Selecionados Taxa Prec. Índice Prec.
ACM DL 140 137 8 0.0571 0.1600 IEEE Xplore 500 492 32 0.0640 0.6400 SCOPUS 121 83 3 0.0247 0.0600 Springer Link 258 252 7 0.0271 0.1400 Total 1019 964 50
4.2. Avaliação da qualidade Os critérios de inclusão/exclusão citados anteriormente fornecem a base para a discussão sobre os critérios de avaliação de qualidade que são aplicados. Tais critérios tem como objetivo avaliar a confiabilidade dos estudos primários. A Tabela III apresenta a informação sobre os scores de qualidade dos estudos. Cada estudo é identificado por uma coluna ID e sua referência é apresentada na coluna Referência, assim como o ano de publicação. na coluna Ano. As colunas 1, 2 e 3 mostram os scores obtidos no Quality Assessment (QA). A coluna Sc mostra o score final para cada estudo enquanto a coluna Des descreve a classificação do estudo baseado no score. Como resultado final, é possível verificar que os estudos selecionados foram aqueles que obtiveram score mínimo de 1.5 pontos.
Tabela III. Scores dos estudos selecionados.
Legenda – Y: Sim, N: Não, P: Parcialmente, Sc: Score, Des: Descrição, G: Bom, V: Muito Bom, E: Excelente.
Estudos QA Qualidade Estudos QA Qualidade ID Referência Ano 1 2 3 Sc Des ID Referência Ano 1 2 3 Sc Des 01 [11] Austin 2013 Y Y Y 3.0 E 26 [36] Somorvsky 2012 Y Y Y 3.0 E
02 [12] Hsu 2008 P P P 1.5 G 27 [37] Garn 2014 Y Y Y 1.5 G 03 [13] Holm 2011 P Y N 1.5 G 28 [38] Line 2008 Y P P 2.0 V 04 [14] Sklavos 2012 Y P Y 2.5 E 29 [39] Mainka 2012 Y P Y 2.5 E 05 [15] Sarraute 2011 Y Y Y 3.0 E 30 [9] Geer 2002 Y Y Y 3.0 E 06 [16] Khoury 2011 P Y N 1.5 G 31 [40] Traore 2011 Y P N 1.5 G 07 [17] Antunes 2015 Y Y N 2.0 V 32 [41] Benkhelifa 2013 P P P 1.5 G 08 [18] Xu 2012 P P Y 2.0 V 33 [42] Salas 2014 Y Y Y 3.0 E 09 [19] Shen 2011 Y P Y 2.5 E 34 [43] Büchler 2012 Y Y Y 3.0 E 10 [20] Mendes 2011 P Y P 2.0 V 35 [44] Sandouka 2009 Y P P 2.0 V 11 [21] Fong 2008 Y Y P 2.5 E 36 [45] Liu 2012 Y Y Y 3.0 E 12 [22] Williams 2012 Y Y P 2.5 E 37 [46] Masood 2011 Y P Y 2.5 E 13 [23] Bou-‐harb 2014 P Y Y 2.5 E 38 [47] Igure 2008 Y Y P 2.5 E 14 [24] Kasinathan 2013 P P P 1.5 G 39 [48] Khoury 2011 Y P N 1.5 G 15 [25] Xing 2010 Y P Y 2.5 E 40 [49] Leibolt 2010 P P P 1.5 G 16 [26] Antunes 2009 Y Y P 2.5 E 41 [50] Fonseca 2010 Y P P 2.0 V 17 [27] Holik 2014 Y Y Y 3.0 E 42 [51] Jajodia 2005 P P Y 3.0 E 18 [28] Avramescu 2013 Y Y Y 3.0 E 43 [52] Blackwell 2014 Y Y Y 3.0 E 19 [29] Ridgewell 2013 P P P 1.5 G 44 [53] Prandini 2010 Y Y Y 3.0 E 20 [30] Walden 2008 P Y P 2.0 V 45 [54] Dimkov 2010 Y Y Y 2.0 V 21 [31] Mink 2006 P P P 1.5 G 46 [55] Stepien 2012 Y P Y 2.5 E 22 [32] Tondel 2008 P Y P 2.0 V 47 [56] Badawy 2013 P P P 1.5 G 23 [33] Armando 2010 Y P P 2.0 V 48 [57] Curphey 2006 P P P 1.5 G 24 [34] Dahl 2006 Y Y Y 3.0 E 49 [58] Huang 2005 P P P 1.5 G 25 [35] Mclaughlin 2010 Y Y Y 3.0 E 50 [59] Doupé 2010 P Y P 2.0 V
5. ANÁLISE DOS RESULTADOS 5.1 Esquemas de classificação De acordo com o processo do mapeamento sistemático, os modelos de classificação são obtidos através da atividade “Keywording Relevant Topics”. Tal atividade foi executada em dois passos: primeiramente leitura dos resumos (introdução e conclusão, quando necessário) e identificação de palavras-‐chave (keywords), conceitos e contexto da pesquisa que implica na contribuição dos artigos, e depois análise e combinação das palavras-‐chave para um entendimento mais detalhado para os diferentes artigos. Este segundo passo auxilia a definição de determinados aspectos para o processo do mapeamento, onde a partir desta atividade em questão foi possível delimitar as seguintes facetas: I) cenários de aplicação de Pentest, por exemplo, aplicações web, rede e protocolos de comunicação, bases de dados, e outros; II) tipo de pesquisa, por exemplo, empirical study, experimental study, industrial experience, opinion papers, proof of concept e theoretical; III) tipo de contribuição, por exemplo, ferramenta, framework, modelo, metodologia, estratégia, técnica ou abordagem; IV) modelos de Pentest e suas variações, por exemplo, OSSTMM, Owasp Testing Guide, ISSAF, entre outros. A Tabela IV descreve os tipos de pesquisa e suas descrições detalhadas, os demais itens são auto explicativos.
Tabela IV. Tipos de Pesquisa [5].
Category Description Experimental Study Techniques investigated are novel and have not yet been implemented
in practice. Techniques used are, for example, experiments, i.e., work done in the lab.
Empirical Study Techniques are implemented in practice and an evaluation of the technique is conducted. That means, it is shown how the technique is implemented in practice (solution implementation) and what are the consequences of the implementation in terms of benefits and drawbacks (implementation evaluation). This also includes to identify problems in industry.
Industrial Experience Experience papers explain on what and how something has been done in practice. It has to be the personal experience of the author.
Opinion Papers These papers express the personal opinion of somebody whether a certain technique is good or bad, or how things should been done. They do not rely on related work and research methodologies.
Proof of Concept A solution for a problem is proposed, the solution can be either novel or a significant extension of an existing technique. The potential benefits and the applicability of the solution is shown by a small example or a good line of argumentation.
Theoretical These papers sketch a new way of looking at existing aspects by structuring the field in form of a taxonomy or conceptual framework.
5.2 Mapeamento Nesta seção é realizada uma avaliação qualitativa da literatura em relação as questões de pesquisas apresentadas anteriormente. A Figura 4 apresenta um gráfico de bolha com a distribuição dos cenários de aplicação em relação ao seu ano de publicação, onde o tamanho da bolha descreve o número de estudos relacionados em cada intersecção dos eixos.
Figura 4. Bubble Plot da Distribuição dos Estudos por Cenário e por Ano.
Dos artigos analisados, percebe-‐se que a distribuição por ano ressalta o
quanto o tema de pesquisa é relativamente recente, uma vez que não foram determinados filtros em relação ao ano de publicação no processo de busca. Apenas um estudo apresenta uma diferença de mais de dez anos em relação a busca realizada, e o mesmo não foi descartado em virtude de ser caracterizado como um referencial primordial para este SMS. Além disso, os estudos com o contexto de aplicação de Pentests direcionados ao cenário de sistemas web podem ser identificados como emergentes e de relevância exponencial no âmbito da área.
Dessa forma, é igualmente possível verificar que grande parte dos
cenários de aplicação de Pentest tem uma distribuição direcionada principalmente a aplicações web e a ambientes de rede. A análise da Figura 4 está relacionada a questão de pesquisa RQ2, onde os domínios de aplicação de Pentest são alvo da mesma. Ainda neste sentido, tais cenários discutidos nos artigos selecionados descrevem e citam uma série de ferramentas que são
utilizadas diferentemente de acordo com cada contexto. Dessa forma, os experimentos/discussões que são relatados nos artigos, descrevendo ou não as ferramentas em questão, são variados principalmente em virtude do cenário de aplicação. A Figura 5, por sua vez, apresenta a relação do cenário com o tipo de contribuição e o tipo da pesquisa.
Figura 5. Bubble Plot da Distribuição dos Cenários por Tipo de Pesquisa e Contribuição.
A Figura 5 ilustra a relação dos tipos de pesquisa em contraponto ao tipo de contribuição para cada cenário de aplicação de Pentests. Duas análises são essenciais baseado em tal ilustração:
• Discussão em torno de metodologias para Pentest: 14 dos estudos
primários selecionados e analisados detém sua contribuição em torno de metodologias. Essa reflexão incita as discussões em torno da amplitude das metodologias existentes para a aplicação dos Pentests, principalmente a respeito do nível de profundidade e alvo das mesmas, uma vez que para determinados cenários torna-‐se interessante utilizar um modelo mais direcionado para cada processo de teste de segurança.
• Distribuição dos tipos de pesquisa: 34 estudos (68% do total) analisados são caracterizados como estudos empíricos. Essa característica, em geral, pode ser justificada em virtude da grande área na qual se encontra o tema de Testes de Penetração. Grande parte das pesquisas em Segurança da Informação, de um ponto de vista abrangente, tem seu direcionamento a este tipo de pesquisa.
6. AMEAÇAS A VALIDADE
As principais ameaças identificadas que podem comprometer a validade do SMS em Pentest são: Publication bias: refere-‐se possibilidade de alguns artigos não serem selecionados ou publicados porque os resultados da pesquisa ainda não fornecerem o resultado desejado, resultados de cunho confidencial, ou porque a pesquisa foi realizada em tópicos que não se encaixam nas conferências e revistas da área. Primary studies selection bias: em geral não se pode garantir que todos os estudos primários relevantes foram retornados durante o processo de pesquisa e durante a avaliação dos mesmos. Nesse sentido os critérios de qualidade estabelecidos, bem como a atribuição dos scores, visa mitigar tal ameaça. Unfamiliarity with other fields: a string de busca foi definida baseada na experiência e conhecimento dos autores, mas é necessário considerar que pode-‐se não ter completamente evitado a possibilidade de que alguns termos definidos na string de busca tenham sinônimos que não foram identificados.
7. DISCUSSÃO Nesta seção são apresentadas e discutidas as respostas das questões de pesquisa. 7.1. RQ1. Quais são as principais ferramentas utilizadas em Pentest? Depois da análise dos artigos selecionados, foram identificadas 72 ferramentas utilizadas em Pentest citadas ao longo dos estudos. Dentre as 72, 12 (doze) são categorizadas como ferramentas utilizadas para Static Analysis, que é uma técnica para análise de segurança tal como Pentest. Estas ferramentas, por sua vez, são contabilizadas em virtude da sua utilidade quanto a análise e identificação de vulnerabilidades em código, tarefa importante dentro do processo de Pentest.
Das outras 60 ferramentas identificadas, é possível perceber que a maioria tem seu foco de utilização para a tarefa de escaneamento de vulnerabilidades, tratando-‐se então de ferramentas utilizadas nas etapas iniciais de um Pentest. Ainda é possível ressaltar que ferramentas de monitoramento de tráfego e do processo de invasão fazem parte também de uma relevante parcela
dos estudos analisados, mesmo que em um proporção menor em relação aquelas destinadas a descoberta de vulnerabilidades.
Ao longo dos artigos analisados, 13 (treze) ferramentas são amplamente citadas, e por essa razão são tratadas de uma forma diferencial das demais. A Tabela V descreve as principais ferramentas utilizadas em Pentest, relacionando para cada ferramenta seu fabricante e descrição (uso e objetivo).
Tabela V. Principais ferramentas utilizadas em Pentest.
Ferramenta Fabricante Descrição
Acunetix WVS Acunetix Tool that automatically checks web applications for vulnerabilities such as SQL Injections, cross site scripting, arbitrary file creation/deletion, and weak password strength on authentication pages.
Burp Suite Portswigger An integrated platform for performing security testing of web applications. Its various tools work seamlessly together to support the entire testing process, from initial mapping and analysis of an application's attack surface, through to finding and exploiting security vulnerabilities.
WebInspect HP An automated and configurable web application security and penetration testing tool that mimics real-‐world hacking techniques and attacks, enabling your customers to thoroughly analyse complex web applications and services for security vulnerabilities.
AppScan IBM A tool that enhances web application security and mobile application security, improves application security program management and strengthens regulatory compliance. By scanning your web and mobile applications prior to deployment, AppScan enables you to identify security vulnerabilities and generate reports and fix recommendations.
Metasploit Rapid7 A tool for developing and executing exploit code against a remote target
machine. Other important sub-‐projects include the Opcode Database, shellcode archive and related research.
Nessus Tenable Nessus is a remote security scanning tool, which scans a computer and raises an alert if it discovers any vulnerabilities that malicious hackers could use to gain access to any computer you have connected to a network.
NeXpose Rapid7 A vulnerability scanner which aims to support the entire vulnerability management lifecycle, including discovery, detection, verification, risk classification, impact analysis, reporting and mitigation.
Nikto CIRT An Open Source (GPL) web server scanner which performs comprehensive tests against web servers for multiple items, including over 6400 potentially dangerous files/CGIs, checks for outdated versions of over 1200 servers, and version specific problems on over 270 servers.
Nmap -‐ A security scanner used to discover hosts and services on a computer network, thus creating a "map" of the network. To accomplish its goal, Nmap sends specially crafted packets to the target host and then analyzes the responses.
Paros -‐ A Java-‐based web proxy for assessing web application vulnerability. It supports editing/viewing HTTP/HTTPS messages on-‐the-‐fly to change items such as cookies and form fields.
QualysGuard Qualys A popular SaaS (software as a service) vulnerability management offering. It's web-‐based UI offers network discovery and mapping, asset prioritization, vulnerability assessment reporting and remediation tracking according to business risk.
WebScarab OWASP A web security application testing tool. It
serves as a proxy that intercepts and allows people to alter web browser web requests (both HTTP and HTTPS) and web server replies. WebScarab also may record traffic for further review.
Wireshark Wireshark A open source multi-‐platform network protocol analyzer. It allows you to examine data from a live network or from a capture file on disk. You can interactively browse the capture data, delving down into just the level of packet detail you need.
É necessário indicar que as informações detalhadas sobre as ferramentas identificadas não estão presentes na maioria dos artigos. Os estudos avaliados basicamente apresentam as contribuições relevantes e avaliações do uso de cada ferramenta dentro de contextos específicos juntamente ao processo de Pentest. Dessa forma, nós tivemos que procurar as características e documentação das ferramentas diretamente nos websites ou repositórios referentes, com o intuito de listar as características principais. 7.2. RQ2. Quais os cenários de execução de Pentest? Os resultados SMS mostram que o processo de Pentest é aplicado em diversos cenários específicos, que por sua vez podem ser brevemente generalizados para determinados contextos. Tais cenários, presentes nos estudos analisados, correspondem a: web-‐based applications and systems [11][16][18][21][28][30][33][37][42][45][46][49][53][56][57][58][59], web services [17][20][26][39][41], network protocols and devices [12][14][15][19][23][24][25][35][9][48][51], software and desktop applications [13][27][32][44], network game devices[29], SAML frameworks[36], physical penetration[54], operating system[55] and process control system[38]. A Figura 4 mostra que os diferentes cenários de execução de pentest apresentam certa diversidade em relação ao número de estudos referentes, uma vez que web-‐based applications e systems e network protocols and devices detém a maior parte do direcionamento das pesquisas. 7.3. RQ3. Quais os modelos para ferramentas de Pentest? Assim como os cenários de execução de Pentest, os modelos apresentam certa diversidade nos estudos analisados. No que se refere a modelos de teste de segurança, os resultados obtidos permitem uma análise dividida em metodologias e categorias dos modelos de testes de segurança.
As categorias descrevem, com base na taxonomia do processo de teste, como é a base de informações possuída para a execução do mesmo. O modelo dos testes é categorizado então em white-‐box, gray-‐box e black-‐box. White-‐box descreve o modelo de teste no qual o tester detém o completo conhecimento sobre a infraestrutura a ser testada, como discutido em [34] e [45]. Black-‐box, em contraponto, assume que não há nenhum conhecimento a priori sobre o ambiente o qual se quer aplicar o teste. Nota-‐se que a maioria dos trabalhos, principalmente em torno de ferramentas de descoberta de vulnerabilidade, executam testes do tipo black-‐box, como em [17], [48] e [59], por exemplo. Já os testes que são do tipo gray-‐box representam o meio termo entre os categorizados anteriormente, onde a quantidade de informações a respeito do alvo não são totais mas também não são inexistentes. Entre os artigos analisados, [28] traz um exemplo de aplicação de teste gray-‐box.
Essa categorização implica diretamente no processo de Pentest, independente da metodologia a qual será utilizada. Nas pesquisas analisadas detalhadamente, foi possível identificar claramente as indicações e citações as seguintes metodologias, frameworks e modelos de teste de segurança: OSSTMM (Open Source Security Testing Methodology Manual) [22][27][45][53][54], ISSAF (Information Systems Security Assessment Framework) [53], PTES (Penetration Testing Execution Standard) [45], NIST (National Institute of Standards and Technology) Guidelines [53] e OWASP Testing Guide [22][27][45]. No que diz respeito a classificação mais abrangente dos modelos, [1] define três abordagens para pentesting: Exploratory Manual Pentest, Automated Pentest e Systematic Manual Pentest. 7.3.1. OSSTMM
OSSTMM [60] é a metodologia que detém um padrão internacional para testes de segurança, mantida pela ISECOM (Institute for Security and Open Methodologies). Suas definições são consituídas a partir do escopo, que representa todo o ambiente de segurança operacional possível para qualquer interação com qualquer ativo. Este escopo é composto por três classes: COMSEC (Communications Security Channel), PHYSSEC (Physical Security Channel) e SPECSEC (Spectrum Security Channel). Essas classes são divididas em cinco canais antes de serem usados pelo tester:
• Humano. Trata todos os elementos humanos de comunicação onde a
interação pode ser tanto física como psicológica. • Físico. Lida com todos elementos tangíveis de segurança de natureza
física ou não-‐eletrônica. Trata os elementos onde a interação requer esforços físicos ou uma energia de transmissão para manipular.
• Wireless. Trata todas as comunicações eletrônicas, sinais e frequências que tem um espectro eletromagnético conhecido.
• Telecomunicações. Compreende todas as redes de telecomunicações, digitais ou analógicas, onde as interações ocorrem através das linhas de rede telefônicas.
• Redes de dados. Representa todos sistemas eletrônicos e redes de dados onde as interações ocorrem através de cabos estabelecidos e linhas de rede com fio.
Dentro desses canais são descritos dezessete módulos para suas análises. Esses módulos, por sua vez, são divididos em quatro fases: fase Regulatória, fase de Definições, fase de Informações e fase de Teste de Controles Interativos. A fase Regulatória envolve os módulos de Revisão de Estado, Logística e Verificação de Detecção Ativa e representa a direção a ser tomada, o background que o tester deve ter antes de realizar a auditoria, os requisitos de auditoria, o escopo e suas restrições. Já a fase de Definição é a principal em todo o processo, pois é responsável pela definição do escopo do teste. Na maioria das vezes, definir o escopo é uma tarefa complexa já que não é evidente o que o tester precisa procurar, quais as consequências em encontrar erros e que tipo de testes ele deve executar (quais são obrigatórios e quais são opcionais). A composição desta fase é constituída pelos módulos Visibilidade de Auditoria, Verificação de Acesso, Verificação de Confiança e Verificação de Controles. A fase de Informação é a fase responsável por organizar o processo de coleta de informações, sendo composta pelos módulos de Verificação do Processo, Verificação de Configuração, Validação de Propriedade, Revisão da Segregação, Verificação da Exposição e Inteligência Competitiva. Por fim, a fase de Teste de Controles Interativos descreve os testes práticos reais realizados sobre as informações coletadas. Essa fase é composta pelos módulos Verificação de Quarentena, Auditoria de Privilégios, Validação de Sobrevivência, Alerta e Revisão de Logs.
Existem diferentes formas que um teste de segurança pode ser classificado considerando a metodologia OSSTMM, divididas em seis padrões de tipos (conforme ilustrado na Figura 6):
Figura 6. Tipos de teste de segurança [60].
• Blind: o teste é feito sem nenhum conhecimento prévio do alvo sobre
suas defesas, ativos ou canais. O alvo é preparado para a auditoria, cujo objetivo principal pode ser considerado como o teste das habilidades do analista. Por esta razão, em um teste do tipo Blind, a amplitude e a profundidade estão relacionadas ao conhecimento do analista. Nas classes COMSEC e SPECSEC, este teste pode ser chamado de Ethical Hacking, enquanto na classe PHYSSEC, esse comportamento é categorizado como War Gaming.
• Double blind: similar ao teste Blind, o Double Blind descreve um teste onde além do tester não ter nenhum conhecimento prévio sobre o alvo, o alvo também não é notificado sobre a auditoria, os canais a serem testados ou os vetores de teste. Double Blind é um teste mais conhecido como Penetration Test ou Teste Black Box.
• Gray box: o teste é realizado com conhecimento limitado das defesas do alvo e seus ativos, porém com completo conhecimento de seus canais. O alvo é preparado para a auditoria, sabendo todo o processo que será auditado. Em geral a natureza deste teste preza pela eficiência e é mais frequente que seja iniciado pelo alvo para um processo de auto-‐avaliação. O teste do tipo Gray Box é também conhecido como Teste de Vulnerabilidade.
• Double gray box: seguindo a linha do teste Gray Box, o Double Gray Box detém a sua diferença no fato de que o alvo é notificado com antecedência apenas sobre o escopo e o tempo de duração da auditoria, mas não detém conhecimento sobre os canais testados ou vetores de teste. Neste tipo de teste, são verificados a perícia do tester e também a preparação do alvo
OSSTMM 3 – The Open Source Security Testing Methodology Manual
2.3 Common Test Types
These six types differ based on the amount of information the tester knows about the targets, what the target knows about the tester or expects from the test, and the legitimacy of the test. Some tests will test the tester’s skill more than actually testing the security of a target.
Do note when reporting the audit, there is often a requirement to identify exactly the type of audit performed. Too often, audits based on different test types are compared to track the delta (deviations) from an established baseline of the scope. If the precise test type is not available to a third-party reviewer or regulator, the audit itself should be considered a Blind test, which is one with the least merit towards a thorough security test.
Creative Commons 3.0 Attribution-Non-Commercial-NoDerivs 2010, ISECOM, www.isecom.org, www.osstmm.org
36 Official OSSTMM Certifications: www.opsa.org, www.opst.org, www.opse.org, www.owse.org, www.trustanalyst.org
para as ações desconhecidas no processo de teste. Este teste também é conhecido como Teste White Box.
• Tandem: neste tipo de teste, tanto o tester como o alvo são preparados para a auditoria e detém completo conhecimento sobre os detalhes da mesma, desconsiderando a avaliação do quanto o alvo está preparado para ações de teste e comportamentos desconhecidos do ponto de vista de segurança. Também definido por Teste Cristal Box ou Auditoria In-‐House.
• Reversal: de posse do pleno conhecimento do tester em relação ao alvo, e o alvo sem nenhum conhecimento sobre o que, como e quando será o teste, o teste Reversal objetiva avaliar a preparação do alvo para as ações e comportamentos desconhecidos em relação a sua segurança. Esse teste é mais conhecido como Exercício Red Team.
A metodologia também direciona suas preocupações em relação aos tipos
de erros que podem ser encontrados, considerando que um teste de segurança não avalia a soma desses erros, mas sim a sua contabilização. Os erros são divididos em doze tipos: false positive, false negative, gray positive, gray negative, specter, indiscretion, entropy error, falsification, sampling error, constraint, propagation e human error.
Para mensurar os resultados dos testes de segurança a metodologia OSSTMM utiliza a ideia de RAV (Risk Assessment Values). A função básica do RAV é analisar os resultados do teste e computar o valor atual da segurança baseado em três fatores: segurança operacional, controle de perda e limitações. O valor final de segurança é conhecido como RAV score. Usando o RAV score, um auditor pode facilmente extrair e definir marcos baseado no estado atual da segurança para realizar uma melhor proteção. De uma perspectiva de negócio, RAV pode otimizar a quantia de investimento requerido na segurança e pode ajudar a justificativa de investimentos em soluções mais efetivas.
Com base em tantos detalhes no que diz respeito às especificações do modelo, a metodologia OSSTMM tornou-‐se uma das mais completas e robustas. Um dos diferencias da mesma é a inclusão de fatores humanos como parte dos testes, respeitando a máxima de que o ser humano representa um potencial perigo para a segurança das informações. Por outro lado, cabe a ressalva de que tais fatores representam uma mínima parte da metodologia e tem pouca documentação e descrição a respeito. Mesmo com a sua completude, a metodologia OSSTMM desconsidera vagamente itens como hipóteses induzidas e diagramas claros e intuitivos [61]. Tais itens impactam, respectivamente, em uma diminuição de descobertas alternativas de vulnerabilidades e em um maior trabalho de interpretação dos inúmeros módulos que constituem o modelo. Da mesma forma, não são especificadas explicitamente as ferramentas a serem
usadas durante os testes, porém a metodologia detalha os métodos utilizados para avaliar de modo consistente superfície de ataque em relação ao contexto que está sendo analisado. Aliado a isso, no âmbito de testes de penetração, uma boa prática é o registro no relatório das atividades, ações e resultados ao fim de cada etapa, em virtude do processo de teste ser representativamente longo. Na presente metodologia são oferecidos templates para o preenchimento dos relatórios, porém esses templates seguem um processo de leitura linear [62]. Assim, para ter o conhecimento sobre a segurança do sistema e realizar as devidas análises é preciso passar por todo o relatório. 7.3.2. ISSAF
A representação da metodologia ISSAF [63] se dá como um framework capaz de modelar os requisitos de controle internos para a segurança da informação, direcionado para avaliar a segurança de redes, sistemas e aplicações. Integrando o framework com um regular ciclo de vida de negócio, é possível fornecer acurácia, completude e eficácia requeridos para completar os requisitos de teste de segurança em uma organização. Com isso, subentende-‐se os focos da metodologia ISSAF: a área técnica, que estabelece o conjunto de regras e procedimentos para seguir e criar um processo adequado de avaliação de segurança, e a área gerencial, que realiza os compromissos com o gerenciamento e melhores práticas que devem ser seguidas ao longo do processo de teste. Sua concepção é estruturada em três grandes áreas de execução: planejamento e preparação, avaliação e relatório, limpeza e destruição de artefatos. A fase de Planejamento e Preparação trata os passos necessários para definir o ambiente de teste, seja no planejamento e preparação das ferramentas de teste, contratos e aspectos legais, definição da equipe de trabalho, prazos, requisitos e estrutura dos relatórios finais. Já a fase de Avaliação representa o centro da metodologia, onde o teste de penetração é realmente executado. A mesma é composta das seguintes atividades:
1. Coleta de informações: Consiste em coletar toda a informação possível sobre o alvo em questão a ser avaliado, auxiliando o avaliador a realizar a tarefa da maneira mais completa possível. Na maioria dos casos a principal e talvez única fonte de informação inicial é a Internet. Esta etapa é muito importante para o início do Pentest, no qual o processo de coleta interfere diretamente na completude do mesmo. Em geral, o objetivo desta atividade é explorar todas as vias possíveis de ataque dando uma visão completa do alvo.
2. Mapeamento da rede: Informações específicas da rede, baseado também na atividade de coleta, são mapeadas para produzir a topologia de rede do alvo. Existem diversas ferramentas que podem ser utilizadas para auxiliar
a descoberta e o mapeamento da rede e dos hosts envolvidos no teste. Essa atividade, resumidamente, foca seus esforços nos aspectos técnicos de descoberta de informações. Durante a enumeração e o mapeamento de rede o tester busca identificar todos os hosts vivos, sistemas operacionais envolvidos, firewalls, sistemas de detecção de intrusão, servidores e serviços, dispositivos de perímetro, roteamento e topologia geral rede (layout físico).
3. Identificação de vulnerabilidades: Esta atividade, de posse dos dados enumerados e da topologia de rede, busca encontrar falhas dentro da rede, servidores, serviços e outros recursos. A partir da enumeração e mapeamento de rede o tester busca verificar fatores como a precisão na identificação de serviços e sistemas operacionais. Com essa informação, o tester está habilitado a listar hosts e servidores vulneráveis. O objetivo desta etapa é usar as informações coletadas para fazer uma avaliação técnica atualizada sobre a existência de vulnerabilidades. Esta atividade é realizada combinando versões de serviços vulneráveis com exploits conhecidos e teóricos, percorrendo a rede em diversas direções, testando webservices, localizando senhas fracas e contas e escalando privilégios.
4. Penetração: Prova as vulnerabilidades e exploits que o tester identificou anteriormente.
5. Acesso e Escalada de Privilégio: Esta atividade é um advento de quando o tester ganhou algum acesso no alvo através da execução das atividades anteriores e assim pode realizar a escalada de privilégio. Este privilégio é categorizado como compromise, final compromise, least privilege ou intermediate privileges.
6. Enumeração: Uma vez que o tester ganhou o acesso e os privilégios, são executados, por exemplo: ataques a senhas, monitoramento e análise de tráfego, coleta de cookies, coleta de endereços de e-‐mail, identificação de rotas na rede e mapeamento de redes internas.
7. Comprometer usuários remotos: O tester deve tentar comprometer os usuários remotos, tele-‐comutadores e sites remotos.
8. Manutenção de acesso: O tester precisa reter os links de comunicação com a rede alvo. Essa comunicação, por sua vez, é interessante que seja através de um canal secreto (covert channel) para diminuir as chances de detecção.
9. Cobrindo rastros: O principal objetivo desta atividade é esconder ferramentas/exploits usados durante o comprometimento do alvo.
Por fim, a fase de Relatório, Limpeza e Destruição de Artefatos é
responsável pelo processo de pós-‐invasão do teste. O tester escreve um relatório completo e destrói os artefatos construídos durante a fase de Avaliação.
A metodologia ISSAF possui ampla documentação sobre a sua estrutura, e apresenta como uma das principais vantagens a criação de uma conexão clara entre as tarefas do Pentest e as ferramentas utilizadas. Da mesma forma, a ordem na qual a metodologia descreve o processo do Pentest é otimizada para ajudar o tester na execução completa e correta do teste, evitando erros comumente associados com estratégias de ataques selecionados aleatoriamente [61]. Pelo viés de limitações, ressalta-‐se a falta de melhores orientações na elaboração de relatórios, que não é bem definida e possui pontos que deveriam ser atualizados. Juntamente a isso, o fato do fluxo de controle ser one-‐way desconsidera hipóteses que podem melhorar o procedimento do teste uma vez que o tester já descobriu algumas vulnerabilidades, assim como o que acontece na metodologia OSSTMM.
7.3.3. PTES
Com foco em aspectos técnicos, a metodologia PTES [64] detalha instruções de como executar as tarefas que são requeridas para testar precisamente o estado da segurança em um ambiente. A intenção do modelo é não estabelecer padrões engessados para um teste de penetração, e a comunidade de analistas e profissionais de segurança responsável por sua criação trata a ideia de que as diretrizes para o processo de avaliação da segurança de um ambiente devem ser de fácil compreensão para as organizações. Por essa razão, as diretrizes técnicas ajudam a definir procedimentos a serem seguidos durante um Pentest, fazendo com que a metodologia forneça um estrutura base para iniciar e conduzir um teste de segurança, além de possuir gráficos bem organizados e uma série de métodos incluídos. A estrutura da metodologia é composta por sete fases:
• Pre-‐engagement interactions: apresenta o planejamento de ferramentas
e técnicas que serão utilizadas no Pentest. • Intelligence gathering: fornece um padrão destinado ao processo de
reconhecimento do alvo em questão. • Threat modeling: define a modelagem de ameaças para que o Pentest
tenha seu direcionamento realizado de maneira correta. • Vulnerability analysis: trata o processo de descoberta de falhas e
vulnerabilidades de um sistema ou ambiente. • Exploitation: foca em estabelecer o acesso a um sistema ou recurso
passando pelas restrições de segurança. • Post-‐exploitation: determina o valor de uma máquina compromissada e
mantém o controle da mesma para uma futura utilização. • Reporting: define os critérios basilares para o relatório do teste.
Em resumo, PTES é um framework projetado para fornecer às empresas e os prestadores de serviços de segurança uma linguagem e escopo comuns para a realização de Pentest. Tal tarefa está relacionada principalmente a realização de padrões concisos para medir testes de penetração e oferecer orientações de como o teste precisa ser realizado aos clientes. A forma como são fornecidas as diretrizes de execução do processo representa a principal vantagem do modelo em relação aos demais, aliado ao fato de que o mesmo considera o conhecimento do tester como aspecto primordial ao longo das fases. Dessa forma, a construção da metodologia por parte da comunidade de experts na área de segurança fornece uma abordagem diferenciada e diretamente ligada aos critérios técnicos de um teste de segurança [65]. Em contraponto, isso impacta vagamente nos aspectos de negócio, tornando-‐se uma fator limitante para a completude de um Pentest. Em relação a documentação da metodologia, a citação do uso de ferramentas e técnicas para cada uma das fases é descrita de maneira extremamente robusta, ao passo que orientações em relação à medidas de eficiência, elaboração dos relatórios e tratamento de caminhos alternativos na descoberta de vulnerabilidades, por exemplo, poderiam ser melhor definidas.
7.3.4. NIST Guidelines
A metodologia proposta pela NIST [66] foi inicialmente introduzida como GNST (Guideline on Network Security Testing), reproduzida na publicação especial 800-‐42, e a sua última versão continuada é apresentada na publicação especial 800-‐15 como Technical Guide to Information Security Testing and Assessment. A elaboração deste modelo é considerada como a primeira que introduz um processo detalhado e formal para a escrita de relatórios, e da mesma forma em relação a trabalho e processo que lida com hipóteses induzidas. Basicamente, sua estrutura segue quatro etapas principais: Planejamento, onde o sistema é analisado para encontrar os alvos de teste mais interessantes; Descoberta, onde o tester procura as vulnerabilidades no sistema; Ataque, onde o tester verifica se as vulnerabilidades encontradas podem ser exploradas; e Relatório, onde cada resultado proveniente das ações realizadas na etapa anterior é reportado.
Adicionalmente, cada passo executado possui um vetor de entrada, que representa o conjunto de dados a serem analisados, e um vetor de saída, que representa o conjunto completo de resultados derivados das ações executadas. Em seu fluxo, a seta orientada entre ataque e descoberta é a primeira tentativa de representação de hipóteses induzidas. A ideia principal de hipóteses induzidas se baseia nos artefatos: Vetor Alvo (TV), Vetor de Vulnerabilidade (VV) e Vetor de Ataque (AV), que representam respectivamente: o conjunto de alvo com investigação em andamento, conjunto de vulnerabilidade conhecidas e o conjunto de ataque relevantes.
Além do fato de considerar hipóteses induzidas, outra característica
positiva da metodologia é a forma como a mesma orienta o tester na elaboração dos relatórios. De acordo com as melhores práticas, a metodologia sugere escrever um relatório passo-‐a-‐passo, onde o tester relata suas descobertas depois da fase de planejamento e depois de cada ataque (realizado com sucesso ou não), descrevendo as vulnerabilidades que puderam ou não ser exploradas. Em compensação a isso, a metodologia não provê templates e orientações para a escrita dos relatórios finais [61]. Da mesma forma, cabe ressaltar a maneira como é construído o vetor de vulnerabilidade, onde apenas uma parte dos problemas encontrados durante a primeira fase originam vulnerabilidades em potencial. Em paralelo a isso, não fazem parte do relatório aqueles problemas que não listam falhas, e tal prática deve ser reconsiderada: todos os problemas encontrados devem ser levados em conta como descobertas interessantes e então, devem ser documentados pois posteriormente podem vir a serem riscos relevantes. Por fim, a forma utilizada pela norma para explicitar as suas definições e conceitos pode ser considerada uma limitação no que diz respeito ao entendimento da mesma, uma vez que sua compreensão sobre o que, onde, porque e como o processo de teste será realizado não é completamente claro [66]. 7.3.5. OWASP Testing Guide
A metodologia proposta no OWASP Testing Guide é um advento consolidado de todos os estudos que a comunidade OWASP realiza. Sua concepção é guiada pela ideia norteadora de tornar softwares seguros uma realidade, e por essa razão percebe-‐se que suas diretrizes são direcionadas a testes de segurança em softwares e aplicações web. Na grande maioria das organizações voltadas a desenvolvimento de software, as preocupações com segurança não fazem parte do processo de desenvolvimento padrão e, por muitas vezes, também não detém importância para as mesmas. A metodologia, então, idealiza o uso de testes de segurança como forma de conscientização e estrutura-‐se com base em outros projetos providos pela própria OWASP como o Code Review Guide e Development Guide. As orientações da metodologia disposta no OWASP Testing Guide são organizadas em três grandes blocos: a etapa introdutória que trata os pré-‐requisitos para testar as aplicações web e também o escopo do teste, a etapa intermediária que apresenta o OWASP Testing Framework e suas tarefas e técnicas relacionadas as diversas fases do ciclo de vida de desenvolvimento de software, e a etapa conclusiva que descreve como as vulnerabilidades são testadas através da inspeção de código e dos testes de penetração.
No contexto de aplicações web, a metodologia considera Pentest a técnica para testar uma aplicação em execução, de maneira remota, para encontrar vulnerabilidades de segurança sem ter o conhecimento sobre os aspectos inerente ao funcionamento da aplicação. Nesse sentido, ferramentas automatizadas de Pentest tem baixa eficácia no âmbito de aplicações web, uma vez que tais aplicações são constituídas de maneira um tanto quanto individual, fazendo com que a automatização não seja interessante. Por outro lado, comparando com as atividades de revisão de código, os testes de penetração não exigem tanto conhecimento do tester e também são mais rápidos.
A representatividade dos testes de segurança no workflow da metodologia é relativamente pequena, ao passo que é bem detalhada. Dessa forma, os principais conceitos e atividades relacionados aos testes são concisamente bem escritos no documento, fornecendo uma excelente compreensão. Mesmo assim, a ocupação propriamente dita do teste de penetração neste workflow é destinada somente na etapa de deployment, sendo apenas um item entre os dezoito que o constituem.
Em geral, a metodologia apresenta-‐se como a melhor alternativa para testes de penetração em aplicações web. Isso justifica-‐se pela forma como são apresentadas as ferramentas, soluções, técnicas a atividades para toda a cobertura do processo de teste. Além disso, são apresentados possíveis resultados esperados e as soluções a serem tratadas, devidamente divididos e bem descritos graficamente. Portanto, quando considerado meio de validação de segurança de uma estrutura web, a metodologia OWASP Testing Guide fornece uma avaliação detalhada de tecnologias específicas, onde suas orientações possibilitam uma visão mais ampla e colaborativa auxiliando o tester na escolha do melhor procedimento a ser tomado. 7.3.5. Avaliação das metodologias
A avaliação das metodologias para testes pode ser construída de diversas maneiras, mas necessita de critérios base para tal. Esta pesquisa é voltada especificamente para modelos de Pentest, e entre as metodologias avaliadas, somente a PTES é diretamente direcionada para testes de penetração, enquanto as demais englobam testes de segurança em geral. Contudo, as outras metodologias citadas possibilitam que o foco da atividade seja conforme um teste de penetração, mas não são delineadas para isto. A Figura 7 exemplifica essa afirmação ilustrando a comparação de atuação da metodologia OSSTMM em relação a outros tipos de teste de segurança.
Figura 7. Comparativo entre OSSTMM e outros tipos de teste de segurança [60]. A relação do comparativo citado pela Figura 7 é direcionada aos fatores
acurácia e completude. Dessa forma, subentende-‐se por exemplo que Pentest é um tipo de teste voltado a uma avaliação precisa de um determinado ponto em um sistema ou rede, e por sua vez não tem objetivo de avaliar toda a segurança do alvo. De acordo com a documentação apresentada em [60], os tipos de teste também podem ser discutidos em consideração aos aspectos custo e tempo, conforme ilustrado na Figura 8.
Figura 8. Tipos de teste considerando custo x tempo [60].
A atuação dos tipos de teste de acordo com custo e tempo delimita as
definições de cada um dos mesmos da seguinte maneira:
2.1. OSSTMM
Figure 2.1.: OSSTMM comparison with common security tests (from [8])
that is well in line with our findings from the previous chapter as it will also apply toCI.An important aspect of the OSSTMM is the compliance with general security policies.
The methodology is developed taking into account major legislation and regulations.Furthermore, OSSTMM defines three di↵erent types of compliance and a set of rules todeal with all of them. The three types of compliance defined in the methodology are:
Legislation: enforces the security test to be compliant with region/country legis-lation. The lack of this requirement could lead to criminal charges.
Regulation: enforces the security test to be performed accordingly to standardregulation within industry sector. A failure in this task could lead to a dismissalof the company from the group.
Policy: enforces the security test to be done according to business and organizationpolicies. Violation could cause a dismissal of the responsible from the company.
OSSTMM provides a list of national and international regulations already proved tobe compliant to the proposed methodology.
FP7-SEC-285477-CRISALIS 13
OSSTMM 2.1. - The Open Source Security Testing Methodology Manual 23 August 2003
14
Copyright 2000-2003 Peter V. Herzog, ISECOM – The Institute for Security and Open Methodologies – www.isecom.org - www.osstmm.org ISECOM is the OSSTMM Professional Security Tester (OPST) and OSSTMM Professional Security Analyst (OPSA) certification authority.
time
cost Vulnerability Scanning
Security Scanning
Ethical Hacking
Penetration Testing
Security Auditing
3 6
5
1
2
7 Posture Assessment & Security Testing
Risk Assessment 4
For clarity, ISECOM applies the following terms to types of system and network security testing as based on time and cost for Internet Security Testing:
1. Vulnerability Scanning refers generally to automated checks for known vulnerabilities against a system or systems in a network.
2. Security Scanning refers generally to vulnerability scans which include manual false positive verification,
network weakness identification, and customized, professional analysis.
3. Penetration Testing refers generally to a goal-oriented project of which the goal is the trophy and includes gaining privileged access by pre-conditional means.
4. Risk Assessment refers generally to security analysis through interview and mid-level research which
includes business justification, legal justifications, and industry specific justifications.
5. Security Auditing refers generally to a hands-on, privileged security inspection of the OS and Applications of a system or systems within a network or networks.
6. Ethical Hacking refers generally to a penetration test of which the goal is to discover trophies throughout
the network within the predetermined project time limit.
7. Security Testing and it’s military equivalent, the Posture Assessment, is a project-oriented risk assessment of systems and networks through the application of professional analysis on a security scan where penetration is often used to confirm false positives and false negatives as project time allows.
1. Vulnerability Scanning (Escaneamento de Vulnerabilidade): refere-‐se
geralmente a verificações automáticos para vulnerabilidades conhecidas contra um sistema de uma rede.
2. Security Scanning (Escaneamento de Segurança): refere-‐se geralmente a varreduras de vulnerabilidades que incluem verificação manual de falsos positivos, identificação de fraqueza da rede e análise customizada.
3. Penetration Testing (Teste de Invasão): refere-‐se geralmente a um projeto orientada a um objetivo no qual este objetivo é o direcionamento do teste.
4. Risk Assessment (Avaliação de Risco): refere-‐se geralmente a análise de segurança por meio de entrevista e de pesquisa que inclui justificativa de negócios, as justificações legais e justificativas específicas da indústria.
5. Security Auditing (Auditoria de Segurança): refere-‐se geralmente a uma inspeção hands-‐on de segurança do sistema operacional e aplicativos de um ou mais sistemas dentro de uma rede.
6. Ethical Hacking: refere-‐se geralmente a um teste de penetração de que o objetivo é atingir os objetivos dentro do prazo pré-‐determinado projeto.
7. Security Testing (Teste de Segurança): é uma avaliação de riscos dos sistemas e redes através da aplicação de análise profissional em uma verificação de segurança onde a penetração é muitas vezes usada para confirmar falsos positivos e falsos negativos de acordo com o tempo de projeto permite. Com base nessas informações, a avaliação das metodologias é baseada
em algumas características descritas a seguir. A Figura 9 apresenta visualmente o quadro comparativo entre as metodologias discutidas neste SMS.
Figura 9. Comparativo entre modelos para Pentest.
De início, um dos critérios considerado importante para um teste de
segurança é a abrangência, que neste trabalho diz respeito ao alcance do teste em relação aos possíveis cenários. As metodologias OSSTMM, ISSAF, PTES e NIST são facilmente integradas e podem ser adequadas ao contexto de aplicações e sistemas operacionais, banco de dados, avaliações de segurança física e aplicações web. Contudo, o modelo OWASP Testing Guide tem seu foco precisamente definido: serviços e aplicações web. Dessa forma, considera-‐se que, para um modelo robusto de teste de penetração, isso representa uma limitação.
A possibilidade de integrar meios, itens e direções adicionais ao teste de segurança a partir dos resultados obtidos em cada etapa ou fase da metodologia, é uma característica importante no contexto atual de verificações de segurança. Nesse sentido, mesmo que uma definição estática dos planos e passos a serem seguidos seja um requisito primordial, essa flexibilidade de novos recursos torna os modelos mais interessantes. Para essa característica, o modelo fornecido pela NIST apresenta uma conjuntura interessante ao permitir que o tester tenha
maior dinamicidade ao longo do teste, podendo considerar e reavaliar suas ações de posse dos artefatos obtidos a cada atividade. Em contraponto, pode-‐se considerar que as metodologias OSSTMM ISSAF e OWASP Testing Guide, ao mesmo tempo que são extremamente consolidadas e robustas, limitam tal flexibilidade por tratarem os cenários de execução dos testes de maneira concisa e detalhada. Assim, alinha-‐se esse raciocínio com a ideia de que a escolha por mais minúcias em cada etapa do teste é inversamente proporcional a flexibilidade do modelo.
Ao definir detalhadamente os aspectos e conceitos norteadores para o processo de teste, o modelo pode até limitar a flexibilidade, mas incrementa sua qualidade no quesito modelagem. Esses conceitos-‐chave facilitam o tester na sua atividade de modelar todo o fluxo de ações do teste, além de modelar o sistema e ambiente alvo. Isso ratifica um ponto crucial em testes de segurança, que é a eliminação de possíveis ambiguidades no que diz respeito a cada passo subsequente a ser realizado. Para tal característica, os modelos OSSTMM, OWASP Testing Guide e PTES cumprem precisamente essa completude, principalmente pela forma com que abordam a etapa de planejamento do seu processo de teste. A metodologia ISSAF trata rigorosamente esse quesito, sendo a parte principal das atividades iniciais do teste responsável pelo sucesso na identificação de vulnerabilidades.
Evitar as possíveis ambiguidades através de conceitos bem definidos não deve impactar no fator adaptação. A possibilidade de adaptar o modelo e suas ações mediante as variações dos sistemas e ambientes a serem testados fornece uma ampla gama de pontos positivos ao fluxo do teste. Dentre esses pontos, a escolha dos tipos de teste, juntamente com o plano e definição de escopo (mediante análise do alvo), são atividades que podem sofrer alteração e adequação. No critério adaptação a metodologia OSSTMM detém, em seu processo de delimitação de atividades, maior possibilidade em relação a possíveis variações do alvo. De forma adversa, a metodologia PTES apresenta certa limitação por não detalhar concisamente tais adaptações como alternativa.
Todo o conjunto de aspectos definidos em um teste de segurança deve ser devidamente planejado de maneira prévia. Assim, o planejamento é a característica que trata o suporte fornecido ao tester para a definição das fases, execução das atividades, pré-‐requisitos para continuação e andamento do teste, escolha das ferramentas a serem utilizadas e também o retorno esperado para cada subatividade dentro do teste. Uma excelente referência nessa característica é a metodologia PTES, que descreve atentamente todo o planejamento que deve ser realizado, além de instituir nessa descrição todo o conjunto de ferramentas para cada etapa, contendo inclusive as formas de execução das mesmas. Apenas
os modelos OSSTMM e NIST contrariam levemente essa construção, já que optam por maior amplitude e flexibilidade.
Por fim, é possível considerar também a documentação como parte das características principais da constituição de um modelo de teste. Todos os modelos possuem documentos detalhados e fortemente delimitados, com divisões e sequência facilmente entendíveis. Somente o modelo PTES não prima por uma construção textual tão completa e com explicações verdadeiramente detalhadas sobre cada processo e atividade. Por este razão, é o único dos modelos que não atende completamente tal característica. 7.4. RQ4. Quais os principais desafios em Pentest? A relação entre os cenários de execução, ferramentas e modelos fornece um nível de abstração interessante para a ideia em torno dos desafios em Pentest. Um dos principais problemas discutidos em alguns dos estudos analisados é voltado a eficiência no processo de descoberta de vulnerabilidades, independente do contexto de aplicação do Pentest. Aliado a isso, pode-‐se delimitar também que outro grande desafio da área de pesquisa é fornecer modelos e ferramentas adequadas para assegurar níveis de segurança cada vez mais elevados para os cenários alvo. Ambos desafios estão relacionados as problemas como: complexidade de ataques, surgimento frequente de novas vulnerabilidades e variação da aplicabilidade do Pentest para cada contexto alvo.
A ideia de ferramentas e modelos automatizados corrobora com essa afirmação, uma vez que os estudos selecionados discutem amplamente sobre o processo de automatização tanto para evitar problemas de viés do tester quanto para acelerar a descoberta de vulnerabilidades e geração de avaliações sobre as mesmas.
A formalização de metodologias/modelos disseminados na comunidade de segurança provê cada vez mais a robustez necessária para as melhores práticas em Pentest. Contudo, outro desafio está relacionado justamente a isso: a carência de modelos específicos que lidem com ampla abrangência com o processo de Pentest, envolvendo os distintos cenários analisados neste mapeamento sistemático. Dessa forma, discute-‐se como desafio a avaliação, desenvolvimento e aplicação de metodologias e recomendações para a execução de Testes de Penetração de qualidade.
8. CONCLUSÃO A relevância e notoriedade dos estudos sobre Testes de Penetração são evidentes do ponto de vista de pesquisa. Tal tema, posicionado dentro da grande área de Segurança da Informação, tem sido amplamente alvo dos trabalhos atuais relacionados a testes e verificações de segurança, uma vez que o crescimento e evolução de falhas e vulnerabilidades tem sido tão exponencial quanto. Este SMS tem seu foco em mapear o campo de Pentest, identificando os cenários de aplicação, ferramentas utilizadas, metodologias empregadas em diferentes contextos e as principais contribuições e desafios relacionados. Detalhadamente, foi possível indicar e analisar as descrições de uso das ferramentas identificadas e a diferenciação das metodologias, fornecendo um overview sobre as principais aplicações de descoberta de vulnerabilidades, escaneamento de rede, pré-‐invasão e pós-‐invasão, e análise web. A partir destas informações, os resultados podem ajudar um tester a definir dentro do seu escopo do teste quais as ferramentas indicadas de acordo com a etapa do processo, auxiliando também a tomada de decisão quanto as metodologias mais adequadas. Em geral os resultados deste SMS representam não apenas a identificação de aspectos pré-‐determinados pelas questões de pesquisa, mas sim uma abordagem concisa e relacionada com possíveis trabalhos futuros e desenvolvimento e adequação de novos modelos para Pentest. Os resultados em si fornecem o apoio necessário para tal construção dentro deste âmbito de pesquisa de testes de segurança, seja pela própria indicação das ferramentas consolidadas para o processo de Pentest ou até mesmo pela percepção em torno de vantagens e desvantagens da relação de metodologias em determinados cenários. Aliado a essa percepção, a avaliação realizada sobre as metodologias discutidas na subseção 7.3 direciona a possibilidade da criação de um conjunto de recomendações que vise aperfeiçoar e/ou complementar o processo de Pentest baseado nas principais metodologias existentes. Assim, compreende-‐se que a proposta de um conjunto de recomendações trataria os problemas de pesquisa e limitações dos modelos, ao passo que forneceria uma forma flexível, dinâmica e completa de escolha das atividades, etapas e demais aspectos inerentes a um teste de penetração.
REFERÊNCIAS
[1] LAM, Kevin; LEBLANC, David; SMITH, Ben. Assessing network security. Microsoft Press, 2004. [2] ZHAO, Jensen J.; ZHAO, Sherry Y. Opportunities and threats: A security assessment of state e-‐government websites. Government Information Quarterly, v. 27, n. 1, p. 49-‐56, 2010.
[3] WHITAKER, Andrew; NEWMAN, Daniel P. Penetration testing and network defense. Cisco Press, 2005. [4] HENRY, Kevin. Penetration Testing: Protecting Networks and Systems. IT Governance Publishing, 2012. [5] PETERSEN, K; FELDT, R.; MUJTABA, S.; MATTSSON, M. Systematic mapping studies in software engineering. EASE’08: Proceedings of the 12th International Conference on Evaluation and Assessment in Software Engineering, University of Bari, Italy (2008). [6] MIRJALILI, Mahin; NOWROOZI, Alireza; ALIDOOSTI, Mitra. A survey on web penetration test. 2014. [7] AL-‐GHAMDI, Abdullah Saad AL-‐Malaise. A Survey on Software Security Testing Techniques. International Journal of Computer Science and Telecommunications, v. 4, 2013. [8] BISHOP, Matt. About penetration testing. Security & Privacy, IEEE, v. 5, n. 6, p. 84-‐87, 2007. [9] GEER, Daniel; HARTHORNE, John. Penetration testing: A duet. In: Computer Security Applications Conference, 2002. Proceedings. 18th Annual. IEEE, 2002. p. 185-‐195. [10] KITCHENHAM, B.; CHARTERS, S. Guidelines for performing Systematic Literature Reviews in Software Engineering, Technical Report EBSE 2007-‐001, Keele University and Durham University Joint Report, 2007. [11] AUSTIN, Andrew; HOLMGREEN, Casper; WILLIAMS, Laurie. A comparison of the efficiency and effectiveness of vulnerability discovery techniques.Information and Software Technology, v. 55, n. 7, p. 1279-‐1288, 2013. [12] HSU, Yating; SHU, Guoqiang; LEE, David. A model-‐based approach to security flaw detection of network protocol implementations. In: Network Protocols, 2008. ICNP 2008. IEEE International Conference on. IEEE, 2008. p. 114-‐123. [13] HOLM, Hannes et al. A quantitative evaluation of vulnerability scanning.Information Management & Computer Security, v. 19, n. 4, p. 231-‐247, 2011.
[14] SKLAVOS, Nicolas; BECHTSOUDIS, Anestis. Aiming at higher network security through extensive penetration tests. Latin America Transactions, IEEE (Revista IEEE America Latina), v. 10, n. 3, p. 1752-‐1756, 2012. [15] SARRAUTE, Carlos; RICHARTE, Gerardo; LUCÁNGELI OBES, Jorge. An algorithm to find optimal attack paths in nondeterministic scenarios. In:Proceedings of the 4th ACM workshop on Security and artificial intelligence. ACM, 2011. p. 71-‐80. [16] KHOURY, Nidal et al. An analysis of black-‐box web application security scanners against stored SQL injection. In: Privacy, Security, Risk and Trust (PASSAT) and 2011 IEEE Third Inernational Conference on Social Computing (SocialCom), 2011 IEEE Third International Conference on. IEEE, 2011. p. 1095-‐1101. [17] ANTUNES, Nuno; VIEIRA, Marco. Assessing and Comparing Vulnerability Detection Tools for Web Services: Benchmarking Approach and Examples.Services Computing, IEEE Transactions on, v. 8, n. 2, p. 269-‐283, 2015. [18] XU, Dianxiang et al. Automated security test generation with formal threat models. Dependable and Secure Computing, IEEE Transactions on, v. 9, n. 4, p. 526-‐540, 2012. [19] SHEN, Lu et al. Automatic Generation for Penetration Testing Scheme Analysis Model for Network. In: Computational and Information Sciences (ICCIS), 2011 International Conference on. IEEE, 2011. p. 821-‐826. [20] MENDES, Naaliel; DURAES, Joao; MADEIRA, Henrique. Benchmarking the Security of Web Serving Systems Based on Known Vulnerabilities. In:Dependable Computing (LADC), 2011 5th Latin-‐American Symposium on. IEEE, 2011. p. 55-‐64. [21] FONG, Erin et al. Building a test suite for web application scanners. In:Hawaii International Conference on System Sciences, Proceedings of the 41st Annual. IEEE, 2008. p. 478-‐478. [22] WILLIAMS, Gustavious P. Cost effective assessment of the infrastructure security posture. In: System Safety, incorporating the Cyber Security Conference 2012, 7th IET International Conference on. IET, 2012. p. 1-‐6.
[23] BOU-‐HARB, Elias; DEBBABI, Mourad; ASSI, Chadi. Cyber scanning: a comprehensive survey. Communications Surveys & Tutorials, IEEE, v. 16, n. 3, p. 1496-‐1519, 2013. [24] KASINATHAN, Pounraj et al. Denial-‐of-‐Service detection in 6LoWPAN based Internet of Things. In: Wireless and Mobile Computing, Networking and Communications (WiMob), 2013 IEEE 9th International Conference on. IEEE, 2013. p. 600-‐607. [25] XING, Bin et al. Design and implementation of an XML-‐based penetration testing system. In: Intelligence Information Processing and Trusted Computing (IPTC), 2010 International Symposium on. IEEE, 2010. p. 224-‐229. [26] ANTUNES, Nuno et al. Effective detection of SQL/XPath injection vulnerabilities in web services. In: Services Computing, 2009. SCC'09. IEEE International Conference on. IEEE, 2009. p. 260-‐267. [27] HOLIK, Filip et al. Effective penetration testing with Metasploit framework and methodologies. In: Computational Intelligence and Informatics (CINTI), 2014 IEEE 15th International Symposium on. IEEE, 2014. p. 237-‐242. [28] AVRAMESCU, Gabriel et al. Guidelines for discovering and improving application security. In: Control Systems and Computer Science (CSCS), 2013 19th International Conference on. IEEE, 2013. p. 560-‐565. [29] RIDGEWELL, Walter W. et al. Immersive and Authentic Learning Environments to Mitigate Security Vulnerabilities in Networked Game Devices. In: Signal-‐Image Technology & Internet-‐Based Systems (SITIS), 2013 International Conference on. IEEE, 2013. p. 1042-‐1048. [30] WALDEN, James. Integrating web application security into the IT curriculum. In: Proceedings of the 9th ACM SIGITE conference on Information technology education. ACM, 2008. p. 187-‐192. [31] MINK, Martin; FREILING, Felix C. Is attack better than defense?: teaching information security the right way. In: Proceedings of the 3rd annual conference on Information security curriculum development. ACM, 2006. p. 44-‐48. [32] TONDEL, Inger Anne; JAATUN, Martin Gilje; JENSEN, Jostein. Learning from software security testing. In: Software Testing Verification and Validation
Workshop, 2008. ICSTW'08. IEEE International Conference on. IEEE, 2008. p. 286-‐294. [33] ARMANDO, Alessandro et al. Model-‐checking driven security testing of web-‐based applications. In: Third International Conference on Software Testing, Verification, and Validation Workshops. IEEE, 2010. p. 361-‐370. [34] DAHL, Ole Martin; WOLTHUSEN, Stephen D. Modeling and execution of complex attack scenarios using interval timed colored Petri nets. In:Information Assurance, 2006. IWIA 2006. Fourth IEEE International Workshop on. IEEE, 2006. p. 12 pp.-‐168. [35] MCLAUGHLIN, Stephen et al. Multi-‐vendor penetration testing in the advanced metering infrastructure. In: Proceedings of the 26th Annual Computer Security Applications Conference. ACM, 2010. p. 107-‐116. [36] SOMOROVSKY, Juraj et al. On Breaking SAML: Be Whoever You Want to Be. In: USENIX Security Symposium. 2012. p. 397-‐412. [37] GARN, Bernhard et al. On the applicability of combinatorial testing to web application security testing: a case study. In: Proceedings of the 2014 Workshop on Joining AcadeMiA and Industry Contributions to Test Automation and Model-‐Based Testing. ACM, 2014. p. 16-‐21. [38] LINE, Maria B. et al. Penetration testing of opc as part of process control systems. In: Ubiquitous Intelligence and Computing. Springer Berlin Heidelberg, 2008. p. 271-‐283. [39] MAINKA, Christian; SOMOROVSKY, Juraj; SCHWENK, Jörg. Penetration testing tool for web services security. In: Services (SERVICES), 2012 IEEE Eighth World Congress on. IEEE, 2012. p. 163-‐170. [40] TRAORE, Moussa Djiriba et al. RAPn: Network Attack Prediction Using Ranking Access Petri Net. In: Chinagrid Conference (ChinaGrid), 2011 Sixth Annual. IEEE, 2011. p. 108-‐115. [41] BENKHELIFA, Elhadj; WELSH, Thomas. Security testing in the cloud by means of ethical worm. In: Globecom Workshops (GC Wkshps), 2013 IEEE. IEEE, 2013. p. 500-‐505. [42] SALAS, M. I. P.; MARTINS, E. Security testing methodology for vulnerabilities detection of xss in web services and ws-‐security. Electronic Notes in Theoretical Computer Science, v. 302, p. 133-‐154, 2014.
[43] BÜCHLER, Matthias; OUDINET, Johan; PRETSCHNER, Alexander. Semi-‐automatic security testing of web applications from a secure model. In:Software Security and Reliability (SERE), 2012 IEEE Sixth International Conference on. IEEE, 2012. p. 253-‐262. [44] SANDOUKA, Hanan; CULLEN, Andrea; MANN, Ian. Social Engineering Detection using Neural Networks. In: CyberWorlds, 2009. CW'09. International Conference on. IEEE, 2009. p. 273-‐278. [45] LIU, Bingchang et al. Software vulnerability discovery techniques: A survey. In: Multimedia Information Networking and Security (MINES), 2012 Fourth International Conference on. IEEE, 2012. p. 152-‐156. [46] MASOOD, Rahat et al. SWAM: Stuxnet Worm Analysis in Metasploit. In:Frontiers of Information Technology (FIT), 2011. IEEE, 2011. p. 142-‐147. [47] IGURE, Vinay M.; WILLIAMS, Ronald D. Taxonomies of attacks and vulnerabilities in computer systems. Communications Surveys & Tutorials, IEEE, v. 10, n. 1, p. 6-‐19, 2008. [48] KHOURY, Nidal et al. Testing and assessing web vulnerability scanners for persistent SQL injection attacks. In: Proceedings of the First International Workshop on Security and Privacy Preserving in e-‐Societies. ACM, 2011. p. 12-‐18. [49] LEIBOLT, Gregory. The Complex World of Corporate CyberForensics Investigations. In: CyberForensics. Humana Press, 2010. p. 7-‐27. [50] FONSECA, Jose; VIEIRA, Marco; MADEIRA, Henrique. The web attacker perspective-‐a field study. In: Software Reliability Engineering (ISSRE), 2010 IEEE 21st International Symposium on. IEEE, 2010. p. 299-‐308. [51] JAJODIA, Sushil; NOEL, Steven; O’BERRY, Brian. Topological analysis of network attack vulnerability. In: Managing Cyber Threats. Springer US, 2005. p. 247-‐266. [52] BLACKWELL, Clive. Towards a Penetration Testing Framework Using Attack Patterns. In: Cyberpatterns. Springer International Publishing, 2014. p. 135-‐148.
[53] PRANDINI, Marco; RAMILLI, Marco. Towards a practical and effective security testing methodology. In: Computers and Communications (ISCC), 2010 IEEE Symposium on. IEEE, 2010. p. 320-‐325. [54] DIMKOV, Trajce et al. Two methodologies for physical penetration testing using social engineering. In: Proceedings of the 26th annual computer security applications conference. ACM, 2010. p. 399-‐408. [55] STEPIEN, Bernard; PEYTON, Liam; XIONG, Pulei. Using TTCN-‐3 as a modeling language for web penetration testing. In: Industrial Technology (ICIT), 2012 IEEE International Conference on. IEEE, 2012. p. 674-‐681. [56] BADAWY, Mohamed Alfateh; EL-‐FISHAWY, Nawal; ELSHAKANKIRY, Osama. Vulnerability Scanners Capabilities for Detecting Windows Missed Patches: Comparative Study. In: Advances in Security of Information and Communication Networks. Springer Berlin Heidelberg, 2013. p. 185-‐195. [57] CURPHEY, Mark; ARAWO, Rudolph. Web application security assessment tools. Security & Privacy, IEEE, v. 4, n. 4, p. 32-‐41, 2006. [58] HUANG, Yao-‐Wen; LEE, D. T. Web Application Security—Past, Present, and Future. In: Computer Security in the 21st Century. Springer US, 2005. p. 183-‐227. [59] DOUPÉ, Adam; COVA, Marco; VIGNA, Giovanni. Why Johnny can’t pentest: An analysis of black-‐box web vulnerability scanners. In: Detection of Intrusions and Malware, and Vulnerability Assessment. Springer Berlin Heidelberg, 2010. p. 111-‐131. [60] HERTZOG, P. OSSTMM -‐ Open Source Security Testing Methodology Manual. Institute for Security and Open Methodologies, ISECOM. Disponível em: http://www. isecom. org/osstmm. [61] ALLEN, Lee; HERIYANTO, Tedi; ALI, Shakeel. Kali Linux–Assuring Security by Penetration Testing. Packt Publishing Ltd, 2014. [62] PAULI, Josh. The basics of web hacking: tools and techniques to attack the Web. Elsevier, 2013. [63] Open Information Systems Security Group. Information Systems Security Assessment Framework, 2006.
[64] Penetration Testing Execution Standard. Technical Guidelines. Disponível em: http://www.pentest-‐standard.org [65] O'GORMAN, Jim; KEARNS, Devon; AHARONI, Mati. Metasploit: the penetration tester's guide. No Starch Press, 2011. [66] STOUFFER, Keith; FALCO, Joe; SCARFONE, Karen. NIST SP 800-‐115: Technical Guide to Information Security Testing and Assessment. National Institute of Standards and Technology (September, 2008), 2008.