helio.loureiro.eng.br
  • Home
  • Unix
  • Linux
  • Blog
  • Python
  • Programação
  • Tudo
  • Suécia
  1. You are here:  
  2. Home
  3. Tudo
  4. Pessoal
  5. FLISOL-SP 2013

Os artigos mais lidos de 2024

  • linux-br.org num ritmo mais lento
  • Criando um serviço de relay de DNS-over-HTTPS
  • Minha palestra sobre a história do Unix na IX BSD Day
  • Pedal forte de 2023 em dados do Google
  • Linux vs GNU/Linux

Ataques no raspberrypi

Details
Written by: Helio Loureiro
Category: Security
Published: May 03, 2024
Hits: 1570

Como eu tenho deixado meu desktop boa parte do tempo desligado, eu abri uma porta ssh pro raspberrypi.  Por quê?  Por nenhum motivo.

Eu nunca realmente usei esse acesso ssh, que externamente estava numa porta alta 22XY, sendo X e Y meio que aleatórios.

E claro que esqueci disso.  E hoje fui dar uma olhada.  E vários ataques.  Ou tentativas desses.

pi@raspberrypi3 ~> journalctl -u ssh | grep rhost | sed 's/.*ruser= //' | sort -n | uniq -c
      4 rhost=101.182.50.204
      2 rhost=101.182.50.204  user=root
    294 rhost=103.187.164.70
      1 rhost=103.187.164.70  user=backup
      1 rhost=103.187.164.70  user=daemon
     21 rhost=103.187.164.70  user=root
  12031 rhost=106.12.118.63
      1 rhost=106.12.118.63  user=avahi
     13 rhost=106.12.118.63  user=backup
      9 rhost=106.12.118.63  user=bin
      1 rhost=106.12.118.63  user=dnsmasq
      3 rhost=106.12.118.63  user=games
      1 rhost=106.12.118.63  user=irc
      1 rhost=106.12.118.63  user=list
      1 rhost=106.12.118.63  user=mail
      1 rhost=106.12.118.63  user=messagebus
      2 rhost=106.12.118.63  user=pi
   1379 rhost=106.12.118.63  user=root
      2 rhost=106.12.118.63  user=rtkit
      1 rhost=106.12.118.63  user=saned
      1 rhost=106.12.118.63  user=sshd
      1 rhost=106.12.118.63  user=sys
     15 rhost=106.12.118.63  user=www-data
    104 rhost=106.244.154.170
     37 rhost=106.244.154.170  user=root
      6 rhost=110.83.205.126
      9 rhost=110.83.205.126  user=root
    414 rhost=112.54.121.23
      2 rhost=112.54.121.23  user=backup
      1 rhost=112.54.121.23  user=bin
      1 rhost=112.54.121.23  user=daemon
    200 rhost=112.54.121.23  user=root
      3 rhost=112.96.138.97
      1 rhost=112.96.138.97  user=root
      1 rhost=112.97.211.56  user=root
      1 rhost=112.97.219.144
      1 rhost=112.97.219.144  user=root
      1 rhost=112.97.241.205  user=root
      1 rhost=112.97.63.81  user=root
    147 rhost=113.116.156.72
      1 rhost=113.116.156.72  user=bin
      1 rhost=113.116.156.72  user=games
      2 rhost=113.116.156.72  user=man
      1 rhost=113.116.156.72  user=pi
      1 rhost=113.116.156.72  user=root
      1 rhost=113.116.156.72  user=sshd
      1 rhost=113.116.156.72  user=sync
      2 rhost=113.116.156.72  user=sys
    645 rhost=113.161.59.72
     45 rhost=113.161.59.72  user=root
      3 rhost=113.194.225.182
      1 rhost=113.194.225.182  user=root
  10679 rhost=115.68.114.145
      5 rhost=115.68.114.145  user=backup
      2 rhost=115.68.114.145  user=bin
      2 rhost=115.68.114.145  user=daemon
      2 rhost=115.68.114.145  user=dnsmasq
      1 rhost=115.68.114.145  user=geoclue
      1 rhost=115.68.114.145  user=gnats
      1 rhost=115.68.114.145  user=list
      1 rhost=115.68.114.145  user=lp
      2 rhost=115.68.114.145  user=mail
      2 rhost=115.68.114.145  user=pi
   2181 rhost=115.68.114.145  user=root
      3 rhost=115.68.114.145  user=sshd
      1 rhost=115.68.114.145  user=sys
      1 rhost=115.68.114.145  user=systemd-coredump
      2 rhost=115.68.114.145  user=tss
     24 rhost=115.68.114.145  user=uucp
      9 rhost=115.68.114.145  user=www-data
   1994 rhost=115.68.193.229
      4 rhost=115.68.193.229  user=backup
      4 rhost=115.68.193.229  user=bin
      3 rhost=115.68.193.229  user=daemon
      2 rhost=115.68.193.229  user=pi
    863 rhost=115.68.193.229  user=root
      3 rhost=115.68.193.229  user=www-data
    171 rhost=115.73.212.140
     70 rhost=115.73.212.140  user=root
      1 rhost=115.73.212.140  user=www-data
    240 rhost=115.73.222.121
     27 rhost=115.73.222.121  user=root
    117 rhost=115.79.138.57
     28 rhost=115.79.138.57  user=root
      1 rhost=115.79.138.57  user=uucp
     41 rhost=117.132.195.92
     13 rhost=117.132.195.92  user=root
      1 rhost=117.132.195.92  user=uucp
    597 rhost=119.204.234.220
      1 rhost=119.204.234.220  user=lp
      1 rhost=119.204.234.220  user=news
    176 rhost=119.204.234.220  user=root
      2 rhost=119.204.234.220  user=sshd
      7 rhost=121.170.243.115
      2 rhost=121.170.243.115  user=root
      5 rhost=121.207.184.52
      1 rhost=121.207.184.52  user=root
    320 rhost=121.237.47.72
     16 rhost=121.237.47.72  user=root
      1 rhost=123.226.234.157  user=root
      3 rhost=138.68.65.85
      6 rhost=138.68.65.85  user=root
    822 rhost=153.99.251.110
      2 rhost=153.99.251.110  user=backup
      2 rhost=153.99.251.110  user=bin
      1 rhost=153.99.251.110  user=daemon
      2 rhost=153.99.251.110  user=pi
    366 rhost=153.99.251.110  user=root
      1 rhost=153.99.251.110  user=www-data
     52 rhost=171.125.189.103
      2 rhost=171.125.189.103  user=root
   4349 rhost=175.126.146.151
      1 rhost=175.126.146.151  user=avahi
      1 rhost=175.126.146.151  user=backup
      1 rhost=175.126.146.151  user=bin
      1 rhost=175.126.146.151  user=daemon
      1 rhost=175.126.146.151  user=dnsmasq
      1 rhost=175.126.146.151  user=games
      1 rhost=175.126.146.151  user=gnats
      1 rhost=175.126.146.151  user=irc
      1 rhost=175.126.146.151  user=list
      1 rhost=175.126.146.151  user=messagebus
      1 rhost=175.126.146.151  user=nobody
      1 rhost=175.126.146.151  user=pi
    511 rhost=175.126.146.151  user=root
      1 rhost=175.126.146.151  user=sshd
      1 rhost=175.126.146.151  user=sync
      1 rhost=175.126.146.151  user=sys
      1 rhost=175.126.146.151  user=systemd-coredump
      1 rhost=175.126.146.151  user=uucp
      1 rhost=175.126.146.151  user=www-data
   2376 rhost=175.126.146.170
      2 rhost=175.126.146.170  user=backup
      8 rhost=175.126.146.170  user=bin
      2 rhost=175.126.146.170  user=daemon
      3 rhost=175.126.146.170  user=lp
      1 rhost=175.126.146.170  user=news
      4 rhost=175.126.146.170  user=nobody
   1601 rhost=175.126.146.170  user=root
      1 rhost=175.126.146.170  user=saned
      3 rhost=175.126.146.170  user=sshd
    100 rhost=176.232.199.34
      9 rhost=176.232.199.34  user=root
      2 rhost=180.102.215.191
      2 rhost=180.102.215.191  user=root
     50 rhost=180.214.179.130
      1 rhost=180.214.179.130  user=nobody
     12 rhost=180.214.179.130  user=root
    104 rhost=182.161.158.243
      1 rhost=182.161.158.243  user=bin
     36 rhost=182.161.158.243  user=root
     64 rhost=182.92.205.87  user=root
    168 rhost=183.239.61.5
     36 rhost=183.239.61.5  user=root
      1 rhost=183.239.61.5  user=uucp
    802 rhost=183.6.114.32
      9 rhost=183.6.114.32  user=bin
      5 rhost=183.6.114.32  user=daemon
      2 rhost=183.6.114.32  user=nobody
    370 rhost=183.6.114.32  user=root
     31 rhost=185.11.61.234
      2 rhost=185.11.61.234  user=backup
      6 rhost=185.11.61.234  user=root
    127 rhost=185.11.61.88
     18 rhost=185.11.61.88  user=root
      1 rhost=185.11.61.88  user=uucp
      1 rhost=185.11.61.88  user=www-data
    640 rhost=188.92.243.94
      5 rhost=188.92.243.94  user=backup
      2 rhost=188.92.243.94  user=bin
      1 rhost=188.92.243.94  user=daemon
      1 rhost=188.92.243.94  user=news
      1 rhost=188.92.243.94  user=proxy
    381 rhost=188.92.243.94  user=root
      1 rhost=188.92.243.94  user=sync
      1 rhost=188.92.243.94  user=www-data
     10 rhost=190.108.93.158
     18 rhost=190.108.93.158  user=root
   1217 rhost=190.2.143.54
     13 rhost=190.2.143.54  user=bin
      7 rhost=190.2.143.54  user=daemon
      4 rhost=190.2.143.54  user=nobody
    561 rhost=190.2.143.54  user=root
     15 rhost=190.238.35.29
      1 rhost=190.238.35.29  user=pi
      1 rhost=190.238.35.29  user=root
  12006 rhost=190.89.76.29
      7 rhost=190.89.76.29  user=pi
    389 rhost=190.89.76.29  user=root
     19 rhost=195.122.229.82
      1 rhost=195.122.229.82  user=root
      1 rhost=2.53.171.103  user=root
    803 rhost=212.186.185.171
     10 rhost=212.186.185.171  user=bin
      5 rhost=212.186.185.171  user=daemon
      2 rhost=212.186.185.171  user=nobody
    370 rhost=212.186.185.171  user=root
    234 rhost=213.63.233.87
      1 rhost=213.63.233.87  user=backup
      1 rhost=213.63.233.87  user=bin
      2 rhost=213.63.233.87  user=lp
    181 rhost=213.63.233.87  user=root
      1 rhost=213.63.233.87  user=sys
      1 rhost=213.63.233.87  user=usbmux
     28 rhost=218.101.201.179
      1 rhost=218.101.201.179  user=root
      7 rhost=218.81.76.84
     10 rhost=218.81.76.84  user=root
    822 rhost=220.249.111.98
      2 rhost=220.249.111.98  user=backup
      2 rhost=220.249.111.98  user=bin
      1 rhost=220.249.111.98  user=daemon
      2 rhost=220.249.111.98  user=pi
    366 rhost=220.249.111.98  user=root
      1 rhost=220.249.111.98  user=www-data
    289 rhost=222.107.116.47
     92 rhost=222.107.116.47  user=root
    159 rhost=222.208.47.30
      1 rhost=222.208.47.30  user=pulse
     50 rhost=222.208.47.30  user=root
     23 rhost=39.118.171.84
     24 rhost=39.118.171.84  user=root
      4 rhost=39.144.46.7
      2 rhost=39.144.46.7  user=root
     63 rhost=39.144.46.82
      2 rhost=39.144.46.82  user=root
    996 rhost=39.162.8.99
      1 rhost=39.162.8.99  user=list
      1 rhost=39.162.8.99  user=proxy
     77 rhost=39.162.8.99  user=root
      1 rhost=39.162.8.99  user=sys
      1 rhost=39.162.8.99  user=www-data
      6 rhost=42.49.109.197
      3 rhost=42.49.109.197  user=root
    758 rhost=46.7.73.67
      1 rhost=46.7.73.67  user=bin
      1 rhost=46.7.73.67  user=nobody
    240 rhost=46.7.73.67  user=root
   1672 rhost=51.81.245.139
      2 rhost=51.81.245.139  user=backup
      8 rhost=51.81.245.139  user=root
     27 rhost=51.81.245.139  user=uucp
      5 rhost=51.81.245.139  user=www-data
    254 rhost=58.218.252.82
      1 rhost=58.218.252.82  user=proxy
     47 rhost=58.218.252.82  user=root
    316 rhost=59.58.102.162
      1 rhost=59.58.102.162  user=backup
     97 rhost=59.58.102.162  user=root
      1 rhost=59.58.102.162  user=sync
     12 rhost=61.149.209.194
      4 rhost=61.149.209.194  user=root
    134 rhost=62.122.184.252
     10 rhost=62.122.184.252  user=root
      2 rhost=62.122.184.252  user=sshd
      2 rhost=67.205.142.48
      3 rhost=75.119.144.68  user=root
     55 rhost=81.14.168.152
     25 rhost=81.14.168.152  user=root
      1 rhost=81.14.168.152  user=saned
     29 rhost=85.209.11.226
      1 rhost=85.209.11.226  user=pi
      5 rhost=85.209.11.226  user=root
      1 rhost=85.209.11.226  user=sshd
   1809 rhost=85.24.245.46
      8 rhost=85.24.245.46  user=backup
      1 rhost=85.24.245.46  user=bin
      1 rhost=85.24.245.46  user=lp
      1 rhost=85.24.245.46  user=mail
      2 rhost=85.24.245.46  user=news
      4 rhost=85.24.245.46  user=nobody
      1 rhost=85.24.245.46  user=proxy
   1229 rhost=85.24.245.46  user=root
      1 rhost=85.24.245.46  user=uucp
    413 rhost=85.246.237.232
      1 rhost=85.246.237.232  user=games
      1 rhost=85.246.237.232  user=nobody
    293 rhost=85.246.237.232  user=root
      1 rhost=85.246.237.232  user=saned
      1 rhost=85.246.237.232  user=sshd
      1 rhost=85.246.237.232  user=uucp
      1 rhost=86.227.110.209
     37 rhost=86.236.26.148
     12 rhost=86.236.26.148  user=root
      1 rhost=90.134.40.219  user=root
    306 rhost=90.40.72.74
      1 rhost=90.40.72.74  user=root
      7 rhost=90.40.72.74  user=uucp
      1 rhost=90.40.72.74  user=www-data
    129 rhost=94.208.120.232
      1 rhost=94.208.120.232  user=daemon
     13 rhost=94.208.120.232  user=root

