„Heartbleed bug” – tai naujai rastas kritinis populiarios OpenSSL bibliotekos pažeidžiamumas. Ši biblioteka paprastai naudojama WWW, IM (greitųjų žinučių), pašto ir VPN serveriuose. Heartbleed pažeidžiamumas leidžia įsilaužėliui be jokių teisių nuskaityti veikiančios programos privačios atminties blokus, kuriuose galimai figūruoja slapti SSL raktai, prisijungimų vardai/slaptažodžiai ar kita slapta informacija. Pažeidžiami ne tik serveriai, bet ir klientai. Šio pažeidžiamumo išnaudojimas nėra pastebimas sisteminiuose žurnaluose. Pažeidžiamos OpenSSL versijos: 1.0.1 ir 1.0.2-beta, įskaitant ir 1.0.1f bei 1.0.2-beta1. Šių versijų savininkams rekomenduojama kuo greičiau atsinaujinti į 1.0.1g (atnaujinimai jau oficialiai pasiekiami populiariems Linux/BSD variantams), neturint galimybės rekomenduojama perkompiliuoti OpenSSL biblioteką išjungiant pažeidžiamą heartbeat plėtinį naudojant vėliavėlę: -DOPENSSL_NO_HEARTBEATS. Kitas žingsnis yra naujo rakto generavimas ir sertifikato atnaujinimas, kas ypač galioja viešai prieinamoms paslaugoms. Prieš tai naudojamas slaptas raktas galėjo būti nugvelbtas be jokių požymių, todėl dabar turėtų būti skaitomas nesaugiu. Padarius tai reikia nepamiršti ir seno sertifikato atšaukimo/panaikinimo, kad jūsų paslaugos tapatybė negalėtų būti sukompromituota ateityje (pvz. tarp įsilaužėlių populiariais phishing metodais). Priklausomai nuo paslaugos tipo gali nukentėti ir kita slapta informacija, pvz. tam tikrais Web serverių konfigūracijos atvejais egzistuoja pranešimai ir apie HTTP užklausų su vartotojų vardais, slaptažodžiais bei sesijų identifikatoriais nutekėjimą.
Pažeidžiamų operacinių sistemų sąrašas
- Debian Wheezy (stable), OpenSSL 1.0.1e-2+deb7u4
- Ubuntu 12.04.4 LTS, OpenSSL 1.0.1-4ubuntu5.11
- CentOS 6.5, OpenSSL 1.0.1e-15
- Fedora 18, OpenSSL 1.0.1e-4
- OpenBSD 5.3 (OpenSSL 1.0.1c 10 May 2012) and 5.4 (OpenSSL 1.0.1c 10 May 2012)
- FreeBSD 10.0 – OpenSSL 1.0.1e 11 Feb 2013
- NetBSD 5.0.2 (OpenSSL 1.0.1e)
- OpenSUSE 12.2 (OpenSSL 1.0.1c)
Kaip pasitikrinti
Kaip jau minėta pažeidžiamos OpenSSL versijos yra 1.0.1 ir 1.0.2-beta, įskaitant ir 1.0.1f bei 1.0.2-beta1. Senesnės ir naujesnės šakos nėra pažeidžiamos. Pasitikrinti OpenSSL versiją galima „openssl” komanda, pvz:
-user@host (~) $ openssl version OpenSSL 1.0.1c 10 May 2012
1.0.1c versija yra nesaugi, nes ji yra ankstesnė nei viršuje minėta 1.0.1f, todėl paslaugos, naudojančios šią biblioteką, yra pažeidžiamos.
OpenSSL paketų patikrinimui, priklausomai nuo operacinės sistemos, gali būti naudojamos tokios komandos (Red Hat ir Debian tipo paketų sistemoms):
rpm -q openssl dpkg-query -W openssl
Patikrinti viešai prieinamą paslaugą taip pat galite naudodami šį puslapį:
Sistemos atnaujinimas
Dauguma populiarių operacinių sistemų jau išleido OpenSSL pataisas, todėl rekomenduojama atsinaujinti standartiniais būdais. Po sistemos atnaujinimo reikėtų:
Dar karta patikrinti OpenSSL versiją ir įsitikinti, kad viskas įvyko sklandžiai;
- Perleisti visas OpenSSL naudojančias paslaugas, kad būtų pradėta naudoti nauja bibliotekos versija (senoji po atnaujinimo dar gali likti atmintyje). Paprasčiausias būdas būtų tiesiog perkrauti operacinę sistemą;
- Įvertinus galimai atskleistų duomenų riziką iš naujo susigeneruoti privačius raktus bei sertifikatus, o senus atšaukti/panaikinti, kaip buvo minėta viršuje.
Nuorodos
http://heartbleed.com/ – originalus šaltinis
https://www.openssl.org/news/secadv_20140407.txt – OpenSSL pranešimas
http://www.ubuntu.com/usn/usn-2165-1/ – Ubuntu pranešimas
http://www.kb.cert.org/vuls/id/720951 – cert.org aprašymas