| 리눅스의 Snapd 패키지에서 권한 상승 취약점 발견 | 2019.02.14 |
캐노니컬이라는 곳에서 만든 앱 설치 툴...권한 상승 유발시켜
취약점의 이름은 ‘더티 속’...소켓과 관련된 문제이기 때문에 [보안뉴스 문가용 기자] 컴퓨터 소프트웨어 업체인 캐노니컬(Canonical)이 만든 Snapd 패키지에서 권한 상승 취약점이 발견됐다. 어떤 사용자라도 관리자 권한을 얻어내 리눅스 시스템 서버들의 루트에 접근하는 게 가능하다고 한다. ![]() [이미지 = iclickart] Snapd는 리눅스 사용자들이 앱을 .snap 파일 형태로 다운로드 받아 설치할 때 사용하는 것으로, 보안 업체 미싱 링크 시큐리티(Missing Link Security)의 보안 전문가 크리스 모벌리(Chris Moberly)가 여기서 CVE-2019-7304라는 취약점을 찾아냈다. 모벌리에 의하면 “취약점은 우분투 리눅스에서 기본으로 설치되는 snapd API 내에 존재한다”고 한다. 그는 개념증명용 익스플로잇도 개발했는데, “공격 성공률이 100%였다”고 한다. “우분투는 물론 그와 유사한 모든 리눅스 버전들에 이 취약점이 존재할 것으로 보고 있습니다.” 그러면서 모벌리는 이전에 발견됐던 ‘더티 카우(Dirty Cow)’ 취약점에서 이름을 따 ‘더티 속(Dirty Sock)’이라는 이름을 이 취약점에 부여했다. “CVE-2019-7304가 결국 소켓 처리 부분에서 발생하는 것이기 때문에 그런 이름을 붙였습니다.” 블로그를 통해 모벌리는 “Snapd 2.28~2.37 버전의 경우 유닉스 소켓으로의 접근 제어 기능을 수행할 때 원격 소켓 주소를 제대로 확인하지 않는다”고 설명했다. “이를 통해 로컬의 공격자가 권한이 높은 소켓 API들에 접근할 수 있고, 관리자 권한을 가져갈 수 있게 됩니다.” 모벌리는 계속해서 이 부분에 대한 기술적 세부 내용을 블로그에 공개했다. “Snapd는 로컬의 UNIX_AF 소켓에 부착된 REST API를 제공합니다. 권한이 높은 사용자에게만 공개된 API 기능들에 대한 접근 제어 기능은 해당 소켓을 통한 요청으로만 이뤄질 수 있습니다. 그런데 이 소켓에 취약점이 있는 것이므로 사실상 아무 사용자나 아무 API 기능에 접근할 수 있게 되는 겁니다.” 이렇게 API에 자유롭게 접근할 수 있게 된다면, 루트에도 접근할 수 있게 된다. 모벌리가 개발한 개념증명 코드는 이러한 점을 남용함으로써 루트 층위에서 사용자 계정을 만드는 걸 성공시킨다. “하지만 수많은 방법 중 하나만 제시했을 뿐입니다.” 그가 개발한 개념증명 코드는 총 두 개로, 하나는 dirty_sockv1이고 다른 하나는 dirty_sockv2이다. “dirty_sockv1은 우분투 SSO에 사용자 이름 및 공개 SSH 키에 대한 요청을 전송하고, 여기서 돌려받은 값을 가지고 로컬 사용자 계정을 새롭게 생성하는 기능을 가지고 있습니다. 다만 이 공격이 성공하려면 인터넷과 연결되어 있어야 하고, 로컬호스트(localhost)를 통해 SSH 서비스를 사용할 수 있어야 합니다.” dirty_sockv2의 경우, “로컬 snapd 서비스의 접근 통제 기능을 우회함으로써 권한이 높은 사용자만 접근할 수 있는 API 기능을 사용할 수 있게 해준다.” 이를 성공시키면 샌드박스를 우회하고 임의의 snapd를 설치할 수 있게 된다. “이 과정에서 새로운 사용자를 로컬 시스템에 추가할 수 있게 되는데요, 이 사용자는 수도 명령(sudo command)들을 실행할 수 있게 됩니다. dirty_sockv1과 달리 SSH 서비스를 사용하지 않아도 되며, 인터넷 연결이 없는 우분투 시스템도 공격할 수 있습니다.” 모벌리가 이 취약점을 찾아낸 건 지난 1월의 일이다. Snapd를 담당하는 캐노니컬은 금방 픽스를 발표했다. 모벌리는 캐노니컬의 빠른 대응을 칭찬하는 내용을 블로그에 올리기도 했다. “Snapd 사용자라면 2.37.1 버전을 사용하는 게 가장 좋습니다. 위 취약점이 해결된 버전이거든요.” Snapd가 사용되고 있는 리눅스는 다음과 같다. 1) 리눅스 민트(Linux Mint) 2) 리눅스 데비안(Linux Debian) 3) 리눅스 페도라(Linux Fedora) 4) 리눅스 우분투(Linux Ubuntu) 3줄 요약 1. 각종 리눅스 시스템에서 사용되고 있는 Snapd 패키지에서 취약점 발견됨. 2. 이는 소켓에서 발생하는 문제로, 악용할 경우 권한 상승 공격을 할 수 있게 됨. 3. Snapd 2.37.1이 해결된 버전. 민트, 데비안, 페도라, 우분투 관리자라면 확인해볼 필요 있음. [국제부 문가용 기자(globoan@boannews.com)] <저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지> |
|
|
|