Desativei a porta.

O raspberrypi precisa de senha pra sudo, coisa que aprendi depois do ataque bem sucedido do Maycon que ficou eternizado dentro do código do stallmanbot.py:

def Hacked(obj, cmd):
    try:
        obj.reply_to(cmd, u"This is the gallery of metions from those who dared to hack, and just made it true.")
        obj.reply_to(cmd, u"Helio is my master but Maycon is my hacker <3 (Hack N' Roll)")
        gif = "https://media.giphy.com/media/26ufcVAp3AiJJsrIs/giphy.gif"
        obj.send_document(cmd.chat.id, gif)
    except Exception as e:
        obj.reply_to(cmd, f"Deu merda: {e}")

Então acredito que mesmo um ataque bem sucedido de ssh não tenha causado grandes danos.  Mas nunca é certeza :)

Outro ponto interessante é que todos os ataques vieram por IPv4.  Nenhum, absolutamente nenhum, por IPv6.  Até nesse ponto IPv6 é mais seguro.

O dia em que sofri um ataque de DDoS

Details
Written by: Helio Loureiro
Category: Security
Published: July 30, 2011
Hits: 13743

Terror da Internet, os ataques de DDoS ficaram em evidência ultimamente por causa dos grupos AnonOps e LuzSec, que atacaram vários sites usando essa técnica.  

