TỰ ĐỘNG GHI NHẬN VÀ KIỂM TOÁN THAY ĐỔI CSDL TRÊN ORACLE & SQL SERVER
Giải pháp: IBM Security Guardium Database Activity Monitoring (DAM) & Security Policy Engine
Giải pháp: IBM Security Guardium Database Activity Monitoring (DAM) & Security Policy Engine
1. TỔNG QUAN VÀ MỤC TIÊU
1.1. Mục tiêu bài lab
Xây dựng hệ thống tự động ghi nhận, cảnh báo và lưu vết thời gian thực mọi thao tác thay đổi liên quan đến cấu trúc CSDL (DDL: tạo, sửa, xóa bảng/schema) và quyền hạn tài khoản người dùng (DCL & User Management: tạo/xóa user, grant/revoke quyền, thay đổi mật khẩu) trên 2 hệ quản trị CSDL: Oracle Database và Microsoft SQL Server thông qua nền tảng IBM Security Guardium.1.2. Kiến trúc giải pháp & Nguyên lý hoạt động
Hệ thống sử dụng cơ chế giám sát lưu lượng thời gian thực (Real-time Database Activity Monitoring - DAM) bao gồm các thành phần chính:- S-TAP Agent: Được triển khai ở tầng nhân hoặc trung gian mạng trên Database Server, chặn bắt toàn bộ traffic giao tiếp giữa Database Client / DBA và Database Engine mà không tiêu tốn tài nguyên RDBMS và không làm chậm hiệu năng xử lý.
- Policy Engine trên Collector: Toàn bộ SQL traffic được mã hóa và đẩy về Guardium Collector qua cổng bảo mật (16016/16018). Tại đây, Policy Engine đối chiếu các câu lệnh SQL với tập quy tắc (Security Policy Rules) đã định nghĩa.
- Logging & Reporting: Khi phát hiện câu lệnh thay đổi người dùng hoặc cấu trúc CSDL, Guardium thực hiện ghi nhận toàn bộ chi tiết (Full SQL Details, Client IP, DB User, OS User, Timestamp) vào cơ sở dữ liệu nội bộ (Internal Repository). Dữ liệu này sau đó được tự động tổng hợp và chuyển tiếp định kỳ (mỗi 6 tiếng) thông qua quy trình kiểm toán tự động (Audit Process) dưới dạng báo cáo PDF/CSV gửi đến người quản trị.
1.3. Mô hình luồng dữ liệu kiến trúc
Hình 1.1: Sơ đồ kiến trúc tổng quan kết nối và giám sát dữ liệu qua IBM Guardium
2. CHUẨN BỊ VÀ CẤU HÌNH HỆ THỐNG
2.1. Cấu hình Inspection Engine (IE) & Kiểm tra S-TAP
Đảm bảo S-TAP Agent trên Database Server đang ở trạng thái Connected (đèn xanh) trong menu Manage > Activity Monitoring > S-TAP Control.
Hình 2.1: Trạng thái kết nối của S-TAP Agents trên Guardium Controller
2.2. Xây dựng các nhóm đối tượng (Group Builder)
Truy cập Setup > Tools and Views > Group Builder, tiến hành tạo các nhóm từ khóa phục vụ cho Policy Engine:- Nhóm Quản lý Tài khoản & Quyền hạn (50Sec - GRP_COMMAND_USER_MGMT): Bao gồm các lệnh DCL như CREATE USER, ALTER USER, DROP USER, GRANT, REVOKE,...
Hình 2.2: Nhóm câu lệnh quản lý tài khoản người dùng
- Nhóm Thay đổi Cấu trúc CSDL (50Sec - GRP_COMMAND_DDL_CHANGES): Bao gồm các lệnh DDL như CREATE TABLE, ALTER TABLE, DROP TABLE, TRUNCATE,...
Hình 2.3: Nhóm câu lệnh thay đổi cấu trúc bảng/schema
- Nhóm Máy chủ Mục tiêu (50Sec - GRP_MONITORED_DATABASES): Định nghĩa danh sách các địa chỉ IP của máy chủ Oracle và SQL Server cần giám sát.
Hình 2.4: Nhóm địa chỉ IP máy chủ CSDL mục tiêu
2.3. Xây dựng Security Policy ghi nhận tự động
Vào Protect > Security Policies > Policy Builder for Data, tạo Policy mới có tên POL_AUDIT_DB_USER_CHANGES và thiết lập 2 quy tắc (Rules):- Rule 1: Audit User & Permission Modifications: Ghi nhận các thao tác DCL / User Changes.
- Rule 2: Audit Schema & Object Modifications: Ghi nhận các thao tác DDL / Schema Changes.
Hình 2.5: Cấu hình danh sách Rules thuộc Policy POL_AUDIT_DB_USER_CHANGES
Hình 2.6: Cài đặt và kích hoạt Policy trên Guardium Collector
Kịch bản | Hệ CSDL | Hành động mô phỏng | Kết quả kỳ vọng trên Guardium |
|---|---|---|---|
Kịch bản 1 | Oracle Database | Tạo tài khoản & gán quyền DBA (CREATE USER, GRANT DBA) | Bắt chính xác thời gian, tài khoản thực thi, nội dung SQL và cảnh báo vi phạm policy. |
Kịch bản 2 | Oracle Database | Sửa đổi cấu trúc CSDL (ALTER TABLE, DROP COLUMN) | Ghi nhận đầy đủ câu lệnh DDL, bảng bị tác động trong báo cáo thay đổi CSDL. |
Kịch bản 3 | MS SQL Server | Tạo Login & gán Server Role (CREATE LOGIN, ALTER SERVER ROLE) | Phát hiện tài khoản mới và quyền được gán vào server role sysadmin/securityadmin. |
Kịch bản 4 | MS SQL Server | Xóa bảng & thu hồi quyền (DROP TABLE, REVOKE SELECT) | Ghi nhận sự kiện phá hủy cấu trúc dữ liệu và tước quyền của tài khoản. |
3.1. Kịch bản 1: Giám sát tạo User và phân quyền trên Oracle
Thực thi lệnh trên máy chủ Oracle (qua SQL*Plus bằng tài khoản SYSTEM / SYSDBA):CREATE USER app_developer IDENTIFIED BY "app_developer";
GRANT CONNECT, RESOURCE TO app_developer;
GRANT DBA TO app_developer;
Hình 3.1: Kết quả thực thi các lệnh tạo user và grant quyền trên Oracle
3.2. Kịch bản 2: Giám sát thay đổi cấu trúc bảng (DDL) trong Oracle
Thực thi lệnh DDL trên schema dữ liệu nghiệp vụ RETAIL:ALTER TABLE RETAIL.EMPLOYEE ADD (SALARY_BONUS NUMBER(10,2));
Hình 3.2a: Thêm cột mới vào bảng RETAIL.EMPLOYEE
ALTER TABLE RETAIL.EMPLOYEE DROP COLUMN SALARY_BONUS;
Hình 3.2b: Xóa cột khỏi bảng RETAIL.EMPLOYEE
3.3. Kịch bản 3: Giám sát tạo Login và nâng quyền trên Microsoft SQL Server
Thực thi lệnh trên MS SQL Server (qua SSMS bằng tài khoản sa):CREATE LOGIN audit_test_user WITH PASSWORD = 'Poptech@123';
ALTER SERVER ROLE sysadmin ADD MEMBER audit_test_user;
Hình 3.3: Tạo Login và nâng quyền sysadmin trong SQL Server
3.4. Kịch bản 4: Giám sát xóa dữ liệu/bảng và thu hồi quyền trên Microsoft SQL Server
Thực thi lệnh thu hồi quyền và xóa bảng dữ liệu:REVOKE SELECT ON db
GO
DROP TABLE db
GO
Hình 3.4: Thu hồi quyền truy cập và xóa bảng db
4. KẾT QUẢ KIỂM TOÁN VÀ TỰ ĐỘNG HÓA
Để đáp ứng yêu cầu tự động hóa ghi nhận và chuyển tiếp báo cáo, toàn bộ dữ liệu giám sát được đóng gói vào quy trình kiểm toán tự động mà không cần sự can thiệp thủ công.4.1. Thiết lập Custom Report (Query Report Builder)
Truy cập Reports > Report Configuration Tools > Query Report Builder, tạo báo cáo tổng hợp RPT_USER_AND_SCHEMA_MODIFICATIONS bao gồm các trường thông tin: Timestamp, Server Type, DB Name, DB User, Client IP, Command, Full SQL.
Hình 4.1: Cấu hình các cột hiển thị cho báo cáo RPT_USER_AND_SCHEMA_MODIFICATIONS
4.2. Xây dựng Audit Process tự động (AUDIT_DAILY_DB_CHANGES)
Vào Comply > Tools and Views > Audit Process Builder, tạo tiến trình AUDIT_DAILY_DB_CHANGES và thiết lập theo các bước:- Task Definition: Gắn báo cáo RPT_USER_AND_SCHEMA_MODIFICATIONS vào tác vụ thực thi.
Hình 4.2: Khai báo Task trong Audit Process
- Receiver: Cấu hình gửi kết quả cho tài khoản Admin / Security Team hoặc xuất ra thư mục chia sẻ định dạng PDF/CSV.
Hình 4.3: Định nghĩa Receiver nhận báo cáo
- Schedule: Thiết lập lịch chạy tự động định kỳ (mỗi 6 tiếng hàng ngày).
Hình 4.4: Lập lịch chạy tự động cho Audit Process
4.3. Kết quả ghi nhận thực tế từ hệ thống
Sau khi kích hoạt tiến trình (chọn Run One Now), toàn bộ các thao tác thử nghiệm trên cả Oracle và SQL Server đã được Guardium bắt giữ chính xác:
Hình 4.5: Danh sách báo cáo hoàn thành trong To-Do List của Admin
Hình 4.6: Báo cáo chi tiết các câu lệnh SQL thay đổi CSDL và User được lưu vết
Hình 4.7: File báo cáo PDF được tự động đóng gói và xuất từ IBM Guardium
5. ĐÁNH GIÁ VÀ KẾT LUẬN
- Tính kịp thời (Real-time): Cơ chế DAM thông qua S-TAP cho phép ghi nhận và kích hoạt cảnh báo tức thời tại thời điểm câu lệnh được thực thi, khắc phục triệt để độ trễ của phương pháp quét log định kỳ truyền thống.
- Tính toàn vẹn & Chống chối bỏ (Integrity): Dữ liệu kiểm toán được đẩy trực tiếp về Guardium Collector ngay khi câu lệnh được chạy ở tầng mạng/kernel, ngăn chặn hoàn toàn nguy cơ DBA hoặc kẻ tấn công xóa log trong bảng vết của CSDL (local audit table).
- Hỗ trợ đa nền tảng (Multi-platform): Xây dựng đồng nhất một Policy duy nhất nhưng kiểm soát độc lập, chính xác cả 2 hệ quản trị CSDL hàng đầu là Oracle Database và Microsoft SQL Server.
Sửa lần cuối: