[FUG-BR] falha de segurança na familia BSD -

Patrick Tracanelli eksffa em freebsdbrasil.com.br
Sexta Agosto 10 20:57:39 BRT 2007


Nilson Debatin wrote:
> On Fri, 2007-08-10 at 18:22 -0300, Eduardo Meyer wrote:
>> Interpretação errada. TrustedBSD é a solução, não o problema. Alias,
>> CerbNG também não é o problema, e sim a forma de fazer o wrapping das
>> syscalls, como ele faz. Mesma coisa sobre o Systrace, que por sinal
>> foi portado pra Linux, e no Linux é pior ainda, é vulnerável com ou
>> sem Linux Sec Modules.
> 
> É talvez eu tenha interpretado errado quanto ao Trusted, mas como em
> pelo menos uma das camadas de seguranca que ele implementa ele faz
> auditing de syscalls é bem possível que venha a ser afetado no 
> decorrer da evolucão que inevitavelmente essa vulnerabilidade vai
> sofrer.

Quem faz a auditoria é o BSM AUDIT (options AUDIT), nao o MAC, e apenas 
acompanha o uso das syscalls, passivamente, afim de gerar logs e 
relatorios, e no futuro repassar essas informacoes pra um daemon de 
auditoria distribuida, e entao nao intervem, nao sobrepoe e nao modifica 
comportamento delas, e, principalmente, nao usa wrapping de syscalls. 
Entao acho imporvavel que qualquer trecho do TrustedBSD implique em algo 
diferente de seguranca adicional, ja que sempre que precisar fazer 
alguma coisa, tera os labels das camadas e os diversos modulos do 
framework (principalmente MAC) disponiveis, que é exatamente o que 
aumenta a seguranca. Usar wrapping de syscalls tendo o framework do 
trustedbsd seria no minimo, improdencia (pra n dizer burrice), e essa 
imprudencia provavelmente nao vai ser o proprio Robert Watson quem vai 
cometer (ja que ele quem trabalhou no BSM Audit da Apple e AUDIT do 
FreeBSD).

> 
>> Mas não nos apeguemos as aplicações. Dizer que o problema .e uma ou
>> outra ferramenta tá errado. O RWatson só citou alguns exemplos que ele
>> pesquisou. Se procurar encontra muitos mais. O que está sendo apontada
>> é falha de design e depender de syscall wrapping para impor segurança
>> quando na verdade se abre um enorme buraco para explorar falhas, e
>> principalmente esta sendo apontada a importancia de dispositivos de
>> seguranca em layers e  tambem stacking (empilhamento).
> 
> As aplicacões pouco contribuem mesmo pro problema, o grande culpado
> é o kernel, afinal a coitada da userland só faz chamadas as syscalls.
> Agora que isso é um pepino brabo na mão dos desenvolvedores isso é, e
> aposto que as primeiras solucões vao ser do tipo gambiarra e vai trazer
> uma certa (por enquanto indefinível) degradacão de performance.

Acho que voce tem razao, as primeiras ideias que eu vi no undeadly.org 
pra amenizar o problema, são pura gambiarra hehehe. Por outro lado é bem 
curioso ver como os sistemas são tao diferentes, mesmo sendo todos de 
mesma origem, sendo todos BSD (isso pra tomar conta da nossa cozinha, 
sem ficar olhando o quintal alheio hehe, deixem que solaris, linux e 
windows olhem seu umbigo enquanto nos olhamos o nosso): FreeBSD e Mac OS 
tem frameworks extensivos e extensiveis, bem projetados e seguem um 
padrao (POSIX.1e), enquanto DragonflyBSD, originado do FreeBSD, 
curiosamente nao tem nada disso, e usa message-passing (obviamente fruto 
das pretencoes futuras do sistema quanto a clusterizacao e paralelismo), 
que tambem é eficaz pra resolver o problema, enquanto Net/OpenBSD (um 
derivado do outro) se atem a syscall wrapping (que é mesmo mais comum, 
provavelmente mais simples de implementar e cetamente nao requer um 
framework nem reescrita inteira do SO).

> A solucão é ficar com um olho no OpenBSD, que deve ser o primeiro a
> propor solucões pra isso e com o outro nos exploits que vão sair pra
> ver se afetam os SOs que usamos.

Acho que o OpenBSD é que tem que abrir o olho. Todo um espetáculo em pró 
da segurança, parece o espetáculo do crescimento do Lula, e não investe 
em subsistemas que realmente tornem o ambiente, no mínimo, mais distante 
das primitivas básicas do modelo de privilégios Unix. FreeBSD tem 90% do 
POSIX.1e, com MAC, extattr e a partir do 8.0-CURRENT, fine-grained 
capabilities. Linux tem LSM, que apesar de nao ser um MAC da vida 
(palavras do proprio autor do LSM), e' util e poderoso, e combinado com 
NIDS, ACL e outras coisinhas menos relevantes deram alguma certificacao 
pro Red Hat "trusted" (esqueci o nome dessa versao do produto). Mac OS X 
Leopard eh UNIX 03 e brigando pela mesma certificacao de seguranca que o 
rwatson quer pro FreeBSD. Enquanto OpenBSD parece que ta meio parado no 
tempo, preocupado mais com drivers e documentacao de drivers oferecidos 
por fabricantes, e "o odio aos drivers binarios pra sistemas livres" do 
que com remodelacao de seguranca. E Systrace da vida, segue a mesma 
primitiva do CerbNG, e esse caminho claramente nao parece ser o mais 
apropriado.

Acho que o silencio, ate o momento, do OpenBSD vai direto em encontro a 
um dos lemas do projeto: "Shut up and Code!". Nao e' hora de brigar, 
contestar, ou vir com declaracoes tipicas do Theo. E' hora de ficar 
quieto e desenvolver. Estou torcendo por isso, e espero que se um 
esforco nesse sentido vindo do OpenBSD, seja em conjunto com o Robert 
Watson. Afinal, ele trabalha com os desenvolvedores do Mac OS, trabalha 
com o Chris Wright do Linux Security Modules, trabalha o engenheiro de 
seguranca da Sun (esqueci o nome, preciso consultar no site da fug 
hehe), so pra citar os sistemas que mais pesquisam nessa area, e 
implementa tudo isso no FreeBSD ou porta pro FreeBSD o que é bom em 
outros (OpenBSM Audit, pra citar um). O natural seria cooperacao 
conjunta do Theo tambem. Mas, é só torcida minha ;) Nao acho que isso va 
acontecer...


-- 
Patrick Tracanelli

FreeBSD Brasil LTDA.
(31) 3281-9633 / 3281-3547
316601 em sip.freebsdbrasil.com.br
http://www.freebsdbrasil.com.br
"Long live Hanin Elias, Kim Deal!"



Mais detalhes sobre a lista de discussão freebsd