Linuxと、そのセキュリティ機構


Linuxのセキュリティ機構でメジャーで、ある程度、歴史があるものとして、SELinuxとAppArmorがあります。
それぞれを標準的に有効化しているディストリビューションとしては、次のものが有名です。

## SELinux
- Fedora
- AlmaLinux
- Rocky Linux

## AppArmor
- Ubuntu(Mintも有効になっていました)
- openSUSE
- Debian(12.5のDVDでインストールしたところ、標準導入されました。MXは導入されませんでした。)

他にもあるかもしれません。上記以外のディストリビューションにも、もちろんあとから導入することは可能です。  
ただSELinuxはライブラリも含めてビルドし直しが必要なケースもあります。有志によって、導入を簡単にできるレポジトリが別途提供されている例などはありますが、ディストリビューション標準で用意されていないケースでは、メンテナンスやアップデートが期待できるかは、正直わかりません。利用者が少ないからです。

AppArmorはUbuntuが推進、推奨してきたセキュリティ機構です。SnapストアのアプリケーションはAppArmorの定義ファイルが標準で設定されているアプリです。
よく比較対象にもなるFlatpakはOSTreeとSandbox機構による別のセキュリティ機構といえると思います。

Ubuntuは、基本的にAppArmorを有効化しているSnapストアのアプリケーションのメンテナンスに注力したいのでしょう。
ですからUbuntu標準で提供されているストアは、Snapとaptレポジトリのみになっているのだと思います。
もちろんFlatpakも手動で有効化できますし、その他のアプリも導入はできますが、AppArmorの定義などは含まれていないのでサポート対象外とは言えるでしょう。

ただSELinuxにしてもAppArmorにしても、標準で導入されていても、自分でより細かく制御する必要はあるかもしれません。
特に野良アプリをインストールする場合は、自分で設定ファイルを用意する必要があるかもしれません。セキュリティ機構の設定が厳しいと、動作しない場合があるからです。
逆に設定が緩いと、動作はしやすいですが、悪意あるプログラムに対する防衛能力は下がります。

原則として、いろんなサービスを提供しているサーバなどは、基本的にSELinuxやAppArmorのどちらかを「厳し目の設定」で有効にしたほうがいいです。
気軽に、いろんなプログラムを動かすことができないということは、それだけ想定外の動作をするプログラムの動作を制限できるということです。ですから、その分ウイルスやワームといった悪意あるプログラムにやられる可能性を減らせるとは言えます。

ただ厳し目の設定だと、気軽に使えないという問題がでてきます。それが一般ユーザーにとっては敷居を高くします。なぜ動かないのか、その理由がすぐにはわからなくて、厄介だったりします。設定するにしても、どうしたらいいかわからないでしょうし、面倒だったりもします。
そのため、そういうセキュリティ機構を標準で有効化しているディストリビューションでは、ディストリビューション提供者が、動作チェックして提供している標準的なレポジトリからインストールされたプログラムのみ、正常な動作が期待できると言えます。それ以外は、コミュニティーの優しい人がアドバイスはくれるかもしれませんが、サポート外だと言えるでしょう。自力で、SELinuxやAppArmorの設定の調整が必要なケースもあることでしょう。

それが大変だから、おそらく、いろんなアプローチが提案されているのかもしれません。セキュリティと利便性の両立のために、いろいろ工夫があるのでしょう。(OSTree,Atomic Desktop,Universal Blue,ABROOTなどなど)
いろんなアプローチが洗練されていって、いずれ、どれかが主流になるかもしれませんが、それらの仕組みが、複雑になりすぎれば、全体的なOSとしての動作が重たくなる原因にもなりえますし、普及もしにくいかもしれませんから、時間はかかりそうですね。

軽量で愛されているLinuxのほとんどは、残念ながらAppArmorもSELinuxも有効化されていない場合も多いので、ウイルスやワームには、その分弱いです。
ディストリビューション提供者の負担は、より少なくて済みますが、そこが弱点ともいえます。

安全性をがちがちにすると、利便性は損なわれます。
ある程度、リスクは仕方がないと割り切って、どのOSも使うしかありません。Linux以外でも、リスクがあるのは、同じです。
守りたいものを明確化しておくことは大事ですね。

ランサムウェアで、ストレージやファイルが暗号化され復号化できなくなる。それによってサービスが提供できなくなったときの、復旧までの時間を短くしたい。そう考えれば、そもそも守りたいデータのバックアップは適切に行っておく。システムのロールバック手順や復旧手順を明確化して容易にしておく。そしてセキュリティ上の問題を特定し、解決したうえで動作チェックすることも大事になります。
結局、そこは人手が必要になります。そして場合によっては、原因不明の場合もあるでしょう。
その場合には解決できず、同じことが起きうるリスクをはらんだまま、動かすしかない場合もでてくることでしょう。

だからこそ、あらかじめ、厳し目の設定で、SELinuxやAppArmorの設定などで、制限をかけておくことが大事といえます。影響範囲を限定的にしておくことが大事なのです。

どのディストリビューション提供者も、利用者でもある自分たち自身の首を絞めるような、困ったことになるようなものは、そもそも提供したくないでしょう。
それを信頼するかしないかは、お互いの信頼関係の上で、成立するものです。
そして、一応はすべて公開されていて、中身を確認できるものではあるのが、オープンソースの利点ではあります。

もちろんクローズドの特定企業のサービスでも、彼ら自身が困ることになるものは提供しようとはしないことでしょう。
いい品質のものであれば、正当な対価を払うことは、敬意を示すことでもありますから、もちろん悪いことでもありません。

ですからオープンソースでも、サポートをちゃんとしてくれて、あるいは開発を継続してくれるという人たちに、対価を払うことも、きっと大事なことでしょう。
教授みたいなある程度安定した職業の人が余暇で参加したり、職業エンジニアが参加したり、いろんな属性の人たちが、参加しているのが、コミュニティーベースのプロダクトなのですから、それぞれに事情は違っても、それらが継続的に使えるものであり続けるには、産業として成立させることは大事です。

ただ基本的な機能の多くは、すでに公開されているものの応用でもあるので、それで特許などを主張されて使えなくなるのも、困りものです。
すでに事前に公開されていて、広く使われているものであるという実例や実績が存在することが、多くの人の共有財産となっているものを独占させないためには、大事になることでしょう。

話は飛びましたが、軽いOSはセキュリティは弱いかもしれない。でも、復旧も楽かもしれないし、使い方、用途次第では十分な場合も多いです。
個人で使うデスクトップ環境では、そこまで必要はないかもしれないけれど、企業の、単なる広報のみのサイトではなく、決済や個人情報が絡むサービスを提供するのであれば、セキュリティ機構を厳し目の設定で運用しないと、なにかあったときに、言い訳が苦しくなるかもしれません。その分、動作確認は面倒だし大変だけど、それは仕方がないことです。それが難しいなら、一日24時間、一年365日、世界とつながっているネットを無理に使わないことです。またネットのみで完結させる必要性も、必ずしもありません。
ネットを使わなくても、問題ないものも、この世界には、たくさんあるかと思います。

とはいえ、便利だから、私もきっと使い続けることでしょう。大事なデータはバックアップしておきましょう。