[4021279] Microsoft 보안 공지

요약
Microsoft는 공개 버전의 .NET Core 및 ASP.NET Core에 존재하는 취약성에 대한 정보를 제공하기 위해 이 보안 공지를 발표합니다. 이 보안 공지에서는 개발자가 자신을 응용 프로그램이 올바르게 업데이트하기 위해 취할 수 있는 조치와 관련된 지침도 제공합니다.
.NET Core 및 ASP.NET Core는 웹 및 클라우드 환경을 위한 친숙하면서도 현대적인 프레임워크를 갖춘 차세대 .NET입니다. 이들 제품은 .NET 및 ASP.NET 팀이 오픈 소스 개발자 커뮤니티와 함께 적극 개발하고 있으며 Windows, Mac OS X 및 Linux에서 실행됩니다. .NET Core가 발표되었을 당시 이전의 .NET과는 별개의 제품임을 나타내기 위해 버전 번호가 1.0.0으로 다시 설정되었습니다.
영향받는 소프트웨어
이 취약성은 다음과 같은 영향받는 패키지 버전을 사용하는 모든 Microsoft .NET Core 프로젝트에 영향을 줍니다.
영향받는 패키지 및 버전 | ||
패키지 이름 | 패키지 버전 | 수정된 패키지 버전 |
System.Text.Encodings.Web | 4.0.0 4.3.0 |
4.0.1 4.3.1 |
System.Net.Http | 4.1.1 4.3.1 |
4.1.2 4.3.2 |
System.Net.Http.WinHttpHandler | 4.0.1 4.3.0 |
4.0.2 4.3.1 |
System.Net.Security | 4.0.0 4.3.0 |
4.0.1 4.3.1 |
System.Net.WebSockets.Client | 4.0.0 4.3.0 |
4.0.1 4.3.1 |
Microsoft.AspNetCore.Mvc | 1.0.0, 1.0.1, 1.0.2, 1.0.3 1.1.0, 1.1.1, 1.1.2 |
1.0.4 1.1.3 |
Microsoft.AspNetCore.Mvc.Core | 1.0.0, 1.0.1, 1.0.2, 1.0.3 1.1.0, 1.1.1, 1.1.2 |
1.0.4 1.1.3 |
Microsoft.AspNetCore.Mvc.Abstractions | 1.0.0, 1.0.1, 1.0.2, 1.0.3 1.1.0, 1.1.1, 1.1.2 |
1.0.4 1.1.3 |
Microsoft.AspNetCore.Mvc.ApiExplorer | 1.0.0, 1.0.1, 1.0.2, 1.0.3 1.1.0, 1.1.1, 1.1.2 |
1.0.4 1.1.3 |
Microsoft.AspNetCore.Mvc.Cors | 1.0.0, 1.0.1, 1.0.2, 1.0.3 1.1.0, 1.1.1, 1.1.2 |
1.0.4 1.1.3 |
Microsoft.AspNetCore.Mvc.DataAnnotations | 1.0.0, 1.0.1, 1.0.2, 1.0.3 1.1.0, 1.1.1, 1.1.2 |
1.0.4 1.1.3 |
Microsoft.AspNetCore.Mvc.Formatters.Json | 1.0.0, 1.0.1, 1.0.2, 1.0.3 1.1.0, 1.1.1, 1.1.2 |
1.0.4 1.1.3 |
Microsoft.AspNetCore.Mvc.Formatters.Xml | 1.0.0, 1.0.1, 1.0.2, 1.0.3 1.1.0, 1.1.1, 1.1.2 |
1.0.4 1.1.3 |
Microsoft.AspNetCore.Mvc.Localization | 1.0.0, 1.0.1, 1.0.2, 1.0.3 1.1.0, 1.1.1, 1.1.2 |
1.0.4 1.1.3 |
Microsoft.AspNetCore.Mvc.Razor.Host | 1.0.0, 1.0.1, 1.0.2, 1.0.3 1.1.0, 1.1.1, 1.1.2 |
1.0.4 1.1.3 |
Microsoft.AspNetCore.Mvc.Razor | 1.0.0, 1.0.1, 1.0.2, 1.0.3 1.1.0, 1.1.1, 1.1.2 |
1.0.4 1.1.3 |
Microsoft.AspNetCore.Mvc.TagHelpers | 1.0.0, 1.0.1, 1.0.2, 1.0.3 1.1.0, 1.1.1, 1.1.2 |
1.0.4 1.1.3 |
Microsoft.AspNetCore.Mvc.ViewFeatures | 1.0.0, 1.0.1, 1.0.2, 1.0.3 1.1.0, 1.1.1, 1.1.2 |
1.0.4 1.1.3 |
Microsoft.AspNetCore.Mvc.WebApiCompatShim | 1.0.0, 1.0.1, 1.0.2, 1.0.3 1.1.0, 1.1.1, 1.1.2 |
1.0.4 1.1.3 |
공지 FAQ
취약성의 영향을 받는지 어떻게 알 수 있습니까?
.NET Core 및 ASP.NET Core에는 직접 종속성과 전이적 종속성이라는 두 가지 유형의 종속성이 있습니다. 프로젝트에 위에 나열된 패키지 및 버전에 대한 직접 또는 전이적 종속성이 있는 경우 이 공지에서 설명하는 취약성의 영향을 받습니다.
참고
Microsoft는 ASP.NET Core MVC 패치의 일부분으로 모든 Microsoft.AspNetCore.Mvc.* 패키지를 업데이트합니다. 예를 들어 Microsoft.AspNetCore.Mvc에 대한 종속성이 있는 경우 먼저 적절한 버전으로 업데이트해야 하며(1.0.x는 1.0.4로 업데이트하고 1.1.x는 1.1.3으로 업데이트해야 함) 이를 통해 다른 취약한 Microsoft.AspNetCore.Mvc 종속성도 업데이트됩니다. |
.NET Core 프로젝트 형식
프로젝트를 만든 소프트웨어에 따라 .NET Core에는 다음과 같은 두 가지 프로젝트 파일 형식이 있습니다.
- project.json - .NET Core 1.0 및 Microsoft Visual Studio 2015에 포함된 원래 형식
- csproj - Microsoft Visual Studio 2017에서 사용되는 형식
현재 프로젝트 유형에 맞는 업데이트 지침을 따라야 합니다.
직접 종속성
직접 종속성은 패키지를 프로젝트에 명시적으로 추가하는 경우에 발생하는 종속성입니다. 예를 들어 프로젝트에 Microsoft.AspNetCore.Mvc 패키지를 추가하면 Microsoft.AspNetCore.Mvc에 대해 직접 종속 관계를 형성한 것입니다.
직접 종속성은 project.json 또는 csproj 파일을 검토하여 검색할 수 있습니다.
전이적 종속성
전이적 종속성은 패키지를 추가하는 프로젝트가 다른 패키지를 활용하는 경우에 발생합니다. 예를 들어 프로젝트에 Microsoft.AspNetCore.Authentication 패키지를 추가하는 경우 특히 Microsoft.AspNetCore.Http 패키지에 종속됩니다. 이렇게 되면 프로젝트가 Microsoft.AspNetCore.Authentication 패키지에 대해서는 직접 종속 관계를, Microsoft.AspNetCore.Http 패키지에 대해서는 전이적 종속 관계를 각각 형성하게 됩니다.
전이적 종속성은 Visual Studio 솔루션 탐색기 창에서 검토할 수 있습니다(검색 가능). 또는 project.json 프로젝트의 경우 프로젝트의 루트 디렉터리에 포함된 project.lock.json 파일을 검토하거나, csproj 프로젝트의 경우 프로젝트의 obj 디렉터리에 포함된 project.assets.json 파일을 검토할 수도 있습니다. 이러한 파일은 프로젝트에서 사용되는 모든 패키지의 신뢰할 수 있는 목록으로, 직접 종속성과 전이적 종속성을 모두 포함합니다.
영향받는 응용 프로그램을 수정하려면 어떻게 해야 합니까?
직접 종속성을 수정하고 전이적 종속성을 검토 및 수정해야 합니다. 위의 영향받는 패키지 및 버전에는 각각의 취약한 패키지, 취약한 버전 및 패치 적용 버전이 나열되어 있습니다.
프로젝트에서 ASP.NET Core MVC를 사용하는 경우 위의 영향받는 버전 표에 따라 먼저 Microsoft.AspNetCore.Mvc 버전을 업데이트해야 합니다. 현재 1.0.0, 1.0.1, 1.0.2 또는 1.0.3 버전을 사용하는 경우 패키지 버전을 1.0.4로 업데이트해야 합니다. 1.1.0, 1.1.1 또는 1.1.2 버전을 사용하는 경우 패키지 버전을 1.1.3으로 업데이트해야 합니다. 이렇게 하면 모든 MVC 패키지가 수정된 버전으로 업데이트됩니다.
직접 종속성 수정 – project.json/VS2015
편집기에서 project.json 파일을 엽니다. 종속성 섹션을 확인합니다. 아래에 종속성 섹션의 예가 나와 있습니다.
복사
"dependencies": { "Microsoft.NETCore.App": { "version": "1.0.1", "type": "platform" }, "Microsoft.AspNetCore.Server.Kestrel": "1.0.1", "Microsoft.AspNetCore.Mvc ": "1.0.1", }
이 예제에는 다음과 같은 세 개의 직접 종속성이 있습니다. Microsoft.NETCore.App, Microsoft.AspNetCore.Server.Kestrel 및 Microsoft.AspNetCore.Mvc
Microsoft.NetCore.App은 응용 프로그램이 대상으로 하는 플랫폼이며, 이 종속성은 무시해야 합니다. 다른 패키지는 해당 버전이 패키지 이름 오른쪽에 표시됩니다. 여기에 소개된 예제에서 플랫폼이 아닌 패키지의 버전은 1.0.1입니다.
위에 나열된 패키지 및 버전의 인스턴스가 있는지 직접 종속성을 검토하십시오. 위의 예제에서는 취약한 패키지 중 하나인 Microsoft.AspNetCore.Mvc 버전 1.0.1에 대한 직접 종속성이 있습니다.
수정된 패키지로 업데이트하려면 해당 릴리스에 적합한 패키지로 버전 번호를 변경합니다. 예제의 경우에는 Microsoft.AspNetCore.Mvc를 1.0.4로 업데이트하는 것이 됩니다.
취약한 패키지 버전을 업데이트한 후 project.json 파일을 저장합니다.
복사
"dependencies": { "Microsoft.NETCore.App": { "version": "1.0.1", "type": "platform" }, "Microsoft.AspNetCore.Server.Kestrel": "1.0.1", "Microsoft.AspNetCore.Mvc": "1.0.4", }
Visual Studio를 사용 중이고 업데이트된 project.json 파일을 저장하는 경우 Visual Studio에서 새 패키지 버전을 복원합니다. 복원 결과를 확인하려면 출력 창을 연 후(Ctrl+Alt+O) 출력 보기 선택 드롭다운 목록을 패키지 관리자로 변경하면 됩니다.
Visual Studio를 사용하지 않는 경우에는 명령줄을 열고 프로젝트 디렉터리를 변경합니다. dotnet restore명령을 실행하여 새 종속성을 복원합니다.
직접 종속성을 모두 처리하고 나면 전이적 종속성도 검토해야 합니다.
전이적 종속성 수정 – csproj/VS2017
편집기에서 projectname.csproj 파일을 열거나 Visual Studio 2017에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 상황에 맞는 메뉴에서 projectname.csproj 편집을 선택합니다. 여기서 projectname은 프로젝트의 이름입니다. PackageReference 노드를 찾습니다. 아래에는 프로젝트 파일의 예가 나와 있습니다.
복사
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>netcoreapp1.1</TargetFramework> </PropertyGroup> <PropertyGroup> <PackageTargetFallback>$(PackageTargetFallback);portable-net45+win8+wp8+wpa81;</PackageTargetFallback> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.AspNetCore" Version="1.1.1" /> <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.2" /> </ItemGroup> <ItemGroup> <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.0 " /> </ItemGroup> </Project>
이 예에는 직접 패키지 종속성 2개(PackageReference 요소 2개)가 있습니다. 패키지의 이름은 Include 특성이고 패키지 버전 번호는 Version 특성에서 패키지 이름 오른쪽에 표시되어 있습니다. 이 예에는 두 개의 패키지(Microsoft.AspNetCore 버전 1.1.1과 Microsoft.AspNetCore.Mvc.Core 버전 1.1.2)가 표시되어 있습니다.
위에 나열된 패키지 및 버전의 인스턴스가 있는지 PackageReference 요소를 검토하십시오. 위의 예에서는 취약한 패키지 중 하나인 Microsoft.AspNetCore.Mvc 버전 1.1.2에 대한 직접 종속성이 있습니다
수정된 패키지로 업데이트하려면 해당 릴리스에 적합한 패키지로 버전 번호를 변경합니다. 예제의 경우에는 Microsoft.AspNetCore.Mvc를 1.1.3으로 업데이트하는 것이 됩니다.
취약한 패키지 버전을 업데이트한 후 csproj 파일을 저장합니다.
버전 번호를 변경하고 나면 예제 csproj은 이제 다음과 같이 나타납니다.
복사
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>netcoreapp1.1</TargetFramework> </PropertyGroup> <PropertyGroup> <PackageTargetFallback>$(PackageTargetFallback);portable-net45+win8+wp8+wpa81;</PackageTargetFallback> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.AspNetCore" Version="1.1.1" /> <PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="1.1.3" /> </ItemGroup> <ItemGroup> <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.0 " /> </ItemGroup> </Project>
Visual Studio를 사용 중이고 업데이트된 csproj 파일을 저장하는 경우 Visual Studio에서 새 패키지 버전을 복원합니다. 복원 결과를 확인하려면 출력 창을 연 후(Ctrl+Alt+O) 출력 보기 선택 드롭다운 목록을 패키지 관리자로 변경하면 됩니다.
Visual Studio를 사용하지 않는 경우에는 명령줄을 열고 프로젝트 디렉터리로 변경합니다. dotnet restore명령을 실행하여 새 종속성을 복원합니다.
응용 프로그램을 다시 컴파일합니다.
다시 컴파일한 후 종속성 충돌 경고가 나타나면 다른 직접 종속성을 해당하는 버전으로 업데이트해야 합니다. 예를 들어 Microsoft.AspNetCore.Mvc 패키지를 1.0.4로 업데이트할 때 프로젝트가 버전 번호가 1.0.1인 Microsoft.AspNetCore.Routing을 참조하는 경우 컴파일을 통해 다음이 throw됩니다.
NU1012 Dependency conflict. Microsoft.AspNetCore.Mvc.Core 1.0.4 expected Microsoft.AspNetCore.Routing >= 1.0.4 but received 1.0.1
이를 해결하려면 취약한 패키지 버전을 업데이트할 때 사용한 것과 동일한 방식으로 csproj 또는 project.json을 업데이트하여 필요한 패키지용 버전을 필요한 버전으로 편집합니다.
직접 종속성을 모두 처리하고 나면 전이적 종속성도 검토해야 합니다.
전이적 종속성 검토
전이적 종속성을 확인하는 방법에는 두 가지가 있습니다. Visual Studio의 솔루션 탐색기를 사용할 수도 있고, project.lock.json(project.json/VS2015) 또는 project.assets.json(csproj/VS2017) 파일을 검토할 수도 있습니다.
Visual Studio 솔루션 탐색기 사용(VS2015)
Visual Studio 2015를 사용하려는 경우 Visual Studio 2015에서 프로젝트를 연 후 Ctrl+를 눌러 솔루션 탐색기에서 검색 기능을 활성화합니다. 그런 다음 각각의 취약한 패키지 이름을 검색하여 확인되는 결과 항목의 버전 번호를 적어 둡니다.
예를 들어 Microsoft.AspNetCore.Mvc에 대한 종속성이 있는 예제 프로젝트에서 Microsoft.AspNetCore.Mvc.Core를 검색하면 Visual Studio 2015에 다음 그림과 같은 결과가 표시됩니다.

