Phần mềm mã nguồn mở Apache Log4j được triển khai như một phần mềm để ghi nhật ký cho những ứng dụng hoặc dịch vụ Java. Nó là một phần không thể thiếu của Apache Logging Services Project.
Tháng 10 năm 1999 bản đầu tiên Log4j được phát hành, tháng 01 năm 2001 bản phát hành 1.0 ra đời. Hiện tại phiên bản mới nhất của Log4j là Log4j 2 xuất hiện vào tháng 7 năm 2014.
Trong bài viết dưới đây, BKHOST sẽ thông tin chi tiết về khai thác lỗ hổng Apache Log4j và những ảnh hưởng của nó.
Khai thác Log4j là gì?
Log4j từ khi ra đời không nhận được sự quan tâm của dư luận. Mãi đến tháng 12 năm 2021 hàng loạt lỗ hổng xuất hiện thì nó mới trở thành đề gây nhiều bàn cãi. Việc khai thác Log4j thai nghén và nguyên nhân gốc rễ cho những vấn đề phát sinh đến Log4j và Java Naming and Directory Interface (JNDI).
CVE-2021-44228
CVE-2021-44228 là lỗ hổng đầu tiên trong Log4j. Nó được Chen Zhaojun thuộc nhóm Alibaba Cloud phát hiện và báo cáo cho Apache Software Foundation vào ngày 24 tháng 11 năm 2021. Sau khi nhận được thông tin nhóm phát triển Log4j đã tiến hành khắc phục sự cố đó trước ngày 6 tháng 12 năm 2021.
Thế nhưng vào ngày 9 tháng 12 một lỗ hổng thực thi code từ xa vô cùng nghiêm trọng đã được các nhà nghiên cứu thuộc công ty bảo mật LunaSec công bố. Cái tên mà người ta gọi cho lỗ hổng đó là Log4Shell, kể từ đó nó thường được nhắc trên các phương tiện truyền thông.
Những vấn đề bảo mật của Log4j được nhiều người biết đến trước khi nó công khai rộng rãi. Matthew Prince – giám đốc điều hành Cloudflare cho biết vào ngày 1/12/2021 công ty công đã tìm được bằng chứng cho thấy có sự khai thác Log4j. Vào ngày 2/12/2021 Cisco đã báo cáo việc họ phát hiện ra một cuộc tấn công chống lại Log4j.
Lỗ hổng thực thi code từ xa (RCE) CVE-2021-44228 xuất hiện ở nhiều phiên bản kể cả Log4j2 2.0-beta9 đến 2.15.0. Nguyên nhân dẫn tới lỗ hổng RCE là do các yêu cầu không được xác thực đúng và đầy đủ khi Log4j tương tác với JNDI. Điều này có nghĩa là những kẻ tấn công có thể đưa các thông báo gian lận trà trộn vào hệ thống để đưa ra các yêu cầu thực thi code nhằm đạt được mục đích.
CVE-2021-45046
Vào ngày 6 tháng 12 năm 2021 Log4j phát hành bản vá đầu tiên cho CVE-2021-44228 với Log4j 2.15.0. Tuy nhiên bản vá đó còn có mắc nhiều sai sót nên không tránh khỏi việc kẻ tấn công khai thác JNDI. Việc cập nhật Log4j 2.15.0 kết hợp với giảm thiểu lỗ hổng RCE ban đầu đã cho ra đời lỗ hổng có tên gọi CVE-2021-45046.
Vào ngày 13/12, phiên bản Log4j 2.16.0 được công khai để thay thế cho Log4j 2.15.0 có quá nhiều lỗi bảo mật. CVE-2021-45046 được vá trong chính bản cập nhật lần thứ hai này. Với Log4j 2.16.0 JNDI đã được tắt theo mặc định vì thế khi muốn nó chạy thì bắt buộc nhà phát triển phải kích hoạt.
CVE-2021-41014
Nhiều người lầm tưởng Log4j chỉ tác động tới những phiên bản Log4j 2.x chứ không thể gây khó khăn cho Log4j 1.x đã cũ. Thế nhưng, vào ngày 15/12 sự có mặt của lỗ hổng CVE-2021-41014 đã làm tắt hẳn suy nghĩ đó.
Người dùng có thể dùng JMSAppender để thực hiện các yêu cầu JNDI vì Log4j 1.x không hỗ trợ JNDI mặc định. Vào tháng 8 năm 2016, Log4j 1.x hết hạn sử dụng và Log4j 2.x được người dùng cập nhật để thay thế cho nó.
CVE-2021-45105
Ngày 17 tháng 12 một phiên bản mới của Log4j được cập nhật đó là Log4j 2.17.0. Lỗ hổng DoS có tên là CVE-2021-45105 được vá trong phiên bản Log4j 2.17.0 và được kích hoạt bởi một tra cứu đệ quy.
CVE-2021-44832
Trong bản cập nhật Log4j 2.16.0 JNDI đã bị vô hiệu hóa nhưng trong một vài tình huống vẫn xảy ra rủi ro. Và lỗ hổng CVE-2021-44832 đã xuất hiện khi cơ sở dữ liệu Java tương tác với JNDI theo cách không an toàn. CVE-2021-44832 đã được vá ở phiên bản Log4j 2.17.1 phát hành ngày 27 tháng 12.
Doanh nghiệp và hệ thống bị ảnh hưởng
Ngay sau khi lỗ hổng đầu tiên được tiết lộ thì rất nhiều cuộc tấn công đã diễn ra. Phần lớn hacker sẽ nhắm vào những người dùng chưa thực hiện vá các lỗ hổng. Một số sản phẩm bị ảnh hưởng có thể kể đến như:
- Apache Struts: Log4j được đánh giá là một phần không thể thiếu của Apache Struts. Trong khi đó Struts lại được nhúng vào rất nhiều ứng dụng của tổ chức chính vì thế mà con số doanh nghiệp, tổ chức bị ảnh hưởng không hề nhỏ.
- Apache Solr: Trong Apache Solr chứa Log4j mặc định vì thế mà hệ thống của người dùng có thể gặp bất lợi cho tới khi họ cập nhật bản vá mới nhất.
- Dịch vụ iCloud của Apple: Sự cố Log4j sẽ làm cho các dịch vụ này gặp nhiều rủi ro. Kẻ tấn công có thể lợi dụng lỗ hổng để truy cập và đánh cắp thông tin của vô số người dùng.
- Microsoft Minecraft: Ngày 10 tháng 12 trò chơi Minecraft của Microsoft đã bị phát hiện có vấn đề. Trong ngày hôm đó một bản vá mới đã được đưa ra để khắc phục.
- Sản phẩm Vmware: Sự cố của Log4j cũng đe dọa tới sự an toàn của những sản phẩm Vmware trong đó gồm vCenter Server, VMware Horizon, vRealize Operations.
Phản hồi của chính phủ Hoa Kỳ đối với Log4j
Chính phủ Hoa Kỳ là cơ quan đi đầu trong việc khắc phục các lỗ hổng Log4j. Cụ thể vào ngày 17 tháng 12 CISA đã ban hành chỉ thị khẩn cấp 22 -02. Chỉ thị này chỉ đạo tất cả các cơ quan chính phủ liên bang Hoa Kỳ xóa hoặc giảm thiểu các ứng dụng để tránh bị tác động bởi việc khai thác Log4j.
Bên cạnh đó CISA cũng yêu cầu trước ngày 28 tháng 12 họ phải nhận được báo cáo số lượng ứng dụng bị ảnh hưởng từ các cơ quan liên bang. CISA cũng dự kiến sẽ báo cho Bộ trưởng Bộ An ninh Nội địa kết quả mà chỉ thị 22 -02 đạt được vào ngày 15 tháng 2 năm 2022.
Ngoài CISA thì FTC (Ủy ban thương mại Liên bang) cũng đưa ra các cảnh báo tới các công ty. FTC yêu cầu các công ty phải giảm thiểu và khắc phục lỗ hổng Log4j trước khi xảy ra những hậu quả đáng tiếc.
Tổng kết
Tóm lại lỗ hổng Apache Log4j đã làm ảnh hưởng lớn tới các doanh nghiệp, tổ chức. Nghiên cứu và tìm ra phương án tối ưu để khắc phục triệt để vấn đề nói trên là thách thức lớn mà nhà phát triển Log4j phải đối mặt.
Nếu còn gặp bất cứ vướng mắc gì về Apache Log4j, hãy để lại ở bên bình luận bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất.
P/s: Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kiến thức về lập trình, quản trị mạng, website, domain, hosting, vps, server, email,… Chúc bạn thành công.