Possuindo poucos olheiros para manutenção do código e perdendo espaço para o Linux, o BSD como conhecemos está possivelmente fadado a um triste fim.
| Se você apoia nosso site, desative o AdBlock quando visitá-lo, inclusive em Mobile!
Os anúncios são poucos e não invasivos. Se quiser contribuir com nosso trabalho, clique em qualquer banner de sua preferência, exceto dos Parceiros. Mais detalhes clicando aqui.
Introdução
As versões de código aberto do Berkeley Software Distribution (BSD) sofrem com a falta de olheiros em seu código, e isso prejudica sua segurança, disse Ilja Van Sprundel, diretor de testes de penetração no IOActive, a uma audiência no evento “34c3” em Leipzig, na Alemanha, no final de dezembro de 2017.
Inconformado pelo pequeno número de vulnerabilidades encontradas e reportadas no kernel BSD em comparação com o kernel Linux, Van Sprundel se sentou e analisou o código-fonte do BSD em seu tempo livre em meados de Junho do ano passado. “Como é que há apenas uma pequena quantidade de avisos de segurança do kernel BSD publicados todos os anos?” ele queria saber. “É porque os BSDs são muito mais seguros? Ou é porque ninguém está olhando?”
Van Sprundel diz que encontrou de cara cerca de 115 erros de kernel nos três principais BSDs, incluindo 30 para o FreeBSD, 25 para o OpenBSD e 60 para o NetBSD. Muitos desses bugs ele chamou de fruta quase madura, por estarem próximos de se tornarem ameaças de alto risco. Ele informou prontamente todos os bugs encontrados, mas seis meses depois, no momento de sua palestra, muitos permaneceram sem correção.
“De um modo geral, a maioria das falhas de segurança no kernel do Linux não tem uma vida longa. Eles são encontrados e corrigidos muito rapidamente”, diz van Sprundel. “No lado BSD, isso nem sempre é verdade. Achei um monte de erros que existem há muito tempo. Muitos deles estiveram presentes no código por uma década ou mais.”
OpenBSD: O de Código mais Seguro
“O foco do OpenBSD em segurança nas últimas duas décadas mostra-se no código“, disse van Sprundel ao público. “O OpenBSD, de longe, tem os desenvolvedores mais habilidosos quando se trata de segurança“.
Por um lado, o OpenBSD tem uma base de código muito menor, cerca de 2,9 milhões de linhas de código, em comparação com os 7 milhões do FreeBSD e os 7,3 milhões do NetBSD. “Obviamente, isso influencia“, diz van Sprundel. “Você não pode ter um erro num código inexistente“.
Esta base de código menor é, em parte, por acidente, ele sugeriu, na medida em que a falta de recursos para desenvolvedores impediu o OpenBSD de implementar todos os recursos que eles queriam; mas também de menor interesse, uma decisão deliberada de reduzir a superfície de ataque, incluindo a remoção de suporte para dispositivos raros, arquiteturas incomuns e antigas.
Em termos de qualidade de código, Van Sprundel também elogiou o código OpenBSD, observando que “erros do tipo frutas quase maduras, como overflow de números inteiros, são tão boas quanto são na maioria dos sistemas” e que “a qualidade mais consistente foi observada com o OpenBSD“.
No entanto, a relativa falta de popularidade do OpenBSD prejudica a segurança do sistema operacional, ele sugeriu. “Os erros ainda são fáceis de encontrar. Se houvessem mais pessoas olhando para o OpenBSD, haveria mais erros [sendo relatados]“.
Theo De Raadt, fundador da OpenBSD, concordou com Van Sprundel que mais olheiros no OpenBSD tornariam o sistema operacional mais seguro. “Eu lembro de ler seus primeiros slides, que foram principalmente sobre o impacto de pequenos abusos da API“, diz De Raadt à CSO Online por e-mail. “Infelizmente, este é um problema do volume de código relativo à mão de obra. Garantir que todo o código seja 100% livre de erros e lidar com todas as condições excepcionais é um problema bastante difícil“.
Van Sprundel também elogiou a resposta do OpenBSD às descobertas de seus erros, dizendo que De Raadt respondeu dentro de uma semana e o OpenBSD corrigiu as falhas dentro de alguns dias.
“Comuniquei-me com Ilja desde o início e fiz a nossa equipe trabalhar em suas descobertas“, escreve De Raadt. “Nós resolvemos todos eles dentro de uma semana ou mais e disponibilizamos patches para aqueles que eram importantes. Na minha experiência, a única maneira de ser proativo e responsivo em um projeto de software dirigido por voluntários é nunca adiar a aferição de um problema. Os problemas devem ser tratados o mais rápido possível para manter o interesse neles [ou eles caem no esquecimento]“.
NetBSD: O de código de menor qualidade
O foco do NetBSD por muitos anos foi suportar a maior gama de hardware possível. Com este objetivo, no entanto, vem a necessidade de incluir uma grande quantidade de código de compatibilidade legada, binária e compatível com vários graus de qualidade, e, destacou-se como o menos consistente com a qualidade do código no quesito segurança.
A resposta do NetBSD aos relatórios de bugs de Van Sprundel foi surpreendentemente boa e ruim. Por um lado, eles disseram: “Eles corrigiram praticamente todos os erros submetidos, praticamente durante uma noite!. Por outro lado, essas correções ainda não foram enviadas aos usuários mesmo após seis meses. A menos que você compile suas próprias versões do código recém descoberto, seu sistema NetBSD ainda estará vulnerável“.
Os desenvolvedores do NetBSD corrigiram a conta de van Sprundel, observando que o NetBSD 7.1.1, enviado em 22 de dezembro de 2017 – uma semana antes dele falar na “34c3” na Alemanha – continha patches para os problemas de segurança que encontrou. “Muitas de suas descobertas foram nas camadas de compatibilidade binária, e essas não são coisas que vão causar uma vulnerabilidade remota de qualquer maneira”, diz Taylor R Campbell, membro do conselho de administração da NetBSD Foundation. “Alguém precisaria de acesso local ao sistema para executar esse código“.
O grande número de bugs encontrados por Sprundel no NetBSD e a resposta lenta do projeto, levantam a bandeira vermelha sobre o futuro do NetBSD. “O NetBSD está praticamente morto“, disse Patroklos Argyroudis, pesquisador de segurança no Census IT Security Works, cujo trabalho sobre a segurança do BSD Sprundel abordou em sua palestra. “No passado, haviam algumas empresas que estavam tentando apoiá-lo comercialmente, mas acho que já não mais os apoiam a muito tempo”
Embora o NetBSD seja um projeto de código aberto voluntário sem desenvolvedores em tempo integral, Campbell e David Maxwell, um ex-membro do conselho da fundação do NetBSD, são ambos confiantes, e afirmam que o pessimismo de Agryroudis é infundado. “Nosso principal objetivo é ter um sistema base com uma arquitetura limpa, então torna-se muito fácil portar o sistema para novas plataformas”, diz Maxwell. “Nós provavelmente continuaremos a ser fortes no lugar que temos sido historicamente“.
“Também somos notoriamente ruins no marketing“, acrescenta Campbell.
Pequena Análise Opinativa
O NetBSD continua sendo desenvolvido e diversas correções de segurança já chegam aos usuários finais mais rapidamente, conforme as notas de anúncio do lançamento do NetBSD 8.0 em Julho deste ano, publicado aqui no site!
FreeBSD: O mais avançado dos BSDs
Devido a seu incontestável desempenho de sua pilha de redes, o FreeBSD é, de longe, o mais popular dos três grandes BSDs e encontra um lar na Netflix, WhatsApp, entre outros.
“Em testes modernos, o FreeBSD está lado a lado com o Linux, ou superando-o um pouco”, diz van Sprundel. “Em qualquer lugar onde você pode implantar o Linux, é seguro dizer que você provavelmente poderá implantar o FreeBSD. Eles são implantados massivamente em muitos lugares“.
- Um sistema BSD é mais rápido que um sistema Linux? Abordamos isso aqui!
O FreeBSD respondeu aos 30 erros do kernel em cerca de uma semana e corrigiu alguns no seu repositório de código-fonte. No entanto, o projeto de software lançou apenas um punhado de avisos, e “o status do resto é desconhecido até aquele momento“, de acordo com Van Sprundel.
O projeto FreeBSD adiou a correção de algumas descobertas de Van Sprundel, no entanto. “Um dos problemas que temos é que existe uma grande variedade de falhas que estão sendo encontradas, mas há algumas delas que não possuem explorações práticas“, afirma Ed Maste, diretor de desenvolvimento de projetos da Fundação FreeBSD e membro do time eleito do FreeBSD. “Começamos a tratar algumas destas falhas, como apenas erros, e não como problemas de segurança“.
A falta de desenvolvedores prejudica a segurança do FreeBSD, não só na capacidade de responder aos relatórios de erros, mas também para implementar novos recursos de segurança padrões do setor, sugere Argyroudis. “O BSD mais popular, o mais tecnicamente avançado, é o FreeBSD, mas eles não têm tantos desenvolvedores [como o Linux], e isso basicamente significa que estão um pouco atrasados em termos de recursos de segurança“.
Apenas recentemente, o FreeBSD implementou suporte preliminar para ASLR em userland, diz Argyroudis, e ainda não suporta KASLR. Ele também questiona se a pilha de rede do FreeBSD ainda é um recurso que nenhum outro sistema consegue chegar á altura.
“Talvez dez anos atrás, havia essa noção de que o FreeBSD era aquele que tinha o melhor desempenho, que sua pilha de rede era muito melhor, e outras coisas assim“, diz Argyroudis. “Não tenho tanta certeza se esse é mais o caso. Eu definitivamente ficaria cético sobre isso“.
Pelo outro lado, Maste não concorda. “Somos capazes de fazer uma enorme quantidade de trabalho com uma base de desenvolvedores muito menor, fenomenal em termos de quantidade e qualidade de trabalho em comparação com o Linux”, diz ele. “A sugestão de que nosso futuro é de alguma forma prejudicado pela falta de desenvolvedores é absolutamente falso“.
As vulnerabilidades do kernel do FreeBSD afetam o macOS?
Há muito código FreeBSD no macOS, e a equipe de segurança do FreeBSD coordena a divulgação com a Apple, diz van Sprundel. Ainda não está claro, no entanto, quão mal essas vulnerabilidades relatadas afetam os notebooks da Apple. O kernel Darwin divergiu fortemente do FreeBSD de 15 anos atrás, e o macOS recebeu muito mais suporte dos pesquisadores de segurança ao longo dos anos.
“Quando eu enviei os erros que eu tinha para a equipe de desenvolvimento do FreeBSD, eles perguntaram: Você se importa se enviarmos isso para os desenvolvedores da Apple?“, disse van Sprundel. “Então, a equipe de segurança da Apple tem essa lista de erros. Não tenho idéia do quanto isso se aplica a eles. Provavelmente há alguns erros que se aplicam lá“.
A Apple não respondeu ao nosso pedido de comentário, e Maste recusou-se a especular, apontando que apenas a Apple saberia a resposta a essa pergunta. Porém Maxwell da NetBSD foi categórico em apontar que o macOS inclui código não apenas do FreeBSD, mas também do NetBSD e do OpenBSD.
Os BSDs estão morrendo?
A popularidade afeta a segurança, afinal. Mais olhos no código significam erros com vida mais curta e mais desenvolvedores significam que novos recursos de segurança chegam os usuários mais rapidamente. Os BSDs perderam a batalha pelo mindshare e marketshare para o Linux, e isso pode muito bem deixar de suportar a futura sustentabilidade dos BSDs como sistemas operacionais viáveis e seguros.
“Diga o que você quiser sobre as pessoas que analisam o código do kernel do Linux, há simplesmente mais ordens de grande magnitude“, conclui Van Sprundel. “Com base no meu resultado, a qualidade do código por si só não pode explicar a discrepância entre os números de vulnerabilidades reportadas (BSD versus Linux)“.
O OpenBSD pode ser o mais provável de sobreviver [no longo prazo], apesar de ser atualmente muito menos popular que o FreeBSD, sugere Argyroudis. “Vejo uma maior chance de o OpenBSD sobreviver porque tem um caso de uso mais focado e seu alvo são coisas específicas. FreeBSD, acho muito mais difícil para ele sobreviver do que o OpenBSD“.
Porém medir a popularidade dos BSDs é particularmente difícil, argumenta Maste. “Um dos desafios com a tentativa de medir ou quantificar a popularidade do FreeBSD ou dos outros BSDs é que, em muitos casos, é usado em aplicativos ou implementações que não são particularmente visíveis“, diz ele, como aparelhos ou produtos que são desenvolvidos sob derivados do FreeBSD, como o sistema operacional do PlayStation 4 ou do Nintendo Switch – os quais abordamos aqui e aqui em nosso site.
A licença BSD permissiva torna ainda mais difícil quantificar a popularidade dos BSDs. “Para os usuários finais, coisas como a licença no código podem não importar muito“, diz Maxwell da NetBSD, “mas para as pessoas que compõem sistemas incorporados, para as pessoas que estão construindo produtos, para empresas e indústrias, o licenciamento do código é muito importante“.
Argyroudis continua a ser pessimista sobre o futuro dos BSDs. “Eu adoro a base do código BSD e eu adoraria poder contar-lhes coisas diferentes do que falei acima, como por exemplo “o FreeBSD sendo o mais popular e o quão fácil é sobreviver contra o Linux”. Infelizmente, eu não acho que esse é o caso.
“Eu acho que isso se resume a uma falta de desenvolvedores”.
Análise Opinativa
Curioso ver como o BSD perdeu espaço para o Linux nos meios corporativos. Antigamente, o BSD era dito como o kernel mais seguro e mais estável. E deveras provavelmente o FreeBSD atualmente possa estar acima do linux nesse quesito, porém por pouco. Após o surgimento da linha 4.0 do Kernel Linux, este se tornou sólido o suficiente pra ser uma alternativa viável em uso industrial. Exemplo, ver os 500 maiores e melhores supercomputadores do mundo – que antes usavam Windows ou UNIX® AIX da IBM, por serem licenciados e pagos porém estáveis e seguros – agora todos usam Linux, deve significar algo aqui: Que o pinguim está sólido o suficiente para ser confiável em tarefas científicas.
Temos o surgimento inclusive, de grandes sistemas operacionais de pilhas de rede, como é o caso do ClearOS, o Alpine Linux e o Untangle NG que competem lado a lado com os atuais OPNsense e pfSense, por exemplo, como sistemas para modems e roteadores. Aos poucos o Linux se torna mais familiar, popular e está a dominar até mesmo este meio, das redes, que por muitos anos foram o ponto fraco do sistema. – Se o problema é latência, isso tambem está sendo pouco a pouco expandido conforme noticiamos aqui.
Com um efeito manada desencadeado, uma consequente migração em massa e no longo prazo poderemos ver, não diria que o fim completo e total do BSD mas, que ele chegue a um ponto de impopularidade que sua segurança será afetada – será classificado como menos seguro que o Linux! – e menos usual, a ponto de que será tão impopular para uso em atuais tecnologias do usuário final/comum, que somente aqueles estritamente interessados o usarão, tudo por conta das licenças de uso assim permitirem fechar e vender o código sem necessidade de partilhar o código fonte.
#UrbanCompassPony
Adaptado de:
CSOOnline.com
Arte de Capa: DeviantArt
Autodidata, me aprofundei em sistemas operacionais baseados em UNIX®, principalmente Linux. Também procuro trazer assuntos correlacionados direta ou indiretamente, como automação, robótica e embarcados.
O FreeBSD também tem um problema muito sério: Configurações e software padrões ruins.
OpenSSH que suporta código legado e cifras inseguras, MTA que por padrão AINDA é o Sendmail cheio de furos e não um DMA(Dragonfly Mail Agent) por exemplo, 3 firewalls concorrentes, muita coisa durante a build dos ports é feita como root, ntpd inseguro. Enfim, lista completa aqui: https://vez.mrsk.me/freebsd-defaults.txt