Mã nguồn UnrealIRCd bị cài Trojan cho phép thực thi lệnh từ xa

Lưu ý: Dữ liệu này chỉ có tính chất tham khảo, phục vụ nghiên cứu an ninh mạng.CyStack khuyến nghị người dùng không sử dụng các thông tin này nhằm các mục đích bất hợp pháp

Giới thiệu chung

Dữ liệu gốc

UnrealIRCd 3.2.8.1, như được phân phối trên một số mirror từ tháng 11 năm 2009 đến tháng 6 năm 2010, chứa một sửa đổi được đưa vào từ bên ngoài (Trojan Horse) trong macro DEBUG3_DOLOG_SYSTEM, cho phép kẻ tấn công từ xa thực thi các lệnh tùy ý.

Sản phẩm và phạm vi ảnh hưởng

  • Bản ghi chuẩn hóa xác định UnrealIRCd 3.2.8.1 là phiên bản bị ảnh hưởng khi được phân phối từ một số mirror trong khoảng từ tháng 11 năm 2009 đến tháng 6 năm 2010.
  • Advisory kết hợp của Gentoo liệt kê package net-irc/unrealircd với các phiên bản < 3.2.8.1-r1 là bị ảnh hưởng và các phiên bản >= 3.2.8.1-r1 là không bị ảnh hưởng. Ranh giới này áp dụng cho advisory bao gồm nhiều lỗi, trong đó có lỗi này và một lỗi khác.
  • Bằng chứng hiện có không xác lập một bản sửa upstream chung cho mọi bản phân phối, cũng không chứng minh rằng mọi build trong ranh giới của Gentoo đều chứa archive bị Trojan. Việc đánh giá phải bao gồm cả nguồn gốc mã nguồn hoặc package.

Chi tiết kỹ thuật

Lỗi này không phải là lỗi parser thông thường trong giao thức IRC. Mã nguồn được phân phối đã bị sửa đổi từ bên ngoài, chèn lời gọi system() vào macro debug/log DEBUG3_DOLOG_SYSTEM, và lời gọi này có thể nhận dữ liệu tùy ý do người dùng điều khiển. Kẻ tấn công tiếp cận đoạn mã qua daemon IRC từ xa; hành vi được báo cáo không yêu cầu phiên người dùng hợp lệ hoặc cấu hình cho phép người dùng thông thường kết nối. Các lệnh được thực thi với quyền của tiến trình UnrealIRCd. Bản ghi được cung cấp không xác định đầy đủ diff mã nguồn đã vá hoặc toàn bộ đường gọi, vì vậy không suy diễn thêm các nhánh bị ảnh hưởng hay yêu cầu payload.

Khả năng khai thác

Khả năng tiếp cận: từ xa qua dịch vụ IRC. Xác thực: không bắt buộc theo các thuộc tính tấn công đã chuẩn hóa; hành vi được báo cáo vẫn có thể được kích hoạt khi máy chủ được đặt mật khẩu hoặc hạn chế người dùng. Độ phức tạp: thấp theo bản ghi đã chuẩn hóa. Tương tác của người dùng: không được xác định là điều kiện tiên quyết. Khai thác công khai: bản ghi đánh dấu có public exploit, và Exploit-DB có các mục khai thác từ xa cho Linux đối với lỗi này. Bằng chứng được cung cấp không xác nhận việc khai thác trong thực tế.

Tác động kỹ thuật

Khai thác thành công cho phép thực thi lệnh tùy ý với quyền của tài khoản chạy daemon, không tự động có quyền root hoặc quyền hệ thống cao nhất. Trên Gentoo, tài khoản mặc định được nêu là unrealircd. Các lệnh có thể đọc hoặc sửa tài nguyên mà tài khoản này được phép truy cập, đồng thời có thể dừng hoặc thay đổi dịch vụ IRC. Khả năng leo thang quyền hoặc ảnh hưởng rộng hơn đến host phụ thuộc vào quyền cục bộ, cơ chế confinement và hành động tiếp theo, những điều chưa được bản ghi xác nhận. Vì mã độc được đưa vào archive phân phối, tính toàn vẹn của artifact và độ tin cậy của supply chain là phần trọng yếu của tác động.

