Tìm hiểu về tấn công leo thang đặc quyền (Privilege Escalation) trên Oracle và thực nghiệm

37 420 5
Tìm hiểu về tấn công leo thang đặc quyền (Privilege Escalation) trên Oracle và thực nghiệm

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài tập lớn này trình bày một số vector tấn công leo thang lên quyền DBA trong hệ quản trị cơ sở dữ liệu Oracle. Bao gồm phần 1 là tổng quan tấn công leo thang đặc quyền, phần 2 là giới thiệu cấu trúc Oracle và 4 phương pháp tấn công đó là CREATE ANY VIEW, CREATE PROCEDURE, PLSQL injection và ORACLE INDEXES.

HỌC VIỆN KĨ THUẬT MẬT MÃ KHOA AN TOÀN THÔNG TIN **************** BÁO CÁO BÀI TẬP LỚN MÔN: AN TOÀN CƠ SỞ DỮ LIỆU Đề tài: Tìm hiểu về tấn công leo thang đặc quyền (Privilege Escalation) trên Oracle và thực nghiệm Giảng viên: Ts Trần Thị Lượng Sinh viên thực hiện: Đỗ Minh Hiếu Đinh Thị Thu Trần Văn Nam Nguyễn Thị Tuyền Hà Nội, tháng 12 năm 2021 MỤC LỤC DANH MỤC HÌNH VẼ 4 Lời mở đầu 5 CHƯƠNG 1 7 TỔNG QUAN TẤN CÔNG LEO THANG ĐẶC QUYỀN 7 1.1 Giới thiệu về tấn công leo thang đặc quyền 7 1.2 Các dạng leo thang đặc quyền 8 1.2.1 Leo thang đặc quyền dọc 8 1.2.2 Leo thang đặc quyền ngang 10 1.3 Các biện pháp bảo vệ hệ thống giảm thiểu leo thang đặc quyền 11 1.4 Vấn đề đặt ra: 12 CHƯƠNG 2 14 LEO THANG ĐẶC QUYỀN TRONG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ORACLE 14 2.1 Giới thiệu cấu trúc Oracle 14 2.2 Quản trị trong Oracle 16 2.2.1 Phân loại User 16 2.2.2 Đặc quyền trong Oracle 18 2.3 Các loại tấn công leo thang đặc quyền trong Oracle 23 2.3.1 PL/SQL injection 23 2.3.2 Leo thang đặc quyền DBA bằng CREATE ANY VIEW 26 2.3.2.1 Cơ sở tấn công 26 2.3.2.2 Leo thang đặc quyền bằng đặc quyền CREATE ANY VIEW 27 2 2.3.3 Leo thang đặc quyền DBA bằng EXCUTE ANY PROCEDURE VÀ CREATE PROCEDURE 30 2.3.3.1 Leo thang đặc quyền bằng đặc quyền EXCUTE ANY PROCEDURE 30 2.3.3.2 Leo thang đặc quyền bằng đặc quyền CREATE PROCEDURE 30 2.3.4 Leo thang đặc quyền DBA bằng ORACLE INDEXES 31 KẾT LUẬN 35 TÀI LIỆU THAM KHẢO 36 3 DANH MỤC HÌNH VẼ Hình 1 Cấu trúc 3 lớp của Oracle Trang 13 Hình 2 Phương thức xác nhận quyền Trang 18 Hình 3 Thiết lập điều kiện để tấn công leo thang đặc quyền với PL/SQL injection Trang 23 Hình 4 Thiết lập điều kiện để tấn công leo thang đặc quyền với Trang 25 CREATE ANY VIEW Hình 5 Tạo thủ tục Sproc thử nghiệm Trang 26 Hình 6 Các bước tấn công leo thang đặc quyền với CREATE Trang 28 ANY VIEW Hình 7 Lược đồ logic leo thang đặc quyền CREATE ANY VIEW Trang 29 Hình 8 Các bước tấn công leo thang đặc quyền bằng ORACLE Trang 33 INDEXES 4 Lời mở đầu Hiện nay dưới sự phát triển của công nghệ 4.0, công nghệ phần mềm đang ngày càng phát triển, mọi dữ liệu, thông tin quan trọng thay vì lưu trữ bằng giấy tờ như sổ sách giờ đã được thay thế bằng cơ sở dữ liệu trên internet Cơ sở dữ liệu và công nghệ cơ sở dữ liệu đã có những tác động to lớn trong việc phát triển sử dụng máy tính Có thể nói rằng cơ sở dữ liệu ảnh hưởng đến tất cả các nơi có sử dụng máy tính như: Kinh doanh (thông tin về sản phẩm, khách hàng,…), Giáo dục (thông tin về sinh viên, điểm,…), Thư viện (thông tin về tài liệu, tác giả, độc giả,…), Y tế (thông tin về bệnh nhân, thuốc…),…Những thông tin này vô cùng quan trọng, sự ngưng trệ hay hoạt động thiếu chính xác, hay bị kẻ xấu xâm nhập và khai thác một cách trái phép sẽ gây hậu quả nghiêm trọng Do vậy bảo vệ thông tin trong cơ sở dữ liệu là một vấn đề cần được đầu tư nghiên cứu và triển khai ứng dụng nhất định Để làm được điều này, chúng ta cần phải xây dựng cơ sở dữ liệu cùng với các hệ quản trị cơ sở dữ liệu, Oracle là một trong số đó Oracle là bộ phần mềm được cung cấp bởi công ty Oracle, là một trong những hệ quản trị cơ sở dữ liệu phổ biến nhất thế giới Để hình dung dễ dàng hơn và hiểu rõ hơn về kỹ thuật an toàn được thể hiện trong hệ quản trị cơ sở dữ liệu, nhóm chúng em chọn đề tài “Tìm hiểu về tấn công leo thang đặc quyền trong hệ quản trị Oracle” làm đề tài bài tập lớn môn học An toàn cơ sở dữ liệu Nội dung đề tài gồm 3 phần: Chương 1 Tổng quan tấn công leo thang đặc quyền Chương 2 Leo thang đặc quyền trong hệ quản trị cơ sở dữ liệu Oralce Chương 3 Thực nghiệm và đánh giá 5 Nội dung đề tài đi từ khái niệm cơ bản đến cách thức để tấn công leo thang đặc quyền trong hệ quản trị cơ sở dữ liệu Oracle giúp người đọc có cái nhìn tổng quát về vấn đề leo thang đặc quyền cũng như quy trình thực hiện tấn công Oracle dựa trên một số lỗ hổng được công bố Nhóm đề tài xin chân thành cảm ơn cô Trần Thị Lượng đề tận tình giảng dạy, giúp đỡ tận tình để nhóm thực hiện tốt đề tài môn an toàn cơ sở dữ liệu này Mặc dù nhóm đã cố gắng thực hiện đề tài này nhưng do còn hạn chế về mặt thời gian cũng như năng lực nên đề tài khó tránh khỏi thiếu sót và khuyết điểm Nhóm rất mong được nhận sự thông cảm và sự đánh giá, nhận xét của quý thầy cô và sự góp ý của các bạn để giúp đề tài được hoàn thiện hơn Xin cảm ơn tất cả mọi người đã tạo những điều kiện tốt nhất để chúng em hoàn thành đề tài này! Hà Nội, tháng 12 năm 2021 SINH VIÊN THỰC HIỆN Đỗ Minh Hiếu Đinh Thị Thu Trần Văn Nam Nguyễn Thị Tuyền 6 CHƯƠNG 1 TỔNG QUAN TẤN CÔNG LEO THANG ĐẶC QUYỀN 1.1 Giới thiệu về tấn công leo thang đặc quyền Leo thang đặc quyền (Escalating Privilege): là một cách thức phổ biến để tin tặc có thể truy cập trái phép vào một hệ thống được bảo vệ Những kẻ tấn công thường tìm một điểm yếu trong hệ thống phòng thủ của tổ chức và khai thác điểm yếu này để giành quyền truy cập vào hệ thống Trong đa số các trường hợp, điểm xâm nhập đầu tiên sẽ không cung cấp cho tin tặc mức độ truy cập hay dữ liệu mà họ cần Sau đó, họ cố gắng khai thác những lỗ hổng trong hệ thống hoặc sử dụng những công cụ cụ thể để vượt qua cơ chế cấp phép của hệ thống và giành lấy mức truy cập cao hơn, vượt quá những gì được dự định hoặc được hưởng đối với người dùng sau đó thu thập những dữ liệu nhạy cảm, bảo mật Kẻ tấn công hiện sử dụng các đặc quyền kiếm được để đánh cắp dữ liệu bí mật và triển khai phần mềm độc hại với mục đích làm hỏng hệ điều hành, các ứng dụng 7 máy chủ và cuối cùng là danh tiếng của một tổ chức Loại tấn công vào dữ liệu tổ chức này có thể được thực hiện ngay cả bởi một tin tặc không tinh vi để đạt được các đặc quyền ngày càng tăng, lý do là hầu hết các tổ chức kinh doanh không sử dụng đủ các biện pháp bảo mật và kiểm soát Nâng cấp đặc quyền: là một giai đoạn quan trọng của chuỗi tấn công mạng và thường liên quan đến việc khai thác lỗ hổng leo thang đặc quyền, chẳng hạn như lỗi hệ thống, phần mềm định cấu hình sai hoặc kiểm soát truy cập không đầy đủ 1.2 Các dạng leo thang đặc quyền Kẻ tấn công bắt đầu bằng cách khai thác lỗ hổng leo thang đặc quyền trong một hệ thống hoặc ứng dụng mục tiêu, cho phép chúng ghi đè các giới hạn của tài khoản người dùng hiện tại Sau đó, họ có thể truy cập chức năng và dữ liệu của người dùng khác (leo thang đặc quyền theo chiều ngang) hoặc có được các đặc quyền nâng cao, thường là của quản trị viên hệ thống hoặc người dùng quyền lực khác (leo thang đặc quyền dọc) Sự leo thang đặc quyền như vậy thường chỉ là một trong những bước được thực hiện để chuẩn bị cho cuộc tấn công chính 1.2.1 Leo thang đặc quyền dọc Leo thang đặc quyền dọc (Vertical privilege escalation): còn gọi là độ cao đặc quyền, trong đó người dùng hoặc ứng dụng đặc quyền thấp hơn truy cập vào các chức năng hoặc nội dung dành cho người dùng hoặc ứng dụng có đặc quyền 8 cao hơn (ví dụ: người dùng Internet Banking có chức năng quản trị hệ thống và sửa đổi cơ sở dữ liệu).Với các đặc quyền nâng cao này, kẻ tấn công có thể phá hủy tất cả các tài nguyên trong hệ thống máy tính và ứng dụng của bạn: đánh cắp thông tin truy cập và thông tin nhạy cảm khác, tải xuống và thực thi phần mềm độc hại, xóa dữ liệu hoặc thực thi mã tùy ý Tệ hơn nữa, những kẻ tấn công có thể sử dụng các đặc quyền nâng cao để che dấu vết của chúng bằng cách xóa nhật ký truy cập và bằng chứng khác về hoạt động của chúng Điều này có khả năng khiến nạn nhân không biết rằng một cuộc tấn công đã xảy ra Bằng cách đó, tội phạm mạng có thể ngấm ngầm đánh cắp thông tin hoặc cài đặt phần mềm độc hại trực tiếp trong hệ thống Một số ví dụ leo thang đặc quyền dọc: Trong một số trường hợp, một ứng dụng đặc quyền cao giả định rằng nó sẽ chỉ được cung cấp với đầu vào khớp với đặc tả giao diện của nó Kẻ tấn công có thể khai thác giả định này để chạy mã trái phép với đặc quyền của ứng dụng: + Buffer Overflow: về bản chất cuộc tấn công tràn bộ đệm gửi quá nhiều thông tin cho một biến nào đó trong ứng dụng, có thể gây lỗi ứng dụng Một lỗ hổng như tràn bộ đệm có thể được sử dụng để thực thi mã tùy ý với đặc quyền được nâng lên Administrator + Cross Zone Scripting là một kiểu tấn công leo thang đặc quyền trong đó một trang web thay đổi mô hình bảo mật của trình duyệt web, cho phép chạy mã độc trên máy khách + Một ứng dụng có thể thực thi các dòng lệnh Command line hoặc shell có thể có lỗ hổng Shell Injection nếu nó sử dụng đầu vào không có giá trị giống như một phần của lệnh được thực thi, kẻ tấn công sau đó có thể chạy các lệnh hệ thống bằng các đặc quyền ứng dụng IOS jaibreaking: là sự leo thang đặc quyền của thiết bị Apple với mục đích xóa bỏ các hạn chế phần mềm do Apple áp đặt lên có hệ điều hành iOS, iPadOS, tvOS và watchOS Jailbreak cho phép truy cập root trong hệ điều hành di động của Apple, cho phép cài đặt phần mềm không được Apple chấp thuận, như tùy chỉnh và chỉnh sửa giao diện người dùng 9 Root (Android): là quá trình cho phép người dùng điện thoại thông minh, máy tính bảng hay các thiết bị sử dụng hệ điều hành android để đạt được quyền truy cập root Vì android sử dụng nhân linux, việc root thiết bị Android cho phép truy cập tương tự các quyền quản trị như trên linux hoặc bất kỳ hệ điều hành nào giống như Unix (FreeBSD, macOS) Root cung cấp quyền thay đổi hoặc thay thế ứng dụng và cài đặt hệ thống, các ứng dụng chuyên dụng yêu cầu quyền cấp quản trị viên hoặc các hoạt động khác mà người dùng Android không thể truy cập được Rootkit: là một loại chương trình thường được sử dụng để che giấu các tiện ích trên hệ thống bị xâm nhập Rootkit bao gồm cái gọi là backdoor, nó giúp cho kẻ tấn công đó truy cập vào hệ thống sẽ dễ dàng hơn trong lần sau Ví dụ, các rootkit có thể ẩn một ứng dụng, ứng dụng này có thể sinh ra một lệnh kết nối vào một cổng mạng cụ thể trên hệ thống Backdoor cho phép các quá trình bắt đầu bởi một người không có đặc quyền, dùng để thực hiện chức năng thường dành cho các quản trị viên 1.2.2 Leo thang đặc quyền ngang Leo thang đặc quyền ngang (Horizontal privilege escalation): người dùng bình thường truy cập các chức năng hoặc nội dung dành riêng cho những người dùng bình thường khác (ví dụ: người dùng Internet Banking A truy cập vào tài khoản Internet Banking của người dùng B) Một số nguy cơ leo thang đặc quyền ngang: + Có thể dự đoán được session ID trong HTTP cookie của người dùng + Session fixation + Cross-site scripting + Mật khẩu dễ đoán + Trộm cắp hoặc chiếm quyền điều khiển 10 1 Xóa mật khẩu cũ C:\> ORADIM -DELETE -SID sid 2 Tạo mật khẩu mới C:\> ORADIM -NEW -SID sid -INTPWD internal_pwd - MAXUSERS N 2.3 Các loại tấn công leo thang đặc quyền trong Oracle 2.3.1 PL/SQL injection a) Khái niệm PL/SQL (Procedural Language/Structured Query Language) là ngôn ngữ thủ tục mở rộng cho Ngôn ngữ truy vấn có cấu trúc SQL là một ngôn ngữ phổ biến cho cả truy vấn và cập nhật dữ liệu trong hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) PL/SQL bổ sung nhiều cấu trúc thủ tục cho ngôn ngữ SQL để khắc phục một số hạn chế của SQL Bên cạnh đó, PL / SQL cung cấp một giải pháp ngôn ngữ lập trình toàn diện hơn để xây dựng các ứng dụng quan trọng trên Cơ sở dữ liệu Oracle PL/SQL thực thi với các quyền của người định nghĩa (thủ tục được sở hữu bởi người dùng SYS sẽ thực thi với quyền SYS) Từ khoá AUTHID CURRENT_USER: + PL/SQL được tạo bởi từ khoá AUTHID CURRENT_USER thực thi với quyền của invoker + Một thủ tục được sở hữu bởi SYS nhưng được gọi bởi SCOTT sẽ thực thi với quyền của SCOTT PL/SQL tương tự với tiến trình Suid trong Unix world b) PL/SQL injection ▪ Tấn công leo thang đặc quyền bằng PL/SQL là một sự kết hợp thông minh của nhiều các hàm/ thủ tục với các lỗ hổng trong đoạn mã PL/SQL với nhau Kỹ thuật này rất phổ biến trong lĩnh vực bảo mật Các DBA thường sẽ biết đến lỗ hổng này Với nhiều phiên bản DB vẫn giữ nguyên công nghệ này bởi vì Oracle đã ngăn chặn một vài cách 23 ▪ Để sử dụng được phương pháp tấn công này kẻ tấn công: + Cần có quyền tạo hoặc chỉnh sửa một hàm/ thủ tục nào đó + Sau đó kẻ tấn công tạo một hàm với từ khoá là AUTHID CURRENT_USER rồi thực thi câu lệnh SQL mà kẻ tấn công muốn leo thang + Cuối cùng là tiêm hàm đó bằng cách sử dụng một lỗ hổng SQL injection Đoạn mã minh hoạ 2 giai đoạn tấn công PL/SQL : 1 Một hàm với đoạn mã để leo thang đặc quyền Với hàm này kẻ tấn công sẽ có được đặc quyền PUBLIC trong DBA 2 Chạy các câu lệnh SQL injection nhằm khai thác dữ liệu của cơ sở dữ liệu Code ví dụ: 24 Hình 3 Thiết lập điều kiện để tấn công leo thang đặc quyền với PL/SQL injection Hạn chế: ▪ Nếu lỗ hổng chỉ có câu lệnh SELECT thì chỉ có câu lệnh SELECT được thực thi trong hàm injection + Lý do: khi cố gắng thực thi câu lệnh DML trong một câu lệnh SELECT bạn có thể nhận được mã lỗi sau: ORA-14551: cannot perform a DML operation inside a query ▪ Không thể inject các câu lệnh định nghĩa dữ liệu (DDL- Data Definition Language) + Lý do: khi bạn cố gắng thực thi câu lệnh DDL bạn có thể nhận về mã lỗi sau: ORA-14552: cannot perform a DDL, commit or rollback inside a query or DML ▪ Hàm được inject sẽ được thực thi như một hàm phụ thuộc vào ngữ cảnh bên trong lỗ hổng SQL 25 2.3.2 Leo thang đặc quyền DBA bằng CREATE ANY VIEW 2.3.2.1 Cơ sở tấn công Tin tặc cũng có thể khai thác đặc quyền CREATE ANY VIEW bằng cách thức tương tự như trong chương trước Mặc định tại phiên bản 10g bản phát hành 2, người dùng duy nhất có đặc quyền này là SYS Và nếu như tin tặc có thể truyền các câu lệnh SQL vào thủ tục của SYS thì họ kiểu gì cũng có được đặc quyền DBA Nhằm mục đích minh hoạ, giả sử chúng ta có một test user có những đặc quyền CREATE SESSION, CREATE ANY VIEW và CREATE PROCEDURE Người dùng này sẽ tạo ra một thủ tục có chứa lỗ hổng Hình 4 Thiết lập điều kiện để tấn công leo thang đặc quyền với CREATE ANY VIEW 26 Chúng ta có một thủ tục chứa lỗ hổng, một người dùng với đặc quyền CREATE ANY VIEW Bây giờ chúng ta sẽ bắt đầu khai thác chúng để có được đặc quyền DBA 2.3.2.2 Leo thang đặc quyền bằng đặc quyền CREATE ANY VIEW Tin tặc cần tạo một khung nhìn trong Schema của DBA và sau đó, bằng cách nào đó khiến người dùng có đặc quyền cao hơn truy cập khung nhìn này Phần tấn công này nghe có vẻ khó hơn vì phụ thuộc vào việc người dùng đặc quyền cao có truy cập khung nhìn hay không Tuy nhiên không phải vậy Có hàng trăm trường hợp các thủ tục của SYS sử dụng tên của một bảng, hay một khung nhìn làm tham số và sau đó truy cập bảng, hay khung nhìn này Nhưng với mục đích minh hoạ và tiết kiệm thời gian, chúng ta sẽ tạo một hàm ( đảm bảo rằng hàm này không dễ bị chèn SQL injection bằng ASSERT.QUALIFIED_SQL_NAME) Hình 5 Tạo thủ tục Sproc thử nghiệm Tiếp theo, chúng ta sẽ thực hiện lấy quyền DBA Những gì chúng ta cần làm là đưa vào thủ tục của người dùng Vtest (VTEST.VPROC) một thủ tục của chúng ta Thủ 27 tục này sẽ tạo một khung nhìn trong Schema của SYSTEM Ở ví dụ này chúng ta chọn Schema của SYSTEM vì đặc quyền CREATE ANY VIEW không cho phép tạo khung nhìn trong Schema của SYS Khung nhìn được tạo sẽ gọi tới một hàm mà do chính tin tặc tạo ra Hàm này chứa đoạn lệnh gán quyền cho ta để lấy được đặc quyền DBA Khi chúng ta truy cập khung nhìn thông qua thủ tục SYS.SPROC, hàm này sẽ được thực thi và quyền DBA sẽ được gán: 28 Hình 6 Các bước tấn công leo thang đặc quyền với CREATE ANY VIEW Lược đồ quá trình này có thể dễ dàng thấy được như sau: Hình 7 Lược đồ logic leo thang đặc quyền CREATE ANY VIEW 29 2.3.3 Leo thang đặc quyền DBA bằng EXCUTE ANY PROCEDURE VÀ CREATE PROCEDURE 2.3.3.1 Leo thang đặc quyền bằng đặc quyền EXCUTE ANY PROCEDURE Tương tự như các chương trên, tin tặc có thể lợi dụng đặc quyền EXCUTE ANY PROCEDURE và tìm ra một thủ tục của người dùng SYS cho phép chèn vào những đoạn mã SQL tuỳ ý để ngay lập tức lấy được đặc quyền DBA Chỉ một số các thủ tục có thể được khai thác được liệt kê dưới đây 2.3.3.2 Leo thang đặc quyền bằng đặc quyền CREATE PROCEDURE Trong trường hợp chúng ta tìm ra một lỗ hổng SQL injection trong một package của một người dùng có rất ít đặc quyền như OLAPSYS, MDSYS, DBSNMP và ORDSYS Những tài khoản này thường được cấp quyền CREATE PROCEDURE Do đó, nếu những người dùng này thay đổi một trong các thủ tục mà họ sở hữu – có những thủ tục của người dùng khác phụ thuộc lên những thủ tục này – thì họ sẽ có quyền thực thi những đoạn mã như những tài khoản sở hữu những thủ tục phụ thuộc kia Nếu tài khoản người dùng bị tấn công không phải người dùng DBA, thì bạn cũng đã tiến gần hơn một bước tới việc đạt được quyền hạn cao hơn Lấy ví dụ thủ tục VALIDATE_CONTEXT do SYS sở hữu nhưng phụ thuộc vào gói DRUE của CTXSYS Nếu CTXSYS thay đổi package này, chèn vào nó những 30 đoạn mã tấn công, thì theo lí thuyết CTXSYS sẽ lấy được quyền DBA Vì vậy, nếu CTXSYS sở hữu một thủ tục PUBLIC có thể bị tấn công SQL injection thì CTXSYS cũng có khả năng lấy được quyền DBA Trong phiên bản 10g bản phát hành 2, CTXSYS đã bị gỡ bỏ đặc quyền này Tuy nhiên chúng ta đã nắm được ý tưởng về cách thức tấn công Vì vậy, có thể tham khảo những thủ tục nào phụ thuộc vào cái gì thông qua DBA_DEPENDENCIES 2.3.4 Leo thang đặc quyền DBA bằng ORACLE INDEXES 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: 31 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 32 33 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: 34 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 35 TÀI LIỆU THAM KHẢO [1] The oracle hacker’s handbook: Hacking and defending oracle – David LitchField [2] https://docs.oracle.com/database/121/DBSEG/toc.htm [3] Advanced SQL Injection in Oracle databases - Esteban Martínez Fayó [4] Best of Oracle Security 2014 - Alexander KornBusrt [5] http://www.davidlitchfield.com/Privilege_Escalation_via_Oracle_Indexes.pdf [6] http://www.orkspace.net/secdocs/Web/SQL%20Injection/Advanced %20SQL%20Injection%20In%20Oracle%20Databases.pdf [7] http://obtruse.syfrtext.com/2018/07/oracle-privilege-escalation-via.html 36 ... đầu CHƯƠNG TỔNG QUAN TẤN CÔNG LEO THANG ĐẶC QUYỀN 1.1 Giới thiệu công leo thang đặc quyền 1.2 Các dạng leo thang đặc quyền 1.2.1 Leo thang đặc quyền dọc 1.2.2 Leo thang đặc quyền ngang 10 1.3 Các... 2.2.2 Đặc quyền Oracle 18 2.3 Các loại công leo thang đặc quyền Oracle 23 2.3.1 PL/SQL injection 23 2.3.2 Leo thang đặc quyền DBA CREATE ANY VIEW 26 2.3.2.1 Cơ sở công 26 2.3.2.2 Leo thang đặc quyền. .. quyền đặc quyền CREATE ANY VIEW 27 2.3.3 Leo thang đặc quyền DBA EXCUTE ANY PROCEDURE VÀ CREATE PROCEDURE 30 2.3.3.1 Leo thang đặc quyền đặc quyền EXCUTE ANY PROCEDURE 30 2.3.3.2 Leo thang đặc quyền

