Armazenar com segurança credenciais para um aplicativo da Web

1

Estamos executando um aplicativo da web em python usando o wsgi com o apache2 e devemos enviar um teste de penetração. Os testadores estarão explorando o potencial de danos se os invasores obtiverem acesso ao shell como o usuário do apache.

Atualmente, o potencial de dano é enorme, pois temos as credenciais para o banco de dados, o serviço s3, etc., todos armazenados em um arquivo de texto legível pelo usuário do apache. Este parece ser o conselho padrão ao configurar esses tipos de aplicativos, mas existe uma maneira mais segura de fazer isso?

Eu estava pensando em usar o apache (como root) para passar variáveis de ambiente com setenv para o aplicativo wsgi, mas isso é realmente mais seguro? Algum conselho para isso?

Obrigado!

    
por Will 13.06.2012 / 20:17

2 respostas

2

Torne o usuário do apache um usuário sem shell:

Exemplo:

chsh -s /sbin/nologin apache
    
por 13.06.2012 / 20:47
0

mod_wsgi tem a capacidade de ser executado como outro usuário, portanto, implemente-o e configure as permissões do sistema de arquivos adequadamente.

Se o apache for executado como root, faça também os privilégios de drop e execute sob outra conta sem acesso aos arquivos wsgi.

Pergunto-me se você tem que avaliar o dano incorrido pelo mod_wsgi use ser descascado:)

Editar: Cuidado, chsh 'usuário do apache para nologin não não impedirá o acesso ao shell caso o processo do Apache seja atingido por uma exploração. Eu olharia para o selinux se isso é um grande problema.

    
por 13.06.2012 / 21:05