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ữ
Trang 1BAN 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
Trang 2BAN 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 – AT13DTrần Minh Hiếu – AT13D
Hà Nội, 2019
Trang 3MỤ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
Trang 4DANH MỤC TỪ VIẾT TẮT
Language
Ngôn ngữ truy vấn
Trang 5DANH 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
Trang 6LỜI NÓI ĐẦU
Cơ sở dữ liệu là một trong những ngành được quan tâm nhiều trongkhoa 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!
Trang 7CHƯƠ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 sovớ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
Trang 8
-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
Trang 9- 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
Trang 10- 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
Trang 11- 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
Trang 12- 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
Trang 13Hình 10: Bước 7 - Chọn phiên bản oracle
- 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ữ
Trang 14Hình 12: Bước 9 - Chọn lưu trữ
- Bước 10: Chọn loại database muốn cài đặt
Hình 13: Bước 10 - Cài đặt bổ sung
Trang 15- Bước 11: Đặt tên database
Hình 14: Bước 11 - Đặt tên database
- 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ữ
Trang 16Hình 16: Bước 12.2 - Cấu hình font chữ
- Bước 12.3: Cấu hình bổ sung
Hình 17: Bước 12.3 - Cài đặt bổ sung
Trang 17- 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ệ
- Bước 14: Đăng ký thành viên
Hình 19: Bước 14 - Đăng ký thành viên
Trang 18- Bước 15: Chọn file recovery
Hình 20: Bước 15 - Cài đặt file recovery
- 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
Trang 19Hình 22: Bước 18 - Cài đặt tự động
- Bước 19.1: Quá trình cài đặt oracle
Trang 20Hì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)
Trang 21- 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
Trang 221.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ỗicủ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ệnhSQL bất hợp pháp SQL Injection có thể cho phép kẻ tấn công thực hiệnthao tác, delete, insert, update, … trên cơ sở dữ liệu của ứng dụng, thậmtrí là cả trên server mà ứng dụng đó đang chạy, lỗi ngày thường xảy ratrên các ứng dụng web có dữ liệu quản lý bằng các hệ quản trị dữ liệunhư 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ậpvào các trang web được bảo mật, hệ thống thường xây dựng trang đăngnhập để yêu cầu người dùng nhập thông tin về tên đăng nhập và mậtkhẩ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 quantớ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àikhoản đặc quyền mức DBA Kỹ thuật này xuất hiện ở tất cả các phiênbản của Oracle và có thể dùng để tấn công các procedure của khách hàngcũ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 anonymousPL/SQL Blook (Loại tấn công này sẽ được trình bày rõ trong chương 2)
Trang 231.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ácnhư 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ếntrì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 đếnmộ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ụngSSL) Nếu Listener "tắt" thì truy cập từ xa vào CSDL sẽ ngừng Nếu trườnghợ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ịchvụ
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ùychỉnh, dữ liệu và đường dẫn không thay đổi Worm-FS có thể hoạt động ởmột trong hai chế độ:
cấp khả năng tương thích với các chế độ thi đua của StorageTek 5320 lưutrữ 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 NetworkAppliance Một sự khác biệt giữa các chế độ tiêu chuẩn và thi đua là một hạnchế về bản chất của tập tin có thể được giữ lại Cụ thể, trong chế độ tiêuchuẩn, các tập tin với bất cứ điều khoản thực thi UNIX có thể không đượcgiữ 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 địnhrằ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ữnghạ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
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 ứngdụ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
Trang 24CHƯƠ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ùngxấ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ếmquyề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 chonhữ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ướctiê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 thinghiê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 khaithá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àinguyên được bảo vệ Thông thường, điều này xảy ra khi kẻ tấn công đã thựchiệ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àikhoả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ựchiệ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ềnngang và dọc
Cuộc tấn công này liên quan đến một hacker chỉ đơn giản là chếm đoạttà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ìmhiể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âmphạm mà đơn giản là lạm dụng chúng bằng cách giả định danh tính củangười dùng khác
Trang 25 Leo thang đặc quyền theo chiều dọc (còn gọi là nâng cao đặc quyềnEoP) Tại đây, kẻ tấn công có quyền truy cập vào tài khoản cấp thấphơ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 Internercủa người dùng và sau đó cố gắng truy cập vào cá chức năng quản trị trangweb
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áccô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ặccá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 độnghoặ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ốngCNTT quan trọng mà không bị chú ý Có nhiều kỹ thuật leo thang đặcquyề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ệ