Fonctionnement de NTP
La loi de Segal stipule
Un homme avec une montre sait quelle heure il est . Un homme avec deux montres nest jamais sûr.
Linformaticien David L. Mills a créé NTP au début des années 1980 pour synchroniser les horloges dordinateur à une référence de temps standard. Depuis la création de NTP, un groupe de bénévoles avec le projet de pool NTP a maintenu un grand « cluster virtuel de serveurs de temps accessible au public fournissant un service NTP fiable et facile à utiliser pour des millions de clients » à travers le monde pour de nombreuses distributions Linux et appliances réseau.
Comme détaillé sur NTP .org, NTP fonctionne de manière hiérarchique en faisant passer le temps dune strate à une autre. Par exemple, Stratum 0 sert dhorloge de référence et est le serveur de temps le plus précis et le plus précis (par exemple, horloges atomiques, horloges GPS et horloges radio) .) Les serveurs Stratum 1 prennent leur temps des serveurs Stratum 0 et ainsi de suite jusquà Stratum 15; Stratum 16 cl Les ocks ne sont synchronisés avec aucune source. Lheure sur un client est établie par un échange de paquets avec un ou plusieurs serveurs de strate. Ces paquets mettent des horodatages sur chaque message et le temps nécessaire pour transmettre les messages sont des facteurs dans lalgorithme pour établir le consensus sur le temps qui devrait être sur le client.
NTP peut fournir une source de temps précise par consensus avec plusieurs serveurs dentrée. Il peut également identifier les serveurs de temps disponibles qui sont inexacts. Un défi est que NTP a été construit à une époque où la communauté Internet était plus conviviale. Lors de la création de NTP, les serveurs NTP nétaient pas concernés par la vérification des utilisateurs. Au début des années 1980, il était courant que les serveurs NTP soient accessibles au public en tant que ressources que les développeurs pouvaient utiliser pour dépanner et confirmer leur propre solution NTP.
Le protocole standard pour NTP est le protocole UDP (User Datagram Protocol). Cette décision de conception a créé des opportunités dabus. UDP, qui est sans connexion, est un protocole best-effort et, par conséquent, plus sensible à lusurpation didentité et à la perte de paquets que le protocole TCP (Transmission Control Protocol). Alors que les volontaires du projet de pool NTP ont continué à faire progresser NTP, la motivation de nombreux administrateurs réseau et propriétaires dentreprise à patcher leur propre équipement nest pas aussi forte. Depuis sa création, le protocole réseau NTP a été intégré dans dinnombrables systèmes, dont beaucoup nont pas été corrigés et pourraient exécuter du code datant de 20 révisions ou plus.
Attaques liées aux vulnérabilités NTP
Cory Doctorow a récemment écrit sur les retombées potentielles du NTP obsolète pour Boing / Boing:
NTP est la façon dont pratiquement chaque ordinateur avec lequel vous interagissez garde son horloge précise, ce qui est une fonction si fondamentale pour le fonctionnement de lInternet quil ne peut pas être surestimé … Qui plus est, les vulnérabilités de NTP ont transformé les nombreux serveurs de temps dInternet en multiplicateurs de force pour les attaques par déni de service, transformant les attaques punitives en attaques presque imparables .
La méthode utilisée pour les récentes attaques DDoS ne repose pas sur des vulnérabilités mais sur une mauvaise configuration. Les services NTP répondent à une demande de requête pour une liste de serveurs surveillés. Une seule petite requête avec une source usurpée peut générer une liste de 600 serveurs et être envoyée à une cible. Même sil ny a pas de vulnérabilité, lorsque des centaines ou des milliers de ces serveurs sont redirigés vers une cible involontaire, les victimes ne se soucient pas de la sémantique du problème qui leur cause de la douleur; ils veulent juste être soulagés.
La synchronisation de lheure sur les systèmes, ou son absence, peut être un facteur contributif important aux vulnérabilités susceptibles de compromettre les fonctions de base dun système. Outre les abus NTP contribuant aux attaques DDoS, le manque de la synchronisation de lheure sur un réseau crée une opportunité pour des attaques de relecture (cest-à-dire, des attaques de lecture) impliquant le retard répété faux ou malveillant dune transmission de données authentique.
Par exemple, une attaque de relecture peut se produire lorsquun utilisateur tente pour fournir une preuve didentité à un autre utilisateur. Un acteur malveillant intercepterait le message et lempêcherait datteindre sa cible. Lutilisateur malveillant envoie alors une demande de confirmation didentité et inclut la preuve volée comme validation. Si le lheure nest pas synchronisée, la fenêtre pendant laquelle léchange est autorisé peut être augmentée au-delà de ce qui est considéré comme sûr et permet le subterfuge. Par conséquent, les utilisateurs valides peuvent être amenés à penser quils ont réussi a confirmé lidentité dun imposteur se faisant passer pour un utilisateur légitime. En toute honnêteté, ce type dattaque par rejeu est rare et extrêmement difficile à exécuter avec succès sans accès au réseau, au chemin de communication et à une machine compromise sur ce chemin.
De nombreux experts en sécurité, tels que Shaun Kelly , ont noté que NTP a été utilisé pour manipuler les journaux et changer lheure sur un système informatique, modifiant la séquence des événements.Lorsque les horloges ne sont pas synchronisées, les analystes de réseau ont beaucoup plus de mal à effectuer une corrélation de journaux entre des systèmes disparates. La manipulation de NTP peut rendre lidentification des activités du réseau et de la séquence dévénements menant à une attaque beaucoup plus difficile à localiser.
Dautres applications qui seraient à risque parce que le temps ne fonctionne pas correctement incluent les caméras de trading et de sécurité à grande vitesse. De nombreux algorithmes de chiffrement sensibles au facteur temps impliquant des échanges de clés et des jetons sont également menacés en raison des faiblesses de NTP.
Bonnes pratiques NTP
Le reste de cet article détaille les meilleures pratiques pour configurer votre propre serveur NTP et demander un serveur NTP public.
Utilisez NTP public pour les hôtes externes. Si une entreprise est en train de créer des capacités, des services ou dautres plates-formes intégrées qui sont destinées à être déployées en dehors de lentreprise, les administrateurs réseau peuvent envisager de demander un serveur NTP public à partir du pool de serveurs disponibles mentionné précédemment.
Il est important de noter que la plupart des serveurs NTP publics spécifient des règles dengagement. Si une entreprise possède plusieurs appareils au sein de lentreprise qui utiliseront NTP, il serait judicieux de configurer leur propre hiérarchie avec laquelle se synchroniser au lieu de rivaliser pour accéder aux serveurs accessibles au public.
Configurez votre propre interne Service hiérarchique NTP pour votre réseau. Il est possible dacheter des appliances NTP Stratum 1 ou Stratum 0 à utiliser en interne pour moins que le coût dun serveur classique. Il est également possible de mettre en place un serveur NTP privé à un coût très bas. La faisabilité de la mise en place dun serveur NTP commercial sur étagère (COTS) est mise en évidence dans un récent effort pour configurer un ordinateur Raspberry Pi en tant que serveur Stratum-1. Si vous décidez de configurer vous-même, veuillez tenir compte des bonnes pratiques suivantes:
- Normaliser à lheure UTC. Au sein dune entreprise, standardisez tous les systèmes au temps universel coordonné (UTC). La normalisation à UTC simplifie la corrélation des journaux au sein de lorganisation et avec les parties externes, quel que soit le fuseau horaire dans lequel se trouve lappareil en cours de synchronisation.
- Sécurisation du service de temps réseau. Limitez les commandes qui peuvent être utilisées sur les serveurs de strate. Nautorisez pas les requêtes publiques des serveurs de strate. Autorisez uniquement les réseaux / hôtes connus à communiquer avec leurs serveurs de strate respectifs.
- Tenez compte des besoins de lentreprise en matière de cryptographie. De nombreux administrateurs essaient de sécuriser leurs réseaux avec des communications cryptées et une authentification cryptée. Je voudrais introduire une mise en garde ici car bien quil existe des services cryptographiques associés à NTP pour sécuriser les communications NTP, lutilisation du cryptage introduit plus de sources de problèmes, tels que la gestion des clés, et nécessite également une surcharge de calcul plus élevée.
- Souvenez-vous de la loi de Segal. Idéalement, cela fonctionnerait pour avoir au moins trois serveurs Stratum 0 ou Stratum 1 et utiliser ces serveurs comme maîtres principaux. Rappelez-vous la loi de Segal: avoir deux NTP serveurs, il est difficile de savoir lequel est exact. Deux serveurs de strate 0 fourniraient un horodatage plus précis car ils utilisent une source de temps considérée comme définitive.
La présence de trois sources de temps ou plus permettrait au réseau de se maintenir lheure exacte même si lun des maîtres principaux échoue. Idéalement, les serveurs NTP seraient situés dans trois emplacements géographiquement disparates. Ce groupe de maîtres principaux serait la source de temps pour lentreprise. Ils seraient considérés comme des maîtres cachés car ils ne fourniraient des services quaux serveurs de la strate secondaire. Cette configuration permettrait à ces serveurs de fournir du temps aux maîtres secondaires colocalisés qui fournissent réellement des services à une organisation. Les maîtres principaux restent cachés et ne sont accessibles que par linfrastructure NTP qui fournit des services ailleurs. Cette chaîne dapprovisionnement devrait vous permettre de fournir une heure précise dans toute votre organisation et de disposer de plusieurs sources corroborant une source de temps précise.
Les emplacements qui ont plus dappareils devant avoir leur heure synchronisée peuvent ajouter des serveurs Stratum 2 ou Stratum 3 supplémentaires et demandez-leur de sappuyer sur les maîtres secondaires ainsi que les uns sur les autres pour répartir davantage la charge sur un système et fournir des services à un plus grand groupe de clients NTP.
En mettant en place un service NTP interne sur la dernière révision de code stable et en standardisant son utilisation, la viabilité des attaques de réseau basées sur le temps ou des processus qui dépendent du temps sont plus difficiles à coopter. Lidentification de lordre des événements dans un compromis devient plus facile car les heures des journaux peuvent désormais être des systèmes denregistrement. Pour les forces de lordre et autres agences denquête, des services NTP précis peuvent être très constructifs pour évaluer les preuves et séquencer une chaîne dévénements.
Récapitulation et perspectives
À mesure que les attaques deviennent plus sophistiquées, notre équipe danalystes réseau du CERT trouve de plus en plus de services Internet qui ne sont pas bien déployés au sein dun réseau. Comme Mark Langston a écrit dans son récent article sur les meilleures pratiques DNS, nombre de ces services constituent la base de la sécurité et du fonctionnement des applications réseau internes et externes.
Ceci est le dernier dune série darticles de blog offrant le meilleur pratiques sur ces structures fondamentales pour aider les agences gouvernementales et dautres entreprises à lutter contre les sources cachées de vulnérabilités au sein de leurs réseaux. Notre chef déquipe, Rachel Kartch, a publié le premier article de cette série, Attaques par déni de service distribué: quatre meilleures pratiques pour la prévention et la réponse.