sudo의 힙 오버플로우 취약점이 최근 발생하였다. 요약 정리하고자 글을 남긴다.
본 취약점을 이용하면, Root 권한을 유저가 Root 권한을 획득할 수 있다.
취약점 내용을 보면 핵심은 아래와 같다.
When sudo runs a command in shell mode, either via the -s or -i
command line option, it escapes special characters in the command’s arguments with a backslash
즉 쉘 모드에서 sudoedit를 -s 또는 -i 실행하는데, 백슬레쉬에 특수기호를 입력함으로써 힙 오버 플로우를 일으켜 Root 권한을 획득하게 된다.
아래 글을 보면 도움이 될 것이다.
Hunting
과거 발생한 흔적이 있는지 헌팅 관점에서 살펴보았다.
위 글에서 보면 예제 코드가 포함되어 있는데, sudoedit를 통해서 취약점을 발생시키기 때문에 아래 코드를 통해 시스템 변화를 살펴보면 볼 수 있다.
sudoedit -s '\' `perl -e 'print "A" x 65536'`
위 로그를 실행하면 /var/log/kern.log(Ubuntu 기준) 에 아래와 같이 sudoedit 로그가 발생하게 된다. 여기서 얻을 수 있는 주요 키워드는 sudoedit segfault error libc 이다.
따라서 Threat Hunting을 진행한다면, 과거 sudoedit , segfault, error, libc 가 AND 조건으로 함께 발생한 로그가 있는지 Hunting을 진행할 수 있다. 클라우드 SIEM인 Azure Sentinel에서 Linux 환경을 분석하기 위해 syslog를 설정하였다면, 아래처럼 Hunting Query 구성이 가능할 것 같다.
query: |
// Change startdate below if you want a different timespan
let startdate = 7d;
// Pull messages from Syslog contains "sudoedit".
let RawCommands = Syslog
| where TimeGenerated >= ago(startdate)
| where SyslogMessage contains "sudoedit"
| where SyslogMessage contains "segfault"
| where SyslogMessage contains "error"
아래 글을 통해 Hunting Query를 만들면 될 것이다.
Detection
sudoedit /s 또는 /i 명령 사용에 대해서 Rule을 추가하여 공격 시도가 있는지 확인하는 방식이 유용할 것 같다.
Fix
https://www.sudo.ws 에서는 이미 버그를 해결한 버전을 배포하였고 각 운영체제에서도 적용되였다.
Ubuntu 기준으로 apt update를 통해 해결이 가능하다.
sudo apt update
sudo apt install --only-upgrade sudo
apt-cache policy sudo 버전 체크 명령을 통해 최신 버전으로 업데이트 되었는지 확인할 수 있다.
그외 운영체제들은 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3156에서 확인이 가능하다.
'Security' 카테고리의 다른 글
Splunk Phantom REST API 기본 사용 (0) | 2021.08.19 |
---|---|
Microsoft 365 Defender Ninja August 2021 special edition 공개 (0) | 2021.08.18 |
윈도우 - 로컬 계정을 통한 네트워크 공격 보호 (0) | 2020.12.29 |
Samesite Cookie - 쿠키 허용 도메인 보안 정책 (0) | 2020.12.15 |
팔로알토 - External Dynamic Link를 통한 자동 차단 구성 (0) | 2020.12.03 |