Leo thang đặc quyền DBA bằng ORACLE INDEXES

Một phần của tài liệu Tìm hiểu về tấn công leo thang đặc quyền (Privilege Escalation) trên Oracle và thực nghiệm (Trang 31 - 36)

Introduction

Để tăng tốc độ truy vấn các tập dữ liệu lớn, hầu hết các máy chủ cơ sở dữ liệu đều cho phép dữ liệu bảng được lập chỉ mục. Trong Oracle, để có thể tạo INDEX trên một bảng, user phải sở hữu bảng, hoặc có đặc quyền đối tượng INDEX trên bảng, hoặc có đặc quyền hệ thống CREATE ANY INDEX. Nếu một user có một trong những đặc quyền này, một lỗ hổng bảo mật sẽ được mở ra, nhờ đó họ có thể thực thi SQL tùy ý như người sở hữu của bảng bằng cách tạo một index dựa trên hàm trên bảng. Nếu bảng được đề cập được sở hữu bởi người dùng có đặc quyền cao hơn như SYS hoặc SYSTEM thì máy chủ cơ sở dữ liệu sẽ để lộ ra nguy hiểm vì nó cung cấp cho attacker có khả năng làm nguy hại cho toàn bộ hệ thống.

Vai trò PUBLIC (trước đây) đã được cấp đặc quyền INDEX trên các bảng, sản phẩm và tùy chọn phụ thuộc sau:

Details

Transcript sau đây trình bày cách kẻ tấn công có thể tận dụng đặc quyền INDEX để thực thi SQL tùy ý. Giả sử có một bảng được gọi là FOO thuộc sở hữu của SYS và PUBLIC đã được cấp đặc quyền INDEX trên đó. Một người dùng được gọi là TSS kết nối với máy chủ cơ sở dữ liệu và cố gắng set DBA role nhưng không thành công vì TSS chưa được cấp thành viên của role này. Người dùng TSS sẽ có được đặc quyền DBA bằng cách khai thác lỗ hổng INDEX. Đầu tiên TSS tạo một hàm gọi là GETDBA sẽ thực hiện công việc. Tiếp theo TSS tạo một index được gọi là EXPLOIT_INDEX trên bảng SYS.FOO gọi hàm GETDBA. Tiếp theo, TSS chọn từ bảng DUAL khiến index EXPLOIT_INDEX thực thi chức năng GETDBA với các đặc quyền SYS. Hàm GETDBA chứa SQL để GRANT role DBA cho role PUBLIC. Khi điều này được thực hiện, người dùng TSS có thể set role DBA. Khi làm như vậy, người dùng TSS bây giờ có toàn quyền kiểm soát cơ sở dữ liệu.

Hình 8. Các bước tấn công leo thang đặc quyền bằng Oracle Indexes

Reducing risk

Để ngăn chặn sự khai thác, thu hồi đặc quyền INDEX từ những người dùng không yêu cầu đặc quyền này, theo yêu cầu nghiêm ngặt của doanh nghiệp. Để tìm tất cả các grants như vậy, thực thi truy vấn sau:

KẾT LUẬN

Trên đây chỉ là một số đặc quyền tiêu biểu. Ngoài ra, còn rất nhiều đặc quyền có thể khai thác để tấn công leo thang đặc quyền lên DBA trong hệ quản trị CSDL Oracle. Ba chương trên đây đã giúp mọi người hiểu được về quá trình của một cuộc tấn công leo thang đặc quyền. Chúng ta có thể thấy rằng những đặc quyền thấp, hạn chế cũng có thể bị khai thác để giúp kẻ tấn công leo thang đặc quyền cao hơn, mà cuối cùng là đặc quyền DBA. Trong Oracle, người dùng có đặc quyền CREATE ANY X cũng đều có thể đoạt được đặc quyền DBA. Chính vì vậy, khuyến nghị đưa ra là số lượng người dùng được cấp các đặc quyền này phải bị hạn chế và chỉ đưa ra khi đảm bảo nó là một yêu cầu nghiệp vụ nghiêm ngặt.

Một phần của tài liệu Tìm hiểu về tấn công leo thang đặc quyền (Privilege Escalation) trên Oracle và thực nghiệm (Trang 31 - 36)