Ngày đăng: 06/04/2022, 11:25

Hình ảnh liên quan

Hình 1. Cấu trúc 3 lớp của Oracle Lớp dữ liệu (File Systems) - Tìm hiểu về tấn công leo thang đặc quyền (Privilege Escalation) trên Oracle và thực nghiệm

Hình 1..

Cấu trúc 3 lớp của Oracle Lớp dữ liệu (File Systems) Xem tại trang 14 của tài liệu.
Hình 2. Phương thức xác nhận quyền - Tìm hiểu về tấn công leo thang đặc quyền (Privilege Escalation) trên Oracle và thực nghiệm

Hình 2..

Phương thức xác nhận quyền Xem tại trang 20 của tài liệu.
Hình 3. - Tìm hiểu về tấn công leo thang đặc quyền (Privilege Escalation) trên Oracle và thực nghiệm

Hình 3..

Xem tại trang 25 của tài liệu.
Hình 6. Các bước tấn công leo thang đặc quyền với CREATE ANY VIEW - Tìm hiểu về tấn công leo thang đặc quyền (Privilege Escalation) trên Oracle và thực nghiệm

Hình 6..

Các bước tấn công leo thang đặc quyền với CREATE ANY VIEW Xem tại trang 29 của tài liệu.

Mục lục

    DANH MỤC HÌNH VẼ

    TỔNG QUAN TẤN CÔNG LEO THANG ĐẶC QUYỀN

    1.1 Giới thiệu về tấn công leo thang đặc quyền

    1.2 Các dạng leo thang đặc quyền

    1.2.1. Leo thang đặc quyền dọc

    1.2.2. Leo thang đặc quyền ngang

    1.3. Các biện pháp bảo vệ hệ thống giảm thiểu leo thang đặc quyền

    1.4 Vấn đề đặt ra:

    LEO THANG ĐẶC QUYỀN TRONG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ORACLE

    2.1 Giới thiệu cấu trúc Oracle

Tài liệu cùng người dùng

Tài liệu liên quan