Libsafe: Protegendo Linux contra Smashing Overflow
Neste artigo vamos conhecer a libsafe, uma biblioteca que é capaz de interceptar tentativas de ataques baseados em Stack Overflow. Vamos ver alguns resultados e também como é fácil tornar o Linux um pouco mais seguro.
Parte 2: O que vem a ser libsafe?
Libsafe é uma biblioteca que protege os processos
contra explorações de buffer overflow. Libsafe funciona
com qualquer executável pré-compilado e pode ser usado de maneira transparente de acordo com sua função de ser uma biblioteca.
Libsafe intercepta qualquer e toda chamada feita a funções conhecidas por serem vulneráveis a ataques de buffer overflow. Uma função equivalente as originais é implementada com a funcionalidade original, porém barrando as tentativas de buffer overflow no stack corrente da função que está sendo substituída.
Libsafe foi criado com o intuito de proteger o sistema de todos os tipos de vulnerabilidades conhecidas utilizando transbordamento de buffer e também com intuito de tentar barrar ataques desconhecidos. Pesquisas utilizando tentativas de burlar a libsafe se mostraram insignificantes.
Abaixo vamos ver uma lista contendo as funções mais conhecidas por serem alvos constantes de ataques de stack smashing:
O código fonte do libsafe pode ser encontrado aqui:
http://www.research.avayalabs.com/project/libsafe/index.html
Libsafe intercepta qualquer e toda chamada feita a funções conhecidas por serem vulneráveis a ataques de buffer overflow. Uma função equivalente as originais é implementada com a funcionalidade original, porém barrando as tentativas de buffer overflow no stack corrente da função que está sendo substituída.
Libsafe foi criado com o intuito de proteger o sistema de todos os tipos de vulnerabilidades conhecidas utilizando transbordamento de buffer e também com intuito de tentar barrar ataques desconhecidos. Pesquisas utilizando tentativas de burlar a libsafe se mostraram insignificantes.
Abaixo vamos ver uma lista contendo as funções mais conhecidas por serem alvos constantes de ataques de stack smashing:
- strcpy(char *dest, const char *src)
- strcpy(char *dest, const char *src)
- strpcpy(char *dest, const char *src)
- wcscpy(wchar_t *dest, const wchar_t *src)
- wcpcpy(wchar_t *dest, const wchar_t *src)
- Pode causar um overflow no buffer de destino.
- strcat(char *dest, const char *src)
- wcscpy(wchar_t *dest, const wchar_t *src)
- getwd(char *buf)
- gets(char *s)
- [vf]scanf(const char *format, ...)
Pode causar overflow em seus argumentos. - realpath(char *path, char resolved_path[])
Pode causar overflow no path do buffer. - [v]sprintf(char *str, const char *format, ...) Pode causar overflow no str buffer. Pode exploitar "%n" (format bugs).
Onde posso baixar o Libsafe?
O código fonte do libsafe pode ser encontrado aqui:
http://www.research.avayalabs.com/project/libsafe/index.html
seguinte, to começando a me aventurar pelo mundo do slackware, e confesso que estou apanhando um pouco... mas faz parte do aprendizado, né?
bem então gostaria que vocês me dessem umas dicas sobre onde baixar pacotes para o slack... pode ser?
no aguardo... falow...