그들은 격리된 컨테이너에서 벗어날 수 있는 cgroup v1의 취약점을 발견했습니다.

몇일 전에 뉴스가 발표되었다 세부 사항이 공개되었습니다 취약성 그것이 발견되었다 메커니즘의 구현에서 자원 제한 C그룹 V1 CVE-2022-0492에 따라 이미 카탈로그된 Linux 커널에 있습니다.

이 취약점은 s를 발견했습니다.e는 격리된 컨테이너를 종료하는 데 사용할 수 있습니다. 그리고 리눅스 커널 2.6.24부터 문제가 있었다는 것이 자세히 설명되어 있습니다.

블로그 포스트에서는 다음과 같이 언급하고 있습니다. 이 취약점은 release_agent 파일 핸들러의 논리적 오류로 인한 것입니다. 따라서 드라이버가 전체 권한으로 실행되었을 때 적절한 검사가 수행되지 않았습니다.

파일 release_agent는 커널이 실행하는 프로그램을 정의하는 데 사용됩니다. 프로세스가 cgroup에서 끝날 때. 이 프로그램은 루트 네임스페이스의 모든 "기능"을 사용하여 루트로 실행됩니다. 관리자만 release_agent 구성에 액세스할 수 있어야 했지만 실제로 확인은 루트 사용자에게 액세스 권한을 부여하는 것으로 제한되었으며 컨테이너 또는 비관리 루트 사용자(CAP_SYS_ADMIN)에서 구성을 변경하는 것을 배제하지 않았습니다. .

이전에는 이 기능은 취약점으로 인식되지 않았을 것입니다., 그러나 기본 환경의 루트 사용자와 겹치지 않는 컨테이너에 별도의 루트 사용자를 생성할 수 있는 사용자 식별자 네임스페이스(사용자 네임스페이스)의 출현으로 상황이 변경되었습니다.

결과적으로, 공격의 경우 자체 루트 사용자가 있는 컨테이너에서 충분합니다. 프로세스가 완료되면 상위 환경의 모든 권한으로 실행되는 release_agent 핸들러를 별도의 사용자 ID 공간에 연결합니다.

기본적으로 cgroupfs는 읽기 전용 컨테이너에 마운트되지만 CAP_SYS_ADMIN 권한이 있는 쓰기 모드에서 이 pseudofs를 다시 마운트하거나 CAP_SYS_ADMIN 권한이 있는 공유 중지 시스템 호출을 사용하여 별도의 사용자 네임스페이스로 중첩 컨테이너를 생성하면 문제가 없습니다. 생성된 컨테이너에서 사용할 수 있습니다.

공격 격리된 컨테이너에서 루트 권한을 가짐으로써 수행할 수 있습니다. 또는 추가 권한 획득을 금지하는 no_new_privs 플래그 없이 컨테이너를 실행합니다.

시스템에 네임스페이스 지원이 활성화되어 있어야 합니다. 사용자(Ubuntu 및 Fedora에서는 기본적으로 활성화되지만 Debian 및 RHEL에서는 활성화되지 않음) 및 루트 v1 cgroup에 대한 액세스 권한이 있습니다(예: Docker는 RDMA 루트 cgroup에서 컨테이너를 실행함). CAP_SYS_ADMIN 권한으로도 공격이 가능하며, 이 경우 사용자 네임스페이스 지원 및 cgroup v1의 루트 계층에 대한 액세스가 필요하지 않습니다.

이 취약점은 격리된 컨테이너에서 벗어나는 것 외에도 "기능"이 없는 루트 사용자 또는 CAP_DAC_OVERRIDE 권한이 있는 모든 사용자가 시작한 프로세스를 허용합니다(공격은 root) 시스템의 모든 "기능"에 대한 액세스 권한을 얻습니다.

컨테이너를 제외하고 취약점으로 인해 기능이 없는 루트 호스트 프로세스 또는 CAP_DAC_OVERRIDE 기능이 있는 루트가 아닌 호스트 프로세스가 권한을 전체 기능으로 상승시킬 수 있습니다. 이를 통해 공격자는 특정 서비스에서 사용하는 강화 조치를 우회할 수 있으며, 이는 손상이 발생할 경우 영향을 제한하기 위해 기능을 제거합니다.

Unit 42는 사용자에게 고정 커널 버전으로 업그레이드할 것을 권장합니다. 실행 중인 컨테이너의 경우 Seccomp를 활성화하고 AppArmor 또는 SELinux가 활성화되어 있는지 확인합니다. Prisma Cloud 사용자는 "Prisma Cloud Protections" 섹션을 참조하여 Prisma Cloud에서 제공하는 완화 사항을 확인할 수 있습니다.

Seccomp는 unshare() 시스템 호출을 차단하고 AppArmor 및 SELinux는 cgroupfs가 쓰기 모드로 마운트되는 것을 허용하지 않기 때문에 추가 컨테이너 격리를 위해 Seccomp, AppArmor 또는 SELinux 보호 메커니즘을 사용할 때 취약점을 악용할 수 없습니다.

마지막으로 커널 버전 5.16.12, 5.15.26, 5.10.97, 5.4.177, 4.19.229, 4.14.266 및 4.9.301에서 수정되었다는 점을 언급할 가치가 있습니다. 다음 페이지에서 배포판의 패키지 업데이트 릴리스를 확인할 수 있습니다. 데비안SUSEUbuntuRHEL페도라젠투아치 리눅스.

최종적으로 그것에 대해 더 많이 알고 싶다면에서 세부 정보를 확인할 수 있습니다. 다음 링크.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.