DDoS nada mais é que um ataque do tipo "estouro de boiada".  Utilizando máquinas contaminadas, usa-se um programa "administrador" que envia o agendamento do ataque, com data e horário, para uma máquina de destino.  No caso esse destino foi num dos servidores que administro.  Por acaso onde está o serviço do http://eri.cx entre outros.

O ataque não foi dirigido diretamente à mim, mas um dos sites hospedados lá (não, não foi pro eri.cx).  Durante um ataque DDoS, isso não importa muito pois tudo que está hospedado no servidor é afetado juntamente.  Ou os serviços tornam-se indisponíveis ou a máquina pode travar, o que não deveria acontecer.   Mas um ataque DDoS não abre brechas pra invasão ou algo do gênero.

Felizmente conseguimos mitigar o ataque e minizar seus efeitos com algumas medidas bem simples, que são descritos aqui.

Comecei a suspeitar que algo estava errado quando recebi a mensagem abaixo, da lista de discussão que é mantida nesse servidor.


From: Mail Delivery System <This email address is being protected from spambots. You need JavaScript enabled to view it.>
Date: 2011/7/1
Subject: Undelivered Mail Returned to Sender
To: This email address is being protected from spambots. You need JavaScript enabled to view it.


This is the mail system at host domain.server.com.

