Vulnerabilidade na classe PHPMailer inferior a 5.2.18

Vulnerabilidade no PHPMailer

Imagem Ilustrativa

PHPMailer, uma das classes mais usadas para enviar e-mails a partir do PHP, tem uma vulnerabilidade séria em suas versões inferiores a 5.2.18. O pesquisador de segurança [Dawid Golunski] acaba de publicar, afirmando que o PHPMailer sofre de uma falha crítica que pode levar um invasor a conseguir a execução remota de código.

PHPMailer é usado por vários projetos open-source, entre eles são: WordPress, Drupal, 1CRM, SugarCRM, Yii e Joomla.

Uma correção já foi publicada pelo PHPMailer e todos os usuários devem atualizar suas programações.

Para desencadear esta vulnerabilidade (CVE-2016-10033), parece que o atacante só tem que fazer o aplicativo web enviar um e-mail usando a classe vulnerável PHPMailer. Dependendo do aplicativo em si, isso pode ser realizado de diferentes maneiras, como formulários de contato / feedback, formulários de registro, resets de e-mail de senha e assim por diante.

Após uma rápida análise diff, descobrimos que o código vulnerável parece estar nas seguintes linhas do class.phpmailer.php:

Versão 5.2.17

 

Version 5.2.18

 

A partir do código acima, podemos ter uma idéia de onde o bug vem. O pesquisador Dawid Golunski afirma ter desenvolvido uma exploração de Execução Remota de Código (RCE) e que a publicará numa data posterior, para dar aos usuários tempo para atualizar seus sistemas.

Então … programadores, o que você está esperando? Vá e atualize.

Publicado em: news, security hacks

É possível ter segurança em Servidores Cloud?

segurança em Cloud computing

Imagem ilustrativa sobre segurança em Cloud computing – fonte Freepik

Antes de dar minha opinião, explicarei algumas dicas para serem aplicadas em seu servidor cloud. Em seguida demonstrarei algumas funcionalidades utilizando a ferramenta da DialHost que auxilia na configuração de algumas regras que melhoram a segurança.

Primeiramente temos sempre que manter uma atenção especial na segurança de nossos servidores. Pois há uma evolução constante dos tipos de ataque e defesa.
As tecnologias evoluíram. E com elas, os hackers que cada vez mais ágeis e habilidosos, encontram brechas para burlar sistemas de gerenciamento e informações sigilosas de empresas e instituições.

Mas para que você tenha mais garantias contra estes tipos de ataques seguem algumas dicas para ajudar na proteção do seu servidor

Mantenha atualizado os pacotes e kernel do servidor

Ao deixar seu kernel desatualizado você perde todas as atualizações de segurança, melhorias de estabilidade, atualizações de drivers e funcões que foram desenvolvidas nas novas versões.

Instale um detector de brute force

O ataque brute force é uma técnica hacker que costuma utilizar um dicionário de usuários e senhas para realizar o acesso a algum sistema. Através destas combinações ele tenta constantemente realizar acessos até que um destes dados sejam validados e finalmente o sistema seja aberto.

O detector de brute force, por outro lado fica analisando tentativas sucessivas de acessos vindas de um mesmo IP. Através desta repetição ele bloqueia o acesso do IP malicioso e assim, mata o processo iniciado pelo robô hacker. Um exemplo de sistema detector de brute force é o Fail2Ban.

Desabilite o acesso Root via SSH

Sabemos que o acesso root permite mais facilidades para o usuário avançado, mas como já dizia o tio Ben “Grandes poderes trazem grandes responsabilidades”. Por isso, desabilite este usuário via SSH e crie usuários apenas com as permissões necessárias para o seu projeto e manutenção do mesmo.

root

Crie chaves para o acesso via SSH

Ao fazer um acesso via SSH utilizando chaves de acesso, você garante que seu acesso terá um conjunto longo e complexo de caracteres. Por outro lado o acesso através apenas de senha tendem a ser previsíveis ou fáceis para ataques do tipo brute force.

Mude a porta de acesso do SSH

A alteração da porta de acesso do ssh é importante para retardar a atuação de portscaner que buscam primeiramente as portas default dos serviços como “22,23,53,80,443,21”. Alterando sua porta de acesso estes scaners vão cair em uma porta fechada.

Para realizar esta alteração recomendo que utilize o port forwarding assim seu acesso interno se mantém na porta original, mas seu acesso público pode ser redirecionado para outra porta como 7021, por exemplo.

Busque informações de segurança para os serviços ativados

É normal que serviços famosos possuam em seus próprios cores soluções de segurança ou mesmo pacotes que auxiliam na segurança. Serviços como Apache, Nginx entre outros vão te disponibilizar constantemente novas opções de segurança. Mas, é importante que quem esteja gerenciando suas instâncias fique sempre informado sobre novas soluções. Assim, você pode ficar mais tranquilo contra ataques hackers.

Instale um Firewall

Na DialHost, por exemplo, ao contratar um plano DialCloud+, é disponibilizada uma ferramenta para configuração do Firewall. Assim, você pode garantir mais segurança nas suas instâncias uma forma simples.

