Aula 1 - Testando a Segurança de Sua Aplicação Web
-
Upload
matheus-fidelis -
Category
Internet
-
view
160 -
download
2
Transcript of Aula 1 - Testando a Segurança de Sua Aplicação Web
Curso:Testando a
Segurança de sua Aplicação Web
Matheus Fidelis - @fidelissauro
$whoamiMatheus Fidelis
Especialista em Sistemas e Segurança Linux Experiência em projetos e soluções Open SourceExperiência em Controle e Segurança de Servidores e Ambientes LinuxCEO Fundador do Proj. Nanoshots Open Source Security
Ementa do Curso:NÃO É O OBJETIVOFormar Hackers Éticos e apresentar roteiros de testes de instrusão.
OBJETIVO:O objetivo do curso é apresentar para desenvolvedores, analistas, profissionais e estudantes de segurança da informação uma bateria de testes afim de encontrar, classificar e explorar falhas mais comuns recorrentes em ambientes e aplicações web.
Após este curso o alunosegurança estará apto a realizar varreduras, análises e apresentar relatórios com vulnerabilidades do servidor afim de apresentar e propor melhorias e correções de falhas de sua própria aplicação, para a equipe ou clientes.
25 Horas
CURSO PRATICO!!!
Material do Curso:
Virtualbox 4.3 + - https://www.virtualbox.org/
Kali Linux 2.0 - https://www.kali.org/Metasploitable VM - SQLi VM -
Hackers e MotivaçõesHacker - Pessoas que utilizam seu conhecimento para explorar e modificar a favor das pessoasCracker - Pessoas que utilizam seu conhecimento para tirar proveito ou prejudicarScript Kiddie - Normalmente pessoas que não possuem muito conhecimento e passam a procurar soluções prontas para exploits
tipos de pentestBlack Box - Tem o objetivo de simular a visão real de um hacker malicioso, onde o atacante não possui nenhuma informação sobre o sistema e a infraestrutura. Gray Box - Este teste funciona com um grau intermediário de informações disponibilizadas. Como rotinas, sistemas a serem testados, horários e gargalos visando não comprometer o funcionamento do sistema durante horários de pico e gargalo.White Box - Esta modalidade mais rápida que visa testar as vulnerabilidades junto a equipe de infraestrutura e desenvolvimento que irá colaborar com as informações dos sistemas e disponibilizando dados que necessitar
acordos de contrato
GrayWhite Black
O QUE EU DEVO SABER SOBRE O HTTP?
É o processo utilizado para realizar comunicações com o servidor WebBaseado totalmente em texto
Trabalha com Requests e Responses entre o cliente e servidor
Protocolo totalmente sem estados(Cada solicitação corresponde a um evento totalmente novo e independente do anterior
“Hyper Text Transfer Protocol”
O QUE EU DEVO SABER SOBRE O HTTP?
Ainda assim, como ela mantém o controle da sessão e das solicitações anteriores?
Cookies e Sessões
Menos praticidade
Inumeras solicitações de Login
O QUE EU DEVO SABER SOBRE O HTTP?
Gera enormes vetores de ataque
PORÉM…. Interceptação de Tráfego
Exposição a Sniffers de Rede
Session Hijacking (Roubo de Sessão)
Captura de Cookies
USO DO HTTPS“Hyper Text Transfer Protocol Secure”
O HTTPS é a versão Criptografada do HTTPHTTP rodando sobre o protocolo SSL/TLS(Secure Socket Layer/Transport Layer Security)Dificulta ataques MITM - “Man in the middle”Cria um “Canal Privado” entre o cliente e o servidor Não impede que ataques sejam realizados sobre a aplicação
CICLOS DO HTTP
Navegador envia a solicitação com todas as variáveis, cookies, headers,
O Servidor interpreta a solicitação e responde a solicitação baseado nos parâmetros enviados, enviando respostas determinadas pelas solicitações.request
response
COOKIE - Esse cabeçalho mostra o cookie que pode estar servindo como identificador de sessão do usuário. É possível roubar essa sessão com uso de Sniffers como Wireshark e Ettercap
HTTP READERS
INFORMAÇÕES UTEIS ENCONTRADAS NOS CABEÇALHOS HTTP
Content-Length - É o tamanho em bytes da resposta. Utilizado para analise de força bruta.
Location - É usado quando é necessário fazer o redirecionamento de um usuário para alguma outra página.Referrer - Este dado mostra onde o navegador do usuário estava anteriormente. Pode ser manipulado para quebrar regras de segurança
✘ 100’s : São respostas adicionais do servidor, raramente são utilizadas.
✘ 200’s: Indicam que nossas solicitações foram aceitas e processadas pelo servidor
✘ 300’s: São respostas que indicam redirecionamento. Como ao tentar acessar um painel administrativo sem sessão válida, mandando o cliente para alguma página index ou login.
✘ 400’s: Representam erros na solicitação. As mais comuns são “404: Not Found” e “403: Forbidden”
✘ 500’s: São utilizados para apresentar erros no lado do servidor, como “500: Internal Server Error”
https statusAs respostas do servidor incluem códigos de status para indicar o tipo de resposta que ele deu para nossa solicitação. Eles são classificados em 5 grupos.
SERVIDOR WEB
HARDWARE
SERVIÇOS QUE ESTÃO SENDO EXECUTADOS NAS PORTAS DO SERVIDOR QUE PERMITAM QUE A APLICAÇÃO SEJA ACESSADA.
APLICAÇÃO WEB
CODIGO FONTE QUE ESTÁ SENDO EXECUTADO NO SERVIDOR WEB QUE PROVÊ AS FUNCIONALIDADES QUE OS USUÁRIOS PODEM UTILIZAR.
EX: PHP, JAVA, PYTHON, RUBY E ETC
1º - SQL Injection
OWASP TOP 102013
2º - Quebra de autenticação e Sessão
3 º - Cross-Site Scripting (XSS)4º - Referência Insegura e Direta a Objetos
5º -Configuração incorreta 6º - Exposição de Dados Sensíveis
7º - Falta de Controle do Nível de Acesso
8º - Cross-Site Request Forgery (CSRF)
9º - Utilização de Componentes Vulneráveis Conhecidos
10º - – Redirecionamentos e Encaminhamentos Inválidos
Obrigado!Perguntas?Twitter: @[email protected]
www.nanoshots.com.br
CreditsSpecial thanks to all the people who made and released these awesome resources for free:
✘Presentation template by SlidesCarnival✘Photographs by Unsplash