프로그램이 /proc/self/mem에 접근해야 하는 타당한 이유는 무엇입니까?

프로그램이 /proc/self/mem에 접근해야 하는 타당한 이유는 무엇입니까?

Linux의 Firefox와 Chromium 브라우저 모두 읽기용으로 파일을 여는 것으로 나타났습니다 /proc/self/mem. 내가 아는 한 내 시스템의 다른 프로그램은 이 파일을 읽지 않습니다.

/proc/self/mem악성 코드로 메모리를 덮어쓰고 프로그램 실행을 가로채는 끝없는 권한 상승 공격의 벡터로 악명 높습니다.

브라우저는 가장 많이 노출된 프로그램이고 인터넷에서 신뢰할 수 없는 입력을 받기 때문에 가장 큰 공격 표면을 갖기 때문에 이는 더욱 슬픈 일입니다.

최신 브라우저에서 읽기가 필요한 타당한 이유가 있습니까 /proc/self/mem?

답변1

Firefox 및 Chromium과 같은 브라우저는 특히 여러 프로세스를 사용합니다.줄이다그들의 공격 표면. 여러 프로세스로 분할하는 것의 한 가지 측면은 오류 처리입니다. 특정 프로세스에서 심각한 오류가 발생하면 다른 프로세스에서 처리하는 것이 더 좋습니다(충돌된 프로세스는 자체 분석을 허용하는 상태가 아닐 수 있으므로, 프로세스 충돌을 방지하기 위해).

따라서 브라우저는 /proc/self/mem전달될 수 있도록 핸들을 열어 두어 충돌 처리 프로세스가 충돌 프로세스의 메모리를 읽거나 프로파일링 프로세스가 프로파일링되는 프로세스의 메모리를 읽을 수 있도록 합니다. 이는 특히 스택 해제에 사용됩니다.자세한 내용은 Perfetto 문서(Chromium에서 사용되는 디코일러입니다.)

관련 정보