데비안 불안정한 chroot 보안 문제

데비안 불안정한 chroot 보안 문제

이 페이지debootstrap이 유틸리티를 사용하여 기존 Linux 시스템에 기본 Debian stable/sid 시스템을 설치하는 방법을 설명합니다 . 를 사용하여 새 설치에 액세스할 수 있습니다 chroot.

이 작업을 수행할 때 어떤 안전 문제를 알고 있어야 합니까? 예를 들어, 백그라운드/시작 프로세스가 새로운 chroot에서 시작되거나 메인 시스템을 방해하는 것을 방지하려면 어떤 조치를 취해야 합니까?

답변1

Chroot만으로는 어떤 보안도 제공되지 않습니다. 즉, chroot 프로세스가 시스템의 모든 것에 액세스할 수 있는 것처럼 chroot를 처리하십시오. 왜냐하면 종종 그렇게 하기 때문입니다. 당신은 또한 볼 수 있습니다chroot "jail" - 이것이 무엇이며 어떻게 사용하나요?--주의를 기울이십시오Michael Mrozek의 검토

"chroot 감옥"은 잘못된 이름이므로 사라져야 합니다.

Chroot는 단순히 보안 기능보다 더 편리한 파일 보관 방법입니다. 신뢰할 수 없는 사용자가 파일 이름(예: FTP 서버)을 지정하도록 허용하는 프로세스가 있는 경우 chroot는 사용자가 chroot 외부의 파일을 직접 참조할 수 없도록 하는 방법입니다. 특히 탈출로 이어질 수 있는 파일이 chroot에 포함되어 있지 않은지 확인해야 합니다.

  • 최소한의 장치 파일( /dev/*)만 chroot에 넣습니다. /dev예를 들어 블록 장치를 원하지 않는 경우 바인드 마운트하지 마십시오 . tty 장치와 기타 데이터 장치( /dev/null, /dev/zero, /dev/urandom, ...)만 배치합니다.
  • 마운트하지 마십시오 /proc. 이는 큰 제한 사항이지만 /proc설계상 많은 정보를 노출시킵니다. 예를 들어, chroot 외부의 일부 사용자로 실행 중인 프로세스 1234가 있는 경우 chroot 여부에 관계없이 모든 프로세스가 /proc/1234/root.

chroot 프로세스는 여전히 chroot가 아닌 프로세스에 신호를 보내고, 네트워크 소켓을 열고, 공유 메모리에 액세스하는 /dev/shm등의 작업을 수행할 수 있습니다(현재 Linux에서는 사용 가능한 경우에만). 포함을 위해 chroot를 사용하는 경우 chroot 내부 프로세스를 실행하는 사용자로서 chroot 외부 프로세스를 실행하지 마십시오.

Chroot는 여전히 좋은 방법입니다동일한 운영 체제의 다른 버전 실행(동일 코어 사용) 1. 보안 문제가 있을 때 특히 더 나은 도구가 있습니다.FreeBSD 감옥그리고리눅스 c그룹그리고LXC. 전체 가상화(VirtualBox, KVM 등)는 상용 하드웨어에서도 과거보다 더 실행 가능한 옵션이 되었습니다.

그건 그렇고 , 내 대답에서 나는 데비안 chroot에서 서비스를 시작하지 않는 방법을 설명했습니다. 이는 보안 문제가 아니며 서비스가 협력적이고 올바르게 작성되었다고 가정합니다.

관련 정보