Conheça a CBL-Mariner, a distribuição Linux por trás do WSL, Azure e de muitas outras necessidades de negócios da Microsoft.
A Microsoft lançou recentemente a primeira versão estável de sua própria distribuição Linux “CBL-Mariner 1.0” (Common Base Linux), que é um produto da Microsoft usado internamente para a nuvem e outras necessidades de negócios da empresa.
CBL-Mariner, a distribuição Linux por trás do WSL, Azure e outros produtos da Microsoft
Como tal, CBL-Mariner não é uma distribuição de propósito geral como qualquer outra que teríamos em mente (como Ubuntu ou Fedora), embora seja de código aberto e já esteja sendo usado por sistemas como Windows Subsystem for Linux (WSL), Azure Sphere OS, SONiC e outros esforços baseados em Linux.
Isso foi o que Juan Manuel Rey, membro da equipe do Azure, compartilhou em seu blog, ao especificar que esta distribuição chamada CBL-Mariner se destina ao uso interno para desenvolver produtos e serviços na nuvem.
Em sua postagem, ele especifica:
“O CBL-Mariner segue o princípio de segurança por padrão, a maioria dos aspectos do sistema operacional foi criada com ênfase na segurança. Ele vem com um kernel reforçado, atualizações assinadas, ASLR, proteção baseada em compilador e registros à prova de violação, entre muitos recursos.”
O projeto visa unificar as soluções Linux utilizadas na Microsoft e simplificar a manutenção dos sistemas Linux para diversos fins até hoje. Todas as tecnologias de software nesta prática são lançadas sob a licença do MIT.
A distribuição é notável porque fornece um pequeno conjunto típico de pacotes básicos que atuam como uma base universal para a criação de população de contêineres, ambientes de host e serviços executados em infraestruturas de nuvem e dispositivos de borda.
Soluções mais complexas e especializadas podem ser criadas adicionando pacotes adicionais ao CBL-Mariner, mas a base para todos esses sistemas permanece inalterada, simplificando a manutenção e preparando para atualizações.
O sistema de compilação CBL-Mariner permite gerar pacotes RPM separados com base em arquivos SPEC e códigos-fonte, e imagens de sistema monolítico geradas usando o kit de ferramentas rpm-ostree e atualizadas atomicamente sem quebrar em pacotes separados, além de poder criar mais complexos e especializados soluções adicionando combustível adicional no SVL-Mariner, mas a base para todos esses tempos
Dois modelos de atualização são suportados: atualização apenas de pacotes individuais e execução e atualização de toda a imagem do sistema.
Para usar a abordagem “segurança máxima por padrão”. É possível filtrar chamadas de sistema com a ajuda do mecanismo sensor, criptografar seções do disco, verificar senhas por sua assinatura digital e muito mais.
Por padrão, os mecanismos de proteção contra estouro de parede, estouro de buffer e vulnerabilidade de formato da página.
Os modos de randomização do espaço de endereço suportados pelo kernel do Linux são ativados, bem como vários mecanismos de proteção contra ataques associados a links simbólicos, mmap, /dеv/mem e /dеv/kmеm.
Como instalar o Microsoft CBL-Mariner?
Para aqueles que estão interessados em aprender mais sobre o CBL-Mariner, eles devem saber que podem construir sua própria imagem a partir do Ubuntu ou de qualquer distribuição Linux, somente neste caso seguiremos as instruções para gerar a imagem no Ubuntu.
Para fazer isso primeiro, devemos estabelecer alguns pré-requisitos que precisaremos para construir a imagem ISO:
sudo apt install make tar wget curl rpm qemu-utils golang-go genisoimage python2-minimal bison gawk
Agora procedemos para obter o código da CBL-Mariner:
git clone https://github.com/microsoft/CBL-Mariner.git
E agora teremos que entrar no diretório CBL-Mariner / toolkit e criar a imagem ISO de instalação.
cd CBL-Mariner/toolkit
sudo make iso REBUILD_TOOLS=y REBUILD_PACKAGES=n CONFIG_FILE=./imageconfigs/full.json
Quando terminar, podemos encontrar o arquivo ISO no diretório ../out/images/full/
. Com a imagem do sistema criada, podemos testar o sistema em uma máquina virtual, seja com VirtualBox, VMWare, Boxes ou qualquer outro de sua preferência.
A única coisa que você precisa configurar na máquina virtual é que ela tenha pelo menos 2 GB de RAM, um núcleo e 16 GB de armazenamento.
Por fim, caso tenha interesse em saber mais sobre o assunto, consulte os detalhes no seguinte endereço.