Phân tích vụ tấn công chuỗi cung ứng nhắm vào Notepad++
(securelist.com)- Một cuộc tấn công chuỗi cung ứng phát tán bản cập nhật độc hại sau khi hạ tầng cập nhật của Notepad++ bị xâm phạm đã kéo dài từ giữa năm 2025 đến tháng 10
- Kẻ tấn công đã vận hành ba chuỗi lây nhiễm khác nhau qua ba đợt, sử dụng Cobalt Strike Beacon và trình tải Metasploit
- Các mục tiêu bị lây nhiễm được xác định gồm người dùng cá nhân tại Việt Nam, El Salvador và Australia, cơ quan chính phủ Philippines, tổ chức tài chính ở El Salvador và doanh nghiệp dịch vụ CNTT tại Việt Nam
- Phương thức tấn công liên tục thay đổi đa dạng, gồm lạm dụng trình cài đặt NSIS, khai thác lỗ hổng ProShow, thực thi script Lua và DLL sideloading
- Kaspersky đã phát hiện cuộc tấn công bằng Kaspersky Next EDR Expert, đồng thời nêu ra các chỉ dấu phát hiện chính như liên lạc với temp.sh, dấu vết thực thi lệnh và đăng ký tự khởi động trong registry
Tổng quan sự cố
- Ngày 2/2/2026, đội ngũ phát triển Notepad++ thông báo rằng máy chủ cập nhật đã bị xâm phạm ở cấp độ nhà cung cấp dịch vụ lưu trữ
- Thời gian bị xâm phạm là từ tháng 6 đến tháng 9/2025, và việc truy cập vào các dịch vụ nội bộ tiếp diễn đến tháng 12
- Kaspersky xác nhận rằng từ tháng 7 đến tháng 10/2025, kẻ tấn công đã liên tục thay đổi địa chỉ máy chủ C2, trình tải và payload để duy trì chiến dịch
- Nạn nhân là một số ít hệ thống mục tiêu, với tổng cộng hơn 10 máy tính được xác định đã bị lây nhiễm
Chuỗi lây nhiễm #1 (cuối tháng 7 đến đầu tháng 8/2025)
- Tệp cập nhật độc hại:
http://45.76.155[.]202/update/update.exe- SHA1: 8e6e505438c21f3d281e1cc257abdbf7223b7f5a
- Tiến trình hợp pháp
GUP.exeđược thực thi, sau đó thu thập thông tin hệ thống rồi tải lên temp.sh- Kết quả thực thi các lệnh
whoami,tasklistđược gửi bằngcurl
- Kết quả thực thi các lệnh
- Sau đó, nhiều tệp được thả vào thư mục
%appdata%\ProShowvàProShow.exeđược chạy- Lỗ hổng từ thập niên 2010 của ProShow bị khai thác để thực thi trình tải Metasploit trong tệp
load - Trình tải này lấy và thực thi Cobalt Strike Beacon từ
https://45.77.31[.]210/users/admin
- Lỗ hổng từ thập niên 2010 của ProShow bị khai thác để thực thi trình tải Metasploit trong tệp
- Đầu tháng 8, một biến thể sử dụng tên miền
cdncheck.it[.]comcũng được quan sát với cùng chuỗi này
Chuỗi lây nhiễm #2 (giữa đến cuối tháng 9/2025)
update.exeđược phân phối từ cùng URL (SHA1: 573549869e84544e3ef253bdba79851dcde4963a)- Sử dụng thư mục
%APPDATA%\Adobe\Scripts - Thu thập thông tin hệ thống chi tiết bằng các lệnh
whoami,tasklist,systeminfo,netstat -ano
- Sử dụng thư mục
- Các tệp được thả gồm:
alien.dll,lua5.1.dll,script.exe,alien.ini- Sử dụng trình thông dịch Lua để thực thi shellcode trong
alien.ini - Trình tải Metasploit tải Cobalt Strike Beacon từ
cdncheck.it[.]com/users/admin
- Sử dụng trình thông dịch Lua để thực thi shellcode trong
- Cuối tháng 9, xuất hiện biến thể đổi URL tải lên thành
https://self-dns.it[.]com/listvà máy chủ C2 thànhsafe-dns.it[.]com
Chuỗi lây nhiễm #3 (tháng 10/2025)
- Máy chủ cập nhật mới:
http://45.32.144[.]255/update/update.exe- SHA1: d7ffd7b588880cf61b603346a3557e7cce648c93
- Các tệp được thả vào thư mục
%appdata%\Bluetooth\BluetoothService.exe(hợp pháp),log.dll(độc hại),BluetoothService(shellcode đã mã hóa)
- DLL sideloading được dùng để
log.dllthực thi shellcode củaBluetoothService- Cấu trúc này tương tự backdoor Chrysalis, và theo phân tích của Rapid7, cũng có trường hợp Cobalt Strike Beacon được phát tán kèm theo
Chuỗi #2 quay trở lại và thay đổi URL (giữa đến cuối tháng 10/2025)
- URL mới:
http://95.179.213[.]0/update/update.exe- Tái sử dụng các tên miền
self-dns.it[.]comvàsafe-dns.it[.]comtrước đó
- Tái sử dụng các tên miền
- Cuối tháng 10, tên tệp tiếp tục bị biến đổi thành
install.exe,AutoUpdater.exev.v.- Không ghi nhận thêm ca lây nhiễm nào sau tháng 11
Kết luận và khuyến nghị phát hiện
- Kẻ tấn công đã chiếm quyền máy chủ cập nhật Notepad++ để tìm cách xâm nhập các tổ chức có giá trị cao
- Chuỗi lây nhiễm được thay đổi theo từng tháng để duy trì quyền truy cập liên tục
- Khuyến nghị phát hiện và ứng phó
- Kiểm tra log tạo bởi trình cài đặt NSIS (
%localappdata%\Temp\ns.tmp) - Phát hiện giao tiếp với tên miền temp.sh và các yêu cầu có chứa URL trong User-Agent
- Kiểm tra dấu vết thực thi các lệnh whoami, tasklist, systeminfo, netstat -ano
- Tìm kiếm tên miền độc hại và hash tệp dựa trên danh sách IoC
- Kiểm tra log tạo bởi trình cài đặt NSIS (
Phát hiện của Kaspersky
- Kaspersky Next EDR Expert đã phát hiện các hành vi tấn công
- Quy tắc lolc2_connection_activity_network phát hiện giao tiếp với temp.sh
- Các quy tắc system_owner_user_discovery, system_information_discovery_win v.v. phát hiện các lệnh trinh sát cục bộ
- Quy tắc temporary_folder_in_registry_autorun phát hiện đăng ký tự khởi động trong registry
Tóm tắt các IoC chính
- URL cập nhật độc hại:
- URL liên quan đến Cobalt Strike:
- Đường dẫn tệp độc hại:
%appdata%\ProShow\load,%appdata%\Adobe\Scripts\alien.ini,%appdata%\Bluetooth\BluetoothService
- Các hash chính:
8e6e505438c21f3d281e1cc257abdbf7223b7f5a,573549869e84544e3ef253bdba79851dcde4963a,d7ffd7b588880cf61b603346a3557e7cce648c93v.v.
Vụ việc này cho thấy mức độ tinh vi ngày càng cao của các cuộc tấn công chuỗi cung ứng và sự tiến hóa của các chuỗi lây nhiễm nhiều giai đoạn, đồng thời nhấn mạnh sự cần thiết phải tăng cường xác minh tính toàn vẹn của cơ chế cập nhật đối với nhà phát triển và đơn vị vận hành hạ tầng CNTT.
1 bình luận
Ý kiến trên Hacker News
Trường hợp trình cập nhật WinGUp bị lợi dụng là một ví dụ điển hình của tấn công chuỗi cung ứng
Kẻ tấn công giành được quyền thực thi mã trên các hệ thống tin tưởng kênh cập nhật
Đặc biệt đáng lo là việc này không bị phát hiện suốt 6 tháng
Tổ chức nên cân nhắc triển khai theo từng giai đoạn và giám sát lưu lượng mạng bất thường, còn cá nhân nên cân nhắc dùng package manager có xác minh mật mã
Nhiều chương trình được tải từ các website đầy quảng cáo và mỗi chương trình lại cập nhật theo cách riêng
Microsoft Store từng là cơ hội để thay đổi điều này, nhưng đã thất bại cả về thiết kế lẫn danh tiếng
WinGet tốt hơn nhiều, nhưng hiện vẫn chỉ ở mức công cụ thiên về nhà phát triển
Tôi dùng Notepad++ để thay thế Notepad mặc định
Tôi không hiểu vì sao kết nối mạng lại được bật sẵn theo mặc định
Việc đầu tiên tôi làm là tắt nó đi, và hiện tôi vẫn hài lòng dùng phiên bản năm 2020
Nếu sau này cần, tôi sẽ tự cập nhật thủ công
Notepad++ từng là một trong những trình soạn thảo tôi thích nhất, nhưng sau vụ tấn công này thì bộ phận IT đã cấm sử dụng
Khi kiểm tra bảo mật, họ còn kiểm tra cả việc có cài nó hay không
Cách phản hồi trên blog chính thức cũng gây bất an, và có lẽ sẽ mất rất lâu để khôi phục niềm tin
Hai tính năng cốt lõi là tab và kiểm tra chính tả, mà giờ Notepad mặc định cũng đã hỗ trợ
Chỉ là có thêm nút CoPilot, nhưng có thể tắt trong phần cài đặt
Vì lý do này mà tôi chạy nhiều công cụ trong môi trường sandbox
Làm vậy thì thiệt hại sẽ bị giới hạn trong thư mục đó
Không có lý do gì để công cụ truy cập vào cloud drive hay cookie trình duyệt của tôi
Cộng đồng Linux phản đối cách tiếp cận này, nhưng cuối cùng các ứng dụng sandbox kiểu iOS mới là tương lai
Vì người dùng muốn kiểm soát hành vi của ứng dụng
Nếu phe FOSS phớt lờ điều đó, cuối cùng mọi thứ sẽ bị tập trung hóa quanh các big tech
Ứng dụng không nên thoát ra ngoài phạm vi root của nó, và quyền truy cập ra bên ngoài phải được cho phép một cách rõ ràng
MacOS có nhiều yêu cầu xin quyền truy cập, nhưng tôi nghĩ vẫn cần kiểm soát quyền chi tiết hơn
Trình soạn thảo văn bản không cần kết nối mạng, nhưng lại có thể làm rò rỉ nội dung đang chỉnh sửa ra bên ngoài
Kẻ tấn công gửi thông tin hệ thống, tải file lên các dịch vụ như temp.sh, rồi giao tiếp với máy chủ C2
Ví dụ có đoạn mã cho thấy Cobalt Strike Beacon giao tiếp với cdncheck.it[.]com
Vụ tấn công này cho thấy cả nhà phát triển lẫn người dùng ngày càng tin vào đoạn mã chưa được tự mình xác minh
Cùng một vấn đề lặp lại trong việc cài gói npm/pip, mã do AI tạo ra, hay xu hướng “vibe coding”
Notepad++ còn là trường hợp đỡ hơn vì chỉ là một binary đơn lẻ, nhưng môi trường phát triển hiện đại thì có hàng trăm dependency và mã AI đan xen vào nhau
Sandbox là quan trọng, nhưng vấn đề thật sự là khoảng cách giữa những gì mã có thể làm và những gì ta kỳ vọng nó làm
Cần có công cụ giúp hiểu rõ hơn đoạn mã đang chạy
15 năm trước chẳng ai lo về chuỗi cung ứng, và người dùng Unix vẫn build tarball mà không hề xác minh
Sandbox có ích, nhưng không phải giải pháp hoàn hảo
Các utility có quyền chỉnh sửa file hệ thống như Notepad++ vẫn rất nguy hiểm
Tôi tự hỏi liệu có công cụ chính thức nào để phát hiện và dọn dẹp lây nhiễm hay không
Mã độc có thể ẩn ở khắp nơi trong hệ thống, và chỉ cảnh báo UAC thì không đủ để ngăn nó
Nếu hiện tại đang bị nhiễm, liệu Malwarebytes có phát hiện được không
Bài phân tích của Rapid7 cũng có cùng nội dung
Khá bất ngờ là thông báo gốc lại không có liên kết này
Tôi thắc mắc Notepad++ đã vượt qua chữ ký số bằng cách nào
Tôi tải trực tiếp thì thấy vẫn có code signing hợp lệ
Bây giờ rơi vào tình huống mâu thuẫn là để chặn lỗ hổng bảo mật thì phải cập nhật thường xuyên, nhưng để tránh tấn công chuỗi cung ứng thì lại phải hạn chế cập nhật
Tôi không biết nên cân bằng thế nào
Các bản cập nhật Microsoft gần đây cũng kém tin cậy, và do các lỗi như không khởi động được, ngày càng nhiều người tắt cập nhật tự động
Tài liệu liên quan: Tùy chọn GitHub Dependabot
Ứng dụng có nhiều kết nối Internet thì nên cập nhật thường xuyên, còn công cụ cục bộ đơn giản thì tắt auto-update cũng không sao
Nếu xử lý nội dung từ Internet thì cập nhật là bắt buộc, còn nếu chỉ dùng cục bộ thì chỉ cần cập nhật khi cần
Phần lớn trường hợp nằm ở đâu đó giữa hai thái cực
Để tham khảo, có người chia sẻ bài phân tích của Rapid7