A melhor segurança do serenityOS e do OpenBSD pode ter é um compromisso.
Segurança da Informação é o termo mais precioso no quesito computação que temos hoje em dia, em muitos casos o problema pode vir de AI, engenharia social, apps maliciosos, entre diversas outras formas como rubber ducks ou métodos mais científicos para atacar uma vulnerabilidade.
Eu poderia passar aqui mais de uma hora falando sobre as vertentes da segurança da informação, mas como meu último post sobre Andreas Kling deu certo decidi falar um pouco sobre OpenBSD que contém um dos softwares mais interessante sobre Segurança, o famoso Pledge que foi portado para o SerenityOS.
O pledge é uma palavra em inglês que vem com a ideia de compromisso / juramento... E é basicamente isso que ele faz.
O app no userland jura ao kernel que ele só vai utilizar determinados recursos: "acesso a arquivos, rede, execução de comandos externos, etc". Tudo sendo feito durante a execução do app após essas declarações o kernel monitora as chamadas de sistema e impede que ele execute tudo aquilo que não lhe foi jurado, limitando o escopo de ações de um kernel.
Isso é particularmente interessante para evitar cenários como esse meme do Android:
E não vamos confundir, isso não é sandbox, na verdade, isso é uma habilidade de nível do kernel. E até houve um determinado agito para adicionar pledge ao Linux. Mas, nunca foi realmente para frente.
A vantagem de não ser sandbox como flatpak com seu flatseal, firejail..., etc. É que o sistema não tem um overhead de precisar executar um runtime mais pesado que precisa abstrair muitos recursos do sistema para não haver comunicação direta.
E apesar de não ser uma discussão do mais seguro podemos confirmar com toda certeza que sandbox é mais seguro enquanto o pledge é um seguro performático que renunciou a muita segurança de modo a ter melhor performance.
Lembra que falei que muitos insights que eu tenho vem baseado no serenityOS e nos BSD. A ideia da vez é ter um sandbox baseado no Bundle do MacOSX que pode ou não gerar promessas sobre como rodar. Dentro de determinadas condições e tweaks do código.
Aproveitando isso, essas promessas podem ser uma forma do Automator
Outras estratégias:
Ainda existem muitas estrategias para segurança que devem ser estudados e aplicados:
Todas claro sendo estudadas uma de cada vez. Para melhor aplicação e um cenário real.