You are on page 1of 36

BAN CƠ YẾU CHÍNH PHỦ

HỌC VIỆN KỸ THUẬT MẬT MÃ

BÀI TẬP LỚN MÔN AN TOÀN


CƠ SỞ DỮ LIỆU

GIẢNG VIÊN HƯỚNG DẪN:


TS. TRẦN THỊ LƯỢNG
SINH VIÊN THỰC HIỆN:
HỨA THỊ THU HIỀN – AT13D
NGUYỄN THỊ THU TRANG – AT13D
TRẦN MINH HIẾU – AT13D
LÊ CÔNG THẢO – AT13D

Hà Nội, 2019

1
BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ

ĐỀ 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 hướng dẫn:


TS. Trần Thị Lượng
Sinh viên thực hiện:
Hứa Thị Thu Hiền – AT13D
Trần Minh Hiếu – AT13D
Lê Công Thảo – AT13D
Nguyễn Thị Thu Trang – AT13D

Hà Nội, 2019
2
MỤC LỤC
DANH MỤC TỪ VIẾT TẮT........................................................................................4
DANH MỤC HÌNH ẢNH.............................................................................................5
LỜI NÓI ĐẦU............................................................................................................... 1
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT..............................................................................2
1.1) Giới thiệu về Oracle.........................................................................................2
1.2) Quá trình cài đặt Oracle....................................................................................3
1.3) Các loại tấn công trên Oracle.........................................................................16
1.3.1) Tấn công SQL Injection..............................................................................16
1.3.2) Tấn công chèn PL/SQL...............................................................................17
1.3.3) Tấn công Rootkit trong Oracle....................................................................17
1.3.4) Tấn công Oracle Listener............................................................................17
1.3.5) Sâu Oracle...................................................................................................17
CHƯƠNG 2: TÌM HIỂU VỀ TẤN CÔNG LEO THANG ĐẶC QUYỀN
(PRIVILEGE ESCALATION) TRÊN ORACLE VÀ THỰC NGHIỆM.....................19
2.1) Tổng quan về leo thang đặc quyền....................................................................19
2.2) Cách thức tấn công............................................................................................21
2.3) Các kỹ thuật leo thang đặc quyền và cách phòng tránh.....................................22
2.3.1) Kỹ thuật thao tác token truy cập.................................................................22
2.3.2) Khai thác lỗ hổng trong việc quản lý tài khoản người dùng và quyền
được thiết lập........................................................................................................24
2.3.3) Sử dụng tài khoản hợp lệ............................................................................25
2.4) Bài toán thực nghiệm........................................................................................26
2.3) Thách thức.........................................................................................................32
2.4) Giải pháp bảo mật Oracle Database..................................................................32
TỔNG KẾT.................................................................................................................34
TÀI LIỆU THAM KHẢO...........................................................................................35

3
DANH MỤC TỪ VIẾT TẮT

Từ viết tắt Từ viết đầy đủ Ý nghĩa


CSDL Cơ Sở Dữ Liệu Cơ sở dữ liệu
SQL Structured Query Ngôn ngữ truy vấn
Language
DBA Database Admin Quản trị cơ sở dữ liệu
OS Operating System Hệ điều hành
CNTT Công Nghệ Thông Tin Công nghệ thông tin
ID Identification Định danh

4
DANH MỤC HÌNH ẢNH

Hình 1: Tải về file cài đặt..............................................................................................4


Hình 2: Giải nén file cài đặt...........................................................................................4
Hình 3: Chạy file cài đặt................................................................................................5
Hình 4: Bước 1 - Đăng nhập oracle...............................................................................5
Hình 5: Bước 2 - Cài đặt lựa chọn.................................................................................6
Hình 6: Bước 3 - cài đặt server......................................................................................6
Hình 7: Bước 4 - Cài đặt database.................................................................................7
Hình 8: Bước 5 - Cài đặt tùy chọn.................................................................................7
Hình 9: Bước 6 - Chọn ngôn ngữ...................................................................................8
Hình 10: Bước 7 - Chọn phiên bản oracle......................................................................8
Hình 11: Bước 8 - Tạo user...........................................................................................9
Hình 12: Bước 9 - Chọn lưu trữ.....................................................................................9
Hình 13: Bước 10 - Cài đặt bổ sung.............................................................................10
Hình 14: Bước 11 - Đặt tên database...........................................................................10
Hình 15: Bước 12.1 - Cài đặt lưu trữ...........................................................................11
Hình 16: Bước 12.2 - Cấu hình font chữ......................................................................11
Hình 17: Bước 12.3 - Cài đặt bổ sung..........................................................................12
Hình 18: Bước 13 - Chọn file lưu trữ dữ liệu...............................................................12
Hình 19: Bước 14 - Đăng ký thành viên......................................................................13
Hình 20: Bước 15 - Cài đặt file recovery.....................................................................13
Hình 21: Bước 16 - Cài đặt mật khẩu database............................................................14
Hình 22: Bước 18 - Cài đặt tự động.............................................................................14
Hình 23: Bước 19.1 - Cài đặt tự động (1)....................................................................15
Hình 24: Bước 19.2 - Cài đặt tự động (2)....................................................................15
Hình 25: Bước 19.3 - Thông tin cài đặt.......................................................................16
Hình 26: Bước 20 - Hoàn thành cài đặt thành công.....................................................16
Hình 27: Demo - đăng nhập với quyền sys..................................................................27
Hình 28: Demo - Tạo user lct và gán quyền................................................................27
Hình 29: Demo - Tạo bảng và cấp quyền index cho user lct........................................28
Hình 30: Demo - User lct cố gắng lấy quyền dba........................................................28
Hình 31: Demo - User lct tạo function.........................................................................29
Hình 32: Demo - User lct lập chỉ mục với function đã tạo...........................................29
Hình 33: Demo - User lct lấy quyền dba thành công...................................................30
Hình 34: Demo - kết thúc, tấn công thành công...........................................................30

