보안 게시판

Microsoft 보안 게시판 MS13-103 - 중요

ASP.NET SignalR의 취약성으로 인해 권한 상승(2905244)

게시 날짜: 2013년 12월 10일

버전: 1.0

일반 정보

요약

이 보안 업데이트는 ASP.NET SignalR에서 개인적으로 보고된 취약성을 해결합니다. 공격자가 특별히 제작된 JavaScript를 대상 사용자의 브라우저에 다시 반영하는 경우 이 취약성으로 인해 권한 상승이 허용될 수 있습니다.

이 보안 업데이트는 ASP.NET SignalR 버전 1.1.0, 1.1.1, 1.1.2, 1.1.3 및 2.0.0 및 지원되는 모든 Microsoft Visual Studio Team Foundation Server 2013 버전에 중요 등급이 지정됩니다. 자세한 내용은 이 섹션의 하위 섹션인 영향을 받는 소프트웨어 및 영향을 받지 않는 소프트웨어를 참조하세요.

보안 업데이트는 ASP.NET SignalR이 사용자 입력을 제대로 인코딩하도록 하여 취약성을 해결합니다. 취약성에 대한 자세한 내용은 다음 섹션인 취약성 정보 아래에서 특정 취약성 항목에 대한 FAQ(질문과 대답) 하위 섹션을 참조하세요.

권장 사항

ASP.NET SignalR을 사용하는웹 애플리케이션을 개발하는 고객의 경우:
ASP.NET SignalR 기능을 사용하는 웹 애플리케이션을 개발하는 고객은 해당 환경에서 ASP.NET SignalR을 업데이트하는 방법에 대한 자세한 지침은 이 공지의 Security UpdateDeployment 섹션에 있는 업데이트 지침을 따르는 것이 좋습니다.

Microsoft Visual Studio Team Foundation Server2013 설치를실행하는고객의경우:
자동 업데이트를 사용하도록 설정하고 Microsoft Visual Studio Team Foundation Server 2013을 실행하는 고객의 경우 업데이트가 자동으로 다운로드되고 설치됩니다. 자동 업데이트를 사용하도록 설정하지 않은 고객은 업데이트를 검사 이 업데이트를 수동으로 설치해야 합니다. 자동 업데이트 의 특정 구성 옵션에 대한 자세한 내용은 Microsoft 기술 자료 문서 294871 참조하세요.

관리자 및 엔터프라이즈 설치 또는 이 보안 업데이트를 수동으로 설치하려는 최종 사용자의 경우 고객이 업데이트 관리 소프트웨어를 사용하거나 Microsoft 업데이트 서비스를 사용하여 업데이트를 검사 최대한 빨리 업데이트를 적용하는 것이 좋습니다.

이 공지의 뒷부분에 있는 검색 및 배포 도구 및 지침 섹션도 참조하세요.

기술 자료 문서

기술 자료 문서 2905244
파일 정보
SHA1/SHA2 해시
알려진 문제 None

영향을 받는 소프트웨어 및 영향을 받지 않는 소프트웨어

영향을 받는 버전 또는 버전을 확인하기 위해 다음 소프트웨어가 테스트되었습니다. 다른 버전 또는 버전은 지원 수명 주기를 지나거나 영향을 받지 않습니다. 소프트웨어 버전 또는 버전에 대한 지원 수명 주기를 확인하려면 Microsoft 지원 수명 주기를 참조하세요.

영향을 받는 소프트웨어 

개발자 도구 최대 보안 영향 집계 심각도 등급 업데이트 바꾸기
ASP.NET SignalR 1.1.x[1] \ (2903919) 권한 상승 Important None
ASP.NET SignalR 2.0.x[1] \ (2903919) 권한 상승 Important None
Microsoft Visual Studio Team Foundation Server 2013 \ (2903566) 권한 상승 Important None

