gcc -fstack-protector-all, Mudflap, DUMA e o Valgrind!

11 11 2007

“Quem programou em C ou C++ já esbarrou nesta categoria de erro: buffer overflows que podem vir acompanhados” (ou não de) outros problemas como ponteiros não inicializados, memory leaks, etc e como afirma o David LeBlanc “toda vulnerabilidade pode ser explorada até que se prove o contrário”, portanto codificar de forma segura e debugar é preciso! Entre algumas dicas já oferecidas aqui anteriormente, segue um artigo bem interessante do Savago onde ele trata de um específico tipo de buffer overflow e ele aborda o Mudflap e cita o Valgrind, que é uma ferramenta recomendada pelo Michael Behm como ferramenta para detectar problemas de memória.

[1] Detectando buffer over/underflow em C e C++ com ferramentas OpenSource

[2] Mudflap

[3] Valgrind

[4] Using valgrind to detect and prevent application memory problems





Cortando o mal pela raiz v1.0: Mudflap & Valgrind

10 11 2007

“Quem programou em C ou C++ já esbarrou nesta categoria de erro: buffer overflows que podem vir acompanhados” (ou não de) outros problemas como ponteiros não inicializados, memory leaks, etc e como afirma o David LeBlanc “toda vulnerabilidade pode ser explorada até que se prove o contrário”, portanto codificar de forma segura e debugar é preciso! Entre algumas dicas já oferecidas aqui anteriormente, segue um artigo [1] bem interessante do Savago onde ele trata de um específico tipo de buffer overflow que aborda o mudflap como ferramenta de debugging para encontrar estas falhas e o Valgrind que também é recomendada pelo Michael Behm.

[1] Detectando buffer over/underflow em C e C++ com ferramentas OpenSource

[2] Mudflap

[3] Valgrind

[4] Using valgrind to detect and prevent application memory problems





Os formatadores de strings da Granja do Solar

5 11 2007

Recentemente fiz uma revisão de código onde encontrei sprintf, gets, strcat e strcpy para todos os cantos, além de outros pecados mortais. Descontando os detalhes não tão óbvios, sobre strings, com várias fontes bibliográficas (inclusive em português), não acreditei na quantidade de código inseguro que encontrei num software comercial.

Como expressa o Sutter, “francamente, você já deveria estar utilizando snprintf mesmo antes dele ter tornado-se padrão” em “os formatadores de strings da Granja do Solar” capítulo do livro Exceptional C++ Style (que traduzido para o pt-br virou Programação avançada em C++) do Herb Sutter, onde de uma forma divertida ele cita George Orwell:

“Todos os animais são iguais, mas alguns são mais iguais do que outros”

Continue lendo »