Clicky

Facebook da finalmente una razón de la caída de seis horas del lunes

Enrutamiento BGP

No cree que haya habido un hackeo o algún compromiso con los datos del usuario

Facebook dijo en una publicación de blog del lunes por la noche que la interrupción de seis horas que lo desconectó junto con Instagram, Messenger, Whatsapp y OculusVR fue el resultado de un cambio de configuración en sus enrutadores, no de un pirateo o intento de acceder a los datos del usuario.

La explicación no ofrece muchos detalles, pero parece que las máquinas de Facebook no podían comunicarse entre sí - Facebook dice que "esta interrupción del tráfico de la red tuvo un efecto en cascada en la forma en que se comunican nuestros centros de datos, lo que paralizó nuestros servicios".

El CEO Mark Zuckerberg publicó una disculpa el lunes por la noche, diciendo que las plataformas estaban volviendo a estar en línea. "Perdón por la interrupción de hoy. Sé cuánto confías en nuestros servicios para mantenerte conectado con las personas que te importan".

La caída comenzó alrededor de las 11:40 a.m. ET del lunes y provocó problemas generalizados para la empresa. Fue la peor caída de Facebook desde 2019, cuando el sitio estuvo inactivo durante más de 24 horas. Los empleados no pudieron conectarse entre sí en los foros de mensajes de la empresa, y algunos dijeron que estaban usando para comunicarse cuentas de correo electrónico de Outlook proporcionadas por el trabajo.

Los problemas pareceron comenzar con una actualización rutinaria de BGP que salió mal, borrando la información de enrutamiento de DNS que Facebook necesita para permitir que otras redes encuentren sus sitios.

¿Qué es BGP?

En un nivel muy básico, BGP (protocolo de puerta de enlace de frontera, Border Gateway Protocol) es uno de los sistemas que usa Internet para llevar tu tráfico a donde necesita ir lo más rápido posible. Debido a que hay toneladas de diferentes proveedores de servicios de Internet, enrutadores troncales y servidores responsables de que sus datos lleguen a, por ejemplo, Facebook, hay un montón de rutas diferentes que los paquetes podrían terminar tomando. El trabajo de BGP es mostrarles el camino y asegurarse de que sea la mejor ruta.

Escuché que BGP se describe como un sistema de oficinas de correos, un controlador de tráfico aéreo y más, pero creo que mi explicación favorita fue la que lo comparó con un mapa. Imagina BGP como un grupo de personas que crean y actualizan mapas que te muestran cómo llegar a YouTube o Facebook.

Cuando se trata de BGP, Internet se divide en grandes redes, conocidas como sistemas autónomos. Puedes imaginarlos como naciones insulares: son redes controladas por una sola entidad, que podría ser un ISP (Proveedor de Servicios de Internet), como Comcast, una empresa, como Facebook, o alguna otra gran organización como un gobierno o una importante universidad. Sería extremadamente difícil construir puentes que conecten cada isla con todas las demás, por lo que BGP es el responsable de decirle qué islas (o sistemas autónomos) debe atravesar para llegar a su destino.

Dado que Internet siempre cambia, los mapas deben actualizarse; no deseas que tu ISP te lleve por un antiguo camino que ya no llega a Google. Debido a que sería una tarea enorme mapear todo el Internet todo el tiempo, los sistemas autónomos comparten sus mapas. De vez en cuando, hablarán con sus vecinos de la isla para ver y copiar las actualizaciones que hayan realizado en sus mapas.

Al usar mapas como marco de trabajo, es fácil imaginar cómo pueden salir mal las cosas. Cuando los consumidores obtuvieron acceso por primera vez al GPS, siempre se bromeaba acerca de que conducía por un acantilado o hacia el medio del desierto. Lo mismo puede suceder con BGP: si alguien comete un error, puede terminar dirigiendo el tráfico a algún lugar al que se supone que no debe ir, lo que causará problemas. Si no se detecta, ese error terminará en el mapa de todos. Hay otras formas en las que esto puede salir mal, pero las veremos en un momento.

Si, Si, mapas. Dame un ejemplo

