Computer >> 컴퓨터 >  >> 네트워킹 >> 인터넷

파이어폭스가 갑자기 느려졌다면? EMET 5.5의 EAF 완화 기능 충돌 문제 해결법

문제 상황은 이렇습니다. 소프트웨어 취약점과 악성 익스플로잇으로부터 시스템을 보호하기 위해 마이크로소프트의 강력한 보안 도구인 EMET을 사용하고 있다고 가정해 봅시다. 그런데 최근 EMET를 5.5 버전으로 업그레이드한 뒤부터 파이어폭스(Firefox)가 비정상적으로 느려지고, CPU를 과도하게 사용하는 현상이 발생했습니다. 두 사건 사이에 연관성이 있으리라고 생각하지 않으실 수도 있지만, 실제로는 밀접한 관련이 있습니다. 여기서 사용된 운영체제는 Windows 8.1입니다.

이번 글에서는 문제가 되는 요인을 먼저 분리해 내고, 호환되지 않는 완화(Mitigation) 기능을 비활성화하여 문제를 해결한 과정을 소개하겠습니다. 즉, '완화 기능을 완화'시키는 것이죠.

문제의 구체적인 증상

Ubuntu 14.04와 Windows 8.1을 듀얼 부팅하는 Asus VivoBook에서, 최근 Windows 쪽에 여러 소프트웨어 업그레이드를 진행했습니다. EMET를 4.0에서 5.5로 올리고 전체 소프트웨어 스택도 함께 업데이트했죠. 그 직후 파이어폭스가 매우 느리게 동작하는 것을 발견했습니다. 실행이나 종료에만 10~15초가 걸리고, 반응 속도에 심각한 지연이 있으며, 빈 탭 하나만 열어 두었는데도 CPU 점유율이 40~50%에 달했습니다.

단계별로 문제를 해결해 나갔습니다. 먼저 모든 확장 기능과 플러그인을 비활성화한 안전 모드(safe mode)로 브라우저를 실행했지만 변화가 없었습니다. 다른 프로필로도 시험해 보았고, 최근 브라우저 버전 고유의 문제가 아닌지 확인하기 위해 Firefox 50을 Firefox 46 ESR로 다운그레이드까지 진행했습니다. 멀티 프로세스 기능인 Electrolysis 설정도 조정해 보았지만 결과는 동일했습니다.

이 시점에서 다른 변경 사항에 의한 시스템 전반의 영향일 가능성을 깨닫게 되었습니다. 가능하다면 한 번에 하나의 변경만 적용해서 요소 간의 상호 작용을 100% 정확히 파악하는 것이 얼마나 중요한지 잘 보여주는 사례입니다. 하지만 EMET이라는 또 다른 용의자가 있었기에, 이쪽도 확인해 보기로 했습니다.

파이어폭스를 EMET의 애플리케이션 목록에서 완전히 제거하자 문제가 사라졌습니다. 그런 다음 모든 완화 기능을 활성화한 상태에서 하나씩 제거해 가며 어떤 기능이 브라우저에 영향을 주는지 찾아냈습니다. 특이하게도 EMET 5.5의 EAFEAF+ 기능이 모질라의 대표 브라우저와 잘 맞지 않는 것으로 확인되었습니다. 새 버전에서 수정될 것으로 보이지만, 당장은 이 두 가지 완화 기능의 체크를 해제하는 것이 임시 해결책입니다.

왜 갑자기 문제가 생긴 걸까?

좋은 질문입니다. 마이크로소프트는 EMET과 호환되지 않는 것으로 알려지거나 신고된 도구들을 정리한 공식 호환성 목록을 운영하고 있습니다. 이 목록에는 아직 파이어폭스가 없지만, 어느 쪽이든 업데이트를 통해 곧 추가될 일이 아닐까 싶습니다.

또한 공식 가이드와 각 완화 기능의 세부 설명을 오랫동안 읽어 보았습니다. EAF는 Export Address Table Access Filtering의 약자로, 특정 핵심 DLL의 기능을 사용하려는 애플리케이션의 요청이 유효하지 않다고 판단되면 해당 시스템 호출을 차단하거나 읽기/쓰기 접근을 제한하는 역할을 합니다.

EAF+는 여기에 더해 스택 경계, 프레임 포인터 레지스터 불일치, 메모리 손상 등까지 검사 대상을 확장합니다. 이런 기능들은 디버거와 같은 소프트웨어나 샌드박싱, DRM을 사용하는 애플리케이션과 충돌할 수 있습니다. 아마도(어디까지나 추측입니다) 모질라가 샌드박싱을 통해 파이어폭스의 보안을 강화하는 작업을 진행해 왔는데, 이것이 EMET의 시스템 보호 방식과 충돌하여 시스템 호출이 차단되고, 결과적으로 브라우저의 성능 및 기능 문제가 발생하는 것으로 보입니다. 추측일 뿐이지만, 디버거를 돌려가며 검증할 만큼의 마음은 아니었습니다.

마치며

정리하자면 이것은 간단한 가이드이지만, 문제의 근본 원인은 결코 단순하지 않으며 진단하기도 상당히 까다로울 수 있습니다. EMET 완화 기능을 활성화했다는 사실 자체를 잊었거나, 무해해 보이는 업데이트 이후의 브라우저 느려짐과 연관 짓지 못할 수도 있습니다. 그럼에도 불구하고 EMET은 지난 10년간 마이크로소프트가 출시한 최고의 제품이라고 생각합니다. 다른 어떤 보안 도구보다 존재감이 덜하지만, 때로는 투명성의 바다에서 고개를 들어 자신의 존재를 드러낼 때가 있습니다. 그럴 때는 정확하고 체계적으로 접근하여 문제를 분리해 내야 합니다. 구성 요소별 검색, 알려진 깨끗한 기준선(baseline)과의 비교 등 문제 해결의 기본적인 방법론들이 모두 유용하게 쓰입니다.

그리고 EMET의 미래에 관한 중요한 질문도 남아 있습니다. 마이크로소프트는 종료일(EOL)을 약 18개월 연장한 끝에, 2018년 중반 이 도구의 지원을 종료할 예정입니다. 게다가 언젠가 Windows 10에서도 이 도구를 더 이상 지원하지 않게 될 텐데, 완화 기능들이 OS/커널 수준에서 제공되기를 바랄 뿐입니다. 마지막으로 5.5 미만의 기존 버전은 더 이상 지원되지 않으므로 현재 사용자들에게는 약간의 난관이 따릅니다. 하지만 지금 당장은 여전히 훌륭한 도구이며, 우리는 한 가지 문제를 성공적으로 해결했습니다. 그럼 즐거운 컴퓨팅 되시길 바랍니다.

그럼, 좋은 하루 되세요.