segunda-feira, 6 de abril de 2009

Fechamento de caso: a invasão dos servidores Fedora


Fonte: http://lonelyspooky.com/2009/04/05/fechamento-de-caso-a-invasao-dos-servidores-fedora/


Em 12 de agosto de 2008 o Projeto Fedora passou pelo que, provavelmente, foi o momento de maior tensão desde que as atividades foram iniciadas em 2003. Tornou-se público o fato de que um de nossos servidores foi comprometido por um invasor e que tal invasor poderia ter acessado os softwares responsáveis pela assinatura dos pacotes RPM fornecidos pelo Fedora, o que lhe permitiria assinar pacotes fraudulentos, criando um versão Linux dos vírus e cavalos de troia.

A história toda gerou uma celeuma na comunidade com especulações a respeito do impacto que isso poderia ter na imagem do projeto frente aos usuários e sobre quão seguro realmente era o Fedora e, finalmente, depois de 9 meses de investigações, os relatórios da equipe encarregada de investigar o ocorrido vem esclarecer como o intruso invadiu o servidor, o que ele fez e o que pretendia com isso.

As investigações nos logs de acesso e usos do sudo mostraram que o invasor foi capaz de invadir o sistema após se apoderar de uma chave SSH privada pertencente a um dos administradores de infra estrutura do Projeto Fedora, como esta chave SSH não era protegida por password o intruso foi capaz de utilizá-la para ter acesso ao servidor e usando o comando sudo alterou a senha do usuário.

Com o acesso garantido ao servidor, o intruso tinha acesso ao software que continha as chaves para assinatura dos pacotes RPM gerados e distribuídos pelo Projeto Fedora, mas nada indica que ele acessou tal recurso em algum momento (embora pudesse tê-lo feito se quisesse); em vez disso, o intruso aproveitou os privilégios de acesso para gerar versões envenenadas do pacote openssh e rpm, instalando-as no servidor, isso permitiria a ele capturar as senhas de usuários que se conectassem para construir pacotes via SSH e as senhas usadas para assinar os pacotes RPM. Tendo acesso ao sistema de assinatura de pacotes e conseguindo a senha para usá-lo o invasor poderia assinar qualquer pacote que desejasse, distribuindo-o para os usuários do Fedora como se fossem pacotes originais.

Apenas 22 segundos depois de instalado o pacote rpm envenenado no servidor, um dos administradores percebe que o pacote rpm foi modificado sem nenhum motivo e começa a investigar o que teria causado isso. Dezoito minutos depois que o primeiro administrador percebe que algo de estranho está acontecendo uma equipe inteira de administradores está varrendo o sistema em busca de provas conclusivas sobre uma possível suspeita de invasão. O invasor havia feito um backup do sistema para apagar seus traços; os administradores utilizam uma snapshot do volume LVM para observar o que havia no sistema durante o tempo da possível invasão. Cinco horas, onze minutos e quatorze segundos depois do primeiro sinal de que algo estava errado, os administradores encontram um pacote RPM dentro da pasta /root/.ssh/ e isso confirma o que todos temiam: o sistema havia sido invadido. Quarenta e dois minutos depois o servidor é isolado da rede.

Pelo curto tempo em que teve controle do sistema, felizmente, nenhum pacote foi gerado e assinado pelo servidor invadido e isso indica muito fortemente que o atacante não conseguiu se apoderar da chave que lhe permitiria assinar pacotes.

Seguindo a praxe de segurança para quando um sistema é comprometido a equipe de infra estrutura do Projeto Fedora iniciou um processo de desmantelamento completo do sistema usado em nossos servidores. Cada uma das áreas, mesmo que remotamente afetadas, foram reconstruídas do zero e melhoradas com tecnologias de segurança mais poderosas. Todas as chaves e senhas, mesmo as dos usuários do FAS, são descartadas e substituídas por novas e em 3 semanas todos os serviços são normalizados.

Essa situação marcou profundamente o projeto e mostrou que toda preocupação com segurança nunca é infundada mas também mostrou que o projeto é forte, enérgico e habilidoso para atuar em momentos de crise.

Faça o download do e-mail de encerramento do caso:

Update no caso da invasão dos servidores Fedora (37)

Veja a sequencia de eventos, conforme noticiado pelo líder do Projeto Fedora:

