Oracle Database Server bị bypass xác thực qua EXTPROC, cho phép thực thi mã 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

Oracle 8i và 9i có package PL/SQL cho External Procedures (EXTPROC) cho phép kẻ tấn công từ xa vượt qua xác thực và thực thi các hàm tùy ý bằng cách sử dụng TNS Listener để kết nối trực tiếp đến tiến trình EXTPROC.

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

  • Oracle Database Server: các phiên bản 8.0.1, 8.0.2, 8.0.3, 8.0.4, 8.0.5, 8.0.5.1, 8.0.6, 8.1.5, 8.1.6, 8.1.7 và 8.1.7.0.0 được đánh dấu affected.
  • Oracle8i: các phiên bản 8.1.5, 8.1.6, 8.1.7, 8.1.7.1, enterprise_8.0.5.0.0, enterprise_8.0.6.0.0, enterprise_8.0.6.0.1, enterprise_8.1.5.0.0, enterprise_8.1.5.0.2, enterprise_8.1.5.1.0, enterprise_8.1.6.0.0, enterprise_8.1.6.1.0, enterprise_8.1.7.0.0 và enterprise_8.1.7.1.0 được đánh dấu affected.
  • Oracle9i: các phiên bản 9.0 và 9.0.1 được đánh dấu affected.
  • Bản ghi chuẩn hóa cho biết có bản vá, nhưng không cung cấp bản phát hành sửa lỗi cụ thể hoặc ranh giới sửa lỗi theo từng nhánh. Không nên suy luận rằng một nhánh không được liệt kê là không bị ảnh hưởng.

Chi tiết kỹ thuật

Lỗ hổng nằm trong đường xử lý PL/SQL External Procedures, nơi Oracle Listener yêu cầu tiến trình extproc hoặc extproc.exe nạp thư viện và gọi hàm bên ngoài. Quyền xác thực được kiểm tra ở tiến trình Oracle con, nhưng Listener lại tiếp nhận yêu cầu nạp thư viện và giả định rằng tiến trình gửi yêu cầu đã xác thực. Kẻ tấn công có thể giả mạo một tiến trình Oracle, kết nối đến Listener hoặc EXTPROC qua socket và yêu cầu thực thi hàm trong thư viện tùy ý mà không cần tài khoản cơ sở dữ liệu. Kết nối vốn có thể sử dụng named pipe trong một số luồng nội bộ, nhưng advisory xác nhận có thể buộc sử dụng socket, cho phép truy cập từ xa qua TCP. Phạm vi phơi nhiễm phụ thuộc vào việc Listener và chức năng EXTPROC có được bật, có thể truy cập từ mạng không tin cậy hay không. Bằng chứng hiện có không xác định một thư viện, hàm hoặc cấu hình triển khai cụ thể bắt buộc cho mọi hệ thống bị ảnh hưởng.

Khả năng khai thác

  • Khả năng tiếp cận: Có thể khai thác từ xa qua kết nối mạng đến TNS Listener hoặc tiến trình EXTPROC.
  • Xác thực: Không yêu cầu xác thực trước theo mô tả lỗ hổng và dữ liệu chuẩn hóa.
  • Độ phức tạp: Bản ghi chuẩn hóa đánh giá độ phức tạp khai thác là thấp.
  • Tương tác người dùng: Không có yêu cầu tương tác người dùng nào được mô tả trong bằng chứng hiện có.
  • Tình trạng khai thác: Advisory nghiên cứu cho biết mã khai thác hoạt động đã được cung cấp cho Oracle trong quá trình tiết lộ. Tuy nhiên, bằng chứng hiện có không xác định tình trạng khai thác thực tế hiện nay hoặc một public exploit đang được phát tán.

Tác động kỹ thuật

