Autoteste
O redder-selftest verifica, dentro do sistema arrancado, que as proteções estão realmente
ativas. É executado com a entrada Autoteste e desligar do GRUB (redderos.selftest=1), imprime
cada verificação com ✔ ou ✘ e termina com:
===== RESULTADO: PASS =====ou FAIL se alguma falhar. Depois, desliga o computador. Os resultados publicados estão em
Transparência.
O que verifica
| Bloco | Verificação |
|---|---|
| Estado geral | Tudo o que o redder-status verifica: Tor, firewall, lockdown, AppArmor, IPv6, raiz na RAM, swap e MAC. |
| sysctl | Cada chave do ficheiro de reforço tem o valor esperado. |
| Módulos | dccp, sctp, tipc, bluetooth, firewire-core, thunderbolt e cramfs não podem ser carregados. |
| Amnésia | Dumps de memória a 0 e journal só na RAM. |
| Privilégios | anon não tem sudo. |
| Disco do computador | Nenhuma partição do disco do computador está montada. |
| Tor | Escuta nas portas 9040, 9050 e 5353. |
| Fugas | Como anon: uma ligação TCP direta e uma consulta DNS acabam no Tor (os contadores da firewall sobem); o ping não sai; um pacote UDP direto é descartado e fica registado. |
Perfis em dois arranques
Com redderos.selftest.profiles=create ou =check e um disco de testes em /dev/vdb, o autoteste
testa também os perfis:
Primeiro arranque (create)
- Inicializa o cofre e cria um perfil na ranhura 5.
- O utilizador do perfil escreve um ficheiro no seu
/homee é o dono dele. - Ao fechar o perfil, o utilizador desaparece do sistema.
- Conhecimento zero: o
blkidnão reconhece nada no disco nem em nenhuma das 8 ranhuras (nem LUKS nem ext4); nem o nome, nem a etiqueta, nem o conteúdo do ficheiro aparecem em claro; não fica rasto em/etc/passwd,/etc/shadownem/etc/group.
Segundo arranque (check)
- O sistema não sabe que o perfil existe antes de o abrir.
- Uma frase incorreta e um perfil inexistente dão exatamente o mesmo erro, e com a frase incorreta nada é montado.
- Com a frase correta, o perfil abre e o ficheiro do primeiro arranque continua lá.
- O
/homeé montado comnosuidenodev.
Testes no QEMU
Na pasta tests/ do código do SO. Precisam de qemu-system-x86; para UEFI, de ovmf; para o
teste gráfico, de socat e do ImageMagick.
Primeiro, uma ISO que arranque o autoteste por predefinição:
sudo BASE=ubuntu GRUB_DEFAULT=3 ISO_NAME=redderos-selftest ./build.sh| Script | O que faz |
|---|---|
tests/run-qemu.sh | Arranca a ISO em BIOS e em UEFI com um disco «do computador» que tem uma partição swap, e verifica que o resultado é PASS (e que essa swap não é usada). |
tests/run-profiles.sh | Os dois arranques de perfis sobre o mesmo cofre de 320 MB. |
tests/run-gui.sh | Arranca a entrada normal do GRUB com uma placa gráfica VGA padrão, espera pelo ecrã de entrada, testa uma frase incorreta e a correta, e guarda capturas de ecrã. |
tests/run-qemu.sh out/redderos-selftest.iso
tests/run-profiles.sh out/redderos-selftest.iso work/iso/casper
tests/run-gui.sh out/redderos-ubuntu-amd64.iso tests/logs/vault.imgOs registos e as capturas ficam em tests/logs/.
O que o autoteste não cobre
É executado no QEMU, com rede simulada. Não testa o arranque do Tor numa rede real, nem hardware físico (Wi-Fi, placas gráficas, Secure Boot). A lista de pendentes está em Transparência.