Dar a outros usuários acesso de gravação aos logs do apache pode resultar em exploração raiz - Como isso funciona?

3

Em link

Anyone who can write to the directory where Apache is writing a log file can almost certainly gain access to the uid that the server is started as, which is normally root. Do NOT give people write access to the directory the logs are stored in without being aware of the consequences; see the security tips document for details

Como isso funciona? Como escrever para um arquivo que o Apache também está escrevendo para conceder acesso ao usuário do Apache Parent Process (root)?

    
por Gabe Martin-Dempesy 20.12.2011 / 20:18

2 respostas

2

Confira a página de dicas de segurança.

link

If you allow non-root users to modify any files that root either executes or writes on then you open your system to root compromises. For example, someone could replace the httpd binary so that the next time you start it, it will execute some arbitrary code. If the logs directory is writeable (by a non-root user), someone could replace a log file with a symlink to some other system file, and then root might overwrite that file with arbitrary data. If the log files themselves are writeable (by a non-root user), then someone may be able to overwrite the log itself with bogus data.

Como o apache se abre e lê o arquivo de log como root, há um perigo aqui por abuso. Não tenho certeza por que você deseja que um usuário não raiz (apache) tenha acesso de gravação aos arquivos. Você pode garantir com segurança o acesso de leitura, mas sugerir que o acesso de gravação seja fornecido apenas para arquivos antigos que foram girados. O Apache não está abrindo esses arquivos quando você usa o logrotate para gerenciar a rotação de logs.

    
por 20.12.2011 / 20:25
0

Se o apache estiver rodando como root ... e um usuário não-root escrever um script para o apache executar ... então, por virtude de como os processos funcionam ... o script é executado como root. Como medida de segurança, a maioria das distribuições não executa o apache como root ... mas como um usuário dedicado como "www-data" ou "apache" ou "httpd".

    
por 20.12.2011 / 20:23