CerberusBSD Segurança · Redes · Pentest

Por que um sistema BSD, e não Linux?

Linux é excelente — mas para um sistema de segurança, o Kernel BSD tem vantagens estruturais que fazem diferença no dia a dia de quem faz pentest, forense e administração. Abaixo, ponto a ponto, o que o CerberusBSD ganha por ser BSD.

Assunto CerberusBSD (Kernel BSD) Distribuições Linux
Arquitetura do sistema Um projeto só: kernel, base e ferramentas de usuário desenvolvidos, versionados e documentados juntos. Kernel de um lado; cada distro monta a base do seu jeito, com combinações que variam.
Sistema de arquivos ZFS nativo e de primeira classe: checksums, snapshots, compressão, boot environments. ZFS fica fora da árvore do kernel por licença; o padrão costuma ser ext4/btrfs.
Isolamento / contêineres Jails nativas e maduras (desde 2000) + Capsicum (sandbox por capacidade). Namespaces/cgroups + Docker/LXC por cima; poderoso, porém montado em camadas.
Pilha de rede (TCP/IP) Berço do TCP/IP moderno: a pilha BSD é a origem da rede da internet, madura e copiada pelo mundo todo. Referência em throughput e latência. Pilha própria, muito boa, mas historicamente inspirada na BSD (a "sockets API" veio do BSD).
Firewall Dois firewalls no sistema base: ipfw (nativo, com NAT e moldagem de banda em kernel) e pf (sintaxe limpa, filtragem por estado). No CerberusBSD o gerenciador gráfico controla o ipfw, e o pf sustenta a trava de segurança da VPN. iptables/nftables — poderoso, mas de sintaxe mais áspera.
Roteamento / montagem de rede netgraph: monte a rede como blocos de LEGO (túneis, bridges, PPPoE, filtros) no próprio kernel. CARP para redundância de IP. Feito com várias ferramentas separadas (iproute2, tc, etc.), sem um framework único.
Wireless para pentest net80211 nativo com modo monitor e injeção em boa parte dos drivers — base para ataques Wi-Fi. Também suporta, via mac80211; depende igualmente do driver/chipset.
Diagnóstico ao vivo DTrace integrado — instrumenta o sistema em produção sem recompilar nada. eBPF/bpftrace — ótimo hoje, mas de adoção e maturidade mais recentes.
Licença BSD — liberdade ampla de usar, modificar e redistribuir, inclusive em produto fechado. GPL — copyleft, com obrigações de redistribuição do código.
Documentação Handbook oficial que corresponde exatamente ao sistema que você está usando. Documentação espalhada entre kernel, distro, wikis e comunidades.
Atualização do sistema Boot environments: atualize e, se algo quebrar, reinicie no ambiente anterior. Sem drama. Depende da distro; reverter uma atualização ruim raramente é tão simples.
Criptografia de disco GELI no próprio kernel, integrado ao GEOM: cifra o disco inteiro, com aceleração por hardware. Essencial para levar dados de cliente com você. LUKS/dm-crypt — muito capaz, porém em outra camada de abstração.
Virtualização bhyve nativo: suba máquinas virtuais alvo para treinar exploração sem sair do sistema. KVM/QEMU — excelente, e igualmente nativo.
Inicialização do sistema rc.d: scripts de shell legíveis. Você lê, entende e conserta — sem caixa-preta. systemd na maioria das distros: poderoso, mas complexo e difícil de auditar.
Auditoria Security Event Audit (BSM) no sistema base — padrão usado em ambientes que exigem trilha de auditoria. auditd, disponível mas normalmente instalado à parte.
Captura de pacotes BPF nasceu aqui. No CerberusBSD o Wireshark captura sem ser root, por permissão de grupo — menos privilégio, mesmo resultado. Também usa BPF (herdado do BSD); capturar sem root exige ajuste de capabilities.
Origem dos programas Ports e pkg: o mesmo catálogo, pronto em binário ou compilado com as opções que você quiser. Binários do repositório; compilar com opções próprias costuma ser fora do fluxo normal.

As joias do Kernel BSD, explicadas

🧊

ZFS — o disco que se defende

Cada bloco tem uma soma de verificação: o ZFS percebe e corrige corrupção silenciosa (o "bit rot") antes que ela destrua seus dados. Snapshots são instantâneos e quase não ocupam espaço — fotografe o sistema antes de um teste arriscado e volte atrás num clique.

🕰️

Boot Environments

Cada atualização pode virar um "ambiente de boot" separado. Deu ruim depois de atualizar? Reinicie e escolha o ambiente anterior no menu de boot. É voltar no tempo, de verdade, sem perder seus arquivos.

🏝️

Jails

Isolamento nativo e leve: rode um serviço, um alvo ou um laboratório inteiro dentro de uma jaula, separado do resto do sistema, com rede própria (VNET). Contêiner de verdade, sem camadas extras.

🔬

DTrace

Enxergue o sistema por dentro enquanto ele roda: quais chamadas um binário faz, onde o tempo é gasto, o que um malware toca. Ferramenta poderosíssima para engenharia reversa e análise.

🧱

Capsicum

Sandbox por capacidades: um programa só acessa o que recebeu permissão explícita para acessar. Reduz drasticamente o estrago que uma falha pode causar.

🧯

ipfw e pf — dois firewalls

O ipfw é o firewall nativo: filtro, NAT e moldagem de banda dentro do kernel, com dummynet para simular latência e perda — útil para testar como um serviço se comporta sob rede ruim. O pf traz regras legíveis, filtragem por estado, tabelas e normalização. Aqui o gerenciador gráfico controla o ipfw; o pf sustenta a trava de segurança da VPN.

GELI — disco cifrado

Criptografia de disco dentro do kernel, com aceleração por hardware. Quem carrega dados de cliente no notebook precisa disso ligado — e aqui não é acessório, é parte do sistema.

netgraph — rede em blocos

Monte caminhos de rede como peças encaixáveis: túneis, pontes, PPPoE, filtros, captura. É com ele que o sistema faz coisas que em outros lugares exigem três programas e um script de cola.

bhyve — máquinas virtuais

Virtualização nativa. Suba o alvo vulnerável ao lado do seu ambiente para treinar exploração, sem depender de nuvem nem de outra máquina.

BPF — captura na origem

O filtro de pacotes de Berkeley nasceu aqui — é a base do tcpdump e do Wireshark no mundo inteiro. No CerberusBSD você captura sem ser root.

rc.d — sem caixa-preta

A inicialização são scripts de shell que você abre e lê. Num sistema de segurança, entender o que sobe na sua máquina não é curiosidade: é requisito.

Por dentro do kernel

Para quem quer o detalhe técnico: estes são os subsistemas do Kernel BSD que sustentam o que foi dito acima. Não são recursos de terceiros nem módulos externos — fazem parte do sistema e são desenvolvidos junto com ele.

VNET — pilha de rede virtualizada

Cada jail pode ter a pilha TCP/IP inteira só dela: interfaces, tabela de rotas, firewall e sockets próprios. Não é um namespace montado por cima — é o subsistema de rede instanciado por ambiente. É o que torna um laboratório de pentest realista dentro da própria máquina.

Netgraph — grafo de rede em kernel

Nós encaixáveis dentro do kernel (ng_ether, ng_bridge, ng_pppoe, ng_netflow) ligados por hooks. Você monta o caminho do pacote como um circuito, sem passar por espaço de usuário — e sem o custo de cópia que isso implicaria.

GEOM — armazenamento em camadas

Um framework onde cada transformação do disco é um módulo empilhável: geli (cifra), gmirror (espelho), gstripe, gnop. Você compõe as camadas na ordem que precisar — inclusive para montar uma cópia forense somente-leitura sem tocar no original.

kqueue — notificação de eventos

Interface unificada para esperar por eventos de qualquer natureza: sockets, arquivos, processos, sinais, temporizadores e mudanças de diretório. Escala para milhares de conexões e é a razão de a pilha BSD aguentar carga de rede tão alta.

Capsicum — sandbox por capacidade

Em vez de listas de permissão externas, o programa entra em modo restrito e passa a só poder usar os descritores que já possui. Uma ferramenta que processa arquivo hostil (um parser, um descompressor) fica presa ao que recebeu — mesmo que seja explorada.

MAC Framework

