로컬 사용자가 Sudo 취약점을 통해 인증 없이도 유닉스 계열 운영체제에서 루트 권한을 탈취할 수 있다는 사실이 발견됐다.
브리핑컴퓨터 보도에 따르면, 해당 취약점은 현재 수정되었다. Sudo는 시스템 관리자가 sudoer 파일에 나열된 일반 사용자에게 제한된 루트 권한을 제공하고, 동시에 활동 로그를 보관할 수 있는 유닉스 프로그램이다.
해당 프로그램은 시스템 보안의 손상 없이, 작업 수행이 가능한 권한을 부여하는 최소 원칙을 기반으로 한다. 유닉스 계열 운영체제에서 명령을 실행할 때 권한이 없는 사용자는 Sudo 명령을 사용해 권한이 있거나 루트 비밀번호를 알고 있는 경우 명령어를 root로 실행시킬 수 있다. 루트는 시스템의 슈퍼 사용자로 특수 시스템 관리 계정이라고 할 수 있다.
Sudo는 sudoers 구성 파일에 대한 특수 지시문을 포함해 일반 사용자가 다른 사용자처럼 명령을 실행할 수 있도록 구성할 수 있다.
CVE-2021-3156(Baron Samedit)으로 추적되는 이 Sudo 권한 상승 취약점은 Qualys 연구원들이 발견했고, 지난 1월 13일 벤더사에 제보해 취약점 공개 전 패치가 완료되도록 했다.
Qualys 연구원에 따르면 해당 이슈는 모든 로컬 사용자가 악용할 수 있는 힙 기반 버퍼 오버플로우이고, 모든 로컬 사용자(sudoers 리스트에 나열 여부 상관 없이 모든 일반 및 시스템 사용자)는 사용자 암호를 알지 않고도 결함을 성공적으로 악용할 수 있다.
로컬 사용자가 루트 권한을 얻을 수 있도록 하는 버퍼 오버플로는 Sudo가 인수에서 백 슬래시를 부적절하게 이스케이프 해제함으로써 발생한다.
1.9.5p2 변경 로그에는 “일반적으로 sudo는 쉘(sudo -s, sudo -i)을 통해 명령을 실행할 때 특수 문자를 이스케이프한다. 그러나 실제로 이스케이프가 수행되지 않은 경우에도 -s 또는 -i 플래그로 sudoedit을 실행하여 버퍼 오버플로가 가능하다.”고 쓰여있다.
퀄리스는 이 결함이 어떻게 성공적으로 악용되는지 설명하기 위해 CVE-2021-3156에 대한 3가지 익스플로잇을 작성했다. 이들 익스플로잇을 사용해 연구원들은 Debian 10 (Sudo 1.8.27), Ubuntu 20.04 (Sudo 1.8.31), Fedora 33 (Sudo 1.9.2)을 포함해 다수 리눅스 배포판에서 루트 권한을 획득할 수 있었다.
연구원들에 따르면 Sudo에서 지원하는 다른 운영체제 및 배포판도 CVE-2021-3156 취약점 공격을 통해 악용 가능하다. 자세한 기술 정보는 Qualys의 CVE-2021-3156 보안 공지에서 확인할 수 있으며, 비디오 데모 또한 공개(클릭)되어 있다.
해당 취약점은 거의 9년 전인 2011년 7월 커밋 8255ed69에 포함되어 Sudo 프로그램에 추가되었고, 1.9.0~1.9.5p1의 모든 안정 버전과 1.8.2~1.8.31p2의 모든 레거시 버전 기본 구성에 영향을 미친다.
Sudo 측은 sudo 1.9.5p2 버전의 취약점을 수정했고, Qualys도 발견한 취약점에 대해 공개했다. 시스템 취약성을 테스트하기 위해서는 루트가 아닌 사용자로 로그인 후 “sudoedit -s/” 명령을 실행해야 한다. 취약한 시스템은 “sudoedit :”로 시작하는 오류를 표시하고, 패치된 시스템은 “usage :”로 시작하는 오류를 표시한다.
Sudo를 사용하는 시스템 관리자는 가능한 한 빨리 sudo 1.9.5p2 이상으로 업그레이드를 해야 한다.
★정보보안 대표 미디어 데일리시큐!★