Giới thiệu chung
Dữ liệu gốcOracle 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.7và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.0vàenterprise_8.1.7.1.0được đánh dấu affected. - Oracle9i: các phiên bản
9.0và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
- 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.
- 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. - Nếu không cần External Procedures, vô hiệu hóa chức năng
PLSExtprochoặcicache_extprocbằng cách loại bỏ các mục liên quan khỏitnsnames.oravàlistener.ora. Việc xóa hoặc vô hiệu hóaextproccầ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. - 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.oravớitcp.validnode_checking = YESvà danh sách giới hạn trongtcp.invited_nodes. - 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
SYSTEMnếu có thể sử dụng tài khoản đặc quyền thấp hơn. Đổi cổng Listener khỏi1521chỉ 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
- 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.
- Kiểm tra
tnsnames.oravàlistener.orađể tìm các cấu hình hoặc tên dịch vụ nhưPLSExtproc,icache_extprocvàextproc. - 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
1521hoặc cổng Listener đã cấu hình. - Kiểm tra
sqlnet.orađể xác địnhtcp.validnode_checkingvàtcp.invited_nodescó được cấu hình nhằm giới hạn máy khách hay không. - 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.