Eu gostaria de bloquear o syscall de montagem quando alguém quiser remontar /system
no modo de leitura e 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.c
onde estão algumas funções relacionadas à montagem, mas não tenho certeza.
Você poderia usar algo como SELinux ou
seccomp
, mas dado que os privilégios totais de root permitem modificar quaisquer partições sem montá-las e fazer outras coisas desagradáveis, possivelmente até mesmo 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 bloqueie todos os buracos usuais.Modificar o
mount
biná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 compartimentalização e proteção tornariam mais difícil a invasão do root em primeiro lugar, o que também pode ser útil por outros motivos.
Além disso, há a pergunta sobre o que você tem nesse ponto de montagem? Se é algo relevante apenas para este sistema, importa se alguém pode modificá-lo? Se eles obtiverem acesso administrativo total na máquina, eles podem bagunçar todo o resto, deixar backdoors em seu rastro 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 no armazenamento somente leitura. E para fazer backups.
Se o sistema de arquivos for usado por vários sistemas, provavelmente ele está montado na rede. Nesse caso, evitar gravações é melhor feito no lado do servidor, portanto, não importa se o kernel tentar fazer uma montagem de leitura e gravação, ele ainda não funcionará.