私は疑問に思っていました-許可されたプログラム以外の場所から共有メモリオブジェクトへのアクセスを制御するための既知の技術はありますか?
たとえば、QがアクセスするプログラムPで使用する共有メモリセグメントを作成し、それを読み取り/書き込みにするとします。Qを使用してアクセスできます。これは、アクセスに必要なアクセス許可(Q)に必要な権限(グループを持つ特定のユーザーとして実行するなど)を付与したためです。
ただし、誰かがプログラムRからこの共有メモリにアクセスする可能性がある場合があると思います-単にそれに接続して変更するだけです。これを停止するには、メモリセグメントを読み取り専用にすることができますが、プログラムRはメモリ内にあるものを読み取ることができます。
私の質問は部分的にあります-
する方法はありますか、
a)Qのみが共有メモリにアクセスできるようにしますか?
b)読み取りがQ以外の誰かによって行われたかどうか、そして誰がそれを行ったかを把握しますか?[これも可能ですか?]ボーナスポイントについては、クロスプラットフォームで実行できますか?[おそらくそうではありませんが、試してみても害はありません:)]
不正なプログラムが共有メモリに接続する可能性があるのはどのような状況ですか?1つの方法は、ユーザーがOSの穴を悪用して、プログラムを開始したユーザーになることができるかどうかだと思います。他のもの?