6 pontos por GN⁺ 2024-06-25 | 1 comentários | Compartilhar no WhatsApp
  • O Let's Encrypt vem demonstrando preocupação com o fato de que grande parte do sistema operacional e da infraestrutura de rede é escrita em linguagens inseguras, como C e C++
  • O software da AC foi escrito em Golang, que é seguro em termos de memória, mas a parte de SO/rede carece de segurança de memória, e vulnerabilidades que exigem correções surgem no dia a dia
  • Em 2020, foi iniciado o projeto Prossimo com o objetivo de tornar segura em termos de memória a infraestrutura de software crítica

Principais conquistas do projeto Prossimo

  • Houve investimento em diversos componentes de software, como a biblioteca TLS Rustls, Hickory DNS, o proxy reverso River, sudo-rs, suporte a Rust no kernel Linux e ntpd-rs
  • Recentemente, o ntpd-rs, o primeiro software com segurança de memória do Prossimo, foi implantado na infraestrutura do Let's Encrypt

A importância do ntpd-rs

  • A maioria dos sistemas operacionais usa o Network Time Protocol (NTP) para determinar a hora exata
  • O rastreamento de tempo é uma tarefa importante do SO e, por interagir com a internet, a segurança da implementação de NTP é essencial
  • Em abril de 2022, o Prossimo iniciou o trabalho no ntpd-rs, uma implementação de NTP com segurança de memória e mais segura
  • Em abril de 2024, o ntpd-rs foi implantado no ambiente de staging do Let's Encrypt e atualmente está em uso em produção

Planos futuros

  • Nos próximos anos, o Let's Encrypt pretende substituir, em sua infraestrutura, softwares em C ou C++ por alternativas com segurança de memória
    • Substituir o OpenSSL e seus derivados por Rustls.
    • Substituir o software de DNS por Hickory.
    • Substituir o Nginx por River.
    • Substituir o sudo por sudo-rs.

Opinião do GN⁺

  • Importância da segurança de memória: softwares escritos em linguagens com segurança de memória ajudam muito a reduzir vulnerabilidades de segurança.
  • Vantagens do Rust: Rust oferece alto desempenho ao mesmo tempo em que garante segurança de memória, sendo adequado para muitos softwares sensíveis à segurança.
  • O papel da comunidade: projetos de código aberto dependem fortemente das contribuições da comunidade, e o caso do Let's Encrypt não é exceção.
  • Pontos a considerar na adoção de tecnologia: ao adotar novas tecnologias, é preciso considerar compatibilidade com sistemas existentes, curva de aprendizado etc.
  • Necessidade de reforçar a segurança: fortalecer a segurança da infraestrutura da internet contribui para aumentar a segurança de todo o ecossistema da internet.

1 comentários

 
GN⁺ 2024-06-25
Opiniões no Hacker News
  • Ideia de implementar o NTPD em Rust: Há interesse na ideia de implementar o NTPD em Rust. Procuram dados sobre desempenho, especialmente sobre o desempenho da sincronização de tempo em situações com problemas de rede. Também gostariam de ver uma comparação com o Chrony.
  • Complexidade do problema do NTP: O NTP ainda não é um problema completamente resolvido, e desempenho é mais importante do que segurança de memória. O Chrony é muito melhor do que o NTP padrão do sistema, por isso está sendo usado.
  • Opinião de um entusiasta de Rust: Como fã de Rust, só valeria a pena considerar o ntpd-rs se ele chegasse perto do desempenho do Chrony.
  • Discussão sobre segurança de memória: Parece estranho enfatizar segurança de memória. O NTPD tem poucos vetores de ataque e já funciona bem sem problemas de memória. Seria mais necessário reescrever componentes mais importantes em uma linguagem com segurança de memória.
  • Pergunta sobre dependência de JSON: Há curiosidade sobre por que o NTPD tem uma dependência de JSON.
  • Sugestão de reescrever o BGP: Seria melhor reescrever o BGP em uma linguagem com segurança de memória como próximo passo.
  • Uso do NTPsec: Há curiosidade se alguém realmente usa o NTPsec.
  • Problema dos servidores NTP: O problema do NTP não está no cliente, mas no servidor, que precisa lidar com pacotes UDP falsificados. Há ceticismo sobre a possibilidade de o NTPD se tornar apenas TCP. A operação de um servidor público stratum 3 foi encerrada há 10 anos.