Мне было интересно - существуют ли какие-либо известные методы контроля доступа к объекту общей памяти из любой точки, кроме авторизованной программы?Обнаружение и управление неавторизованными данными общей памяти
Например, можно сказать, что я создаю сегмент разделяемой памяти для использования в программе P, к которой обращается Q, и я делаю его Read-Write. Я могу получить доступ к нему с помощью Q, потому что я дал ему (Q) необходимые разрешения для этого (работает как конкретный пользователь с группами и т. Д.).
Тем не менее, я предполагаю, что есть случаи, когда кто-то потенциально может получить доступ к этой общей памяти из программы R - просто подключив ее и изменив ее. Чтобы остановить это, вы можете сделать только сегмент памяти - но теперь программа R может все еще читать то, что было в памяти.
Мой вопрос в части -
Есть ли способ,
а) разрешить только Q, чтобы получить доступ к общей памяти?
б) фигурирует ли прочитанное кем-то, кроме Q - и кто это сделал? [Возможно ли это?] Для бонусных очков это можно сделать кросс-платформенными? [Наверное, нет, но никакого вреда не пытается :))
При каких обстоятельствах программа мошенников может подключаться к общей памяти? Я предполагаю, что один из способов заключается в том, что пользователь может использовать дыры в ОС и стать пользователем, который запустил программу. Любые другие?
Отлично, спасибо! Это очень помогает – viksit