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.
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.
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.