[1]ASP.NET SignalR 기능을 지원하는 웹 애플리케이션을 호스트하는 Windows 서버에 적용됩니다. 다운로드에만 사용할 수 있는 업데이트는 버전 1.1.0, 1.1.1, 1.1.2 및 1.1.3 및 버전 2.0.0을 지원되는 최신 버전(이 공지 날짜 기준으로 1.1.4 및 2.0.1)으로 업데이트합니다. 자세한 내용은 이 공지 의 보안 업데이트 배포 섹션을 참조하세요.
** **

영향을 받지 않는 소프트웨어

소프트웨어 및 운영 체제
ASP.NET SignalR 1.0.0
ASP.NET SignalR 1.0.1
Microsoft Visual Studio .NET 2003 서비스 팩 1
Microsoft Visual Studio 2005 서비스 팩 1
Microsoft Visual Studio Team Foundation Server 2005 서비스 팩 1
Microsoft Visual Studio 2008 서비스 팩 1
Microsoft Visual Studio Team Foundation Server 2008 서비스 팩 1
Microsoft Visual Studio 2010 서비스 팩 1(설치 관리자)
Microsoft Visual Studio Team Foundation Server 2010 서비스 팩 1
Microsoft Visual Studio LightSwitch 2011
Microsoft Visual Studio 2012
Microsoft Visual Studio Team Foundation Server 2012

업데이트 FAQ

ASP.NET SignalR이란? 
ASP.NET SignalR은 실시간 웹 기능 개발을 간소화하는 ASP.NET 개발자를 위한 라이브러리입니다. ASP.NET SignalR은 JavaScript를 통해 서버와 클라이언트 간의 양방향 통신을 허용하므로 서버가 사용 가능해지면 즉시 연결된 클라이언트에 콘텐츠를 푸시할 수 있습니다(푸시 기능). ASP.NET SignalR에 대한 자세한 내용은 ASP.NET SignalR에 대한 자세한 내용을 참조하세요.

어떻게 할까요? 버전을 결정합니다.ASP.NETSignalRare가 시스템에 설치되었나요? 
시스템에 배포된 ASP.NET SignalR 버전을 확인하려면 시스템 하드 드라이브에서 "SignalR"을 검색합니다. 검색에서 반환되는 Microsoft.AspNet.SignalR.Core.dll 파일의 속성을 확인하여 해당 버전 번호를 표시합니다. 버전 1.1.4 이전의 모든 1.1.x 버전은 취약하며 업데이트해야 합니다. 버전 2.0.1 이전의 모든 2.0.x 버전은 취약하며 업데이트해야 합니다. 발견된 1.0.x 버전은 취약하지 않습니다.

ASP.NET SignalR 버전을 업그레이드할 어떻게 할까요? 있나요?
Visual Studio Team Foundation Server 2013과 함께 설치된 ASP.NET SignalR의 인스턴스는 Microsoft 업데이트를 통해 업데이트됩니다. 그러나 개발자 시스템 및 웹 애플리케이션 서버에 있는 ASP.NET SignalR의 다른 인스턴스는 이 공지의 보안 업데이트배포 섹션에 정의된 프로세스를 사용하여 업데이트해야 합니다.

이 업데이트는 ASP.NET SignalR의 내 버전을 업그레이드합니까?  
아니요. 업데이트는 시스템에 설치된 패치 버전을 업데이트하지만 주 버전 또는 부 버전을 업그레이드하지는 않습니다. 이 공지 릴리스를 기준으로 ASP.NET SignalR의 두 가지 주 버전(버전 1.1.x 및 2.0.x)이 지원됩니다. 업데이트는 1.1.x 버전을 1.1.4로, 2.0.x 버전을 2.0.1로 업데이트합니다.

이 보안 게시판에 설명된 소프트웨어의 이전릴리스를 사용하고 있습니다. 제가 뭘 해야 하나요? 
이 공지에 나열된 영향을 받는 소프트웨어는 영향을 받는 릴리스를 확인하기 위해 테스트되었습니다. 다른 릴리스는 지원 수명 주기를 지났습니다. 제품 수명 주기에 대한 자세한 내용은 Microsoft 지원 수명 주기 웹 사이트를 참조하세요.

