Una mica més de llenya al foc, openssl bug

May 14, 2008 – 8:29 pm

Avui i veient que l'últim bug anunciat a debian security estava en boca de tothom, i tothom es preguntava fins a quin punt això podia afectar al status quo de la seguretat de les comunicacions segures, he decidit fer-li una ullada a tot plegat.

No és que sigui d'efectes retardats, sincerament a vegades les coses no en soc capaç de veure'n la dimensió fins que les tinc davant del tot. Respecte al tema puc resumir-ho com : certs programadors de debian han actuat de forma inconscient - per no ésser groller i tenint en compte la immensa feina - posant en perill durant els últims dos anys les suposades comunicacions segures dels nostres sistemes.

Ens podem fer unes quantes preguntes de tot el que envolta a aquest misteriós i increïble problema.

Primer de tot, Qui i com ha pogut fer això? Un mantainer de Debian va decidir al seu moment que cert codi havia de ser remogut - comentat en el cas del patch - perque no passava alguns dels testos d'un analitzador de memoria molt conegut. I no es va preguntar potser que aquesta línia era allà per una qüestió més important que la de sumar línies de codi ? Doncs es veu que no.

Segon, el raonament tècnic ? No sóc ni molt menys una autoritat en el tema i exiteixen bons llocs per informar-se del tema, en tot cas en faig una pinzellada tècnica del perquè de la inseguretat.

L'error es basa en la capacitat de predicció dels nombre aleatoris, que aquests són utilitzats directament per molts algoritmes de criptografia per a gener claus o d'altres eines necessaries per a securitzar protocols, medis o altres entorns. En el cas que ens ocupa, fent una ullada al substrat del problema aquest es troba localitzat a la funció ssleay_rand_add, utilizada per a generar buffers pseudo aleatoris, que al seu torn seran utilizats per a generar nombres aleatoris.

Recordem que la aleatorietat esta intrínsecament lligada a l'entropia de la informació, per tant es important ofuscar de forma eficient les dades que han sigut utilizades per a calcular aquests buffers pseudo aleatoris, el comentari introduït al codi redueix l'aleatorietat i augmenta l'entropia implicita, permetent fer atacs de força bruta.

Tercer, quins programes i paquets es veuen afectats ? Qualsevol que utilitzi openssl modificat per Debian de forma explícita - compilat estaticament - o bé de forma implicita - amb enllaç dinàmic. És el cas més comentat el de openssh. I altres programaris com MySql no es veuen afectats per utilitzar altres llibreries criptogràfiques.

Quart, nivell de risc ? Certament és complicat respondre aquesta pregunta i dependria molt del propi programa que utilitza les funcions afectades de openssl. Tal i com ja es mostrava en un missatge de farà alguns anys - els humans tenim la capacitat d'evolucionar al entrebancar-se a una mateixa pedra dues vegades - l'ús reiterat de la funció errònia mitigaria l'error per ella mateixa, gràcies a l'augment de l'aleatorietat. Aixó vol dir que si cridem 2N vegades la funció reduïm l'entropia i augmentem l'aleatorietat. Ara bé en el cas més habitual, com el de openssh, cal anar amb molt de compte.

Si ens concentrem estrictament en un paquet openssh, el risc és elevat - quasi catastròfic -, tal i com es comenta en aquest article l'espai de claus rsa o dsa generables és de només 32,768 valors diferents. És possible atacar una comunicació xifrada en temps real amb un maquinari normal i corrent.

Algunes distribucions només - debian stable entre d'altres - només proposen ugpradar el mateix paquet afectat openssl i no derivats com openssh i les claus ja generades - i dèbils - no es tornen a generar. Per superar aquest error podem eliminar les claus antigues i tornar a configurar el paquet openssh-server


root@hidrogen:/etc/ssh# rm ssh_host_dsa_key* ssh_host_rsa_key*
root@hidrogen:/etc/ssh# dpkg-reconfigure openssh-server
Creating SSH2 RSA key; this may take some time ...
Creating SSH2 DSA key; this may take some time ...
* Restarting OpenBSD Secure Shell server sshd

Feu una ullada a Barrapunto, a Slashdot a alguns dels blogs per ampliar aquesta informació, o bé a aquest magnífic article tècnic

Post a Comment

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word