man visudo
visudo는 (기본적으로) 환경 변수를 사용하지 EDITOR
않는다고 설명합니다.VISUAL
그것은 다음과 같이 말합니다.
"visudo에서 사용하는 편집기가 쉘 이스케이프를 허용하는 경우 사용자가 루트 쉘을 얻는 것을 방지하는 쉬운 방법은 없습니다."
이제 보안 위험이 어디에 있는지 혼란스러워졌습니다. 나는 그것을 믿는다
- 루트만 visudo를 사용하여 편집할 수 있습니다.
/etc/sudoers
- 루트만이 루트의 환경 변수를 변경할 수 있습니다.
- 루트에는 이미 루트 쉘이 있습니다
아마도 이것이 적용되지 않는 사용 사례가 있을 것입니다. 그러나 나는 그것을 생각할 수 없습니다.
답변1
엄밀히 말하면 임의의 편집기를 실행해도 추가적인 보안 위험이 있다고 생각하지 않습니다 visudo
. 분명히 실행 중인 사용자는 visudo
이미 편집 권한을 갖고 /etc/sudoers
있으므로 시스템에서 다른 명령 실행을 허용하는 규칙을 추가할 수 있습니다. 따라서 어떤 편집기가 실행되는지에 관계없이 사용자는 visudo
새로운 sudo 규칙을 추가하여 이미 원하는 모든 것을 간접적으로 실행할 수 있습니다.
EDITOR
및 환경 변수 에 대한 문서의 권고는 VISUAL
sudo의 표준 로깅을 우회하면서 루트 셸(또는 임의 명령)을 실행하는 것에 관한 것이라고 생각합니다. 기본적으로 sudo는 모든 성공 및 실패 인증을 syslog에 기록합니다. 이는 시스템 관리자에게 어떤 사용자가 sudo를 통해 어떤 명령을 실행하고 있는지에 대한 감사 추적을 제공합니다. 사용자가 /etc/sudoers
로 변경한 경우 visudo
파일을 체크섬하거나 검토하여 확인할 수 있습니다. 그러나 사용자가 를 통해 루트 셸을 얻을 수 있으면 visudo
감사 추적 없이 임의의 명령을 실행할 수 있습니다.
따라서 보안 위험은 실행 권한을 부여하는 것과 동일합니다 sudo bash
. 즉, 해당 권한을 가진 사용자는 실행되는 명령을 제한하거나 기록하지 않고 루트 셸을 가져와 임의 코드를 실행할 수 있다는 것입니다.