Notepad++ 공급망 공격 분석
(securelist.com)- Notepad++ 업데이트 인프라가 침해되어 악성 업데이트가 배포된 공급망 공격이 2025년 중반부터 10월까지 지속됨
- 공격자는 Cobalt Strike Beacon과 Metasploit 다운로더를 활용해 세 차례에 걸친 서로 다른 감염 체인을 운영
- 감염 대상은 베트남·엘살바도르·호주 개인 사용자, 필리핀 정부기관, 엘살바도르 금융기관, 베트남 IT 서비스 기업 등으로 확인
- 공격 방식은 NSIS 인스톨러 악용, ProShow 취약점 이용, Lua 스크립트 실행, DLL 사이드로딩 등으로 다양하게 변화
- 카스퍼스키는 Kaspersky Next EDR Expert로 해당 공격을 탐지했으며, temp.sh 통신·명령 실행 흔적·레지스트리 자동실행 등록 등을 주요 탐지 지표로 제시
사건 개요
- 2026년 2월 2일 Notepad++ 개발팀은 업데이트 서버가 호스팅 제공업체 수준에서 침해되었다고 발표
- 침해 기간은 2025년 6월~9월, 내부 서비스 접근은 12월까지 지속
- 카스퍼스키는 2025년 7월~10월 사이 공격자가 C2 서버 주소, 다운로더, 페이로드를 지속적으로 교체하며 공격을 이어간 것을 확인
- 피해자는 소수의 표적 시스템으로, 총 10여 대의 컴퓨터가 감염된 것으로 분석
감염 체인 #1 (2025년 7월 말~8월 초)
- 악성 업데이트 파일:
http://45.76.155[.]202/update/update.exe- SHA1: 8e6e505438c21f3d281e1cc257abdbf7223b7f5a
- 합법적 프로세스
GUP.exe가 실행하며, 시스템 정보 수집 후 temp.sh에 업로드-
whoami,tasklist명령 실행 결과를curl로 전송
-
- 이후
%appdata%\ProShow폴더에 여러 파일을 드롭하고ProShow.exe실행-
ProShow의 2010년대 취약점을 악용해
load파일 내 Metasploit 다운로더를 실행 - 다운로더는 Cobalt Strike Beacon을
https://45.77.31[.]210/users/admin에서 받아 실행
-
ProShow의 2010년대 취약점을 악용해
- 8월 초에는 동일 체인으로
cdncheck.it[.]com도메인을 이용한 변종이 관찰됨
감염 체인 #2 (2025년 9월 중·하순)
- 동일 URL에서 배포된
update.exe(SHA1: 573549869e84544e3ef253bdba79851dcde4963a)-
%APPDATA%\Adobe\Scripts폴더 사용 -
whoami,tasklist,systeminfo,netstat -ano명령으로 세부 시스템 정보 수집
-
- 드롭 파일:
alien.dll,lua5.1.dll,script.exe,alien.ini-
Lua 인터프리터를 이용해
alien.ini내 쉘코드 실행 - Metasploit 다운로더가
cdncheck.it[.]com/users/admin에서 Cobalt Strike Beacon을 다운로드
-
Lua 인터프리터를 이용해
- 9월 말에는 업로드 URL이
https://self-dns.it[.]com/list, C2 서버가safe-dns.it[.]com으로 변경된 변종 등장
감염 체인 #3 (2025년 10월)
- 새로운 업데이트 서버:
http://45.32.144[.]255/update/update.exe- SHA1: d7ffd7b588880cf61b603346a3557e7cce648c93
-
%appdata%\Bluetooth\폴더에 파일 드롭-
BluetoothService.exe(정상),log.dll(악성),BluetoothService(암호화된 쉘코드)
-
-
DLL 사이드로딩으로
log.dll이BluetoothService쉘코드를 실행- Chrysalis 백도어와 유사한 구조로, Rapid7 분석 결과 Cobalt Strike Beacon도 함께 배포된 사례 존재
체인 #2의 재등장 및 URL 변경 (2025년 10월 중순~말)
- 새 URL:
http://95.179.213[.]0/update/update.exe- 기존
self-dns.it[.]com,safe-dns.it[.]com도메인 재사용
- 기존
- 10월 말에는
install.exe,AutoUpdater.exe등 파일명으로 변형- 11월 이후 추가 감염은 관찰되지 않음
결론 및 탐지 권고
- 공격자는 Notepad++ 업데이트 서버를 장악해 고위험 조직 침투를 시도
- 감염 체인을 월 단위로 변경하며 지속적 접근 유지
- 탐지 및 대응 권장 사항
-
NSIS 인스톨러 생성 로그(
%localappdata%\Temp\ns.tmp) 확인 - temp.sh 도메인 통신 및 User-Agent 내 URL 포함 요청 탐지
- whoami, tasklist, systeminfo, netstat -ano 명령 실행 흔적 점검
- IoC 목록 기반 악성 도메인 및 파일 해시 탐색
-
NSIS 인스톨러 생성 로그(
Kaspersky 탐지
-
Kaspersky Next EDR Expert가 공격 행위를 탐지
- lolc2_connection_activity_network 규칙으로 temp.sh 통신 탐지
- system_owner_user_discovery, system_information_discovery_win 등 규칙으로 로컬 정찰 명령 탐지
- temporary_folder_in_registry_autorun 규칙으로 레지스트리 자동실행 등록 탐지
주요 IoC 요약
- 악성 업데이트 URL:
- Cobalt Strike 관련 URL:
- 악성 파일 경로:
-
%appdata%\ProShow\load,%appdata%\Adobe\Scripts\alien.ini,%appdata%\Bluetooth\BluetoothService
-
- 주요 해시:
-
8e6e505438c21f3d281e1cc257abdbf7223b7f5a,573549869e84544e3ef253bdba79851dcde4963a,d7ffd7b588880cf61b603346a3557e7cce648c93등
-
이 사건은 공급망 공격의 정교화와 다단계 감염 체인의 진화를 보여주며, 개발자 및 IT 인프라 운영자의 업데이트 무결성 검증 강화 필요성을 강조함.
Hacker News 의견들
-
WinGUp 업데이트 프로그램이 공격에 악용된 사례는 공급망 공격의 전형적인 예시임
공격자는 업데이트 채널을 신뢰하는 시스템에서 코드 실행 권한을 얻음
특히 6개월 동안 탐지되지 않았다는 점이 우려스러움
조직은 단계적 롤아웃과 이상 네트워크 트래픽 모니터링을, 개인은 암호학적 검증이 있는 패키지 매니저 사용을 고려해야 함- Windows에는 여전히 표준화된 패키지 매니저 부재가 문제임
많은 프로그램이 광고로 가득한 웹사이트에서 다운로드되고, 각자 다른 방식으로 업데이트됨
Microsoft Store가 이를 바꿀 기회였지만, 설계와 평판 모두 실패했음
WinGet은 훨씬 낫지만 아직은 개발자 중심 도구 수준임
- Windows에는 여전히 표준화된 패키지 매니저 부재가 문제임
-
나는 Notepad++를 기본 메모장 대체로 사용 중임
네트워크 연결이 기본으로 켜져 있는 이유를 이해하지 못했음
처음 한 일은 그걸 끄는 것이었고, 지금은 2020년 버전을 만족스럽게 사용 중임
언젠가 필요하면 직접 수동 업데이트할 생각임 -
Notepad++는 내가 가장 좋아하는 에디터 중 하나였지만, 이번 공격 이후 IT 부서에서 사용 금지됨
보안 점검 시 설치 여부까지 확인함- 신뢰가 완전히 무너졌음
공식 블로그의 대응도 불안했고, 신뢰 회복까지 오랜 시간이 걸릴 것 같음 - 나도 같은 생각임
탭과 맞춤법 검사 두 가지 기능이 핵심인데, 이제 기본 Notepad도 이를 지원함
다만 CoPilot 버튼이 생겼지만 설정에서 끌 수 있음
- 신뢰가 완전히 무너졌음
-
나는 이런 이유로 많은 도구를 sandbox 환경에서 실행함
이렇게 하면 피해가 해당 디렉터리로 제한됨
도구가 내 클라우드 드라이브나 브라우저 쿠키에 접근할 이유는 없음- MacOS는 UI 논란이 많지만, 세분화된 권한 제어 측면에서는 가장 앞서 있다고 생각함
Linux 커뮤니티는 이런 접근에 저항하지만, 결국 iOS 스타일의 샌드박스 앱이 미래임
사용자가 앱의 행동을 통제하길 원하기 때문임
FOSS 진영이 이를 무시하면 결국 대형 기술기업 중심으로 중앙집중화될 것임 - 모든 앱이 기본적으로 샌드박스에서 실행되는 게 맞다고 느낌
앱이 루트 밖으로 나가지 못하게 하고, 외부 접근은 명시적으로 허용해야 함
MacOS의 접근 요청은 많지만, 더 세밀한 권한 제어가 필요하다고 생각함 - 샌드박스 실행 시 인터넷 접근 차단도 중요함
텍스트 편집기는 네트워크 연결이 필요 없으며, 편집 중인 텍스트를 외부로 유출할 수 있음
공격자는 시스템 정보를 전송하고, temp.sh 같은 서비스로 파일을 업로드한 뒤 C2 서버와 통신함
예시로 Cobalt Strike Beacon이 cdncheck.it[.]com과 통신하는 코드가 있음 - Windows에서 샌드박스를 어떻게 구현하냐는 질문이 나옴
- MacOS는 UI 논란이 많지만, 세분화된 권한 제어 측면에서는 가장 앞서 있다고 생각함
-
이번 공격은 개발자와 사용자가 직접 검증하지 않은 코드를 점점 더 신뢰하게 되는 현상을 보여줌
npm/pip 패키지 설치, AI 생성 코드, ‘vibe coding’ 트렌드 등에서도 같은 문제가 반복됨
Notepad++는 단일 바이너리라 그나마 나은 사례지만, 현대 개발 환경에서는 수백 개의 의존성과 AI 코드가 얽혀 있음
샌드박싱도 중요하지만, 진짜 문제는 코드가 할 수 있는 일과 기대하는 일의 괴리임
실행 중인 코드를 더 잘 이해할 수 있는 도구가 필요함- 하지만 내 경험상 신뢰는 오히려 감소하고 있음
15년 전에는 아무도 공급망을 걱정하지 않았고, Unix 사용자들은 검증 없이 tarball을 빌드했음 - Ken Thompson의 고전 논문 “Reflections on Trusting Trust”을 떠올림
샌드박싱은 도움이 되지만 완벽한 해결책은 아님
Notepad++처럼 시스템 파일 편집 권한을 가진 유틸리티는 여전히 위험함
- 하지만 내 경험상 신뢰는 오히려 감소하고 있음
-
혹시 감염을 탐지하고 정리할 수 있는 공식 툴이 있는지 궁금함
- Windows는 감염되면 디스크 초기화 후 OS 재설치가 유일한 해결책임
악성코드는 시스템 곳곳에 숨을 수 있고, UAC 경고만으로는 막을 수 없음 - MS Defender 오프라인 모드 실행을 권장함
- Windows는 감염되면 디스크 초기화 후 OS 재설치가 유일한 해결책임
-
지금 감염된 상태라면 Malwarebytes로 탐지할 수 있는지 궁금함
- OP 글에 침해 지표(IOC) 목록이 있음
Rapid7 분석 글에도 동일한 내용이 있음
원문 공지에 이 링크가 없었던 게 의외임 - 하지만 Malwarebytes는 최근 품질 저하로 예전만큼 유용하지 않음
- OP 글에 침해 지표(IOC) 목록이 있음
-
Notepad++의 디지털 서명을 어떻게 우회했는지 궁금함
직접 다운로드해보니 유효한 코드 서명이 있었음- 공식 공지에 따르면, 인증서 없이 배포된 버전이 있었음
- 업데이트 프로그램이 새 설치 파일의 인증서를 검증하지 않고 그냥 실행했음
-
이제는 보안 취약점을 막기 위해 업데이트를 자주 해야 하지만, 공급망 공격을 피하려면 업데이트를 자제해야 하는 모순된 상황임
어떻게 균형을 잡아야 할지 모르겠음- 예전에는 업데이트가 시스템을 불안정하게 만들기도 했음
최근 Microsoft 업데이트도 신뢰성이 떨어지고, 부팅 불가 같은 문제로 인해 자동 업데이트를 끄는 사람이 늘어남 -
Dependabot의 cooldown 설정처럼 일정 지연 후 업데이트를 적용하는 로컬 패키지 매니저가 있으면 좋겠음
관련 문서: GitHub Dependabot 옵션 - 결국 제로데이 취약점과 공급망 공격 간의 트레이드오프임
인터넷 연결이 많은 앱은 자주 업데이트하고, 단순한 로컬 툴은 자동 업데이트를 꺼도 무방함 - 사용 환경에 따라 다름
인터넷 콘텐츠를 다루면 업데이트가 필수지만, 로컬 전용이라면 필요할 때만 업데이트하면 됨
대부분은 그 중간 어딘가에 있음
- 예전에는 업데이트가 시스템을 불안정하게 만들기도 했음
-
참고용으로 Rapid7의 분석 글이 공유됨