fstab의 nodev 및 nosuid에 대한 설명


43

누군가가 tmpfs 또는 ramfs를 마운트하는 방법을 설명 할 때 웹에서 지속적으로 제안되는 두 가지 옵션을 봅니다. 종종 noexec도 있지만 nodev와 nosuid에 특히 관심이 있습니다. 나는 기본적으로 실제 이해없이 누군가가 제안한 것을 맹목적으로 반복하는 것을 싫어합니다. 그리고 이것에 관해 인터넷에서 복사 / 붙여 넣기 지침 만 볼 수 있기 때문에 여기에 묻습니다.

이것은 문서에서 가져온 것입니다 :
nodev- 파일 시스템의 블록 특수 장치를 해석하지 마십시오.
nosuid -suid 및 sgid 비트의 작동을 차단합니다.

그러나 나는 그 두 가지를 제외하면 어떻게 될 수 있는지에 대한 실질적인 설명을 원합니다. 시스템의 특정 (루트가 아닌) 사용자가 액세스 (읽기 + 쓰기) 할 수있는 tmpfs 또는 ramfs (이 두 가지 언급 된 옵션 세트없이)를 구성했다고 가정 해 봅시다. 해당 사용자가 시스템을 손상시키기 위해 무엇을 할 수 있습니까? ramfs의 경우 사용 가능한 모든 시스템 메모리를 사용하는 경우 제외


1
이 질문에 대한 좋은 답변입니다 : unix.stackexchange.com/questions/188601/…
타원형보기

답변:


35

맹목적으로 이것을 맹목적으로 따를 필요는 없습니다. 그러나보다 보안에 초점을 맞춘 상황에 대한 추론은 다음과 같습니다.

  • nodev 마운트 옵션은 파일 시스템에 특수 장치를 포함 할 수 없도록 지정합니다. 이것은 보안 예방 조치입니다. 이와 같은 사용자가 액세스 할 수있는 파일 시스템은 문자 장치를 만들 거나 임의의 장치 하드웨어에 액세스 할 수있는 가능성을 원하지 않습니다 .

  • nosuid 마운트 옵션은 파일 시스템이 설정된 사용자 ID 파일을 포함 할 수 없도록 지정합니다. 세계적으로 쓰기 가능한 파일 시스템에서 setuid 바이너리를 방지하는 것은 루트 에스컬레이션 또는 기타 끔찍한 위험이 있기 때문에 의미가 있습니다.

가치가있는 것은 이러한 매개 변수를 자주 사용하지 않습니다. 다른 규정 준수 고려 사항이있는 공개 시스템에서만 사용합니다.


1
소프트웨어가 인터넷에 노출 된 해당 계정으로 실행 중이기 때문에 실제로 공개 시스템이 있습니다. 그래서 여기서 가정 시나리오에 대해 궁금합니다. 누군가가 일부 취약점을 통해 셸 액세스 권한을 얻는 경우 어떻게됩니까? 물론 그가 권리를 확대하기 위해 할 수있는 다른 일들이 있지만, 나는 그것을 최소화하고 싶습니다. 예를 들어 suid의 경우 파일 시스템이 허용하는지 여부에 관계없이 사용자가 여전히 플래그를 변경할 수 없을지 궁금합니다. nosuid 옵션은 실수로 잘못 구성된 소프트웨어 (루트) 만 방지합니까? 아니면 사용자가 혼자 이용할 수 있습니까?
Ivan Kovacevic

1
@IvanKovacevic 권장 파일 시스템 마운트 옵션을 사용할 필요는 없습니다. 공격 벡터를 줄이기 위해 존재합니다. 그러나 가상 시나리오 조사는이 질문의 범위를 벗어납니다.
ewwhite

3
@ewwhite : nosuidsetuid 비트가 무시되지 않습니까? (대신에 The nosuid mount option specifies that the filesystem cannot contain set userid files)
user2284570
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.