6 ポイント 投稿者 GN⁺ 2024-06-25 | 1件のコメント | WhatsAppで共有
  • Let's Encryptは、オペレーティングシステムやネットワークインフラの多くがCやC++のような安全でない言語で書かれていることを懸念してきた
  • CAソフトウェアはメモリ安全なGolangで書かれているが、OS/ネットワーク部分はメモリ安全性が不足しており、パッチが必要な脆弱性が日常的に発生している
  • 2020年にProssimoプロジェクトを開始し、重要なソフトウェアインフラをメモリ安全にすることを目標としている

Prossimoプロジェクトの主な成果

  • Rustls TLSライブラリ、Hickory DNS、Riverリバースプロキシ、sudo-rs、LinuxカーネルのRustサポート、ntpd-rsなど、さまざまなソフトウェアコンポーネントに投資してきた
  • 最近、Let's EncryptインフラにProssimo初のメモリ安全なソフトウェアであるntpd-rsを展開した

ntpd-rsの重要性

  • ほとんどのオペレーティングシステムは、正確な時刻を決定するためにネットワーク時刻プロトコル(NTP)を使用している
  • 時刻管理はOSの重要な作業であり、インターネットと相互作用するため、NTP実装のセキュリティは重要である
  • 2022年4月、Prossimoはメモリ安全でより安全なNTP実装であるntpd-rsの開発を開始した
  • 2024年4月、ntpd-rsはLet's Encryptのステージング環境に展開され、現在は本番環境で使用されている

今後の計画

  • 今後数年間で、Let's EncryptインフラにおけるCまたはC++製ソフトウェアをメモリ安全な代替へ置き換える計画
    • OpenSSLとその派生製品をRustlsに置き換え。
    • DNSソフトウェアをHickoryに置き換え。
    • NginxをRiverに置き換え。
    • sudoをsudo-rsに置き換え。

GN⁺の見解

  • メモリ安全性の重要性: メモリ安全な言語で書かれたソフトウェアは、セキュリティ脆弱性を減らすうえで大きな助けとなる。
  • Rustの利点: Rustはメモリ安全性を保証しつつ高い性能を提供するため、多くのセキュリティに敏感なソフトウェアに適している。
  • コミュニティの役割: オープンソースプロジェクトではコミュニティの貢献が重要であり、Let's Encryptの場合も例外ではない。
  • 技術導入時の考慮事項: 新しい技術を導入する際には、既存システムとの互換性や学習コストなどを考慮する必要がある。
  • セキュリティ強化の必要性: インターネットインフラのセキュリティを強化することは、インターネット生態系全体の安全性向上に寄与する。

1件のコメント

 
GN⁺ 2024-06-25
Hacker Newsの意見
  • NTPDをRustで実装するアイデア: NTPDをRustで実装するというアイデアに関心がある。性能に関する資料を探しており、特にネットワーク障害時の時刻同期性能に興味がある。Chronyとの比較も見てみたい。
  • NTP問題の複雑さ: NTPはまだ完全に解決された問題ではなく、メモリ安全性よりも性能のほうが重要だ。Chronyはシステム標準のNTPよりはるかに優れているため使っている。
  • Rust愛好家の意見: Rust愛好家としては、ntpd-rsがChronyの性能に近づかなければ検討する価値はない。
  • メモリ安全性の議論: メモリ安全性を強調するのは違和感がある。NTPDは攻撃ベクトルが少なく、メモリ問題もなくうまく動いている。より重要なコンポーネントをメモリ安全な言語で書き直す必要がある。
  • JSON依存性への疑問: なぜNTPDにJSON依存性があるのか気になる。
  • BGP書き直しの提案: 次はBGPをメモリ安全な言語で書き直すのがよさそうだ。
  • NTPsecの使用状況: 実際にNTPsecを使っている人がいるのか気になる。
  • NTPサーバーの問題: NTPの問題はクライアントではなく、偽造されたUDPパケットを処理しなければならないサーバー側にある。NTPDがTCP専用になる可能性には懐疑的だ。10年前から公開stratum 3サーバーの運用をやめている。