6 puntos por GN⁺ 2024-06-25 | 1 comentarios | Compartir por WhatsApp
  • Let's Encrypt ha estado preocupada porque gran parte del sistema operativo y la infraestructura de red están escritos en lenguajes inseguros como C y C++
  • El software de la CA está escrito en Golang, que es seguro en memoria, pero la parte del SO/red carece de seguridad de memoria, por lo que surgen vulnerabilidades que requieren parches de forma habitual
  • En 2020 inició el proyecto Prossimo con el objetivo de hacer segura en memoria la infraestructura de software crítica

Principales logros del proyecto Prossimo

  • Ha invertido en diversos componentes de software como la biblioteca TLS Rustls, Hickory DNS, el proxy inverso River, sudo-rs, el soporte de Rust en el kernel de Linux y ntpd-rs
  • Recientemente desplegó ntpd-rs, el primer software seguro en memoria de Prossimo, en la infraestructura de Let's Encrypt

Importancia de ntpd-rs

  • La mayoría de los sistemas operativos usan el Protocolo de Tiempo de Red (NTP) para determinar la hora exacta
  • El seguimiento del tiempo es una tarea importante del SO y, como interactúa con Internet, la seguridad de la implementación de NTP es importante
  • En abril de 2022, Prossimo comenzó a trabajar en ntpd-rs, una implementación de NTP más segura y con seguridad de memoria
  • En abril de 2024, ntpd-rs fue desplegado en el entorno de staging de Let's Encrypt y actualmente ya se usa en producción

Planes a futuro

  • En los próximos años, planea reemplazar en la infraestructura de Let's Encrypt el software en C o C++ por alternativas seguras en memoria
    • Reemplazar OpenSSL y sus derivados por Rustls.
    • Reemplazar el software DNS por Hickory.
    • Reemplazar Nginx por River.
    • Reemplazar sudo por sudo-rs.

Opinión de GN⁺

  • Importancia de la seguridad de memoria: el software escrito en lenguajes con seguridad de memoria ayuda mucho a reducir las vulnerabilidades de seguridad.
  • Ventajas de Rust: Rust garantiza seguridad de memoria y al mismo tiempo ofrece alto rendimiento, por lo que es adecuado para mucho software sensible a la seguridad.
  • El papel de la comunidad: en los proyectos de código abierto, la contribución de la comunidad es importante, y el caso de Let's Encrypt no es la excepción.
  • Aspectos a considerar al adoptar tecnología: al adoptar nuevas tecnologías, hay que considerar la compatibilidad con los sistemas existentes, la curva de aprendizaje, etc.
  • Necesidad de reforzar la seguridad: fortalecer la seguridad de la infraestructura de Internet contribuye a elevar la seguridad de todo el ecosistema de Internet.

1 comentarios

 
GN⁺ 2024-06-25
Opiniones de Hacker News
  • La idea de implementar NTPD en Rust: Me interesa la idea de implementar NTPD en Rust. Estoy buscando información sobre el rendimiento, especialmente sobre el desempeño de la sincronización de tiempo en situaciones con problemas de red. También me gustaría ver una comparación con Chrony.
  • La complejidad del problema de NTP: NTP todavía no es un problema completamente resuelto, y el rendimiento es más importante que la seguridad de memoria. Uso Chrony porque es mucho mejor que el NTP predeterminado del sistema.
  • La opinión de un entusiasta de Rust: Como fan de Rust, solo valdría la pena considerar ntpd-rs si su rendimiento se acerca al de Chrony.
  • Debate sobre la seguridad de memoria: Se siente extraño enfatizar la seguridad de memoria. NTPD tiene pocos vectores de ataque y ha estado funcionando bien sin problemas de memoria. Haría más falta reescribir componentes más importantes en un lenguaje con seguridad de memoria.
  • Pregunta sobre la dependencia de JSON: Me pregunto por qué NTPD tiene una dependencia de JSON.
  • Propuesta de reescribir BGP: Como siguiente paso, estaría bien reescribir BGP en un lenguaje con seguridad de memoria.
  • Uso de NTPsec: Me pregunto si realmente hay alguien usando NTPsec.
  • Problema de los servidores NTP: El problema de NTP no está en el cliente, sino en el servidor que tiene que procesar paquetes UDP falsificados. Soy escéptico sobre la posibilidad de que NTPD pase a ser solo TCP. Dejé de operar un servidor público stratum 3 hace 10 años.