Condividi tramite


맬웨어로부터 사용자 보호

Windows 8과 관련하여 많이 거론되고 있는 주제 중 하나는 Windows 컴퓨팅 환경의 안전, 보안 및 신뢰성을 확보하는 것입니다. 이러한 목표를 달성하기 위해 매우 다양한 솔루션을 제공하는 동시에 폭넓은 업계 파트너와 긴밀하게 협력하고 있습니다. Windows 8에서는 관련 기능들을 꾸준히 개선하여 사용자가 항상 PC를 보호하고 관리하는 방법을 선택할 수 있을 뿐 아니라 세부적으로 제어할 수도 있습니다. Windows 8에서는 Defender를 통해 한층 강화된 보호 기능을 제공하여 광범위한 잠재 위협을 사전에 방지합니다. 본 게시물은 신뢰성 및 보안 팀의 그룹 프로그램 매니저인 Jason Garms가 작성했으며 여러 팀이 협력한 작업 내용이 수록되어 있습니다. - Steven

끊임없이 변화하는 악성 소프트웨어('맬웨어')로부터 사용자를 보호하기 위해 Windows 8 개발에서 기울이고 있는 몇 가지 노력을 소개하고자 합니다. 이 글에서는 맬웨어가 사용하는 공격 코드로부터 사용자를 보호하는 위험 완화 기능이 어떻게 개선되었는지 살펴보고, 모든 종류의 맬웨어로부터 실시간 보호를 제공하는 Windows Defender에서 개선된 기능과, URL 및 응용 프로그램 신뢰도를 사용한 소셜 엔지니어링 공격 방지에 대해 알아보겠습니다.

현재 상황

범죄 공격이 날로 교묘해져 가면서, 맬웨어는 기존의 일반 장치뿐 아니라 태블릿, 휴대전화 등의 모바일 기기에서 인터넷을 사용하는 모든 사람을 대상으로 기본적 공격 수단이 되고 있습니다. 맬웨어는 모든 OS와 브라우저를 공격 대상으로 삼는데, 최근 몇 년 사이에는 응용 프로그램을 대상으로 하는 범죄 공격이 크게 늘어났습니다.

범죄자들은 소셜 엔지니어링을 통해 사용자를 위험에 빠트리는 작업을 수행하도록 유도하기도 합니다. 점차 증가하는 소셜 엔지니어링의 공격 방식은 일반적으로 온라인 광고 캠페인을 사용하여 컴퓨터에 맬웨어를 설치하는 사이트로 사용자를 유인하는 것입니다.

맬웨어를 쉽게 배포하기 위해 범죄자들은 믿을 만한 취약성 공격 코드를 구입하고 있는 실정이어서 이러한 공격 코드 제작과 관련해서 일종의 경제 활동이 이루어지고 있습니다. 즉, 범죄자들은 맬웨어로 수입을 올리므로 맬웨어를 대량으로 제작하고, 하루 몇 차례씩 수시로 업데이트하며, 더 정교하게 만들고 규모를 늘리는 등 최신 맬웨어를 유지하기 위해 여러모로 투자하고 있습니다. 일부 맬웨어는 상용 응용 프로그램에 맞먹을 정도로 정교합니다.

설계 초기부터 안전을 고려한 개발

개발 팀은 보안 개발 라이프사이클(SDL)을 사용하여 최고의 보안 설계, 개발 및 테스트 방식을 사용하여 Windows를 빌드하고 있습니다. 주요 내용은 다음과 같습니다.

  • 위협 모델링 및 보안 설계 검토. 설계 과정에서 범죄자가 어떤 방식으로 기능과 시나리오를 공격할 수 있을지 고려하고, 이러한 분석 내용을 설계에 반영합니다.
  • 보안 코드 작성. 적절한 교육과 코드 품질 도구를 통해 Windows 소스 코드를 작성할 때 발생하는 일반적인 코딩 문제를 방지할 수 있습니다.
  • 취약점 공격 테스트. 보안 엔지니어는 특정 시나리오를 구성하는 모든 기능들을 공격자의 관점에서 검토합니다.
  • 보안 코드 검토. 매우 민감한 구성 요소에 대해서는 추가로 보안 중심의 코드 검토를 실시합니다.
  • 보안 도구. 취약점을 찾고 악용하는 소프트웨어 기술의 최신 현황이 수시로 업데이트되는 도구들을 통해 기존 코드를 개선할 수 있는 확장 가능한 솔루션을 제공합니다.

