/proc/pid/mem 액세스가 보안 취약점이 아닌 이유는 무엇입니까?

/proc/pid/mem 액세스가 보안 취약점이 아닌 이유는 무엇입니까?

나는 몇몇 /proc/pid/mem/proc/pid/maps. 나는 변수에서 주기적으로 읽는 간단한 C 프로그램(해당 주소는 stdout에 기록됨)을 작성했으며 dd.

#include <stdio.h>
#include <unistd.h>

int main() {
    pid_t pid = getpid();
    int value = 5;

    do {
        printf("value: %d\naddress: %p\npid: %d\n", value, &value, pid);
    } while (getchar() != -1);

    return 0;
}

echo '0x2a000000' | xxd -p -r | dd of=/proc/$PID/mem bs=1 seek=$((ADDR)) count=4 conv=notrunc

첫 번째 프로그램에서 Enter를 누르면 값이 42로 업데이트됩니다.

그래서 내 질문은, 이것이 왜 문제가 되지 않는가 하는 것입니다. 루트 액세스 권한도 없습니다. 내 컴퓨터에 악성 코드를 설치하면 모든 프로그램의 메모리를 읽고 쓸 수 있습니다.

변수의 정확한 주소를 모르더라도 주소를 사용하여 전체 스택과 힙을 인쇄할 수 있습니다 /proc/pid/maps.

関連情報