Bloqueio de montagem syscall

1

Eu gostaria de bloquear o mount syscall quando alguém quiser remontar /system no modo de leitura / gravação. O que significa que eu não gostaria de permitir a remoção do seguinte: mount -o remount,rw /system . Alguém tem uma idéia de onde eu preciso procurar mudar o código no kernel? Eu tentei olhar em /fs/namespace.c onde estão algumas funções relacionadas à montagem, mas não tenho certeza.

    
por dimalukas 29.11.2017 / 12:24

1 resposta

1

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

Modificar o binário mount ou a biblioteca C não é uma solução, já que é 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 endurecimento dificultariam a criação da raiz, o que poderia ser útil também por outras razões.

Além disso, há a pergunta sobre o que você tem nesse ponto de montagem? Se é algo relevante apenas para este sistema, então importa se alguém pode modificá-lo? Se eles obtiverem acesso administrativo total na máquina, eles podem atrapalhar 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 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 será montado na rede. Nesse caso, é melhor evitar as gravações no lado do servidor, portanto, não importa se o kernel tenta fazer uma montagem de leitura / gravação, ainda assim não funcionará.

    
por 29.11.2017 / 13:48