공격 코드를 쉽게 생성하지 못하도록 개선된 Windows 8

Windows XP SP2에서는 보안 취약성에 대해 믿을 만한 공격 코드를 개발하기 어렵게 만드는 위험 완화 방어 체계를 구축하기 시작했습니다. 하나의 위험 완화 기능으로 모든 종류의 공격 코드를 차단할 수 있기 때문에 이후 출시된 Windows 버전에서도 꾸준히 이러한 위험 완화 기능을 확장하고 개선해 왔습니다. Windows 8에서는 일반적인 공격 가능성을 더 줄일 수 있도록 위험 완화 기능이 개선되었습니다. 개선된 기능의 몇 가지 예를 들면 다음과 같습니다.

  • ASLR(Address Space Layout Randomization). Windows Vista에서 처음 도입된 ASLR은 메모리에 있는 대부분의 코드와 데이터 위치를 무작위로 섞어서 코드와 데이터가 모든 PC에서 동일한 주소에 있을 것이라는 가정을 빗나가게 합니다. Windows 8에서는 ASLR의 보호 기능을 보다 많은 부분으로 확장했으며, ASLR을 무력화시키는 것으로 알려진 많은 기술을 차단하도록 무작위 지정 기능을 강화하는 등 개선된 기능을 도입했습니다.
  • Windows 커널. Windows 8에서는 이전에 사용자 모드 응용 프로그램에만 적용되던 Windows 커널에도 많은 위험 완화 기능을 도입하여 가장 일반적인 유형의 위협을 막아주는 보호 효과가 더 뛰어납니다. 예를 들어, 사용자 모드 프로세스에서 64K의 낮은 프로세스 메모리를 할당하는 것을 방지하여 모든 형태의 커널 모드 NULL 역참조 취약성이 악용되는 것을 막습니다. 그 밖에도 커널 풀 메모리 할당자에 무결성 검사를 추가하여 커널 풀을 손상시키는 공격의 위험을 해소합니다.
  • Windows 힙. 응용 프로그램에 필요한 메모리는 Windows 사용자 모드 힙에서 동적으로 할당됩니다. Windows 8 힙의 주요 설계 변경을 통해 새로운 무결성 검사의 형태로 보호 기능을 한층 강화하여 많은 공격 코드 기술을 효과적으로 방어합니다. 또한 Windows 힙은 할당 순서를 무작위로 지정하여 공격 코드가 예상 가능한 개체의 위치를 악용하지 못하도록 합니다. 이는 ASLR이 성공적으로 사용된 것과 같은 원리입니다. 이와 함께 특정 유형의 힙 할당에 보호 페이지를 추가하여 힙의 오버런을 이용하는 공격 코드의 활동을 효과적으로 방지합니다.
  • Internet Explorer. 'Use-after-free' 취약성은 지난 2년 동안 Internet Explorer에서 보고된 전체 취약성 중 거의 75%를 차지했습니다. Windows 8에서는 유효하지 않은 가상 기능 테이블을 만들지 못하게 함으로써 공격을 더욱 어렵게 만드는 보호 기능을 Internet Explorer에 구현했습니다. Internet Explorer는 Windows 8에서 제공하는 ASLR 개선 기능을 완벽하게 활용합니다.

PC에서 맬웨어 차단

인터넷에 연결되는 모든 장치는 효과적인 맬웨어 보호 기능을 반드시 갖춰야 하며, 현재 판매되는 거의 모든 Windows PC에는 기존의 맬웨어 방지 솔루션이 포함되어 있습니다. (단, 사용 기간이 제한되거나 평가판인 경우가 많습니다.)

2009년 10월에 Windows 7이 출시된 후 곧바로 수행된 원격 분석 결과에 따르면 거의 모든 Windows 7 PC에 최신 맬웨어 방지 소프트웨어가 설치되어 있는 것으로 나타났습니다. 그러나, 몇 개월 후부터는 맬웨어 방지 소프트웨어의 사용이 매월 감소 추세를 보여 이러한 소프트웨어의 시험 사용 기간이 만료되었음을 시사했습니다. 1년 후에는 Windows 7 PC의 최소 24% 이상이 최신 맬웨어 방지 보호 기능을 사용하고 있지 않았습니다. 또한 데이터 분석 결과, 보호되지 않은 PC는 오랜 기간 이렇게 보호되지 않은 상태로 유지되는 경향을 보였습니다. 맬웨어 방지 소프트웨어의 업데이트가 1주만 늦어져도 새로운 맬웨어로부터 PC를 보호하는 능력이 현저히 떨어집니다.

모든 Windows 8 사용자는 기존 맬웨어 방지 소프트웨어를 통해 업계에서 인정하는 효과적인 수준으로 보호받을 수 있으므로 안심할 수 있습니다. 수시로 업데이트되어 Windows 8 PC를 보호할 수 있는 훌륭한 맬웨어 방지 솔루션들이 다양하게 제공되고 있고, 대부분의 PC 제조업체는 이러한 솔루션을 설치한 상태로 Windows PC를 출고할 것입니다.

Windows Defender

다른 솔루션이 설치되어 있지 않은 경우에는 Windows 8에서 대폭 개선된 Windows Defender 버전을 통해 사용자의 PC를 보호합니다.

모든 종류의 맬웨어에 대한 보호 강화. 개선된 Windows Defender로 바이러스, 웜, 봇, 루트킷 등 모든 종류의 맬웨어 공격이 효과적으로 방지됩니다. 이를 위해 최신 Microsoft 맬웨어 방지 엔진과 함께 Windows Update에서 Microsoft 맬웨어 보호 센터를 통해 주기적으로 제공하는 모든 종류의 맬웨어 서명 집합이 사용됩니다. 확장된 서명 집합은 스파이웨어와 애드웨어, 사용자 동의 없이 설치된 소프트웨어에 대한 서명만 포함했던 이전 버전에 비해 대폭 개선되었습니다.

또한 새로운 Windows Defender는 맬웨어를 실시간으로 탐지하고 파일 시스템 필터를 사용하여 맬웨어의 위협을 방어하는 기능을 제공하며, Window 8의 새로운 보호 기능인 Windows 보안 부팅과 연동됩니다.

UEFI 2.3.1 사양에 정의된 UEFI 기반의 보안 부팅을 지원하는 PC를 사용하는 경우, Windows 보안 부팅을 이용하여 모든 펌웨어와 펌웨어 업데이트의 보안을 유지하고, 맬웨어 방지 드라이버에 이르기까지 전체 Windows 부팅 경로를 외부에서 변경하지 못하도록 할 수 있습니다. 보안 부팅을 사용하면 부팅 경로에서 올바르게 서명되고 유효성이 검증된 코드만 로드합니다. 그러면 부팅이나 재시작 과정에서 악성 코드가 로드되지 않으며, 부팅 섹터 및 부팅 로더 바이러스뿐 아니라 드라이버로 가장해 침입하려는 부트킷과 루트킷 맬웨어도 쉽게 차단할 수 있습니다.

