포스팅 내용

국내외 보안동향

Sudo 결점, 제한 된 리눅스 사용자가 루트 권한으로 명령 실행하도록 허용해


Sudo Flaw Lets Linux Users Run Commands As Root Even When They're Restricted


거의 모든 Unix 및 Linux 기반 OS에 핵심 커맨드로써 설치 되어 출시 되는 가장 중요하고 강력하며 흔하게 사용 되는 유틸리티 중 하나인 Sudo에서 취약점이 발견 되었습니다.


문제의 취약점은 Sudo의 보안 정책 우회 이슈로 악성 사용자나 프로그램이 “sudoers 구성”이 명시적으로 루트 접근을 허용하지 않을 때에도 루트 권한으로 임의 명령을 실행할 수 있도록 허용합니다.


Sudo는 “superuser do”의 약자로 사용자들이 환경을 변경하지 않고도 다른 사용자의 권한으로 권한으로 어플리케이션이나 명령을 실행할 수 있도록 하는 시스템 명령어로 주로 루트 사용자로써 명령어를 실행할 때 사용 됩니다.


스크린샷에서 볼 수 있듯, 대부분의 리눅스 배포판에서 /etc/sudoers 파일의 RunAs 사양 내 ALL 키워드는 디폴트로 admin 또는 sudo 그룹의 모든 사용자가 시스템의 유효한 사용자로써 모든 명령어를 실행할 수 있도록 허용합니다.


<이미지 출처 : https://thehackernews.com/2019/10/linux-sudo-run-as-root-flaw.html>


그러나, 권한 분리는 리눅스의 기본적인 보안 패러다임 중 하나이기 때문에 관리자는 sudoer 파일을 구성하여 어떤 사용자가 어떤 사용자에게 어떤 명령어를 실행할지 정의할 수 있습니다.


따라서 사용자가 특정 또는 모든 명령어를 루트 권한으로 실행할 수 없도록 제한 되어 있더라도 이 취약점을 악용할 경우 해당 사용자가 이 보안 정책을 우회하고 시스템을 완전히 제어할 수 있게 될 수 있습니다.


“Runas 사양의 맨 앞에 ALL 키워드가 있을 경우, Runas 사양에서 명시적으로 루트 접근을 허용하지 않음에도 불충분한 sudo 권한을 가진 사용자가 이를 이용하여 루트 권한으로 명령어를 실행할 수 있습니다.”


버그를 어떻게 악용할 수 있나요? 

Sudo User ID를 -1 또는 4294967295로 지정하세요


Apple Information Security의 Joe Vennix 가 발견했으며 CVE-2019-14287로 추적되는 이 취약점은 이 sudo 유틸리티가 다른 사용자로써 명령어를 실행할 때 해당 사용자가 아닌 사용자 자신의 로그인 패스워드를 사용하도록 설계 되었기 때문에 더욱 우려됩니다.


더욱 흥미로운 점은 공격자가 user ID를 "-1" 또는 "4294967295"로 설정 하기만 하면 이 취약점을 악용하여 루트 권한으로 명령을 실행할 수 있다는 것입니다.


User ID를 username으로 변환하는 함수가 -1 또는 unsigned equivalent 4294967295를 0으로 잘못 취급하기 때문에 발생합니다. 루트 사용자의 user ID는 항상 0입니다.


<이미지 출처 : https://thehackernews.com/2019/10/linux-sudo-run-as-root-flaw.html>


“또한 –u 옵션을 통해 지정 된 user ID는 패스워드 데이터베이스에 존재하지 않기 때문에 PAM 세션 모듈은 실행 되지 않습니다.”


이 취약점은 오늘 공개 된 최신 버전인 Sudo 1.8.28의 모든 이전 버전에 존재합니다. 이 업데이트는 곧 많은 리눅스 배포판에서 사용자들에게 배포 될 것입니다.


따라서 리눅스를 사용할 경우 가능한 빨리 sudo 패키지를 수동으로 최신 버전으로 업데이트할 것을 권장합니다.





출처:

https://thehackernews.com/2019/10/linux-sudo-run-as-root-flaw.html

티스토리 방명록 작성
name password homepage