소프트웨어의 이전 릴리스가 있는 고객은 취약성에 대한 잠재적 노출을 방지하기 위해 지원되는 릴리스로 마이그레이션하는 것이 우선되어야 합니다. 소프트웨어 릴리스에 대한 지원 수명 주기를 확인하려면 수명 주기 정보용 제품 선택을 참조하세요. 이러한 소프트웨어 릴리스의 서비스 팩에 대한 자세한 내용은 서비스 팩 수명 주기 지원 정책을 참조하세요.

이전 소프트웨어에 대한 사용자 지정 지원이 필요한 고객은 Microsoft 계정 팀 담당자, 기술 계정 관리자 또는 적절한 Microsoft 파트너 담당자에게 사용자 지정 지원 옵션에 문의해야 합니다. Alliance, Premier 또는 Authorized Contract가 없는 고객은 현지 Microsoft 영업 사무소에 문의할 수 있습니다. 연락처 정보는 Microsoft Worldwide Information 웹 사이트를 참조하고, 연락처 정보 목록에서 국가를 선택한 다음, [이동]을 클릭하여 전화 번호 목록을 확인합니다. 전화를 걸 때 로컬 프리미어 지원 영업 관리자에게 문의하세요. 자세한 내용은 Microsoft 지원 수명 주기 정책 FAQ를 참조하세요.

취약성 정보

심각도 등급 및 취약성 식별자

다음 심각도 등급은 취약성의 잠재적 최대 영향을 가정합니다. 이 보안 공지가 릴리스된 후 30일 이내에 심각도 등급 및 보안 영향과 관련하여 취약성의 악용 가능성에 대한 자세한 내용은 12월 게시판 요약악용 가능성 지수를 참조하세요. 자세한 내용은 Microsoft 악용 가능성 인덱스(Exploitability Index)를 참조하세요.

영향을 받는 소프트웨어 SignalR XSS 취약성 - CVE-2013-5042 집계 심각도 등급
개발자 도구
ASP.NET SignalR 1.1.x(2903919) 중요한 권한 상승 중요
ASP.NET SignalR 2.0.x(2903919) 중요한 권한 상승 중요
Microsoft Visual Studio Team Foundation Server 2013(2903566) 중요한 권한 상승 중요

SignalR XSS 취약성 - CVE-2013-5042

ASP.NET SignalR에는 공격자가 대상 사용자의 컨텍스트에서 리소스에 액세스할 수 있는 권한 상승 취약성이 있습니다.

이 취약성을 일반적인 취약성 및 노출 목록에서 표준 항목으로 보려면 CVE-2013-5042를 참조하세요.

요소 완화

Microsoft는 이 취약성에 대한 완화 요인을 확인하지 않았습니다.

해결 방법