Controle de acesso obrigatório modular no kernel: políticas como mac_bsdextended e mac_portacl aplicam regras que nem o dono do arquivo contorna. Útil para travar uma máquina de análise sem reescrever permissões.

ZFS — ARC, RAID-Z e cópia-na-escrita

Cada bloco tem checksum verificado na leitura, e o ARC (cache adaptativo) decide o que manter em memória por frequência e por recência. Snapshot é instantâneo porque nada é sobrescrito — a escrita vai para blocos novos. É por isso que voltar no tempo custa segundos.

DTrace — instrumentação viva

Milhares de pontos de sondagem no kernel e nas aplicações, ativáveis em produção, sem recompilar e sem reiniciar. Dá para responder “qual processo abriu este socket e por quê” enquanto o sistema atende.

dummynet — rede ruim de propósito

Parte do ipfw: injeta latência, perda de pacote e limite de banda no tráfego. Serve para testar como um serviço se comporta em rede degradada — e para reproduzir a condição em que um bug só aparece.

sendfile e zero-copy

O dado vai do disco para a rede sem passar pela memória do programa. É a técnica que permite a um único servidor BSD saturar interfaces de 100 Gbit/s — e o motivo de a Netflix servir vídeo a partir dessa base.

Controle de congestionamento modular

CUBIC, NewReno, RACK e outros algoritmos entram como módulos carregáveis, trocáveis por conexão. Em teste de rede, isso significa poder reproduzir o comportamento do alvo em vez de depender do que o sistema decidiu por você.

Boot environments

Cada atualização vira um dataset ZFS independente e inicializável. Você não “desfaz” uma atualização: você escolhe no menu de boot qual sistema quer, e os dois continuam ali.

Por que isso importa num sistema de segurança? Porque a maior parte destas peças é infraestrutura de kernel, não programa instalado depois. Elas não somem numa atualização, não dependem de um projeto externo continuar existindo e se comportam do mesmo jeito entre versões — o que, para quem precisa repetir um teste daqui a seis meses e obter o mesmo resultado, é o ponto.

O que isso muda no seu trabalho

Vantagem técnica só vale se aparecer no dia a dia. Estas são as situações concretas em que a base BSD muda o resultado de um teste de intrusão.

Testar exploit sem medo

Antes de rodar algo que pode quebrar a máquina, o sistema guarda um ponto de restauração. Deu errado? Você reinicia no ambiente anterior e continua o trabalho — em segundos, sem reinstalar nada.

Laboratório em segundos

Com jails, você cria vários alvos isolados, com rede própria, em segundos — e descarta quando terminar. Sem baixar imagem de nada, sem serviço de contêiner rodando por trás.

Não vazar o seu IP

O indicador na barra mostra por onde o tráfego está saindo e se você está atrás da VPN. Somado ao pf como trava de segurança (o kill switch), escanear um alvo com o IP real na frente deixa de ser um acidente possível.

Capturar sem ser root

O Wireshark abre e captura com o seu usuário comum. Menos privilégio ligado significa menos chance de um erro seu virar um estrago no sistema.

Levar o ambiente no bolso

A persistência grava num pendrive tudo o que você muda no sistema vivo: ferramentas, anotações, chaves. Você trabalha na máquina do cliente sem instalar nada nela.

Evidência que se sustenta

O ZFS verifica cada bloco com checksum e detecta corrupção silenciosa. Numa perícia, a integridade do que você coletou não é detalhe — é o que faz a prova valer.

Confiado por gigantes

A licença BSD e a estabilidade do sistema fizeram dele a base de produtos que o mundo inteiro usa. Você provavelmente já usou um sistema de Kernel BSD sem saber:

Netflix

Serve boa parte do tráfego de vídeo do planeta a partir de servidores com Kernel BSD, justamente pela performance de rede.

PlayStation

O sistema dos consoles da Sony é baseado no mesmo Kernel BSD.

WhatsApp

Escalou para bilhões de usuários rodando sobre o Kernel BSD.

Equipamentos de rede

Firewalls e appliances (como pfSense/OPNsense) usam o Kernel BSD e o pf como fundação.

Em resumo: o CerberusBSD não esconde que roda sobre Kernel BSD — ele aproveita isso. Você leva o melhor arsenal de segurança sobre a fundação mais sólida e coesa que existe para servidores e estações críticas.