Bloqueando syscall de montagem

Bloqueando syscall de montagem

Gostaria de bloquear o syscall de montagem quando alguém quiser remontar /systemno modo leitura-gravação. O que significa que eu gostaria de não permitir a execução do seguinte: mount -o remount,rw /system. Alguém tem uma ideia de onde preciso procurar para alterar o código no kernel? Tentei procurar /fs/namespace.conde estão algumas funções relacionadas à montagem, mas não tenho certeza.

Responder1

Você poderia usar algo como SELinux ou seccomp, mas dado que os privilégios completos de root permitem modificar quaisquer partições sem montá-las e fazer outras coisas desagradáveis, possivelmente até carregar módulos do kernel para contornar as restrições, pode não ser tão trivial. Pelo menos você precisaria de um conjunto de regras abrangente que bloqueasse todas as lacunas usuais.

Modificar o mountbinário ou a biblioteca C não é uma solução, pois é bastante simples chamar a chamada do sistema diretamente, sem passar por um binário pronto ou mesmo pela biblioteca.

O SELinux e os meios usuais de compartimentação e proteção tornariam mais difícil o acesso à raiz, o que também pode ser útil por outras razões.

Além disso, há a questão sobre o que você tem nesse ponto de montagem? Se for algo relevante apenas para este sistema, faz diferença se alguém pode modificá-lo? Se obtiverem acesso administrativo total à máquina, poderão bagunçar todo o resto, deixar backdoors e provavelmente pelo menos destruir a partição em questão. Se você não espera precisar modificá-lo e apenas deseja evitar a perda do conteúdo, seria mais fácil colocá-lo em armazenamento somente leitura. E para fazer backups.

Se o sistema de arquivos for usado por vários sistemas, provavelmente estará montado na rede. Nesse caso, é melhor evitar gravações nele no lado do servidor, portanto, não importa se o kernel tentar fazer uma montagem de leitura e gravação, ainda assim não funcionará.

informação relacionada