I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.

For further assistance, please send mail to postmaster.

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

                  The mail system

<This email address is being protected from spambots. You need JavaScript enabled to view it.>: Command time limit exceeded: "/var/lib/mailman/mail/mailman
   post list"

Imediatamente tentei conectar no servidor e... nada.  Página web igualmente fora do ar.  Achei que poderia ser algum problema de hardware ou mesmo da máquina virtual.  Entrei em contato com a pessoa que tinha o acesso console na máquina e pedi para verificar o que estava acontecendo.

Momentos depois recebi o contato da pessoa avisando que a máquina estava travada e não conseguia dar boot: ela voltava a travar instantes depois.  Nesse momento imaginei que podia ser um ataque.

Pedi então para dar boot em "single mode" e desabilitar acesso ao apache e mysql e tentar o boot normalmente.  Felizmente deu certo, pois ataques DDoS são fortes em volume, mas não muito inteligentes e refinados.

Utilizando o tcpdump, demos uma olhada no tipo de tráfego que chega e vimos que o ataque era direcionado prioritariamente à porta 80 (web):


17:57:01.220234 IP 115.214.63.123.2844 > server.80: Flags [.], ack 1863118067, win 65306, length 0
17:57:01.237522 IP 115.214.63.123.2844 > server.80: Flags [F.], seq 0, ack 1, win 65306, length 0
17:57:01.237582 IP server.80 > 115.214.63.123.2844: Flags [.], ack 1, win 6432, length 0
17:57:01.241481 IP 86.96.227.91.39237 > server.80: Flags [.], ack 1882163284, win 65535, length 0
17:57:01.241527 IP 86.96.227.91.39237 > server.80: Flags [P.], seq 0:285, ack 1, win 65535, length 285
17:57:01.241573 IP server.80 > 86.96.227.91.39237: Flags [.], ack 285, win 6432, length 0
17:57:01.269729 IP server.80 > 86.96.227.91.39237: Flags [.], seq 1:1461, ack 285, win 6432, length 1460
17:57:01.269774 IP server.80 > 86.96.227.91.39237: Flags [P.], seq 1461:2802, ack 285, win 6432, length 1341

