You are on page 1of 24

Học Viện Kỹ Thuật Mật Mã

Khoa An Toàn Thông Tin

Đề Tài
Tìm Hiểu Các Hình Thức Tấn Công CSDL Oracle
Nhóm thực hiện: Đỗ Anh Thắng
Nguyễn Thị Nga
Lê Quang Long
Lê Thị Linh
Nội Dung
 Cơ sở lý thuyết
 Các hình thức tấn công phổ biến vào cơ sở
dữ liệu Oracle
 Tổng kết
Cơ Sở Lý Thuyết

 Giới thiệu về Oracle


 Quá trình cài đặt Oracle
Giới Thiệu Về Oracle
 Oracle là hệ quản trị CSDL có tính bảo mật cao.
 Oracle 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 các sản phẩm:
- Hệ quản trị CSDL Oracle Database
- 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.
Các Hình Thức Tấn Công Phổ Biến
CSDL Oracle
 1.Tấn công SQL Injection
 2.Tấn công chèn mã PL/SQL
 3.Tấn công Rootkit Oracle
 4.Tấn công Oracle Listener
 5.Sâu Oracle
 6.Tấn công mật khẩu
Tấn công SQL Injection

Định Nghĩa: 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ề để inject ( tiêm vào) và
thi hành 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
các ứng dụng.
Các Dạng Lỗi Thường Gặp Trong Tấn công
SQL Injection
 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
Không Kiểm Tra Ký Tự Thoát Truy Vấn
 Đây là dạng lỗi SQL injection xảy ra khi thiếu đoạn mã
kiểm tra dữ liệu đầu vào trong câu truy vấn SQL
 Kết quả là người dùng cuối có thể thực hiện một số truy
vấn không mong muốn đối với cơ sở dữ liệu của ứng dụng.
 Ví Dụ:
statement = "SELECT * FROM users WHERE name = '" +
userName + "';“
Câu lệnh được thiết kế để trả về các bản ghi tên người dùng cụ thể từ bảng người
dùng. Tuy nhiên, nếu biến userName được nhập chính xác theo một cách nào đó bởi
người dùng ác ý, nó có thể trở thành một câu truy vấn SQL với mục đích khác hẳn
so với mục đích của tác giả của đoạn mã trên. Ví dụ như biến UserName thành như
sau:
a' or 't'='t
Khiến câu truy vấn được hiểu như sau:
SELECT * FROM users WHERE name = 'a' OR 't'='t';
Xử Lý Không Đúng Kiểu
Lỗi SQL injection dạng này thường xảy ra do lập trình viên
hay người dùng định nghĩa đầu vào dữ liệu không rõ ràng
hoặc thiếu bước kiểm tra và lọc kiểu dữ liệu đầu vào
Ví Dụ:
statement:= "SELECT * FROM data WHERE id = " + a_variable + ";“
Ý định của tác giả đoạn mã trên là nhập vào một số tương ứng với
trường id - trường số. Tuy nhiên, người dùng cuối, thay vì nhập vào
một số, họ có thể nhập vào một chuỗi ký tự
Ví dụ, ta thiết lập giá trị của biến a_variable là:
1;DROP TABLE users
Khi đó, nó sẽ thực hiện thao tác xóa người dùng có id tương ứng khỏi
cơ sở dữ liệu, vì câu truy vấn hoàn chỉnh đã được hiểu là:
SELECT * FROM DATA WHERE id=1;DROP TABLE users;
Blind SQL Injection
 Lỗi SQL injection dạng này là dạng lỗi tồn tại ngay trong
ứng dụng web nhưng hậu quả của chúng lại không hiển thị
trực quan cho những kẻ tấn công.
 Nó có thể gây ra sự sai khác khi hiển thị nội dung của một
trang chứa lỗi bảo mật này.
 Hậu quả của sự tấn công SQL injection dạng này khiến
cho lập trình viên hay người dùng phải mất rất nhiều thời
gian để phục hồi chính xác từng bit dữ liệu.
Thay Đổi Kiểu Giá Trị Truy Vấn
 Dạng lỗi này khiến kẻ tấn công có thể thay đổi giá trị
điều kiện trong câu lệnh truy vấn, làm sai lập sự hiển thị
của một ứng dụng trong lỗi này.
 Ví dụ:
SELECT booktitle FROM booklist WHERE bookId =
'OOk14cd' AND 1=1
Sẽ hiển thị một cách bình thường trong khi:
SELECT booktitle FROM booklist WHERE bookId =
'OOk14cd' AND 1=2;
Một Số Dạng Tấn Công Ứng Dụng Web

 Dạng tấn công vượt qua kiểm tra lúc đăng nhậ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
Dạng tấn công sử dụng câu lệnh SELECT
Trong các trang tìm kiếm người dùng nhập thông tin tìm kiếm
như họ tên..Đoạn mã thường gặp là:
 Tương tự như trên, tin tặc có thể lợi dụng sơ hở trong câu
truy vấn SQL để nhập vào trường tên tác giả bằng chuỗi giá
trị:

 Lúc này, ngoài câu truy vấn đầu không thành công, chương
trình sẽ thực hiện thêm lệnh tiếp theo sau từ khóa UNION
nữa. Giả sử đoạn mã nhập vào là:
Tấn Công Chèn Mã 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
 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
 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.
Tấn Công RootKit Oracle

 Ẩn Tài Khoản Oracle Rootkit


 Ẩn process
 Ẩn Database Jobs
 Mô tả tấn công Oracle sử dụng rootkit kết hợp với
backdoor
Mô Tả Tấn Công Oracle Sử Dụng
Backdoor

 Backdoor cho phép attacker thực hiện câu lệnh và truy vấn database từ xa
và nhận hồi đáp từ server
 Attacker thường kết hợp cài backdoor với rootkit để che giấu hoạt động của
backdoor
 Tạo một chương trình backdoor, sử dụng một chức năng network có sẵn để
mở một kết nối tới vị trí của attacker. Chương trình sẽ đọc kết nối và thực
hiện các câu lệnh attacker gửi tới. Sau đó gửi lại kết quả thực hiện của câu
lệnh
 Để tránh bị phát hiện, kết nối giữa backdoor và attacker có thể được mã hóa
hoặc đóng gói theo một cách nào đấy nhằm tránh sự phát hiện của hệ thống
IDS, IPS.
 Backdoor cài đặt trên database server, còn backdoor console chạy trên host
của attacker sẽ giao tiếp qua giao thức TCP/IP
Tấn Công Oracle Listener

 Khai thác thông tin CSDL Oracle qua Listener


 Tấn công từ chối dịch vụ
Khai Thác Thông Tin CSDL Oracle qua
Listener
 Listener là một tiến trình mạng của CSDL Oracle
 Mô tả vấn đề
Listener được coi là cổng vào cho các kết nối từ xa đến
một CSDL Oracle. 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ụ.
 Khai thác thông tin CSDL Oracle qua Listener
 Trong trường hợp chúng ta không tìm thấy tài khoản có
quyền DBA, nhưng tài khoản OUTLN và BACKUP giữ một
quyền cơ bản: EXECUTE ANY PROCEDURE
Sâu Oracle
 WORM 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)
Tấn công mật khẩu
 1 Dò tài khoản mặc định
 2 Dò tài khoản có mật khẩu yếu
 3 Dò mật khẩu SYS. SYSTEM
Cảm Ơn Cô Và Các Bạn
Đã Lắng Nghe 

You might also like