Tải bản đầy đủ (.pptx) (24 trang)

các tấn công vào cơ sở dữ liệu ORACLE.(ppt)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (335.79 KB, 24 trang )

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

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
Nội Dung

Giới thiệu về Oracle

Quá trình cài đặt Oracle
Cơ Sở Lý Thuyết

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.


Giới Thiệu Về 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
Các Hình Thức Tấn Công Phổ Biến CSDL Oracle
Đị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.
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
Các Dạng Lỗi Thường Gặp Trong Tấn công SQL Injection

Đâ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';
Không Kiểm Tra Ký Tự Thoát Truy Vấn
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;
Xử Lý Không Đúng Kiểu

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.
Blind SQL Injection

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;
Thay Đổi Kiểu Giá Trị Truy Vấn

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
Một Số Dạng Tấn Công Ứng Dụng Web
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à:
Dạng tấn công sử dụng câu lệnh SELECT

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à:

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 Chèn Mã PL/SQL

Ẩ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
Tấn Công RootKit Oracle

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
Mô Tả Tấn Công Oracle Sử Dụng Backdoor

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

Tấn công từ chối dịch vụ
Tấn Công Oracle 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


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

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)
Sâu Oracle

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
Tấn công mật khẩu
Cảm Ơn Cô Và Các Bạn
Đã Lắng Nghe 

×