Linuxでは、ハードリンクとソフトリンクはファイルを参照します。これは非常に重要ですが、十分に保護されていないと、悪意のあるシステムユーザーや攻撃者がファイルの脆弱性を悪用する可能性があります。
一般的な脆弱性は シンボリックリンクレース. これはソフトウェアのセキュリティの脆弱性であり、プログラムが安全にファイルを作成しない場合に発生します (特に一時ファイル)、そして悪意のあるシステムユーザーはそのようなへのシンボリック(ソフト)リンクを作成することができます ファイル。
また読む:Linuxでハードリンクとシンボリックリンクを作成する方法
これは実際に起こります。 プログラムは一時ファイルが存在するかどうかをチェックし、存在しない場合はファイルを作成します。 しかし、ファイルをチェックしてから作成するまでの短い期間に、攻撃者はファイルへのシンボリックリンクを作成する可能性があり、アクセスは許可されません。
したがって、プログラムが有効な特権で実行されると、作成されたものと同じ名前でファイルが作成されます 攻撃者によって、攻撃者が意図していたターゲット(リンク先)ファイルを文字通り作成します アクセス。 したがって、これにより、攻撃者はrootアカウントから機密情報を盗んだり、システム上で悪意のあるプログラムを実行したりすることができます。
したがって、この記事では、悪意のあるユーザーやハッカーからハードリンクとシンボリックリンクを保護する方法を紹介します。 CentOS / RHEL 7 分布。
オン CentOS / RHEL 7 以下に説明するように、いくつかの条件が満たされた場合にのみ、プログラムによるリンクの作成または追跡を許可する重要なセキュリティ機能が存在します。
システムユーザーがリンクを作成するには、次のいずれかの条件を満たす必要があります。
プロセスは、スティッキービットのある誰でも書き込み可能な(他のユーザーが書き込むことができる)ディレクトリの外部にあるリンクをたどることのみが許可されているか、次のいずれかが真である必要があります。
重要なことに、デフォルトでは、この機能はファイル内のカーネルパラメータを使用して有効になっています /usr/lib/sysctl.d/50-default.conf (の値 1 有効にすることを意味します)。
fs.protected_hardlinks = 1。 fs.protected_symlinks = 1。
ただし、何らかの理由で、このセキュリティ機能を無効にする場合は、 と呼ばれるファイルを作成します /etc/sysctl.d/51-no-protect-links.conf 以下のこれらのカーネルオプションを使用します(の値 0 無効にすることを意味します)。
そのことに注意してください 51 ファイル名に(51-no-protect-links.conf)、デフォルト設定を上書きするには、デフォルトファイルの後に読み取る必要があります。
fs.protected_hardlinks = 0。 fs.protected_symlinks = 0。
ファイルを保存して閉じます。 次に、以下のコマンドを使用して上記の変更を実行します(このコマンドは、実際にはすべてのシステム構成ファイルから設定をロードします)。
#sysctl--system。 また。 #sysctl -p#古いシステムの場合。
また、これらの次の記事を読むことをお勧めします。
それで全部です! 以下のフィードバックフォームから、このトピックに関する質問を投稿したり、考えを共有したりできます。