Este post foi inspirado na notícia que li ontem na INFO sobre o site do phpBB, famoso aplicativo web de fóruns, que foi invadido por uma falha de segurança na instalação de outro aplicativo famoso chamado PHPList.
Analisando pela ótica do pogramador que sou, vejo que várias linguagens, inclusive o PHP, possuem sim várias brechas de segurança que por muitas vezes são tão bestas que são exploradas por novatos metidos a hacker. Mas agora lhe pergunto: Será que somente a linguagem tem furos? Será que a equipe de desenvolvimento das linguagens não presta a atenção nesses “pequenos detalhes”?
Na minha visão, como profissional da área, posso afirmar que no mínimo 75% das falhas exploradas não são da própria linguagem e sim, são falhas de programação e isso não é somente no PHP. Trocando em míudos, são brechas que o programador deixa quando escreve seu código. Vejo este problema acontecendo principalmente com os programadores novatos que querem somente sair escrevendo um monte de códigos para entregar seus primeiros projetos. Os mais experientes também não escapam deste problemão e podemos ver o exemplo do PHPList.
Curioso pra saber como o indivíduo invadiu o phpBB? Saiba mais aqui.
Sem mais delongas sobre o assunto, vou listar abaixo algumas coisas que todo programador web DEVE se preocupar, não importando se é novato ou não e não importando a linguagem.
- Mensagens de erro: tome cuidado com a exposição de informações que as mensagens de erro provocam. Uma simples falha de conexão com um banco de dados pode exibir o nome do banco e usuário do mesmo, e isso pode ser um prato cheio para um indivíduo mal intencionado;
- Criptografia: informações trafegam o tempo todo pra lá e pra cá e nada é mais fácil para um “hacker” do que interceptar esse tráfego na busca por informações sigilosas. Toda e qualquer informação considerada sigilosa deve trafegar com no mínimo uma criptografia básica. Eu aconselho (se você já tem mais experiência) a criar seu próprio algoritimo de criptografia;
- Validação de dados: tendo seu aplicativo na web você nunca terá 100% de controle sobre tudo que seus visitantes vão preencher em seus formulários, que diga-se de passagem, é a ferramenta mais importante de qualquer aplicação. Logo, filtre todas as informações afim de evitar ataques, tais como: XSS, SQL Injection, Mail Injection, HTML Injection e outros;
- Configurações de servidor: fique atento sempre as configurações dos servidores que pretende trabalhar, ainda mais se é novato na área. Existem diretivas que podem ser exploradas facilmente se não houver a devida preocupação por parte do programador na hora da codificação;
- Fique atento: visitar um site como o http://www.milw0rm.com/ pode ser útil para que você saiba quais as vulnerabilidades existentes em softwares, linguagens e etc. Isso pode lhe ajudar a proteger suas aplicações.
Por fim, lembre-se que essas são somente algumas dicas que podem lhe ajudar a proteger suas aplicações. Tenha em mente que as informações trafegadas em um sistema devem ser sempre consideradas sigilosas, independente da área de atuação.
Você é desenvolvedor? Tem alguma dica bacana? Então deixe seu comentário abaixo para complementar o post.
Espero ter ajudado no mínimo um pouco. Abraço!
5 Comentários
Olha… trabalhei com Joomla! e na sua versão 1.3 (se não me engano) havia um erro grotesco onde o indivíduo conseguia mudar a senha do Super Administrador através do formulário de requisição de senha… uma falha de lógica.
Graças ao fato do Joomla! ser Open source, a solução foi lançada rapidamente… mas eu não fui rápido o bastante e tive um site hackeado (sorte que não era de cliente).
Grande Klaus,
Sumidão hein!? Talvez vc possa relatar para nossos visitantes o sofrimento de ficar sem internet ou até mesmo o terrível sofrimento de se conseguir algo com a BRT 🙂
Seja bem vindo ao ambiente online novamente.
Jackson, sou profissional da area de segurança da informação e tambem desenvolver ,
concordo com sua visão sobre os programadores mas o grande problema e que esses profissionais precisam conviver com a pressão de entrega de soluções para seus respectivos negócios e acabam não atentando para os requisitos de segurança. Dessa forma acredito que a empresa tem grande culpa nisso por não implantar os processos corretos de desenvolvimento de sistemas, principalmente frameworks como CMMI, BSMM e outros. Deixo algumas normas de segurança aqui para a galera pesquisar : ISO15408 ISO27001
Jackson,
Post muito interessante….realmente a questão segurança é muito crítica, e devido os ambientes estarem cada vez mais “expostos” na web, o problema vai se tornando ainda mais complexo e difícil de controlar..
Parabéns…
Um abraço,
Emerson
Mensagens de erro e configurações do servidor é bem interessante. Vou reforçar mais em criptografia.
Valeu 😉