Testes de segurança. Conferência Código Seguro 25 Nov 2004. Dependable Technologies for Critical Systems



Documentos relacionados
Software para Sistemas Críticos

Mestrado em Segurança da Informação e Direito no Ciberespaço. Segurança da informação nas organizações Modelos de analise

Análise e Conc epç ão de Sist em as de Inform aç ão,qwurgxomrj(qj GH5HTXLVLWRV. Adaptado a partir de Gerald Kotonya and Ian Sommerville

Verificação e Validação

Análise e Conc epç ão de Sist em as de Inform aç ão 3URFHVVRV(QJ GH5HTXLVLWRV. Adaptado a partir de Gerald Kotonya and Ian Sommerville

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Desenvolvimento Iterativo. Unified Process (UP) Esta abordagem ao desenvolvimento

Teste de Software. Objetivos e Limites. Objetivos e Limites. Objetivos e Limites. Objetivos e Limites. Objetivos e Limites

Fundamentos em Segurança de Redes de Computadores NBR ISO 27001

Parte I Requirement Engineering. Gestão de Projectos Informáticos. Gestão do Âmbito (Scope Management) Requirement Engineering.

Mestrado em Segurança da Informação e Direito no Ciberespaço. Segurança da informação nas organizações Gestão de Configuração

Introdução. Aulas. ltodi.est.ips.pt/es. Detalhes administrativos Definição de engenharia de software Contexto Relação com outras áreas e disciplinas

efagundes com GOVERNANÇA DE TIC Eduardo Mayer Fagundes Aula 3/4

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr

Cláusula 1.º Objecto. Cláusula 2.º Especificação da prestação

OWASP. The OWASP Foundation As 10 mais críticas vulnerabilidades de segurança em Aplicações Web

MODELAGEM DE SISTEMA Apresentação

Aula 11 Integrando Segurança ao Processo de Desenvolvimento de Software. Prof. Leonardo Lemes Fagundes

ACTOS PROFISSIONAIS GIPE. Gabinete de Inovação Pedagógica

Resumo Apresentação : Orador

Disciplina: Tecnologias de Informação e Comunicação Ano Letivo 2014/2015

5. Métodos ágeis de desenvolvimento de software

PHC Serviços CS. A gestão de processos de prestação de serviços

Comparando nossas soluções: - uso do Software N-Stalker WAS - uso do Sistema RedeSegura

Informática II Cap. 3

Instituto Superior Politécnico de VISEU. Escola Superior de Tecnologia

Introdução 1 1. Enquadramento 5

Mestrado em Segurança da Informação e Direito no Ciberespaço. Segurança da informação nas organizações Gestão da Segurança da Informação

Os desafios da gestão de processos numa Instituição Financeira

Características Carlos Ferraz

AGRUPAMENTO DE ESCOLAS DR. GINESTAL MACHADO

Programa Serviços Especializados de Apoio à Gestão do Programa

Formador: Paulo Ramos IGRI13: Rui Bárcia Nº15. Burp Suite. Módulo 25

B U S I N E S S I M P R O V E M E N T

A falha em alguns destes pontos pode resultar num excessivo e desnecessário investimento/despesa

Engenharia de Software

Estudo de Remuneração 2015

Introdução a Informática. Prof.: Roberto Franciscatto

Governança de TI. ITIL v.2&3 parte 2

... Calendarização: 2 blocos de 90 m Metas/Objetivos Descritores Conceitos/Conteúdos Estratégias/Metodologias Avaliação

Gestão de Projectos. Alguns dos tópicos abordados:

Fundamentos em Teste de Software. Vinicius V. Pessoni

Soluções de Gestão de Clientes e Impressão Universal

Metasploit Sabe o que é?

AutoTest Um Framework Reutilizável para a Automação de Teste Funcional de Software

Digitalização e Classificação Automática de Documentação Contabilística

I CICLO ITINERANTE DE FORMAÇÃO PARA O TERCEIRO SETOR

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com

Gestão do Risco e da Qualidade no Desenvolvimento de Software

Os Modelos de Gestão da Qualidade das Respostas Sociais - Novos desafios

Curso Profissional de Técnico de Gestão e Programação de Sistemas Informáticos. Sistemas Operativos - 2º Ano

Projecto GTBC. leading excellence 1. Portugal: Espanha:

Análise de Sistemas. Conceito de análise de sistemas

Base de Dados para Administrações de Condomínios

ESET Secure Authentication. Autenticação ultra-segura para proteger o acesso à rede empresarial

Desenvolvendo Software Livre com Programação extrema

Logística e Gestão da Distribuição

System Quality Assurance

Importância dos Grupos de Resposta a Incidentes de Segurança em Computadores

Gestão de Configuração de Software

Processo do Serviços de Manutenção de Sistemas de Informação

Worldwide Enterprise Support Services

Engenharia de Software

in ter curso COMPRAS INTERNACIONAIS NEEDLES NEEDLES NEEDLES NEEDLES fast delivery good price

IMPLEMENTAÇÃO. Acção de Formação do Grupo de Trabalho. Sensibilização Sensibilização Geral para a Qualidade. Qualidade.

Unified Modeling Language. Diagramas de Implementação

Objetivo Geral - Apender conceitos, protocolos e técnicas na gerencia de redes

UFF-Fundamentos de Sistemas Multimídia. Redes de Distribuição de Conteúdo (CDN)

Política e Conceitos relevantes de Gestão de Alarmes

Processos de Desenvolvimento de Software

No final do curso, os alunos devem ser capazes de:

Inovação em sistemas de informação aplicada ao apoio do cliente de retalho

Sistemas Distribuídos: Conceitos e Projeto Introdução a Tolerância a Falhas

DESENVOLVER E GERIR COMPETÊNCIAS EM CONTEXTO DE MUDANÇA (Publicado na Revista Hotéis de Portugal Julho/Agosto 2004)

Unidade 1 - Objectivos das Tecnologias Informáticas

Engenharia de Software

Engenharia de Software

PROJETO NOVAS FRONTEIRAS. Descrição dos processos de gerenciamento da qualidade

Modelo de processo para desenvolvimento de aplicações seguras OWASP. The OWASP Foundation

GARANTIA DA QUALIDADE DE SOFTWARE

Dicionário da EAP - Software FarmaInfor

O gerador terá que disponibilizar um factory que permita ao coordenador obter uma instância para o mesmo.

Gestão de Conhecimento - Estudos de caso -

Projeto de Redes de Computadores. Desenvolvimento de Estratégias de Segurança e Gerência

Tipos de Computadores

Gestão de Serviços. Mário Lavado itsmf Portugal. Guimarães 18 de Novembro itsmf Portugal 1

Introdução Fatores de Qualidade Garantia de Qualidade Rivisões de Software Conclusão. Qualidade. Plácido A. S. Neto 1

Transcrição:

Testes de segurança Conferência Código Seguro 25 Nov 2004 Dependable Technologies for Critical Systems Copyright Critical Software S.A. 1998-2004 All Rights Reserved.

Agenda O que é segurança Tipo de segurança Testes Funcionais De Segurança Objectivos Boas práticas Planeamento Uso de ferramentas automatizadas Etc... Caso prático 2

O que é segurança? O que é segurança? Segurança é um processo,não um produto Bruce Schneider Author, Secrets and Lies: Digital Security in a Networked World 3

O que é segurança? Porque processo? Estamos a fazer os testes bem? Só quando temos um processo estabelecido é que conseguimos ter outras preocupações e melhorar a maneira como fazemos as tarefas. É fundamental ter um bom processo de testes para pensar em testes de segurança. 4

O que é segurança? Um dos processos é o ENG.1.6 Software Testing Este processo é ortogonal a todo o ciclo de vida de um projecto 5

Agenda O que é segurança Tipo de segurança Testes Funcionais De Segurança Objectivos Boas práticas Planeamento Uso de ferramentas automatizadas Etc... Caso prático 6

Tipo de segurança Técnica Sistemas inseguros Ataques Física Acesso sem restrições Hardware vulnerável Social Utilizadores usam passwords fáceis de adivinhar 7

Agenda O que é segurança Tipo de segurança Testes Funcionais De Segurança Objectivos Boas práticas Planeamento Uso de ferramentas automatizadas Etc... Caso prático 8

Testes Funcionais (aquilo que se sabe) Execução de um conjunto de operações mediante todas as entradas possíveis. Os resultados obtidos são comparados com os previstos. Pode dar muitos casos de erros, mas não tipicamente não são críticos. De Segurança (aquilo que não se sabe) Execução de determinadas operações com uma combinação especial de entradas. Pode não dar nenhum problema em 99,9% dos casos, mas quando dá, é dramático! 9

Testes funcionais Permitem aumentar a confiança no cumprimento dos requisitos (funcionais) do software. Devem mostrar duas coisas: Que a aplicação faz o que deve fazer Que a aplicação não faz o que não deve fazer 10

Testes de segurança Reduzem as dúvidas sobre a vulnerabilidade do software. Não se sabe bem o que devem mostrar. Os testes de segurança devem validar requisitos de segurança. Não é fácil definir requisitos de segurança. 11

Testes de segurança Ao contrário dos testes funcionais em que as entradas e saídas estão bem definidas (2+2=4), nos testes de segurança estamos à procura de um comportamento anómalo que não sabemos quando acontece. Há uma combinação muito específica de valores de entrada que activa uma falha de segurança (cavalo de tróia, por exemplo). 12

Agenda O que é segurança Tipo de segurança Testes Funcionais De Segurança Objectivos Boas práticas Planeamento Uso de ferramentas automatizadas Etc... Caso prático 13

Objectivos dos testes de segurança Precaver contra ataques Garantir robustez do software face a determinados ataques típicos Detectar vulnerabilidades Preparar medidas de contingência Oferecer maior valor acrescentado ao cliente Etc... 14

Agenda O que é segurança Tipo de segurança Testes Funcionais De Segurança Objectivos Boas práticas Planeamento Uso de ferramentas automatizadas Etc... Caso prático 15

Boas práticas Adoptar uma metodologia de desenvolvimento Uma metodologia consistente oferece à partida maiores probabilidades de qualidade Na Critical, utiliza-se o modelo em cascata, ou iterativo. As metodologias enquadram objectivos concretos em fases. Este objectivos previlegiam actividades importantes. Exemplo: definição de uma arquitectura segura (separação da client-tier da data-tier)! 16

Boas práticas Metodologia apoiada num Sistema de Gestão de Qualidade Quality Management System (Quality Manual) Process Improvement Process Quality Management Process Project Life Cycle Management Process Key Process Areas Project Types Tailoring Customer Processes Engineering Processes Management Processes Organisational Processes Support Processes PROJECT LIFE CYCLE PROCESSES 17

Boas práticas Processo de gestão de qualidade Processo de gestão de configurações Processo de gestão de riscos Processo de gestão de projectos Processo de melhoria constante Etc... 18

Boas práticas Certificações ISO 9001:2000 TickIT Normas ISO 15504 (SPICE) nível 3 ISO 12207 19

Boas práticas Processo de Desenvolvimento de Software SYSTEM ENGINEERING PHASE SOFTWARE REQUIREMENTS ENGINEERING PHASE DESIGN ENGINEERING PHASE VALIDATION PHASE ACCEPTANCE PHASE OPERATIONS AND MAINTENANCE PHASE SRR PDR CDR QR AR REQUIREMENTS BASELINE TECHNICAL SPEC. BASELINE DESIGN BASELINE QUALIFICATION BASELINE ACCEPTANCE BASELINE FUNCTIONAL STATE SPECIFIED STATE DEFINED STATE QUALIFIED STATE ACCEPTED STATE Software VERIFICATION Testing PROCESS Process 20

Boas práticas 21

Boas práticas Planear testes numa fase inicial do projecto. É importante definir uma estratégia (o que testar, como testar, quais os inputs, quais os resultados previstos, quando testar, quem, qual é o critério de validação) de acordo com as necessidades e não com as possibilidades. É importante definir casos de testes de acordo com requisitos, numa fase embrionário do projecto, e não em paralelo com a implementação. Num project da Critical com a Marinha, a apresentação de plano e estratégia de testes foi um requisito da proposta. Quando os testes não estão planeados, testa-se o que for possível e de forma ad-hoc! Quando as coisas começam a correr mal, as primeiras tarefas a cair são os testes... 22

Boas práticas Testar ao longo de todo o projecto. Testes unitários Testes de integração Testes de sistema Testes de aceitação A qualidade não se injecta no fim! 23

Boas práticas Revisão de código Ajuda a limpar código redundante Ajuda a detectar determinados erros difíceis de apanhar em run-time (e.g. Memory leak, tratamento de excepções, gestão de pool de sessões, etc.) Promove a partilha de boas prácticas algorítmicas e normas de codificação 24

Boas práticas Revisão de código 25

Boas práticas Análise estática Detecção de erros simples de apanhar de forma automática (variáveis não utilizadas, ponteiros não inicializados, verificação de argumentos, etc...) com produção de estatísticas. Na Critical usa-se o Code Wizard, Pascal Analyser, Check Style 26

Boas práticas Utilização de ferramentas de apoio a testes de segurança Informação sobre a rede Sam Spade http://www.samspade.org 27

Boas práticas Utilização de ferramentas de apoio a testes de segurança Port scanning SuperScan Port Scanner http://www.foundstone.c om/knowledge/free_tools.html 28

Boas práticas Utilização de ferramentas de apoio a testes de segurança Cracker de passwords Brutus Password Cracker http://www.hoobie.net/brutus 29

Boas práticas Utilização de ferramentas de apoio a testes de segurança Web scanning XXX.XX.XXX.XXX XXX.XX.XXX.XXX Nikto Web Scanning Tool http://www.cirt.net/ code/nikto.shtml 30

Boas práticas Há outras ferramentas: Nessus Nmap Holodeck Security Analysis Tool for Auditing Networks (SATAN) Foundstone Enterprise Security Administrator s Integrated Network Tool (SAINT) BindView Etc... 31

Boas práticas Ferramenta para testes de segurança Ferramenta avançada de mutações de dados e injecção de falhas 32

Boas práticas HOST COMPUTER EME Upload mutant and execute test case TARGET SYSTEM SIS Change Input Parameter Compile and link each mutant Collect Output Original Code Mutants 33

Boas práticas Intervenção especializada Security SWAT team Red Team - Microsoft InfraGuard (http://www.infraguard.net) Concursos de hack-in 34

Agenda O que é segurança Tipo de segurança Testes Funcionais De Segurança Objectivos Boas práticas Planeamento Uso de ferramentas automatizadas Etc... Caso prático 35

Caso prático EDGE-Box 36

Caso prático Plano Modelo em cascata Fases Milestones Actividades importantes (requisitos, desenho da arquitectura, implementação, testes) Artefactos a produzir 37

Caso prático Recursos humanos especializados Foram utilizados elementos com grande experiência Houve acompanhamento constante de um consultor externo 38

Caso prático Desenho da Arquitectura cuidada Isolamento de serviços Tomaram em consideração questões de autenticação 39

Caso prático Testes Quando Quem Como (casos de teste) Quais os inputs Quais os outputs previstos Quais os critérios de valiação: execução de todos os casos de testes, com 100% de sucesso! 40

Caso prático Testes De funcionalidade De segurança Foi contratado um elemento externo ao projecto que testava remotamente Foi feito port scanning Várias trials 41

Obrigado! José Gonçalo Silva Software Quality Engineer jsilva@criticalsoftware.com Critical Software, S.A. 42