6 points par GN⁺ 2024-06-25 | 1 commentaires | Partager sur WhatsApp
  • Let's Encrypt s'inquiète depuis longtemps du fait qu'une grande partie des systèmes d'exploitation et de l'infrastructure réseau soit écrite dans des langages non sûrs comme C et C++
  • Le logiciel d'autorité de certification est écrit en Golang, un langage à sécurité mémoire, mais la partie OS/réseau manque encore de sécurité mémoire, ce qui entraîne régulièrement des vulnérabilités nécessitant des correctifs
  • En 2020, le projet Prossimo a été lancé avec pour objectif de rendre les infrastructures logicielles critiques sûres du point de vue mémoire

Principales réalisations du projet Prossimo

  • Des investissements ont été réalisés dans divers composants logiciels, notamment la bibliothèque TLS Rustls, Hickory DNS, le reverse proxy River, sudo-rs, la prise en charge de Rust dans le noyau Linux et ntpd-rs
  • Récemment, ntpd-rs, le premier logiciel à sécurité mémoire issu de Prossimo, a été déployé dans l'infrastructure de Let's Encrypt

Importance de ntpd-rs

  • La plupart des systèmes d'exploitation utilisent le protocole de temps réseau (NTP) pour déterminer l'heure exacte
  • La gestion du temps est une tâche essentielle de l'OS et implique des interactions avec Internet ; la sécurité de l'implémentation NTP est donc importante
  • En avril 2022, Prossimo a commencé à travailler sur ntpd-rs, une implémentation NTP à sécurité mémoire et plus sûre
  • En avril 2024, ntpd-rs a été déployé dans l'environnement de staging de Let's Encrypt, et il est désormais utilisé en production

Plans à venir

  • Au cours des prochaines années, Let's Encrypt prévoit de remplacer, dans son infrastructure, les logiciels en C ou C++ par des alternatives à sécurité mémoire
    • Remplacer OpenSSL et ses dérivés par Rustls.
    • Remplacer le logiciel DNS par Hickory.
    • Remplacer Nginx par River.
    • Remplacer sudo par sudo-rs.

L'avis de GN⁺

  • Importance de la sécurité mémoire : les logiciels écrits dans des langages à sécurité mémoire contribuent grandement à réduire les vulnérabilités de sécurité.
  • Atouts de Rust : Rust garantit la sécurité mémoire tout en offrant de hautes performances, ce qui le rend adapté à de nombreux logiciels sensibles à la sécurité.
  • Rôle de la communauté : la contribution de la communauté est essentielle dans les projets open source, et le cas de Let's Encrypt ne fait pas exception.
  • Points à considérer lors de l'adoption de nouvelles technologies : lors de l'introduction de nouvelles technologies, il faut prendre en compte la compatibilité avec les systèmes existants, la courbe d'apprentissage, etc.
  • Nécessité de renforcer la sécurité : renforcer la sécurité de l'infrastructure Internet contribue à améliorer la sûreté de l'ensemble de l'écosystème Internet.

1 commentaires

 
GN⁺ 2024-06-25
Avis sur Hacker News
  • Idée d’implémenter NTPD en Rust : l’idée d’implémenter NTPD en Rust suscite de l’intérêt. Des données sur les performances sont recherchées, en particulier sur les performances de synchronisation temporelle en cas de problèmes réseau. Une comparaison avec Chrony serait également souhaitable.
  • Complexité du problème NTP : NTP n’est pas encore un problème entièrement résolu, et les performances sont plus importantes que la sécurité mémoire. Chrony est jugé bien meilleur que le NTP fourni par défaut avec le système, et est utilisé pour cette raison.
  • Avis d’un adepte de Rust : même en étant adepte de Rust, ntpd-rs ne vaudrait la peine d’être considéré que s’il s’approche des performances de Chrony.
  • Discussion sur la sécurité mémoire : l’accent mis sur la sécurité mémoire semble étrange. NTPD a peu de vecteurs d’attaque et fonctionne bien sans problèmes mémoire. Il serait plus pertinent de réécrire dans un langage garantissant la sécurité mémoire des composants plus importants.
  • Question sur la dépendance à JSON : pourquoi NTPD a-t-il une dépendance à JSON ?
  • Proposition de réécriture de BGP : la prochaine étape devrait être de réécrire BGP dans un langage garantissant la sécurité mémoire.
  • Utilisation de NTPsec : on se demande si quelqu’un utilise réellement NTPsec.
  • Problème des serveurs NTP : le problème avec NTP ne se situe pas côté client, mais côté serveur, qui doit gérer des paquets UDP falsifiés. Il y a du scepticisme quant à la possibilité que NTPD devienne réservé à TCP. L’exploitation de serveurs publics stratum 3 a été arrêtée il y a 10 ans.