Nishiki-Hub

国内外のPC/PCパーツ/スマホ/Appleなどの最新情報を取り上げています

「su」と「sudo」がRustで書き換えられることが発表 〜 メモリ安全性を重視

錦です。

PC Watchによると、Internet Security Research Group(ISRG)のProssimoプロジェクトがUNIX及びLinux系OSに存在する「su」と「sudo」コマンドをRust言語に書き直す作業を開始したことを発表しました。

Rust

Rust言語は、プログラミング言語の一つで、CやC++で認識できず、メモリ脆弱性につながることが多かったプログラムのミスを早い段階で検出することができ、結果としてメモリ安全性が高くなっている言語です。また、モダンな言語仕様と言われており、並列プログラミング処理も前提とされています。

メモリ安全性については、脆弱性の多くがメモリ関連であるということから重要視されており、Linuxカーネルがv6.1から採用を始めている他、Windowsも先日イスラエルで開催されたイベントでぶぶんてきに Rustに置き換えられていることが発表されています。さらにGoogleもRustの重要性を認識しているようで、AndroidLinuxベース)でもRustの実装が進んでいます。

su/sudo

suとsudoは、UNIX系OSまたはUNIXルート権限でコマンドを実行する際に利用するコマンドです。suコマンドはルート権限のモードへ移行、sudoは機能の制限があるもののかんたんにルート権限でコマンドを実行できるという違いがあります。ともにシステムの設定変更やパッケージマネージャからのソフトウェアのインストールで用いられることが多いです。

Prossimoプロジェクトでは、どのようなソフトウェアに投資するべきかを判断する基準として

  • 広く使われている
  • 重要な境界線において
  • 重要な機能を実行していて
  • メモリセーフではない言語で書かれている

の4つで判断しています。ちなみに、メモリセーフでない言語とは、CやC++アセンブリ言語などの言語です。余談ですが、JavaやSwift、C#、Go、Rubyといった言語はメモリセーフな言語と呼ばれています。

このsuとsudoは、はるか昔から存在しているということもありsudoはC言語で記述されています。また、これらのコマンドは広く使われており、重要な機能を提供しています。Prossimoプロジェクトは、これらの基準に当てはまっているとして作業に取り掛かったようです。

作業は、Ferrous SystemsとTweede Golfの共同チームによって行われ、AWSからの資金提供を受けるとしています。

関連リンク