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.