Outra análise que vale informar é que as instâncias estão protegidas em um rede totalmente privada. Outros clientes não tem nenhuma comunicação com suas instâncias criadas.

Veja como é simples a criação das regras

Tela do sistema DialCloud - Adicionando regra de segurança do Firewall

Tela do sistema DialCloud – Adicionando regra de Firewall

No campo IP, será exibido o seu IP Público para os acessos.
CDIR: Você informar um range ou único IP permitido para acessar a porta.
Start Port: O inicio de uma série de portas ou a definição de uma única porta
End Port: A última porta a ser liberada ou a mesma informada para o início.
Protocolo: Define qual tipo de protocolo como TCP, UDP ou ICMP.

Após adicionar as regras desejadas, o resultado ficará como abaixo.
Simples de ser visualizado, configurado e reconfigurado.

Tela do sistema DialCloud - inbound Firewall

Tela do sistema DialCloud – inbound Firewall

Concluindo

Sobre a pergunta proposta no inicio, na minha opinião não podemos afirmar que estamos 100% protegidos contra os invasores. Este é um trabalho onde temos que estar atentos e atualizados às práticas mais atuais para nos proteger.

Os invasores sempre vão preferir servidores desatualizados e que possuam mais brechas para a invasão. Dificultar as invasões com o Firewall e outras ferramentas de proteção é uma atividade contínua dos administradores dos servidores.

Referências

http://www.makeuseof.com/tag/5-reasons-update-kernel-linux/
http://www.liquidweb.com/kb/what-is-brute-force-detection-bfd/
https://www.vivaolinux.com.br/dica/Alterando-a-porta-do-servico-SSH

Tenha controle e flexibilidade nos seus recursos com DialCloud +. Servidores em cloud com load balancing, VPN e todo o controle de rede que você precisa. Saiba Mais.

 

Márcio Rubens
Márcio Rubens

Sou Analista de TI na DialHost, pós-graduado em Gestão de Segurança da Informação pela PUC-MG e graduado em Gestão da Tecnologia da Informação pela UNI-BH.

Load Balance para meu site

Imagem ilustrativa Load Balance

Imagem ilustrativa Load Balance

No último post da nossa série sobre cloud computing falamos sobre clusters de banco de dados e a utilização de uma camada de load balancing para controlar o fluxo das requisições. Hoje iremos aprofundar mais nesta camada apresentando um pouco sobre a configuração da mesma.

Vamos iniciar esta abordagem com aquele grande momento tão esperado. Seu site sendo visualizado por milhares de pessoas.  Neste mesmo momento vivemos um momento de grande felicidade, acompanhada aquela dor de cabeça. Isto porque, você nota que a estrutura atual do servidor não está suportando a demanda.

Não se preocupe! O Load Balance pode solucionar isto.

Muitos sites possuem milhares de requisições simultâneas e para ajudar nesta atividade o conceito de Load Balance ( balanceamento de carga ) nos ajudará a suportar a demanda das requisições.

O conceito de Load Balance é uma técnica para distribuir a carga de trabalho uniformemente entre duas ou mais instâncias, a fim de otimizar a utilização de recursos, maximizar o desempenho, minimizar o tempo de resposta e evitar sobrecarga.

Uma observação para este projeto é da necessidade da unificação dos arquivos em um única instância e utilizar o NFS ou outra forma, para compartilhar os arquivos com as demais instâncias.

Exemplo de uma estrutura utilizando o NFS

Exemplo de uma estrutura utilizando o NFS

Há diversos softwares que realizam está atividade de Load Balance como por exemplo Nginx, Haproxy, Balance e outros….

Vou ilustrar aqui uma configuração realizada no Haproxy de uma forma bem simples, mas utilizando a ferramenta disponibilizada gratuitamente para todos os clientes DialCloud+ da DialHost

load balancing

Configurando load balancing com DialCloud +

Ao clicar sobre a aba Load Balancing, será visualizada a tela acima:

IP Público: IP no qual sua instância está utilizando para receber as conexões externas.
Nome: Nome para a configuração.
Porta Pública: Porta na qual os clientes estarão utilizando para conectar a sua aplicação para visualizar o seu site. Exemplo: porta 80 HTTP
Porta Privada: Porta do serviço configurado na instância para receber as requisições.

Algorítimos

Round-robin – A cada requisição será redirecionada para uma instância.
Least connections – A instância que possuir um menor numero de conexões estará recebendo a próxima requisição.
Source – O primeiro acesso do IP do Source é enviado a uma instância. Após definido, suas requisições futuras irão para a mesma instância

Simples! Após as informações solicitadas as requisições já estarão sendo direcionadas para as instâncias configuradas.

Espero que tenha ajudado a todos nesta dica de aprimoramento da estrutura para seu site.

Tenha controle e flexibilidade nos seus recursos com DialCloud +. Servidores em cloud com load balancing, VPN e todo o controle de rede que você precisa. Saiba Mais.

 

Márcio Rubens
Márcio Rubens

Sou Analista de TI na DialHost, pós-graduado em Gestão de Segurança da Informação pela PUC-MG e graduado em Gestão da Tecnologia da Informação pela UNI-BH.