Vários pedidos de início de conexão, sem resposta.

O efeito do ataque pode ser visto nesse gráfico, entre as semanas 26 e 27:

Olhando nos logs do apache, pudemos identificar qual o domínio que estava sob ataque.  Confirmamos com tcpdump também que boa parte do ataque buscava tal domínio pelo DNS, verificando o tráfego na porta 53.  Então tomei a primeira providência para mitigar o ataque: troquei os IPs do domínio no DNS para 127.0.0.1 (loopback).

Como anúncios de DNS demoram um pouco para serem propagados, essa solução começou a mostrar um pouco mais de eficiência somente depois de 1 hora.  Mas isso reduziu o ataque na ordem de 60%, ou até mais.

O DNS seria suficiente, mas o ataque poderia voltar buscando somente o IP e esse truque não iria ajudar muito.  Então comecei a olhar como estava configurado o servidor Apache, pois um servidor Unix (ou Linux no caso) não pode travar por conta de um ataque desses, a menos que tenha alguma configuração incorreta.

Como o gráfico mostra, o servidor Apache com suas configurações padrão não foi afetado pelo ataque.  Vários processos foram criados, mas finalizados em seguida.

Tentei então verificar como estava o sistema durante o ataque, para tentar identificar o que o ataque tinha ocasionado para travar.

