Cerca nel blog

2021/10/04

Facebook, Instagram, WhatsApp bloccati in tutto il mondo per sei ore

Mentre scrivo la prima stesura di queste righe Facebook e le sue proprietà (WhatsApp, Instagram e Oculus) sono completamente inaccessibili da alcune ore in tutto il pianeta. Facebook ha confermato laconicamente il problema con un post su Twitter.

Anche la pagina ufficiale di stato di Facebook, status.fb.com, è inaccessibile.

Questa è una mia prima sintesi della situazione. La aggiornerò man mano che ci saranno novità.

---

Ultimo aggiornamento: 2021/10/07 20:30.

A quanto risulta dalle prime analisi e indiscrezioni, tutto è iniziato intorno alle 15.40 UTC (le 17.40 italiane) in seguito a un errore commesso durante un cambiamento di configurazione interno a Facebook. 

Questo errore comporta che tutta Internet non sa più dove trovare Facebook, perché qualcuno di Facebook ha cancellato la mappa che dice dove si trova Facebook e che strada fare per raggiungerlo.

In termini leggermente tecnici: l’errore di configurazione ha reso inaccessibili da remoto i BGP peering router di Facebook, i computer dell’azienda che gestiscono il BGP (Border Gateway Protocol), che è il protocollo di Internet che determina l’instradamento (routing) dei dati da trasmettere, come spiegato qui e qui.

L’errore ha causato l’eliminazione improvvisa dei route (percorsi) BGP che consentivano di accedere ai server DNS di Facebook, per cui il DNS di Facebook non va più (lo sappiamo da tweet come questo).

Il problema è che correggere questo errore richiede che si acceda fisicamente a questi peering router, visto che non sono più raggiungibili da remoto, ma chi può farlo non è necessariamente dotato delle autorizzazioni e dell’autenticazione che sono necessari. BNO News alle 22.15 ha tweetato, citando il NYT, che Facebook ha inviato una squadra a uno dei suoi data center a Santa Clara, in California, per resettare manualmente i server.

Non solo: questo errore implica che non funziona più nessuno dei servizi interni di Facebook (mail, strumenti di gestione, sistemi di sicurezza, agende, la messaggistica interna Workplace, eccetera), visto che sono tutti sul dominio Facebook.com, che è totalmente irraggiungibile, per cui neppure i dipendenti dell’azienda possono usarli per comunicare tra loro, come nota il New York Times.

E non è finita: se, come sembra (anche da qui), le serrature delle porte degli uffici di Facebook sono “smart” (basate sull’IoT), dipendono dalla connessione a Internet e dall’accesso ai server di Facebook. Che sono inaccessibili, per cui molti dipendenti non riescono a entrare perché i loro badge di accesso non funzionano. Il New York Times conferma.

Non ci sono indicazioni di eventuali attacchi esterni: tutto indica un errore interno di dimensioni catastrofiche. 

NOTA: L’annuncio della diffusione dei dati di circa un miliardo e mezzo di utenti Facebook non è correlato a questo incidente. I dati non includono password.

Questo errore sta avendo conseguenze a catena sul resto di Internet, e arrivano segnalazioni di rallentamenti anche per Disney+, Netflix e Twitter (che finora ha retto):

Finché Facebook è fuori uso, è possibile che non funzionino neanche gli accessi alle app o ai siti che usano l’opzione "Login tramite Facebook" (per esempio Pokémon Go). 

In pratica, un miliardo di smartphone e di altri dispositivi sta cercando disperatamente di trovare Facebook e questi tentativi inutili generano traffico DNS che rallenta tutti gli altri accessi.

Agli utenti di Facebook, Instagram, WhatsApp e Oculus non resta che aspettare che la situazione venga ripristinata ed eventualmente installare app analoghe come Signal o Telegram. Aggiungo un paio di suggerimenti:

  • Disattivate le notifiche di Facebook, WhatsApp e Instagram, altrimenti quando torneranno a funzionare verrete sommersi da un fiume di notifiche rimaste in coda (grazie ad @alessLongo per la dritta). 
  • NON FIDATEVI di eventuali messaggi o mail che invitano a cliccare da qualche parte per riattivare i vostri account. I truffatori approfitteranno sicuramente del panico causato da questo collasso e invieranno messaggi-esca che porteranno a siti-trappola che somigliano alle schermate di login dei social di Zuckerberg ma sono in realtà delle copie che rubano le password.

Maggiori informazioni ed analisi sono presso Ars Technica, The Register, Brian Krebs (anche qui in maggiore dettaglio), SANS.

---

2021/10/04 23:30. Status.fb.com è tornato online:


---

2021/10/04 23:50. Alcuni lettori mi segnalano che WhatsApp e Instagram stanno riprendendo a funzionare, dopo circa sei ore di paralisi. Non è un record: un altro blackout di Facebook, WhatsApp e Instagram a marzo 2019 durò oltre quattordici ore.

---

2021/10/05 13:10. Facebook ha pubblicato delle scuse e una spiegazione dettagliata dell’incidente. Da questa pubblicazione cito:

The underlying cause of this outage also impacted many of the internal tools and systems we use in our day-to-day operations, complicating our attempts to quickly diagnose and resolve the problem.

Our engineering teams have learned that configuration changes on the backbone routers that coordinate network traffic between our data centers caused issues that interrupted this communication. This disruption to network traffic had a cascading effect on the way our data centers communicate, bringing our services to a halt.

Our services are now back online and we’re actively working to fully return them to regular operations. We want to make clear at this time we believe the root cause of this outage was a faulty configuration change. We also have no evidence that user data was compromised as a result of this downtime.

In altre parole; è confermato che anche i sistemi interni di Facebook sono stati colpiti, che si è trattato di un errore di configurazione  (non di un attacco esterno) e che non risulta che ci siano state violazioni dei dati degli utenti.

---

2021/10/05 20:55. Facebook ha pubblicato un’ulteriore spiegazione dell’accaduto. Cito la parte interessante ed evidenzio i punti salienti:

This outage was triggered by the system that manages our global backbone network capacity. The backbone is the network Facebook has built to connect all our computing facilities together, which consists of tens of thousands of miles of fiber-optic cables crossing the globe and linking all our data centers.

Those data centers come in different forms. Some are massive buildings that house millions of machines that store data and run the heavy computational loads that keep our platforms running, and others are smaller facilities that connect our backbone network to the broader internet and the people using our platforms. 

When you open one of our apps and load up your feed or messages, the app’s request for data travels from your device to the nearest facility, which then communicates directly over our backbone network to a larger data center. That’s where the information needed by your app gets retrieved and processed, and sent back over the network to your phone.

The data traffic between all these computing facilities is managed by routers, which figure out where to send all the incoming and outgoing data. And in the extensive day-to-day work of maintaining this infrastructure, our engineers often need to take part of the backbone offline for maintenance — perhaps repairing a fiber line, adding more capacity, or updating the software on the router itself.

This was the source of yesterday’s outage. During one of these routine maintenance jobs, a command was issued with the intention to assess the availability of global backbone capacity, which unintentionally took down all the connections in our backbone network, effectively disconnecting Facebook data centers globally. Our systems are designed to audit commands like these to prevent mistakes like this, but a bug in that audit tool didn’t properly stop the command. 

This change caused a complete disconnection of our server connections between our data centers and the internet. And that total loss of connection caused a second issue that made things worse.  

One of the jobs performed by our smaller facilities is to respond to DNS queries. DNS is the address book of the internet, enabling the simple web names we type into browsers to be translated into specific server IP addresses. Those translation queries are answered by our authoritative name servers that occupy well known IP addresses themselves, which in turn are advertised to the rest of the internet via another protocol called the border gateway protocol (BGP). 

To ensure reliable operation, our DNS servers disable those BGP advertisements if they themselves can not speak to our data centers, since this is an indication of an unhealthy network connection. In the recent outage the entire backbone was removed from operation,  making these locations declare themselves unhealthy and withdraw those BGP advertisements. The end result was that our DNS servers became unreachable even though they were still operational. This made it impossible for the rest of the internet to find our servers. 

All of this happened very fast. And as our engineers worked to figure out what was happening and why, they faced two large obstacles: first, it was not possible to access our data centers through our normal means because their networks were down, and second, the total loss of DNS broke many of the internal tools we’d normally use to investigate and resolve outages like this. 

Our primary and out-of-band network access was down, so we sent engineers onsite to the data centers to have them debug the issue and restart the systems. But this took time, because these facilities are designed with high levels of physical and system security in mind. They’re hard to get into, and once you’re inside, the hardware and routers are designed to be difficult to modify even when you have physical access to them. So it took extra time to activate the secure access protocols needed to get people onsite and able to work on the servers. Only then could we confirm the issue and bring our backbone back online. 

Once our backbone network connectivity was restored across our data center regions, everything came back up with it. But the problem was not over — we knew that flipping our services back on all at once could potentially cause a new round of crashes due to a surge in traffic. Individual data centers were reporting dips in power usage in the range of tens of megawatts, and suddenly reversing such a dip in power consumption could put everything from electrical systems to caches at risk.   