¡Por supuesto! Esto está enormemente simplificado, pero imagina que quieres conectarte a un sitio web imaginario de noticias de tecnología llamado Convergence. Convergence usa el ISP NetSend y tu usas DecadeConnect. En este ejemplo, DecadeConnect y NetSend no pueden comunicarse directamente entre sí, pero tu ISP puede comunicarse con Border Communications, que puede comunicarse con Form, que puede comunicarse con NetSend. Si esa es la única ruta, entonces BGP se asegurará de que tu y Convergence puedan comunicarse a través de ella. Pero si, alternativamente, tanto DecadeConnect como NetSend estuvieran conectados a ThirdLevel, BGP probablemente elegiría enrutar su tráfico a través de él, ya que es un salto más corto.

Vale, ¿ BGP es como un mapa que detalla todas las formas más rápidas de ti hasta un sitio web?

¡Correcto! Desafortunadamente, puede complicarse aún más porque lo más corto no siempre es igual a lo mejor. Hay muchas razones por las que un algoritmo de enrutamiento elegiría una ruta sobre otra; el costo también puede ser un factor, y algunas redes cobran a otras si desean incluirlas en sus rutas.

Además, ¡los mapas son muy complicados! Descubrí esto recientemente al intentar planificar un viaje en el que las carreteras existían en un mapa y no en otro o eran diferentes entre mapas. Una carretera incluso tenía tres nombres diferentes en tres mapas. Si es tan difícil de precisar para una "ciudad" que tiene las cinco carreteras, imagina cómo es tratar de conectar toda la Internet. Las carreteras reales no cambian con tanta frecuencia, pero los sitios web pueden moverse de un país a otro o cambiar, agregar o quitar proveedores de servicios, e Internet simplemente tiene que lidiar con eso.

¡Pero Facebook no lo hizo! De hecho, ha construido su propio sistema BGP, que le permite realizar "actualizaciones incrementales rápidas", según un documento presentado a principios de este año [PDF]. Dicho esto, el sistema que la compañía describe allí está destinado a la comunicación dentro de los centros de datos; en este punto, es difícil decir qué causó los problemas de Facebook el lunes, y haría falta alguien más inteligente que yo para decir si las comunicaciones del centro de datos de Facebook podrían causar este tipo de problema. El reportero de ciberseguridad Bryan Krebs afirma que la interrupción fue causada por una "actualización rutinaria de BGP".

En la actualización de ingeniería de Facebook, la compañía dijo que el problema fue causado por "cambios de configuración en los enrutadores troncales que coordinan el tráfico de red entre nuestros centros de datos". Eso luego llevó a un "efecto en cascada en la forma en que los centros de datos [de Facebook] se comunican, lo que paralizó [sus] servicios". Al menos en mi opinión, parece que el problema era que Facebook se comunicaba dentro de sí mismo, no con el mundo exterior (aunque eso obviamente puede causar una interrupción mundial, dada la cantidad de su propia red que controla Facebook).

¿Qué tienen que ver los DNS con todo esto?

Para tomar prestada una explicación de Cloudflare: DNS te dice a dónde vas y BGP te dice cómo llegar allí. DNS es la forma en que las computadoras saben en qué dirección IP se puede encontrar un sitio web u otro recurso, pero ese conocimiento en sí mismo no es útil: si le preguntas a tu amigo dónde está su casa, es probable que todavía necesite GPS para llegar allí.

Cloudflare también tiene un gran resumen técnico de cómo los errores de BGP pueden estropear las solicitudes de DNS: el artículo trata específicamente sobre el incidente de Facebook del lunes, por lo que vale la pena leerlo si estás buscando una explicación de cómo se veía desde la perspectiva de un sistema autónomo.

¿Qué puede ir mal con el BGP?

Muchas cosas. Según Cloudflare, dos notables incidentes incluyen un ISP turco que le dijo accidentalmente a todo Internet que enrutara su tráfico a su servicio en 2004 y un ISP paquistaní que prohibió accidentalmente YouTube en todo el mundo después de intentar hacerlo solo para sus usuarios. Debido a la capacidad de BGP para extenderse de un sistema autónomo a un sistema autónomo (que, como recordatorio, es una de las cosas que lo hace tan útil), un grupo que comete un error puede caer en cascada.

