NoWayOS
JA
GitHub
メニュー閉じる

2026年11月13日

NoWayOSのデバイスにシェルがない理由

専用デバイスの多くは、汎用コンピューターの上にひとつの仕事を載せ、その下にほかのすべてを残したままです。私たちは別の道を選びました。それぞれのデバイスを、その仕事に必要なものだけで組み立て、残りは入れないという道です。

専用デバイスへの攻撃の多くは、そのデバイスがこなす仕事を狙いません。狙うのは、それが動いているコンピューターの残りの部分です。保守用に残されたシェル、誰も止めなかったリモートアクセスのサービス、アプリケーションの裏にあるブラウザ、クラッシュひとつで現れるデスクトップ。

この「コンピューターの残りの部分」は、どこにでもあります。浄水場から計測値を運び出すゲートウェイ、電力網の制御室にある端末、病院が頼りにしている機器、機械の側面にあるパネル、駅のコンコースにある画面。その多くは汎用のオペレーティングシステムで動いていて、上にひとつの仕事があり、下にはほかのすべてが、設定で無効にされたまま残っています。キオスクモードは、そのいちばん単純な形です。侵害とはいつも、見落とされたひとつの設定を誰かが見つけることです。

無効にするのではなく、入れない

NoWayOSは反対側から始めます。NoWayOSのイメージに入っているのは、デバイスのアプリケーション、そのアプリケーションが使うドライバ、そしてseL4マイクロカーネルです。一覧はこれで全部です。

入り込めるシェルはありません。最初から組み込まれていないからです。パスワードを推測できるリモートログインもありません。抜け出す先のデスクトップもありません。悪意あるページを待っているブラウザエンジンもありません。存在しないソフトウェアの設定を、誤ることはできません。

ここまでは、すべてオペレーティングシステムの話です。その上で動くアプリケーションは別です。仕事に必要であれば、アプリケーションは利用者にサインインを求めることも、ほかのシステムにサインインすることもできます。ないのは、誰かがログインできるオペレーティングシステムです。

私たちはこれをSingle Purpose OSと呼んでいます。ほかにすることが何もないコンピューター。

そして、あるものは封じ込められている

入れないことは、半分にすぎません。残った各部分(ネットワーク、画面、入力、アプリケーション)は、それぞれ専用の区画、seL4の用語でいう保護ドメインの中で動き、付与されたものにしか届きません。ネットワークドライバはパケットを運びます。ディスプレイドライバは描画します。アプリケーションは、それぞれと固定サイズのメッセージでやり取りします。

すべての付与は、1行にひとつの事実としてファイルに書き出され、システムとファイルが食い違えばビルドは失敗します。ある部分のフォールトがその部分にとどまるように作られています。

「でも、シェルなしでどうやって直すのですか」

エンジニアが最初に尋ねることで、もっともな質問です。NoWayOSのデバイスのオペレーティングシステムにはログインしません。アカウントがなく、ログインするユーザーが存在しないからです。新しいイメージをビルドし、古いものと入れ替えます。現時点では、ビルドしてボードに書き込むという意味です。デバイスが検査し、安全にフォールバックできる署名付きアップデートは、設計が済んでおり、実装はこれからです。

その代わりに得られるのは、ひとつの仕事へまっすぐ起動し、パッチを当てるべきものも、攻撃されうるものもはるかに少ないデバイスです。国を支えるシステムにとっては、この引き換えこそが目的です。

ご自身で確かめてください

実際のNoWayOSイメージひとつ分の根拠、つまり付与ファイル、部品表、seL4構成の記録は、セキュリティのページにあります。登録もスクリプトもありません。あるのはファイルだけです。