※본 글은 2020년도에 업로드한 게시글을 홈페이지 개편으로 인해 재업로드한 콘텐츠입니다. 참고 부탁드립니다.
한 보안 전문가가 윈도우에서 25개의 잠재적 취약점을 새롭게 발견했습니다. 이 중 일부는 권한 상승을 일으키기 때문에 위험할 수 있습니다. 이 취약점은 사용자 인터페이스인 win32 커널(win32k) 요소에 영향을 끼칩니다.
이 사실을 발견하고 발표한 건 이스라엘의 보안 전문가 길 다바(Gil Dabah)로, 핸들 관리자(Handle Manager) 요소의 UI 객체 참조 계수 원리를 집중적으로 분석했다고 합니다. 다바는 “원래는 사용자 모드 콜백 취약점들을 이전부터 진행해왔으며, 이번 연구도 그것의 연장선에 있었다”, “win32k 요소는 원래 사용자 모드에서 실행되도록 설계되었는데, 이 때문에 UaF 공격에 취약할 수 있습니다.”라고 말했습니다.
이번 연구에서 다바가 발견한 문제는 win32k가 객체를 파괴하는 방식에 있습니다. 이는 객체들 간의 링크 방식 때문에 발생하는 현상으로, 원래의 표적이 됐던 객체가 파괴될 때 다른 객체들도 같이 파괴될 수 있다는 것입니다.
“이를 파악한 이후 저희는 실험실에서 커널이 윈도우 생성 과정 가운데 사용자 모드로 호출된다는 사실을 악용해 부모 윈도우(parent window)가 스레드언락(ThreatUnlock) 기능에서부터 사라지도록 만드는 데 성공했습니다. 부모 윈도우가 잠겨 있더라도 파괴할 수 있었습니다.”
이렇게 부모 윈도우가 스레드언락 내부에서 파괴되면 자식 윈도우(child window)도 같이 파괴됩니다. 이 때문에 존재하지 않는 윈도우 객체가 사용되면서 UaF 조건이 성립됩니다. 권한이 없는 공격자라도 이 취약점을 익스플로잇 함으로써 UaF 공격을 할 수 있다고 다바는 경고했습니다. “다만 윈도우 객체가 사라지는 시간과 그 윈도우가 다시 사용되는 시간 사이에서 경합 조건(race condition)이 발생하게 됩니다.”
다바는 백서를 통해 자신이 발견한 취약점들의 정보와 익스플로잇 방법을 설명했습니다. 뿐만 아니라 자신이 발견한 25개 취약점 중 13개에 대한 개념증명 코드를 발표하기도 했습니다. 이 중 11개는 권한 상승 공격을 가능하게 하는 것으로 알려져 있습니다.
다바는 윈도우 10의 경우 타입아이솔레이션(TypeIsolation) 완화 기법을 통해 익스플로잇 공격을 더 어렵게 만들 수 있다고 조언했습니다. 그러나 그 아래 버전의 윈도우에서는 이 방법이 아무런 효력을 발휘하지 못한다고 덧붙이기도 했습니다.
MS는 이 문제들 중 일부를 해결했고, 대부분은 아직 남아있는 상황입니다. 대처 방법이나 위험 완화 방법도 거의 대부분 알려지지 않고 있습니다.
출처 : 보안뉴스