[문의] 루트의 일반유저 파일 접근

bosub의 이미지

루트는 일반유저의 파일에 접근 할 수 있습니다.
이 접근을 어떻게 막을 수 있을까요?
그리고 커널에서 막고자 한다면....

task_struct 구조체 정보가 있는 헤더는 어디예요? ㅠㅠ

오늘도 좋은 하루 되세요
커널은 어려워 ㅠㅠ

seongju의 이미지

예를들어 sys_write 등을 가로채서 이 부분을 자신이 원하는 일처리등을 하게 하면 어떠한 사용자든지 디스크 write 작업시 원하는 작업을 할 수있죠.

즉 루트건 일반사용자건 어떠한 것이건 간에 write 를 못하게 할 수도 있고 자신이 원하는 사용자만 write 하게 할 수도 있는 등의 처리가 가능하겠죠.

물론 어떠한 것을 하고자 하느냐에 따라 다르겠지만 자신이 원한는 작업이 마무리 되면 원래의 sys_write 를 하도록 해야할 필요도 있을 것 같습니다.

new5244의 이미지

task_struct 는 sched.h 에 있고요...

커널소스를 수정해서 막을려면
fs/ 쪽에 permission() 계열 함수를 좀 고치면
파일 시스템관련 시스템콜에서 root 를 bypass 못하게 할 수 있고요..

커널 모듈 형태로 구현할려면 윗분 설명 처럼
주요 파일 시스템 콜을 후킹해서
정상 시스템콜로 넘겨주기 전에
root 검사 기능을 추가 하면 될 것 같네요...

from saibi

cdpark의 이미지

root는 일반 유저로 원하는 대로 변신(!) 가능합니다.

root에게 비밀을 보장받길 원한다면 암호화만이 답입니다.

mach의 이미지

cdpark wrote:
root는 일반 유저로 원하는 대로 변신(!) 가능합니다.

root에게 비밀을 보장받길 원한다면 암호화만이 답입니다.


옳소~
그래서 유닉스는 보안운영체제로서의 등급을 받을 수 없었던 것입니다.
해당 사용자로 변신해서 파일을 열어보더라도 암호를 모르면, 내용을
볼 수 없다. 이게 최선입니다.

------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.