By BoLOBOOLNE payday loans

Fechamento de caso: a invasão dos servidores Fedora

by LonelySpooky

securityEm 12 de agosto de 2008 o Pro­jeto Fedora pas­sou pelo que, pro­va­vel­mente, foi o momento de maior ten­são desde que as ati­vi­da­des foram ini­ci­a­das em 2003. Tornou-se público o fato de que um de nos­sos ser­vi­do­res foi com­pro­me­tido por um inva­sor e que tal inva­sor pode­ria ter aces­sado os softwa­res res­pon­sá­veis pela assi­na­tura dos paco­tes RPM for­ne­ci­dos pelo Fedora, o que lhe per­mi­ti­ria assi­nar paco­tes frau­du­len­tos, cri­ando um ver­são Linux dos vírus e cava­los de troia.

A his­tó­ria toda gerou uma celeuma na comu­ni­dade com espe­cu­la­ções a res­peito do impacto que isso pode­ria ter na ima­gem do pro­jeto frente aos usuá­rios e sobre quão seguro real­mente era o Fedora e, final­mente, depois de 9 meses de inves­ti­ga­ções, os rela­tó­rios da equipe encar­re­gada de inves­ti­gar o ocor­rido vem escla­re­cer como o intruso inva­diu o ser­vi­dor, o que ele fez e o que pre­ten­dia com isso.

As inves­ti­ga­ções nos logs de acesso e usos do sudo mos­tra­ram que o inva­sor foi capaz de inva­dir o sis­tema após se apo­de­rar de uma chave SSH pri­vada per­ten­cente a um dos admi­nis­tra­do­res de infra estru­tura do Pro­jeto Fedora, como esta chave SSH não era pro­te­gida por pas­sword o intruso foi capaz de utilizá-la para ter acesso ao ser­vi­dor e usando o comando sudo alte­rou a senha do usuário.

Com o acesso garan­tido ao ser­vi­dor, o intruso tinha acesso ao soft­ware que con­ti­nha as cha­ves para assi­na­tura dos paco­tes RPM gera­dos e dis­tri­buí­dos pelo Pro­jeto Fedora, mas nada indica que ele aces­sou tal recurso em algum momento (embora pudesse tê-lo feito se qui­sesse); em vez disso, o intruso apro­vei­tou os pri­vi­lé­gios de acesso para gerar ver­sões enve­ne­na­das do pacote openssh e rpm, instalando-as no ser­vi­dor, isso per­mi­ti­ria a ele cap­tu­rar as senhas de usuá­rios que se conec­tas­sem para cons­truir paco­tes via SSH e as senhas usa­das para assi­nar os paco­tes RPM. Tendo acesso ao sis­tema de assi­na­tura de paco­tes e con­se­guindo a senha para usá-lo o inva­sor pode­ria assi­nar qual­quer pacote que dese­jasse, distribuindo-o para os usuá­rios do Fedora como se fos­sem paco­tes originais.

Ape­nas 22 segun­dos depois de ins­ta­lado o pacote rpm enve­ne­nado no ser­vi­dor, um dos admi­nis­tra­do­res per­cebe que o pacote rpm foi modi­fi­cado sem nenhum motivo e começa a inves­ti­gar o que teria cau­sado isso. Dezoito minu­tos depois que o pri­meiro admi­nis­tra­dor per­cebe que algo de estra­nho está acon­te­cendo uma equipe inteira de admi­nis­tra­do­res está var­rendo o sis­tema em busca de pro­vas con­clu­si­vas sobre uma pos­sí­vel sus­peita de inva­são. O inva­sor havia feito um bac­kup do sis­tema para apa­gar seus tra­ços; os admi­nis­tra­do­res uti­li­zam uma snapshot do volume LVM para obser­var o que havia no sis­tema durante o tempo da pos­sí­vel inva­são. Cinco horas, onze minu­tos e qua­torze segun­dos depois do pri­meiro sinal de que algo estava errado, os admi­nis­tra­do­res encon­tram um pacote RPM den­tro da pasta /root/.ssh/ e isso con­firma o que todos temiam: o sis­tema havia sido inva­dido. Qua­renta e dois minu­tos depois o ser­vi­dor é iso­lado da rede.

