Estudo de um ataque de dicionário contra um site baseado em WordPress

wordpress-hacked

Um ataque de dicionário é um método de cracking que consiste em tentar advinhar uma senha provando todas as palavras do dicionário ou combinações de palavras. Este tipo de ataque costuma ser mais eficiente que um ataque de força bruta, já que muitos usuários costumam utilizar uma palavra existente em sua língua ou combinação de palavras como senha. Muitos usuário fazem isso para que a senha seja fácil de lembrar, o que não é uma prática recomendável.

A figura abaixo demonstra uma das tentantivas que o atacante fez para tentar adivinhar o usuário e a senha de um site baseado em WordPress.

word-press-post-ataque-de-dicionario

Os cabeçalhos e o formato desta solicitação HTTP POST são bem semelhantes a uma solicitação legítima feita por um usuário e um navegador web comum. O cabeçalho User-Agent destacado em verde na figura, descreve que a solicitação foi feita por navegador Firefox instalado num sistema operacional Linux 32 bits. Porém conforme análise dos logs que será descrita a seguir, observamos que a solicitação HTTP foi montada por um script ou programa de computador. Todos os cabeçalhos podem facilmente ser falsificados. Para o atacante, é interessante que a solicitação seja o mais parecida possível com uma solicitação legítima, desta forma, dificulta a criação de filtro para bloquear o ataque.

No segundo destaque em verde da figura acima, podemos observar que nesta tentativa, o atacante tentou o entrar no WordPress com usuário root com a senha Jessica.

Ao analisar os logs no servidor web, podemos observar que o IP 35.59.7.115 enviou várias solicitações HTTP POST para a página wp-login.php conforme figura abaixo.

log-ataque-dicionario-wordpress

Foi destacada na figura acima, a hora da solicitação. Podemos observar que foi feita uma solicitação por segundo. Com esta observação, concluímos que as solicitações foram feitas por uma processo automatizado.

Segue abaixo, uma amostra dos nomes de usuário e senhas usadas nas tentativas do atacante. Embora existam muitas palavras em inglês, este ataque foi feito com uma banco de senha em português muito provavelmente criado por brasileiros.

(...)
 log=root pwd=Password
 log=root pwd=Nicole
 log=root pwd=Daniel
 log=root pwd=Jessica
 log=root pwd=Lovely
 log=root pwd=Michael
 log=root pwd=Ashley
 log=root pwd=porsche
 log=root pwd=firebird
 log=root pwd=rosebud
 log=root pwd=guitar
 log=root pwd=butter
 log=root pwd=beach
 log=root pwd=jaguar
 log=root pwd=chelsea
 log=root pwd=united
 log=root pwd=amateur
 log=root pwd=great
 log=root pwd=black
 log=root pwd=turtle
 log=robsonidr pwd=mariposa
 log=robsonidr pwd=america
 log=robsonidr pwd=Password
 log=robsonidr pwd=Nicole
 log=robsonidr pwd=Daniel
 log=robsonidr pwd=Jessica
 log=robsonidr pwd=Lovely
 log=robsonidr pwd=Michael
 log=robsonidr pwd=Ashley
 (...)

 

Qual o risco deste ataque

Se você usa uma senha forte e não baseada em palavras simples, você já dificulta a vida do atacante. Porém, o grande desafio é garantir que todos os usuários, inclusive os usuários de marketing, áreas de negócios e outros tipos de usuários adotem senhas seguras.

Mesmo que você implemente um política de senha complexa, ainda existe o risco do atacante também evoluir sua base de senhas usada no ataque.

Para minimizar o risco de um atacante roubar a senha de algum usuário com este ataque, é importante que o ataque seja bloqueado.

Outro problema é o risco de ocorrer incidentes provocados pelo excesso de soliticações HTTP como, por exemplo, problemas no desempenho do ambiente, excesso de log, etc.

Como se proteger deste ataque

A forma mais prática e fácil de se proteger deste ataque é a utilização de um Web Application Firewall (WAF) que tenha um módulo de DoS no nível de aplicação.

No WebViser, um WAF desenvolvido para uso interno da Batori, a criação de uma simples regra de DoS para a página wp-login.php iria bloquear este ataque de forma muito simples.

Uma outra solução que exige mais esforço é criar um script que analise continuamente o log do servidor web e que identifique a quantidade anormal de solicitações HTTP POST para a página de login. Quando isso ocorrer, o script deverá bloquear o IP através de regras de firewall (iptables) e/ou alarmar a equipe de resposta a incidentes que deverá tomar as ações necessárias, como por exemplo, criar regra no firewall de rede para bloquear o IP, notificar o responsável pelo IP, etc.

Publicado em Segurança em Aplicações | Comments Off on Estudo de um ataque de dicionário contra um site baseado em WordPress

Vazamento de cartões afeta 250 hotéis Hyatt pelo mundo, inclusive o de São Paulo.

hyatt-sao-paulo-afetado

Na sequência de uma investigação sobre uma violação dos seus sistemas de processamento de pagamentos, o operador do Hyatt Hotels com base em Chicago  informou que o incidente afeta 250 hotéis em todo o mundo.

Segundo a empresa, o inquérito revelou acesso não autorizado aos dados associados com pagamento de cartões realizados em locais gerenciados pelo Hyatt, principalmente restaurantes, entre 13 de agosto de 2015 e 08 de dezembro de 2015. Hyatt diz que uma pequena porcentagem dos cartões expostos foram utilizados em lojas de golfe, spas, estacionamento, ou tinham sido fornecidos para escritórios de vendas.

