Seguici su Telegram, ne vale la pena ❤️ ➡ @trovalost
Vai al contenuto

Come proteggersi dalla falla “ghost” di Linux

Un nuova falla informatica su alcune versioni di Linux, nome in codice “ghost“, è stata rivelata ieri: i suoi effetti sono davvero notevoli, e questo sia perchè riguarda una funzione cardine del sistema (glibc), sia perchè non sarà  possibile aggiornare in modo uniforme tutti i dispositivi fallati. àˆ stato infatti commesso un errore di valutazione da parte dei programmatori, che hanno classificato male un vecchio bug non aggiornando, di conseguenza, molte versioni considerate stable di Linux.

Ma come fare a proteggersi dal “fantasma” di cui si dibatterà  accanitamente nelle prossime settimane? àˆ bene non farsi prendere dall’angoscia perchè, in questi casi, l’impatto può essere limitato ed è noto, soprattutto, come effettuare la verifica e come proteggersi (aggiornando il sistema, di fatto, e considerare che molte distribuzioni sono già  protette di loro, ma molte altre no). Su seclists – una delle principali mailing list di sicurezza informatica – sono comparse stanotte le prime contromisure da adottare, che riporto in questa sede a vantaggio di tutti gli interessati. Tenete conto che si tratta di indicazioni molto specialistiche che, a conti fatti, non dovrebbero risultare neanche troppo difficili da applicare.


Cerchi un hosting economico per il tuo sito o blog? Tophost ti aspetta (clicca qui)

Chiunque gestisca un web server in hosting con Linux, ad esempio, dovrebbe leggere quanto segue e regolarsi di conseguenza: ad esempio se sia il caso di effettuare il check sulla vulnerabilità  descritto ed eventualmente aggiornarse glibc per proteggersi.


Cerchi un hosting economico per il tuo sito o blog? Tophost ti aspetta (clicca qui)

Per non generare inutile panico negli utenti Linux medi, comunque, è bene sapere quali sono le versioni infette, e verificare anzitutto se corrispondono a quelle che stiamo usando: in caso di risposta affermativa, bisogna aggiornare il sistema e seguire gli accorgimenti indicati di seguito.

Quello che bisogna sapere sulla falla “ghost”

L’impatto di “ghost” potrebbe rivelarsi più circoscritto del previsto per le seguenti ragioni:

  1. come detto nell’articolo precedente, una patch correttiva già  è in circolazione (e risale al 21 maggio 2013) ed è stata applicata e testata a glibc-2.18 a partire dal 13 agosto 2013;
  2. viene da chiedersi come mai, a questo punto, si sia lanciato comunque l’allarme: il problema risale al fatto che la falla non è stata riconosciuta all’epoca come bug di sicurezza vero e proprio, per cui alcune versioni di Linux sono rimaste scoperte.
  3. Quali sono le versioni sicuramente affette dal bug? Tra queste, annoveriamo la maggioranza delle distribuzoni stable e long-term-support come Debian 7 (wheezy), Red Hat Enterprise Linux 6 & 7, CentOS 6 & 7,Ubuntu 12.04.
  4. la falla riguarda la famiglia (obsoleta) di funzioni gethostbyname*() : con l’avvento del nuovo IPv6, si può sostituire qualsiasi chiamata a queste funzioni con la più moderna, e sicura, getaddrinfo();
  5. moltissimi programmi utilizzati localmente da Linux fanno scattare in automatico gethostbyname*() (mettendo cosଠa rischio il sistema) solo se viene superato il flag contenuto in una funzione denominata inet_aton(); in altri termini, molti sistemi sono al sicuro già  di loro senza dover fare nulla;
  6. il vero pericolo di “Ghost” è legato, di fatto, ai server online che usino gethostbyname() per eseguire operazioni sul DNS, in particolare un FCrDNS o full-circle reverse DNS. In questi casi l’esecuzione è normalmente safe (sicura), poichè l’hostname che viene passato alla funzione viene solitamente (ma sarebbe opportuno verificarlo sul campo) pre-controllato dal software DNS, a monte.
Ti potrebbe interessare:  SOLUZIONE per il problema pagina "Uffa!" di Google Chrome

Come proteggersi da “ghost”

La prima versione vulnerabile alla falla di Linux Ghost è la glibc-2.2 del 2000: il bug è stato corretto solo nel 2013, creando cosଠuna serie di pericoli in ambiente Linux a volte difficili perfino da quantificare alla buona. Tutto dipende dalla versione utilizzata: i sistemi operativi Debian 7 (wheezy), Red Hat Enterprise Linux 6 & 7, CentOS 6 & 7, Ubuntu 12.04 ne sono affetti e devono essere patchati.
I servizi a rischio per ghost sono tra gli altri Exim, Pppd, Clockdiff e Procmail, mentre digitando il seguente comando sarà  possibile listare tutti i servizi che dipendono, in qualche modo, da glibc:

lsof | grep libc | awk '{print $1}' | sort | uni

Una patch per Linux Centos/RHEL/Fedora 5,6,7 è la seguente:

yum update glibc sudo restart

Similmente per Ubuntu bisogna digitare da terminale o SSH:
sudo apt-get update
sudo apt-get dist-upgrade sudo restart

 

Per verificare se siamo vulnerabili a ghost, è stato predisposto del codice C apposito per verificarlo, che potete copiare ed incollare:

#include <netdb.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>

#define CANARY "in_the_coal_mine"

struct {
  char buffer[1024];
  char canary[sizeof(CANARY)];
} temp = { "buffer", CANARY };

int main(void) {
  struct hostent resbuf;
  struct hostent *result;
  int herrno;
  int retval;

  /*** strlen (name) = size_needed - sizeof (*host_addr) - sizeof (*h_addr_ptrs) - 1; ***/
  size_t len = sizeof(temp.buffer) - 16*sizeof(unsigned char) - 2*sizeof(char *) - 1;
  char name[sizeof(temp.buffer)];
  memset(name, '0', len);
  name[len] = '\0';

  retval = gethostbyname_r(name, &resbuf, temp.buffer, sizeof(temp.buffer), &result, &herrno);

  if (strcmp(temp.canary, CANARY) != 0) {
    puts("vulnerable");
    exit(EXIT_SUCCESS);
  }
  if (retval == ERANGE) {
    puts("not vulnerable");
    exit(EXIT_SUCCESS);
  }
  puts("should not happen");
  exit(EXIT_FAILURE);
}

Dovete poi salvarlo in un file apposito, compilarlo:

gcc GHOST.c -o GHOST

ed infine lanciarlo:

./GHOST

A questo punto, se compare la scritta “vulnerable” non siete protetti, altrimenti non dovete preoccuparvi. Fedora Linux fino alla versione 19 è vulnerabile, dalla 20 in poi non più:

[user () fedora-19 ~]$ ./GHOST
vulnerable
[user () fedora-20 ~]$ ./GHOST
not vulnerable

Dettagli tecnici (solo per developer e specialisti)

La funzione affetta dalla vulnerabilità  di “ghost” è la seguente:

__nss_hostname_digits_dots()

che viene richiamata internamente da glibc in due tipi di chiamate distinte. Le chiamate sono tuttavia circoscritte ad una macro definita soltanto in:

inet/gethstbynm.c-

inet/gethstbynm2.c-

inet/gethstbynm_r.c-

inet/gethstbynm2_r.c-

nscd/gethstbynm3_r.c

che non sono altro che i file che implementano la funzione critica (o meglio la famiglia di funzioni) gethostbyname() e gethostbyname2(), affetta da un possibile buffer overflow.

(fonte: http://seclists.org/fulldisclosure/2015/Jan/111)

Ti potrebbe interessare:  Come scegliere l'hosting per Prestashop

 

Da non perdere 👇👇👇



Questo portale esiste da 4435 giorni (12 anni), e contiene ad oggi 4019 articoli (circa 3.215.200 parole in tutto) e 12 servizi online gratuiti. – Leggi un altro articolo a caso
Non ha ancora votato nessuno.

Ti sembra utile o interessante? Vota e fammelo sapere.


Cerchi un hosting economico per il tuo sito o blog? Tophost ti aspetta (clicca qui)

Vuoi pubblicare il tuo articolo su questo portale? Cercaci su Rankister (clicca qui) .


Cerchi un hosting economico per il tuo sito o blog? Tophost ti aspetta (clicca qui)

Questo sito contribuisce alla audience di sè stesso.
Il nostro network informativo: Lipercubo.it - Pagare.online - Trovalost.it.