그림 1: Visual Studio 2015에서 참조 검색
검색 결과는 트리로 나타납니다. 이러한 Microsoft.AspNetCore.Mvc 버전 1.0.1(취약한 버전)에 대한 참조가 발견되었음을 확인할 수 있습니다.
참조 머리글 아래의 첫 번째 항목은 응용 프로그램에서 사용하는 대상 프레임워크를 나타냅니다. 이는 응용 프로그램을 구성한 방식에 따라 NETCoreApp, .NETStandard 또는 .NET-Framework-vX.Y.Z(여기서 X.Y.Z는 실제 버전 번호)가 됩니다. 대상 프레임워크 아래에는 직접 종속 관계를 형성한 패키지 목록이 있습니다. 이 예제에서는 응용 프로그램이 Microsoft.AspNetCore.Mvc에 종속되어 있습니다. 또한 Microsoft.AspNetCore.Mvc의 리프 노드에는 해당 종속성과 버전이 나열됩니다. 이 예제의 경우 Microsoft.AspNetCore.Mvc 패키지는 Microsoft.AspNetCore.Mvc.Core의 취약한 버전 및 기타 여러 패키지에 종속됩니다.
수동으로 project.lock.json 검토(project.json/VS2015)
편집기에서 project.lock.json 파일을 엽니다. 이 파일을 검토하려면 노드를 축소/확장할 수 있으며 json을 인식하는 편집기를 사용하는 것이 좋습니다. Visual Studio와 Visual Studio Code 둘 다에서 이 기능이 제공됩니다.
Visual Studio를 사용하는 경우 project.json 파일 "아래에" project.lock.json 파일이 있습니다. project.json 파일 왼쪽의 오른쪽 방향 삼각형(▷)을 클릭해 솔루션 트리를 확장하여 project.lock.json 파일을 표시합니다. 아래의 그림 1에는 project.lock.json 파일을 표시하도록 project.json 파일이 확장된 프로젝트가 표시되어 있습니다.

