PHÂN TÁCH NHIỆM VỤ (SoD) VÀ QUẢN LÝ QUYỀN TRUY CẬP (RBAC) TRÊN IBM GUARDIUM
I. MỤC TIÊU CỦA USE CASE1. Chứng minh nguyên tắc Phân tách nhiệm vụ (Separation of Duties - SoD): Quản trị viên cơ sở dữ liệu (DBA) có quyền tối cao trên database nhưng không thể can thiệp, sửa đổi hay xóa nhật ký kiểm toán trên Guardium.
2. Chứng minh cơ chế Role-Based Access Control (RBAC) trên Guardium: Phân chia rõ ràng các vai trò quản trị trên giao diện điều khiển tập trung (Central Manager/Collector) với các mức quyền và phạm vi chức năng khác nhau (Admin, Security Officer, Compliance Auditor).
3. Chứng minh vòng "ai giám sát người giám sát": Mọi thao tác quản trị trên Guardium đều được ghi audit trail và không ai (kể cả Security Officer) có thể xóa dấu vết.
II. THIẾT KẾ ROLES VÀ PHÂN TÁCH TRÁCH NHIỆM
Xây dựng 3 tài khoản thử nghiệm tương ứng 3 tầng trách nhiệm độc lập, với mapping role thực tế trên Guardium:
| Tài khoản | Vai trò / mapping thực tế trên Guardium | Quyền hạn cho phép | Quyền hạn bị chặn | Mục đích SoD |
| user_secofficer | Role: SecOfficer_Role (kết hợp phân quyền domain Protect/Policy Builder) | Cấu hình Rule/Policy, kích hoạt bảo vệ, quản lý nhóm đối tượng nhạy cảm. | Không xóa audit log gốc, không gán lại role hệ thống cho tài khoản khác; mọi thao tác đều bị ghi audit trail. | Chịu trách nhiệm bảo mật, thiết lập luật ngăn chặn. |
| user_auditor | Role: guardium read-only kết hợp user-defined group giới hạn domain Reports/Compliance | Chỉ xem, ký duyệt và trích xuất các báo cáo tuân thủ (Audit Reports, Violation Reports, Compliance). | Chỉ đọc (Read-only), không sửa Policy, không cấu hình hệ thống, kể cả khi truy cập cố ý. | Độc lập đánh giá rủi ro, không can thiệp vào vận hành. |
| db_admin (DBA ngoài đời) | Không có tài khoản trên Guardium, chỉ quản trị trên Database (sa/SYS). | Toàn quyền trên SQL Server / Oracle. | Không có tài khoản quản trị trên Guardium, không tắt được S-TAP mà không bị phát hiện (tamper alert). | Phân tách quyền lực tuyệt đối giữa người quản lý dữ liệu và người kiểm toán dữ liệu. |
III. TIẾN HÀNH THỰC HIỆN TRÊN GUARDIUM
1. Thiết kế Vai trò và Phân quyền Chi tiết (RBAC Design)
a. Thiết kế Vai trò Security Officer (role_secofficer)Chức năng | Vì sao thuộc SecOfficer |
| Policy Builder | Cấu hình Rule/Policy – đúng domain chính |
| Policy Install | Kích hoạt (activate) policy vào production |
| Workflow Builder và Group Builder | Quản lý nhóm đối tượng nhạy cảm (sensitive data groups) |
| Trigger Builder | Thiết lập luật cảnh báo/ngăn chặn khi vi phạm |
| S-Tap Management | Quản lý agent giám sát/bảo vệ CSDL |
| Stap Reporting | Theo dõi tình trạng hoạt động của cơ chế bảo vệ (S-TAP) |
| Stap Verification | Xác minh S-TAP đang bảo vệ đúng, thuộc "kích hoạt bảo vệ" |
| Security Assessment Builder | Xây dựng bài đánh giá lỗ hổng bảo mật |
| System Configuration | Không thuộc Reports/Compliance → còn lại phải nằm ở SecOfficer |
| System Processes | Tương tự – vận hành hệ thống, không phải báo cáo |
| Support | Chức năng chẩn đoán/hỗ trợ hệ thống, mang tính vận hành |
| UI Customization | Tùy biến giao diện, không thuộc phạm vi báo cáo tuân thủ |
Tiến hành tạo role:
Tạo tài khoản: user_secofficer
Gán Role cho user_secofficer
b. Thiết kế Vai trò Compliance Auditor (role_auditor)
Phần Guardium Applications
Chức năng | Vì sao thuộc Auditor |
| Report Builder | Xây dựng báo cáo Audit/Violation/Compliance – đúng domain Reports |
| Results Viewing | Xem kết quả báo cáo/truy vấn (read-only) |
| Retrospective Request | Truy vấn lại dữ liệu lịch sử để đánh giá rủi ro độc lập – vẫn là "xem", không sửa gì |
| Audit Process To-Do List | Danh sách công việc kiểm toán cần xử lý → thuộc luồng audit/compliance |
Phần Report
Chức năng | Vì sao thuộc Auditor |
| Use Of Administrative Objects | Giám sát dùng object quản trị → audit |
| Use of Application Accounts by Other than Application | Phát hiện lạm dụng account → compliance |
| Use of Privilege Accounts to Create a New Login | Hành vi rủi ro cao → audit trọng yếu |
| User Activity Audit Trail | Dấu vết hoạt động user → core audit |
| User Activity Summary | Tổng hợp hoạt động → audit |
| Users Inactive Since | Tài khoản không dùng → compliance/sox |
| Values Changed | Thay đổi giá trị cấu hình/dữ liệu → audit |
| Values Changed Details | Chi tiết thay đổi → audit |
| Policy Violations | Vi phạm policy → cốt lõi compliance |
| Policy Violations / Incident Management | Quản lý sự cố vi phạm → cốt lõi compliance |
| Audit Process Log | Log tiến trình kiểm toán → audit |
| Audit processes - Active/Inactive | Trạng thái tiến trình audit → giám sát audit |
| 50Sec - Policy Violation Report | Báo cáo vi phạm → compliance |
| 50Sec_Policy_Rule_Violation_Rule | Vi phạm rule → compliance |
| 50Sec_Retail_Sensitive_Report | Dữ liệu nhạy cảm → compliance |
| 50Sec - RPT_USER_AND_SCHEMA_MODIFICATIONS | Thay đổi user/schema → audit |
| 50Sec - User Loggin Failed 01 | Đăng nhập thất bại → audit bảo mật |
Tiến hành tạo role:
Lưu ý: tự customize UI để hiện thị đúng những gì đã thiết kế ở trên
Tạo tài khoản user_auditor:
Gán Role cho user_auditor
2. Các Kịch bản Thực thi và Kiểm thử kết quả
Kịch bản 1: Phân quyền nội bộ trên Web GUI của Guardium (RBAC)
Bước 1.1: Đăng nhập với tài khoản user_secofficer để thực hiện các thao tác quản trị bảo mật chuyên sâu:
- Khởi tạo quy tắc giám sát/ngăn chặn trong Policy Builder và thực thi kích hoạt policy qua Policy Installed Policies sang các Collector.
- Giao diện chỉ hiển thị các menu được customize riêng, toàn bộ chức năng cấu hình bảo mật như Protect, Policy Builder, Group Builder hoàn toàn bị ẩn khỏi thanh điều hướng navigation menu.
- Thực hiện truy cập vào Policy Violation Report:
Kịch bản 2: Phân tách trách nhiệm (SoD) giữa DBA và hệ thống Audit
Bước 2.1: DBA (tài khoản sa) đăng nhập vào SQL Server qua SSMS và thực hiện hành vi can thiệp trái phép vào bảng nhạy cảm finance.cardholders.
Bước 2.2: DBA cố tình che giấu hành vi:
- Xóa dữ liệu lịch sử trong database (DELETE/DROP).
- Thử can thiệp vào log kiểm toán trên máy chủ DB (xóa native audit/trace).
Bước 2.3: DBA (với quyền OS admin trên máy DB) thử stop service S-TAP. Kết quả mong đợi: Guardium tạo alert S-TAP disconnected/tampering, dấu vết vẫn hiển thị cho kiểm toán viên.
Kiểm tra Status của STAP - đảm bảo vẫn đang hoạt động ổn định:
Tiến hành Kill tiến trình STAP và xem log nhận được ở bên IBM
Mở Report S-TAP Events để kiểm trả log đã được ghi:
Kết quả phân tích log:
| Dòng | Thời gian | Nội dung | Ý nghĩa |
| 1 | 2026-09-26 11:06:15 | LOG_WARNING - MSG(203) MODULE(1) SEV(3) COUNT(1) Primary Non-TLS main connection established with: 10.30.197.84 | S-TAP thiết lập kết nối chính (không mã hóa TLS) tới Guardium Collector 10.30.197.84. Đây là cảnh báo mức thấp (SEV=3) vì kết nối không dùng TLS. |
| 2 | 2026-09-26 11:06:15 | LOG_INFO - MSG(238) MODULE(1) SEV(2) COUNT(1) connected to primary server 10.30.197.84 | S-TAP đã kết nối thành công tới máy chủ chính 10.30.197.84. Đây là thông báo thông tin bình thường (SEV=2). |
Bước 2.4: Kiểm toán viên (user_auditor) đăng nhập vào Guardium, mở các báo cáo kiểm toán độc lập:
- Guardium Violations: các vi phạm policy trên bảng dbo.cardholders.
Kết luận: Dữ liệu vẫn hiển thị đầy đủ, nguyên vẹn trên Guardium Repository vì S-TAP đã đẩy log tức thì sang thiết bị đóng gói (Hardened Appliance) mà DBA không có quyền truy cập hay chỉnh sửa.
Kịch bản 3: Ai giám sát người giám sát (Audit Trail của Quản trị viên)
Để đảm bảo tính minh bạch và tuân thủ nguyên tắc giám sát tối cao, tài khoản admin được sử dụng để kiểm tra, theo dõi toàn bộ phân quyền và mọi nhật ký hoạt động của các quản trị viên khác trên Guardium:Bước 3.1: Đăng nhập bằng tài khoản admin và truy cập báo cáo All Roles - Application Access để rà soát phạm vi phân quyền của từng Role trong hệ thống. Kết quả kiểm tra xác nhận Role role_secofficer đã được giới hạn chính xác chỉ gồm 17 ứng dụng/chức năng, trong khi Role role_auditor chỉ gồm 4 chức năng báo cáo read-only:
Bước 3.2: Truy cập báo cáo kiểm toán hệ thống System/Security Activities để giám sát các thao tác tác động vào tài khoản và phân quyền. Báo cáo ghi nhận chi tiết lịch sử cập nhật (UPDATE) đối với bảng thực thể TURBINE_USER bởi các tài khoản quản trị (admin, accessmgr, user_auditor) kèm mốc thời gian chính xác (Timestamp) và mã định danh đối tượng (Key Value):