Tác động đến tổ chức

Một triển khai bị ảnh hưởng có thể cho phép bên từ xa không cần xác thực hoạt động với quyền của tài khoản chạy UnrealIRCd. Điều này có thể dẫn đến truy cập dữ liệu mà tài khoản đó đọc được, thay đổi trái phép tài nguyên hoặc làm gián đoạn dịch vụ, tùy thuộc vào quyền cục bộ và cơ chế containment. Advisory của Gentoo ghi nhận daemon mặc định chạy với tài khoản unrealircd, giới hạn quyền trực tiếp nhưng không loại bỏ nguy cơ xâm phạm dịch vụ hoặc host. Nếu build độc hại đã hoạt động, mã độc có thể đã thực thi lệnh và thay đổi host; khả năng này cần được xác minh bằng quy trình incident response, không nên tự động giả định là không xảy ra.

Cách khắc phục

  1. Thay thế mọi bản sao bị ảnh hưởng hoặc lấy từ mirror không đáng tin cậy bằng package hoặc mã nguồn đáng tin cậy từ vendor hoặc distribution. Đối với Gentoo, advisory xác nhận mục tiêu nâng cấp là >= 3.2.8.1-r1; không mở rộng ranh giới package-specific này thành một tuyên bố chung cho mọi bản upstream.
  2. Không dựa vào workaround. Gentoo thông báo không có workaround đã biết cho advisory này.
  3. Nếu một build bị ảnh hưởng đã chạy trên host production, hãy coi host đó là có khả năng đã bị thực thi lệnh, bảo toàn bằng chứng và điều tra trước khi rebuild hoặc khôi phục dịch vụ.
  4. Xác minh package và mã nguồn bằng dữ liệu integrity đáng tin cậy từ vendor hoặc distribution, thay vì chỉ dựa vào archive lấy từ mirror. Nếu cần trì hoãn thay thế, cô lập dịch vụ như một biện pháp containment tạm thời, không coi đó là bản sửa lỗi.

Cách phát hiện

  1. Kiểm kê các IRC daemon có thể truy cập qua mạng, xác định các cài đặt UnrealIRCd và nguồn gốc package hoặc mã nguồn được dùng để build.
  2. Kiểm tra hồ sơ package, archive mã nguồn và provenance của bản phân phối; đặc biệt xác định các bản sao lấy từ mirror trong giai đoạn phân phối bị nêu trong advisory.
  3. So sánh macro DEBUG3_DOLOG_SYSTEM trong mã nguồn hoặc build artifact với mã nguồn đáng tin cậy, tìm lời gọi system() hoặc mã được chèn từ bên ngoài.
  4. Như một biện pháp phòng ngừa, rà soát telemetry thực thi tiến trình và log IRC để tìm các phiên từ xa bất thường hoặc tiến trình con phát sinh từ daemon. Đây là kiểm tra bổ sung, không phải IOC đã được xác nhận.
  5. Nếu phát hiện dấu hiệu tampered source hoặc thực thi lệnh trái phép, cô lập máy chủ, bảo toàn bằng chứng và rebuild từ nguồn đáng tin cậy. Không có bằng chứng log không chứng minh hệ thống an toàn.
Nguồn (25)
Tìm hiểu thêm

Kiểm tra chuyên sâu cùng giải pháp quản lý rủi ro Web toàn diện

Giải pháp CyStack VulnScan liên tục phát hiện tài sản, xác minh lỗ hổng và giúp đội ngũ bảo mật ưu tiên khắc phục cho toàn bộ doanh nghiệp.