5
LỜI NÓI ĐẦU
Cơ sở dữ liệu là một trong những ngành được quan tâm nhiều trong
khoa học máy tính nói chung và trong công nghệ thông tin nói riêng. Từ
khi có mô hình cơ sở dữ liệu đầu tiên vào những năm 60 đến nay, tuy
không phải là chặng đường dài so với các ngành khoa học khác, nhưng
với ngành khoa học máy tính và đặc biệt là cơ sở dữ liệu thì đó là thời
gian đáng kể. Cơ sở dữ liệu đã trải qua nhiều thế hệ của hệ quản trị cơ sở
dữ liệu đã có nhiều ứng dụng trong khoa học và các ngành kinh tế khác.
Hệ quản trị cơ sở dữ liệu Oracle là một trong những hệ quản trị cơ sở dữ
liệu lưu trữ thông tin an toàn và chắc chắn đồng thời lại truy cập chính
xác, dễ dàng.

Cơ sở dữ liệu (CSDL) của các tổ chức, doanh nghiệp luôn là mục


tiêu của nhiều cuộc tấn công. Bởi đây là nơi lưu trữ các thông tin về
khách hàng và nhiều dữ liệu bí mật khác. Một trong những nguyên nhân
khiên cho các CSDL dễ bị tổn thương bởi các tấn công là do các tổ chức,
doanh nghiệp chưa có biện pháp bảo vệ đầy đủ cho nguồn tài nguyên
này. Khi kẻ xấu truy nhập vào dữ liệu nhạy cảm, có thể thực hiện tất cả
các công việc để gây mất mát về tài chính hoặc phá hoại danh tiếng của
tổ chức doanh nghiệp. Bản báo cáo này nhóm chúng em xin trình bày về
đề tài tấn công leo thang đặc quyền vào cơ sở dữ liệu Oracle.

Do còn hạn chế nhiều về thời gian, kiến thức và kinh nghiệm thực
tế nên đề tài của nhóm em không tránh khỏi những thiếu xót và khuyết
điểm. Nhóm thực hiện đề tài rất mong nhận được sự đánh giám nhận xét
từ các thầy cô để chúng em có thể hoàn thiện một cách tốt nhất, rút ra
kinh nghiệm trong nghiên cứu và trong công việc sau này.

Chúng em xin chân thành cảm ơn!

1
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1) Giới thiệu về Oracle
Các doanh nghiệp và các công ty lớn có lượng thông tin về khách
hàng ngày một lớn và thường xuyên, quá trình quản lý việc và xử lý
thông tin là vấn đề phức tạp mà bất kì một tổ chức nào cũng cần phải
chú trong. Ngày nay có rất nhiều chương trình ứng dụng giúp ta quản lý
và lưu trữ thông tin dễ dàng, trong đó có thể kể đến Oracle, là một
trong những chương trình ứng dụng, nó có cơ chế bảo mật dữ liệu rất
chặt chẽ giúp cho hệ thống hoạt động rất tốt và rất an toàn trong việc
cập nhật và truy cập dữ liệu, tránh được việc mất mát dữ liệu, dễ dàng
bảo trì và nâng cấp, có cơ chế quyền hạn rõ ràng vì vậy nó được sử
dụng ở nhiều tổ chức lớn như ngân hàng, chính phủ, … Oracle dễ nâng
cấp lên phiên bản mới, thuận lợi cho các lập trình viên như viết các
Trigger, Package vì trong Oracle còn tích hợp thêm PL/SQL là một
ngôn ngữ lập trình có cấu trúc và đây chính là điểm mạnh của Oracle so
với các CSDL khác. Oracle tương tác với nhiều hệ điều hành như
Windows, Linux.
Oracle là bộ giải pháp được cung cấp bởi công ty Oracle – Đây là
một hệ quản trị CSDL có tính bảo mật cao, hỗ trợ tốt các mô hình truy
cập dữ liệu tập trung cũng như phân tán. Giải pháp của Oracle bao
gồm:
- Hệ quản trị CSDL Oracle Database được cài đặt trên máy
chủ Database Server
- Oracle Client được cài đặt trên máy trạm cho phép các ứng
dụng tại máy trạm truy cập và thao tác với ứng dụng tại máy
chủ.
- Công cụ cho việc thiết kế và quản trị CSDL như Oracle
Designer, SQL Plus.
- PL/SQL là ngôn ngữ thủ tục cho được Oracle dùng để xây
dựng đối tượng trong Oracle Database.
-

2
1.2) Quá trình cài đặt Oracle
- Tải về file cài đặt ở trang chủ oracle

Hình 1: Tải về file cài đặt

- Giải nén file tải về

Hình 2: Giải nén file cài đặt

3
- Chạy chương trình setup.exe

Hình 3: Chạy file cài đặt

- Bước 1: Đăng nhập oracle

Hình 4: Bước 1 - Đăng nhập oracle

4
- Bước 2: Cài đặt phần mềm và tạo luôn 1 database có tên là db12c

Hình 5: Bước 2 - Cài đặt lựa chọn

- Bước 3: Cài đặt server

Hình 6: Bước 3 - Cài đặt server

5
- Bước 4: Cài đặt 1 database

Hình 7: Bước 4 - Cài đặt database

- Bước 5: Tùy chọn cài đặt

Hình 8: Bước 5 - Cài đặt tùy chọn

6
- Bước 6: Chọn ngôn ngữ

Hình 9: Bước 6 - Chọn ngôn ngữ

- Bước 7: Chọn phiên bản

Hình 10: Bước 7 - Chọn phiên bản oracle

7
- Bước 8: Tạo user

Hình 11: Bước 8 - Tạo user

- Bước 9: Chọn vị trí lưu trữ

Hình 12: Bước 9 - Chọn lưu trữ

8
- Bước 10: Chọn loại database muốn cài đặt

Hình 13: Bước 10 - Cài đặt bổ sung

- Bước 11: Đặt tên database

Hình 14: Bước 11 - Đặt tên database

9
- Bước 12.1: Cấu hình lưu trữ

Hình 15: Bước 12.1 - Cài đặt lưu trữ

- Bước 12.2: Cấu hình font chữ

Hình 16: Bước 12.2 - Cấu hình font chữ

10
- Bước 12.3: Cấu hình bổ sung

Hình 17: Bước 12.3 - Cài đặt bổ sung

- Bước 13: Chọn file lưu trữ dữ liệu

Hình 18: Bước 13 - Chọn file lưu trữ dữ liệ

11
- Bước 14: Đăng ký thành viên

Hình 19: Bước 14 - Đăng ký thành viên

- Bước 15: Chọn file recovery

Hình 20: Bước 15 - Cài đặt file recovery

12
- Bước 16: Đặt password cho user sys

Hình 21: Bước 16 - Cài đặt mật khẩu database

- Bước 18: Tiến hành cài đặt tự động

Hình 22: Bước 18 - Cài đặt tự động

13
- Bước 19.1: Quá trình cài đặt oracle

Hình 23: Bước 19.1 - Cài đặt tự động (1)

- Bước 19.2: Quá trình cài đặt oracle

Hình 24: Bước 19.2 - Cài đặt tự động (2)

14
- Bước 19.3: Thông tin cơ sở dữ liệu đã cài đặt

Hình 25: Bước 19.3 - Thông tin cài đặt

- Bước 20: Cài đặt thành công

Hình 26: Bước 20 - Hoàn thành cài đặt thành công

15
1.3) Các loại tấn công trên Oracle
1.3.1) Tấn công SQL Injection
- Là một kỹ thuật cho phép những kẻ tấn công lợi dụng lỗ hổng vào việc
kiểm tra dữ liệu đầu vào trong các ứng dụng web và các thông báo lỗi
của hệ quản trị cơ sở dữ liệu trả về để tiêm vào và thực thi các câu lệnh
SQL bất hợp pháp. SQL Injection có thể cho phép kẻ tấn công thực hiện
thao tác, delete, insert, update, … trên cơ sở dữ liệu của ứng dụng, thậm
trí là cả trên server mà ứng dụng đó đang chạy, lỗi ngày thường xảy ra
trên các ứng dụng web có dữ liệu quản lý bằng các hệ quản trị dữ liệu
như SQL server, My SQL, Oracle, …
- Các dạng lỗi thường gặp
+ Không kiểm tra ký tự thoát truy vấn
+ Xử lý không đúng kiểu
+ Blind SQL Injection
+ Thay đổi giá trị kiểu truy vấn
+ Điều kiện lỗi
+ Thời gian trễ
- Một số dạng tấn công thường gặp với ứng dụng Web
+ Dạng tấn công vượt qua lúc đăng nhập
Với dạng tấn công này, tin tặc có thể dễ dàng vượt qua các trang
đăng nhập nhờ vào lỗi khi dùng các câu lệnh SQL thao tác trên cơ sở dữ
liệu của ứng dụng web. Thông thường để cho phép người dùng truy cập
vào các trang web được bảo mật, hệ thống thường xây dựng trang đăng
nhập để yêu cầu người dùng nhập thông tin về tên đăng nhập và mật
khẩu. Sau khi người dùng nhập thông tin vào, hệ thống sẽ kiểm tra tên
đăng nhập và mật khẩu có hợp lệ hay không để quyết định cho phép hay
từ chối thực hiện tiếp.
+ Dạng tấn công sủ dụng câu lệnh SELECT
+ Dạng tấn công sủ dụng câu lệnh INSERT

1.3.2) Tấn công chèn PL/SQL


PL/SQL injection là một kỹ thuật tấn công khá quan trọng liên quan
tới các procedure được lưu trữ trong oracle. Sử dụng PL/SQL injection,
người tấn công có thể leo thang đặc quyền từ tài khoản Public tới tài
khoản đặc quyền mức DBA. Kỹ thuật này xuất hiện ở tất cả các phiên
bản của Oracle và có thể dùng để tấn công các procedure của khách hàng
cũng như của chính Oracle. Có thể inject vào các câu lệnh insert, select,
delete, update trong các procedure, package, vào các anonymous
PL/SQL Blook. (Loại tấn công này sẽ được trình bày rõ trong chương 2)

16
1.3.3) Tấn công Rootkit trong Oracle
Oracle database và Os khá tương đồng với nhau về mặt cấu trúc. Cả
database và Os đều có user, process, job, executable. Vì vậy hacker có thể lợ
dụng sự tương đồng này để triển khai các rootkit cũng như các mã độc khác
như virus, từ phạm vi của Os sang lãnh địa của Oracle database.

1.3.4) Tấn công Oracle Listener


Trong cấu trúc cơ sở dữ liệu (CSDL) của Oracle thì Listener là một tiến
trình mạng của CSDL Oracle. Nó chờ đợi các yêu cầu kết nối từ máy ở xa.
Nếu tiến trình này bị tổn hại thì có thể ảnh hưởng đến sự sẵn sàng của CSDL.
Listener trong CSDL Oracle được coi là cổng vào cho các kết nối từ xa đến
một CSDL Oracle. Nó lắng nghe yêu cầu kết nối và xử lý chúng cho phù
hợp. Theo mặc định, Listener lắng nghe trên cổng 1521 (cổng 2483 là cổng
đăng ký chính thức mới TNS Listener và 2484 cho TNS Listener sử dụng
SSL). Nếu Listener "tắt" thì truy cập từ xa vào CSDL sẽ ngừng. Nếu trường
hợp này xảy ra, ứng dụng ngừng, tức là tạo ra một cuộc tấn công từ chối dịch
vụ.

1.3.5) Sâu Oracle


Chức năng của Worm-FS thường được mặc định và thời gian lưu giữ tùy
chỉnh, dữ liệu và đường dẫn không thay đổi. Worm-FS có thể hoạt động ở
một trong hai chế độ:
- Sun Standard compliance mode (Chế độ tiêu chuẩn)
- Sun emulation compliance mode (Chế độ thi đua): được thiết kế để cung
cấp khả năng tương thích với các chế độ thi đua của StorageTek 5320 lưu
trữ và gắn mạng (NAS).
Thiết bị và tương tự với một giao diện được định nghĩa bởi Network
Appliance. Một sự khác biệt giữa các chế độ tiêu chuẩn và thi đua là một hạn
chế về bản chất của tập tin có thể được giữ lại. Cụ thể, trong chế độ tiêu
chuẩn, các tập tin với bất cứ điều khoản thực thi UNIX có thể không được
giữ lại. Chế độ thi đua không có hạn chế này. Những hạn chế trong chế độ
tiêu chuẩn tồn tại bởi vì cò giữ được định nghĩa cho NFS và FTP xác định
rằng chế độ setuid được thiết lập trên các tập tin. Khi một tập tin được giữ
lại, một khách hàng sẽ thấy các thiết lập chế độ bit setuid. Tuy nhiên, những
hạn chế trên các tập tin thực thi sẽ ngăn chặn các lỗ hổng bảo mật có thể cho
phép một
tập tin thực thi sở hữu của người sử dụng gốc được thực hiện Worm và do đó
không thể loại bỏ. Một lợi ích của phương pháp này là người dùng hay ứng
dụng có thể dễ dàng xác định các tập tin trên hệ thống là các tập tin được bảo
vệ Worm.

17
CHƯƠNG 2: TÌM HIỂU VỀ TẤN CÔNG LEO THANG ĐẶC
QUYỀN (PRIVILEGE ESCALATION) TRÊN ORACLE VÀ
THỰC NGHIỆM

2.1) Tổng quan về leo thang đặc quyền

Leo thang đặc quyền là một mối đe dọa phổ biến cho các người dùng
xấu, cho phép họ xâm nhập vào các tổ chức cơ sở hạ tầng CNTT và tìm kiếm
quyền để đánh cắp dữ liệu nhạy cảm, làm gián đoạn hoạt động và tạo ra các lỗ
hổng cho các cuộc tấn công trong tương lai. Đặc quyền nâng cao mở ra cho
những kẻ tấn công gây rối với các cài đặt, cấu hình và dữ liệu bảo mật; trước
tiên họ thường có quyền truy cập vào các tài khoản đặc quyền thấp hơn và sau
đó sử dụng chúng để có được các đặc quyền cấp cao và có quyền truy cập đầy
đủ vào môi trường CNTT của tổ chức. Thật không may, các hacker thậm chí
không tinh vi thường dễ dàng có được và leo thang các đặc quyền vì nhiều tổ
chức thiếu các biện pháp và kiểm soát bảo mật đầy đủ, chẳng hạn như thực thi
nghiêm ngặt nguyên tắc đặc quyền tối thiểu và biết dữ liệu nhạy cảm nào họ
có và nơi lưu trữ dữ liệu để họ có thể cứng an ninh của nó.
Nói chung, leo thang đặc quyền là một loại hoạt động khi tin tặc khai
thác lỗi, lợi dụng sự giám sát cấu hình và lỗi lập trình hoặc sử dụng bất kỳ lỗ
hổng nào trong hệ thống hoặc ứng dụng để có quyền truy cập cao vào tài
nguyên được bảo vệ. Thông thường, điều này xảy ra khi kẻ tấn công đã thực
hiện trinh sát và xâm nhập thành công một hệ thống bằng cách truy cập vào tài
khoản cấp thấp. Trong giai đoạn này, kẻ tấn công muốn nắm vững hệ thống và
tìm cách nâng cao các đặc quyền, hoặc nghiên cứu thêm về hệ thống hoặc thực
hiện một cuộc tấn công.
Có hai loại tấn công leo thang đặc quyền chính đó là leo thang đặc quyền
ngang và dọc.
 Leo thang đặc quyền theo chiều ngang
Cuộc tấn công này liên quan đến một hacker chỉ đơn giản là chếm đoạt
tài sản của người khác.
Ví dụ: Một người dùng sử dụng tài khoản ngân hàng thông qua internet
có thể có quyền truy cập vào tài khoản của người dùng khác bằng cách tìm
hiểu ID và mật khẩu của họ.
Trong leo thang đặc quyền theo chiều ngang, kẻ tấn công không chủ
động tìm cách nâng cấp các quyền liên quan đến tài khoản mà họ đã xâm
phạm. mà đơn giản là lạm dụng chúng bằng cách giả định danh tính của
người dùng khác.

18
 Leo thang đặc quyền theo chiều dọc (còn gọi là nâng cao đặc quyền
EoP). Tại đây, kẻ tấn công có quyền truy cập vào tài khoản cấp thấp
hơn và sử dụng nó để có được các quyền cấp cao hơn.
Ví dụ: tin tắc có thể thỏa hiệp người dùng tài khoản ngân hàng Interner
của người dùng và sau đó cố gắng truy cập vào cá chức năng quản trị trang
web.
Leo thang đặc quyền theo chiều dọc đòi hỏi các kỹ thuật tấn công tinh
vi hơn so với leo thang đặc quyền theo chiều ngang, chẳng hạn như các
công cụ hack giúp kẻ tấn công có được quyền truy cập vào các hệ thống và
dữ liệu.

2.2) Cách thức tấn công


Những kẻ tấn công cố gắng thực hiện các hành động trái phép và có
được các đặc quyền cấp cao thường sử dụng, được gọi là khai thác leo thang
đặc quyền. Khai thác này những đoạn mã với mục tiêu tạo ra khối payload cụ
thể. Khối này sẽ tập trung vào một điểm yếu đã biết trong hệ điều hành hoặc
các thành phần của phần mềm. Việc thực thi khai thác leo thang đặc quyền sau
đó sẽ cho phép họ đánh cắp hoặc làm hỏng dữ liệu, làm gián đoạn hoạt động
hoặc thiết lập sự kiên trì trên mạng để thực hiện các cuộc tấn công tiếp theo.
Tấn công leo thang đặc quyền điển hình bao gồm năm bước:
1. Tìm lỗ hổng
2. Tạo khai thác leo thang đặc quyền liên quan
3. Sử dụng khai thác trên hệ thống
4. Kiểm tra xem có khai thác thành công hệ thống
5. Nhận thêm đặc quyền không
Mục tiêu của kẻ tấn công trong một cuộc tấn công leo thang đặc quyền
là để có được các đặc quyền cấp cao và tìm đường đến các hệ thống
CNTT quan trọng mà không bị chú ý. Có nhiều kỹ thuật leo thang đặc
quyền mà kẻ tấn công sử dụng để thực hiện điều này. Có ba trong số
những kỹ thuật phổ biến nhất đó là:
- Thao tác mã token đăng nhập.
- Khai thác lỗ hổng trong việc quản lý tài khoản người dùng và quyền
được thiết lập.
- Sử dụng một tài khoản hợp lệ.

19
2.3) Các kỹ thuật leo thang đặc quyền và cách phòng tránh

2.3.1) Kỹ thuật thao tác token truy cập


Kỹ thuật leo thang đặc quyền này khai thác cách Oracle quản lý đặc
quyền quản trị viên. Thông thường, Oracle sử dụng token truy cập để xác
định chủ sở hữu của tất cả các quy trình đang chạy, ví dụ: khi một luồng
tương tác với một đối tượng an toàn hoặc cố gắng thực hiện một nhiệm
vụ hệ thống đòi hỏi các đặc quyền nhất định.
Trong trường hợp thao túng mã token truy cập, nhiệm vụ chính của
hacker là đánh lừa hệ thống để tin rằng các quy trình đang chạy thuộc về
ai đó không phải là người dùng thực sự bắt đầu quá trình. Khi điều này
xảy ra, quá trình cũng diễn ra trong bối cảnh bảo mật được liên kết với
token mới.
Kẻ tấn công có thể tận dụng token thông qua ba phương thức:
a) Mạo danh hoặc đánh cắp một Token
Kẻ tấn công có thể tạo một token mới, truy cập mới sao chép mã token
hiện có bằng cách sử dụng token trùng lặp (Ex). Token sau đó có thể
được sử dụng với ImpersonateLoggedOnUserff chức năng gán token
mạo danh cho một chuỗi.
b) Tạo một tiến trình với một token
Điều này xảy ra khi kẻ tấn công tạo một token bằng cách sử dụng hàm
token trùng lặp (Ex) và sử dụng nó cùng với chức năng
CreatProcessWithTokenW để tạo một quy trình mới chạy trong ngữ cảnh
bảo mật của người dùng bị mạo danh. Điều này có thể hữu ích để tạo một
quy trình mới trong bối cảnh bảo mật của một người dùng khác.
c) Tạo và mạo danh token – Trong phương pháp này, kẻ tấn công có tên
người dùng và mật khẩu, nhưng người dùng không đăng nhập của hệ
thống. Sau đó, đối thủ có thể tạo phiên đăng nhập cho người dùng với
sự trợ giúp của LogonUser chức năng sẽ trả về một bản sao của token
của một phiên mới và sau đó kẻ tấn công có thể sử dụng
SetThreadToken để gán mã thông báo cho chuỗi.

Giải pháp giảm thiểu mối đe dọa:


Token truy cập là một phần không thể thiếu của hệ thống bảo
mật và không thể tắt được. Tuy nhiên, kẻ tấn công phải có quyền truy
cập cấp quản trị viên để sử dụng đầy đủ kỹ thuật này. Do đó, bạn cần
chỉ định quyền truy cập theo nguyên tắc đặc quyền tối thiểu và đảm

20
bảo rằng tất cả các quyền truy thường xuyên được xem xét. Bạn cũng
cần theo dõi chặt chẽ các tài khoản đặc quyền để phản hồi kịp thời
các dấu hiệu hoạt động đáng ngờ được thực hiện bởi tài khoản này.
Cách giảm thiểu rủi ro: Token là một phần không thể thiếu của
hệ thống bảo mật và không thể tắt được. Tuy nhiên, kẻ tấn công phải
có quyền truy cập cấp quản trị viên để sử dụng đầy đủ kỹ thuật này.
Do đó, bạn cần chỉ định quyền truy cập theo nguyên tắc đặc quyền tối
thiểu và đảm bảo rằng tất cả các quyền truy cập thường xuyên được
xem xét. Bạn cũng cần theo dõi chặt chẽ các tài khoản đặc quyền để
phản hồi kịp thời các dấu hiệu hoạt động đáng ngờ được thực hiện bởi
các tài khoản này.
2.3.2) Khai thác lỗ hổng trong việc quản lý tài khoản người dùng và
quyền được thiết lập.
Oracle cung cấp một cơ chế quản lý tài khoản và người dùng
cực kì linh hoạt, Người quản trị với quyền hệ thống cao nhất (DBA)
có thể quản lý tài khoản và mật khẩu của những user khác. Trong quá
trình làm việc người dùng sẽ được cấp một số quyền hạn để thực thi
nhiệm vụ của mình. Thông thường những quyền này được hạn chế để
người dùng chỉ sử dụng được một số chức năng nhất định. Điều đó
giúp cho hệ thống hoạt động một cách linh hoạt và độc lập.
Nhưng điều đó cũng mở ra những lỗ hổng bảo mật. Trong quá trình
sử dụng tài khoản, những người dùng xấu sẽ lợi dụng những lỗ hổng
trong việc quản lý quyền để thực hiện những chức năng, quyền hạn
mà vượt quá sự cho phép của người quản trị. Ví dụ như thực thi các
hàm, thủ tục dưới quyền quản trị. Khi đó, những hàm, thủ tục được
người dùng xấu cố ý gắn những câu lệnh vượt quyền được thực thi,
vô tình sẽ gán những quyền cao hơn cho người dùng cấp thấp, khi đó
lỗ hổng leo thang đặc quyền bị khai thác và sẽ gây nguy hiểm cho sự
an toàn và bảo mật của cơ sở dữ liệu.
Cách giảm thiểu rủi ro: Người quản trị có thể hạn chế được leo thang
đặc quyền bằng cách thu hồi quyền của những người dùng hệ thống
khi đã thực hiện xong công việc. Và thường xuyên cập nhập cơ sở dữ
liệu từ nhà phát triển để vá các lỗi liên quan đến leo thang đặc quyền.
2.3.3) Sử dụng tài khoản hợp lệ
Kẻ tấn công có thể sử dụng các kỹ thuật truy cập thông tin để lấy
thông tin xác thực của các tài khoản người dùng cụ thể hoặc đánh cắp
chúng. Ngay khi kẻ tấn công có quyền truy cập vào mạng của tổ
chức, chúng có thể sử dụng thông tin đăng nhập bị xâm phạm để bỏ
qua các kiểm soát truy cập được đặt trên các tài nguyên khác nhau

21
trên hệ thống hoặc bất kỳ hạn chế bảo mật nào khác. Một trong những
mối quan tâm chính ở đây là sự chồng chéo của thông tin đăng nhập
và quyền trên toàn hệ thống, bởi vì hacker có thể chuyển đổi giữa các
tài khoản và hệ thống để đạt cấp độ truy cập cao hơn.
Làm thế nào để giảm thiểu mối đe dọa: Một trong những cách đơn
giản nhất nhưng hiệu quả nhất để giảm thiểu mối đe dọa này là thay
đổi mật khẩu tài khoản thường xuyên và thực thi chính sách mật khẩu
mạnh (đảm bảo rằng tài khoản quản trị viên có mật khẩu phức tạp và
duy nhất trên toàn hệ thống).

2.4) Bài toán thực nghiệm

Cách tấn công leo thang đặc quyền được trình bày trong bản báo cáo
này đó là User được admin cấp một số quyền hệ thống đủ để làm việc sau
đó lợi dụng lỗ hổng để lấy quyền cao hơn không được cho phép.
Bài toán: Để tăng tốc truy vấn của bộ 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 chỉ mục trên bảng, người dùng phải sở hữu bảng hoặc phải
có đặc quyền đối tượng INDEX trên bảng hoặc phải có đặc quyền hệ
thống CREATE ANY INDEX. Nếu người dùng có một trong hai đặc
quyền này, thì lỗ hổng bảo mật sẽ được mở ra, theo đó họ có thể thực thi
SQL tùy ý với tư cách là chủ sở hữu của bảng bằng các tạo một chỉ mục
dựa trên hàm của bảng. Nếu bảng được cấp đặc quyền INDEX được sở
hữu bởi người dùng có đặc quyền cao như SYS hay SYSTEM thì máy chủ
cơ sở dữ liệu sẽ bị nguy hiểm vì nó cung cấp cho kẻ tấn công khả năng
kiểm soát hoàn toàn hệ thống.
Lưu ý: Quá trình thực nghiệm được áp dụng trên hệ quản trị cơ sở dữ
liệu Oracle 10g. Trong các phiên bản cao hơn về sau này, lỗ hổng có thể
đã được phát hiện và loại bỏ bởi nhà phát triển.
Cách tấn công: Quá trình tấn công này cho thấ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ó tên là FOO thuộc sở hữu của user SYS và một người dùng trong hệ
thống là LCT được cấp đặc quyền INDEX có nhiệm vụ là lập chỉ mục cho
bảng để nâng cao khả năng và tốc độ truy vấn dữ liệu. Người dùng này
sau đó cố gắng đặt vai trò của mình là DBA (DB Admin) trong cơ sở dữ
liệu, nhưng không thành công vì người dùng chỉ được cấp đặc quyền
INDEX và chưa được cấp quyền thành viên để thực hiện vai trò gán quyền
hệ thống. Nhưng người này sẽ có được các đặc quyền DBA bằng cách
khai thác lỗ hổng INDEX. Người dùng LCT đầu tiên sẽ tạo ra một hàm
gọi là GETDBA để thực hiện công việc. LCT tiếp theo tạo ra một chỉ mục

22
có tên là EXPLOIT_INDEX trên bảng SYS.FOO (đã được cấp quyền
INDEX) và gọi hàm GETDBA. Tiếp theo, LCT thực hiện SELECT từ
bảng DUAL khiến chỉ mục EXPLOIT_INDEX thực thi hàm GETDBA
với các đặc quyền của user SYS. Hàm GETDBA chứa câu lệnh SQL để
gán vài trò DBA cho người dùng LCT. Khi điều này đã được thực hiện
thành công, người dùng LCT có thể đặt vai trò DBA. Khi làm như vậy,
người dùng LCT có toàn quyền kiểm soát cơ sở dữ liệu. Cuộc tấn công
vào cơ sở dữ liệu thông qua lỗ hổng INDEX thành công. Một người dùng
bình thường trong hệ thống đã leo thang đặc quyền của mình lên đặc
quyền quản trị và có thể kiểm soát toàn bộ cơ sở dữ liệu.

|DEMO THỰC NGHIỆM


- Đăng nhập với quyền SYS

Hình 27: Demo - đăng nhập với quyền sys

- Tạo user lct và gán một số quyền mặc định

23
Hình 28: Demo - Tạo user lct và gán quyền

- Quản trị tạo một bảng và cấp quyền index cho user lct

Hình 29: Demo - Tạo bảng và cấp quyền index cho user lct

- User lct đăng nhập vào tài khoản của mình và cố gắng gán quyền dba (database
admin) cho mình nhưng không thành công vì không đủ quyền.

24
Hình 30: Demo - User lct cố gắng lấy quyền dba

- Người dùng xấu lct tạo một fuction để làm việc nhưng lại cố ý đính kèm một đoạn
câu lệnh ‘grant dba to lct’, khi thực thi với quyền quản trị nó sẽ gán quyền dba cho
user lct

25
Hình 31: Demo - User lct tạo function

- Với quyền index, người dùng lct tạo một chỉ mục trên bảng demo thuộc quyền sở
hữu của sys và đính kèm đoạn function đã được viết trước đó. Khi chỉ mục được lập
trên bảng của SYS thì vô tình đoạn mã sql đính kèm ‘grant dba to lct’ được thực thi
dưới quyền sys do đó user lct có thể lấy được quyền dba

Hình 32: Demo - User lct lập chỉ mục với function đã tạo

- Lúc này người dùng lct cấp quyền dba cho mình thành công, và đã lấy được quyền
quản trị và có thể thực hiện được những thao tác chỉ có quản trị viên mới có quyền.

26
Hình 33: Demo - User lct lấy quyền dba thành công

- Kết quả người dùng lct từ người dùng bình thường đã leo thang lên quyền quản trị

Hình 34: Demo - kết thúc, tấn công thành công

27
2.3) Thách thức

Thông qua bài toán thực nghiệm chúng ta có thể thấy, hiện nay thách
thức bảo mật an toàn thông tin, tránh việc mất mát dữ liệu là điều tối
quan trọng đối với doanh nghiệp cũng như các tổ chức. Tuy nhiên vấn đề
đặt ta khi chọn một giải pháp bảo mật Oracle, các khía cạnh cần được
xem xét và cân nhắc: về khả năng đáp ứng của giải pháp, tính hiệu quả
và lợi ích mà giải pháp đem lại. Để giải quyết những nguy cơ tiềm ẩn và
thách thức trên thì nhiều doanh nghiệp đã áp dụng các giải pháp bảo mật
CSDL Oracle. (Trình bày tại mục 2.4)

2.4) Giải pháp bảo mật Oracle Database

Các doanh nghiệp và các tổ chức đang ngày càng chú trọng vào việc
bảo mật dữ liệu trên Oracle. Kiến trúc “Defense-In-Dept” – bảo vệ dữ
liệu theo chiều sâu đang được hầu hết tất cả các doanh nghiệp áp dụng. Ở
đây, kiến trúc này sẽ theo dõi toàn bộ vòng đời cảu dữ liệu như:
- Ai có quyền truy cập vào dữ liệu và với điều kiện là gì?
- Vị trí của dữ liệu nằm tại đâu?
- Ứng dụng đăng nhập vào dữ liệu là gì?
Ba thành phần chính của kỹ thuật này là: Mã hóa và che dấu dữ liệu,
theo dõi hoạt động của người dùng và kiểm soát truy cập. Do đó giải
quyết được các vấn đề bảo mật trong môi trường doanh nghiệp hiện nay.
- Mã hóa và che giấu dữ liệu:
Các giải pháp bảo mật Oracle bằng mã hóa và che giấu dữ liệu đóng
vai trò quan trọng trong bảo mật Oracle để bảo mật dữ liệu bên trong
doanh nghiệp. Dữ liệu trên các ổ đĩa bên dưới cơ sở dữ liệu và ứng
dụng, dữ liệu trong môi trường thử nghiệm và phát triển, dữ liệu trên
đường truyền và các bản sao lưu phục hồi sẽ được bảo vệ với các giải
pháp mã hóa và che giấu dữ liệu. Việc di chuyển dữ liệu sản xuất sang
nơi khác để phục vụ cho việc phát triển và thử nghiệm có thể dẫn đến
tình trạng dữ liệu quan trọng lọt vào tay người dùng không nên biết.
Bên cạnh đó, dữ liệu trên đường truyền cũng có thể bị đánh cấp bởi
những người có ý đồ xấu. Với các giải pháp mã hóa và che giấu dữ liệu
sẽ đảm bảo dữ liệu an toàn trên hệ thống, đường truyền và cả các bản
sao lưu trong trường hợp bị mất hoặc rơi vào tay người dùng có ý đồ
xấu.

28
- Kiểm soát truy cập
Kiểm soát việc truy cập vượt quá mức cho phép của ứng dụng dụng
hoặc người dùng vào Database là quan trọng, nhằm tạo điều kiện cho tổ
chức đạt được những lợi ích của việc hợp nhất dữ liệu và điện toán đám
mây. Bên cạnh đó, công việc đòi hỏi việc phân tách nhiệm vụ giữa
những người dùng kể cả những người quản trị, kiểm soát việc đăng
nhập sẽ giới hạn việc truy cập và các hoạt động của người dùng trên
các dữ liệu có tính nhạy cảm và quan trọng.
- Theo dõi hoạt động người dùng
Trong khi mã hóa và kiểm soát truy cập là những thành phần quan
trọng để bảo vệ dữ liệu, nhưng những hoạt động đó là chưa đủ để đảm
bảo an toàn bảo mật dữ liệu. Việc theo dõi các hoạt động của Database
sẽ cho phép theo dõi các hoạt động của người dùng, các đối tượng của
database được cấu hình mã hóa, che giấu và kiểm soát truy cập. Việc
này cho phép phát hiện và xử lý kịp thời các hoạt động có ý đồ xấu.

29
TỔNG KẾT
Việc bảo mật an toàn cơ sở dữ liệu Oracle luôn là một việc vô
cùng quan trọng, Như đã trình bày ở trên, Oracle có rất nhiều cách
tấn công đánh cắp dữ liệu, tuy nhiên bảo mật Oracle như thế nào lại
là vấn đề không hề đơn giản, Như chúng ta có thể thấy rằng trong
các hệ quản trị CSDL Oracle luôn có các cơ chế an toàn được hỗ trợ
sẵn. Các cơ chế an toàn trong hệ quản trị Oracle có thể hỗ trợ trong
việc bảo vệ CSDL Oracle. Tấn công bằng leo thang đặc quyền là
một loại tấn công khá là phổ biến, người dùng sử dụng các quyền sẵn
có, lợi dụng sơ hở để leo thang lên các quyền cao hơn mà người
quản trị không cấp. Việc này có nguy cơ gây mất an toàn thông tin
cho các tổ chức doanh nghiệp rất cao, chính vì vậy các tổ chức và
doanh nghiệp cần phải có sẵn những giải pháp tốt nhất trong việc
bảo mật dữ liệu của mình.

30
TÀI LIỆU THAM KHẢO
[1] Privilage Escalation via oracle index – David Litchfield –
21stJanuary2015
[2] Information Security Policy – UNINETT – 2010
[3] What is privilage escalation? – Jeff Melnick – September 5, 2018
[4] Best of Oracle Sercurity 2014 Red-Database-Security GmbH
Bliesstr. 16 D-.66538 Neunkirchen Germany
[5] http://obtruse.syfrtext.com/2018/07/oracle-privilege-escalation-
via.html

31

You might also like