O isolamento entre os espaços de endereço da memória virtual de diferentes processos não se aplica ao processo privilegiado e à troca?

0

Da interface de programação do Linux

The virtual memory page containing the data may be swapped out (unless it is locked in memory using mlock() or similar), and could then be read from the swap area by a privileged program.

Aprendi que o espaço de endereço de memória virtual de um processo não está acessível para outro processo. A citação acima me faz pensar

  • Essa reivindicação de isolamento não se aplica a outro processo privilegiado?

  • Isso não se aplica à parte em troca, mas apenas à parte na memória física?

por Tim 09.09.2018 / 20:03

1 resposta

2

O isolamento do espaço de endereço se aplica a processos privilegiados, mas em alguns casos, os dados armazenados na memória podem acabar sendo acessíveis de forma indireta para processos com privilégios suficientes.

Uma vez que os dados estão em swap, qualquer processo suficientemente privilegiado ( i.e. executado com privilégios suficientes para ler o arquivo ou dispositivo subjacente) pode ler o armazenamento de swap diretamente e acessar os dados nele. O isolamento do espaço de endereço é derrotado aqui porque os dados são acessíveis de outra maneira do que através do subsistema de memória.

Note que em kernels mais antigos, ou kernels configurados com /dev/kmem , processos que têm privilégios suficientes para ler que podem ler dados de qualquer processo na memória, também anulando o isolamento do espaço de endereço, desta vez lendo a memória física sem passar a camada de memória virtual.

    
por 09.09.2018 / 20:48