Alfonso Maruccia

JavaScript e le librerie insicure

I ricercatori evidenziano la scarsa vocazione alla sicurezza del linguaggio di scripting più popolare, una tecnologia usata universalmente che però dipende troppo dalle librerie di codice non aggiornate. Il futuro? Problematico

Roma - Il futuro del Web è insicuro e il presente è ancora peggio. Questa, almeno, è una delle conclusioni che si possono trarre dalla lettura del nuovo studio realizzato dai ricercatori della Northeastern University sull'uso, anzi l'abuso delle librerie JavaScript (JS) obsolete in un numero estremamente alto di siti Web. Un problema, tra l'altro, di facile soluzione a meno di uno sforzo a opera dell'intera industria.

Analizzando le "dipendenze" di codice dei 75.000 principali siti della classifica Alexa e di 75.000 siti ".com" scelti a caso, i ricercatori del Massachusetts hanno scoperto che l'88 per cento dei siti Alexa e il 47 per cento dei siti .com fa uso di almeno una libreria JS affetta da vulnerabilità di sicurezza già note.

JavaScript è un linguaggio di scripting "notorio" per le sue falle, spiegano i ricercatori, ma anche per essere la tecnologia di sviluppo più popolare al mondo se si esclude l'ecosistema dei gadget mobile; una parte significativa di questa popolarità è ovviamente dovuta alla possibilità di "estendere" le funzionalità del linguaggio grazie a librerie esterne già strutturate come jQuery, Angular e Bootstrap.
Ma una volta implementato il codice di un sito basandosi su una di queste librerie, spiegano i ricercatori, i coder tendono ad "abbandonare" le necessarie pratiche di sicurezza operativa (opsec) trascurando il necessario aggiornamento di tutti i "pezzi" di codice presenti sul server.

Le librerie vulnerabili più "popolari" usate dai siti analizzati comprendono jQuery (36,7 per cento), Angular (40,1 per cento), Handlebars (86,6 per cento) e persino la defunta Yahoo! User Interface Library (YUI) nell'87,3 per cento dei casi. In media, il codice JS di un sito Web si basa su una libreria vecchia di 1.177 giorni rispetto alla release più recente disponibile.

A peggiorare ulteriormente le cose, poi, ci si mettono i framework e i siti Web che includono diverse versioni di una libreria JS aumentando esponenzialmente la superficie di attacco da parte dei cyber-criminali; l'integrazione di script per l'advertising e il supporto dei social network, infine, apre le porte a un ulteriore livello di rischio, visto che in questo caso l'eventuale uso di librerie vulnerabili non dipende dall'amministratore del sito.