La adquisición de un grupo también puede causar problemas: en 2018, los piratas informáticos pudieron secuestrar solicitudes al DNS de Amazon y robar miles de dólares en Ethereum al comprometer los servidores BGP de un ISP separado. Amazon no fue el que fue pirateado, pero el tráfico destinado a él terminó en otro lugar.

O puedes estropearlo y eliminar todo tu servicio de Internet con una mala actualización de BGP. BGP se llama cariñosamente la cinta adhesiva de Internet, pero ningún adhesivo es perfecto.

¿Qué pasó con Facebook?

Parece que los servidores de Facebook, por alguna razón, les dijeron a todos que los quitaran de sus mapas. Facebook ha emitido un informe inicial, pero hay pocos detalles: es posible que Facebook planee publicar una explicación más detallada más adelante, diciendo por qué se realizaron los cambios, pero esto también puede ser lo último que nos enteremos (al menos oficialmente).

Sin embargo, el CTO de Cloudflare informa que el servicio vio una tonelada de actualizaciones de BGP de Facebook (la mayoría de las cuales fueron retiros de ruta o borrado de líneas en el mapa que conducen a Facebook) justo antes de que se cayese. Uno de los líderes tecnológicos de Fastly tuiteó que Facebook dejó de proporcionar rutas a Fastly cuando se desconectó, y KrebsOnSecurity respalda la idea de que fue una actualización del BGP de Facebook lo que eliminó sus servicios.

Recomendaría la explicación de Cloudflare si quieres detalles técnicos esenciales.

Si el problema fue de BGP ¿Cómo lo resolvió Facebook?

Dado que la caída se prolongó durante horas, la respuesta parece ser "no fue fácil". Facebook necesitaba asegurarse de anunciar los registros correctos y de que esos registros fueran recogidos por Internet en general. En otras palabras, necesitaba asegurarse de que sus mapas fueran correctos y que todos pudieran verlos.

Sin embargo, es más fácil decirlo que hacerlo. Hubo informes de empleados de Facebook que no podían acceder a puertas protegidas con credenciales y de empleados que tenían dificultades para comunicarse. En situaciones como estas, no solo tienes que averiguar quién tiene el conocimiento para resolver el problema y quién tiene los permisos para resolver el problema, sino también cómo conectar a esas personas. Y cuando toda tu empresa está muerta en el agua, no es una tarea fácil: Hay informes de ingenieros enviados físicamente a un centro de datos de Facebook en California para intentar solucionar el problema.

¿La Web3 resolvería este problema?

Stop it. I will cry.

Pero para responder rápidamente a la pregunta, probablemente no, incluso si Facebook se subiera al tren descentralizado, todavía tendría que haber algún protocolo que le diga dónde encontrar sus recursos. Antes hemos visto que es posible configurar incorrectamente o estropear los contratos de blockchain, por lo que sospecharía un poco de cualquiera que dijera que un contrato y una Internet basada en blockchain serían inmunes a este tipo de problema.

¿Podría estar relacionado con las malas noticias sobre Facebook?

Bien, obviamente, el hecho de que todo esto sucedió mientras un denunciante aparecía en la televisión y aireaba la ropa sucia de Facebook hace que sea muy fácil encontrar explicaciones alternativas. Pero es posible que se trate de un inocente error que cometió alguna persona (muy, muy desafortunada) del personal de TI de Facebook.

Por lo que vale, esa es la explicación de Facebook. Echa la culpa a un "cambio de configuración defectuoso" que hizo, no a ningún tortuoso hackeo.

La caída de Facebook se produjo un día antes de que la denunciante Frances Haugen testificara ante el Congreso sobre sus experiencias en la empresa. Haugen, una exgerente de producto de Facebook que trabajaba en su grupo de Integridad Cívica, proporcionó un tesoro de documentos internos de Facebook a los reporteros del Wall Street Journal. Ella le dijo el domingo a 60 Minutes que Facebook "paga sus ganancias con nuestra seguridad".

Jesus_Caceres