Tải bản đầy đủ (.docx) (11 trang)

Kiểm-toán-trong-CSDL

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 (117.75 KB, 11 trang )

Mục lục

1. Kiểm toán trong cơ sở dữ liệu
1.1 Khái niệm
• Kiểm toán cơ sở dữ liệu(Audit databases): là giám sát và ghi lại các hành
động cơ sở dữ liệu người dùng được chọn. Nó có thể dựa trên các hành động
riêng lẻ, chẳng hạn như loại câu lệnh SQL được thực thi hoặc kết hợp các
yếu tố có thể bao gồm tên người dùng, ứng dụng, thời gian
• Audit = Ai làm gì với dữ liệu nào khi nào và bằng cách nào
1.2 Mục đích
• Kiểm toán cho phép ta bắt các user phải có trách nhiệm về hành động mà họ
thực hiện, bằng cách theo dõi hành vi của họ.


• Dữ liệu audit giúp phát hiện lỗ hổng trong chính sách bảo mật.
• Liên quan đến trách nhiệm giải trình của user. Cần phải đảm bảo rằng user
chỉ được thực hiện những gì họ được phép. Ghi nhận sự lạm quyền hoặc
dùng sai quyền.
• Auditing để ghi nhận lại những gì đã xảy ra và có hồi đáp thích hợp.
• Không thực hiện auditing ta sẽ không thể biết khía cạnh bảo mật của hệ
thống có đảm bảo hay không hay có ai đã đọc hoặc cập nhật dữ liệu một
cách bất hợp pháp hay không.
1.3 Quy trình
* Quy trình kiểm toán do NIST đưa ra
B1. Phân tích các yêu cầu bảo mật của ứng dụng
B2. Chọn các sự kiện/hoạt động/đối tượng sẽ kiểm toán
B3. Giám sát và ghi nhận
B4. Lưu trữ audit log (nhật ký kiểm toán)
B5. Kiểm tra và phân tích audit log
B6. Phản hồi
1.4 Lưu ý


• Kiểm toán tại mọi thời điểm từ khi hệ thống bắt đầu hoạt động
• Kiểm toán tất cả các hành động của tất cả các user trên tất cả dữ liệu sẽ
không có ích mà còn làm chậm hệ thống, và dữ liệu có được từ quá trình
audit khó sử dụng.
• Kiểm toán một cách có chọn lọc và đúng đắn, dựa trên dữ liệu, xử lý và
người dùng có thật.
• Việc auditing hiệu quả khi: Có kế hoạch thực hiện auding. Đọc lại và phân
tích dữ liệu của quá trình auditing.


2. Kỹ thuật kiểm toán trong csdl
2.1 Yêu cầu
• Có khả năng hoạt động độc lập, cho phép theo dõi và ghi nhận lại tất cả các
hoạt động trong hệ thống kể cả những hoạt động của người quản trị hệ
thống.
• Có khả năng lưu trữ audit log một cách an toàn bên ngoài CSDL
• Có khả năng thu thập và kết hợp các hoat động xảy ra ở nhiều loại DBMS
(Database management systems) khác nhau.
• Không phụ thuộc vào DBMS và cú pháp câu lệnh SQL ứng
• với mỗi DBMS
• Có khả năng ngăn chặn người quản trị hệ thống chỉnh sửa hoặc xóa dữ liệu
trong audit log.
• Có khả năng đưa ra những cảnh báo kịp thời cho người quản trị hệ thống
khi có những bất thường xảy ra trong hệ thống
2.2 Đối tượng
• Kiểm toán các hoạt động đăng nhập/đăng xuất trong CSDL
- Username
- Client IP mà đăng nhập không thành công
- Chương trình (source program)
- Thời gian đăng nhập và đăng xuất

• Kiểm toán nguồn gốc truy cập CSDL
- Địa chỉ IP và host name được dùng để kết nối CSDL
- Chương trình nào kết nối CSDL
• Kiểm toán các hoạt động truy cập CSDL ngoài giờ làm việc
- Các truy cập CSDL ngoài giờ làm việc đều đáng nghi ngờ
- Cần ghi lại mọi truy cập CSDL ngoài giờ làm việc trừ những thao tác đã
được định giờ
• Kiểm toán các thao tác thuộc ngôn ngữ định nghĩa dữ liệu (Data Definition
Language – DDL)
- Rất quan trọng vì trong nhiều trường hợp DDL có thể được dùng để phá
hoại hệ thống
- Được quy định trong chính sách HIPAA


- Phương pháp: dùng chức năng built-in của DBMS, sử dụng hệ thống
kiểm toán bên ngoài, so sánh snapshot của lược đồ (shema) theo thời
gian
• Kiểm toán trên sự thay đổi quyền của người dùng và các thuộc tính bảo mật
khác
- Việc kiểm toán này là bắt buộc: tấn công vượt quyền
- Các thông tin cần chú ý:
 Thêm/Xóa trên User/Login/Role
 Thay đổi quyền của Role
 Thay đổi quyền hoặc role của người dùng
 Thay đổi password
2.3Các loại kiểm toán
a) Kiểm toán sao kê
- Cho phép bạn kiểm toán các câu lệnh SQL theo loại câu lệnh, không
phải theo các đối tượng lược đồ cụ thể mà chúng hoạt động. Thông
thường, kiểm toán tuyên bố kiểm toán việc sử dụng một số loại hành

động liên quan cho mỗi tùy chọn.
 Báo cáo DDL: Ví dụ, AUDIT TABLE kiểm toán tất cả

CREATE và DROP TABLE
 Các câu lệnh DML: Ví dụ, AUDIT SELECT TABLEkiểm tra

tất cả SELECT... các FROM TABLE/VIEW câu lệnh, bất kể
bảng hay dạng xem
- Bạn cũng có thể đặt kiểm toán câu lệnh để kiểm tra người dùng đã
chọn hoặc mọi người dùng trong cơ sở dữ liệu.


b) Kiểm toán đặc quyền
- Cho phép bạn kiểm toán việc sử dụng các đặc quyền hệ thống mạnh
mẽ cho phép các hành động tương ứng
- Kiểm toán đặc quyền tập trung nhiều hơn kiểm toán sao kê, chỉ kiểm
toán một loại hành động cụ thể. Bạn có thể đặt kiểm toán đặc quyền
để kiểm toán người dùng đã chọn hoặc mọi người dùng trong cơ sở
dữ liệu
- Trường hợp thực hiện cả việc kiểm toán sao kê và kiểm toán đặc
quyền thì chỉ có một báo cáo kiểm toán
 Kiểm toán sao kê: AUDIT TABLE
 CREATE, ALTER, DROP (TABLE) đều được kiểm toán
 Kiểm toán đặc quyền: AUDIT CREATE TABLE
Chỉ kiểm toán câu lệnh CREATE (TABLE)
c) Kiểm toán đối tượng
- Cho phép bạn kiểm toán các câu lệnh cụ thể trên một đối tượng lược
đồ cụ thể, chẳng hạn như AUDIT SELECT ON EMPLOYEE.
- Kiểm toán đối tượng lược đồ rất tập trung, chỉ kiểm tra một loại câu
lệnh được chỉ định duy nhất trên một đối tượng lược đồ đã chỉ

định. Kiểm toán đối tượng Schema luôn áp dụng cho tất cả người
dùng cơ sở dữ liệu.
- Kiểm toán trên những đối tượng của Schema:
 Table
 View
 Procedure


 Trigger
 Function
 Package
- Kiểm toán hệ thống có độ ưu tiên thấp hơn các kiểm toán đối tượng
- Ví dụ:
-- Thực hiện kiểm toán câu lệnh SELECT trên Employee
AUDIT SELECT ON Employee;
--Tạo view Emp_Name và kiểm toán câu lệnh SELECT
CREATE VIEW Emp_Name AS SELECT EName
FROM Employee;
AUDIT SELECT ON Emp_Name;
- Thực hiện câu lệnh truy vấn trên view Emp_Name
SELECT * FROM Employee_Name;
 Tạo ra 2 báo cáo kiểm toán
d) Kiểm toán hạt mịn
- Cho phép bạn kiểm toán ở cấp chi tiết nhất, truy cập dữ liệu và hành
động dựa trên nội dung, sử dụng bất kỳ biện pháp Boolean nào, chẳng
hạn như value > 1,000,000. Cho phép kiểm toán dựa trên quyền truy
cập hoặc thay đổi trong một cột.


2.4 Các phương pháp

a) Kiểm toán bằng application server log
- Nhật ký truy cập trên application server hay web server là
dạng kiểm toán cơ bản.

- Có nhiều thông tin chứa trong các tập tin nhật ký: các tài
nguyên được truy cập, ai đã truy cập, khi nào, như thế
nào(thành công, thất bại...).

- Dạng audit này có ích cho việc phát hiện những hành vi đáng
nghi ngờ, (ví dụ tấn công DoS).

- Nhược điểm: thông tin không trực tiếp (chỉ có IP address mà
không biết user nào, có URL mà không biết chương trình nào);
Có thể có những truy cập không thông qua ứng dụng thì
application audit không có tác dụng.

b) Kiểm toán bằng trigger
-

Dùng để ghi nhận và theo dõi các hành vi trong phạm vi cơ
sở dữ liệu, dùng các database trigger, cụ thể là DML trigger.

-

Mang tính trong suốt, thực hiện auditing mà không cần thực
hiện trên ứng dụng.

-

Thực hiện: Tạo bảng phụ lưu dữ liệu của quá trình audit.

Trigger gọi thủ tục ghi nhận lại dữ liệu vào bảng trên.

c) Kiểm toán bằng câu lệnh
- Dùng câu lệnh AUDIT


- Có thể kiểm toán tất cả các quyền gán cho người dùng hoặc role trong
CSDL
- Bao gồm: các truy cập đọc, ghi và xóa trên các bảng dữ liệu
- Cú pháp:
Audit
{statement_option | privilege_option} [by user]
[by {session|access}]
[whenever {successful | unsuccessful}]
Trong đó, statement_option và privilege_option là phần bắt buộc, và các phần
khác thì không bắt buộc.

3. Kiểm toán trên Oracle
3.1 Giới thiệu
• Oracle kiểm toán người dùng:
- Kiểm toán các truy cập thành công hoặc không thành công
- Kiểm toán 1 người dùng, 1 nhóm người dùng hoặc tất cả các người dùng
- Kiểm toán ở cấp phiên làm việc (session level) hoặc cấp truy cập (access
level).
• Kiểm toán sẽ làm giảm hiệu suất của hệ thống
• Chỉ nên kiểm toán những gì cần thiết
• Dữ liệu kiểm toán nên được ghi trên file của hệ điều hành (OS) để tiết kiếm
tài nguyên của CSDL
• Các tham số khởi tạo AUDIT_TRAIL trong init.ora
• Bản ghi kiểm toán



 Trường hợp Statement, Privilege, Schema Object
 Kết quả trả về trong bảng Sys.Aud$
 View: dba_audit_trail
 Trường hợp Fine-Grained Audit
 Kết quả trả về trong bảng fga_log$
 View: dba_fga_audit_trail
 Trường hợp lưu file OS
 Lưu thành file XML trong thư mục $Oracle\orcl\adump
- Audit trail được lưu chính trong bảng AUD$, hầu như không đọc nó vì khó
đọc, ta đọc thông qua các View được tạo từ nó
- Có 3 view cho bạn biết nhũng gì đang được kiểm soát:


 DBA_STMT_AUDIT_OPTS: cho biết các câu lệnh đang được kiểm soát
 DBA_PRIV_AUDIT_OPTS : cho biết các đặc quyền (privilege) đang
được kiểm soát
 DBA_OBJ_AUDIT_OPTS : cho biết các đối tượng đang được kiểm soát
3.2

Các phương pháp kiểm toán
a)Sử dụng redo log file

- Cấu trúc quan trọng nhất đối với hoạt động phục hồi là các redo log, trong đó bao
gồm hai hoặc nhiều tập tin đã được phân bổ trước (preallocated files), nó lưu trữ tất
cả các thay đổi trên cơ sở dữ liệu cũng như chúng xuất hiện. Mỗi đối tượng của cơ
sở dữ liệu Oracle có một redo log liên quan để bảo vệ cơ sở dữ liệu trong trường
hợp một đối tượng nào đó bị hỏng.
b)Kiểm toán bằng trigger

c)Kiểm toán bằng câu lệnh
3.3 Demo
Kịch bản: Đăng nhập bằng tài khoản sys
- Tạo bảng at13clc và tạo các user U1,U2 ,U3
- Gán quyền cho U1,U2,U3
- Bổ sung các thông tin cho bảng và kết nối bởi các user khác để
Mục đích: Xem được kết quả kiểm toán
Kết quả:




Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×