Teste de Segurança em Aplicações Prontas
Teste de Segurança em Aplicações Prontas
Apresentação
Albene Teixeira Chaves Borges
Carlos Henrique de Barros
Carlos Henrique Oliveira Bispo
Eduardo Henrique Pontes
Humberto Luis Floriano de Toledo
Leonardo Santana Gunes Amorim
Paulo Henrique Borges Megda
Teste de Segurança em Aplicações Prontas
Agenda
▪
▪
▪
▪
▪
▪
▪
▪
Introdução.
Testes de segurança em aplicações.
SFR - Security Functional Requirements.
Modelo de ameaças.
Testes de penetração.
Tipos de testes de penetração.
Conclusão.
Bibliografia.
Teste de Segurança em Aplicações Prontas
Introdução
Expansão da Internet
Globalização
Teste de Segurança em Aplicações Prontas
Empresa gera demandas
Software gera Solução
Teste de Segurança em Aplicações Prontas
INFORMAÇÃO = BEM DE ALTO VALOR
Teste de Segurança em Aplicações Prontas
NECESSIDADE
1. Informação RÁPIDA
2. Informação CONFIÁVEL
DESAFIO
Informação SEGURA
Teste de Segurança em Aplicações Prontas
+
Segurança =
tecnologia
Cuidados com aplicações
Teste de Segurança em Aplicações Prontas
Testes de segurança em aplicações
Teste sistemático de avaliação de um software
- Independente da plataforma de desenvolvimento.
Objetivo
- Garantir que o desenvolvimento seguiu práticas de segurança.
Possibilita encontrar falhas
- Interface;
- Código.
Teste de Segurança em Aplicações Prontas
 Erros
- Comprometem a confiabilidade e segurança das aplicações.
Origens
- Cronogramas apertados;
- Alto nível de complexidade da aplicação;
- Orçamentos reduzidos.
Processo de teste eficiente
- Verifica adequação(software) aos requisitos de segurança (SFR);
- Revisão / criação e teste do modelo de ameaças;
- Testes de ataque e penetração no sistema.
Teste de Segurança em Aplicações Prontas
 SFR - Security Functional Requirements
Fase de desenvolvimento
-Identificação dos objetivos de segurança para atender ao nível
EAL (Evaluation Assurance Level).
Fase de teste
- Identificação dos requisitos funcionais;
- Testes dos itens;
- Garantia de conformidade com EAL.
Teste de Segurança em Aplicações Prontas
 Modelo de ameaças
- permite identificar e estimar ameaças à aplicação.
Fase de testes
- Levantado e atualizado;
- Filtra;
- Direciona para áreas críticas.
Teste de Segurança em Aplicações Prontas
Testes de penetração
- Avaliar a segurança de uma aplicação.
* Simulação de um ataque.
Objetivos
- Encontrar falhas técnicas;
- Fragilidades;
- Vulnerabilidades.
Problemas + Riscos + Impactos + Solução técnica = Relatório
Teste de Segurança em Aplicações Prontas
 O modelo de testes
- Testador: quem executa as atividades;
- A metodologia e ferramentas: guia de testes;
- Aplicação: testes de caixa preta (Black Box Testing).
Teste de Segurança em Aplicações Prontas

Testadores
-

Pessoas qualificadas na área de segurança;
Hackers e crackers;
Experiência;
Conhecimento aprofundado.
Metodologia e as ferramentas
- Guia define um caminho mais rápido e fácil;
- Guia mostra como utilizar as ferramentas de testes.
Teste de Segurança em Aplicações Prontas
TIPOS DE TESTES DE PENETRAÇÃO
Teste de Segurança em Aplicações Prontas
 Coleta de Informações
- levantar informações sobre a aplicação a ser testada;
- ferramentas públicas;
- scanners;
- envio de requisições http.
 Impressão digital da aplicação
-
descobrir a versão e o tipo do servidor web;
direcionar testes;
analisa o cabeçalho das respostas HTTP do servidor;
"httprint".
Teste de Segurança em Aplicações Prontas
 Identificação das aplicações
-
identificar aplicações hospedadas em um servidor web;
explorar as vulnerabilidades;
verificar atualização;
checar configuração.
 Spidering e Googling(poderosas e úteis)
