Bilan de la panne – 11 décembre 2013
Le 11 décembre, PagerDuty a subi une panne qui a affecté un sous-ensemble de clients et bloqué l'accès à toutes les adresses pagerduty.com. Tout d’abord, nous nous en excusons profondément. Toute panne, quel que soit le nombre de clients concernés, est inacceptable. La cause première de la panne peut être attribuée à un problème avec notre infrastructure DNS, en particulier DNSSEC. Cet article détaille ce qui s'est passé et les améliorations que nous apporterons pour éviter que cela ne se reproduise à l'avenir.
Contexte sur DNSSEC chez PagerDuty
En juin, nous avons activé les extensions de sécurité du système de noms de domaine (DNSSEC) pour tous les domaines PagerDuty . Nous avons fait cela afin de donner aux clients la possibilité de valider les enregistrements DNS reçus de PagerDuty de manière sécurisée. Une partie du processus de signature pour DNSSEC implique l'utilisation de clés de signature de zone (ZSK) pour signer les enregistrements de ressources (RR), et la signature résultante (RRSIG) est ensuite automatiquement déployée par notre fournisseur DNS. De nouveaux RRSIG sont générés tous les trois mois et sont régulièrement alternés et déployés. Afin de garantir qu'il existe toujours un RRSIG valide, les nouveaux RRSIG et les RRSIG existants sont déployés côte à côte pour garantir un certain chevauchement. DNSSEC est utilisé depuis 2005 et la plupart des principaux fournisseurs de DNS l'ont mis en œuvre au cours des cinq dernières années. Plus tôt cette année, Comcast et Google DNS ont commencé à appliquer DNSSEC. Cela signifie que si DNSSEC est activé pour un enregistrement DNS, mais que le RRSIG ne peut pas être validé, la requête DNS sera renvoyée comme un échec afin de protéger le demandeur des données DNS potentiellement manipulées. C'est ce qui s'est produit dans la soirée du 11 décembre 2013.
Chronologie des événements (toutes les heures sont en PST) :
- 27 novembre – Une nouvelle ZSK pour notre zone pagerduty.com est créée par notre fournisseur DNS, mais le nouveau RRSIG n'est pas déployé en raison d'une défaillance de l'infrastructure d'automatisation de notre fournisseur DNS.
- 11 décembre 22h51 – Le RRSIG existant déployé sur la zone pagerduty.com expire. Les fournisseurs DNS appliquant DNSSEC commencent à ne renvoyer aucun résultat pour la zone pagerduty.com.
- 11 décembre 23h51 – Notre fournisseur de surveillance externe secondaire nous avertit que pagerduty.com n'est pas accessible.
- 12 décembre 00h03 – Un ingénieur PagerDuty supprime l'enregistrement du signataire de délégation (DS) pour désactiver DNSSEC sur la zone pagerduty.com
- 12 décembre 00h37 – Les fournisseurs DNS avec l'application DNSSEC activée renvoient désormais les enregistrements DNS pagerduty.com.
L'impact
Pendant la panne, tous les clients qui utilisaient un fournisseur DNS appliquant DNSSEC n'ont pas pu accéder à une adresse pagerduty.com. Cela signifie qu'un petit sous-ensemble de nos clients n'ont pas pu utiliser le site Web, notre API ou nos applications mobiles. Nous avons conseillé aux clients concernés d'utiliser un autre fournisseur DNS pour contourner ce problème. Étant donné que nous ne recevions pas de trafic de la part des clients concernés, il est difficile de calculer l'impact. Notre estimation, basée sur l'examen des niveaux de trafic médians de notre équilibreur de charge, est que moins de 2 % de notre volume total de demandes a été affecté.
Ce que nous avons appris
Lorsque nous avons initialement activé DNSSEC, nous avons mis en place une surveillance autour de nos enregistrements DNS. Cependant, la surveillance mise en place avait un biais réseau plutôt qu'un biais de sécurité. Ainsi, même si notre principal fournisseur de surveillance externe a détecté que Google DNS renvoyait des résultats non valides, nous n'avons pas reçu d'alarmes appropriées. Si nous avions examiné les délais d'expiration des RRSIG, nous aurions pu détecter ce problème beaucoup plus tôt. Même si un fournisseur DNS secondaire n'aurait pas résolu ce problème spécifique, nous devons disposer d'une redondance supplémentaire pour nous protéger des pannes DNS. Enfin, la raison pour laquelle cette panne n'était pas plus visible est que tous les fournisseurs DNS n'appliquent pas DNSSEC. Google et Comcast ont tous deux pris des mesures pour améliorer la sécurité autour du DNS et nous espérons voir davantage de fournisseurs DNS faire de même.
Ce que nous faisons à ce sujet
Bien que la cause profonde de cette panne ne soit pas quelque chose sur lequel nous avions un contrôle direct, nous allons apporter des améliorations afin d'éviter que cela ne se reproduise et de détecter le problème plus tôt.
Nous allons:
- Mettre à jour notre principal fournisseur de surveillance externe pour traiter les modifications DNS comme des alertes de niveau catastrophique
- Mettre en place une surveillance et des alertes continues autour de nos délais d'expiration RRSIG
- Réglez le TTL sur notre enregistrement DS à 1 minute pour réduire les délais de propagation autour des changements
- Configuration d'un fournisseur DNS secondaire
Nous améliorons continuellement notre infrastructure pour offrir à nos clients le service le plus fiable. Si vous avez des questions ou des commentaires, n'hésitez pas à nous en faire part.