Threats & Research

Cuộc tấn công vào ONUS – Góc nhìn kỹ thuật từ lỗ hổng Log4Shell

CyStack image

Trung Nguyen

CEO @CyStack|April 5, 2023
Reading Time: 7 minutes

Read the English version here

Log4Shell hiện đang là một cơn ác mộng (có lẽ là tồi tệ nhất cho tới thời điểm hiện tại) đối với nhiều doanh nghiệp. Không may thay, ONUS, một trong số những khách hàng của chúng tôi, đã trở thành nạn nhân của lỗ hổng này. Với tư cách là một đối tác bảo mật – an ninh mạng, CyStack đã cảnh báo cho ONUS rủi ro ngay khi lỗ hổng được công bố, cũng như hỗ trợ ONUS truy tìm nguyên nhân của vụ tấn công và đồng thời triển khai phản ứng sự cố.

Tóm tắt

ONUS, một trong những nền tảng crypto lớn nhất của Việt Nam, đã bị tấn công mạng vài ngày trước. Sự cố an ninh mạng ở ONUS bắt nguồn với lỗ hổng Log4Shell trong phần mềm thanh toán phát triển bởi Cyclos cài đặt trong hệ thống của họ, nhưng rồi đã trở nên tồi tệ hơn do lỗi cấu hình cũng như những sai lầm nghiêm trọng trong cách trao quyền truy cập tới AWS S3. Kẻ tấn công đã lợi dụng lỗ hổng trong phần mềm của Cyclos để khai thác trước khi nhà phát triển kịp thông tin và cung cấp hướng dẫn vá lỗi tới các khách hàng. ONUS đã tiến hành vá lỗi ngay khi nhận được cảnh báo từ Cyclos, nhưng đã quá muộn. Hậu quả để lại là thông tin cá nhân của 2 triệu người dùng ONUS đã bị rò rỉ, bao gồm dữ liệu eKYC, thông tin cá nhân và mật khẩu đã mã hóa.

Diễn biến sự việc

Ngày 09/12/2021, lỗ hổng Log4Shell được công bố công khai. CyStack hiểu rõ mức độ nghiêm trọng của lỗ hổng này và đã ngay lập tức liên hệ với tất cả các khách hàng cùng đối tác về lỗ hổng. Tại thời điểm đó, ONUS cũng đã cảnh giác và tăng cường mức độ giám sát hệ thống, tuy nhiên họ vẫn chưa được thông tin về việc Cyclos nằm trong số các phần mềm chịu ảnh hưởng bởi lỗ hổng lỗ hổng Log4Shell.

Từ ngày 11 đến 13/12/2021, kẻ tấn công đã khai thác lỗ hổng Log4Shell ở máy chủ Cyclos của ONUS và để lại backdoor trên hệ thống. Chúng tôi sẽ phân tích những gì đã truy vết được trong các mục tiếp theo.

Ngày 14/12/2021, Cyclos thông báo tới ONUS về lỗ hổng trên kèm theo hướng dẫn khắc phục lỗ hổng. Đội ngũ ONUS đã ngay lập tức áp dụng bản vá cho lỗ hổng theo hướng dẫn nói trên.

Ngày 23/12/2021, trong quá trình giám sát hệ thống, CyStack đã phát hiện các hành vi bất thường và thông tin tới ONUS. Ngay khi ONUS xác nhận lại việc thông tin người dùng lưu trữ tại AWS đã bị xóa, CyStack lập tức lên kế hoạch và tiến hành ứng phó sự cố. Bởi mục tiêu tấn công là AWS S3, chúng tôi đã thực hiện truy vết toàn bộ các access key liên quan tới các bucket bị ảnh hưởng, và phát hiện một số dịch vụ chịu ảnh hưởng của vụ tấn công, trong đó có Cyclos. Những khóa truy cập này đã bị hủy ngay sau đó.

Ngày 24/12/2021, kẻ tấn công gửi đe dọa tống tiền 5 triệu USD tới ONUS thông qua Telegram. Đội ngũ ONUS đã từ chối yêu cầu này và công khai vụ tấn công tới tất cả người dùng của họ. CyStack xác nhận lỗ hổng Log4Shell ở Cyclos là nguyên nhân chính của vụ tấn công và đã khẩn trương rà soát toàn bộ các máy chủ Cyclos để kiểm soát và loại bỏ toàn bộ backdoor.

