Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Segue referências quanto à ataques de injeção de códigos em aplicação web:
- • OWASP SQL Injection Prevention Cheat Sheet - https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet
- • OWASP Query Parameterization Cheat Sheet - https://www.owasp.org/index.php/Query_Parameterization_Cheat_Sheet
- • OWASP Command Injection Article - https://www.owasp.org/index.php/Command_Injection
- • OWASP XML eXternal Entity (XXE) Reference Article - https://www.owasp.org/index.php/XXE
- • ASVS: Output Encoding/Escaping Requirements (V6) - https://www.owasp.org/index.php/ASVS
- • OWASP Testing Guide: Chapter on SQL Injection Testing - https://www.owasp.org/index.php/Testing_for_SQL_Injection_(OWASP-DV-005)
- • CWE Entry 77 on Command Injection - http://cwe.mitre.org/data/definitions/77.html
- • CWE Entry 89 on SQL Injection - http://cwe.mitre.org/data/definitions/89.html
- • CWE Entry 564 on Hibernate Injection - http://cwe.mitre.org/data/definitions/564.html
- No caso específico do seu problema, seguem algumas recomendações iniciais:
- Você deve, cuidadosamente, filtrar os caracteres especiais utilizando a sintaxe para esse interpretador. No seu caso, você utiliza PHP, sendo assim, segue:
- Faça uma leitura inicial em: http://php.net/manual/pt_BR/security.database.sql-injection.php
- Sanitize todas as suas entradas de dados, não permita caracteres especiais
- Em casos em que a aplicação aguarda o recebimento de parâmetro como um número inteiro, negue qualquer outro tipo de valor que não seja inteiro
- Sempre GUARDE AS SENHAS criptografadas no seu banco de dados. Recomendo FORTEMENTE a utilização de algoritmos de hash para isto. Nunca guarde senhas em texto claro.
- Seguem recomendações da OWASP:
- A melhor forma para descobrir se uma aplicação está vulnerável à injeção é verificar se todos os usos dos interpretadores separam claramente os dados não-confiáveis do comando ou consulta.
- Para chamadas SQL, isso significa utilizar variáveis de ligação em todas as instruções preparadas e procedimentos armazenados, e evitar consultas dinâmicas.
- Verificar o código é uma forma rápida e precisa de identificar se a aplicação utiliza os interpretadores seguramente.
- Ferramentas de análise de código podem ajudar o analista de segurança a encontrar o uso dos interpretadores e traçar o fluxo de dados através da aplicação.
- Testes de invasão podem validar estas questões através da elaboração de exploits que confirmam a vulnerabilidade.
- Varredura dinâmica automatizada que exercite a aplicação pode fornecer uma visão caso exista alguma falha explorável de injeção.
- Escaneadores nem sempre podem alcançar os interpretadores e tem dificuldade em detectar se um ataque foi bem sucedido.
- Tratamento de erros fraco torna as falhas de injeção fáceis de descobrir.
- Fora isto, recomendo:
- Faça uma verificação de segurança completa em seu site, incluindo banco de dados, servidor de hospedagem, e-mail, etc..
- Realize a blindagem do servidor de aplicação, incluindo:
- Instalação e configuração de um HIDS - para se resguardar contra ataques de rootkit, backdoor, entre outros
- Instalação e configuração de um firewall de aplicação, que proteja ao menos contra os TOP 10 ataques da OWASP
- Instalação e configuração de um proxy reverso com cache. Isto irá melhorar drasticamente a performance da sua aplicação web, fora que você poderá gerenciar melhorar as interfaces administrativas
- Parametrização segura do seu banco de dados
- Parametrização segura do seu PHP, incluindo a OMISSÃO de erros
- Instalação e configuração de software que proteja contra brute-force, como exemplo cito o Fail2ban.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement