MyWay Hosting Postado Julho 20, 2014 Compartilhar Postado Julho 20, 2014 <p><p>Ol&aacute;.</p> <p>&nbsp;</p> <p>Sou novo neste f&oacute;rum e tenho muita experi&ecirc;ncia em administra&ccedil;&atilde;o de servidores cPanel e seguran&ccedil;a. Costumo desenvolver ferramentas pr&oacute;prias para seguran&ccedil;a para minha empresa.</p> <p>&nbsp;</p> <p>Esta ser&aacute; minha primeira contribui&ccedil;&atilde;o aqui no Portal do Host.</p> <p>&nbsp;</p> <p>Eu gostaria de deixar uma sugest&atilde;o de seguran&ccedil;a, em rela&ccedil;&atilde;o ao WHMCS que tamb&eacute;m servir&aacute; para qualquer script em contas hospedadas em servidores compartilhados ou n&atilde;o compartilhados. Mesmo que voc&ecirc; tenha um VPS, Cloud, dedicado, seja l&aacute; qual for o servi&ccedil;o que voc&ecirc; usa e onde tenha diversas contas hospedadas, &nbsp;deve ler com aten&ccedil;&atilde;o o que estou escrevendo aqui e usar essa t&aacute;tica de seguran&ccedil;a.&nbsp;</p> <p>&nbsp;</p> <p>Existe uma falha grave de seguran&ccedil;a no Apache. Para o Apache, existem alguns remendos e solu&ccedil;&otilde;es mas nem todas empresas aplicam a corre&ccedil;&atilde;o, seja por n&atilde;o conhecer ou seja por preferir outros meios de seguran&ccedil;a que mantenha a falha mas que seja detect&aacute;vel com auto suspens&atilde;o da conta hackeada que dar&aacute; a brecha para o hack.</p> <p>&nbsp;</p> <p>Esta falha permite, mesmo que um site esteja em um servidor seguro que funcione sob SUPHP, tenha uma conta hackeada a partir de uma outra conta hackeada no mesmo servidor. N&atilde;o irei entrar em detalhes de como funciona a seguran&ccedil;a do SUPHP mas isso n&atilde;o significa total isolamento de uma conta hospedada como muitos acreditam.</p> <p>&nbsp;</p> <p>Como funciona a falha? Mesmo em servidores com SUPHP.</p> <p>&nbsp;</p> <p>Por padr&atilde;o o arquivo configuration.php, config.php, conexao.php ou qualquer outro arquivo de conex&atilde;o a base de dados fica com permiss&atilde;o 644 quando o mesmo &eacute; enviado ao ftp. &Eacute; justamente ai que mora o perigo somada a falha do APACHE.</p> <p>&nbsp;</p> <p>No caso do WHMCS o arquivo de configura&ccedil;&atilde;o &eacute; configuration.php. Muito bem. Tomaremos isso como exemplo.</p> <p>&nbsp;</p> <p>Digamos que em um servidor tenhamos 2 sites hospedados. Ent&atilde;o a estrutura na home ser&aacute; assim</p> <p>&nbsp;</p> <p>/home/USER1/public_html/</p> <p>/home/USER2/public_html/</p> <p>&nbsp;</p> <p>O user1 est&aacute; usando o WORDPRESS e o user2 est&aacute; usando o WHMCS ou qualquer outro script com conex&atilde;o a base de dados.</p> <p>&nbsp;</p> <p>O user1 est&aacute; usando script desatualizado que permite o hack da conta. Quando pensamos que o SUPHP ir&aacute; fazer uma prote&ccedil;&atilde;o total para o user2 ai que entra um macete do hack.</p> <p>&nbsp;</p> <p>Como funciona ?</p> <p>&nbsp;</p> <p>1) O hacker usando um script, coleta o username de todas contas do servidor.&nbsp;</p> <p>&nbsp;</p> <p>Ent&atilde;o ele saber&aacute; o username de todos sites hospedados no servidor. Sendo assim o primeiro passo est&aacute; dado. Agora ele sabe que existe uma outra conta que neste nosso exemplo chama-se USER2</p> <p>&nbsp;</p> <p>2) Agora dentro do site que ele hackeou, ele imagina que exista diversos scripts comuns hospedados no USER2.&nbsp;</p> <p>&nbsp;</p> <p>Ent&atilde;o ele cria links para dentro do USER2 com os mais variados nomes de arquivos.&nbsp;</p> <p>Entenda que estes links &eacute; como um link criado na sua &aacute;rea de trabalho para um arquivo em seu HD.</p> <p>&nbsp;</p> <p>Ent&atilde;o ele ir&aacute; criar links dentro do USER1 para dentro do USER2 como os exemplos abaixo citados.</p> <p>&nbsp;</p> <p>&gt;&gt;&nbsp;/home/USER2/public_html/configuration.php</p> <div> <p>&gt;&gt;&nbsp;/home/USER2/public_html/db.php</p> <div> <p>&gt;&gt;&nbsp;/home/USER2/public_html/conexao.php</p> <div> <p>&gt;&gt;&nbsp;/home/USER2/public_html/config.php</p> <div>&nbsp;</div> </div> </div> </div> <p>3) O pr&oacute;ximo passo do hacker &eacute; acessar os links. Claro que no caso acima, ele ter&aacute; uma mensagem de erro para os arquivos db.php, conexao.php, config.php porque estes arquivos n&atilde;o existem no USER2 mas poder&aacute; ler o arquivo configuration.php</p> <p>&nbsp;</p> <p>A partir de agora o hacker tem a senha da base de dados + o user da conta + nome da base de dados</p> <p>&nbsp;</p> <p>Usando estes dados ele pode ent&atilde;o hackear sua conta, destruir seus dados, destruir a base de dados e etc. Seja qual a inten&ccedil;&atilde;o do hacker, ele tem tudo para isso.</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>Como resolver isso ?</p> <p>&nbsp;</p> <p>O segredo &eacute; muito simples. Coloque permiss&atilde;o 640 para o arquivo configuration.php ou para qualquer outro arquivo de conex&atilde;o da base de dados. Cada script define o nome do arquivo de conex&atilde;o. Se voc&ecirc; desenvolveu um script e o arquivo &eacute; chamado de conecta.php ent&atilde;o coloque a permiss&atilde;o 640.</p> <p>&nbsp;</p> <p>Essa permiss&atilde;o ir&aacute; retirar do hacker a possibilidade de ele enxergar o conte&uacute;do do arquivo.</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>Eu j&aacute; havia comentado sobre isso com o Edvan no site dele e ele ficou de contactar a WHMCS para saber sobre isso mas n&atilde;o houve mais respostas na p&aacute;gina de seguran&ccedil;a. Inclusive o checklist criado para verificar a seguran&ccedil;a continua informando que o arquivo com 644 de permiss&atilde;o est&aacute; seguro. Eu acredito que o checklist deva ser modificado e instruido para que o arquivo tenha permiss&atilde;o 640.</p> <p>&nbsp;</p> <p>J&aacute; comentei isso em uma p&aacute;gina no facebook para usu&aacute;rios de WHMCS afim de alertar sobre o grande perigo que os mesmos est&atilde;o passando.&nbsp;</p> <p>&nbsp;</p> <p>Minha inten&ccedil;&atilde;o &eacute; orientar os usu&aacute;rios que alugam servidores compartilhados, dedicados, seja qual for e que hospede diversas contas ou n&atilde;o, sobre como aumentar sua seguran&ccedil;a.&nbsp;</p> <p>&nbsp;</p> <p>Inclusive em nossos servidores que administramos, temos scripts preparados para mudar permiss&atilde;o automaticamente em todas contas hospedadas visto que &eacute; imposs&iacute;vel fazer com que 100% dos clientes tomem a atitude correta na hora de colocar a devida permiss&atilde;o no arquivo de configura&ccedil;&atilde;o que conecta a base de dados.</p> <p>&nbsp;</p> <p>Considera&ccedil;&otilde;es finais:</p> <p>&nbsp;</p> <p>Apesar de um servidor estar rodando com compila&ccedil;&atilde;o SUPHP, ele poder&aacute; ver o conte&uacute;do do arquivo mas n&atilde;o poder&aacute; alterar o mesmo a partir do site hackeado.&nbsp;</p> <p>&nbsp;</p> <p>Em caso de d&uacute;vidas, responda esse t&oacute;pico que posso ajudar a entender melhor caso ainda tenha ficado d&uacute;vidas.</p> <p>&nbsp;</p> </p> 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Visitante Postado Julho 20, 2014 Compartilhar Postado Julho 20, 2014 Isso é symlink, não? Se sim, já tem uma solução. 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
MyWay Hosting Postado Julho 21, 2014 Autor Compartilhar Postado Julho 21, 2014 Olá Erick sim, isso é ataque via simlink. Tem solução mas não necessariamente ela está aplicada no servidor que está sua conta. Vamos lá: Caso 1) Digamos que você tenha um dedicado,ou VPS. Você tem acesso SSH e o serviço é totalmente configurado por você. Então, neste caso você é que tem que fazer a correção. Inclusive a melhor opção é paga e requer bastante conhecimento para ser feita. Não pense que irá receber o servidor já com a correção visto que é um adicional feito pelo admin do servidor posteriormente a instalação do serviço. Não é uma solução default ou disponibilizada pelo fabricante do Apache webserver. Se você comprar hoje um VPS ou dedicado, virá o Linux instalado + painel, sem nenhuma correção ! Caso 2) Quando está usando servidores compartilhados, as famosas revendas normais ou hospedagem normal, como saber se o admin implantou a segurança ? Difícil saber. Então em ambos casos, permissão 640 no arquivo de conexão a base de dados ! Abraços! 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
RobertSP Postado Julho 21, 2014 Compartilhar Postado Julho 21, 2014 Galera se vocês mantém o WHM/cPanel atualizados, apache compilado 'adequadamente' via EasyApache, não há risco! Sem pânico, isso é velho, antigamente utilizavamos "SymLinksIfOwnerMatch" como prevenção global, mas atualmente nem há mais a necessidade! 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
MyWay Hosting Postado Julho 21, 2014 Autor Compartilhar Postado Julho 21, 2014 Galera se vocês mantém o WHM/cPanel atualizados, apache compilado 'adequadamente' via EasyApache, não há risco! Sem pânico, isso é velho, antigamente utilizavamos "SymLinksIfOwnerMatch" como prevenção global, mas atualmente nem há mais a necessidade! Olá RobertSP Os usuários do WHMCS ou qualquer outro script devem levar a minha sugestão ao pé da letra e não confiar no servidor que estão hospedados. Há claro indício para executar a troca de permissão do arquivo. O pânico começa quando você pode ter todos seus dados destruídos e um backup atualizado por cima disso. A palavra pânico neste caso não é que eu escreveria e sim aplicação imediata da troca da permissão. Sou novo no fórum e estou observando muitos usuários usando servidores virtuais e não dedicados. Portanto a sua sugestão é válida apenas para quem tem controle total sobre o equipamento com acesso root ! Apenas atualizar o WHM e CPANEL não resolve o problema. Alem de atualizar o WHM e CPANEL tem que fazer a compilação necessária do servidor WEB. A solução apresentada pelo fabricante do CPANEL tem aspectos ruins que podem obrigar ao admin do servidor a não fazer a compilação para evitar o problema e tomar outras soluções no lugar. Não vou entrar em detalhes dos motivos do patch não ser aplicado. Isso é caso para ser discutido no forum da CPANEL ou com o próprio fabricante. O fato é que a falha existe e não necessariamente o usuário está em um servidor com o PATCH aplicado. Você escreveu de uma forma como se TODOS servidores já tivessem aplicado a correção ou como se TODOS administradores tenham optado pela correção e como se TODOS administradores de servidores, mesmo que capacitados tenham feito as correções. Alem disso você esqueceu dos usuários que usam servidores virtuais sem acesso root ! Abraços. 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Alexandre Duran Postado Julho 21, 2014 Compartilhar Postado Julho 21, 2014 Sem dúvida a melhor forma de se prevenir é aplicando o 640 no arquivo de config. Isso é válido não apenas para o WHMCS quanto tb para praticamente todos os scripts existentes. Mas tem uma dica: para os que usam o CloudLinux, instale o CAGEFS e seja feliz. 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
MyWay Hosting Postado Julho 21, 2014 Autor Compartilhar Postado Julho 21, 2014 Sem dúvida a melhor forma de se prevenir é aplicando o 640 no arquivo de config. Isso é válido não apenas para o WHMCS quanto tb para praticamente todos os scripts existentes. Mas tem uma dica: para os que usam o CloudLinux, instale o CAGEFS e seja feliz. Olá Duran, sim, existe essa possibilidade. Tendo acesso root e fizer a configuração funciona bem. Mas isso se o usuário tiver root para poder instalar isso ou aplicar outro patch. Eu escrevi esse tópico visando todos usuários, incluindo quem não tem acesso root, quem tem mas não aplicou a correção até mesmo por desconhecer e ainda usuários de hospedagem comum que usam o WHMCS para outras funções a não ser hosting. Sim, isso é aplicável para qualquer script. Não é uma falha do WHMCS e sim do servidor WEB. Abraços. 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Visitante Postado Julho 21, 2014 Compartilhar Postado Julho 21, 2014 Sem dúvida a melhor forma de se prevenir é aplicando o 640 no arquivo de config. Isso é válido não apenas para o WHMCS quanto tb para praticamente todos os scripts existentes. Mas tem uma dica: para os que usam o CloudLinux, instale o CAGEFS e seja feliz. É uma boa utilizar CageFS, mas vale ressaltar que ele não vai salvar ninguém de um belo Privilege Escalation... O que eu recomendo utilizar é também as regras do ModSec do OWASP. -- Também existe outras formas de aplicar este path, que pode ser mesmo até via modsecurity. http://docs.cpanel.net/twiki/bin/view/EasyApache/Apache/SymlinkPatch http://www.sysadmindiaries.com/2013/07/how-to-prevent-cpanel-apache-symlink.html 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Alexandre Duran Postado Julho 21, 2014 Compartilhar Postado Julho 21, 2014 É uma boa utilizar CageFS, mas vale ressaltar que ele não vai salvar ninguém de um belo Privilege Escalation... O que eu recomendo utilizar é também as regras do ModSec do OWASP. -- Também existe outras formas de aplicar este path, que pode ser mesmo até via modsecurity. http://docs.cpanel.net/twiki/bin/view/EasyApache/Apache/SymlinkPatch http://www.sysadmindiaries.com/2013/07/how-to-prevent-cpanel-apache-symlink.html Eu testei o uso do OWASP mas não tive sucesso na instalação. 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
edvan Postado Julho 21, 2014 Compartilhar Postado Julho 21, 2014 A WHMCS.com modificou as instruções nas permissões http://docs.whmcs.com/Installing_WHMCS#Installing_WHMCS Required file & folders permissions /configuration.php CHMOD 400 Readable /attachments CHMOD 777 Writeable /downloads CHMOD 777 Writeable /templates_c CHMOD 777 Writeable The above applies unless your php is suPHP or PHPSuExec. If using DSO as your php handler, you must use 644 permissions. 0 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.