Pelo curto tempo em que teve con­trole do sis­tema, feliz­mente, nenhum pacote foi gerado e assi­nado pelo ser­vi­dor inva­dido e isso indica muito for­te­mente que o ata­cante não con­se­guiu se apo­de­rar da chave que lhe per­mi­ti­ria assi­nar pacotes.

Seguindo a praxe de segu­rança para quando um sis­tema é com­pro­me­tido a equipe de infra estru­tura do Pro­jeto Fedora ini­ciou um pro­cesso de des­man­te­la­mento com­pleto do sis­tema usado em nos­sos ser­vi­do­res. Cada uma das áreas, mesmo que remo­ta­mente afe­ta­das, foram recons­truí­das do zero e melho­ra­das com tec­no­lo­gias de segu­rança mais pode­ro­sas. Todas as cha­ves e senhas, mesmo as dos usuá­rios do FAS, são des­car­ta­das e subs­ti­tuí­das por novas e em 3 sema­nas todos os ser­vi­ços são normalizados.

Essa situ­a­ção mar­cou pro­fun­da­mente o pro­jeto e mos­trou que toda pre­o­cu­pa­ção com segu­rança nunca é infun­dada mas tam­bém mos­trou que o pro­jeto é forte, enér­gico e habi­li­doso para atuar em momen­tos de crise.

Faça o down­load do e-mail de encer­ra­mento do caso:

Update no caso da inva­são dos ser­vi­do­res Fedora (458)

Veja a sequen­cia de even­tos, con­forme noti­ci­ado pelo líder do Pro­jeto Fedora:

