일부 배경 :
setuid 비트 :
실행 파일의 setuid 비트는 사용자가 실행하는 실행 파일이 실행 파일 소유자가 실행하는 것처럼 실행되도록합니다. 따라서 루트가 소유 한 프로그램에서 setuid를 설정하면 누가 실행 하든지 루트 권한으로 실행됩니다. 물론 그렇게 간단하지는 않습니다. 이 위키 백과 기사를 보거나 유닉스 환경에서 Steven의 프로그램 사본을 얻으십시오.
코어 덤프 :
코어 덤프는 프로그램의 작업 메모리를 파일로 덤프하는 것입니다. 참조 이 위키 피 디아 문서를 .
suid_dumpable :
위에서 설명한대로 setuid 프로그램에서 코어를 덤프 할 수 있는지 여부를 제어합니다. 아래를 참조하십시오. 이것은 커널 튜너 블이며 다음과 같이 변경할 수 있습니다.
sudo sysctl -w kernel.suid_dumpable=2
이 튜너 블에 대해서는 소스 코드의 설명서에서 찾을 수 있습니다.이 코드는 설치된 경우 /usr/src/linux-source-2.6.27/Documentation/sysctl/과 같은 디렉토리에 있습니다. 이 경우 아래 참조는 해당 디렉토리의 fs.txt에 있습니다. uname -a
커널 버전을 찾으 려면 명령을 사용하십시오 .
중요한 이유 :
보안 위험이있을 수 있습니다.
따라서 핵심 덤프가 있고 일반 사용자가 읽을 수 있으면 권한있는 정보를 찾을 수 있습니다. 프로그램이 제대로 덤프되면 메모리에 특권 정보가 있고 사용자가 덤프를 읽을 수 있으면 해당 특권 정보를 찾을 수 있습니다.
참고:
This value can be used to query and set the core dump mode for setuid
or otherwise protected/tainted binaries. The modes are
0 - (default) - traditional behaviour. Any process which has changed
privilege levels or is execute only will not be dumped
1 - (debug) - all processes dump core when possible. The core dump is
owned by the current user and no security is applied. This is
intended for system debugging situations only.
2 - (suidsafe) - any binary which normally not be dumped is dumped
readable by root only. This allows the end user to remove
such a dump but not access it directly. For security reasons
core dumps in this mode will not overwrite one another or
other files. This mode is appropriate when adminstrators are
attempting to debug problems in a normal environment.