보안 제품정보


윈도우 시스템 내 CFG 보안 장치에서 설계 오류 발견 2018.03.07

수많은 윈도우 시스템에 탑재된 보안 장치, 심각한 오류 있어
설계에서부터 발생한 취약점...자세한 내용은 블랙햇 아시아 통해 공개


[보안뉴스 문가용 기자] 윈도우 OS에 탑재된 보안 장치에서 설계 오류가 발견됐다. 메모리 조작 오류의 일종으로, 공격자들이 이를 악용할 경우 보안 장치를 완전히 피해가는 게 가능하게 된다고 한다. 이에 대해서 이탈리아의 파두아대학 연구원들이 밝혀냈다.

[이미지 = iclickart]


연구원들에 의하면 이 오류는 CFG(Control Flow Guard)라고 불리는 요소 내에서 발견된다고 한다. CFG란 윈도우 8.1 버전부터 마이크로소프트가 도입시킨 것으로 ASLR처럼 소프트웨어 내 존재하는 메모리 조작 오류에 대한 공격을 방어하는 기능을 가지고 있다. 현재 5억개가 넘는 윈도우 시스템에 CFG가 존재한다.

CFG의 정확한 기능은 공격자들이 프로그램의 제어 흐름(control flow)을 하이재킹해 자신들의 의도대로 사용하는 것을 방지하는 것이다. 프로그램이 여러 기능들을 실행시키는 순서(이를 제어 흐름이라고 한다)를 그대로 지켜내는 것이 보호 원리다. 즉 합법적인 프로그램 실행 순서를 감시하고 지켜주는 것이 CFG라는 것이다.

파두아의 연구원인 안드레아 비온도(Andrea Biondo)는 “CFG는 우회 호출이나 점프를 허용하지 않는다”며 “그래서 공격자가 임의의 위치에서 프로그램이 실행되도록 하이재킹할 수 없게 된다”고 설명한다.

하지만 CFG의 이러한 보호 원리는 시스템 성능이나 호환성에 문제를 일으킬 수 있다. 그래서 마이크로소프트는 몇 가지 타협안을 마련해 도입시켰고, 이것이 공격자의 침투를 허하는 구멍이 될 수 있다고 한다. “이 구멍을 통하면 공격자들이 코드의 일부를 호출할 수 있게 됩니다. 또한 이 행위를 여러 차례 시도하면 CFG 자체를 완전히 무시할 수도 있게 됩니다.”

CFG의 제어력은 허용된 표적들이 16 바이트에 맞춰졌을 때에만 정확해진다고 비온도는 설명한다. “16 바이트가 정확히 맞지 않으면, 표적 주위에 16 바이트 부정확성(imprecision)이 생기고, 이를 공격자가 악용해서 CFG를 우회할 수 있게 되는 겁니다.”

파두아대학의 연구원들은 “윈도우 시스템 라이브러리에 대한 실험을 실시한 결과, 32 비트 시스템의 거의 모든 윈도우 애플리케이션들과 64 비트 시스템의 웹 브라우저들이 로딩하는 코드 내에서 익스플로잇이 가능한 요소들을 찾아냈다”고 밝혔다.

이렇게 CFG의 설계 오류를 공략하는 익스플로잇을 파두아대학 연구원들은 베이트 공격(BATE attack)이라고 이름 붙였다. 여기서 베이트는 Back to the Epilogue의 준말이다. 개념증명용 코드는 싱가포르에서 열릴 블랙햇 아시아에서 공개될 예정이다. 현재 이를 공개하면 윈도우 시스템에 대한 마구잡이 공격이 실시될 것이 염려되기 때문이다.

“베이트 공격은 CFG 메커니즘을 완전히 우회할 수 있게 해줍니다. 한번 CFG를 우회하면 추가 페이로드를 활용하거나 코드 재사용 기술을 써서 다른 공격을 감행할 수도 있게 됩니다. 그 동안 개발된 CFG 우회 기술은 특정 애플리케이션을 필요로 했습니다만 베이트 공격의 경우는 보통의 라이브러리들만 로딩되면 되기 때문에 실현 가능성이 매우 큽니다. 32 비트 시스템에서는 C 런타임 라이브러리만 공략하면 되기 때문에 사실상 거의 모든 것이 익스플로잇 가능합니다.”

마이크로소프트 측에서는 이에 대해 공식적인 발표가 아직 없었다. 하지만 연구원들은 해당 사실을 이미 회사 측에 보고한 것으로 보인다. 비온도는 “정확하지는 않지만, MS가 RS4 윈도우 업데이트를 통해 이 오류를 고칠 예정인 것으로 알고 있다”고 덧붙였다.
[국제부 문가용 기자(globoan@boannews.com)]

Copyrighted 2015. UBM-Tech. 117153:0515BC
<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>