Ngày 25/12/2021, kẻ tấn công viết bài về vụ tấn công cũng như rao bán dữ liệu người dùng trên một diễn đàn cho các hacker.

Ngày 28/12/2021, một nhà nghiên cứu bảo mật với nickname Wjbuboyz thông báo cho ONUS một lỗ hổng khác liên quan đến việc cấu hình S3, có thể dẫn tới nguy cơ đọc tệp tin bất kỳ. Tuy lỗ hổng không liên quan đến sự kiện tấn công vừa qua, nhưng nó là một phần trong chuỗi các sự cố bảo mật đã có thể xảy ra với ONUS. Vì vậy, thay mặt ONUS, chúng tôi xin được ghi nhận sự hỗ trợ và gửi lời cảm ơn chân thành tới nhà nghiên cứu cho phát hiện trên. Lỗ hổng này đã được khắc phục nhanh chóng sau khi nhận được thông tin.

Vậy vụ tấn công đã xảy ra như thế nào?

Như đã đề cập, do mục tiêu kẻ tấn công hướng tới là các Bucket S3, chúng tôi đã thu hẹp phạm vi điều tra bằng cách xác định các dịch vụ có tương tác với các bucket này và phát hiện một cluster dịch vụ Cyclos, có thể là nguyên nhân cốt lõi của vụ tấn công.

Thông qua việc kiểm tra access log trong cluster nêu trên, chúng tôi thấy các payload Log4Shell được sử dụng với mục đích tạo kết nối tới máy chủ với địa chỉ IP 45.147.230.219 (0x2d93e6db) tại cổng 82. Nhà sản xuất chưa thông tin cụ thể module nào của Cyclos bị ảnh hưởng bởi lỗ hổng, tuy nhiên chúng tôi tin rằng lỗ hổng được khai thác như sau:

Lịch sử lệnh hệ thống được sử dụng cho thấy kẻ tấn công đã thực thi những câu lệnh khai thác. Chúng đã tìm cách đẩy các nội dung stdout/stderr hệ thống tới máy chủ đích mang IP 45.147.230.219, cũng chính là IP được chỉ ra trong access log phía trên.

Tại sao kẻ tấn công tìm đọc tệp tin cyclos.properties? Bởi tệp tin chứa các tài khoản AWS. Sai lầm nghiêm trọng của ONUS là họ đã cho phép truy cập với quyền AmazonS3FullAccess bằng access key lưu trong tệp tin này. Vì vậy, kẻ tấn công có thể tùy ý thao túng tất cả các bucket S3 của họ và dễ dàng xóa sạch toàn bộ dữ liệu trong các bucket S3.

Cũng tại những máy chủ này, ONUS có đoạn script backup định kỳ cơ sở dữ liệu của họ lên S3. Các dữ liệu được nhắc đến bao gồm cả hostname lẫn username/password, và các tệp tin backup cho SQL. Chính bởi vậy, kẻ tấn công đã có thể truy cập vào cơ sở dữ liệu của ONUS và đánh cắp thông tin người dùng.

Để duy trì truy cập, kẻ tấn công đã tải và chạy một backdoor trên máy chủ của ONUS. Backdoor này được đặt tên là kworker nhằm giả mạo dịch vụ kworker của hệ điều hành Linux. Quá trình phân tích backdoor đã giúp chúng tôi hiểu thêm về kẻ tấn công, sẽ được trình bày cụ thể trong đề mục tiếp sau đây.

Tiến hành phân tích backdoor

Backdoor kworker thu được viết bằng ngôn ngữ Golang phiên bản 1.17.2 và dành cho hệ điều hành Linux x64. Backdoor được sử dụng để tạo tunnel connection giữa máy chủ C&C với máy chủ bị khai thác thông qua giao thức SSH (quả là một lựa chọn khôn ngoan để tránh bị phát hiện!).

