-
09/04/2020
-
115
-
1.147 bài viết
Notepad++: Lỗ hổng plugin có thể cung cấp persistence cho kẻ tấn công
Một lỗ hổng DLL hijacking vừa bị phát hiện trong Notepad++, trình soạn thảo mã nguồn phổ biến trong cộng đồng phát triển và an ninh mạng, cho thấy những chi tiết nhỏ trong cách Windows nạp thư viện có thể bị lợi dụng để thực thi mã tùy ý trên máy nạn nhân. Được gán mã CVE‑2025‑56383 và phát hiện trong môi trường cài đặt npp.8.8.3.Installer.x64.exe, vấn đề này không chỉ gói gọn ở một phiên bản cụ thể mà bắt nguồn từ phương thức ứng dụng tìm và nạp DLL cho các plugin, nên nhiều bản cài đặt hiện hành có nguy cơ bị ảnh hưởng.
Kịch bản khai thác rất đơn giản nhưng hiệu quả. Khi một ứng dụng không chỉ định đường dẫn đầy đủ tới một DLL, Windows sẽ dò tìm thư mục theo một thứ tự nhất định và một file đặt ở vị trí được tìm trước có thể được nạp thay cho thư viện chính thức. Proof of concept cho thấy kẻ tấn công có thể thay thế hoặc chèn một DLL cùng tên với DLL plugin, ví dụ NppExport.dll trong thư mục Notepad++\plugins\NppExport. Khi người dùng khởi chạy Notepad++.exe, DLL thay thế sẽ được nạp và mã độc trong đó chạy dưới quyền của người dùng hiện hành.
Tệp độc hại
Phương pháp proxying được tác giả PoC sử dụng để giảm thiểu khả năng bị phát hiện. Thay vì loại bỏ hoàn toàn chức năng plugin, kẻ tấn công đổi tên bản DLL gốc sang original‑NppExport.dll và để DLL độc hại chuyển tiếp các cuộc gọi hợp lệ về bản gốc đã đổi tên. Cách làm này khiến Notepad++ tiếp tục hoạt động như bình thường trong mắt người dùng, trong khi mã không mong muốn vẫn được thi hành ngầm. Trong ví dụ thử nghiệm, việc khởi chạy Notepad++ sau khi thay DLL dẫn tới việc xuất hiện một hộp thoại kiểm chứng, điều đó xác nhận rằng đoạn mã tùy ý đã chạy thành công.
Kiểm tra chiếm quyền điều khiển DLL
Hệ quả của lỗ hổng không chỉ nằm ở một lần thực thi. Một tác nhân đã có khả năng ghi vào hệ thống tệp, thông qua malware, email lừa đảo hoặc truy cập vật lý, có thể dùng cách này để thiết lập tính bền bỉ. Mã độc sẽ khởi chạy mỗi khi người dùng mở Notepad++ cho tới khi có can thiệp chủ động, và điều này cho phép đối tượng tấn công duy trì hoặc leo thang quyền trên hệ thống mà không cần khai thác thêm lỗ hổng từ xa.
Trên thực tế, sự việc buộc các đội bảo mật phải quay lại những nguyên tắc cơ bản mà nhiều tổ chức vẫn dễ lơ là. Cần có cơ chế quản lý quyền ghi vào thư mục cài đặt ứng dụng để giới hạn khả năng ghi file của các tài khoản không cần thiết. Cần triển khai giám sát tính toàn vẹn tệp để phát hiện sớm các thay đổi ở thư mục plugin. Cần tích hợp kiểm tra bảo mật vào quy trình phân phối phần mềm để giảm nguy cơ bị chèn tệp không mong muốn vào gói cài.
Trong ngắn hạn, khi chưa có bản vá chính thức từ nhóm phát triển Notepad++, người dùng cá nhân và các nhóm phát triển nên chỉ tải phần mềm từ nguồn chính thức, kiểm tra chữ ký số và so sánh kích thước của các DLL plugin khi có cơ sở để đối chiếu, đồng thời lưu ý những thay đổi bất thường trong thư mục cài đặt. Ở môi trường doanh nghiệp, phòng thủ theo lớp vẫn là chiến lược hợp lý nhất, kết hợp phân quyền tệp chặt chẽ, kiểm soát tệp thực thi và giám sát ở cấp endpoint để phát hiện hành vi như đổi tên file hoặc proxying DLL.
Quan trọng hơn, phát hiện này nhắc rằng nhiều bề mặt tấn công hiệu quả không phải là các lỗi thuật toán phức tạp mà nằm ở những tương tác bình thường giữa phần mềm và hệ điều hành. Do vậy cộng đồng an ninh và quản trị viên cần theo dõi chặt các phát hành chính thức của Notepad++ để cập nhật bản vá khi có, đồng thời đưa kiểm tra bảo mật vào chu trình vận hành phần mềm để phát hiện sớm những thay đổi bất thường trong môi trường sản xuất.
CVE‑2025‑56383 một lần nữa khẳng định tầm quan trọng của việc vừa phòng ngừa vừa phát hiện sớm. Dù việc vá lỗi lâu dài là điều cần thiết, các biện pháp như kiểm soát truy cập tệp, giám sát tính toàn vẹn liên tục và theo dõi hành vi bất thường trên endpoint vẫn là tuyến phòng thủ chủ chốt, giúp ngăn kẻ tấn công duy trì truy cập trái phép hoặc tận dụng sơ hở trong hệ thống. Sự việc này là lời nhắc rằng an ninh phần mềm không chỉ dựa vào bản vá mà còn phụ thuộc vào quy trình và thực hành vận hành cẩn trọng của mỗi tổ chức.
Kịch bản khai thác rất đơn giản nhưng hiệu quả. Khi một ứng dụng không chỉ định đường dẫn đầy đủ tới một DLL, Windows sẽ dò tìm thư mục theo một thứ tự nhất định và một file đặt ở vị trí được tìm trước có thể được nạp thay cho thư viện chính thức. Proof of concept cho thấy kẻ tấn công có thể thay thế hoặc chèn một DLL cùng tên với DLL plugin, ví dụ NppExport.dll trong thư mục Notepad++\plugins\NppExport. Khi người dùng khởi chạy Notepad++.exe, DLL thay thế sẽ được nạp và mã độc trong đó chạy dưới quyền của người dùng hiện hành.
Tệp độc hại
Kiểm tra chiếm quyền điều khiển DLL
Trên thực tế, sự việc buộc các đội bảo mật phải quay lại những nguyên tắc cơ bản mà nhiều tổ chức vẫn dễ lơ là. Cần có cơ chế quản lý quyền ghi vào thư mục cài đặt ứng dụng để giới hạn khả năng ghi file của các tài khoản không cần thiết. Cần triển khai giám sát tính toàn vẹn tệp để phát hiện sớm các thay đổi ở thư mục plugin. Cần tích hợp kiểm tra bảo mật vào quy trình phân phối phần mềm để giảm nguy cơ bị chèn tệp không mong muốn vào gói cài.
Trong ngắn hạn, khi chưa có bản vá chính thức từ nhóm phát triển Notepad++, người dùng cá nhân và các nhóm phát triển nên chỉ tải phần mềm từ nguồn chính thức, kiểm tra chữ ký số và so sánh kích thước của các DLL plugin khi có cơ sở để đối chiếu, đồng thời lưu ý những thay đổi bất thường trong thư mục cài đặt. Ở môi trường doanh nghiệp, phòng thủ theo lớp vẫn là chiến lược hợp lý nhất, kết hợp phân quyền tệp chặt chẽ, kiểm soát tệp thực thi và giám sát ở cấp endpoint để phát hiện hành vi như đổi tên file hoặc proxying DLL.
Quan trọng hơn, phát hiện này nhắc rằng nhiều bề mặt tấn công hiệu quả không phải là các lỗi thuật toán phức tạp mà nằm ở những tương tác bình thường giữa phần mềm và hệ điều hành. Do vậy cộng đồng an ninh và quản trị viên cần theo dõi chặt các phát hành chính thức của Notepad++ để cập nhật bản vá khi có, đồng thời đưa kiểm tra bảo mật vào chu trình vận hành phần mềm để phát hiện sớm những thay đổi bất thường trong môi trường sản xuất.
CVE‑2025‑56383 một lần nữa khẳng định tầm quan trọng của việc vừa phòng ngừa vừa phát hiện sớm. Dù việc vá lỗi lâu dài là điều cần thiết, các biện pháp như kiểm soát truy cập tệp, giám sát tính toàn vẹn liên tục và theo dõi hành vi bất thường trên endpoint vẫn là tuyến phòng thủ chủ chốt, giúp ngăn kẻ tấn công duy trì truy cập trái phép hoặc tận dụng sơ hở trong hệ thống. Sự việc này là lời nhắc rằng an ninh phần mềm không chỉ dựa vào bản vá mà còn phụ thuộc vào quy trình và thực hành vận hành cẩn trọng của mỗi tổ chức.
Theo Cyber Security News