Giaosucan's blog - Chia sẻ kiến thức theo cách bá đạo

Ticker

20/recent/ticker-posts

Log4shell - Cơn ác mộng toàn cầu - part 1

 Log4Shell: Critical Log4j Vulnerability Threatens Major Internet Players

Lấy cảm hứng từ một câu chuyện có thật, mọi nhân vật trong phim đều có thật, tuy nhiên tên nhân vật đã được thay đổi

Lỗ hổng bảo mật

9/11/2021, 2h sáng. Trụ sở Alibaba group tại Hàng Châu Trung Quốc

Chen Zhaojun, kĩ sư bảo mật của Alibaba Cloud Security Team, đang chăm chú phân tích từng dòng code trên màn hình. Đó là source của bộ thư viện Log4J rất nổi tiếng của Apache, chuyên dùng cho những ứng dụng Java để ghi log hệ thống, được sử dụng rộng rãi trong các ứng dụng doanh nghiệp và điện toán đám mây. Một số công ty, tập đoàn tiêu biểu đang sử dụng thư viện này có thể kể đến Apple, Amazon, Tesla, Cloudflare, Twitter, Steam,...

https://github.com/apache/logging-log4j2

Màn hình liên tục in ra những dòng log trên console, debug screen liên tục nháy những đoạn LOC, memory checking, variable value.



Log4J2 có được thêm vào tính năng JDNI lookup. Thật kì lạ, có cái gì đó không ổn ở đây.

3h sáng, từng dòng log lại tiếp tục lại tiếp tục đc show lên màn hình

Mình đã tìm ra vấn đề rồi, phải báo ngay cho Chief Security Officer (CSO)

Alo alo, tôi muốn gặp ngài CSO, có một lỗ hổng bảo mật nghiêm trọng, có nguy cơ ảnh hưởng đến internet toàn cầu. Tôi muốn gặp ngay bây giờ, mặc kệ thời gian đi

4h sáng, CSO Alibaba, Matthew Bassiur đăm chiêu đọc bản báo cáo của Chen Zhaojun, thời tiết mùa đông Trung Quốc -10 độ C, mà người ông toát mồ hôi

Chúng ta phải công bố lỗ hổng bảo mật này ngay lập tức, trước khi mọi thứ sụp đổ

Ngày 9/11/2021, CVE công bố lỗ hổng bảo mật Log4shell

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228

10/11/2021, Silicon Valley, 8h sáng. Trong một căn phòng kín không có cửa sổ, một cuộc họp đang diễn ra với đại diện là CSO đến từ nhiều tập đoàn lớn trên thế giới như nhóm Big4, Microsoft , Apple và nhóm kĩ sư của Apache, đơn vị phát triển log4j . Mọi người đều tập trung nghe Chen Zhaojun phân tích

Từ bản Log4J 2.0, tính năng lookups được thêm vào nhằm bổ sung thêm các cách lấy các giá trị giúp cho việc logging thuận tiện hơn, trong đó bao gồm cả JNDI lookup.

JNDI là gì

Hiểu nhanh thế này, JNDI cho phép ứng dụng Java có thể connect với 1 external service ví dụ như LDAP server để get một Java object về, phục vụ việc ghi logs. Server LDAP thì không thuộc server ứng dụng, tức là nó có thể là server bất kì trên internet. Và Java application vô tình có thể load về một object độc hại từ LDAP server

Ví dụ use case như sau

Log4j load 1 object từ LDAP server qua JNDI 

${jndi:ldap://somedomain.com}


Hacker sẽ tạo một exploit object cho phép thực thi một Shell command như rm -rf / để xóa sạch dữ liệu. Log4J vô tính đã get exploit object này về và execute trên chính server ứng dụng.

Thật kinh khủng, CEO của SPN, David thốt lên, message platform của chúng tôi được build bằng Java, và log4J đang được sử dụng cho logging. Khách hàng của SPN toàn là các ngân hàng lớn, sẽ ra sao nếu exploit object chứa code đánh cắp dữ liệu

“Lỗ hổng Apache Log4j zero-day có lẽ là lỗ hổng nghiêm trọng nhất mà chúng tôi từng thấy trong năm nay”, Bharat Jogi, quản lý cấp cao về lỗ hổng và chữ ký tại Qualys thở dài. “Log4j là một thư viện phổ biến được hàng triệu ứng dụng Java sử dụng để ghi lại các thông báo lỗi, tôi không dám nghĩ tới hậu quả của nó”

“Đây là một đòn tấn công có kỹ năng thấp và cực kỳ đơn giản để thực hiện. Ilkka Turunen của Sonatype trầm ngâm

Cảnh báo, chúng tôi phát hiện rất nhiều hoạt động quét lỗ hổng bảo mật này của hacker trên internet. Bọn chúng đang tìm kiếm những hệ thống dính lỗi này để thực hiện tấn công

Apache group đã có động thái ngay lập tức

bản vá lỗi log4j 2.16 được Apache tung ra ngay sau đó, disable hoàn toàn JNDI như mặc định. Đối với bản log4j cũ có thể disable chức năng lookup bằng setting

export LOG4J_FORMAT_MSG_NO_LOOKUPS=true

Đối với bản log4j cũ, xóa bỏ vulnerable class JndiLookup  của java application

find ./ -type f -name "log4j-core-*.jar" -exec zip -q -d "{}" org/apache/logging/log4j/core/lookup/JndiLookup.class \;

Việt Nam, 1h sáng, một cuộc gọi lúc nửa đêm

Tôi là Tokuda Kimochi rất xin lỗi đã đánh thức anh vào lúc midnight, nhưng đây là một incident nghiêm trọng, tôi cần team anh vào cuộc ngay đêm nay.

(Còn tiếp)

Đăng nhận xét

0 Nhận xét