현존하는 거의 모든 리눅스 시스템에서 발견된 취약점, 루니튜너블즈
사물인터넷 장비들 대부분 리눅스를 기반으로 하고 있는데, 이 리눅스 시스템에서 공통적으로 발견되는 취약점이 있다는 경고가 나왔다.
예외가 없지 않지만 그리 많지 않은 것으로 보이며, 익스플로잇 성공 시 파급력이 엄청나다고 한다.
공격자들이 수많은 리눅스 기반 시스템들에 접근해 높은 권한을 가져갈 수 있도록 해 주는 취약점이 발견됐다.
이 취약점은 익스플로잇 난이도가 낮으며, 리눅스 배포판 대부분에서 흔하게 사용되는 라이브러리에서 발견되고 있어 파급력이 높다.
이 취약점에는 루니튜너블즈(Looney Tunables)라는 이름이 붙었다.
루니튜너블즈의 공식 관리 번호는 CVE-2023-4911이며 CVSS를 기준으로 7.8점의 점수를 받았다.
유명 리눅스 배포판인 페도라, 우분투, 데비안이 모두 영향을 받는 것으로 분석됐다.
보안 업체 퀄리스(Qualys)가 자사 블로그를 통해 공개한 바에 의하면 루니튜너블즈는 GNU C 라이브러리(줄여서 glibc)에서 발견되고 있다고 한다.
GNU C 라이브러리는 리눅스 커널이 존재하는 모든 시스템에 존재한다고 봐도 무방하며, 그러므로 거의 모든 리눅스 시스템이 위험하다고 봐야 한다고 퀄리스는 경고했다.
GNU C 라이브러리는 시스템 호출과 기타 여러 기본 적인 기능들(예 : open, malloc, printf, exit 등)을 규정하는 역할을 담당한다.
일반적인 프로그램이라면 이런 기능들이 반드시 필요하기 때문에 GNU C 라이브러리는 핵심 중 핵심이라고 해도 과언이 아니다.
이 라이브러리 내에는 GLIBC_TUNABLES이라는 환경 변수가 있는데, 이 변수가 처리되는 과정에서 오류가 발생하는 것이 바로 루니튜너블즈다.
리눅스 기반 시스템이라고 하면 생소할 수 있는데, 사물인터넷으로 분류될 만한 장비들 중 대다수가 리눅스 기반 시스템이라고 볼 수 있다.
이런 장비들에 침투한 공격자가 권한을 상승시킬 경우 대단히 위험해질 수 있다고 보안 업체 비아쿠(Viakoo)의 부회장 존 갈라어(John Gallagher)는 설명한다.
“사물인터넷 장비라면 스마트 팩토리나 각종 산업 현장에서 사용되는 드론이나 로봇, 센서들을 말합니다.
이 장비들이 오작동을 하면 금전적 손실은 물론 물리적 피해도 발생 가능합니다.”
루니튜너블즈 취약점은 2021년 4월부터 존재해 왔던 것으로 분석됐다.
페도라 37과 38, 우분투 22.04와 23.04, 데비안 12와 13 버전에 이 취약점이 있음 역시 확실하게 확인이 되었다.
하지만 리눅스 커널과 관련된 문제이기에 퀄리스의 연구원들은 다른 리눅스 배포판에도 이 취약점이 도사리고 있을 가능성이 매우 높은 것으로 보고 있다.
다만 알파인 리눅스는 예외다. 퀄리스의 위협 분석가 사이드 아바시(Saeed Abbasi)는 “알파인은 glibc가 아니라 musl libc라는 라이브러리를 사용하기 때문”이라고 설명한다.
루니튜너블즈가 위험한 건 익스플로잇 난이도가 낮기 때문이라고 아바시는 강조한다.
“너무나 쉬운 익스플로잇 단계를 거치면 공격자는 여러 데이터에 아무렇지도 않게 접근할 수 있게 되고 시스템 경보를 자기 마음대로 울릴 수 있게 되는 등 각종 악성 행위를 실시할 수 있게 됩니다.
생산 환경에 있는 리눅스 장비가 공격에 당했다면 생산 체제를 망가트리거나 일시적으로 마비시킬 수도 있습니다. 중요한 생산 관련 데이터를 훔쳐갈 수도 있게 되고요.”
퀄리스는 9월 4일 레드햇(Red Hat) 측에만 비밀리에 해당 취약점을 알렸다.
오픈월(OpenWall)이라는 오픈소스 보안 프로젝트에는 9월 19일에 보고서를 전송했다.
두 곳은 모두 적절하게 반응했고 10월 3일 패치가 배포되기 시작했다. 레드햇, 우분투, 업스트림, 데비안, 젠투 등 주요 리눅스 배포판들이 일제히 사용자들을 위한 보안 업데이트를 발표했다.
glibc 취약점, 왜 위험한가
루니튜너블즈 취약점을 이해하려면 glibc의 ‘다이내믹 로더(dynamic loader)’라는 기능을 알아야 한다.
glibc가 프로그램을 실제로 실행시키는 것을 담당하는 기능이다. ‘프로그램을 실행시킨다’는 것 안에는 여러 가지 행위들이 포함된다.
1) 공유되는 라이브러리들을 찾아내고 할당한다
2) 공유되는 라이브러리들을 실행 파일과 연결시킨다.
3) 함수와 변수 등 각종 레퍼런스들을 정립한다
4) 프로그램 실행에 있어 방해가 될 만한 요소들을 찾아 정리하거나 사용자에게 알린다
아바시는 “보안의 관점에서 보면 다이내믹 로더는 매우 민감한 기능이자 요소라고 볼 수 있다”고 설명한다.
“공유된 라이브러리들과 관련이 있고, 여러 변수들까지 다뤄야 하기 때문에 높은 권한을 가지고 있을 수밖에 없습니다.
공격자 입장에서 이 다이내믹 로더 요소만 잘 공략하면 꽤나 높은 권한을 가져갈 수 있게 되니 관심이 쏠릴 수밖에 없습니다.
실제로 이번 취약점도 이 다이내믹 로더를 통해 공격자가 높은 권한을 가져가게 되는 게 핵심이죠.” 아바시의 설명이다.
그렇다면 GLIBC_TUNABLES 환경 변수는 무엇일까?
사용자들이 런타임 시 라이브러리의 행동 패턴을 조정할 수 있게 해 주는 것으로, 이 변수가 있어서 사용자가 매번 필요할 때마다 컴파일링 작업을 다시 하지 않아도 된다.
편리함을 높여주는 것이기 때문에 사용자들이 많다. 하지만 사용자들이 직접 값을 입력해 설정하는 것이므로, 늘 이상한 값이 입력될 위험성이 존재하고, 그럴 때 예상 외의 현상이 발동될 수 있다.
루니튜너블즈 취약점이 바로 여기에 해당한다.
이번에 배포되는 패치의 경우 사용자 입력값을 좀 더 꼼꼼하게 확인할 수 있도록 하는 절차를 추가하는 방식으로 마련됐다.
3줄 요약
1. 거의 모든 리눅스 시스템에 존재하는 새로운 취약점 발견됨.
2. 발견된 것 자체가 새롭긴 하지만 실상은 2021년 4월부터 존재해왔던 취약점.
3. 각 배포판 별로 패치를 배포하고 있으니 사용자들은 최대한 빨리 받아 적용하는 게 안전.
출처 : https://www.boannews.com/media/view.asp?idx=122421&skind=D
위 포스팅이 문제될 경우 삭제하겠습니다.
댓글 없음:
참고: 블로그의 회원만 댓글을 작성할 수 있습니다.