10 principais vulnerabilidades em sistemas web

A empresa Batori, especializada em segurança, fez uma análise sobre as vulnerabilidades em sistemas baseados na web e destaca dez delas como sendo a causa de 89% dos das principais falhas, além de afirmar que scanners e analisadores de código não são capazes de detecta-las, sendo que apenas analistas experientes podem corrigi-las.

São elas:

1) Cross-site scripting (XSS): correspondem à 13% das ocorrências, Permite executar scripts maliciosos no navegador do usuário.

2) Manipulação de dados ocultos: com 13% das ocorrências, permite acesso à dados ocultos. Clique em “Exibir” e depois “código-fonte”, e caso o site que voce visita esteja com este problema, voce poderá ver nomes de usuário, senhas de acesso a banco de dados, códigos internos etc…

3) Falha ao restringir acesso: são 11% das ocorrências, a política falha de acesso ao sistema permite ver áreas restritas. Eu vejo muito site por aí, inclusive este que usa um template Wordpress, que provavelmente tem esta falha. É só ficar vasculhando com o explorer, a árvore de diretórios, por exemplo.

4) Tratamento indevido de erro: 9% das ocorrências. Um código que não foi muito bem testado pode gerar um erro de script, por exemplo, revelando chaves e senhas no browser.

5) Armazenamento de criptografia não-seguro: também 9% das ocorrências. Esta falha me lembrou que quando eu fiz um estágio na SAD-RJ (Secretaria de Estado de Administração) e trabalhei com um servidor Digix. Na documentação, dizia que eu não poderia usar uma senha em inglês (até hoje não sei o motivo), mas é claro que eu tinha que testar. Resultado: no arquivo de senhas, todas elas estavam criptografadas, menos a minha.

6) Comunicação insegura: são 8% das ocorrências, aonde o sistema trafega dados sensíveis através de canais não-seguros.

7) Falha da especificação de requisitos: correspondem a 8% das ocorrências. Onde estavam os analistas de sistemas?

8.) Injeção de comandos: responsável por 8% das ocorrências, explora a injeção de comandos através da aplicação para serem processadas por outros sistemas ou camadas (SQL injection, SMTP injection, HTML injection, etc…)

9) Processo inadequado de cadastro de usuários: 5% das ocorrências. Precisa explicar mais?

10) Quebra de autenticação e gerenciamento de sessão: 5% das ocorrências.

O restante responde por 11% das ocorrências.

Conclusão: O pessoal gosta de pôr no curriculum que é analista de sistemas, mas de fato, não é a verdade. Um analista de sistemas não codifica, ele desenha e projeta o sistema, prevendo todas os aspectos que o sistema deverá atender (e isso inclui a segurança). Então com o sistema redondo no papel, parte-se para a codificação. A maioria dos problemas acima é de projeto e teste mal feitos. Quando se inicia o sistema diretamente do código, perde-se o foco do projeto e depois, com o sistema rodando, tenta-se corrigir e fica aquele mafuá de gambiarras, lenvando a essas falhas.


Leave a Reply