해결 방법은 기본 취약성을 수정하지 않지만 업데이트를 적용하기 전에 알려진 공격 벡터를 차단하는 데 도움이 되는 설정 또는 구성 변경을 나타냅니다. Microsoft는 해결 방법으로 기능이 감소하는지 여부를 설명하는 다음 해결 방법 및 상태를 테스트했습니다.

  • ASP.NET SignalR 기능을 사용하여웹 애플리케이션을 호스트하는 Windows 서버의 경우 ASP.NET SignalRForever Frame전송프로토콜을 해제하면취약성으로부터 일시적으로 보호됩니다.

    클라이언트 및 서버 쪽에서 ASP.NET SignalR Forever Frame 전송 프로토콜을 사용하지 않도록 설정하는 작업은 코드에서 수행됩니다. 사용자 환경에서 프로토콜을 사용하지 않도록 설정하기 위한 지침으로 다음 예제를 참조하세요.

    클라이언트 쪽에서 영향을 받는 전송을 사용하지 않도록 설정하는 코드 예제:

    // If using the default hub connection
    $.connection.hub.start({ transport: ["webSockets", "serverSentEvents", "longPolling"] });
    
    // If using a manually-created connection
    var connection = $.connection("https://sample.com/signalr");
    connection.start({ transport: ["webSockets", "serverSentEvents", "longPolling"] });
    

    기본 전역 종속성 확인자를 사용할 때 서버 쪽에서 영향을 받는 전송을 사용하지 않도록 설정하는 코드 예제:

    using Microsoft.AspNet.SignalR;
    using Microsoft.AspNet.SignalR.Transports;
    using Owin;
    namespace MyApplication
    {
        public static class Startup
        {
            public static void ConfigureSignalR(IAppBuilder app)
            {
                // If using the global dependency resolver
                TurnOfForeverFrame(GlobalHost.DependencyResolver);
                app.MapSignalR();
            }
            public static void TurnOfForeverFrame(IDependencyResolver resolver)
            {
                var transportManager = resolver.Resolve<itransportmanager>() as TransportManager;
                transportManager.Remove("foreverFrame");
            }
        }
    }
    
    
    Code example to disable the affected transport on the server side when using a custom dependency resolver:
    
    using Microsoft.AspNet.SignalR;
    using Microsoft.AspNet.SignalR.Transports;
    using Owin;
    namespace MyApplication
    {
        public static class Startup
        {
            public static void ConfigureSignalR(IAppBuilder app)
            {
                // If using a custom dependency resolver
                var resolver = GetCustomResolver();
                TurnOfForeverFrame(resolver);
                app.MapSignalR(new HubConfiguration
                {
                    Resolver = resolver
                });
            }
            private static IDependencyResolver GetCustomResolver()
            {
                return new DefaultDependencyResolver();
            }
            public static void TurnOfForeverFrame(IDependencyResolver resolver)
            {
                var transportManager = resolver.Resolve</itransportmanager><itransportmanager>() as TransportManager;
                transportManager.Remove("foreverFrame");
            }
        }
    }
    

    해결 방법의 영향입니다. 해결 방법을 구현한 후 Internet Explorer 클라이언트는 SignalR 애플리케이션에 대한 통신 속도가 느려질 수 있습니다.

  • Microsoft Visual Studio Team Foundation Server 2013이 설치된 시스템의 경우 Microsoft는 해결 방법을 확인하지 않았습니다.

FAQ

취약성의 범위는 무엇인가요?
이는 권한 상승 취약성입니다.

취약성의 원인은 무엇인가요?
이 취약성은 ASP.NET SignalR이 사용자 입력을 부적절하게 인코딩할 때 발생합니다.

공격자가 이 취약성을 사용하여 수행할 수 있는 작업
웹 검색 시나리오에서 공격자는 특별히 제작된 JavaScript를 사용자의 브라우저에 다시 반영하여 공격자가 페이지 콘텐츠를 수정하거나 피싱을 수행하거나 대상 사용자를 대신하여 작업을 수행할 수 있습니다.

공격자가 취약성을 어떻게 악용할수 있나요?
공격 시나리오에서 공격자는 대상 사용자가 사용할 수 있는 리소스에 대한 액세스 권한을 부여하도록 설계된 악의적인 JavaScript가 포함된 특별히 제작된 대상 사용자의 브라우저를 도입할 수 있습니다.

주로 취약성으로 인한 위험에 처한 시스템은 무엇인가요?
웹 검색 시나리오에서 이 취약성을 성공적으로 악용하려면 사용자가 로그온하여 ASP.NET SignalR을 호스팅하는 웹 사이트를 방문해야 합니다. 따라서 워크스테이션 또는 터미널 서버와 같이 웹 브라우저가 자주 사용되는 시스템은 이 취약성으로 인한 위험이 가장 높습니다. 관리자가 사용자가 서버에서 전자 메일을 찾아보고 읽을 수 있도록 허용하면 서버가 더 위험할 수 있습니다. 그러나 모범 사례에서는 이를 허용하지 않습니다.

