El jueves 16 de agosto de 2007, Skype —el servicio de telefonía por internet con sede en Luxemburgo propiedad de eBay, que entonces contaba con 220 millones de usuarios— dejó de funcionar durante la mayor parte del día, y la interrupción se prolongó hasta convertirse en una caída de casi dos días. El desencadenante fue algo corriente: el Patch Tuesday mensual de Microsoft distribuyó actualizaciones de seguridad que requerían un reinicio, y millones de máquinas Windows se reiniciaron e intentaron volver a iniciar sesión en la red entre pares de Skype en cuestión de horas unas de otras. Skype lo describió como «un reinicio masivo de los ordenadores de nuestros usuarios en todo el mundo en un intervalo de tiempo muy corto».
La arquitectura entre pares de Skype tenía, en sus propias palabras, una «capacidad incorporada de autorreparación»: la rotación de clientes que se conectaban y desconectaban se absorbía normalmente de forma automática. La tormenta de reinicios reveló un error de software hasta entonces desconocido en el algoritmo de asignación de recursos de la red que impedía que la autorreparación funcionara con rapidez. El propio mecanismo de recuperación falló ante una escala de fallo que nunca había experimentado. Como lo expresó Skype, el servicio estuvo «no disponible para la mayoría de sus usuarios durante aproximadamente dos días».
A medida que la caída se prolongaba, los investigadores de seguridad especularon que la culpable era una vulnerabilidad de denegación de servicio divulgada esa misma semana; Skype lo negó: la red no fue atacada, simplemente no podía repararse con la suficiente rapidez. El episodio se convirtió en una de las primeras lecciones canónicas de que distribuido no significa a prueba de fallos: los sistemas entre pares siguen enfrentándose a eventos correlacionados a escala global, y la capacidad de autorreparación debe dimensionarse y probarse frente a ellos.
Servicio no disponible para la mayoría de los 220 millones de usuarios de Skype durante aproximadamente dos días; las pequeñas empresas que habían prescindido de la telefonía fija perdieron su servicio telefónico
El Patch Tuesday creó un evento global correlacionado: millones de máquinas Windows se reiniciaron y volvieron a iniciar sesión en unas pocas horas, muy por encima de la rotación que la red absorbía normalmente.
Un error hasta entonces desconocido en el algoritmo de asignación de recursos de la red hizo que la función de autorreparación incorporada «no funcionara con rapidez» una vez que golpeó la tormenta: la propia ruta de recuperación falló bajo carga.
La escala del fallo nunca se había puesto a prueba: la capacidad de autorreparación se dimensionó implícitamente para patrones ordinarios de conexión y desconexión, no para reinicios sincronizados de toda la base de clientes.
Una vulnerabilidad de denegación de servicio divulgada esa misma semana enturbió el diagnóstico y obligó a Skype a negar públicamente la teoría de un ataque mientras depuraba su propio software.
Entre pares no significa libre de mantenimiento. Dimensione la ruta de recuperación para eventos correlacionados —un solo ciclo de parches puede afectar a todos los clientes a la vez— y póngala a prueba antes de que toda la red dependa de ella.
El servicio se restableció y Skype publicó un análisis post mortem detallado en su blog Heartbeat, asumiendo su responsabilidad: el desencadenante fue el ciclo de parches de Microsoft, pero el fallo estaba en el propio código de asignación de recursos de Skype, y la empresa subrayó que nada tenía que ver con la seguridad. La caída sigue citándose como el caso de manual del fallo correlacionado en redes entre pares, y de la brecha entre «distribuido, por tanto resistente» y una resistencia que se haya probado realmente.
CONSULTA LAS PRUEBAS
Las fuentes
- Patch Tuesday update triggered Skype outage The Register · theregister.co.uk ·
- Windows Users Caused Skype Outage TechCrunch · techcrunch.com ·
- Error in Skype's Software Shuts Down Phone Service The New York Times · nytimes.com ·