그림 2: project.lock.json 파일 위치
project.lock.json 파일에서 "Microsoft.AspNetCore.Mvc.Core/1.1.0" 문자열을 검색합니다. project.lock.json 파일에 이 문자열이 포함되어 있는 경우 패키지가 취약한 패키지에 종속되어 있는 것입니다.
전이적 종속성 수정(project.json/VS2015)
취약한 패키지에 대한 참조를 찾지 못한 경우 어떤 직접 종속성도 취약한 취약한 패키지에 종속되어 있지 않거나, 직접 종속성을 업데이트하여 문제를 이미 수정한 것입니다.
전이적 종속성을 검토한 결과, 취약한 패키지에 대한 참조가 발견되는 경우 업데이트된 패키지에 대한 직접 종속성을 project.json 파일에 추가하여 전이적 종속성을 재정의해야 합니다. project.json을 열고 종속성 섹션을 찾습니다. 예:
복사
"dependencies": { "Microsoft.NETCore.App": { "version": "1.0.1", "type": "platform" }, "Microsoft.AspNetCore.Server.Kestrel": "1.1.0", "Microsoft.AspNetCore.Mvc": "1.1.0" }
검색을 통해 반환된 각각의 취약한 패키지마다 직접 종속성을 project.json 파일에 추가하는 방식으로 업데이트된 버전에 추가해야 합니다. 이렇게 하려면 종속성 섹션에 수정된 버전을 참조하는 새 줄을 추가합니다. 예를 들어 검색을 통해 취약한 System.Net.Security 버전 4.0.0에 대한 자동사 참조가 표시된 경우 해당하는 수정된 버전인 4.0.1에 대한 참조를 추가해야 합니다. 다음과 같이 project.json 파일을 편집합니다.
복사
"dependencies": { "Microsoft.NETCore.App": { "version": "1.0.1", "type": "platform" }, "System.Net.Security": "4.0.1", "Microsoft.AspNetCore.Server.Kestrel": "1.1.0", "Microsoft.AspNetCore.Mvc": "1.1.1" }
수정된 패키지에 직접 종속성을 추가한 후 project.json 파일을 저장합니다.
Visual Studio를 사용 중인 경우 업데이트된 project.json 파일을 저장하면 Visual Studio에서 새 패키지 버전을 복원합니다. 복원 결과를 확인하려면 출력 창을 연 후(Ctrl+Alt+O) 출력 보기 선택 드롭다운 목록을 패키지 관리자로 변경하면 됩니다.
Visual Studio를 사용하지 않는 경우에는 명령줄을 열고 프로젝트 디렉터리로 변경합니다. dotnet restore명령을 실행하여 새 종속성을 복원합니다.
Visual Studio 솔루션 탐색기 사용(VS2017)
솔루션 탐색기를 사용하는 경우 Visual Studio 2017에서 프로젝트를 연 후 Ctrl+를 눌러 솔루션 탐색기에서 검색 기능을 활성화합니다. 그런 다음 각각의 취약한 패키지 이름을 검색하여 확인되는 결과 항목의 버전 번호를 적어 둡니다.
예를 들어 Microsoft.AspNetCore.Mvc에 대한 종속성이 있는 패키지가 포함된 예제 프로젝트에서 Microsoft.AspNetCore.Mvc.Core를 검색하면 Visual Studio 2017에 다음 그림과 같은 결과가 표시됩니다.