Khi ứng dụng khởi động, một kết nối SSH được tạo đối với:

  • host: 45.147.230.219
  • port: 81
  • password: kim
  • user: peter

SOCKS connection được sử dụng làm phương thức thay thế trong trường hợp kết nối thông qua SSH không thực hiện được:

  • user: peter
  • password: kim
  • tag: peter kim

Trong quá trình chạy, backdoor liên tục gửi các dữ liệu xuất từ stdout/stderr tới máy chủ C&C, đồng thời liên tục nhận các lệnh từ máy chủ này.

Đoạn mã thực hiện lấy dữ liệu từ stdout/stderr

Đoạn mã thực thi các câu lệnh nhận được

Đoạn mã đọc file

Backdoor có thể được tạo bởi chính kẻ tấn công cho riêng việc tấn công nói trên, sử dụng thư viên go-socks5. 

Xác minh danh tính kẻ tấn công

Kẻ tấn công đã rất thận trọng và khôn khéo che giấu danh tính cá nhân. Những địa chỉ IP thu thập dường như đều thuộc sở hữu của các nhà cung cấp dịch vụ VPN. Tuy nhiên, có một chi tiết khá là thú vị, có thể chính bạn cũng nhận ra ngay khi nhìn thấy những screenshot sau:

Đúng vậy, kẻ tấn công có khả năng rất cao là một người Việt Nam!

Hướng dẫn khắc phục lỗ hổng

Cystack khuyến nghị ONUS khắc phục các lỗ hổng và nâng cao mức độ an ninh mạng theo các hướng dẫn sau:

  • Áp dụng bản vá dành cho lỗ hổng Log4Shell ở ứng dụng Cyclos theo hướng dẫn của nhà sản xuất.
  • Hủy toàn bộ các thông tin xác thực AWS bị lộ lọt.
  • Thiết lập các phân quyền chặt chẽ cho các khóa AWS sử dụng để truy cập vào các bucket S3 AWS và các dịch vụ khác.
  • Chặn mọi truy cập công khai tới các bucket S3.

ONUS đã rất nỗ lực trong việc bảo mật hệ thống của họ, chẳng hạn như bằng cách cộng tác với các đối tác bảo mật và chạy chương trình Bug Bounty, nhưng họ vẫn không miễn nhiễm khỏi lỗ hổng Log4Shell. Chúng tôi lo ngại rằng những sự cố tương tự sẽ xảy ra hoặc đang xảy ra ở những nơi khác; hy vọng rằng bài đăng này có thể cung cấp cho bạn một số thông tin chi tiết cũng như một số biện pháp chống lại lỗ hổng bảo mật này.

Trung Nguyen, Son Nguyen, Chau Ha, Chau Nguyen, Khoi Vu, Duong Tran từ CyStack Security Team

Related posts

Flash Loan Attack
Flash Loan Attack
June 27 2022|Threats & Research

Reading Time: 7 minutes Mở đầu Flash Loan Attack là một hình thức tấn công DeFi đã xuất hiện từ lâu, gây ra rất nhiều thiệt hại cho các nền tảng DeFi. Tính từ đầu năm 2022 đến nay, đã có nhiều cuộc tấn công dựa trên hình thức này, điển hình như các cuộc tấn công nhắm đến […]

The attack on ONUS – A real-life case of the Log4Shell vulnerability
The attack on ONUS – A real-life case of the Log4Shell vulnerability
April 5 2023|Threats & Research

Reading Time: 6 minutes Đọc bản tiếng Việt tại đây Log4Shell has recently been a nightmare (probably the worst one for now) to businesses. ONUS, a client of ours, was an unfortunate victim. As their security partner, CyStack informed ONUS of the risks right after Log4Shell came to light; when the attack actually happened, we supported them in finding […]

Static binary injection with high-level code
Static binary injection with high-level code
April 5 2023|Threats & Research

Reading Time: 8 minutes Giới thiệu Static binary injection là một kỹ thuật dùng để chèn những đoạn code từ ngoài vào trong một file thực thi để theo dõi hoặc thay đổi hành vi của chương trình trong quá trình chạy. Nếu là một kẻ tấn công, hắn có thể sử dụng kỹ thuật này để thực hiện […]