Ich frage mich - gibt es irgendwelche Techniken, um den Zugriff auf ein Shared-Memory-Objekt von überall zu steuern, außer von einem autorisierten Programm?Erkennen und Kontrollieren von nicht autorisierten Lesevorgängen im Shared Memory
Nehmen wir zum Beispiel an, ich erstelle ein Shared-Memory-Segment für die Verwendung in einem Programm P, um von Q zugegriffen werden, und ich mache es Read-Write. Ich kann mit Q darauf zugreifen, weil ich ihm (Q) die erforderlichen Berechtigungen dafür gegeben habe (läuft als ein bestimmter Benutzer mit Gruppen usw.).
Ich vermute jedoch, es gibt Fälle, in denen jemand potenziell auf diesen freigegebenen Speicher von einem Programm R zugreifen könnte - einfach daran anhängen und es ändern. Um dies zu stoppen, könnten Sie das Speichersegment nur lesen - aber jetzt könnte Programm R noch lesen was im Speicher war.
Meine Frage ist in Teilen -
Gibt es eine Möglichkeit zu,
a) erlauben nur Q auf den gemeinsamen Speicher zugreifen?
b) Stellen Sie fest, ob jemand von Q gelesen hat - und wer hat das gemacht? [Ist das überhaupt möglich?] Könnte dies für Bonuspunkte plattformübergreifend gemacht werden? [Wahrscheinlich nicht, aber nicht schaden versucht :)]
Unter welchen Umständen könnte ein Rogue-Programm an den gemeinsamen Speicher anschließen? Ich gehe davon aus, dass ein Benutzer OS-Lücken ausnutzen und der Benutzer werden kann, der das Programm gestartet hat. Irgendwelche anderen?
Großartig, danke! Das hilft sehr – viksit