fakechroot는 보안 결함인가요?

fakechroot는 보안 결함인가요?

나는 최근에 에 대해 더 많이 알게 되었습니다 fakechroot. AFAIK chroot에 있더라도 사용자 권한을 에스컬레이션하므로 위험해 보입니다. 나는 알고 있지만 fakeroot루트가 필요한 작업을 수행할 수 없기 때문에 동일하지 않습니다.

그러나 fakechroot실제로 실행하려면 chroot 내부에 루트 권한이 필요합니다. 그러면 fakechroot일반 사용자를 사용하면 chroot를 루팅한 다음 호스트에서 루트로 분리될 가능성이 있다는 뜻입니까 ?

사용자 권한을 확대하지 않는 매뉴얼 페이지를 읽었는데 fakechroot완전히 이해했는지는 모르겠습니다.

답변1

일부 Linux 응용 프로그램은 현재 사용자가 인 경우에만 작동합니다 root. 이러한 응용 프로그램의 대부분은 Linux 자체 변경과 관련되어 있으므로 일반 사용자로부터 보호됩니다.

root그러나 때로는 일반 사용자로 작업할 때 특정 목적을 위해 이러한 명령을 일시적으로 사용하기 위해 권한 상승 없이 해당 명령을 실행하고 싶을 때가 있습니다 .

이러한 명령은 현재 사용자로 실행되고 실행 중인 Linux 버전에 실제 영향을 주지 않기 때문에 보안 결함이 아닙니다.


이러한 명령의 가장 좋은 예는 입니다 fakeroot. 그 기능은 다음과 같습니다~인 척하다실제로 이런 일이 발생하지 않고도 현재 사용자는 입니다 root.

이를 통해 루트로 실행될 것으로 예상되는 프로그램이 실제로 일반 사용자로 실행되는 동시에 루트가 필요한 작업이 성공한다고 잘못 생각하게 됩니다.

이는 일반적으로 패키지를 빌드할 때 사용됩니다. 따라서 설치되는 패키지의 설치 프로세스가 오류 없이 진행될 수 있습니다. 또는 chown root:rootinstall -o rootfakeroot이러한 파일을 제공하는 것처럼 가장한 가짜 소유권을 기억하므로 후속 작업에서 소유권은 root실제 소유자가 아닌 소유자로 간주됩니다 .

예를 들어, 후속 tar실행에서 루트가 소유한 파일을 저장할 수 있습니다. fakeroot이 경우 루트 및 suid가 소유한 파일을 포함하는 tarball을 만듭니다. 그러나 권한 상승 없이 루트로 수행하지 않는 한 해당 타르볼을 추출하고 해당 권한을 보존할 수 없습니다.

fakeroot그런 다음 일반 사용자로 빌드를 실행할 수 있으며, 동시에 루트로 실행했을 경우 빌드가 가졌을 효과를 유지하여 나중에 재생할 수 있습니다. "실제로" 효과를 적용하려면 실제 루트 권한이 필요하며, 이에 대한 fakeroot획득 방법은 제공되지 않습니다.


또 다른 예는가짜 루트. fakechrootsetuid가 아닌 일반 프로그램입니다. 사용자의 권한을 강화하거나 시스템 보안을 저하시키지 않습니다. 루트 권한 없이 chroot(8) 명령을 사용할 수 있는 환경을 생성하며, 이는 apt루트 권한 없이 패키지 설치를 호출하는 데 유용합니다. 이런 방식으로 사용자는 시스템의 다른 사람에게 영향을 주지 않고 자신의 작은 버블 내에 루트 환경을 만듭니다.

fakechroot기능을 제공하지 않으므로 명령 을 통해 fakeroot호출해야 합니다 . 이 두 명령은 상호 보완적이며 함께 사용되는 경우가 많습니다.fakechrootfakeroot

관련 정보