[FUG-BR] Happy Birthday FreeBSD! Now you are 20 years old and your security is the same as 20 years ago... :)

Adam Sina innoveco em vip.sina.com
Sexta Junho 21 00:57:55 BRT 2013


REMOVE, thanks.




Many thanks & Best Regards

Adam Xu

Innoveco Electronics Ltd.

Tel: +86-755-27336484  

Fax: +86-755-23082655 

MB: +86-1376 0147 670

From: Patrick Tracanelli
Date: 2013-06-21 04:28
To: Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)
Subject: Re: [FUG-BR] Happy Birthday FreeBSD! Now you are 20 years old and your security is the same as 20 years ago... :)


Em 20/06/2013, às 16:03, Daniel Bristot de Oliveira <danielbristot em gmail.com> escreveu:

> o FreeBSD começou em 1993, este ano comemora-se 20th aniversário do Freebsd.
> 
> Os problemas de "20 anos atrás" vem do fato de que o FreeBSD ?20 anos
> atrás, como era um sistema "nascendo", com muitas features novas, tinha
> bugs facilmente exploráveis, como este.
> 
> Então, o que ele quis dizer foi, com um tom de ironismo:
> 
> O FreeBSD tem falhas de segurança, como ?20 anos atrás, quando estava
> nascendo. Ele quis então dizer que o FreeBSD ?um sistema imaturo, mas pelo
> e-mail, não mais imaturo quanto ele (o cara que escreveu).

Pois ?tem bastante coisa errada hehehe

FreeBSD faz 20 anos esse ano mas não esse mês; ou muito me engano ou o ramo do RELENG_1 foi criado em Setembro de 1993, não sei o dia do primeiro commit porque ainda tenho alguma vida social, mas alguém deve saber ao certo. Então FreeBSD foi "gerado" em Setembro mas veio ao mundo, oficialmente, viu a luz, em 1 de Novembro de 1993.

Então a data correta  e o anúncio do FreeBSD 1.0 marca seu aniversário, 1 de Novembro (de 1993). Mas tudo bem comemorar o ano inteiro :D

Uma copia do anuncio feito pelo Jordan Hubbard: http://ftp.netbsd.org/pub/NetBSD/misc/release/FreeBSD/FreeBSD-1.0

O ports ?de 21/08/1994, data que o mk do ports foi commitado e data que os primeiros 2 ports foram commitados, emacs, jove e bash.

Sobre a falha de segurança ela não existe ha 20 anos. Ela foi introduzida no FreeBSD 9.0. O exploit em questão explora a falha do MMAP mas não ?um exploid 0day. Esse mesmo exploit tem 100% de efetividade em FreeBSD 9.1, 9.0-STABLE mas falha em 30% dos casos em FreeBSD 9.0-RELEASE. 

Sobre a mitigação mencionada, colocar security.bsd.unprivileged_proc_debug=0 mitiga APENAS o exploit publico:

# sysctl security.bsd.unprivileged_proc_debug=0
security.bsd.unprivileged_proc_debug: 1 -> 0
# ^D%
%
% ./a.out
FreeBSD 9.{0,1} mmap/ptrace exploit
by Hunger<fbsd9lul em hunger.hu>
a.out: ptattach: a.out: Operation not permitted
ptraceme: Operation not permitted
%

Ou seja não mitiga a falha do mmap. Esse exploid foi feito pra explorar da forma a falha de uma forma específica mas não ?a única. Desligar essa sysctl não ?um workaround permanente, logico que ?bom que se faça de imediato, mas evita apenas esse exploit. Podem haver outras formas de explorar a mesma falha do mmap então a correção de verdade ?de código, atualizar.

Por último, os créditos da vulnerabilidade são kib em FreeBSD.org e alc em FreeBSD.org, a falha foi identificada, corrigida, e anunciada, em casa. Não foram researchers externos, não foi um 0day, etc. A coisa foi como deveria ser com todo sistema com uma política responsável de Full Disclosure. O exploit em questão saiu quase 2 dias depois do advisory oficial (que saiu junto com a correção).

O FreeBSD-SA-12:04.sysret  de exatos 1 ano atras tem o mesmo impacto, afeta do RELENG_7 ao _9, e não ganhou todo essa atenção e barulho, por que? A postura ?a mesma galera: APLIQUEM A CORREÇÃO.

