상세 컨텐츠

본문 제목

시스템 해킹을 허용하는 리눅스 커널 취약점 발견

국내외 보안동향

by 알약4 2021. 4. 30. 14:00

본문

 

 

An issue in the Linux Kernel could allow the hack of your system

 

CVE-2020-28588로 등록된 리눅스 커널의 정보 공개 취약점으로 인해 KASLR(Kernel Address Space Layout Randomization) 우회가 가능할 수 있는 것으로 나타났습니다.

 

KASLR은 메모리 충돌 취약점의 악용을 방지하기 위해 설계된 컴퓨터 보안 기술입니다.

 

해당 취약점은 리눅스를 실행하는 32비트 ARM 기기의 /proc/pid/syscall 기능에 존재하며, 트리거될 경우 취약한 기기의 커널 스택 메모리에 있는 데이터를 노출할 수 있습니다.

 

최근 Cisco Talos는 리눅스 커널에서 정보 유출 취약점을 발견했습니다.

 

이 취약점은 연구원이 파일을 읽을 때 적절하지 않은 숫자 유형 간의 변환을 찾아낸 후 발견되었습니다.

 

Cisco Talos에서는 보안 권고를 통해 아래와 같이 언급했습니다.

 

TALOS-2020-1211 (CVE-2020-28588)은 정보 공개 취약점으로 공격자가 스택 메모리의 내용을 열람하도록 허용할 수 있습니다. 이 취약점은 패치된 리눅스 커널을 실행하는 32비트 ARM 기기인 Azure Sphere (버전 20.10)에서 처음으로 발견했습니다.”

 

공격자는 정식 리눅스 OS 파일인 /proc/pid/syscall를 읽어 이 취약점을 악용할 수 있어 네트워크에서 원격으로 탐지하는 것이 불가능합니다. 악용에 성공할 경우 공격자는 이 정보 유출 취약점을 통해 패치되지 않은 리눅스 취약점을 추가로 악용할 수 있습니다.”

 

전문가들은 unsigned long4바이트일 경우 args 인수의 첫 24 바이트만이 기록되고 나머지 24바이트는 변경되지 않는다고 설명했습니다. 초기화되지 않은 스택 메모리 24바이트는 결국 출력되어 KASLR 우회로 이어질 수 있습니다.

 

이 파일은 시스템 호출 번호와 현재 프로세스에서 실행되고 있는 시스템 호출의 인수 레지스터, 스택 포인터 값과 프로그램 카운터 레지스터 값을 노출시킵니다. 대부분의 시스템 호출에서 더 적은 레지스터를 사용하지만, 인수 레지스터 6개 값 모두가 노출됩니다.”

 

Talos는 해당 메모리 취약점을 트리거하는 명령을 공개했습니다.

 

- # echo 0 > /proc/sys/kernel/randomize_va_space (# 더욱 깨끗한 아웃풋을 위해 필요함)
- $ while true; do cat /proc/self/syscall; done | uniq (# 변경 대기)
- $ while true; do free &>/dev/null; done (# 변경 트리거)

 

리눅스 사용자는 리눅스 커널 취약점을 패치한 버전 5.10-rc4, 5.4.66, 5.9.8로 업데이트하는 것이 권장됩니다. 

 

 

 

 

출처:

https://securityaffairs.co/wordpress/117354/security/linux-kernel-flaw-2.html

https://blog.talosintelligence.com/2021/04/vuln-spotlight-linux-kernel.html

관련글 더보기

댓글 영역