맬웨어 방지 파트너는 Windows Defender가 사용하는 보안 부팅 인터페이스와 모든 API를 동일하게 사용하여 Windows 고객에게 한층 강화된 보호를 제공할 수 있습니다.

  • 사용자 경험 개선. Windows Defender는 대부분의 일상적 작업에 방해가 없도록 설계되었으며 조치가 필요하거나 꼭 알아야 할 중요한 정보가 있을 때만 사용자에게 알림을 제공합니다. 또한 Windows Defender는 새로운 Windows 8 유지 관리 스케줄러를 사용하여 작업 중단을 최소화합니다.
  • 성능 개선. 기존의 맬웨어 방지 기술은 시스템 성능에 영향을 미치는 것으로 잘 알려져 있습니다. 맬웨어 방지 소프트웨어를 실행하면 파일 복사와 부팅 등 주요 작업을 처리하는 시간이 두 배로 늘어나는 경우도 많습니다. 지난 주 블로그 게시물에서 알아본 바와 같이, 시스템 성능을 높이기 위해 많은 개발자가 협력하고 있으며, Windows Defender는 강력한 보호 수준을 유지하면서 Windows 7의 일반적인 맬웨어 방지 솔루션과 비교하여 모든 핵심 시나리오에서 성능을 크게 개선합니다. 예를 들어, Windows Defender의 모든 보호 기능이 작동했을 때 부팅 시간이 불과 4% 지연되지만, 부팅 중 CPU 시간은 75%로 크게 줄어들고 디스크 I/O는 약 50MB로 감소할 뿐 아니라 최대 작업 용량이 약 100MB까지 줄어듭니다.

이러한 개선 기능은 에너지 효율성을 높이는 효과도 가져오므로 결과적으로 Windows Defender를 사용하면 소모 전력이 감소하고 배터리 수명은 늘어납니다.

Windows 8 개발 과정에서 맬웨어 방지 파트너와 지속적으로 협력하고 있으므로 사용자가 어떤 맬웨어 방지 솔루션을 선택하더라도 Windows PC는 최상의 사용 경험을 제공할 수 있습니다. 파트너에게 Windows Defender의 성능 개선을 위한 설계 방법의 기술적 세부 사항 등 다양한 정보를 제공하고 있으므로, 파트너사 제품도 이와 같이 개선할 수 있는 기회가 주어집니다.

Internet Explorer뿐 아니라 Windows에 유용한 Microsoft SmartScreen

기존의 맬웨어 방지 소프트웨어는 공격을 방어하고 조정하는 데 매우 중요한 역할을 합니다. 그러나 신뢰도 기반 기술은 기존의 맬웨어 방지 서명을 얻기 전까지 소셜 엔지니어링 공격, 특히 합법적 소프트웨어 프로그램으로 가장한 맬웨어를 효과적으로 방지할 수 있습니다.

Windows 8은 응용 프로그램을 실행하고 Internet Explorer를 탐색할 때 신뢰도 기반 기술을 이용하여 시스템을 보호합니다.

SmartScreen 필터는 처음 출시된 이래 URL 신뢰도를 사용하여 Internet Explorer 고객을 대상으로 한 15억 건 이상의 맬웨어 공격 시도와 1억 5천만 건 이상의 피싱 공격 시도를 막았습니다. Internet Explorer 9에서 SmartScreen에 추가된 새로운 기능인 응용 프로그램 신뢰도는 방어막을 한층 더 보강하여 URL 신뢰도와 기존의 맬웨어 방지로 공격을 감지하지 못하는 경우에 보다 안전한 결정을 내리도록 도와줍니다. 원격 분석 자료에 따르면 Internet Explorer 9 사용자의 95%가 SmartScreen 응용 프로그램 신뢰도 경고를 받았을 때 맬웨어를 삭제하거나 실행하지 않는 것으로 나타났습니다.

