Erkennen und Steuern nicht autorisierter Lesevorgänge im gemeinsamen Speicher

Ich habe mich gefragt, ob es bekannte Techniken gibt, um den Zugriff auf ein gemeinsam genutztes Speicherobjekt von einem anderen Ort als einem autorisierten Programm aus zu steuern.

Nehmen wir zum Beispiel an, ich erstelle ein gemeinsames Speichersegment für die Verwendung in einem Programm P, auf das Q zugreifen kann, und schreibe es. Ich kann mit Q darauf zugreifen, weil ich ihm (Q) die erforderlichen Berechtigungen erteilt habe (als bestimmter Benutzer mit Gruppen usw. ausgeführt).

Ich vermute jedoch, dass es Fälle gibt, in denen jemand möglicherweise von einem R-Programm aus auf diesen gemeinsamen Speicher zugreifen kann - indem er ihn einfach anfügt und ändert. Um dies zu stoppen, könnten Sie das Speichersegment schreibgeschützt machen - aber jetzt könnte Programm R nochlesen was war in der Erinnerung.

Meine Frage ist in Teilen -

Gibt es einen Weg zu,

a) Nur Q auf den gemeinsamen Speicher zugreifen lassen?

b) Stellen Sie fest, ob ein Lesevorgang von jemand anderem als Q durchgeführt wurde - und von wem? [Ist das überhaupt möglich?] Könnte dies für Bonuspunkte plattformübergreifend erfolgen? [Wahrscheinlich nicht, aber kein Schaden beim Versuch :)]

Unter welchen Umständen könnte sich ein Schurkenprogramm an den gemeinsamen Speicher anhängen? Ich gehe davon aus, dass ein Benutzer OS-Lücken ausnutzen und der Benutzer werden kann, der das Programm gestartet hat. Irgendwelche anderen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage