블록 마운트 시스템 호출

블록 마운트 시스템 호출

/system누군가가 읽기-쓰기 모드로 다시 마운트하려고 할 때 마운트 시스템 호출을 방지하고 싶습니다. 이는 다음 작업을 허용하고 싶지 않음을 의미합니다. mount -o remount,rw /system. 커널에서 코드를 어디에서 변경해야 하는지 아는 사람이 있나요? 설치와 관련된 기능 중 일부가 어디에 있는지 확인하려고 했지만 /fs/namespace.c확실하지 않습니다.

답변1

SELinux 또는 이와 유사한 것을 사용할 수 있지만 seccomp전체 루트 권한을 사용하면 파티션을 마운트하거나 다른 불쾌한 작업을 수행하지 않고도 파티션을 수정할 수 있으며 제한을 피하기 위해 커널 모듈을 로드할 수도 있다는 점을 고려하면 그렇게 간단하지 않을 수 있습니다. 최소한 모든 공통 허점을 해결하는 포괄적인 규칙 세트가 필요합니다.

바이너리나 C 라이브러리를 수정하는 것은 mount해결책이 아닙니다. 이미 만들어진 바이너리나 라이브러리를 거치지 않고 시스템 호출을 직접 호출하는 것이 매우 간단하기 때문입니다.

SELinux와 일반적인 파티셔닝 및 강화 기술은 먼저 루트 액세스 권한을 얻는 것을 더 어렵게 만듭니다. 이는 다른 이유로도 유용할 수 있습니다.

또한, 또 하나의 질문은 해당 마운트 지점에 무엇이 있습니까? 이 시스템에만 관련이 있는 경우 누군가 수정할 수 있는지 여부가 중요합니까? 컴퓨터에 대한 전체 관리 액세스 권한을 얻으면 다른 모든 것을 망칠 수 있고 백도어를 떠날 수 있으며 적어도 문제의 파티션을 파괴할 수 있습니다. 수정할 필요가 없고 콘텐츠 손실을 방지하려는 경우에는 읽기 전용 저장소에 저장하는 것이 더 쉽습니다. 그리고 백업을 하세요.

파일 시스템이 여러 시스템에서 사용되는 경우 네트워크를 통해 마운트될 수 있습니다. 이 경우 서버 측에서 쓰기를 방지하는 것이 더 좋으므로 커널이 읽기-쓰기 마운트를 시도하더라도 여전히 작동하지 않습니다.

관련 정보