Internet Explorer 외에도 다양한 경로를 통해 인터넷에서 응용 프로그램을 다운로드할 수 있으므로, Windows에서는 이제 인터넷에서 가져온 응용 프로그램을 처음으로 실행할 때 SmartScreen을 사용하여 응용 프로그램 신뢰도 검사를 수행합니다.

Windows 7에서는 이러한 다운로드 응용 프로그램을 실행할 때 사용자에게 다음과 같은 알림 메시지가 표시됩니다.

Windows 7의 보안 경고: 게시자를 확인하지 못했습니다. 그래도 이 소프트웨어를 실행하시겠습니까? 실행/취소; 이 파일에는 파일의 게시자 확인을 위한 올바른 디지털 서명이 없습니다.

Windows 8에서는 신뢰도가 구축되지 않아 위험성이 높은 응용 프로그램을 실행할 때만 SmartScreen이 알림을 제공합니다.

Windows 8 개발자 프리뷰의 보안 경고: [Windows protected your PC; Windows SmartScreen prevented an unrecognized program from starting. Running the program might put your PC at risk.](PC 보호; Windows SmartScreen에서 인식되지 않은 프로그램을 시작하지 못하도록 했습니다. 프로그램을 실행하면 PC 보안이 손상될 수 있습니다.) 이와 함께 [Run Anyway](실행) 또는 [Don't Run](실행 안 함) 단추가 제공됩니다.

신뢰도가 구축된 응용 프로그램을 사용할 경우 응용 프로그램을 클릭하면 Windows 7에서 표시되던 프롬프트가 나타나지 않고 바로 실행되므로, 단순하고 깔끔한 경험을 누릴 수 있습니다.

SmartScreen은 다운로드할 때 파일에 지정되는 마커를 사용하여 신뢰도 검사를 수행합니다. 모든 주요 웹 브라우저와 많은 메일 클라이언트, IM 서비스가 다운로드한 파일에 '웹 표식(mark of the web)'으로 알려진 이 마커를 추가하고 있습니다.

일반 사용자들은 SmartScreen 프롬프트를 1년에 한 번 이상 보지 않을 것으로 예상되며 프롬프트가 표시되는 경우에는 위험성이 높다는 것을 뜻합니다. 원격 분석 자료에 따르면 Internet Explorer 9를 통해 다운로드한 응용 프로그램의 92%가 신뢰도가 구축되어 아무 경고도 표시되지 않은 것으로 나타났습니다. 또한 응용 프로그램 신뢰도 경고가 표시되는 경우 이를 실행할 때 맬웨어 감염 위험은 25-70%로 나타났습니다. SmartScreen은 컴퓨터 사용에 익숙치 않은 사람이나 어린이가 무심코 이 경고를 무시하지 않도록 사용자에게 관리 권한을 부여합니다.

Internet Explorer에서 이러한 방식으로 매우 탁월한 효과를 얻었으며 다양한 Windows 시나리오에도 이러한 이점을 실현하게 되었습니다.

아래 비디오에서 Windows Defender, SmartScreen URL 및 응용 프로그램 신뢰도를 실제 사용하는 모습을 확인할 수 있습니다.

이 HTML5 비디오는 현재 브라우저에서 지원되지 않습니다.

다른 미디어 플레이어로 보려면 이 비디오를 다운로드하십시오.
고화질 MP4 | 저화질 MP4

요약하면 Windows 8에서는 맬웨어로부터 보호 수준을 높이기 위해 다양한 접근 방식이 시도되었습니다. 예를 들면 기본적으로 보안성을 갖춘 SDL 프로세스 사용, 맬웨어가 사용하는 공격 코드로부터 사용자를 보호하는 위험 완화 기능의 구현과 업그레이드, 모든 종류의 맬웨어에 대해 실시간 보호를 제공하는 Windows Defender의 기능 개선, URL 및 응용 프로그램 신뢰도를 사용한 소셜 엔지니어링 공격 방지 등이 있습니다.

감사합니다.

- Jason Garms