Чудех се - има ли известни техники за контрол на достъпа до обект със споделена памет отвсякъде, освен от оторизирана програма?
Например, да кажем, че създавам сегмент от споделена памет за използване в програма P, за достъп от Q, и го правя за четене-запис. Мога да осъществя достъп до него с помощта на Q, защото съм му дал (Q) необходимите разрешения за това (работи като конкретен потребител с групи и т.н.).
Предполагам обаче, че има случаи, в които някой потенциално може да получи достъп до тази споделена памет от програма R - просто да се прикачи към нея и да я модифицира. За да спрете това, можете да направите сегмента на паметта само за четене - но сега програмата R все още може да чете какво има в паметта.
Въпросът ми е на части -
има ли начин да
а) позволява само на Q достъп до споделената памет?
b) разберете дали четенето е извършено от някой различен от Q - и кой го е направил? [Възможно ли е това?] За бонус точки, може ли това да се направи между платформи? [Вероятно не, но няма да навреди да опитате :)]
При какви обстоятелства измамна програма може да се прикачи към споделената памет? Предполагам, че един от начините е, ако потребителят може да използва дупки в операционната система и да стане потребителят, стартирал програмата. Някакви други?