Helpfully, this is an event we’re well prepared for thanks to the “storm” drills we’ve been running for a long time now. In a storm exercise, we simulate a major system failure by taking a service, data center, or entire region offline, stress testing all the infrastructure and software involved. Experience from these drills gave us the confidence and experience to bring things back online and carefully manage the increasing loads. In the end, our services came back up relatively quickly without any further systemwide failures. And while we’ve never previously run a storm that simulated our global backbone being taken offline, we’ll certainly be looking for ways to simulate events like this moving forward. 

---

2021/10/07 23:20. Ho provato a tradurre in italiano umanamente comprensibile lo spiegone di Facebook del suo collasso che ho citato qui sopra. Ditemi come sono andato.

In sintesi e con qualche mio commento: Facebook è un insieme geograficamente sparso in tutto il mondo di data center, grandi e piccoli, che sono interconnessi tramite una vasta rete di cavi di telecomunicazioni, denominato backbone. Quando un utente interagisce con Facebook (e le sue associate Instagram e WhatsApp), la sua app chiede dati. Questa richiesta viene ricevuta dal data center piccolo più vicino, che la manda tramite la rete di Facebook a uno dei data center più grandi, dove viene elaborata e riceve risposta. Questo traffico è gestito da router che decidono dove inviare i dati ricevuti e spediti.

A volte questa rete ha bisogno di manutenzione o modifiche. Il blackout è stato causato da una di queste manutenzioni: è stato dato un comando per valutare la disponibilità di capacità del backbone globale. Questo comando ha involontariamente interrotto tutte le connessioni del backbone, scollegando tutti i data center. I sistemi di Facebook sono progettati per valutare comandi di questo genere per impedire questo tipo di errore, ma un bug nel sistema di valutazione non ha bloccato il comando.

Questa disconnessione ha causato un secondo problema. I data center più piccoli di Facebook rispondono anche alle query del DNS. Il DNS è la rubrica degli indirizzi di Internet: traduce i nomi dei siti che digitiamo nel browser in indirizzi IP. Questa traduzione, nel caso di Facebook, viene fatta dai name server di Facebook, i cui indirizzi vengono comunicati a tutta Internet tramite un protocollo di nome border gateway protocol o BGP.

Ma Facebook è progettata in modo che se i name server dell’azienda non riescono a comunicare con i suoi data center, le informazioni BGP vengono rimosse per sicurezza. Il risultato è che tutta Facebook diventa irreperibile e sparisce completamente da Internet.

Tutto questo è accaduto molto in fretta. I data center erano inaccessibili da remoto (la rete non funzionava) e il crollo del DNS ha bloccato il funzionamento di molti degli strumenti interni usati solitamente per gestire questi problemi. Così è stato necessario inviare fisicamente dei tecnici ai data center per risolvere l’anomalia e riavviarli. Ma questo ha richiesto tempo per via delle sicurezze fisiche elevate di questi data center: è difficile entrarvi (questo accenno sembra confermare le voci di dipendenti chiusi fuori dalle sicurezze) e una volta dentro sono progettati per rendere difficili le modifiche anche quando si ha accesso fisico.

Una volta ripristinato il backbone, si è posto un ulteriore problema: riattivare di colpo tutti i servizi avrebbe rischiato di causare nuovi crash a causa dell’improvviso aumento del traffico. Questo ha delle implicazioni a livello elettrico (non elettronico) molto importanti: i singoli data center segnalavano cali di consumo dell’ordine delle decine di megawatt, e invertire di colpo questi cali avrebbe messo a rischio gli impianti elettrici e molti altri sistemi.

Facebook aveva simulato queste situazioni durante varie esercitazioni e ha saputo riavviare i sistemi senza causare sovraccarichi. Però, nota Facebook, questo scenario non era mai stato simulato. Una pecca grave. 

Ancora una volta si conferma il concetto che i disastri non sono mai causati da un singolo guasto, ma da una combinazione di guasti concatenati. È il cosiddetto Swiss cheese Model di James T. Reason della University of Manchester: le difese di un’organizzazione sono viste come una serie di barriere rappresentate da fette di formaggio coi buchi, tipo Emmental. I buchi delle fette rappresentano le varie fragilità delle singole difese e variano continuamente di grandezza e posizione sulla fetta. Quando i buchi delle varie fette si allineano, anche solo momentaneamente, si forma una “traiettoria di opportunità per incidenti” e una minaccia o un danno che normalmente non causerebbe problemi attraversa di colpo tutte le difese, portando al disastro.

Credit per l’immagine dello Swiss cheese Model: BenAveling/Wikipedia

Nessun commento: