Segurança de Aplicações, o problema é o que entra!
12 de setembro de 2015Segurança de Aplicações
Meu médico já dizia, para viver bem e ter saúde precisamos controlar o que ingerimos, fazer atividade física, viver feliz, diminuir o stress e agradecer a Deus todos os dias.
Por: Anderson H Porcel*
Alguns desses sábios conselhos têm um fundamento comum, “o que deixamos entrar no nosso corpo”.
O que comemos, o que olhamos, o que ouvimos, quais notícias absorvemos, quais conselhos e reclamações deixamos entrar, afinal, nos alimentamos do quê?
Se ingerirmos alimentos ricos em “lixo”, nosso corpo entra em deficiência, algumas funções podem ser comprometidas, talvez alguns remédios precisem ser administrados e podemos até parar funções vitais.
Mas como tudo isso está relacionado com a segurança de aplicações?
Explico: as aplicações têm o mesmo fundamento, segundo a última versão do “OWASP Top 10”, que identifica e classifica os riscos mais graves na segurança de aplicações, o risco número 1 da lista é a “Injeção”, ou seja, tudo o que entra em nosso sistema informatizado.
Assim como precisamos cuidar do que ingerimos em nosso corpo – para termos uma vida feliz e saudável, precisamos cuidar do que nossas aplicações ingerem – para que nossa organização tenha uma vida feliz e saudável.
Mas eu não sabia que as aplicações se alimentavam … pois é, elas se alimentam e muito. Por exemplo, se sua empresa tem um sistema na internet com vários formulários e entrada de dados, todo o mundo (literalmente) pode alimentá-la com dados, e é neste ponto que está o risco.
Se você não tratar a entrada, seu corpo, digo, seu interpretador, pode ser iludido a executar comandos indesejados ou liberar acesso indevido, causando deficiências, comprometimento de funções e até eliminando sua empresa do mapa (já imaginou ter seus dados pessoais expostos na rede porque sua companhia de telefonia não cuidou direito deles?).
Falando um pouco mais sobre o risco de Injeção, considere alguém que possa enviar dados não confiáveis para seu sistema, esses dados podem ser simples como texto que exploram a sintaxe do interpretador, ou mais agressivos como consultas SQL, LDAP, Xpath, NoSQL, comandos do sistema operacional, analisadores XML, cabeçalhos SMTP, argumentos do programa, etc.
A injeção pode resultar em perda ou corrupção de dados, negação de acesso e até levar ao comprometimento completo do servidor e consequentemente do seu negócio.
Algumas técnicas podem ser utilizadas para descobrir se sua aplicação é vulnerável:
(1) verificar se todos os usos dos interpretadores separam claramente os dados não confiáveis do comando ou consulta, por exemplo, se as chamadas SQL utilizam variáveis de ligação em todas as instruções (bind variables, prepared statements, stored procedures),
(2) utilizar ferramentas de análise de código para ajudar a encontrar o uso dos interpretadores e traçar o fluxo de dados através da aplicação e
(3) Testes de invasão para confirmar a vulnerabilidade. Aqui vale uma ressalva, as ferramentas são um apoio e não a solução dos problemas, a atuação de um especialista é fundamental.
A segurança das aplicações deve fazer parte da cultura da empresa e deve ser constantemente alinhada aos riscos do seu negócio. Nunca desanime!!!
Anderson H Porcel Development Consultant at HSBC Bank Brazil
Consultor de Sistemas, formado em análise de sistemas pela PUC-PR com MBA em gestão de TI, trabalho há vários anos no desenvolvimento de sistemas para internet, dedicando os últimos oito no setor bancário com foco em autenticação e segurança de aplicações financeiras.