/ etc / fstab의“nodev”가 중요한 이유는 무엇입니까? 캐릭터 장치는 어떻게 해킹에 사용될 수 있습니까?


19

나는 리눅스 보안에 대해 배우고 있으며 문자 장치가있는 USB 스틱이 위험한 이유를 이해하기 위해 고심하고 있습니다.

setuid root가있는 bash 실행 파일이있는 USB 스틱이 있으면 위험이 분명합니다 .USB 스틱을 가진 사람은 다음과 같은 항목이 있으면 컴퓨터에서 루트 권한을 얻을 수 있습니다

/dev/sdb1 /media/usbstick auto defaults 0 0

/etc/fstab때문에 defaults포함 suid합니다.

그러나 캐릭터 장치는 어떻습니까? 어떻게 그것에 문자 장치와 USB 스틱이 장착됩니다 경우 루트 권한이나 휴식 물건을 얻기 위해 문자 장치를 사용할 수 있습니다 dev또는 defaults?

답변:


31

기본 장치에 대한 액세스는 기본적으로 파일 권한으로 만 제어되므로 USB 스틱에 시스템의 실제 장치에 해당하는 쓰기 가능한 장치 노드가있는 POSIX 파일 시스템이 포함 된 경우 해당 장치 노드를 사용하여 해당 장치에 액세스 할 수 있습니다 "일반"사용자로서의 장치. 오디오 장치 중 하나 인 웹캠 /dev/sda(캐릭터 장치가 아닌 블록 장치이지만 인수는 동일 함)에 해당하는 장치를 상상해보십시오 ...

다음은 상황을 명확하게하는 예입니다. 당신이 접근하고 싶다고 말하면 (당신 /dev/sda이 될 수있는 프로그램을 심는 것을 포함하여 디스크의 내용으로 원하는 모든 것을 할 수 있습니다 root; 이것은 블록 장치이지만 문제는 문자 장치와 동일합니다). 대상 시스템에 ls -l /dev/sda

brw-rw----  1 root disk      8,   0 Sep  8 11:25 sda

이것은 주 번호 8과 부 번호 0 ( 라인 중간에 있음 /dev/sda)을 가진 블록 장치 ( b라인의 시작 부분에 있음 8, 0)를 의미합니다. 장치는 root(읽기 / 쓰기) 및 disk그룹 구성원 (읽기 / 쓰기) 만 액세스 할 수 있습니다 .

이제이 시스템에서 당신이 될 수는 root없지만 어떤 이유로 든 USB 스틱을 사용자없이 마운트 할 수 있다고 상상해보십시오 nodev. 다른 시스템에서 rootUSB 키에 해당하는 특수 파일을 만들 수 있습니다.

mknod -m 666 usersda b 8 0

usersda모든 사람이 읽고 쓸 수있는 특수 파일을 만듭니다 .

대상 시스템에 키를 마운트하면 presto와 마찬가지로 usersda장치를 동일한 방식으로 사용할 수 /dev/sda있지만 액세스 제한은 없습니다 ...

(이는 해독 된 매퍼 장치에 액세스 할 수있는 한 암호화 된 파일 시스템에서도 작동합니다. 적절한 /dev/mapper항목 과 일치하는 장치를 만듭니다 .)


재미 있겠다! 그러나 나는 그것을 이해하지 못한다. 장치는 파일이며 inode를 통해 파일에 액세스합니다. USB 스틱의 가짜 장치는 다른 inode를 가질 수 있으므로 다른 장치 일 것입니까?
rosix

7
장치는 주 번호와 부 번호가있는 특수 파일입니다. 당신이 할 경우 그것들을 볼 수 있습니다 ls -l /dev, 그것들은 파일 크기 대신에 나타나는 두 개의 숫자입니다. 커널은 장치 특수 파일을 해당 번호를 사용하는 드라이버와 일치 시키므로 동일한 커널 드라이버 및 장치를 가리키는 여러 파일을 가질 수 있습니다. 특수 파일은을 사용하여 생성됩니다 mknod.
Stephen Kitt

참고 /dev/tty*장치는 당신에게 전체 읽기 / 쓰기 액세스를 얻고 문자 장치, 침입자 있습니다 터미널 세션 및 / 또는 시스템 콘솔 더러운 트릭의 모든 종류를 허용 할 수 있습니다 터미널 에뮬레이터 기능을 남용와 함께 ...
텔레콤

1
@TheQuark, 그렇습니다. 좀 더 일반적입니다. "해석"은 "장치 파일을 일반 파일이 아닌 장치 노드로 처리"를 의미합니다.
Stephen Kitt

1
@ n00b 마운트 usersda할 수는 없지만 최소한 기본 디스크에서 제한없이 읽고 쓸 수도 있습니다. 모든 디스크의 내용과 debuge2fs, 덮어 쓰기 /etc/shadow등의 도구를 사용하여 쉽게 복사 할 수 있습니다 .
Stephen Kitt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.