Como os gráficos mostram, o ataque não causou nenhum uso excessivo de CPU ou do sistema.  Nada que pudesse levar a máquina ao travamento.  Mas o servidor travava com o serviço do Apache ligado.  Então resolvi olhar os parâmetros TCP do sistema.

Essa imagem me deu a noção clara que os recursos de redes estavam sendo usados em excesso.  Mas mesmo isso não deveria causar o travamento de servidor.

Então resolvi olhar como estava o firewall.

 

A imagem que ajudou a entender o problema foi a de ipconntrack.  Como o netfilter (iptables) utiliza um modo "stateful", cada pacote que entra no sistema ocupa uma posição de memória, para poder identificar (e liberar) as conexões restantes vindas dessa origem.  Como o sistema estava sob ataque, a posição era alocada, mas ficava parada aguardando o fim da conexão, que não acontecia.  Pra piorar a situação, o firewall alocava memória e recursos do sistema em kernel level, motivo pelo qual o sistema travava.

Para mitigar esse problema, alteramos os parâmetros de kernel com sysctl da seguinte forma:


net.netfilter.nf_conntrack_generic_timeout=5
net.netfilter.nf_conntrack_tcp_timeout_syn_sent=120
net.netfilter.nf_conntrack_tcp_timeout_syn_recv=10
net.netfilter.nf_conntrack_tcp_timeout_established=10
net.netfilter.nf_conntrack_tcp_timeout_fin_wait=5
net.netfilter.nf_conntrack_tcp_timeout_close_wait=3
net.netfilter.nf_conntrack_tcp_timeout_last_ack=10
net.netfilter.nf_conntrack_tcp_timeout_time_wait=5
net.netfilter.nf_conntrack_tcp_timeout_close=10
net.netfilter.nf_conntrack_tcp_timeout_max_retrans=300
net.netfilter.nf_conntrack_tcp_timeout_unacknowledged=300
net.netfilter.nf_conntrack_tcp_loose=1
net.netfilter.nf_conntrack_tcp_be_liberal=0
net.netfilter.nf_conntrack_tcp_max_retrans=3
net.netfilter.nf_conntrack_udp_timeout=30
net.netfilter.nf_conntrack_udp_timeout_stream=180
net.netfilter.nf_conntrack_icmp_timeout=30
net.netfilter.nf_conntrack_icmpv6_timeout=30
net.netfilter.nf_conntrack_frag6_timeout=60
net.netfilter.nf_conntrack_frag6_low_thresh=196608
net.netfilter.nf_conntrack_frag6_high_thresh=262144
net.netfilter.nf_conntrack_acct=1
net.netfilter.nf_conntrack_events=1
net.netfilter.nf_conntrack_events_retry_timeout=15
net.netfilter.nf_conntrack_max=15876
net.netfilter.nf_conntrack_count=254
net.netfilter.nf_conntrack_buckets=4096
net.netfilter.nf_conntrack_checksum=1
net.netfilter.nf_conntrack_log_invalid=0
net.netfilter.nf_conntrack_expect_max=64
net.core.somaxconn=128
net.ipv4.netfilter.ip_conntrack_generic_timeout=5
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent=120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent2=120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv=20
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=10
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait=5
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait=3
net.ipv4.netfilter.ip_conntrack_tcp_timeout_last_ack=10
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait=5
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close=10
net.ipv4.netfilter.ip_conntrack_tcp_timeout_max_retrans=300
net.ipv4.netfilter.ip_conntrack_tcp_loose=1
net.ipv4.netfilter.ip_conntrack_tcp_be_liberal=0
net.ipv4.netfilter.ip_conntrack_tcp_max_retrans=3
net.ipv4.netfilter.ip_conntrack_udp_timeout=30
net.ipv4.netfilter.ip_conntrack_udp_timeout_stream=180
net.ipv4.netfilter.ip_conntrack_icmp_timeout=30
net.ipv4.netfilter.ip_conntrack_max=15876
net.ipv4.netfilter.ip_conntrack_count=254
net.ipv4.netfilter.ip_conntrack_buckets=4096
net.ipv4.netfilter.ip_conntrack_checksum=1
net.ipv4.netfilter.ip_conntrack_log_invalid=0
net.nf_conntrack_max=15876