업데이트는 무엇을 수행하나요?
이 업데이트는 ASP.NET SignalR이 사용자 입력을 제대로 인코딩하도록 하여 취약성을 해결합니다.

이 보안 공지가 발행되었을 때 이 취약성이 공개적으로 공개되었습니까?
아니요. Microsoft는 조정된 취약성 공개를 통해 이 취약성에 대한 정보를 받았습니다.

이 보안 공지가 발행되었을 때 Microsoft에서 이 취약성이 악용되고 있다는 보고를 받았나요?
아니요. Microsoft는 이 보안 공지가 처음 발행되었을 때 이 취약성이 고객을 공격하는 데 공개적으로 사용되었음을 나타내는 정보를 받지 못했습니다.

업데이트 정보

검색 및 배포 도구 및 지침

관리자가 보안 업데이트를 배포하는 데 도움이 되는 몇 가지 리소스를 사용할 수 있습니다. 

  • MBSA(Microsoft Baseline Security Analyzer)를 사용하면 관리자가 로컬 및 원격 시스템에서 누락된 보안 업데이트 및 일반적인 보안 구성을 검사할 수 있습니다. 
  • WSUS(Windows Server Update Services), SMS(시스템 관리 서버) 및 System Center Configuration Manager는 관리자가 보안 업데이트를 배포할 수 있도록 지원합니다. 
  • 애플리케이션 호환성 도구 키트에 포함된 업데이트 호환성 평가기 구성 요소는 설치된 애플리케이션에 대한 Windows 업데이트의 테스트 및 유효성 검사를 간소화하는 데 도움이 됩니다. 

이러한 도구 및 사용 가능한 기타 도구에 대한 자세한 내용은 IT 전문가용 보안 도구를 참조 하세요

보안 업데이트 배포

영향을 받는 소프트웨어

영향을 받는 소프트웨어의 특정 보안 업데이트에 대한 자세한 내용을 보려면 적절한 링크를 클릭합니다.

ASP.NET SignalR(모든 버전)

배포 시나리오에 따라 몇 가지 업데이트 옵션을 사용할 수 있습니다. 시나리오에 가장 적합한 옵션을 선택합니다.

ASP.NET SignalR 지원 웹 애플리케이션 개발자용

  • 옵션 1:NuGet을 사용하여 Visual Studio 프로젝트 패키지 업데이트, 애플리케이션 다시 컴파일 및 배포

    1. Visual Studio에서 솔루션을 엽니다.
    2. 솔루션 탐색기 참조 노드를 마우스 오른쪽 단추로 클릭한 다음 NuGet 패키지 관리를 클릭합니다.
    3. 업데이트 탭을 선택합니다. 업데이트가 있는 패키지 목록이 가운데 창에 나타납니다.
    4. Microsoft.AspNet.SignalR 패키지를 선택한 다음 업데이트를 클릭합니다.
    5. 웹 애플리케이션을 컴파일하고 배포합니다.

    NuGet 대화 상자를 사용하여 NuGet 패키지를 관리하는 방법에 대한 자세한 내용은 대화 상자를 사용하여 NuGet 패키지 관리를 참조 하세요.

  • 옵션 2:패키지 관리자 콘솔 UI를 사용하여 Visual Studio 프로젝트 패키지 업데이트, 애플리케이션 다시 컴파일 및 배포

    1. Visual Studio에서 솔루션을 엽니다.
    2. 도구 메뉴를 클릭하고 라이브러리 패키지 관리자 선택한 다음 패키지 관리자 콘솔을 클릭합니다.
    3. 패키지 관리자 창에서 Update-Package Microsoft.AspNet.SignalR을 입력합니다.
    4. 웹 애플리케이션을 컴파일하고 배포합니다.

    패키지 관리자 콘솔 사용에 대한 자세한 내용은 패키지 관리자 콘솔 사용을 참조하세요.

