2 điểm bởi GN⁺ 2026-02-05 | 1 bình luận | Chia sẻ qua WhatsApp
  • 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 Beacontrì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 Salvadordoanh 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 LuaDLL 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ằng curl
  • Sau đó, nhiều tệp được thả vào thư mục %appdata%\ProShowProShow.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
  • Đầu tháng 8, một biến thể sử dụng tên miền cdncheck.it[.]com cũ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
  • 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
  • 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/list và máy chủ C2 thành safe-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.dll thực thi shellcode của BluetoothService
    • 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[.]comsafe-dns.it[.]com trước đó
  • Cuối tháng 10, tên tệp tiếp tục bị biến đổi thành install.exe, AutoUpdater.exe v.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

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

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

 
GN⁺ 2026-02-05
Ý 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ã

    • Trên Windows, việc vẫn thiếu một package manager tiêu chuẩn hóa vẫn là vấn đề
      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

    • Niềm tin đã sụp đổ hoàn toàn
      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
    • Tôi cũng nghĩ vậy
      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

    • MacOS có nhiều tranh cãi về UI, nhưng về mặt kiểm soát quyền hạn chi tiết thì theo tôi nó đang đi đầu
      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
    • Tôi thấy mọi ứng dụng nên mặc định chạy trong sandbox
      Ứ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
    • Khi chạy trong sandbox, việc chặn truy cập Internet cũng rất quan trọng
      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
    • Có người hỏi phải triển khai sandbox trên Windows như thế nào
  • 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

    • Nhưng theo trải nghiệm của tôi thì niềm tin lại đang giảm đi
      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
    • Điều này làm tôi nhớ tới bài viết kinh điển của Ken Thompson “Reflections on Trusting Trust”
      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

    • Trên Windows, nếu đã nhiễm thì xóa sạch đĩa và cài lại OS là cách duy nhất
      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ó
    • Có người khuyến nghị chạy MS Defender ở chế độ offline
  • Nếu hiện tại đang bị nhiễm, liệu Malwarebytes có phát hiện được không

    • Trong bài của OP có danh sách chỉ dấu xâm nhập (IOC)
      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
    • Nhưng Malwarebytes gần đây xuống chất lượng, nên không còn hữu ích như trước nữa
  • 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ệ

    • Theo thông báo chính thức, đã từng có phiên bản được phát hành không có chứng chỉ
    • Trình cập nhật đã không xác minh chứng chỉ của file cài đặt mới mà cứ thế chạy luôn
  • 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

    • Trước đây cập nhật đôi khi còn khiến hệ thống mất ổn định
      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
    • Sẽ rất hay nếu có package manager cục bộ áp dụng cập nhật sau một khoảng trì hoãn, kiểu như thiết lập cooldown của Dependabot
      Tài liệu liên quan: Tùy chọn GitHub Dependabot
    • Cuối cùng đây là đánh đổi giữa lỗ hổng zero-day và tấn công chuỗi cung ứng
      Ứ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
    • Điều đó còn tùy vào môi trường sử dụng
      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