10_Security in web applications (pweb)

Segurança em aplicações Web
O que é uma vulnerabilidade? é uma fraqueza que permite aos atacantes ganharem acesso ao sistema ou a informações
Causas de vulnerabilidades:
complexidade
falhas no desenho da app
software bugs
falhas ao nível das passwords e privilégios

Uma vulnerabilidade é uma fault, que deixa espaço para a exploração maliciosa de um sistema.

Exemplo de ameaças ao software:
Denial of service (Oversize Payload, Coercive Parsing, Oversize Cryptography, Attack Obfuscation, Unvalidated Redirects and Forwards)
Brute force (Insecure Cryptographic Storage, Broken Authentication and Session Management)
Spoofing (Insufficient Transport Layer Protection, Metadata Spoofing, Security misconfiguration)
Injection (SQL Injection, Cross site Scripting (XSS), Cross Site Request Forgery, XPath Injection)
Flooding (Instantiation Flood, Indirect Flooding, BPEL State Deviation)

Exemplo de vulnerabilidades de aplicações web:
_estão expostas
_os hackers movem as suas atenções da rede para o código da aplicação web
_aplicação de vários níveis de ataques: (portas da network, tempered values, o código implementado nas aplicações)

Vulnerabilidades (injection vulnerabilities):
SQL injection (alterar a expressão de SQL que está a ser usada, alterar os dados da base de dados ou até mesmo executar comandos no sistema)
XPath injection (modificar o xpath que está previamente programado, ou ganhar acesso através do acesso a documentos XML)
Code execution (é possivel manipular os dados de entrada para enganar o ocidgo do servidor)
Cross-site request forgery (CSRF) (o utilizador pode manipular um utilizador para que este execute acções indesejadas assim que está autenticado. Faz isto enviado um link para o utilizador)

Soluções para segurança das aplicações web:
defense in depth: endurecendo todas as camadas da infraestrutura tecnológica através:
colocar restrições na capacidade do servidor de correr componentes autonomamente;
colocar ou elevar o nível dos filtros relacionados com os níveis de tráfico;
fazer uso de um IDS para identificar actividade anómala na infraestrutura;

Todas as entradas são consideradas maliciosas até prova em contrário.

Linhas de protecção:
Input validation (normalização dos dados de entrada, usar filtros para recusar valores fora do dominio)
Hotspot protection (garantir que está correctamente implementada)
Output validation (validar a saida de um determinado processo antes de este ser enviado)
Protect back-end resources (funcionalidades desnecessárias devem ser removidas, dedicar especial atenção quando se lida com informação)

Lidar com o SQL Injection:
impor validação do SQL;

Fazer uso de ferramentas online:
HP WebInspect
WSFuzzer
Acunetix
WatchFire
Rational APPScan
Foundstone
WEDigger

Tags : ,