マシンで実行が許可されている実行可能ファイルテーブルが必要です。すべてそれ以外の場合、実行可能フラグが設定されていても実行されません。たとえば、次の設定ファイルを介して:
|コマンド|場所|許可|ハッシュ|アクセスオプション |---|------------------ --- ------|---- ----|-------- -|---------- ---- ------ | youtube-dl | /usr/local/bin/youtube-dl |
(この表は、ソフトウェア呼び出しの許可方法を定義することもできます。 - 「アクセスオプション」 - デフォルトオプションは直接呼び出しを許可します。そうしないと、特定のコマンドまたは認証されたソフトウェアのリストのみがソフトウェアを実行できます。
セキュリティの観点からは、ソフトウェアがシステム上で実行されることを認証し、ハッシュを介して完全性を保証するメカニズムに適していると思います。より具体的には、ハッシュすることもできます。みんなソフトウェアが持つ依存関係(たとえば、テーブルのハッシュはソフトウェアの関連するすべてのハッシュのハッシュである可能性があります)を介してソフトウェアの整合性を保証します。
Debianにも同様のことがあります(おそらくLinuxカーネルの一部として、正しく起動するには、Linux / GNU / DEに必要なすべてのソフトウェアの基本エントリが必要です)。
答え1
- ファイルの確認について言えば:
持つ
- fs - 真正性https://www.kernel.org/doc/html/latest/filesystems/fsverity.html
- DM確認https://www.kernel.org/doc/html/latest/admin-guide/device-mapper/verity.html
問題は前者を設定するためのマニュアル/方法が全く分からないのに対し、後者は私が知る限りAndroidでのみ実装されるということです。
その後、AIDEやTripwire(これ以上開発されていない)などのツールがあります。黙示録、サムハンただし、それらはほとんどモニターであり、ハッシュに基づいてアプリケーションの実行を停止/許可するために必要な機能を備えていません。
最後に、ファイルハッシュを保存するこのファイルを考えてみましょう。これを行う理由は、後で修正されたソフトウェアが実行されないようにするためです。しかし、そのような場合、攻撃者はシステムを完全に破損させ、すべてのデータとすべてのコンテンツを保存するファイルを変更する可能性があります。保護が効果的ではなくなりました。これはfs-verity / dm-verityが残念ながら唯一のエスケープであることを意味しますが、攻撃者は読み取り/書き込みモードでストレージを再マウントして保護をレンダリングできるため、両方とも読み取り専用ストレージと深いシステムロックが必要です。また役に立たない。
- 特定のアプリケーションのみを実行できるようにする場合:
私は既製の解決策を知りませんが、次のことで達成できます。
必要なディレクトリ権限を755から750に変更し、許可されたすべてのアプリケーションを/usr/local/allowbinなど、ユーザーがアクセスできる特別なパスにコピーします。
指定した権限ファイルに対して実行中のアプリケーションを確認し、そのファイルに基づいて実行を許可/拒否するsudoラッパーを作成します。
作るchroot 刑務所。
TLDR 私が知っている限り、あなたの問題を解決できるデスクトップLinux用の既製のソリューションはありません。