WSUS(Windows Server Update Services)는 Microsoft에서 제공하는 서비스로, 조직 내의 Windows 운영체제와 Microsoft 제품에 대한 업데이트를 중앙에서 관리하고 배포하는 기능을 제공합니다. 그러나 최근 WSUS에서 심각한 취약점인 CVE-2025-59287이 발견되었습니다. 이 취약점은 신뢰할 수 없는 데이터를 검증 없이 역직렬화하여 원격 코드 실행이 가능하다는 문제를 안고 있습니다.
CVE-2025-59287 개요
취약점 설명
CVE-2025-59287은 WSUS의 EncryptionHelper.DecryptData() 메서드에서 발생하는 원격 코드 실행 취약점입니다. 이 취약점은 CVSS 점수 9.8로 매우 높은 위험도를 가지고 있습니다. 공격자는 이 메서드를 통해 복호화된 바이트를 적절한 검증 없이 역직렬화하여 시스템 권한으로 악성 코드를 실행할 수 있습니다.
코드 분석
취약한 코드의 주요 흐름은 다음과 같습니다:
- 데이터 검증 부족:
cookieData가 null인지 확인하지 않고 진행됩니다. - 복호화 과정: AES-128-CBC를 통해
cookieData를 복호화합니다. - 자료의 타입 확인: 복호화된 데이터가 예상한 타입인지 확인하지 않으면, 잘못된 데이터 타입으로 인해 취약점이 발생합니다.
아래는 해당 메서드의 예시 코드입니다:
csharp
internal object DecryptData(byte[] cookieData)
{
if (cookieData == null)
{
throw new LoggedArgumentNullException("cookieData");
}
// ...
if (this.classType == typeof(UnencryptedCookieData))
{
// Deserialize logic here
}
else
{
// BinaryFormatter.Deserialize logic here
}
}
공격 벡터
HTTP 요청 방식
공격자는 WSUS 서버로 악성 코드를 실행할 수 있는 HTTP 요청을 보내는 방식으로 공격합니다. 아래는 예시 요청입니다:
“`
POST /ClientWebService/Client.asmx HTTP/1.1
Host: WSUS-SERVER:8530
Content-Type: text/xml; charset=utf-8
SOAPAction: “http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/GetCookie”
Content-Length: 3632
“`
대응 방안
업데이트 적용
이 취약점에 대한 가장 효과적인 대응은 Microsoft에서 제공하는 보안 업데이트를 적용하는 것입니다. 만약 업데이트를 적용할 수 없는 경우, WSUS를 비활성화하거나 포트 8530 및 8531로의 인바운드 트래픽을 차단하는 방법이 있습니다. 다만, 이러한 조치는 WSUS 기능이 완전히 중단되므로 서비스에 영향을 미칠 수 있습니다.
기본 비활성화 상태
WSUS는 기본적으로 비활성화 상태이기 때문에, 서비스를 시작하기 전 이 취약점에 대한 인지를 가지고 주의하는 것이 중요합니다.
자주 묻는 질문
질문1: CVE-2025-59287의 위험성은?
CVE-2025-59287은 CVSS 점수가 9.8로, 시스템 권한으로 악성 코드를 실행할 수 있는 심각한 취약점입니다.
질문2: 어떻게 대응해야 하나요?
Microsoft의 보안 업데이트를 적용하거나, 업데이트가 불가능한 경우 WSUS를 비활성화하거나 포트 차단을 고려해야 합니다.
질문3: WSUS의 기본 상태는 어떻게 되나요?
WSUS는 기본적으로 비활성화 상태이므로, 서비스 시작 전에 취약점을 인지하고 대응 방안을 마련해야 합니다.
질문4: 이 취약점 외에 WSUS와 관련된 다른 취약점은 무엇이 있나요?
WSUS와 관련된 다양한 취약점이 있으며, 정기적인 보안 점검이 필요합니다.
질문5: 취약점 관련 자료는 어디서 찾을 수 있나요?
Microsoft 공식 웹사이트 및 보안 관련 블로그에서 해당 취약점에 대한 자료를 확인할 수 있습니다.