Debian Linuxシステムでlogcheckを実行して、ログファイルの異常な行についてアラートを受け取りました。最近、/var/log/messages
に次のように表示されました。
gnome-keyring-daemon: couldn't allocate secure memory to keep passwords and or keys from being written to the disk
メッセージの原因は正確にはわかりませんが、後でログで気づきました。これはどういう意味ですか、どうすれば修正できますか?
Gnome-keyring-daemonは、スワップアウトできないメモリの割り当てに失敗しています(これを「セキュアメモリ」と呼びます)。それを行おうとする理由は、機密データ(パスワードまたはキー)をスワップに書き込むことはリスクであるためです。ただし、これは特定の脅威に対するリスクにすぎません。誰かがディスクを盗むが、電源が入っているコンピューターは盗まないという脅威です。スワップスペースがない場合やスワップスペースを暗号化する場合は関係ありません。コンピュータが物理的に安全な場所にあるかどうかも関係ありません。コンピュータがラップトップであり、洗練されていない泥棒を心配している場合は関係がありますが、洗練されていない泥棒は、パスワードではなくラップトップの再販価値を気にする傾向があります(ただし、企業パスワードの再販の市場は急成長しています)。高度な泥棒が心配な場合は、とにかく機密データとスワップスペースを暗号化する必要があります。
スワップアウトできないメモリの割り当ては、 mlock
システムコールによって実行されます。システムコールは、現在の物理的な場所でメモリページをロックします。アプリケーションがRAMを飽和させる可能性があるため、これには特権が必要です。 Linux では、適切な特権は CAP_IPC_LOCK
capability です。 Solaris の下では、PRIV_SYS_CONFIG
です。
Linuxでは、どのプロセスでも、RLIMIT_MEMLOCK
制限によって決定される少量のメモリをロックできます。ほとんどのシェルでは、ulimit -l
は、各非特権プロセスがロックできるメモリの量(kB単位)を示します。制限が0の場合は、ハード制限(rootによって課され、ulimit -Hl
でリストされます)かソフト制限(自己課され、ulimit -Sl
でリストされます)かを確認します。たとえば、ソフト制限をハード制限まで上げることができます。 ulimit -l 64
。ハード制限を上げるには、/etc/security/limits.conf
を編集します(構文はファイルに記載されています)。このファイルは、ログイン時に読み込まれます。
TL、DR:これはセキュリティ機能であり、おそらく気にしないでしょう。汗をかかないでください。
Ubuntu 18.04でこれらのメッセージを受け取ったところ、何らかの理由でapparmor
が起動時に開始を停止したことが判明しました。 apparmor
を起動し、ログアウトして再度ログインすると一時的に修正されるか、起動時にapparmor
を再度オンにして再起動すると修正されます。
したがって、それが機能していて停止した場合は、おそらくこのメモリを割り当てることができなくなった理由を見つける必要があります(したがって、上記のヘルプ、apparmor、selinuxなど)。