L'importance du temps
Seuls quelques lecteurs connaissent le nom de Clyde Coleman. Il faut être un expert en automobile pour savoir que Coleman a mis au point le démarreur électrique pour les voitures particulières en 1899. Le démarreur a remplacé la manivelle qui, jusqu'alors, devait être insérée sous le radiateur et tournée jusqu'à ce que le moteur démarre.
Un premier pas de l'analogique vers l'électrique et surtout vers plus de convivialité et d'utilisabilité dans le véhicule. Aujourd'hui, le démarreur est une aide que l'on remarque à peine et qui fonctionne en arrière-plan, comme une évidence, lorsque l'on appuie sur le bouton marche/arrêt. Ce n'est que lorsque le moteur ne démarre pas et que le véhicule tombe en panne que vous remarquez cette technologie de base.
Une technologie de base comparable dans l'informatique est le protocole NTP (Network Time Protocol), un élément de support pour la synchronisation des horloges dans les systèmes informatiques via des réseaux de communication par paquets, que l'on ne remarque pas dans la vie informatique quotidienne. Pour autant qu'il fonctionne de manière stable, il joue un rôle mineur dans les départements informatiques. Par conséquent, le savoir-faire en la matière est peu développé ou non disponible. Mais le NTP peut être l'élément déclencheur d'une véritable situation de crise s'il n'est pas configuré et utilisé correctement. Dans les cas extrêmes, cela peut conduire à la défaillance d'une infrastructure informatique complexe ou d'une infrastructure en nuage, et à l'emportement de tous les services et applications qui y sont exploités vers le nirvana numérique.
La majorité des systèmes informatiques ne peuvent être exploités sans synchronisation temporelle. Un exemple est l'Active Directory, qui utilise un horodateur pour reprendre les données les plus récentes en cas de conflit de réplication. L'utilisation du temps système dans divers mécanismes d'authentification (par exemple Kerberos) est plus critique. Les jetons externes (jetons matériels RSA, applications mobiles telles que Microsoft/Google Authenticator) utilisent soit leur propre mesure du temps, soit le temps des réseaux mobiles pour réaliser les limites de validité définies des jetons. Dans ce cas, des écarts de plus de 60 % entre les différentes instances peuvent, dans des cas extrêmes, faire échouer le processus de connexion et empêcher les utilisateurs de se connecter à leurs applications. Du point de vue de l'audit (et bien sûr aussi du point de vue opérationnel et de la sécurité), un aspect essentiel lié au temps est l'enregistrement des informations en vue d'éventuelles évaluations. Ces journaux sont tous basés sur le temps. S'ils ne sont pas valides et fiables, ils peuvent être jetés sans hésitation dans la corbeille.
Dans cet article, nous souhaitons faire la lumière sur le thème du temps dans les infrastructures informatiques modernes et montrer le contexte et les effets de NTP, ainsi que donner des conseils sur la manière de vérifier la configuration NTP en tenant compte des risques et en évitant l'escalade des défaillances.
Le bon moment
Pour ce faire, il faut d'abord déterminer le "bon" moment. La technologie du chronométrage a toujours joué un rôle essentiel dans le traitement de l'information. Depuis le début de l'ère informatique, chaque serveur physique et chaque PC contient une minuterie mise en mémoire tampon par une batterie afin de pallier les coupures de courant et de reproduire l'heure exacte au redémarrage. Dans le processus, des piles CMOS faibles pourraient entraîner une synchronisation incorrecte dans l'appareil.
Les serveurs virtuels d'aujourd'hui mesurent le temps de manière indépendante à l'aide de l'horloge du CPU et sans matériel interne supplémentaire. L'horloge effective peut fluctuer en fonction de la charge d'un serveur ou s'écarter du temps réel. Par exemple, avec les systèmes actuels, de grands sauts temporels (> 1 minute) peuvent se produire pendant un processus de redémarrage. En outre, les machines virtuelles peuvent également être complètement mises en pause ou ralenties.
Pour garantir une horloge stable et synchronisée pour les horloges des ordinateurs, un outil d'assistance puissant est disponible sous la forme de NTP. En raison de la disponibilité universelle de NTP et parce qu'il s'agit d'un protocole éprouvé et stable, l'horloge interne joue un rôle secondaire dans la conception des infrastructures informatiques modernes.
Qu'est-ce que le NTP exactement ?
NTP est un standard pour la synchronisation du temps dans les systèmes informatiques avec des horloges externes de haute précision. Il a été développé par David L. Mills en 1985 pour fournir une synchronisation du temps fiable, alimentée de l'extérieur, à travers divers dispositifs et réseaux informatiques. Dans l'usage courant, NTP désigne à la fois le protocole et son implémentation logicielle de référence.
La synchronisation de l'heure est réalisée par une structure hiérarchique de serveurs publics qui synchronisent leur heure les uns avec les autres. Le niveau le plus élevé est alimenté par des sources de temps précises (horloges atomiques, récepteurs GPS). Les autres sources de temps comprennent les serveurs des universités, des institutions gouvernementales, des entreprises et des particuliers. Actuellement, plus de 100 000 nœuds NTP sont exploités dans le monde.
Comme des déviations dans le timing peuvent également se produire ici, notamment en raison de la latence ou des temps d'exécution dans le réseau, des algorithmes pour corriger les déviations ont été implémentés, que nous ne détaillerons pas ici pour des raisons de clarté. Toutefois, il est important de comprendre que NTP ne fonctionne pas comme le DNS : le premier serveur n'est pas essayé, et le second seulement si le premier est indisponible, mais une heure moyenne est formée à partir de tous les serveurs configurés. Pour des raisons de robustesse, il faut au moins quatre sources aussi différentes que possible.
Pour une mise en œuvre correcte du NTP dans une infrastructure informatique complexe, il faut définir qui fixe l'heure "correcte" et qui la reprend, ou avec qui l'heure est ramenée à l'heure "correcte". NTP est généralement intégré aux services internes, le plus souvent dans le cadre de la conception du DNS et du contrôleur de domaine. Pour simplifier, on peut dire que les serveurs modernes offrent aujourd'hui toutes les conditions préalables à une intégration correcte du NTP, quel que soit le système d'exploitation.
Il est toutefois surprenant que les meilleures pratiques soient figées dans le temps et ne tiennent pas suffisamment compte du cloud et de la virtualisation. Une étude du Technet de Microsoft révèle des recommandations contradictoires et peu claires (par exemple, les contrôleurs de domaine virtualisés comme sources de temps). En outre, la recommandation NTP d'au moins quatre sources de temps n'est pratiquement pas mise en œuvre dans les réseaux d'entreprise aujourd'hui, alors que cela serait facilement possible, et de nombreuses entreprises ne font confiance qu'aux serveurs NTP internes, ce qui réduit considérablement la robustesse.
Que peut-on faire dans le cadre d'un audit ?
Pour les responsables informatiques, il est logique d'appliquer la recommandation de référence NTP lors de la conception des infrastructures informatiques internes de l'entreprise. Quels sont les éléments à prendre en compte lors de la mise en œuvre du NTP et quels sont les pièges à éviter ou pouvant être évités ? Dans ce qui suit, nous avons décrit certains aspects pour les personnes responsables et les auditeurs informatiques sur la façon d'effectuer un contrôle rapide et d'identifier les sources d'erreur potentielles, par exemple dans une infrastructure en nuage. Cette liste n'est bien sûr pas exhaustive et peut prendre d'autres dimensions en fonction de l'environnement.
1. Architecture
Évaluer la mise en œuvre de la conception de référence NTP dans l'architecture et valider la hiérarchie serveur-client pour NTP.
Si la structure serveur-client est défectueuse, il peut en résulter une propagation rapide de l'heure système erronée vers les contrôleurs de domaine et les clients, surtout si les recommandations NTP sur quatre sources indépendantes ne sont pas mises en œuvre. L'exécution de scénarios de simulation montre les effets possibles.
2. Minuteries externes ou internes
Comment le signal horaire est-il fourni à l'infrastructure propre ? Les minuteries internes sont-elles connectées alternativement en plus des sources externes ? L'utilisation, par exemple, d'un récepteur GPS physique dans l'infrastructure comme source de temps sécurisée peut fournir une sécurité supplémentaire. Cela signifie que l'on accepte une complexité supplémentaire dans l'infrastructure, mais d'un autre côté, cela rend l'infrastructure indépendante des minuteries externes.
3. Alimentation du signal de temps externe
Comment un signal horaire externe est-il introduit dans l'infrastructure informatique ? Par défaut, l'alimentation d'un signal horaire externe se fait via le port 123. Que se passe-t-il si le port 123 est bloqué au niveau du réseau ? Et que se passe-t-il si le fournisseur en amont ou un attaquant externe bloque le port 123 ?
4. Vérification des paramètres Hyper-V
La couche de virtualisation a sa propre complexité. Les serveurs virtuels utilisent leurs propres règles pour déterminer l'heure correcte. Il convient donc de prêter attention à la synchronisation de l'heure, par exemple dans Hyper-V et au paramétrage de Hyper-V. Dans la configuration par défaut, le temps Hyper-V est imposé à tous les serveurs virtuels. Par défaut, l'ordre de préséance suivant pour déterminer le temps de référence se trouve dans le paramètre de configuration dans Hyper-V :
- Vérification des entrées de registre (par exemple, VMICTimeProvider) sur l'hôte.
- Paramètre de synchronisation du temps dans la console Hyper-V
- Entrées de registre NTP sur le client
- Paramètres NTP dans les paramètres du système client
- Temps de la hiérarchie des contrôleurs de domaine
- Horloge émulée par l'hyperviseur
Bien que ce paramètre corresponde à une recommandation des meilleures pratiques de Microsoft, il n'est pas recommandé pour les fournisseurs de services, par exemple. Cela peut être particulièrement pertinent lorsque les fournisseurs de services offrent une infrastructure en nuage aux bénéficiaires de services qui souhaitent utiliser leurs propres serveurs NTP pour des raisons de cohérence des journaux.
Dans le contexte NTP, les contrôleurs de domaine virtualisés peuvent s'avérer fatals, car ils constituent la source NTP pour toutes les machines connectées au domaine.
5. L'exhaustivité des manuels d'utilisation
L'utilisation et le déploiement du NTP sont-ils décrits et réglementés dans les manuels d'utilisation ? Le personnel dispose-t-il d'informations appropriées sur le service ?
6. Surveillance
La surveillance est-elle conçue pour détecter les écarts de temps, les mauvais comportements et les événements liés au service NTP et la classification des événements correspond-elle à l'importance accrue du NTP ? La classification des écarts de temps ou des effets corrélés en tant qu'information/alerte ne correspond pas à la criticité du service.
Même si les éléments présentés ne peuvent pas être adoptés pour toutes les infrastructures informatiques complexes et, surtout (avertissement !), ne sont pas complets, ils donnent quelques indications sur la façon de faire une évaluation rapide de la configuration NTP. L'évaluation de ces éléments permet de savoir rapidement si la mise en œuvre répond aux exigences de base ou s'il y a un risque.
A cet égard, sur le prochain plan d'audit, vous pourrez éventuellement inclure la question du temps et évaluer le risque de défaillance et l'impact. Notre division des audits technologiques peut vous aider à planifier ou à réaliser des audits informatiques.
Principaux points à retenir
- Les infrastructures informatiques complexes dépendent d'un chronométrage correct.
- Les écarts par rapport à l'heure correcte et l'asynchronisme peuvent entraîner des dysfonctionnements et des défaillances.
- Une évaluation de la référence temporelle correcte au sein d'une infrastructure informatique est possible pour l'audit interne avec des moyens "embarqués".
Sources :
- Comment utiliser correctement NTP et pourquoi c'est important pour la sécurité
- Synchronisation du temps dans les réseaux
- SYNCHRONISATION DU TEMPS DANS HYPER-V
- Activez le client NTP sur un hôte de référence dans le client vSphere.
- Comment fonctionne le service de temps de Windows
- Serveur de temps - bienvenue dans le monde des informations précises sur l'heure