Os hotéis atingidos pelo incidente estão localizadas na Argentina, Armênia, Aruba, Austrália, Áustria, Azerbaijão, Brasil, Camboja, Canadá, Chile, China, Costa Rica, Egito, França, Alemanha, Grécia, Guam, Hong Kong, Índia, Indonésia , Itália, Japão, Jordânia, Macau, Malásia, Maldivas, México, Marrocos, Nepal, Holanda, Ilhas Marianas, Omã, Panamá, Filipinas, Porto Rico, Qatar, Rússia, Arábia Saudita, Sérvia, Singapura, África do Sul, Coréia do Sul , Suíça, Taiwan, Tajiquistão, Tanzânia, Tailândia, Trinidad e Tobago, Turquia, Ucrânia, Emirados Árabes Unidos, o Reino Unido, os EUA e Vietnã.

O maior número de locais afetados estão na China (22 hotéis), Índia (20 hotéis) e Estados Unidos (99 hotéis). Somente o Hyatt Regency em Boston é listado como sendo impactado desde 30 de julho.

Hyatt disse que o malware encontrado em seus sistemas foi projetado para coletar nomes do titular do cartão, números de cartões, datas de vencimento e códigos de verificação. O malware coletou os dados à medida que passavam através dos sistemas de processamento de pagamentos infectados. Não há nenhuma evidência de que outras informações do cliente foram comprometidas, disse o operador de hotel.

Hyatt disse os reguladores nacionais e estaduais apropriados foram notificados, e que tem trabalhado com o FBI para investigar o incidente. A empresa está trabalhando para notificar os clientes afetados via correio tradicional e e-mail. Para os clientes nos quais  Hyatt não tem qualquer informação de contato, é recomendado verificar a lista de hotéis afetados.

Um ano gratuito de serviço  de proteção contra fraudes via CSID foi oferecido às vítimas.

“Embora seja comum observar malware capturar cartões de crédito no momento do furto, neste caso, o malware coletou os dados do cartão enquanto eles estavam sendo transferidos através dos sistemas de processamento de pagamentos afectados, segundo a declaração do Hyatt”, disse Brad Chipre, chefe de segurança e conformidade em Netsurion, um provedor de serviços de segurança gerenciados para empresas.

A lista de operadores hoteleiros que foram alvos por criminosos virtuais no ano passado inclui Mandarin Oriental Hotel Group, Branco Serviços de Alojamento, Trump Hotel colecção, Hilton e Starwood Hotels.

Publicado em Invasão | Comments Off on Vazamento de cartões afeta 250 hotéis Hyatt pelo mundo, inclusive o de São Paulo.

Administrar (SSH) o servidor da AWS de vários lugares diferentes com mais segurança

Para administrar um servidor, normalmente temos que abrir portas de comunicação no firewall de rede para permitir acesso administrativo por SSh ou Terminal Service.

De acordo com as boas práticas de segurança, devemos fechar o máximo de portas possível, deixando apenas as portas que são estritamente necessárias.

As portas administrativas são muito visadas por atacantes externos e até mesmo por atacantes internos. Se você verificar as tentativas de ataques nestas portas, poderá ficar surpreso como são frequentes estas tentativas.

Para aumentar a segurança do ambiente, segue a sugestão de manter as portas TCP/22 (SSH) e TCP/3389 (Terminal Services) fechadas e abrir somente quando for conectar no servidor.

Para viabilizar este procedimento, foi criado um script que abre a porta SSH no firewall, conecta no servidor via SSH e depois fecha a conexão do firewall.

Este script foi criado para executar este procedimento no Amazon Web Services (AWS):

#!/usr/local/bin/python3.3

import os, sys
import json

print("Getting your public IP... ")
f = os.popen('curl -s http://www.servidor.com.br/myIp.php') #Pega o IP que irá se conectar no servidor
IP = f.read().strip()
print(IP)
f.close()

print("Clear previous SSH rules in AWS... ")
f = os.popen('aws ec2 describe-security-groups')
securityGroups = json.load(f)
f.close()
for sg in securityGroups["SecurityGroups"]:
    if sg["GroupId"] == "sg-00000000": #Id do security group
        for permission in sg["IpPermissions"]:
            if permission["ToPort"] == 22:
                for ip in permission["IpRanges"]:
                    cmd = "aws ec2 revoke-security-group-ingress --group-name " + sg["GroupName"]
                    cmd = cmd + " --protocol " + permission["IpProtocol"] + " --port 22 --cidr " + ip["CidrIp"]
                    os.system(cmd)

print("Allow your IP in AWS... ")
os.system("aws ec2 authorize-security-group-ingress --group-name nomeSecurityGroup --protocol tcp --port 22 --cidr " + IP + "/24")

print("Starting ssh session...")
os.system("ssh servidor.com.br")

print("Remove your IP in AWS... ")
os.system("aws ec2 revoke-security-group-ingress --group-name nomeSecurityGroup --protocol tcp --port 22 --cidr " + IP + "/24")

Esse script está em Python e usa API do AWS. Ele executa os seguintes passos:

  1. Obtem o IP que deverá ser liberado no firewall (Security Group no AWS)
  2. Apaga qualquer regra que permita conexão de SSH para o servidor
  3. Cria um regra permitindo o IP que vai acessar o servidor
  4. Abre uma sessão SSH
  5. Apaga a regra criada no firewall (Security Group)

Desta forma, diminuimos o risco de incidentes provocados por ataques de dicionários, força bruta e outros tipos de ataques na port SSH.

Publicado em Segurança em Ambiente de Rede | Comments Off on Administrar (SSH) o servidor da AWS de vários lugares diferentes com mais segurança