콘텐츠로 이동하기
위협 인텔리전스

ViewState 역직렬화 취약점을 악용한 KnowledgeDeliver 공격

2026년 5월 26일
Mandiant

Google Threat Intelligence Group

Mandiant Services

Stop attacks, reduce risk, and advance your security.

Contact Mandiant

해당 블로그의 원문은 2026년 5월 26일 Google Cloud 블로그(영문)에 게재되었습니다. 


작성자: Takahiro Sugiyama, Peter Revelant, Mathew Potaczek


서론

2025년 말, 맨디언트(Mandiant)는 KnowledgeDeliver를 구동 중인 웹 서버의 침해 사고 대응을 진행했습니다. KnowledgeDeliver는 디지털 날리지(Digital Knowledge) 사가 개발하여 일본에서 널리 사용되는 학습관리시스템(LMS)입니다. 맨디언트는 인증되지 않은 원격 코드 실행(RCE)을 허용하는 치명적인 취약점을 식별했으며, 신원 미상의 위협 행위자가 이 권한을 남용해 사이트를 방문하는 사용자들을 감염시킬 목적으로 LMS 플랫폼에 악성 코드를 주입한 사실을 확인했습니다.

이 취약점은 여러 고객사의 배포 환경 전반에 걸쳐 동일한 사전 공유 ASP.NET 머신 키(machine keys)를 사용함으로써 발생합니다. 최초에 제로데이(Zero-day) 형태로 악용되었던 이 취약점은 현재 CVE-2026-5426으로 추적 및 관리되고 있습니다.

취약점 분석

2026년 2월 24일 이전에 배포된 KnowledgeDeliver 설치 버전들은 벤더사에서 제공하는 표준화된 web.config 파일에 의존했습니다. 이 설정 파일에는 뷰스테이트(ViewState) 페이로드를 포함한 데이터의 암호화 및 서명에 ASP.NET 프레임워크가 사용하는 machineKey 값이 하드코딩되어 있었습니다.

이러한 키들이 서로 다른 독립적인 고객 환경 전반에 걸쳐 완전히 동일했기 때문에, 단 하나의 배포 환경에서만 키를 확보한 위협 행위자라도 외부 인터넷에 노출된 다른 모든 KnowledgeDeliver 인스턴스를 침해할 수 있었습니다.

다음은 web.config 파일에서 발견된 관련 설정 라인의 예시입니다:

<machineKey decryptionKey="<REDACTED>" validationKey="<REDACTED>" />

ASP.NET 뷰스테이트(ViewState)는 포스트백(postback) 전반에 걸쳐 페이지 상태를 유지합니다. machineKey가 알려진 경우, 위협 행위자는 악성 ViewState 페이로드를 조작할 수 있습니다. HTTP 요청(__VIEWSTATE 매개변수를 통해)에 이 페이로드를 포함해 전송함으로써, 위협 행위자는 서버가 이를 역직렬화하도록 만들 수 있습니다.

이 기법은 맨디언트가 이전에 보고했던 Sitecore에 영향을 미치는 ViewState 역직렬화 제로데이 취약점과 마이크로소프트(Microsoft)가 보고한 공개된 ASP.NET 머신 키를 악용한 코드 주입 공격의 패턴을 따릅니다. 이는 머신 키를 고유하고 안전하게 유지하는 것이 얼마나 중요한지 보여줍니다.

침해 후 추가 활동

일단 권한을 획득한 후, 위협 행위자들은 침해 상태를 유지하고 피해 범위를 확장하는 데 집중했습니다.

BLUEBEAM 웹셸 배포

위협 행위자는 BLUEBEAM(Godzilla로도 알려짐)이라고 불리는 .NET 기반 인메모리 웹셸을 배포했습니다. BLUEBEAM의 사용은 마이크로소프트의 보고서 내용과 일치합니다. 이 악성코드는 IIS 워커 프로세스(w3wp.exe) 내의 메모리 상에서만 완전히 작동하기 때문에, 기존의 파일 기반 스캔으로는 감지하기가 대단히 어렵습니다. 또한 위협 행위자는 HTTP POST 요청 바디를 통해 암호화된 데이터를 전송함으로써 추가적인 명령과 페이로드를 실행할 수 있습니다.

