sábado, 8 de junho de 2013

Security Scanner

Segurança deve ser uma preocupação constante no desenvolvimento de uma aplicação, não apenas dedicarmos nosso cuidado com o desempenho, beleza e a usabilidade, como estamos mais acostumados e treinados a pensar.  Pior que isso, precisamos estar atentos aos últimos estilos e tendências dos ataques. Até parece moda! Aliás, qual será o destaque no próximo verão?  Ok, vamos ao que interessa, o que preciso programar para deixar minha aplicação segura?

Essa pergunta é difícil de responder, diríamos que podemos utilizar certos recursos para torná-la menos vulnerável. Segura totalmente, creio que nem mesmo as aplicações da Policia Federal estão. Então para dar uma mãozinha na descoberta dessas vulnerabilidades a Artech publicou uma importante extensão chamada SecurityScanner que investiga todos os objetos programados na kb e aponta as possíveis falhas de segurança que estas apresentam, utilizando para isso as recomendações apontadas na lista Top 10 da OWASP.

Para compreender melhor sobre essas possíveis vulnerabilidades, publicamos link's com as recomendações da Artech a respeito de segurança nas aplicações Genexus.
Finalmente, fizemos uma compilação básica dos possíveis problemas que podemos ter, seguindo essas recomendações e chegamos a uma conclusão mais resumida das principais configurações e recursos que devemos aplicar em nossa aplicação.
  1. Não utilize cookies para guardar informações relevantes (dados do usuário, informações confidenciais, ..., nem pensar)
  2. Utilize um certificado CSS Válido e chamadas HTTPS
  3. Marque a propriedade Encrypt URL Parameters
  4. Cautela ao utilizar campos de edição no formato HTML para que os usuários registrem suas próprias coisas.  Nesse caso bloqueie a inclusão de código do tipo
  5. Guarde informações na sessão Web encriptada, Encrypt64
  6. Guarde informações relevantes no banco de dados também encriptadas (com MD5, por exemplo)
  7. Cuidado com os diretórios abertos e acessíveis no servidor, e as operações de Upload
  8. Contrate um profissional de segurança para configurar seus servidores
  9. Não programe links com parâmetros por extenso, por exemplo, http://chama.com.br/criaconta.aspx?id=1111,senha=123456
  10. Não utilize SQL's dinâmicos, deixando para o usuário programar seu conteúdo, com o comando SQL ou acesso nativo
  11. Avalie a programação dos objetos nativos (C# ou JAVA) para observar se os mesmos não estão abrindo portas.
  12. Elimine arquivos desnecessários no UPLOAD do projeto para o servidor (elimine EXE's, cliente.exe.config, programas fontes, ...)
  13. Utilize o GAM, se possível
Esqueci de algo? com certeza, então nos auxilie dizendo qual será a próxima moda dos ataques mais comum no próximo verão.

Antes de fechar a conta, mais uma, o código do Security Scanner é aberto e público https://www.assembla.com/spaces/genexus-securityscan/wiki