O apache deve ter acesso de escrita à raiz da web? [duplicado]

1

Estou tentando obter uma resposta canônica sobre como configurar permissões para o apache em relação à raiz da Web ( /var/www ). De acordo com essa resposta altamente popular , dar acesso de gravação do apache a /var/www parece ok, enquanto em outro lugar (veja os comentários) parece um não-não.

Alguém pode lançar alguma luz? Se este é um risco de segurança em si, você pode descrever exatamente como ele seria explorado?

Atualização:
Vamos supor um servidor privado, onde os dois únicos usuários que nos preocupam são o 'apache' e o 'root'.

    
por Yarin 17.12.2012 / 02:48

2 respostas

1

Dar a um usuário acesso de gravação a um diretório permite que o usuário grave, modifique e exclua direitos de qualquer coisa nesse diretório, independentemente do proprietário ou das permissões individuais dos arquivos contidos nele. O usuário do servidor da web trabalha em nome de qualquer pessoa que tenha acesso aos sites que ele serve. Na maioria dos casos, qualquer um é a Internet geral, a menos que regras de segurança específicas estejam em vigor. Portanto, qualquer pessoa na Internet com conhecimento básico pode excluir e / ou modificar arquivos ou colocar conteúdo indesejado em sua estrutura de diretórios para publicá-lo.

Uma solução recomendada é ter um diretório gravável fora da estrutura pública, ao qual um script seguro tem acesso, para gravar / apresentar conteúdo ao público. Se você absolutamente precisa ter um diretório gravável dentro da estrutura pública, eu o tornaria um obscuro diretório de baixo nível que nunca é referenciado para propósitos de leitura na Internet geral. Mas nunca o topo da estrutura do seu site.

Infelizmente, não há resposta para a pergunta genérica de como explorar um servidor voltado para a Web para gravar no sistema de arquivos desprotegido. Isso dependeria do servidor da Web e dos serviços de suporte (por exemplo: PHP; JAVA etc.) e explorações das versões específicas que você está executando, além de quaisquer scripts inseguros (PHP; CGI; PERL; JAVA) que possam estar em execução o site. O ponto é que, como um administrador de sistemas / web, você não deve abrir a gravação em seu disco, colocando total confiança em qualquer um dos itens acima para protegê-lo. Além disso, seria antiético propagar tal informação.

    
por 17.12.2012 / 03:42
1

A principal diferença entre os dois links é que o primeiro link define a permissão 775 somente para a pasta . O segundo define a permissão 775 para todos os arquivos e pastas sob ele, assim como ele mesmo . Este último é o grande problema, pois torna todos os arquivos executáveis. Você não quer que seus arquivos enviados por usuários sejam executados como exemplo.

Com os arquivos à parte, referentes à segurança da própria pasta:

Se o apache tiver acesso total à pasta e for um ambiente compartilhado (como hospedagem compartilhada), outros usuários (seja ele legítimo ou hacker) que possam gerar processos apache podem adicionar / modificar qualquer parte dele. os serviços da Web compartilhados por meio do usuário do apache. Se houver apenas um único usuário atendido por essa máquina, não acho que exista uma diferença de segurança significativa entre os dois.

    
por 17.12.2012 / 03:03