SignalR 사용 웹 애플리케이션을 ASP.NET 다시 컴파일할 수 없는 시스템 관리자의 경우

  • 관리자 시스템에서 ASP.NET SignalR 업데이트

    프로젝트를 업데이트하고 웹 애플리케이션을 다시 배포하기 전에 서버를 보호하려면 아래 표에 제공된 링크를 사용하여 업데이트를 설치합니다. ASP.NET SignalR을 사용하는 배포된 애플리케이션을 업데이트할 수 있을 때까지 IT 관리자를 위한 임시 보호로 간주되어야 합니다.

    파일 업데이트 SignalR-KB2903919.msi
    설치 스위치 Microsoft 기술 자료 문서 262841 참조
    로그 파일 업데이트 해당 없음
    다시 시작 요구 사항 시스템 다시 시작은 필요하지 않습니다. 그러나 IIS는 다시 시작됩니다.
    제거 정보 제어판 프로그램 추가 또는 제거를 사용합니다.
    파일 정보 Microsoft 기술 자료 문서 2903919 참조

Microsoft Visual Studio Team Foundation Server 2013(모든 버전)

참조 테이블

다음 표에는 이 소프트웨어에 대한 보안 업데이트 정보가 포함되어 있습니다.

보안 업데이트 파일 이름 Microsoft Visual Studio Team Foundation Server 2013:\ TFS2013-KB2903566.exe
설치 스위치 Microsoft 기술 자료 문서 262841 참조
로그 파일 업데이트 해당 없음
다시 시작 요구 사항 파일이 사용 중인 경우 이 업데이트를 다시 시작해야 할 수 있습니다.
제거 정보 제어판 프로그램 추가 또는 제거를 사용합니다.
파일 정보 Microsoft 기술 자료 문서 2903566 참조
레지스트리 키 확인 For Microsoft Visual Studio Team Foundation Server 2013:\ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DevDiv\tfs\Servicing\12.0

기타 정보

MAPP(Microsoft Active Protections Program)

고객을 위한 보안 보호를 개선하기 위해 Microsoft는 매월 보안 업데이트 릴리스마다 주요 보안 소프트웨어 공급자에게 취약성 정보를 제공합니다. 보안 소프트웨어 공급자는 이 취약성 정보를 사용하여 바이러스 백신, 네트워크 기반 침입 탐지 시스템 또는 호스트 기반 침입 방지 시스템과 같은 보안 소프트웨어 또는 디바이스를 통해 고객에게 업데이트된 보호를 제공할 수 있습니다. 보안 소프트웨어 공급자로부터 활성 보호를 사용할 수 있는지 여부를 확인하려면 MAPP(Microsoft Active Protections Program) 파트너나열된 프로그램 파트너가 제공하는 활성 보호 웹 사이트로 이동하세요.

지원

이 보안 업데이트에 대한 도움말 및 지원을 받는 방법

부인

Microsoft 기술 자료에 제공된 정보는 어떠한 종류의 보증도 없이 "있는 그대로" 제공됩니다. Microsoft는 특정 목적에 대한 상품성 및 적합성에 대한 보증을 포함하여 명시적이거나 묵시적인 모든 보증을 부인합니다. 어떠한 경우에도 Microsoft Corporation 또는 해당 공급업체는 Microsoft Corporation 또는 공급업체가 이러한 손해의 가능성을 통보한 경우에도 직접, 간접, 부수적, 결과적, 비즈니스 이익 손실 또는 특별 손해를 포함한 모든 손해에 대해 책임을 지지 않습니다. 일부 주에서는 결과적 또는 부수적 손해에 대한 책임의 배제 또는 제한을 허용하지 않으므로 앞에서 설명한 제한이 적용되지 않을 수 있습니다.

수정 내용

  • V1.0(2013년 12월 10일): 공지가 게시되었습니다.

2014-04-18T13:49:36Z-07:00에 빌드