리눅스 커널은 많은 운영 체제의 근간을 이루는 중요한 구성 요소로, 최근 ‘SLUBStick’이라는 새로운 위협에 직면했다. 그라츠 공과대학교 연구진이 개발한 이 크로스 캐시 공격은 제한된 힙 취약점을 임의 메모리 읽기 및 쓰기 기능으로 전환하는 데 있어 99%의 성공률을 보여주고 있다.
리눅스 커널은 전통적으로 메모리 할당 과정에 영향을 미치는 다양한 취약점에 노출되어 왔다. 이러한 결함은 종종 제한된 착취 가능성을 가지고 있으며, 주로 몇 바이트의 메모리 손상으로 시스템 충돌을 일으킨다. 커널 주소 공간 레이아웃 난수화(KASLR), 감독 모드 실행 방지(SMEP), 감독 모드 접근 방지(SMAP)와 같은 전통적인 방어책은 어느 정도 이러한 위험을 완화하는 데 효과적이었다.
SLUBStick은 힙 취약점의 착취를 혁신적으로 변화시킨다. 커널의 SLUB 메모리 할당기 내에서 타이밍 부작용을 활용하여 크로스 캐시 공격의 신뢰성을 극적으로 향상시킨다. 이 방법은 공격자가 메모리 재사용을 전례 없는 정밀도로 예측하고 제어할 수 있게 하여 이러한 공격의 성공률을 약 40%에서 99% 이상으로 끌어올린다.
■SLUBStick의 기술적 메커니즘
SLUBStick은 여러 단계로 작동한다:
-타이밍 부작용 착취: 공격은 할당기의 메모리 재사용 패턴을 모니터링하기 위해 타이밍 부작용을 활용하는 것으로 시작한다.
-제어된 메모리 재할당: 공격자는 메모리 할당을 조작하여 해제된 청크가 페이지 테이블과 같은 중요한 데이터 구조에 재할당되도록 한다.
-임의 메모리 접근: 마지막으로, 공격은 페이지 테이블 항목을 덮어써서 임의의 메모리 위치에 대한 읽기 및 쓰기 접근 권한을 얻는다.
이 방법은 리눅스 커널 버전 5.9 및 6.2에서 테스트되었으며, 다양한 커널 구성에서 적용 가능함이 증명되었고, 9개의 실제 CVE에 대해 효과적이었다.
SLUBStick의 제한된 힙 취약점을 전체 시스템 손상으로 전환하는 능력은 심각한 영향을 미친다.
-권한 상승: 공격자는 루트 권한으로 권한을 상승시켜 시스템에 대한 완전한 제어를 얻을 수 있다.
-컨테이너 탈출: 이 공격은 클라우드 컴퓨팅 및 마이크로서비스 아키텍처에 중요한 컨테이너화된 환경을 벗어날 수 있다.
-지속적인 착취: 착취 후 SLUBStick은 탐지 및 복구를 복잡하게 만드는 커널 구조를 수정하여 지속성을 유지할 수 있다.
연구진은 그들의 발견을 리눅스 커널 보안 팀에 공개했으며, 즉각적인 완화 조치는 다음과 같다.
-할당기 캐시 무작위화: 캐시 할당에 무작위성을 도입하여 타이밍 부작용 공격을 저지할 수 있다.
-페이지 테이블 접근 강화: 페이지 테이블 조작에 대한 보안 통제를 강화하여 임의의 메모리 접근 위험을 줄일 수 있다.
그러나 포괄적인 해결책은 커널 메모리 관리 시스템의 근본적인 변화를 요구할 수 있으며, 이는 복잡한 운영 체제의 보안을 확보하는 데 지속적인 도전을 강조한다.
SLUBStick의 발견에 대해 전문가들은, 리눅스가 서버에서 임베디드 장치에 이르기까지 수많은 시스템에 필수적인 만큼, 이러한 취약점을 해결하는 것은 전 세계 사이버 보안을 유지하는 데 매우 중요하다고 강조했다.
★정보보안 대표 미디어 데일리시큐 / Dailysecu, Korea's leading security media!★