파일 변조

위협 행위자가 웹 서버의 파일 시스템에 대한 제어 권한을 상승시키기 위해 다음과 같은 명령을 실행하는 것이 관찰되었습니다:

  1. 권한 수정: 위협 행위자는 icacls를 사용하여 웹 애플리케이션 디렉토리에 대해 "Everyone"에게 모든 권한을 부여했습니다.

  2. 자바스크립트 변조: 위협 행위자는 애플리케이션 자바스크립트 파일을 수정하여 다음과 같은 작업을 수행하는 코드를 추가했습니다:

    • 가짜 보안 경고를 표시하여 사용자가 "보안 인증 플러그인"을 설치하도록 유도합니다.

    • 위협 행위자가 제어하는 도메인에 호스팅된 원격 악성 스크립트를 사용자 모르게 백그라운드에서 로드합니다.

코발트 스트라이크 감염

원격 스크립트는 가짜 설치 프로그램을 다운로드하도록 사용자를 속여, 결과적으로 사용자의 워크스테이션이 코발트 스트라이크 비컨(Cobalt Strike BEACON) 백도어에 감염되도록 유도했습니다. 이 페이로드는 침해된 조직의 이름을 사용한 키로 암호화되었으며, 이는 위협 행위자가 표적이 된 특정 조직만을 위해 이 페이로드를 별도로 준비했음을 시사합니다.

위협 사냥 방법

기업들은 잠재적인 ViewState 악용 및 침해 후 활동을 식별하기 위해 다음과 같은 지표들을 모니터링해야 합니다.

1. 애플리케이션 이벤트 로그 (이벤트 ID 1316)

소스 ASP.NET 4.0.30319.0(또는 유사한 소스)에서 생성되는 이벤트 ID 1316에 대한 Windows 애플리케이션 로그를 모니터링하십시오.

  • 실패한 시도 (무결성 검증 실패): 이벤트 코드: 4009-++-Viewstate 검증에 실패했습니다. 사유: 제공된 viewstate 무결성 검사에 실패했습니다. 잘못된 키를 사용한 공격 시도를 나타낼 수 있습니다.

  • 성공적인 실행 (잘못된 ViewState): 이벤트 코드: 4009-++-Viewstate 검증에 실패했습니다. 사유: Viewstate가 잘못되었습니다. 무결성 검사가 통과되었음을 확인합니다. 페이로드의 역직렬화가 시도되었으며 성공했을 가능성이 있습니다. 페이로드는 실행되었을 수도 있고 실행되지 않았을 수도 있습니다.

맨디언트는 서버의 머신 키를 사용하여 이벤트 로그 메시지에 기록된 페이로드 문자열을 복호화했으며, 이를 통해 BLUEBEAM 웹셸과 관련된 페이로드를 복구했습니다.

2. 의심스러운 프로세스 활동

w3wp.exe에 의해 생성되는 비정상적인 자식 프로세스를 모니터링하십시오. 관찰된 명령은 다음과 같습니다:

  • cmd.exe /c ...

  • whoami

  • powershell.exe

3. 파일 무결성 모니터링

웹 루트 내의 .js.aspx 또는 .config 파일에 대한 무단 변경 사항을 모니터링하십시오. 특히, 원격 스크립트 로더가 추가되었는지 또는 자주 사용되는 라이브러리에 비정상적인 로직이 있는지 확인하십시오.

4. 비정상적인 User-Agent 문자열

맨디언트는 서로 다른 두 개의 식별자가 하나로 병합되어 구성된 User-Agent 문자열을 식별했으며, 이는 ViewState 역직렬화 제로데이 취약점 보고서에 언급된 내용과 일치합니다. 웹 요청 로그에서 이러한 비정상적인 User-Agent 문자열이 나타나는지 모니터링하십시오. 식별된 User-Agent 문자열의 예시는 다음과 같습니다:

  • Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1216.0 Safari/537.2 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36

  • Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101213 Opera/9.80 (Windows NT 6.1; U; zh-tw) Presto/2.7.62 Version/11.01 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36

  • Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0) chromeframe/10.0.648.205 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36