Khai thác thành công cho phép thực thi mã hoặc hàm tùy ý trong thư viện với quyền của tài khoản đang chạy Oracle. Trên Unix, advisory nêu tài khoản này thường là oracle; trên Windows, cấu hình mặc định được nêu là tài khoản SYSTEM, nhưng quyền thực tế phụ thuộc vào triển khai. Tác động kỹ thuật có thể bao gồm đọc dữ liệu, thay đổi dữ liệu hoặc làm gián đoạn dịch vụ, tương ứng với các ảnh hưởng về confidentiality, integrity và availability. Phạm vi kiểm soát đạt được không thể được xác định chung cho mọi hệ thống vì còn phụ thuộc vào quyền tài khoản dịch vụ và quyền của máy chủ.

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

Kẻ tấn công có thể thực thi thao tác tùy ý trên máy chủ với quyền của tài khoản dịch vụ Oracle mà không cần có tài khoản cơ sở dữ liệu. Điều này có thể dẫn đến truy cập trái phép dữ liệu mà tài khoản dịch vụ có thể đọc, thay đổi dữ liệu hoặc làm gián đoạn dịch vụ cơ sở dữ liệu và hệ điều hành. Mức độ ảnh hưởng thực tế phụ thuộc vào quyền của tài khoản chạy Oracle, quyền truy cập hệ thống và khả năng Listener bị truy cập từ mạng không tin cậy. Bằng chứng hiện có không chứng minh một vụ xâm nhập, rò rỉ dữ liệu hoặc mất toàn bộ quyền quản trị trên mọi triển khai.

Cách khắc phục

  1. Xác định chính xác sản phẩm và nhánh đang triển khai, sau đó lấy và áp dụng bản vá bảo mật Oracle tương ứng. Bản ghi cho biết có bản vá nhưng không xác nhận một phiên bản sửa lỗi cụ thể, vì vậy không nên tự suy luận một mốc "trở lên" hoặc áp dụng mốc của nhánh khác.
  2. Dùng firewall để hạn chế truy cập đến Listener, đặc biệt chặn truy cập từ Internet hoặc mạng không tin cậy vào cổng mặc định 1521.
  3. Nếu không cần External Procedures, vô hiệu hóa chức năng PLSExtproc hoặc icache_extproc bằng cách loại bỏ các mục liên quan khỏi tnsnames.ora và listener.ora. Việc xóa hoặc vô hiệu hóa extproc cần được kiểm tra theo quy trình vận hành và phụ thuộc của ứng dụng trước khi thực hiện.
  4. Nếu bắt buộc phải dùng chức năng này, cấu hình kiểm tra node tin cậy trong sqlnet.ora với tcp.validnode_checking = YES và danh sách giới hạn trong tcp.invited_nodes.
  5. Chạy các tiến trình Oracle bằng tài khoản có quyền tối thiểu cần thiết. Trên Windows, không nên để Oracle chạy dưới tài khoản SYSTEM nếu có thể sử dụng tài khoản đặc quyền thấp hơn. Đổi cổng Listener khỏi 1521 chỉ là biện pháp giảm phơi nhiễm phụ trợ, không thay thế bản vá hoặc kiểm soát truy cập.

Cách phát hiện

  1. Kiểm kê các máy chủ Oracle Database và đối chiếu với các nhánh, phiên bản bị ảnh hưởng trong bản ghi.
  2. Kiểm tra tnsnames.ora và listener.ora để tìm các cấu hình hoặc tên dịch vụ như PLSExtproc, icache_extproc và extproc.
  3. Xác định Listener có thể truy cập từ mạng nào, đặc biệt là khả năng truy cập từ mạng không tin cậy vào cổng mặc định 1521 hoặc cổng Listener đã cấu hình.
  4. Kiểm tra sqlnet.ora để xác định tcp.validnode_checking và tcp.invited_nodes có được cấu hình nhằm giới hạn máy khách hay không.
  5. Xác minh tài khoản hệ điều hành đang chạy các tiến trình Oracle, đặc biệt trên Windows, và rà soát nhật ký mạng để tìm các kết nối bất thường đến Listener hoặc EXTPROC. Đây là biện pháp giám sát phòng ngừa, không phải IOC đã được xác nhận; không nên xem việc không có bản ghi nhật ký là bằng chứng 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.