O documento discute as 10 principais vulnerabilidades em aplicações web, como injeção, quebra de autenticação, cross-site scripting e configuração insegura. Também fornece definições de termos como vulnerabilidade e ameaça, e aborda como projetar aplicações web de forma segura usando padrões como o ASVS.
4. WASC THREAT CLASSIFICATION, 2010
Objetivam controlar recursos por falsificação
ou quebra de limites: Sistemas, redes, banco
de dados, máquinas, etc.
Facilitadas pela
engenharia social.
Ameaças e Vulnerabilidades
5. TERMINOLOGIA E DEFINIÇÕES
Vulnerabilidade: uma fraqueza ou falha que pode acidentalmente
ou intencionalmente ser explorada, resultando em quebra da
politica de segurança.
Ameaça: vulnerabilidade que representa ameaça aos ativos.
Official (ISC) GUIDE TO THE CSSLP
6. (Open Web Application Security Project)
• Organização internacional que recebe iniciativas de todo o mundo;
• Comunidade aberta dedicada a possibilitar a criação de aplicações
confiáveis;
• Todas as ferramentas, documentos, fóruns e capítulos são livres e
abertos a todos interessados;
http://www.owasp.org/index.php/About_OWASP
Um pouco sobre a OWASP
7. Por que precisamos dePor que precisamos de
aplicações seguras?aplicações seguras?
75% ( 60~90) de todos os ataques ocorrem na camada de aplicação;
Fontes: OWASP, CWE, WASC, NIST, CERT, Black hat, White Hat, Sans Institute, Gartner Group.
90% das aplicãções web são vulneráveis;
1,000,000 sites usam SSL (~7,000,000 vulnerabilidades de localização
desconhecida);
17,000,000 de desenvolvedores: poucos treinados em segurança de
software;
8. WASC THREAT CLASSIFICATION, 2010
Localização das vulnerabilidades naLocalização das vulnerabilidades na
““Visão de Fase de DesenvolvimentoVisão de Fase de Desenvolvimento””
Design Implementação Deploy
13 42 12
46 vulnerabilidades ao todo46 vulnerabilidades ao todo
9. Riscos de Segurança top 10
São exploradas em conjunto: um abre, outro vasculha. Classificação relativa.
“Para conhecer seu inimigo, se torne o seu inimigo”
10. A1- FALHAS DE INJEÇÃO
Ataques via browser ou prompt:
SQL Injection: comandos SQL
XSS Injection: Javascript e HTML
Outros: command Injection, LDAP, XML, etc.
11. Injeta-se uma query SQL na aplicação usando um navegador web comum.
IMPACTO
Criar, ler, atualizar ou excluir qualquer
dado disponível para a aplicação através de
SQL;
Ganhar acesso a recursos restritos de S.O e
rede;
Conectar-se a sistemas como se fosse um
usuário autorizado, driblando a necessidade
de uma senha.
SQL Injection
Cenários: CAMPOS EDITÁVEIS OU NÃO, UPLOAD MALIOSOS,
CSS maliciosos, etc.
12. A2- QUEBRA DE AUTENTICAÇÃO E
GERENCIAMENTO DE SESSÃO
Cenários: vazamentos ou falhas em funções de
autenticação ou gerenciamento de sessão para
assumir a identidade de outro usuário.
Alvos: contas expostas, senhas fracas, ID de
sessão capturáveis ou de baixa randomização,
IMPACTO
13. A3-CROSS-SITE SCRIPTING (XSS)
Executar scripts cliente (Javascript, Flash Script, HTML, etc) de
forma direta ( no meu browser) ou remota ( no browser da
vítima).
•Roubar sessões de usuário;
•Pichar sites Web;
•Introduzir worms, zumbis, etc;
•Negação de serviço.
IMPACTO
14. A4-REFERÊNCIA INSEGURA DIRETA A OBJETOS
Alterar parâmetros aplicação web via URL do browser, campo da aplicação ou
prompt. O usuário pode ser autorizado ou não.
Quebra de limites e restrições a arquivos, diretórios, banco de dados, etc. Exemplos:
•Votar ou marcar consultas quantas vezes quiser;
•Acessar conta de um usuário alterando um ID;
•Ter acesso a funcionalidades de maior privilégio.
IMPACTO
http://example.com/app/accountInfo?IdConta=1
15. A5- CONFIGURAÇÃO INCORRETA
DE SEGURANÇA
Refere-se à configurações de segurança incorretas ou não implementadas, isso
inclui manter atualizados software e suas partes. Utiliza-se demais técnicas de
ataque.
Cenários:
•Contas padrão;
•Páginas não utilizadas;
•Falhas não corrigidas;
•Arquivos e diretórios desprotegidos;
•Padrões de nomes fracos,
•Padrões de senha fracos, etc.
•Relações internas e externas.
•Captchas de baixa randomização e complexidade.
IMPACTO
16. A6- EXPOSIÇÃO DE DADOS SENSÍVEIS
Ausência ou inadequação da proteção aplicações web a dados sensíveis: Trânsito,
armazenamento e exposição ( banco de dados, scripts clientes e servidores).
Ex. dados sensíveis: cartões de crédito, IDs fiscais e credenciais de autenticação.
IMPACTO
•Fraudes no cartão de crédito;
•Roubo de identidade.
•Ganho de privilégios
17. A7- FALTA DE FUNÇÃO PARA
CONTROLE DO NÍVEL DE ACESSO
O atacante é um usuário autorizado no
sistema, que simplesmente muda a URL ou um
parâmetro de função privilegiada com o
propósito de acessar a funcionalidade sem
autorização adequada.
Necessário validar no servidor cada função
invocada.
IMPACTO
18. A8- REQUISIÇÃO REMOTA
FORJADA (CSRF)
CENÁRIOS
•Requisições não validadas em aplicações;
•Links em e-mails;
•Mensagens em forums, etc;
•Clones de sites.
Forjar requisições HTTP falsas através de XSS
ou engenharia social, além de inúmeras outras
técnicas. Se o usuário estiver autenticado, o
ataque é bem sucedido.
IMPACTO
19. A9- UTILIZAÇÃO DE COMPONENTES
VULNERÁVEIS CONHECIDOS
O atacante identifica um componente vulnerável
através de varredura ou análise manual e ataca a
aplicação através dele.
Malwares também assumem esse comportamento.
IMPACTO
20. A10- REDIRECIONAMENTOS E
ENCAMINHAMENTOS INVÁLIDOS.
O atacante aponta para um redirecionamento válido por encaminhamento
inseguro para evitar verificações de segurança.
Observe detalhes tais como:
Https, validações vertical e horizontal, diferenças de nomes e layouts, proxys.
IMPACTO
• Roubo de identidade.
21. COMO RESOLVER VULNERABILDADES EM APLICAÇÕES
• Padrão de Verificação de Segurança de Aplicações (ASVS)
• Modelagem de Riscos e ameaças.
• Projete segurança de software com guia de desenvolvimento
seguro.
• Utilize API de segurança.
22. COMO RESOLVER VULNERABILDADES EM APLICAÇÕES
Implemente estratégias para segurança de software customizadas
para os riscos específicos que a organização enfrenta.
Modelo de Maturidade de Garantia do Software (SAMM).
• Participe de ações educacionais sobre desenvolvimento seguro.