visudo가 다른 편집자를 방해하는 이유는 무엇입니까?

visudo가 다른 편집자를 방해하는 이유는 무엇입니까?

man visudovisudo는 (기본적으로) 환경 변수를 사용하지 EDITOR않는다고 설명합니다.VISUAL

그것은 다음과 같이 말합니다.

"visudo에서 사용하는 편집기가 쉘 이스케이프를 허용하는 경우 사용자가 루트 쉘을 얻는 것을 방지하는 쉬운 방법은 없습니다."

이제 보안 위험이 어디에 있는지 혼란스러워졌습니다. 나는 그것을 믿는다

  • 루트만 visudo를 사용하여 편집할 수 있습니다./etc/sudoers
  • 루트만이 루트의 환경 변수를 변경할 수 있습니다.
  • 루트에는 이미 루트 쉘이 있습니다

아마도 이것이 적용되지 않는 사용 사례가 있을 것입니다. 그러나 나는 그것을 생각할 수 없습니다.

답변1

엄밀히 말하면 임의의 편집기를 실행해도 추가적인 보안 위험이 있다고 생각하지 않습니다 visudo. 분명히 실행 중인 사용자는 visudo이미 편집 권한을 갖고 /etc/sudoers있으므로 시스템에서 다른 명령 실행을 허용하는 규칙을 추가할 수 있습니다. 따라서 어떤 편집기가 실행되는지에 관계없이 사용자는 visudo새로운 sudo 규칙을 추가하여 이미 원하는 모든 것을 간접적으로 실행할 수 있습니다.

EDITOR및 환경 변수 에 대한 문서의 권고는 VISUALsudo의 표준 로깅을 우회하면서 루트 셸(또는 임의 명령)을 실행하는 것에 관한 것이라고 생각합니다. 기본적으로 sudo는 모든 성공 및 실패 인증을 syslog에 기록합니다. 이는 시스템 관리자에게 어떤 사용자가 sudo를 통해 어떤 명령을 실행하고 있는지에 대한 감사 추적을 제공합니다. 사용자가 /etc/sudoers로 변경한 경우 visudo파일을 체크섬하거나 검토하여 확인할 수 있습니다. 그러나 사용자가 를 통해 루트 셸을 얻을 수 있으면 visudo감사 추적 없이 임의의 명령을 실행할 수 있습니다.

따라서 보안 위험은 실행 권한을 부여하는 것과 동일합니다 sudo bash. 즉, 해당 권한을 가진 사용자는 실행되는 명령을 제한하거나 기록하지 않고 루트 셸을 가져와 임의 코드를 실행할 수 있다는 것입니다.

관련 정보