= = = = =

  • 2008-08-12 01:00:00 - Last packaging signing process from a Fedora admin. Key would have been on host temporarily up until this time.
  • 2008-08-12 07:49:05 - Standard Fedora ‘pkgconfig’ package installed by the intruder. This package is required to build an ‘openssh’ package. Intruder proceeds to build a modified ‘openssh’ package.
  • 2008-08-12 08:10:46 - modified ‘openssh’ package installed by intruder.
  • 2008-08-12 17:46:50 - Standard Fedora ‘gettext’ package installed by intruder. This package is required to build an ‘rpm’ package.
  • 2008-08-12 20:18:36 - Standard Fedora ‘mc’ package installed by intruder, possibly for convenience of stealth.
  • 2008-08-12 21:33:59 - Bacula backup started (scheduled job)
  • 2008-08-12 22:01:54 - Bacula backup Ended
  • 2008-08-12 22:31:51 - modified ‘rpm’ package installed (along with standard Fedora package dependencies for ‘rpm’).
  • 2008-08-12 22:51:00 - Cron job failed, notified admins.
  • 2008-08-12 22:53:00 - Fedora Infrastructure admins first noticed and started poking around at why RPM had changed.
  • 2008-08-12 23:11:00 - Infrastructure team lead is notified and more prodding begins.
  • 2008-08-12 23:38:00 - Infrastructure team members gather for discussions on dedicated, private IRC channel and conference call.
  • 2008-08-13 01:50:00 - It becomes more clear that a script is not at fault. LVM snapshot taken.
  • 2008-08-13 04:00:14 - Bacula backup (during the intrusion) restored to secure location
  • 2008-08-13 04:04:14 - Discovery of an RPM in /root/.ssh/ provides proof of malicious intent.
  • 2008-08-13 04:05:00 - Red Hat security team notified.
  • 2008-08-13 04:46:00 - Compromised host prohibited from routing out or in. All machines on its network are preventing access from it. Outbound connections logged.
  • 2008-08-13 05:16:00 - Fedora Project Leader notified.
  • 2008-08-13 06:13:00 - Host state saved (Xen guest). We have a running copy of the host as it was without a reboot.
  • 2008-08-13 06:14:00 - Users who have accessed the machine during the intrusion advised to change their passwords and SSH keys.
  • 2008-08-13 10:13:00 - Work continues in concert with Red Hat security team members. Preliminary announcement prepared
  • 2008-08-14 17:36:00 - All passwords and SSH keys disabled.
  • 2008-08-14 23:15:13 - Preliminary announcement to fedora-announce-list, 1+19:11 after initial determination of malicious event.
  • 2008-08-15 02:47:00 - All administrator access forced to shell access only for partial re-enabling of account system.
  • 2008-08-15 12:00:00 - (approximate) Fedora’s package build system, koji, patched to revoke all access.
  • 2008-08-15 13:11:00 - Last package build routine allowed to complete before shutdown. Comprehensive verification of the build system database contents begins, comparing against known source for malicious content.
  • 2008-08-16 15:30:03 - Update announcement to fedora-announce-list, 3+11:26 after initial determination of malicious event.
  • 2008-08-17 22:34:00 - Members of sysadmin-web group allowed back on app servers.
  • 2008-08-18 04:06:31 - Primary content verification of build system and CVS completed.
  • 2008-08-18 18:06:00 - CVS admins allowed back on servers, and handle additional verification for hosted projects.
  • 2008-08-19 02:07:45 - Update announcement to fedora-announce-list, 5+22:03 after initial determination of malicious event.
  • 2008-08-19 02:37:00 - Hosted project verification completed, and Fedora Hosted back online.
  • 2008-08-19 20:19:00 - Anonymous access via cvspserver allowed.
  • 2008-08-20 02:53:00 - Writable access to cvs1 reactivated.
  • 2008-08-20 18:35:00 - Koji build system officially open and building again.
  • 2008-08-22 12:00:02 - Update announcement to fedora-announce-list, 9+07:56 after initial determination of malicious event.
  • 2008-09-19 02:41:29 - Update announcement to fedora-announce-list, 37+22:37 after initial determination of malicious event. Investigation and issue resolution continues.
  • 2009-03-30 14:00:00 - Final report to fedora-announce-list, 229+9:56 after initial determination of malicious event.

Nenhum comentário: