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.
Trang 1HỌ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
Trang 2LEO THANG ĐẶC QUYỀN TRONG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
2.1 Giới thiệu cấu trúc Oracle 14
2.2.2 Đặc quyền trong Oracle 182.3 Các loại tấn công leo thang đặc quyền trong Oracle 23
2.3.2 Leo thang đặc quyền DBA bằng CREATE ANY VIEW 26
Trang 32.3.3 Leo thang đặc quyền DBA bằng EXCUTE ANY PROCEDURE VÀ
Trang 4DANH MỤC HÌNH VẼ
Hình 3 Thiết lập điều kiện để tấn công leo thang đặc quyền với
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
Trang 25
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
ANY VIEW
Trang 28
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
INDEXES
Trang 33
Trang 6về 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ộtcá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
Trang 7Nội dung đề tài đi từ khái niệm cơ bản đến cách thức để tấn công leo thang đặcquyề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ựatrê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ũngnhư 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ủacá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ànthà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 NamNguyễn Thị Tuyền
Trang 8CHƯƠ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ườngtì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 caohơ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à
Trang 9má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 đượccá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ảnngườ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ườidùng khác (leo thang đặc quyền theo chiều ngang) hoặc có được các đặc quyềnnâ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ộttrong 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àocá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
Trang 10cao 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 tintruy 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ânkhô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 tincho 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ênAdministrator
+ Cross Zone Scripting là một kiểu tấn công leo thang đặc quyền trong đó mộttrang web thay đổi mô hình bảo mật của trình duyệt web, cho phép chạy mã độctrê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ộtphầ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ằngcá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ủaApple, 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
Trang 11Root (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ềntruy cập root Vì android sử dụng nhân linux, việc root thiết bị Android cho phéptruy 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àogiố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ảntrị 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ácrootkit 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àomộ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ởimộ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ácquả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
Trang 12+ Keystroke logging
1.3 Các biện pháp bảo vệ hệ thống giảm thiểu leo thang đặc quyền
Những kẻ tấn công sử dụng nhiều kỹ thuật leo thang đặc quyền để đạt đượcmục tiêu của họ Nhưng để cố gắng leo thang đặc quyền ở bước đầu tiên, họthường cần có quyền truy cập vào tài khoản người dùng ít đặc quyền hơn Điều này
có nghĩa là tài khoản người dùng thông thường cần bảo vệ đầu tiên, do đó cần thựchiện các biện pháp để kiểm soát truy cập:
● Thực thi chính sách mật khẩu: mật khẩu cần phải đủ mạnh và thay đổi mậtkhẩu thường xuyên để bảo mật, nhưng không gây bất tiện cho người dùng
● Tạo người dùng và nhóm chuyên biệt với quyền truy cập và quyền truy cậptệp tối thiểu cần thiết: áp dụng quy tắc quyền tối thiểu cần thiết để giảmthiểu rủi ro khi bất kỳ tài khoản người dùng bị xâm phạm
Các ứng dụng cung cấp điểm vào dễ dàng nhất cho bất kỳ cuộc tấn côngnào, vì vậy điều quan trọng là giữ an toàn cho chúng:
● Tránh các lỗi lập trình phổ biến trong các ứng dụng của bạn: tránh các lỗilập trình phổ biến thường bị kẻ tấn công nhắm tới như tràn bộ đệm, codeinjection và đầu vào của người dùng không được xác thực
● Bảo mật cơ sở dữ liệu và lọc đầu vào của người dùng: các hệ thống cơ sở dữliệu thường là mục tiêu tấn công vì nhiều ứng dụng web hiện nay vàframeworks lưu trữ tất cả dữ liệu của chúng trong cơ sở dữ liệu bao gồm càiđặt cấu hình, thông tin đăng nhập và dữ liệu người dùng Chỉ với một cuộctấn công SQL injection, kẻ tấn công có thể có quyền truy cập vào tất cảthông tin này sử dụng để cho cuộc tấn công tiếp theo.
Không phải tất cả các cuộc tấn công leo thang đặc quyền nhắm trực tiếp vào tài khoản người dùng, đặc quyền của quản trị viên cũng có thể có được bằng cách khai thác lỗi ứng dụng và hệ điều hành hay lỗi cấu hình Để giảm thiểu:
● Giữ cho hệ thống và ứng dụng được vá và cập nhật: Nhiều cuộc tấn côngkhai thác lỗi đã biết, vì vậy ta cần giữ cập nhật để hạn chế tấn công
Trang 13● Đảm bảo quyền chính xác cho tất cả các tệp và thư mục: cũng như tài khoảnngười dùng, các tệp và thư mục cần tuân theo quy tắc quyền tối thiểu, nếu có
gì đó không cần ghi hãy giữ ở chế độ đọc
● Đóng các cổng không cần thiết và xóa tài khoản người dùng không sử dụng:cấu hình hệ thống mặc định thường bao gồm các dịch vụ không cần thiếtchạy trên các cổng mở và mỗi cổng là một lỗ hổng tiềm năng Bạn có thểxóa hoặc đổi tên tài khoản người dùng mặc định để tránh kẻ tấn công bắt đầu
dễ dàng
● Xóa và hạn chế tất các các chức năng truyền tệp: kẻ tấn công thường cầnmột cách để tải xuống tập lệnh khai thác và mã độc, vì vậy hãy xem kĩ tất cảcác công cụ, tiện ích hệ thống cho phép truyền tập như FTP, wget, curl Xóa các công cụ bạn không cần và khóa những công cụ còn lại, hạn chế sửdụng chúng cho các thư mục, người dùng và ứng dụng cụ thể
● Thay đổi thông tin đăng nhập mặc định trên tất cả các thiết bị bao gồm cảrouter và máy in: chỉ cần bộ định tuyến có mật khẩu mặc định của quản trịviên hay một máy in mạng có cổng telnet đang mở có thể cung cấp cho kẻtấn công chỗ đứng
● Thường xuyên quét các hệ thống và ứng dụng để tìm lỗ hổng
Để giảm nguy cơ leo thang đặc quyền người dùng có thể sử dụng một vàibiện pháp khác:
● Ngăn chặn thực thi dữ liệu
● Bố trí ngẫu nhiên không gian địa chỉ (làm cho tấn công tràn bộ đệm khóthực hiện hơn)
● Sử dụng trình biên dịch bẫy tràn bộ đệm
● Mã hóa phần mềm hoặc các thành phần firmware
● Sử dụng hệ thống với kiểm soát truy nhập bắt buộc MAC
Trang 141.4 Vấn đề đặt ra:
Vậy có khả thi không khi khai thác những lỗi thuộc về những người dùngkhông phải quản trị viên của cơ sở dữ liệu và từ đó lấy được các đặc quyền củaquản trị viên cơ sở dữ liệu? Câu trả lời là có thể làm được nhưng phụ thuộc vàonhiều yếu tố như đặc quyền mà người dùng bị tin tặc chiếm đoạt thực sự có là gì.Tin tặc thực sự có thể lạm dụng những đặc quyền cụ thể để khai thác được đặcquyền của quản trị viên cơ sở dữ liệu Một trong số đó sẽ dễ dàng để khai thác hơn
so với những đặc quyền còn lại Những đặc quyền dễ bị khai thác nhất là đặcquyền CREATE ANY bởi rất nhiều đặc quyền CREATE ANY cho phép kẻ khaithác tiến tới rất gần với đặc quyền của DBA Ngoài ra, thậm chí đặc quyềnCREATE PROCEDURE cũng có thể bị khai thác để để chiếm quyền DBA
Trang 15CHƯƠNG 2 LEO THANG ĐẶC QUYỀN TRONG HỆ QUẢN TRỊ CƠ SỞ DỮ
LIỆU ORACLE2.1 Giới thiệu cấu trúc Oracle
Oracle được xây dựng trên 3 kiến trúc gồm:
+ Kiến trúc bộ nhớ (memory structure)
+ Kiến trúc process (process structure)
+ Kiến trúc về lưu trữ (storage structure)
Hình 1 Cấu trúc 3 lớp của Oracle Lớp dữ liệu (File Systems)
Lớp dữ liệu bao gồm các tập tin dữ liệu được tổ chức lưu trữ tại các đĩa cứng củamột hoặc nhiều máy chủ khác nhau (tính phân tán của CSDL Oracle) Khi có cácyêu cầu truy xuất từ phía các máy trạm, các thành phần bên trong dữ liệu đã được
Trang 16các xử lý bên dưới nạp đúng phần dữ liệu cần truy xuất trước đó từ đĩa cứng vàobên trong bộ nhớ của máy chủ Điều này sẽ giúp cho tốc độ truy xuất được hiệuquả hơn.
Thông thường bên trong một CSDL Oracle sẽ có nhiều loại tập tin dữ liệu khácnhau Tiêu biểu là một số loại tập tin sau:
▪ Tập tin tham số (init file): là tập tin chứa các thông tin cơ sở liên quan đếntên CSDL, vị trí của các tập tin điều khiển, các tham số
▪ Tập tin điều khiển (control file): là tập tin chứa các thông tin liên quan đếnngày giờ tạo CSDL, vị trí của CSDL
▪ Tập tin dữ liệu (database file): là tập tin chứa dữ liệu thật sự của CSDL
▪ Tập tin lưu vết (redo log file): là tập tin chứa các hành động cập nhật dữ liệu(thêm, sửa, huỷ) bên trong các giao tác
Lớp xử lý bên dưới (Background processes)
Lớp xử lý bên dưới tại máy chủ sẽ đảm bảo cho mối quan hệ giữa phần CSDL vật
lý và phần hiển thị trong bộ nhớ được khớp nhau Cũng giống như lớp dữ liệu, các
xử lý được chia ra làm nhiều loại khác nhau Một số xử lý tiêu biểu như sau:
▪ Xử lý ghi vào CSDL (database writer): xử lý này được tự động thực hiện khi
dữ liệu trên vùng đệm của bộ nhớ máy tính bị đầy, khi đó hệ thống sẽ đọc vàghi xuống CSDL các dòng dữ liệu bị thay đổi và sau đó giải phóng vùngđệm bộ nhớ máy tính
▪ Xử lý ghi vào tập tin log (log writer): xử lý này được tự động thực hiện đểghi nhận xuống tập tin log các thông tin dữ liệu bên trong quá trình thựchiện giao tác Điều này sẽ làm an toàn dữ liệu hơn khi giao tác chưa kết thúcnhưng thông tin vẫn được lưu trữ
Lớp bộ nhớ (Memory)
Lớp bộ nhớ bao gồm nhiều thành phần khác nhau được tổ chức lưu trữ trên vùngđệm bộ nhớ của máy tính nhằm tăng tốc độ xử lý trong Oracle, khái niệm này cònđược biết đến với một tên khác là vùng toàn cục hệ thống (System global area).Một số vùng đệm tiêu biểu như sau:
Trang 17▪ Vùng đệm lưu trữ CSDL (database buffer cache): là nơi lưu trữ các thông tin
dữ liệu đã được đọc từ các tập tin dữ liệu trên đĩa cứng
▪ Vùng đệm lưu trữ các thông tin chung thường dùng (dictionary cache): lànơi lưu trữ các bảng hệ thống của CSDL Oracle, bản thân Oracle thườngxuyên sử dụng các bảng này do đó bên trong hệ thống Oracle đã quyết địnhđặt chúng trên bộ nhớ nhằm tránh đi việc đọc đĩa thường xuyên
▪ Vùng đệm lưu trữ lệnh SQL (SQL area): là nơi lưu trữ các lệnh SQL đượcthực hiện tại máy chủ mà các máy trạm truyền đến Tại đây các lệnh sẽ đượcphân tích cú pháp, kiểm tra tính đúng sai trước khi thực hiện và trả về kếtquả cho các máy trạm
2.2 Quản trị trong Oracle
2.2.1 Phân loại User
Oracle là một hệ quản trị cơ sở dữ liệu lớn, chạy trên môi trường mạng Đểvận hành hệ thống được tốt, có thể có nhiều người sẽ cùng tham gia vào hệ thốngvới những vai trò khác nhau gọi là các user Có thể phân ra làm một số loại userchính sau:
được gọi là database administrator (DBA) Mỗi data cần ít nhất một người để thựchiện công việc quản trị Một database administrator có trách nhiệm thực hiện một
số công việc sau:
Trang 18✔ Cài đặt và nâng cấp Oracle server và các công cụ ứng dụng khác.
✔ Phân phối hệ thống lưu trữ và lên kế hoạch lưu trữ cho hệ thống cơ sở dữ liệu trong tương lai
✔ Tạo những cấu trúc lưu trữ cơ bản như tablespaces phục vụ cho việc phát triển và hoạt động của các ứng dụng
✔ Tạo các đối tượng trong database như tables, views, indexes sử dụng cho cácứng dụng được thiết kế
✔ Thay đổi cấu trúc database khi cần thiết tuỳ theo các thông tin của các
application
✔ Quản lý các users và đảm bảo bảo mật hệ thống
✔ Đảm bảo tương thích về bản quyền, phiên bản với hệ thống Oracle
✔ Điều khiển và quản trị các user access truy xuất tới database
✔ Quản lý và tối ưu các truy xuất tới database
✔ Lên kế hoạch backup (sao lưu) và recovery (phục hồi) các thông tin có trongdatabase
✔ Lưu trữ các archive data
✔ Sao lưu và khôi phục database
✔ Cập nhật các công nghệ mới đưa ra các câu hỏi bổ ích
Security Officers
Trong một số trường hợp, hệ thống đòi hỏi chế độ bảo mật cao Khi đó cần đến một hay một nhóm người chuyên thực hiện công tác bảo vệ database gọi là security officers Security officer có thể kết nối tới database, điều khiển và quản lý việc truy cập database của các users và bảo mật hệ thống.
Application Developers
Application developer là người thiết kế và viết các ứng dụng database
Application developer có trách nhiệm thực hiện một số yêu cầu sau:
✔ Thiết kế và phát triển ứng dụng database