조치 및 완화 방안

  • 머신 키 순환(Rotate Machine Keys): 각 KnowledgeDeliver 인스턴스에 대해 고유하고 암호학적으로 강력한 머신 키를 즉시 새로 생성하십시오. 이는 공유 비밀키를 무효화할 수 있는 유일한 방법입니다.

  • 액세스 제한(Restrict Access): 가능하면 LMS에 대한 액세스를 조직이 신뢰하는 IP 주소 범위로 한정하십시오.

  • 조사 수행(Investigation): 이러한 활동을 지속적으로 사냥하고, 취약점 악용의 징후가 식별될 경우 즉각적이고 철저한 보안 조사를 진행하십시오.

KnowledgeDeliver의 취약점 악용 사례는 배포 템플릿 내에서 공유 비밀키(shared secrets)를 사용하는 것이 얼마나 심각한 위험을 초래하는지 잘 보여줍니다. 단 하나의 유출된 키만으로도 전체 설치 에코시스템이 무너질 수 있습니다. 고유한 비밀키를 적용하고 강력한 엔드포인트 모니터링을 구축함으로써, 기업들은 이러한 역직렬화 공격을 효과적으로 방어할 수 있습니다.

침해 지표 (IOCs)

본 블로그 포스트에 기술된 위협 활동을 커뮤니티 전반에서 원활히 사냥하고 식별할 수 있도록 돕기 위해, 가입자용 무료 GTI Collection에 침해 지표(IOC) 목록을 제공해 두었습니다.

파일 이름

유형

SHA-256

LoadLibrary.dll

BLUEBEAM

7c1f99dca8e5a7897892f9d224a6495023a2cfd2671697d229d355978c415ed2

Google Security Operations (SecOps) 

다음 Google SecOps 검색 규칙을 사용하여 이러한 침해 활동을 헌팅할 수 있습니다.

(metadata.log_type = "WINEVTLOG" or metadata.log_type = "WINEVTLOG_XML") 
metadata.product_event_type = "1316"
additional.fields["Message"] = /Event code: 4009\b/ nocase
(metadata.event_type = "PROCESS_LAUNCH" or metadata.event_type = "PROCESS_OPEN") AND
principal.process.command_line = /w3wp.exe/ nocase AND
target.process.command_line = /cmd.+ \/c |whoami|powershell/ nocase

Google SecOps 고객은 Mandiant Hunting Rules, Mandiant Frontline Threats, Mandiant Intel Emerging Threats 룰 팩을 통해 다음을 포함한 다양한 탐지 규칙을 사용할 수 있습니다.

  • ASP.NET ViewState Deserialization Attempt (ASP.NET ViewState 역직렬화 시도)

  • W3wp Launching Cmd With Recon Commands (정찰 명령어가 포함된 Cmd를 실행하는 W3wp)

  • W3wp Launching Encoded Powershell (인코딩된 Powershell을 실행하는 W3wp)

  • W3wp Launching Icacls (Icacls를 실행하는 W3wp)

  • Web Server Process Launching Whoami (Whoami를 실행하는 웹 서버 프로세스)

  • IIS ViewState Exploitation Success (IIS ViewState 취약점 악용 성공)

  • IIS ViewState Exploitation Followed by Web Root File Tampering (IIS ViewState 취약점 악용 후 웹 루트 파일 변조 발생)

  • Possible Windows Exchange Server Spawning Shell (Windows Exchange Server의 셸 실행 가능성)

감사의 글

맨디언트(Mandiant)는 이번 취약점 공개 과정에서 긴밀하게 협력해 준 디지털 날리지(Digital Knowledge) 팀에 깊은 감사의 뜻을 전합니다.

게시 위치