O padrão de timeout para TCP é de 2 horas.  Alterei para alguns segundos.  Com isso pudemos reiniciar todos os serviços e mitigar totalmente o ataque, tendo a certeza que o servidor não travaria novamente.

Hacked!

Details
Written by: Helio Loureiro
Category: Security
Published: March 22, 2009
Hits: 7505

Vírus, spammers, cavalos de tróia, etc. Os caminhos da Internet são cheios de bestas mitológicas, tão devastadores quanto os das epopéias gregas. Arrasando tudo a sua frente, sem dó, sem misericórdia.

E finalmente chegou meu dia de saborear tal destino. Conseguiram invadir esse site e fazer um "defacement", ou em bom português, desfigurar o site.

Como já dizia o dito popular: "em casa de ferreiro, o espeto é de pau". O site é baseado no CMS Mambo Server, de onde o Joomla surgiu. Como uso o Mambo desde 2005 (o primeiro post tem data de "Apr 27, 2005 at 12:06 PM"), por sugestão do meu caro amigo Eduardo Maçan que também o utilizava na época, nunca me incomodei em atualizar muito ou migrar pra outra plataforma. Comecei com a versão 4.5.0, mas tinha atualizado para 4.5.1, quando fiz a "cara" verdinha do site. A mudança foi justamente por motivo de segurança.

E agora, finalmente, fui atacado com sucesso. O ataque foi através do uso de um script chamado Fx29PHPBot. Não achei muita informação sobre o mesmo, mas deve estar baseado em algum sql injection ou coisa do tipo. Isso deixou alguns arquivos extras no servidor:

 fx29id2.txt fx29bot.txt fx.php

além do próprio index.php, que foi sobrescrito.

Como o sistema é hospedado e não tenho acesso aos logs... só me restou buscar um backup do site, e carregar em read-only, até descobrir como o ataque ocorreu e, o mais importante, como impedir. Agora posso voltar a postar, utilizando a última versão do Mambo server, 4.6.2. O upgrade foi meio traumático, mas aparentemente com sucesso.

Portas do speedy liberadas

Details
Written by: Helio Loureiro
Category: Security
Published: July 14, 2006
Hits: 13259

Aparentemente a Telefonica mudou de opinião sobre a politica de bloqueio das portas dentro do range dos "well know services". Recentemente realizei um teste por acaso e descobri minha porta 80, 443 e outras completamente disponíveis na rede. Verificando os logs via webalizer, vi que a quantidade de acessos aumento significante. Olhando cuidadosamente os logs, verifiquei que os ataques também. Mas entre os ataques e a portas liberadas, eu prefiro a segunda alternativa.

Autenticação com WPA2

Details
Written by: Helio Loureiro
Category: Security
Published: March 06, 2006
Hits: 10266

Um link interessante sobre WPA2 e AES para autenticação com sistema de chaves assimétricas e geração de chaves aleatórias. Substitui com muito mais segurança o factível WEP. Infelizmente sua implementação não é tão fácil assim e nem todos equipamentos funcionam a contento. Mas aqui fica a referência.

Weak Defense...But Getting Better
by Glenn Fleishman
  1. GNUPG PUBLIC KEY
  2. PGP PUBLIC KEY

Estatísticas

  • Users 2
  • Articles 468
  • Articles View Hits 3354758

Imagem aleatória