알림
이 기술 자료 문서는 있는 그대로 제공되며 정규 업데이트 채널을 통해 제공되는 대체 데이터를 대신하지 않습니다. 날짜가 다음 데이터보다 이후인 대체 정보는 보안 업데이트 가이드 및 기타 참고 자료 도구에서 확인할 수 있습니다.
요약
이 문서가 적용되는 제품을 확인하세요.
보안 업데이트 MS17-010은 Windows SMB(서버 메시지 블록) v1의 여러 가지 취약성을 해결합니다. WannaCrypt 랜섬웨어는 MS17-010 업데이트에 포함된 취약성 중 하나를 악용합니다. MS17-010이 설치되어 있지 않은 컴퓨터는 여러 가지 변형된 맬웨어로 인해 더욱 높은 위험에 노출되어 있습니다. 이 문서에서는 컴퓨터가 업데이트되어 있는지 여부를 신속하게 확인할 수 있는 여러 가지 방법을 소개합니다.
방법 1: 설치된 기술 자료 문서 번호로 확인
다음 표를 활용하여 나열된 업데이트가 있는지확인합니다(“MS17-010 패치 포함 안 함”으로 표시되어 있는 업데이트는제외). 이 중 하나라도 설치되어 있으면 MS17-010이 설치되어 있는 것입니다.
표 1/2: Windows 7 SP1 이상. 다음 롤업 KB에는 픽스가 포함되어 있습니다("4월 보안 전용 4B" 열은 제외). 각 KB 번호 아래에는 업데이트된 Srv.sys 버전 번호가 있습니다.
Windows 버전 |
3월 보안 전용 업데이트 (17/3/14) |
3월 월별 롤업 (17/3/14) |
3월 월별 롤업 미리 보기 (17/3/21) |
4월 보안 전용 업데이트 (17/4/11) |
4월 월별 롤업 (17/4/11) |
4월 월별 롤업 미리 보기 (17/4/18) |
5월 보안 전용 업데이트 (17/5/09) |
5월 월별 롤업 (17/5/09) |
다운로드 링크 |
Windows 7 SP1 및 Windows Server 2008 R2 SP1 |
4012212 6.1.7601.23689 |
4012215 6.1.7601.23689 |
4012218 6.1.7601.23689 |
4015546 MS17-010 패치 포함 안 함 |
4015549 6.1.7601.23689 |
4015552 6.1.7601.23689 |
4019263 6.1.7601.23762 |
4019264 6.1.7601.23762 |
|
Windows 2012 |
4012214 6.2.9200.22099 |
4012217 6.2.9200.22099 |
4012220 6.2.9200.22099 |
4015548 MS17-010 패치 포함 안 함 |
4015551 6.2.9200.22099 |
4015554 6.2.9200.22099 |
4019214 6.2.9200.22137 |
4019216 6.2.9200.22137 |
|
Windows 8.1 및 Windows Server 2012 R2 |
4012213 6.3.9600.18604 |
4012216 6.3.9600.18604 |
4012219 6.3.9600.18604 |
4015547 MS17-010 패치 포함 안 함 |
4015550 6.3.9600.18604 |
4015553 6.3.9600.18619 |
4019213 6.3.9600.18655 |
4019215 6.3.9600.18655 |
|
Windows 10 버전 1507 |
4012606 10.0.10240.17319 |
4016637 10.0.10240.17319 |
- |
- |
4015221 10.0.10240.17319 |
- |
- |
4019474 10.0.10240.17394 |
|
Windows 10 버전 1511 |
4013198 10.0.10586.839 |
4016636 10.0.10586.839 |
- |
- |
4015219 10.0.10586.839 |
- |
- |
4019473 10.0.10586.916 |
|
Windows 10 버전 Windows Server 2016 |
4013429 10.0.14393.953 |
4016635 10.0.14393.953 |
- |
- |
4015217 10.0.14393.953 |
- |
- |
4019472 10.0.14393.1198 |
표 2/2: 2017년 5월 및 6월 업데이트에서 계속됩니다.
Windows 버전 |
5월 월별 롤업 미리 보기 (17/5/16) |
6월 보안 전용 업데이트 (17/6/13) |
6월 월별 롤업 (17/6/13) |
다운로드 링크 |
Windows 7 및 Server 2008 R2 |
4019265 6.1.7601.23762
|
4022722 |
4022168 6.1.7601.23762 |
|
Windows Server 2012 |
4019218 6.2.9200.22137 |
4022718 |
4022724 6.2.9200.22137 |
|
Windows 8.1 및 Windows Server 2012 R2 |
4019217 6.3.9600.18655 |
4022717 |
4022720 6.3.9600.18688 |
|
Windows 10 버전 1507 |
- |
- |
4032695 |
|
Windows 10 버전 1511 |
- |
- |
4032693 |
|
Windows 10 버전 1607 및 Windows Server 2016 |
- |
- |
4022723 10.0.14393.1198 |
표 2: 다른 Windows 버전. KB 4012598을 보안 업데이트로 사용합니다.
Windows 버전 |
KB 번호 및 업데이트된 Srv.sys 버전 |
다운로드 링크 |
Windows Server 2003 SP2 |
4012598 5.2.3790.6021 |
|
Windows XP |
4012598 5.1.2600.7208 |
Windows XP SP2 x64 Windows XP SP3 x86 Windows XP Embedded SP3 x86 |
Windows Vista SP2 |
4012598 GDR:6.0.6002.19743 LDR:6.0.6002.24067 |
|
Windows Server 2008 SP2 |
4012598 GDR:6.0.6002.19743 LDR:6.0.6002.24067 |
32비트 시스템용 Windows Server 2008 서비스 팩 2 Windows Server 2008(x64 기반 시스템용) 서비스 팩 2 Itanium 기반 시스템용 Windows Server 2008 서비스 팩 2 |
Windows 8 |
4012598 6.2.9200.22099 |
표 3: 픽스가 포함되어 있는 추가 업데이트입니다.
Windows 8.1 및 Windows Server 2012 R2
출시 날짜 |
KB 번호 |
지원 페이지 |
2017년 3월 21일 화요일 |
4012219 |
|
2017년 4월 18일 화요일 |
4015553 |
|
2017년 5월 16일 화요일 |
4019217 |
|
2017년 6월 27일 화요일 |
4022720 |
Windows Server 2012
출시 날짜 |
KB 번호 |
지원 페이지 |
2017년 3월 21일 화요일 |
4012220 |
|
2017년 4월 18일 화요일 |
4015554 |
|
2017년 5월 16일 화요일 |
4019218 |
|
2017년 6월 27일 화요일 |
4022721 |
Windows 7 SP1 및 Windows Server 2008 R2 SP1
출시 날짜 |
KB 번호 |
지원 페이지 |
2017년 3월 21일 화요일 |
4012218 |
|
2017년 4월 18일 화요일 |
4015552 |
|
2017년 5월 16일 화요일 |
4019265 |
|
2017년 6월 27일 화요일 |
4022168 |
방법 2: %systemroot%\system32\drivers\srv.sys 파일 버전으로 확인
다음 차트를 활용하여 %systemroot%\system32\drivers\srv.sys의 파일 버전을 확인합니다. 파일 버전이 나열된 버전보다 높거나 같으면 MS17-010이 설치되어 있는 것입니다.
Windows 버전 |
업데이트된 최소 Srv.sys 버전 |
Windows XP |
5.1.2600.7208 |
Windows Server 2003 SP2 |
5.2.3790.6021 |
Windows Vista Windows Server 2008 SP2 |
GDR:6.0.6002.19743, LDR:6.0.6002.24067 |
Windows 7 Windows Server 2008 R2 |
6.1.7601.23689 |
Windows 8 Windows Server 2012 |
6.2.9200.22099 |
Windows 8.1 Windows Server 2012 R2 |
6.3.9600.18604 |
Windows 10 TH1 v1507 |
10.0.10240.17319 |
Windows 10 TH2 v1511 |
10.0.10586.839 |
Windows 10 RS1 v1607 Windows Server 2016 |
10.0.14393.953 |
방법 3: WMI 및 Windows PowerShell로 확인
WMI 및 Windows PowerShell을 활용하여 MS17-010 픽스가 설치되어 있는지 여부를 확인합니다.
WMI 명령 지정된 KB 번호를 확인하려면 관리자 권한 명령 프롬프트 창을 연 후 다음 명령을 실행합니다.
wmic qfe get hotfixid | find "KB1234567"
참고
-
이 명령에서 <KB1234567>을 실제 KB 번호로 바꿉니다.
-
여러 개의 업데이트를 검색하려면 앰퍼샌드 문자(&)를 사용합니다. 예를 들어, 다음 명령을 실행합니다.
wmic qfe get hotfixid | find "KB4012212" & wmic qfe get hotfixid | find "KB4012215" & wmic qfe get hotfixid | find "KB4015549"
PowerShell 명령
로컬 시스템에서 확인하려면 다음 관리 PowerShell cmdlet을 실행합니다.
get-hotfix -id KB1234567
참고
-
이 명령에서 <KB1234567>을 실제 KB 번호로 바꿉니다.
-
여러 개의 업데이트를 검색하려면 쉼표(,)를 사용합니다. 예를 들어, 다음 명령을 실행합니다.
get-hotfix -id KB4012212,KB4012215,KB4015549
Active Directory 도메인 또는 OU의 모든 컴퓨터를 확인하려면 도메인 컨트롤러에서 다음 관리 PowerShell cmdlet을 실행합니다.
foreach ( $n in (get-adcomputer -searchbase ‘OU=workstations,dc=contoso,dc=com’ -filter * -property * | select name )) {get-hotfix -computername $n.name -id KB1234567}
참고 "OU=workstations,dc=contoso,dc=com"부분을 "dc=contoso,dc=com”처럼 Active Directory 도메인 디렉터리 파티션의 루트를 가리키도록 변경하면 도메인 전체의 컴퓨터를 검색할 수 있습니다. 이 명령에서 <KB1234567>을 실제 KB 번호로 바꿉니다.
“해당 없음” 설치 오류를 해결하는 방법
필수 구성 요소 픽스가 컴퓨터에 설치되어 있지 않으면 Windows 8.1 또는 Windows Server 2012 R2에서 MS17-010을 설치할 때 다음과 같은 오류 메시지가 나타날 수 있습니다.
업데이트를 컴퓨터에 적용할 수 없습니다.
이 오류를 해결하려면 다음 단계를 수행하세요.
-
올바른 업데이트를 설치하고 있는지 확인합니다. 이렇게 하려면 방법 1의 표 1에서 KB 번호를 확인합니다. 이를 사용 중인 시스템 버전, 시스템 서비스 팩 수준, 시스템 비트 수준(x64, IA64 또는 x86)과 비교합니다.
-
누락된 종속성을 확인합니다. Windows 8.1 및 Windows Server 2012 R2의 경우 다음 문서에 따라 종속 픽스를 필수 항목으로 설치합니다.
-
롤업 업데이트를 설치할 수 없으면 다른 롤업 버전을 시도해 봅니다. 사용 가능한 업데이트는 표 1을 참조하세요.
PowerShell 스크립트
다음 Windows PowerShell 스크립트에서는 로컬 컴퓨터에 설치된 Srv.sys 버전을 방법 2의 차트에 나와 있는 버전과 비교합니다.
이 스크립트를 .ps1 파일로 저장한 후 PowerShell에서 스크립트를 실행합니다. 이 스크립트는 Windows XP 및 Windows Server 2003 이상 버전에 적용되며, 스크립트를 실행하려면 Windows PowerShell 2.0 이상 버전이 필요합니다.
[reflection.assembly]::LoadWithPartialName("System.Version")
$os = Get-WmiObject -class Win32_OperatingSystem
$osName = $os.Caption
$s = "%systemroot%\system32\drivers\srv.sys"
$v = [System.Environment]::ExpandEnvironmentVariables($s)
If (Test-Path "$v")
{
Try
{
$versionInfo = (Get-Item $v).VersionInfo
$versionString = "$($versionInfo.FileMajorPart).$($versionInfo.FileMinorPart).$($versionInfo.FileBuildPart).$($versionInfo.FilePrivatePart)"
$fileVersion = New-Object System.Version($versionString)
}
Catch
{
Write-Host "Unable to retrieve file version info, please verify vulnerability state manually." -ForegroundColor Yellow
Return
}
}
Else
{
Write-Host "Srv.sys does not exist, please verify vulnerability state manually." -ForegroundColor Yellow
Return
}
if ($osName.Contains("Vista") -or ($osName.Contains("2008") -and -not $osName.Contains("R2")))
{
if ($versionString.Split('.')[3][0] -eq "1")
{
$currentOS = "$osName GDR"
$expectedVersion = New-Object System.Version("6.0.6002.19743")
}
elseif ($versionString.Split('.')[3][0] -eq "2")
{
$currentOS = "$osName LDR"
$expectedVersion = New-Object System.Version("6.0.6002.24067")
}
else
{
$currentOS = "$osName"
$expectedVersion = New-Object System.Version("9.9.9999.99999")
}
}
elseif ($osName.Contains("Windows 7") -or ($osName.Contains("2008 R2")))
{
$currentOS = "$osName LDR"
$expectedVersion = New-Object System.Version("6.1.7601.23689")
}
elseif ($osName.Contains("Windows 8.1") -or $osName.Contains("2012 R2"))
{
$currentOS = "$osName LDR"
$expectedVersion = New-Object System.Version("6.3.9600.18604")
}
elseif ($osName.Contains("Windows 8") -or $osName.Contains("2012"))
{
$currentOS = "$osName LDR"
$expectedVersion = New-Object System.Version("6.2.9200.22099")
}
elseif ($osName.Contains("Windows 10"))
{
if ($os.BuildNumber -eq "10240")
{
$currentOS = "$osName TH1"
$expectedVersion = New-Object System.Version("10.0.10240.17319")
}
elseif ($os.BuildNumber -eq "10586")
{
$currentOS = "$osName TH2"
$expectedVersion = New-Object System.Version("10.0.10586.839")
}
elseif ($os.BuildNumber -eq "14393")
{
$currentOS = "$($osName) RS1"
$expectedVersion = New-Object System.Version("10.0.14393.953")
}
elseif ($os.BuildNumber -eq "15063")
{
$currentOS = "$osName RS2"
"No need to Patch. RS2 is released as patched. "
return
}
}
elseif ($osName.Contains("2016"))
{
$currentOS = "$osName"
$expectedVersion = New-Object System.Version("10.0.14393.953")
}
elseif ($osName.Contains("Windows XP"))
{
$currentOS = "$osName"
$expectedVersion = New-Object System.Version("5.1.2600.7208")
}
elseif ($osName.Contains("Server 2003"))
{
$currentOS = "$osName"
$expectedVersion = New-Object System.Version("5.2.3790.6021")
}
else
{
Write-Host "Unable to determine OS applicability, please verify vulnerability state manually." -ForegroundColor Yellow
$currentOS = "$osName"
$expectedVersion = New-Object System.Version("9.9.9999.99999")
}
Write-Host "`n`nCurrent OS: $currentOS (Build Number $($os.BuildNumber))" -ForegroundColor Cyan
Write-Host "`nExpected Version of srv.sys: $($expectedVersion.ToString())" -ForegroundColor Cyan
Write-Host "`nActual Version of srv.sys: $($fileVersion.ToString())" -ForegroundColor Cyan
If ($($fileVersion.CompareTo($expectedVersion)) -lt 0)
{
Write-Host "`n`n"
Write-Host "System is NOT Patched" -ForegroundColor Red
}
Else
{
Write-Host "`n`n"
Write-Host "System is Patched" -ForegroundColor Green
}
#
참조
MS17-010과 관련된 규정 준수 보고를 위한 Configuration Manager SQL Server 쿼리
이 문서의 적용 대상은 다음과 같습니다.
-
Windows Server 2016
-
Windows 10 버전 1607
-
Windows 10 버전 1511
-
Windows 10 버전 1507
-
Windows Server 2012 R2
-
Windows 8.1
-
Windows Server 2012
-
Windows 8
-
Windows Server 2008 R2
-
Windows 7
-
Windows Server 2008 서비스 팩 2
-
Windows Vista
-
Windows Server 2003 서비스 팩 2
-
Windows XP