Não se deixem impressionar pela tag "20 years old" que s?pertence (ou quase) ao FreeBSD. Não a falha, não a segurança do FreeBSD. E a data de 20 anos est?errada então at?nisso o menino que fez o exploit resolveu usar o timing pra fazer barulho.

Alias a afirmação que a segurança do FreeBSD ?de 20 anos atrás ?no mínimo, imprecisa. Sistemas com política mac do tipo bsd_partition como o Evandro mencionou, não permitem essa exploração (logico contanto que o PID esteja isolado em um partition diferente do partition 0 que ?do root/kernel), firewall de sistema de arquivos não evita a exploração da falha Evandro (bsd_extended) mas políticas MAC e o PARTITION sim, evitam. Capabilities também evita.

Ou seja recurso pra hardening "contemporâneo" FreeBSD tem. Talvez mais que outros sistemas.

Acho que o certo seria dizer que temos sysadmins com noção de segurança de 20 anos atrás. Não que o FreeBSD tem a mesma segurança. Est?ai, quem aqui da lista usa MAC partition? MLS? LOMAC? BIBA (olha a homofobia antes de responder hehehe)? Alias quem na lista tem chflags ou securelevel acima de 0? Alias quem daqui tem seu webserver, e outros servidores tipicamente sucetiveis a ataques no minimo dentro de um jail? Porque a falha em questão não permite por exemplo escapar de um jail:

% ./a
FreeBSD 9.{0,1} mmap/ptrace exploit
by Hunger<fbsd9lul em hunger.hu>
# id
uid=0(root) gid=0(wheel) egid=1001(freebsdbrasil) groups=1001(freebsdbrasil),0(wheel)
# jls
   JID  IP Address      Hostname                      Path
# ls -di /
9470208 /

Então se nem o mínimo nego anda fazendo, talvez o que tenhamos, igual h?20 anos, sejam mesmo os sysadmins - com noção de segurança de 20 anos atrás. Se bem que as vezes tenho saudade 

Afinal do que adianta o DoD ter tuxado milhoes de USD no TrustedBSD se ninguem usa nem?securelevel positivo ou jail? ehahuhuaa não que nesse caso fosse mitigar a falha mas serve pra se pensar a respeito.

Porque grandes commiters de kernel que as vezes deixam algo passar e geral vulnerabilidade, num projeto desse tamanho, dessa idade, e com esse numero de desenvolvedores, vai eventualmente acontecer.

Mas outros grandes commiters virão pra ver caca, corrigir e publicar o adequado security advisory :-)

Então os sysadmins que não fazem hoje o mínimo hardening discutido h?mais de 20 anos, que pelo menos acompanhem os SA e atualizem ne? hehehe




> 
> 
> 
> On Thu, Jun 20, 2013 at 3:42 PM, Evandro Nunes <evandronunes12 em gmail.com>wrote:
> 
>> On Thu, Jun 20, 2013 at 9:29 AM, Marcelo Gondim <gondim em bsdinfo.com.br
>>> wrote:
>> 
>>> ?pessoal,
>>> 
>>> Sei que a vulnerabilidade foi corrigida agora mas foram 20 anos para
>>> detectar isso?  :(
>>> E funciona lindo mesmo o programa.
>>> 
>> 
>> de onde saiu isso que tem 20 anos? pelo pouco que deu pra ler explora uma
>> falha do freebsd 9 inclusive o security adv so explora o freebsd 9
>> alguem teve sucesso com freebsd 8, 7, outro?
>> acho que a frase "seguranca de 20 anos atras" foi apenas ironiazinha
>> pelo que vi esse vulnerabilidade nao afeta quem tem debug de processo nao
>> root nem quem tem mac_partition ou bsdextended implementado
>> 
>> nego quer ?aparecer rss rsss a falha tai, mas não teve 0day inclusive o
>> "ultra mega hacker expert" s?fez o exploit depois que o advisory foi
>> publicado, e ainda levou 2 dias pra conseguir explorar o que ja estava
>> documentado e corrigido e vem tirar uma onda de full disclosure...
>> 
>> 
>>> 
>>> 
>>> -------- Mensagem original --------
>>> Assunto:        Happy Birthday FreeBSD! Now you are 20 years old and your
>>> security is the same as 20 years ago... :)
>>> Data:   Wed, 19 Jun 2013 23:32:59 +0200
>>> De:     Hunger <hunger em hunger.hu>
>>> Para:   full-disclosure em lists.grok.org.uk

-------------------------
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Mais detalhes sobre a lista de discussão freebsd