= = = = =

  • 2008-08-12 01:00:00 — Last pac­ka­ging sig­ning pro­cess from a Fedora admin. Key would have been on host tem­po­ra­rily up until this time.
  • 2008-08-12 07:49:05 — Stan­dard Fedora ‘pkg­con­fig’ pac­kage ins­tal­led by the intru­der. This pac­kage is requi­red to build an ‘openssh’ pac­kage. Intru­der pro­ce­eds to build a modi­fied ‘openssh’ package.
  • 2008-08-12 08:10:46 — modi­fied ‘openssh’ pac­kage ins­tal­led by intruder.
  • 2008-08-12 17:46:50 — Stan­dard Fedora ‘get­text’ pac­kage ins­tal­led by intru­der. This pac­kage is requi­red to build an ‘rpm’ package.
  • 2008-08-12 20:18:36 — Stan­dard Fedora ‘mc’ pac­kage ins­tal­led by intru­der, pos­si­bly for con­ve­ni­ence of stealth.
  • 2008-08-12 21:33:59 — Bacula bac­kup star­ted (sche­du­led job)
  • 2008-08-12 22:01:54 — Bacula bac­kup Ended
  • 2008-08-12 22:31:51 — modi­fied ‘rpm’ pac­kage ins­tal­led (along with stan­dard Fedora pac­kage depen­den­cies for ‘rpm’).
  • 2008-08-12 22:51:00 — Cron job fai­led, noti­fied admins.
  • 2008-08-12 22:53:00 — Fedora Infras­truc­ture admins first noti­ced and star­ted poking around at why RPM had changed.
  • 2008-08-12 23:11:00 — Infras­truc­ture team lead is noti­fied and more prod­ding begins.
  • 2008-08-12 23:38:00 — Infras­truc­ture team mem­bers gather for dis­cus­si­ons on dedi­ca­ted, pri­vate IRC chan­nel and con­fe­rence call.
  • 2008-08-13 01:50:00 — It beco­mes more clear that a script is not at fault. LVM snapshot taken.
  • 2008-08-13 04:00:14 — Bacula bac­kup (during the intru­sion) res­to­red to secure location
  • 2008-08-13 04:04:14 — Dis­co­very of an RPM in /root/.ssh/ pro­vi­des proof of mali­ci­ous intent.
  • 2008-08-13 04:05:00 — Red Hat secu­rity team notified.
  • 2008-08-13 04:46:00 — Com­pro­mi­sed host prohi­bi­ted from rou­ting out or in. All machi­nes on its network are pre­ven­ting access from it. Out­bound con­nec­ti­ons logged.
  • 2008-08-13 05:16:00 — Fedora Pro­ject Lea­der notified.
  • 2008-08-13 06:13:00 — Host state saved (Xen guest). We have a run­ning copy of the host as it was without a reboot.
  • 2008-08-13 06:14:00 — Users who have acces­sed the machine during the intru­sion advi­sed to change their pas­swords and SSH keys.
  • 2008-08-13 10:13:00 — Work con­ti­nues in con­cert with Red Hat secu­rity team mem­bers. Pre­li­mi­nary announ­ce­ment prepared
  • 2008-08-14 17:36:00 — All pas­swords and SSH keys disabled.
  • 2008-08-14 23:15:13 — Pre­li­mi­nary announ­ce­ment to fedora-announce-list, 1+19:11 after ini­tial deter­mi­na­tion of mali­ci­ous event.
  • 2008-08-15 02:47:00 — All admi­nis­tra­tor access for­ced to shell access only for par­tial re-enabling of account system.
  • 2008-08-15 12:00:00 — (appro­xi­mate) Fedora’s pac­kage build sys­tem, koji, pat­ched to revoke all access.
  • 2008-08-15 13:11:00 — Last pac­kage build rou­tine allowed to com­plete before shut­down. Com­prehen­sive veri­fi­ca­tion of the build sys­tem data­base con­tents begins, com­pa­ring against known source for mali­ci­ous content.
  • 2008-08-16 15:30:03 — Update announ­ce­ment to fedora-announce-list, 3+11:26 after ini­tial deter­mi­na­tion of mali­ci­ous event.
  • 2008-08-17 22:34:00 — Mem­bers of sysadmin-web group allowed back on app servers.
  • 2008-08-18 04:06:31 — Pri­mary con­tent veri­fi­ca­tion of build sys­tem and CVS completed.
  • 2008-08-18 18:06:00 — CVS admins allowed back on ser­vers, and han­dle addi­ti­o­nal veri­fi­ca­tion for hos­ted projects.
  • 2008-08-19 02:07:45 — Update announ­ce­ment to fedora-announce-list, 5+22:03 after ini­tial deter­mi­na­tion of mali­ci­ous event.
  • 2008-08-19 02:37:00 — Hos­ted pro­ject veri­fi­ca­tion com­ple­ted, and Fedora Hos­ted back online.
  • 2008-08-19 20:19:00 — Anony­mous access via cvsp­ser­ver allowed.
  • 2008-08-20 02:53:00 — Wri­ta­ble access to cvs1 reactivated.
  • 2008-08-20 18:35:00 — Koji build sys­tem offi­ci­ally open and buil­ding again.
  • 2008-08-22 12:00:02 — Update announ­ce­ment to fedora-announce-list, 9+07:56 after ini­tial deter­mi­na­tion of mali­ci­ous event.
  • 2008-09-19 02:41:29 — Update announ­ce­ment to fedora-announce-list, 37+22:37 after ini­tial deter­mi­na­tion of mali­ci­ous event. Inves­ti­ga­tion and issue reso­lu­tion continues.
  • 2009-03-30 14:00:00 — Final report to fedora-announce-list, 229+9:56 after ini­tial deter­mi­na­tion of mali­ci­ous event.

= = = = =

Share

Creative Commons License
This work, unless otherwise expres­sly sta­ted, is licen­sed under a Cre­a­tive Com­mons Attribution-NonCommercial-ShareAlike 3.0 Unpor­ted License.

Leave a Comment

You can use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre user="" computer="" escaped="">

Previous post:

Next post: