| 작년에 나온 더티 카우 취약점 패치, 완전하지 않았다 | 2017.12.01 |
리눅스 커널에서 발견된 취약점...로컬 권한 상승 가능케 해
안드로이드에서도 가능해 구글이 패치 발표...그러나 불완전한 해결책 [보안뉴스 문가용 기자] 이른 바 더티 카우(Dirty COW)라는 취약점이 작년 리눅스 시스템에서 발견됐고, CVE-2016-5195로 분류된 바 있다. 비밀 읽기 전용 메모리 매핑의 COW(copy-on-write) 파손 시 리눅스 커널의 메모리 서브시스템에서 해결하는 방식의 경합 조건 때문에 존재하는 취약점이라고 당시 보안 전문가 필 오이스터(Phil Oester)가 밝혔었다. 쉽게 말해 읽기 전용 파일에 쓰기가 가능해지는 버그로써, 이를 익스플로잇하면 로컬의 공격자가 권한을 상승시킬 수 있게 된다. ![]() [이미지 = iclickart] 이 취약점은 리눅스 외에 안드로이드에도 영향을 주는 것으로 밝혀졌다. 심지어 콘테이너로 격리시켜도 소용이 없다고 한다. 그래서 구글은 1년 전에 이미 후다닥 패치를 내놓았지만, 그 조치가 무색하게 안드로이드 기기들을 겨냥한 더티 카우(Dirty COW) 공격이 새롭게 개발돼 나타나기도 했다. 바로 지난 9월에도 더티 카우를 겨냥한 멀웨어가 발견되기도 했다. 필 오이스터에 따르면 더티 카우 취약점은 get_user_pages라는 함수에 영향을 준다. get_user_pages 함수는 가상의 주소들 뒤에 있는 실제 물리적 페이지들로 접근하는 기능을 가지고 있다. 그러니 이를 조작하는 등 악용하면 가상의 주소를 넘어 실제 페이지에 뭔가를 쓸 수 있게 된다. 구글이 작년에 배포한 픽스는 이러한 요청을 아예 차단하도록 만들었어야 하는데 그렇게 하지 않았다. 대신 COW 사이클을 진행했었다는 사실을 함수가 기억하도록 만들었다. 보안 전문가들은 이 방식에 대해 “THP(Transparent Huge Pages)와 PMD(Page Medium Directory)를 활용하면 이 취약점은 여전히 익스플로잇 가능하다”며 “불완전하다”고 판명했다. 더티 카우 패치 코드 중 THP와 연관이 있는 코드에 can_follow_write_pmd라는 함수가 있는데, 이것이 또 다른 문젯거리가 될 수 있다는 것이다. 이는 PMD의 can_follow_write_pte에도 적용 가능하다. 이는 패치가 나왔지만 여전히 비슷한 방식으로의 공격이 가능하다는 뜻으로, 보안 전문가들은 이미 여러 가지 가상의 공격 시나리오와 익스플로잇 개념증명까지도 개발해냈다. 또한 이 취약점은 지난 주 CVE-2017-1000405로 또 다시 분류되기도 했다. 이 모두가 작년에 했던 일을 한 번 더 한 꼴이다. 보안 매체 시큐리티위크(Security Week)는 더티 카우 공격이 반복해서 일어난 것에 대해 “취약점이 발견되었으니 큰일 났다는 소식에는 사람들이 큰 관심을 갖고 각종 SNS에 퍼가지만, 그에 대한 패치가 나왔다는 소식에는 심드렁하다”며 “이건 일반 사용자뿐만 아니라 보안 업계의 전문가라는 사람들도 그렇다”며 꼬집었다. 구글이 내놨다던 그 패치가 완전하지 않아서 아직도 공격이 일어나고 있는데, 아무도 그 패치가 완전하다는 사실을 1년 동안이나 알아채지 못했다는 게 그 증거라고 매체는 말했다. 보안 전문가들은 “패치 감사(patch auditing) 역시 개발의 생애주기 내에 포함시켜야 한다”고 주장하기도 했다. “불완전한 패치가 오히려 문제를 증식시키기도 하고, 이런 일이 점점 더 잦게 발생합니다. 리눅스 같은 오픈소스에서만 이런 문제가 발생하는 것이 아닙니다. 제대로 된 패치만이 문제를 막습니다.” [국제부 문가용 기자(globoan@boannews.com)] <저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지> |
|
|
|