리눅스 사용자는 주의 바랍니다!
Sudo는 거의 모든 UNIX 및 Linux 기반 운영 체제에 설치된 핵심 명령으로 제공되는 가장 중요하고 강력하고 일반적으로 사용되는 유틸리티 중 하나이며, 새로운 취약점이 발견되었습니다.
문제의 취약점은 악의적인 사용자나 프로그램이 "sudoers configuration"이 루트 액세스를 명시 적으로 허용하지 않는 경우에도 대상 Linux 시스템에서 루트권한으로 임의의 명령을 실행할수 있는 sudo 보안 정책 우회 문제입니다.
Sudo는 "superuser do"의 약어로, 사용자가 환경을 전환하지 않고 다른 사용자의 권한으로 응용 프로그램 또는 명령을 실행할 수있게하는 시스템 명령으로, 대부분 루트 사용자로 명령을 실행합니다.
대부분의 Linux 배포에서 기본적으로 /etc/sudoers 파일의 RunAs 사양에있는 ALL 키워드는 관리자 또는 sudo 그룹의 모든 사용자가 시스템에서 유효한 사용자로 명령을 실행할 수 있도록 합니다.
그렇기 때문에 권한 분리는 Linux의 기본 보안 패러다임 중 하나이므로 관리자는 sudoers 파일을 구성하여 어떤 사용자가 어떤 사용자에게 어떤 명령을 실행할 수 있는지 정의 할 수 있습니다.
따라서 루트를 제외한 다른 사용자로 특정 명령을 실행할 수있는 특정 시나리오에서 이 취약점으로 인해 이 보안 정책을 우회하고 시스템을 루트권한으로 완전히 제어 할 수 있습니다.
이 버그를 악용하는 방법?
Sudod의 ID 만 -1 또는 4294967295로 입력
해당 버그는 CVE-2019-14287 로 명명 되었으며, Apple Information Security의 Joe Vennix에 의해 발견 된 이 취약점은 sudo 유틸리티가 사용자가 자신의 로그인 암호를 사용하여 암호를 요구하지 않고 다른 사용자로서 명령을 실행할 수 있도록 설계 되었기 때문에 관련이 있습니다.
더 흥미로운 점은 공격자가 이 결함을 악용하여 사용자 ID "-1"또는 "4294967295"를 지정하여 루트로 명령을 실행할 수 있다는 것입니다. 사용자 아이디를 사용자 이름으로 변환 하는 함수가 -1 또는 부호없는 동등한 4294967295를 0으로 잘못 취급 하기 때문입니다. 이는 항상 루트 사용자의 사용자 ID입니다.
-------------------
요약.
1. 관리자 권한 없이 관리자 명령 실행가능
2. 아이디 값을 음수로 사용하거나 16비트 정수 최대값(OverFlow) 사용
3. 중요 취약점.