- bem/mal;
- Data Minings(tags/dados/url/link).
Teste de Segurança em Aplicações Prontas
 Código de erros
- revelam informações sobre bd;
- bugs.
 DB Listener
- componente do Oracle;
- trata conexões remotas dos clientes.
 Teste da lógica do negócio
- ataques perigosos;
- difíceis de detectar e especificar.
Ex. Transferência de valor em dinheiro > maior que permitido.
Teste de Segurança em Aplicações Prontas
 Casos de abuso
- testar os controles da aplicação;
- verifica bloqueio nas operações fora do casos de abuso.
Ex. Vender produto por um preço negativo.
 Testes de autenticação
- confirmar algo como sendo autêntico.
Ex. Solicitação de usuário e senha para verificação de autenticidade.
 Constas de usuários previsíveis
- nomes de usuários e senhas fáceis;
- senhas fracas com pouca ou nenhuma atualização periódica.
Teste de Segurança em Aplicações Prontas
 Força bruta
- diferentes caracteres.
 Esquema de autenticação
- burlar o processo de autenticação;
- SQL injection.
 Acesso a diretórios
- testa de acesso a diretórios e arquivos.
 Reset de senhas
- testa esta funcionalidade do sistema.
 Teste de logout
- encerramento de sessão após logout;
- logout automático por inatividade.
Teste de Segurança em Aplicações Prontas
 Testes de gerenciamento de sessão
- mantém estado desde a autenticação até o fechamento.
 Esquema de gerenciamento
- avaliar a confiabilidade.
 Cookies
- ganhar sessão.
 Variáveis de sessão
- verifica exposição;
- transmissão cliente servidor segura;
- usa protocolos com criptografia.
 Validação de dados
- tratamento e validação de dados.
Teste de Segurança em Aplicações Prontas
 Cross site scripting
- execução de scripts indesejáveis.
 Métodos HTTP
- métodos não seguros de acesso habilitados(PUT, DELETE, CONNECT, TRACE).
 SQL Injection
- injeção de código SQL na entrada de dados da aplicação.
 Bd Oracle
- acesso pelo PL/SQL ;
- pontos falhos no gateway.
Teste de Segurança em Aplicações Prontas
 XML Injection
- XML parser trata corretamente entradas inválidas.
 IMAP/SMTP Injection
- comandos IMAP/SMTP nos servidores de e-mail(dados não tratados).
 Buffer Overflow
- verificar como a aplicação trata as tentativas de buffer
overflow.
Teste de Segurança em Aplicações Prontas
 Negação de serviço(DoS)
- ataque comum;
- indisponibiliza servidor.
DDoS (Distruibuted Denial of Service)
- ataque de máquinas zumbis.
 Bloqueio de contas válidas
- bloqueio devido password inválido.
Teste de Segurança em Aplicações Prontas
 Alocação de objetos
- paralisação do servidor devido alocação de grande nro de objetos.
 Loop por contador
- loops por contador na aplicação.
 Estouro de logs
- enchimento do disco de dados da aplicação através do envio de
alto volume de dados ao servidor.
 Liberação de recursos
- memória;
- arquivos.
 Estouro de sessão
- encher a sessão com dados e esgotar recursos de memória do
servidor.
Teste de Segurança em Aplicações Prontas
Conclusão
Concluímos que o teste de segurança é uma operação essencial e
indispensável para garantir que uma aplicação não possua falhas que
possam permitir a uma pessoa maliciosa atacar tanto o hardware quanto
o software. Também foi possível concluir que para realizar teste de alto
nível é necessário planejamento, organização e, documentação de
resultados e de soluções. Além disso, é extremamente necessário ter
profissionais com experiência e conhecimento em segurança para que,
utilizando boas ferramentas, possam realizar diversos tipos de testes em
aplicações e assim pontuar níveis de segurança.
Teste de Segurança em Aplicações Prontas
Referências
Ebook: Addison.Wesley, Software.Security.Building.Security.In. (2006).BBL
http://www.softwaremag.com/l.cfm?doc=2004-09/2004-09software-security
-testing - acesso em 25/06/2007
Ebook: OWASP Testing Guide v2 (2007)
http://www.invasao.com.br/coluna-andre-11.htm acesso em 25/06/2007
http://en.wikipedia.org/wiki/Common_Criteria
Download

Teste de Segurança em Aplicações Prontas