Enrico Giancipoli

Ruby vulnerabile, upgrade obbligatorio

Il celebre linguaggio di programmazione rivela vulnerabilitÓ critiche che coinvolgono l'interprete e permettono attacchi DoS ed esecuzione di codice malevolo

Roma - Ruby, linguaggio di programmazione ad oggetti particolarmente utilizzato nella programmazione web, corre ai ripari. Vulnerabilità critiche sono state segnalate per le versioni 1.8.x e 1.9.x, come riportato in un advisory sul portale ufficiale del linguaggio.

I tipi di attacco con cui è possibile sfruttare le vulnerabilità vanno dalla negazione di servizio (DoS, Denial of Service)all'esecuzione remota di codice arbitrario. Nello specifico, le versioni coinvolte sono: 1.8.4 e precedenti; 1.8.5-p230 e precedenti; 1.8.6-p229 e precedenti; 1.8.7-p21 e precedenti ed 1.9.0-1 e precedenti. A seconda della versione installata è disponibile una patch per la risoluzione del problema; in realtà si tratta di un semplice upgrade di versione. Gli upgrade risolvono anche la vulnerabilità presente in WEBrick, webserver di Ruby.

Come riportato dal blog di Matasano, queste vulnerabilità sono molto pericolose in quanto non prevenibili dal programmatore: "Diversamente dalle eccezioni non gestite, questi bug non sono colpa del programmatore disattento ma sono proprio colpa dell'interprete. Parte del contratto non scritto con l'interprete del tuo linguaggio è che debba prevenire ridicole conseguenze causate dal raise di eccezioni."
Le vulnerabilità sono state scoperte da Drew Yao del team di sicurezza di Apple. Tutte le vulnerabilità pubblicate possono essere utilizzate per la corruzione di memoria dell'interprete. Le classi affette sono Array, Stringhe e Bignum: tutte classi fondamentali in Ruby. Come sottolineato ancora da Matasano, le vulnerabilità sfruttano il fatto che i numeri si "sovrappongono" quando superano la dimensione massima allocabile dalla CPU (di solito 32 bit). La possibilità di sovrascrivere aree di memoria nell'interprete Ruby praticamente equivale alla possibilità di caricare linguaggio macchina nativo nell'interprete: ci sono centinaia di locazioni della memoria che, se sovrascritte, ridirezionano il codice in librerie non protette o direttamente in buffer di input, come i contenitori di richieste web.

Sul portale ruby-forum.com si sta discutendo delle vulnerabilità e dell'impatto degli upgrade. L'allerta al momento è molto alta soprattutto per i web developer. A tutti gli sviluppatori Ruby è d'obbligo l'upgrade e caldamente consigliato di tenere d'occhio la situazione.

Enrico "Fr4nk" Giancipoli
38 Commenti alla Notizia Ruby vulnerabile, upgrade obbligatorio
Ordina
  • Studio informatica a Padova e non l'ho mai sentito, né dai miei professori né dai miei compagni di classe.
    non+autenticato
  • - Scritto da: lufo88
    > Studio informatica a Padova e non l'ho mai
    > sentito, né dai miei professori né dai miei
    > compagni di
    > classe.

    Dubito che a Padova non si conosca, che poi tu non l'abbia sentito ok, anche se non ti fa onore..Occhiolino
    non+autenticato
  • E' un linguaggio diffusissimo in Asia (soprattutto in Giappone, dov'è nato) e da qualche anno anche in Europa e USA. Infatti in libreria esistono molti libri, fatti un giro su Amazon e li troverai.
    non+autenticato
  • - Scritto da: lufo88
    > Studio informatica a Padova e non l'ho mai
    > sentito, né dai miei professori né dai miei
    > compagni di
    > classe.


    stai scherzando vero? E' il linguaggio in più rapida ascesa quanto a popolarita! Mai sentito parlare di Ruby on Rails (RoR)? Scusami se mi permetto ma se non l'hai mai sentito significa non novighi molto in siti/forum/blog specializzati in IT...
    non+autenticato
  • Non frequento forum dedicati alla pura programmazione, dopo ore di lezione in classe non voglio scervellarmi sulle stesse cose nel mio tempo libero, preferisco dedicarmi ad altro (sempre di informatica).

    Adesso ho guardato un po' di classifiche, e si piazza decimo (con lo 2.64% di utilizzo). Non male ma, neanche eccezionale.
    Soprattutto se confrontato col PHP (10% e rotti) che è quarto o java (20% e rotti di utilizzo) che è ovviamente primo.

    Mi informerò.Sorride

    Link alla classifica
    http://www.tiobe.com/index.php/content/paperinfo/t...
    non+autenticato
  • Piccola precisazione. La classifica si riferisce alle applicazioni in generale e non solo nelle applicazioni web. Mi rendo conto che se si prendesse solo questo settore le percentuali sarebbero radicalmente diverse.

    ciaoSorride
    non+autenticato
  • Non è molto chiaro.
    Il grafico si riferisce al linguaggio di programmazione in questione ma, non capisco se indica delle percentuali di uso (con quale scala?) o cos'altro.
    Puoi spiegare meglio?
    grazieSorride
    ciao
    non+autenticato
  • Sono le statistiche di ricerca su google, che possono rendere un'idea della popolarità di un prodotto, di una tecnologia e quant'altro. Il servizio è collegato con news.google.com ed è in grado di tentare di motivare eventuali picchi con particolari eventi concomitanti (acquisizioni, nuove release etc)

    http://en.wikipedia.org/wiki/Google_Trends
    non+autenticato
  • - Scritto da: lufo88
    > Non è molto chiaro.
    > Il grafico si riferisce al linguaggio di
    > programmazione in questione ma, non capisco se
    > indica delle percentuali di uso (con quale
    > scala?) o
    > cos'altro.
    > Puoi spiegare meglio?
    > grazieSorride
    > ciao
    Quel grafico indica il trend della ricerca della parola in questione su Google e non è confrontato con nulla. Indica che ultimamente le ricerche di notizie su Ruby sono aumentate: in pratica nulla che riguardi quanto hai scritto, anche se è indicativo come sia più popolare in India e nelle Filippine.
  • > Quel grafico indica il trend della ricerca della
    > parola in questione su Google e non è confrontato
    > con nulla.

    Trattandosi di uno strumento informatico, direi che una statistica sulle ricerche in google sia invece molto significativo.
    non+autenticato
  • no dai, "negazione di servizio" è troppo..
    non+autenticato
  • - Scritto da: anonimo
    > no dai, "negazione di servizio" è troppo..

    perchè? sentito mille volte...
    non+autenticato
  • - Scritto da: anonimo
    > no dai, "negazione di servizio" è troppo..


    Vero, non suona molto bene. Però non è così terrificante, dopo tutto.
    non+autenticato
  • In un linguaggio che permette di modificare il codice in esecuzione a runtime (praticamente si può fondere una qualunque variabile stringa dentro il codice) un problema del genere è tremendo!
  • si è un big-bug direi! ammazza...
    non+autenticato
  • > un problema del genere è
    > tremendo!

    Vero. E'un problema condiviso anche da Python, che con un
    exec('codice arbitrario')
    permette di fare la stessa cosa.
    IMHO è una follia: cosa non si farebbe pur di aggiungere feature cool...
    non+autenticato