Come si esce da una situazione del genere? Stando ai ricercatori non se ne esce, almeno non nell'immediato futuro: l'uso di possibili contromisure ai rischi delle librerie vulnerabili (ad esempio tramite l'impiego di funzionalità avanzate di una rete CDN) sono estremamente rari, e finché l'industria tecnologia non troverà il modo di tenere traccia di tutte le dipendenze JS fallate in circolazione la sicurezza continuerà a non essere una priorità per i listati JavaScript.

Alfonso Maruccia
Notizie collegate
  • SicurezzaWindows, bug rivelati e app certificateGoogle Project Zero svela l'esistenza dell'ennesima vulnerabilità pericolosa sul software di Microsoft, e l'attesa per l'arrivo di una patch è ancora lunga. Per Redmond, nel futuro, la sicurezza ridiede nelle applicazioni ufficiali
  • SicurezzaAnC, attacco hardware contro ASLRIdentificata una nuova tipologia di attacco contro la tecnologia ASLR, una difesa "primaria" adottata da anni da tutte le principali architetture di processore disponibili sul mercato. Difficile difendersi, avvertono i ricercatori
30 Commenti alla Notizia JavaScript e le librerie insicure
Ordina
  • due mesi fa ho avuto un cliente che si è fatto cracare il suo server,
    usava con libreria per suo sito di ecommerce.
    angular,
    angular-animate,
    angular-aria,
    angular-cookies,
    angular-material,
    angular-messages,
    angular-resource,
    angular-sanitize,
    angular-translate,
    angular-translate-loader-partial,
    angular-ui-router",
    jquery,
    mobile-detect,
    moment,
    perfect-scrollbar,
    toastr,
    cone server nodo.js

    il programmatore che ha sviluppatore software, tutt'ora non sa cosa sia una "sql injection" ma è bravo in graphics e con js
    non+autenticato
  • da brendan eich di mozilla non possiamo pretendere troppo da un linguaggio creato infretta e cresciuto peggio,tenuto insieme con lo sputo
    niente a che vedere con ottimi software come c# del grande Hejsberg oppure Ada o erlang
    non+autenticato
  • Ora lo dicono anche gli espertoni.

    Aggiorna quella cazzo di libreria jquery.
  • "estendere" le funzionalità del linguaggio grazie a librerie esterne?
    Ma che czz scrivi! Le librerie come Jquery e compagnia bella sono scritte esse stesse in js e non estendono proprio un bel niente.

    Aggiungono solo un'altro strato software che appesantisce e rallenta l'esecuzione di ciò che si sarebbe potuto fare direttamente in js.
    Anzichè jquery dovrebbero rinominarla bimbominkia.js
    non+autenticato
  • - Scritto da: Nome e cognome
    > "estendere" le funzionalità del linguaggio grazie
    > a librerie esterne?
    > Ma che czz scrivi! Le librerie come Jquery e
    > compagnia bella sono scritte esse stesse in js e
    > non estendono proprio un bel niente.
    >

    Come dire che stdlib è solo una libreria scritta in C

    >
    > Aggiungono solo un'altro strato software che
    > appesantisce e rallenta l'esecuzione di ciò che
    > si sarebbe potuto fare direttamente in js.

    Le librerie permettono di concentrarsi sul proprio lavor senza dover reinventare la ruota ogni volta. Si chiama ingegneria del software.

    > Anzichè jquery dovrebbero rinominarla
    > bimbominkia.js

    bimbominkia è chi si illude di poter scrivere tutto da zero. Questi sono quelli che introducono il maggior numero di bugs. Nonostante tutte le vulnerabilità le librerie sono state testate da migliaia di persone non da quattro gatti messi su un progetto.
    non+autenticato
  • - Scritto da: gbbjfthv
    > - Scritto da: Nome e cognome


    >
    > > Anzichè jquery dovrebbero rinominarla
    > > bimbominkia.js
    >
    > bimbominkia è chi si illude di poter scrivere
    > tutto da zero. Questi sono quelli che introducono
    > il maggior numero di bugs. Nonostante tutte le
    > vulnerabilità le librerie sono state testate da
    > migliaia di persone non da quattro gatti messi su
    > un
    > progetto.

    Please notare il tuo interlocutore. Qui su PI e famoso per le sue locubrazioni==seghe mentali che riescono a farsi lui e altri due solamente in tutto il web!



    > > "estendere" le funzionalità del linguaggio
    > grazie
    > > a librerie esterne?
    > > Ma che czz scrivi! Le librerie come Jquery e
    > > compagnia bella sono scritte esse stesse in js e
    > > non estendono proprio un bel niente.

    Ecco le librerie o detti FRAMEWORKS, hanno il proprio motivo di essere, per aggiungere, dinamicità, estendere servizi e web frontend con interattività e funzionalità tramite librerie javascript.

    E tu sei un leognome da tastiera. Rotola dal ridere
    non+autenticato
  • > Le librerie permettono di concentrarsi sul
    > proprio lavor senza dover reinventare la ruota
    > ogni volta. Si chiama ingegneria del
    > software.
    No, questo si chiama immane spreco di risorse.
    La media dei siti non usa neppure il 3% di jquery
    Ci sono cms che importano 1MB di script per far blinkare la scritta "offerta speciale"!
    E' come se per un cacciavite ed una pinza ti portassi dietro un box di formula 1
    non+autenticato
  • - Scritto da: Nome e cognome
    > > Le librerie permettono di concentrarsi sul
    > > proprio lavor senza dover reinventare la ruota
    > > ogni volta. Si chiama ingegneria del
    > > software.
    > No, questo si chiama immane spreco di risorse.
    > La media dei siti non usa neppure il 3% di jquery
    > Ci sono cms che importano 1MB di script per far
    > blinkare la scritta "offerta
    > speciale"!
    > E' come se per un cacciavite ed una pinza ti
    > portassi dietro un box di formula
    > 1

    Senza contare le vulnerabilita' sono inevitablmente presenti in quel mega di script importato per niente.
  • - Scritto da: Nome e cognome
    > > Le librerie permettono di concentrarsi sul
    > > proprio lavor senza dover reinventare la ruota
    > > ogni volta. Si chiama ingegneria del
    > > software.
    > No, questo si chiama immane spreco di risorse.
    > La media dei siti non usa neppure il 3% di jquery
    > Ci sono cms che importano 1MB di script per far
    > blinkare la scritta "offerta
    > speciale"!
    > E' come se per un cacciavite ed una pinza ti
    > portassi dietro un box di formula
    > 1

    Disse quello che non ne è stato capace di implementarlo sui suoi progetti, o meglio ancora, di comprendere tali frameworks e quindi li si denigra.
    non+autenticato
  • - Scritto da: Il Fuddaro
    > Disse quello che non ne è stato capace di
    > implementarlo sui suoi progetti, o meglio ancora,
    Disse quello che di informatica non capisce 'na cippa. Ops scusa, non capisce una cippa in nessun campo
    non+autenticato
  • - Scritto da: Il Fuddaro
    > - Scritto da: Il Fuddaro
    > > Disse quello che non ne è stato capace di
    > > implementarlo sui suoi progetti, o meglio
    > ancora,
    > Disse quello che di informatica non capisce 'na
    > cippa. Ops scusa, non capisce una cippa in nessun
    > campo

    Detto da quello che fa il pappagallo poi.
    non+autenticato
  • - Scritto da: Il Fuddaro
    > Detto da quello che fa il pappagallo poi.
    Detto da quello che fa la lepre fuggiasca
    Ma ritorna nella tua fuffa che renderai felice il mondo
    non+autenticato
  • - Scritto da: gbbjfthv
    > - Scritto da: Nome e cognome
    > > "estendere" le funzionalità del linguaggio
    > grazie
    > > a librerie esterne?
    > > Ma che czz scrivi! Le librerie come Jquery e
    > > compagnia bella sono scritte esse stesse in js e
    > > non estendono proprio un bel niente.
    > >
    >
    > Come dire che stdlib è solo una libreria scritta
    > in
    > C
    >

    No, c'è anche un sacco di codice in assembly nelle libc (e non è il webassemblyA bocca aperta ) quindi quella libreria ha ragione di esistere.
    non+autenticato
  • - Scritto da: gbbjfthv
    > - Scritto da: Nome e cognome
    > > "estendere" le funzionalità del linguaggio
    > grazie
    > > a librerie esterne?
    > > Ma che czz scrivi! Le librerie come Jquery e
    > > compagnia bella sono scritte esse stesse in js e
    > > non estendono proprio un bel niente.
    > >
    >
    > Come dire che stdlib è solo una libreria scritta
    > in
    > C
    >
    > >
    > > Aggiungono solo un'altro strato software che
    > > appesantisce e rallenta l'esecuzione di ciò che
    > > si sarebbe potuto fare direttamente in js.
    >
    > Le librerie permettono di concentrarsi sul
    > proprio lavor senza dover reinventare la ruota
    > ogni volta. Si chiama ingegneria del
    > software.
    >

    Bella roba, adatta a sparagestionali che lavorano a cottimo.
    Non si tratta di reinventare la ruota, ma di riutilizzare la ruota che serve, non tutte le ruote possibili finora inventate.
    Se scrivi vero SW magari di base, che deve girare al meglio possibile in ogni angolo del mondo, voglio vadere quanto vale il concetto di non perdere tempo a programmare come Dio comanda, in nome di una volgare produttività spicciola.

    > > Anzichè jquery dovrebbero rinominarla
    > > bimbominkia.js
    >
    > bimbominkia è chi si illude di poter scrivere
    > tutto da zero. Questi sono quelli che introducono
    > il maggior numero di bugs. Nonostante tutte le
    > vulnerabilità le librerie sono state testate da
    > migliaia di persone non da quattro gatti messi su
    > un
    > progetto.

    Chi ha detto che per normale programmazione si deve riscrivere tutto da zero?
    Questo si fa molto raramente, per piccole e particolarissime subruotines, quando estreme esigenze di efficienza richiedono un'ottimizzazione spinta, magari semplicemente perchè quella singola routine critica viene richiamata centinaia di migliaia di volte nel corso di un singolo run.
    Che poi pochi siano in grado di farlo (o se ne strafreghino) è un'altro discorso.
    Che poi, indipendentemente dalla compessità del progetto, librerie bacate o meno, tecniche di programmazione più o meno bacchettone e condizionati, l'errore umano sia dietro l'angolo è possibile, ma evitabile se soltanto si lavora con la massima attenzione.
    Che poi pochi siano in grado di farlo (o se ne strafreghino) è un'altro discorso.

    PS: Hai presente l'Assembler, per non dire il codice macchina? L'eleboratore questo capisce, non certo classi, oggetti, dipendenze, programmi strutturati, librerie più o meno bacate e meno o più efficienti, ... ed altri artifizi ed artefatti a volontà che nulla c'entrano con la validità prestazionale del codice oggetto.
    .
    -----------------------------------------------------------
    Modificato dall' autore il 16 marzo 2017 03.03
    -----------------------------------------------------------
CONTINUA A LEGGERE I COMMENTI
Successiva
(pagina 1/2 - 7 discussioni)