그림 3: Visual Studio 2017에서 참조 검색
검색 결과는 트리로 나타납니다. 이러한 결과에서 Microsoft.AspNetCore.Mvc.Core 버전 1.1.2에 대한 참조가 발견되었음을 확인할 수 있습니다.
종속성 노드 아래에는 NuGet 노드가 있습니다. 그리고 NuGet 노드 아래에는 직접 종속 관계를 형성한 패키지 및 해당 버전의 목록이 있습니다. 이 예제에서는 응용 프로그램이 Microsoft.AspNetCore.Mvc에 직접 종속되어 있습니다. 또한 Microsoft.AspNetCore.Mvc의 리프 노드에는 해당 종속성과 버전이 나열됩니다. 이 예에서 Microsoft.AspNetCore.Mvc 패키지는 Microsoft.AspNetCore.Mvc.ApiExplorer의 버전에 종속되며, Microsoft.AspNetCore.Mvc.ApiExplorer는 Microsoft.AspNetCore.Mvc.Core의 취약한 버전에 종속됩니다.
수동으로 project.assets.json 검토(VS2017)
프로젝트의 obj 디렉터리에 있는 project.assets.json 파일을 편집기에서 엽니다. 이 파일을 검토하려면 노드를 축소/확장할 수 있으며 json을 인식하는 편집기를 사용하는 것이 좋습니다. Visual Studio와 Visual Studio Code 둘 다에서 이 기능이 제공됩니다.
Project.assets.json 파일에서 취약한 패키지 표에 나와 있는 각 패키지 이름 뒤에 /가 붙은 형태를 검색합니다. 예를 들어 Microsoft.AspNetCore.Mvc를 검색하는 경우 검색 문자열 “Microsoft.AspNetCore.Mvc/”를 사용하면 됩니다. project.assets.json 파일에 이 문자열이 포함되어 있고 전체 버전 번호(검색 결과에서 / 뒤에 있는 숫자)가 위에 나열된 취약한 버전 중 하나와 일치하는 경우 취약한 패키지에 대한 종속성이 있는 것입니다.
전이적 종속성 수정(csproj/VS2017)
취약한 패키지에 대한 참조를 찾지 못한 경우 어떤 직접 종속성도 취약한 취약한 패키지에 종속되어 있지 않거나, 직접 종속성을 업데이트하여 문제를 이미 수정한 것입니다.
전이적 종속성을 검토한 결과, 취약한 패키지에 대한 참조가 발견되는 경우 업데이트된 패키지에 대한 직접 종속성을 csproj 파일에 추가하여 전이적 종속성을 재정의해야 합니다. 편집기에서 projectname.csproj 파일을 열거나 Visual Studio 2017에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 상황에 맞는 메뉴에서 projectname.csproj 편집을 선택합니다. 여기서 projectname은 프로젝트의 이름입니다. 아래 예에 나와 있는 것과 같은 PackageReference 노드를 찾습니다.
복사
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>netcoreapp1.1</TargetFramework> </PropertyGroup> <PropertyGroup> <PackageTargetFallback>$(PackageTargetFallback);portable-net45+win8+wp8+wpa81;</PackageTargetFallback> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.AspNetCore" Version="1.1.1" /> <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.3" /> </ItemGroup> <ItemGroup> <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.0" /> </ItemGroup> </Project>
검색을 통해 반환된 각각의 취약한 패키지마다 직접 종속성을 project.json 파일에 추가하는 방식으로 업데이트된 버전에 추가해야 합니다. 이렇게 하려면 종속성 섹션에 수정된 버전을 참조하는 새 줄을 추가합니다. 예를 들어 검색을 통해 취약한 System.Net.Security 버전 4.3.0에 대한 자동사 참조가 표시된 경우 해당하는 수정된 버전인 4.3.1에 대한 참조를 추가해야 합니다.
복사
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>netcoreapp1.1</TargetFramework> </PropertyGroup> <PropertyGroup> <PackageTargetFallback>$(PackageTargetFallback);portable-net45+win8+wp8+wpa81;</PackageTargetFallback> </PropertyGroup> <ItemGroup> <PackageReference Include="System.Net.Security" Version="4.3.1" /> <PackageReference Include="Microsoft.AspNetCore" Version="1.1.1" /> <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.3" /> </ItemGroup> <ItemGroup> <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.0" /> </ItemGroup>
직접 종속성 참조를 추가한 후 csproj 파일을 저장합니다.
Visual Studio를 사용 중인 경우 업데이트된 csproj 파일을 저장하면 Visual Studio에서 새 패키지 버전을 복원합니다. 복원 결과를 확인하려면 출력 창을 연 후(Ctrl+Alt+O) 출력 보기 선택 드롭다운 목록을 패키지 관리자로 변경하면 됩니다.
Visual Studio를 사용하지 않는 경우에는 명령줄을 열고 프로젝트 디렉터리를 변경합니다. dotnet restore 명령을 실행하여 새 종속성을 복원합니다.
응용 프로그램 다시 작성
마지막으로 응용 프로그램을 다시 작성하고 평소처럼 테스트한 후 기본 배포 메커니즘을 통해 다시 배포합니다.
기타 정보
보안 문제 보고
- .NET Core에서 잠재적 보안 문제가 확인된 경우 세부 정보를 secure@microsoft.com에 전자 메일로 보내 주시기 바랍니다. 유용한 세부 정보를 보고하면 .NET Core Bug Bounty를 받을 수 있습니다. 사용 약관을 비롯한 .NET Core Bug Bounty의 세부 정보는 https://aka.ms/corebounty(영문)에 나와 있습니다.
MAPP(Microsoft Active Protections Program)
고객을 위한 보안을 강화하기 위해 Microsoft는 각각의 월별 보안 업데이트를 발표하기 전에 주요 보안 소프트웨어 제공업체에 취약성 정보를 제공합니다. 보안 소프트웨어 제공업체는 이 취약점 정보를 사용하여 바이러스 백신, 네트워크 기반 침입 탐지 시스템 또는 호스트 기반 침임 방지 시스템 등 자사의 보안 소프트웨어나 장치를 통해 업데이트된 보호 기능을 고객에게 제공할 수 있습니다. 보안 소프트웨어 제공업체가 활성 보호 기능을 제공하는지 확인하려면 Microsoft MAPP(Active Protections Program) 파트너(영문)에 나열된 프로그램 파트너가 제공하는 활성 보호 기능 웹 사이트를 참조하십시오.
피드백
- Microsoft 도움말 및 지원 양식, 고객 서비스 문의처를 작성하여 피드백을 보낼 수 있습니다.
지원
- .NET Core 또는 ASP.NET Core 조직의 GitHub에서 이 문제에 대해 궁금한 사항을 질문할 수 있으며, https://github.com/dotnet/ 및 https://github.com/aspnet/을 방문하면 됩니다. 제품별 공지 리포지토리(https://github.com/dotnet/Announcements 및 https://github.com/aspnet/Announcements)에는 이 보안 공지가 문제로 명시되어 있으며, 질문할 수 있는 토론 문제 링크도 포함되어 있습니다.
- 기술 지원은 1577-9700을 통해 Microsoft 고객 지원 센터에서 받을 수 있습니다. 자세한 내용은 Microsoft 도움말 및 지원 웹 사이트를 참조하세요.
- 기타 지역에 거주하는 고객은 해당 Microsoft 지사에서 지원을 받을 수 있습니다. 자세한 내용은 국가별 지원을 참조하세요. * Microsoft TechNet 보안은 Microsoft 제품의 보안에 대한 추가 정보를 제공합니다.
고지 사항
이 공지에서 제공되는 정보는 어떠한 보증도 없이 "있는 그대로" 제공됩니다. Microsoft는 상품성과 특정 목적에 대한 적합성의 보증을 포함하여 명시적이거나 묵시적인 모든 보증을 부인합니다. Microsoft Corporation 또는 그 공급자는 모든 직접적, 간접적, 부수적, 파생적 손해 또는 영업 이익 손실 또는 특수한 손실에 대하여 어떠한 경우에도 책임을 지지 않으며, 이는 Microsoft Corporation과 그 공급자가 그와 같은 손해의 가능성을 사전에 알고 있던 경우에도 마찬가지입니다. 일부 지역에서는 파생적 또는 부수적 손해에 대한 책임의 배제 또는 제한을 허용하지 않으므로 위 제한이 적용되지 않을 수도 있습니다.