Bài giảng Bảo mật cơ sở dữ liệu - Audit Database

pdf 171 trang phuongnguyen 2690
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Bảo mật cơ sở dữ liệu - Audit Database", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_bao_mat_co_so_du_lieu_audit_database.pdf

Nội dung text: Bài giảng Bảo mật cơ sở dữ liệu - Audit Database

  1. Audit Database Giảng viên: Trần Thị Kim Chi 1
  2. Nội dùng  Giới thiệu về Audit Database  Các hoạt động của Auditi  Database Auditing Models  Application Data Auditing  Additing trong SQL  Auditing trong Oracle 2
  3. Giới thiệu Audit  giám sát(Audit): giám sát và ghi lại những hoạt động đã và đang xảy trong hệ thống một cách có chọn lọc.  Audit = Ai làm gì với dữ liệu nào khi nào và bằng cách nào (Who did what to which data when and how)  Trách nhiệm giải trình, gọi tắt là giải trình (Accountability): trách nhiệm tìm ra và chứng minh nguồn gốc các hoạt động xảy ra trong hệ thống.  Hoạt động giám sát nhằm phục vụ cho hoạt động giải trình 3
  4. Giới thiệu Audit Database  Audit/auditing: quá trình kiểm tra và xác nhận các tài liệu, dữ liệu, quy trình, thủ tục, hệ thống  Nhật lý giám sát (Audit log): tài liệu có chứa tất cả các hoạt động đang được giám sát được sắp xếp theo thứ tự thời gian  Mục tiêu giám sát: thiết lập các quy tắc kinh doanh, điều khiển hệ thống, các quy định của chính phủ, hoặc các chính sách bảo mật 4
  5. Giới thiệu Audit Database  Data audit: giám sát lịch sử những thay đổi dữ liệu được lưu trữ trong tập tin nhật ký hoặc các bảng (table) của cơ sở dữ liệu.  Database auditing: giám sát lịch sử của các hoạt động cơ sở dữ liệu  Internal auditing: kiểm tra các hoạt động được thực hiện bởi các nhân viên của tổ chức giám sát bên trong hệ thống  External auditing: : kiểm tra các hoạt động được thực hiện bởi các nhân viên của tổ chức giám sát bên ngoài hệ thống 5
  6. Tại sao phải Audit Database  Trách nhiệm giải trình từ những hành động xảy ra lên các dữ liệu (schema, bảng, dòng, )  Kiểm tra hành động đáng ngờ (suspiciousactivity)  Ví dụ xóa dữ liệu từ một bảng  Thông báo nếu có người dùng không được ủy quyền nhưng lại thao tác trên dữ liệu mà đòi hỏi phải có đủ quyền truy cập (truy cập vượt quyền) 6
  7. Tại sao phải Audit Database  Giám sát và ghi lại các hoạt động xảy ra nhằm phát hiện các vấn đề trong quá trình định quyền và điều khiển truy cập  Thống kê tình hình truy xuất tài nguyên để có biện pháp cải thiện hiệu suất  Ví dụ: dựa vào các trường, bảng thường hay được truy cập  Chọn cách đánh chỉ mục thích hợp để tăng hiệu suất.  giám sát để thỏa các yêu cầu chính sách pháp lý (compliance): thể hiện trách nhiệm với dữ liệu của khách hàng 7
  8. Các chính sách(Compliances)  Các chính sách đưa ra các quy định cần phải tuân thủ và các hướng dẫn cần thiết khi giám sát  Một số chính sách:  Health Insurance Portability and Accountability Act (HIPAA)  Sarbanes-Oxley Act  Graham-Leach-Bliley Act (GLBA)  Các chính sách thường không mô tả công nghệ cần thực thi  Cần xác định yêu cầu và lựa chọn công nghệ 8
  9. Khi nào và giám sát những gì?  Khi nào nên giám sát?  giám sát tại mọi thời điểm từ khi hệ thống bắt đầu hoạt động  giám sát những gì?  Việc giám sát có thể làm giảm hiệu suất của hệ thống  Chỉ nên giám sát những gì cần thiết 9
  10. Khi nào và giám sát những gì?  Trong chính sách Sarbanes-Oxley, phần 404 có đưa ra những hoạt động cần phải giám sát:  Hoạt động của những người dùng có quyền  Đăng nhập và đăng xuất  Những thay đổi trong các application trigger và data trigger  Thay đổi quyền và mô tả thông tin của người dùng  Cấu trúc dữ liệu bị thay đổi  Các truy cập đọc và ghi trên những dữ liệu nhạy cảm  Những lỗi và ngoại lệ  Nguồn gốc của những hoạt động truy cập dữ liệu  Thời gian, tên chương trình, kích thước dữ liệu, câu 10 lệnh
  11. Nội dùng  Giới thiệu về Audit Database  Các hoạt động của Auditi  Database Auditing Models  Application Data Auditing  Additing trong SQL  Auditing trong Oracle 11
  12. Các hoạt động của Audit  Đánh giá hiệu quả và đầy đủ của các thành phần được giám sát  Xác định và xem lại độ tin cậy và tính toàn vẹn của các thành phần được giám sát  Đảm bảo tổ chức tuân thủ chính sách, thủ tục, quy định, pháp luật, và các tiêu chuẩn của chính phủ và ngành công nghiệp  Lập kế hoạch, chính sách và thủ tục thực hiện giám sát 12
  13. Các hoạt động của Audit  Lưu lại tất cả các thay đổi cho các thành phần được giám sát  Cập nhật những thông tin đã audit và các quy định giám sát mới  Cung cấp tất cả các chi tiết giám sát cho tất cả nhân viên công ty tham gia vào việc giám sát  Xuất bản hướng dẫn và thủ tục giám sát  Các hoạt động như liên lạc giữa các công ty và các nhóm giám sát bên ngoài 13
  14. Các hoạt động của Audit  Hoạt động như một nhà tư vấn cho các kiến trúc sư, nhà phát triển, và các nhà phân tích kinh doanh  Tổ chức và thực hiện giám sát nội bộ  Đảm bảo tất cả các mục trong hợp đồng được đáp ứng bởi các tổ chức được giám sát  Xác định các loại giám sát sẽ được sử dụng  Xác định các vấn đề an ninh phải được giải quyết  Tư vấn cho Vụ Pháp chế 14
  15. Auditing Environment  Ví dụ giám sát:  giám sát tài chính  kiểm tra bảo mật  giám sát cũng đo lường sự phù hợp với các quy định và luật pháp của chính phủ  giám sát diễn ra trong một môi trường:  Môi trường giám sát  Môi trường cơ sở dữ liệu giám sát 15
  16. Auditing Environment Các thành phần:  Mục tiêu: một giám sát mà không có một tập hợp các mục tiêu là vô dụng  Procedure-Thủ tục: thực thi theo các bước hướng dẫn và nhiệm vụ  People: giám sát viên, nhân viên, nhà quản lý  Các đơn vị được giám sát: người, tài liệu, quy trình, hệ thống 16
  17. Auditing Environment  Môi trường giám sát cơ sở dữ liệu khác với môi trường giám sát chung  Các biện pháp an ninh là không thể tách rời 17
  18. Auditing Process-Qui trình Audit  Đảm bảo chất lượng (QA):  Đảm bảo hệ thống là không lỗi và hoạt động theo thông số kỹ thuật của nó  Quá trình giám sát: đảm bảo rằng hệ thống đang làm việc và tuân thủ các chính sách, quy định và pháp luật 18
  19. Auditing Process-Qui trình Audit  Thực hiện giám sát: quan sát nếu có suy giảm hiệu suất hoạt động vào những thời điểm khác nhau  giám sát quá trình dòng chảy:  Vòng đời phát triển hệ thống  Quá trình giám sát:  Hiểu được mục tiêu  Rà soát, xác minh và xác nhận hệ thống  Dẫn chứng kết quả 19
  20. Auditing Process-Qui trình Audit 20
  21. Auditing Process-Qui trình Audit 21
  22. Quy trình giám sát  Quy trình giám sát do NIST đưa ra 22
  23. Auditing Objectives  Cho phép giải trình những hành động hiện tại tham gia vào một schema, bảng, dòng riêng biệt, hay một nội dùng cụ thể nào đó.  Ngăn cản user khỏi hành động không thích hợp dựa trên trách nhiệm phải giải trình đó.  Điều tra các hoạt động đáng ngờ. Ví dụ, nếu một user không được phép đang xóa dữ liệu từ một bảng nào đó thì người quản trị bảo mật sẽ ghi lại tất cả những kết nối CDSL và tất cả những hành động xóa các dòng từ bảng trong CSDL dù thành công hay không thành công.  Thông báo cho người giám sát rằng có user bất hợp phát đang thao tác hay xóa dữ liệu hay user có nhiều quyền hệ thống hơn sự cho phép.  Giám sát và thu thập dữ liệu về các hoạt động CSDL cụ thể. Ví dụ, người quản trị CSDL có thể thu thập thống kê về thông tin các bảng đang được update, hay bao nhiêu users cùng trung cập vào23 thời điểm cực đỉnh.
  24. Auditing Objectives 10 mục tiêu giám sát cơ sở dữ liệu:  Data integrity  Application users and roles  Data confidentiality  Access control  Data changes  Data structure changes  Database or application availability  Change control  Physical access  Auditing reports 24
  25. Các vấn đề với giám sát  giám sát là công cụ, không phải là mục tiêu  Nên sử dụng kết hợp giữa giám sát bên trong và giám sát bên ngoài  Lưu trữ và bảo mật thông tin audit log  Tự động hóa và giám sát hoạt động giám sát  Kích thước của các audit log lớn, cần sử dụng các công cụ kho dữ liệu (data warehouse) và khai phá dữ liệu (data mining) để quản lý và phân tích dữ liệu audit log  Vấn đề tính riêng tư trong audit log 25
  26. Các yêu cầu của giám sát trong CSDL  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 26
  27. Các yêu cầu của giám sát trong CSDL  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 27
  28. Các phương pháp giám sát  giám sát bằng application server log  giám sát mức ứng dụng(Application audit)  giám sát bằng trigger  giám sát bằng câu lệnh(command) 28
  29. Các đối tượng cần giám sát  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  giám sát 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 29
  30. Các đối tượng cần giám sát  giám sát 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ờ  giám sát 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 giám sát bên ngoài, so sánh snapshot 30 của lược đồ(shema) theo thời gian
  31. Các đối tượng cần giám sát  Các lỗi trong thao tác với CSDL  Các lỗi như đăng nhập thất bại, SQL Injection dấu hiệu của sự tấn công  Các ứng dụng có thể chứa lỗi và gây ra lỗi: ví dụ sinh ra những câu SQL sai cú pháp  Có thể bị lợi dụng để tấn công  Sửa lỗi ứng dụng  giám sát trên sự thay đổi mã nguồn của trigger và stored procedure  Kẻ tấn công có thể giấu những đoạn mã độc hại vào trigger hay stored procedure 31
  32. Các đối tượng cần giám sát  giám sát 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 giám sát 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 32
  33. Các đối tượng cần giám sát  giám sát sự thay đổi của các dữ liệu nhạy cảm  Ghi nhận thay đổi giữa giá trị cũ và giá trị mới trong mỗi thao tác thuộc ngôn ngữ thao tác dữ liệu(Data Manipulation Language –DML)  Cần lọc dữ liệu nào quan trọng mới giám sát vì dữ liệu giám sát sẽ rất lớn (vídụ: CSDL có 100 bảng với khoảng1 triệu transaction/ngày )  giám sát sự thay đổi của audit log  Audit log cần được bảo vệ và không cho phép thay đổi  Phương pháp: sử dụng các chức năng built-in của CSDL hoặc một hệ thống giám sát bên ngoài khác 33
  34. Nội dùng  Giới thiệu về Audit Database  Các hoạt động của Auditi  Database Auditing Models  Application Data Auditing  Additing trong SQL  Auditing trong Oracle 34
  35. Các mô hình giám sát-Auditing Models 35
  36. Simple Auditing Model 1  Dễ hiểu và phát triển  Các đơn vị đăng ký giám sát trong các kho lưu trữ mô hình giám sát  Theo dõi các hoạt động theo thứ tự thời gian  Đối tượng: người sử dụng, bảng, hoặc cột  Hoạt động: DML giao dịch hoặc đăng nhập và đăng xuất  Điều khiển cột:  Giữ chỗ cho dữ liệu được chèn tự động khi một bản ghi được tạo hay cập nhật 36
  37. Simple Auditing Model 1 37
  38. Simple Auditing Model 1 38
  39. Simple Auditing Model 2  Chỉ lưu trữ các giá trị cột thay đổi  Có một cơ chế lọc và lưu trữ dữ liệu làm giảm số lượng dữ liệu được lưu trữ  Không đăng ký một hành động đã được thực hiện trên dữ liệu  Rất lý tưởng cho giám sát một hoặc hai cột của một bảng 39
  40. Simple Auditing Model 2 40
  41. Advanced Auditing Model  Được gọi là “advanced" vì tính linh hoạt của nó  Phức tạp hơn  Đăng ký tất cả các thực thể: mức độ giám sát tốt hơn  Có thể điều khiển người dùng, hành động, bảng, cột 41
  42. Advanced Auditing Model 42
  43. Advanced Auditing Model 43
  44. Historical Data Model  Được sử dụng khi lưu trữ của cả hàng được yêu cầu  Thường được sử dụng trong hầu hết các ứng dụng tài chính 44
  45. Auditing Applications Actions Model 45
  46. Nội dùng  Giới thiệu về Audit Database  Các hoạt động của Auditi  Database Auditing Models  Application Data Auditing  Additing trong SQL  Auditing trong Oracle 46
  47. Application Data Auditing Mục tiêu:  Hiểu được sự khác biệt giữa các audit kiến trúc, giám sát hành động và thay đổi  Tạo và thực hiện trigger trong Oracle  Tạo và thực hiện trigger trong SQL Server 47
  48. DML Action Auditing Architecture  Ngôn ngữ thao tác dữ liệu (DML): các công ty sử dụng kiến trúc, giám sát cho những thay đổi DML  Thay đổi DML có thể được thực hiện ở hai cấp độ:  cấp hàng  mức độ cột  Fine-grained auditing (FGA) 48
  49. DML Action Auditing Architecture 49
  50. DML Action Auditing Architecture 50
  51. giám sát trong SQL Server  SQL Server Triggers  Implementation of an Historical Model with SQL Server 51
  52. SQL Server Triggers  CREATE TRIGGER DDL statement: creates a trigger  Trigger condition:  Prevents a trigger from firing  UPDATE() and COLUMNS_UPDATE() functions  Logical tables:  DELETED contains original data  INSERTED contains new data 52
  53. SQL Server Triggers  Restrictions—Transact-SQL statements not allowed:  ALTER and CREATE DATABASE  DISK INIT and DISK RESIZE  DROP DATABASE and LOAD DATABASE  LOAD LOG  RECONFIGURE  RESTORE DATABASE  RESTORE LOG 53
  54. Implementation of an Historical Model with SQL Server  Create a history table:  Same structure as original table  HISTORY_ID column  Create a trigger: inserts original row into the HISTORY table 54
  55. Auditing Server Activity with Microsoft SQL Server 2000  Way to track and log activity for each SQL Server occurrence  Must be a member of the sysadmin fixed server role  Two types of auditing for server events:  Auditing  C2 auditing  Auditing affects performance and can be costly 55
  56. Implementing SQL Profiler  User interface for auditing events  For each event you can audit:  Date and time of the event  User who caused the event to occur  Type of event  Success or failure of the event  Origin of the request  Name of the object accessed  Text SQL statement 56
  57. Implementing SQL Profiler (continued) 57
  58. Security Auditing with SQL Server  Steps for setting security auditing level:  Open Enterprise Manager  Expand the appropriate SQL Server group  Right-click on the desired server  Click Properties  On the security tab, select the desired security level 58
  59. Security Auditing with SQL Server (continued) 59
  60. Security Auditing with SQL Server (continued)  Auditable events:  ADD DB USER  ADD LOGIN TO SERVER ROLE  ADD MEMBER TO DB ROLE  ADD ROLE  APP ROLE CHANGE PASSWORD  BACKUP/RESTORE  CHANGE AUDIT 60
  61. Security Auditing with SQL Server (continued)  Auditable events (continued):  DBCC  LOGIN  LOGOUT  LOGIN CHANGE PASSWORD  LOGIN CHANGE PROPERTY  LOGIN FAILED  Login GDR (GRANT, DENY, REVOKE) 61
  62. Security Auditing with SQL Server (continued)  Auditable events (continued):  Object Derived Permissions  Object GDR  Object Permissions  Server Start and Stop  Statement GDR  Statement Permission 62
  63. Security Auditing with SQL Server (continued) 63
  64. Security Auditing with SQL Server (continued)  New trace information:  A name for the trace  The server you want to audit  The base template to start with  Where to save the audit data, either to a file or to a database table  A stop time, if you don’t want the trace to run indefinitely 64
  65. Security Auditing with SQL Server (continued) 65
  66. Security Auditing with SQL Server (continued) 66
  67. Security Auditing with SQL Server (continued)  Steps to add Login Change Password event  Expand the Security Audit node under Available event classes  Click Audit Login Change Password Event  Click the Add button 67
  68. Security Auditing with SQL Server (continued) 68
  69. Data Definition Auditing  Audit DDL statements:  Object:Created  Object:Deleted  Will audit all CREATE and DROP statements 69
  70. Data Definition Auditing (continued) 70
  71. Database Auditing with SQL Server 71
  72. Database Errors Auditing with SQL Server 72
  73. Nội dùng  Giới thiệu về Audit Database  Các hoạt động của Auditi  Database Auditing Models  Application Data Auditing  Additing trong SQL  Auditing trong Oracle 73
  74. giám sát trong Oracle  Giới thiệu  Các loại giám sát  Các công cụ giám sát trong Oracle  Kết luận 74
  75. Giới thiệu giám sát trong Oracle  Oracle giám sát các người dùng:  giám sát các truy cập thành công hoặc không thành công  giám sát 1 người dùng, 1 nhóm người dùng hoặc tất cả các người dùng  giám sát ở cấp phiên làm việc(session level) hoặc cấp truy cập (access level).  giám sát sẽ làm giảm hiệu suất của hệ thống  Chỉ nên giám sát những gì cần thiết 75
  76. Giới thiệu giám sát trong Oracle  Dữ liệu giám sát nên được ghi trên file của hệ điều hành (OS) để tiết kiếm tài nguyên củaCSDL  Các tham số khởi tạo AUDIT_TRAIL trong init.ora 76
  77. Các loại giám sát trong Oracle  Statement Auditing  Privilege Auditing  Schema Object Auditing  Fine-grained auditing 77
  78. Statement auditing  Statement auditing:giám sát những lệnh hoặc nhóm câu lệnh trên từng đối tượng  Câu lệnh DDL: Ví dụ AUDIT TABLE giám sát tất cả các câu lệnh CREATE và DROP TABLE.  Câu lệnh DML: Ví dụ AUDIT SELECT TABLE giám sát tất cả câu lệnh SELECT trên bảng và trên view  Có thể giám sát trên mọi người dùng hoặc trên 1 nhóm người dùng cụ thể hoặc trên Role 78
  79. Privilege auditing  Privilege auditing: giám sát những quyền hệ thống  AUDIT SELECT ANY TABLE sẽ giám sát mọi lệnh được tạo ra từ những người dùng sử dụng quyền SELECT ANY TABLE  Trường hợp cả statement và privilege cùng được giám sát thì chỉ 1 audit record được tạo ra.  Privilege auditing có độ tập trung hơn statement auditing  Statement auditing: AUDIT TABLE CREATE, ALTER, DROP (TABLE) đều được giám sát  Privilege auditing: AUDIT CREATE TABLE 79 chỉ giám sát câu lệnh CREATE (TABLE)
  80. Schema Object Auditing  Kiểm tra câu lệnh cụ thể trên đối tượng schema cụ thể, ví dụ AUDIT SELECT ON employees. (Rất được chú trọng). Schema object auditing luôn áp dụng cho tất cả các user.  Giám sát trên những đối tượng củaSchema:  Table  View  Procedure  Trigger  Function  Package  Privilege auditing có độ ưu tiên thấp hơn các schema 80 object auditing
  81. Schema Object Auditing Ví dụ:  Thực hiện giám sát câu lệnh SELECT trên Employee AUDIT SELECTON Employee;  Tạo view Emp_Name và giám sát câu lệnh SELECT CREATE VIEW Emp_NameAS SELECT EName FROM Employee; AUDIT SELECTON Emp_Name;  Thực hiện câu lệnh truy vấn trên view Emp_Name SELECT * FROM Employee_Name; 81
  82. Fine-grained Auditing  Kiểm tra dữ liệu truy xuất và các hoạt động dựa trên nội dung của dữ liệu đó.  Ví dụ: Sử dụng DBMS_FGA, người quản trị bảo mật tạo ra một chính sách kiểm tra trên một bảng. Nếu bất kì dòng nào trả về từ câu lệnh DML thỏa điều kiện kiểm tra thì một mục về sự kiện kiểm tra sẽ được chèn vào trong audit trail. 82
  83. Các công cụ giám sát trong Oracle  Standard Auditing  Fine-Grained Auditing 83
  84. Standard Auditing Kích hoạt Standard Auditing  Bất cứ database user hợp pháp nào cũng có thể thiết lập lựa chọn giám sát đối với câu lệnh, quyền và đối tượng bất cứ khi nào. Tuy nhiên hệ CSDL Oracle không sinh thông tin audit cho Standart database audit trail trừ khi CSDL giám sát được kích hoạt. Người quản trị bảo mật thường có trách nhiệm điều khiển việc giám sát này. 84
  85. Standard Auditing Kích hoạt Standard Auditing  Auditing là chức năng mặc định trong Oracle server. Các tham số khởi tạo ban đầu ảnh hưởng đến hành vi của nó có thể được xem bằng cách sử dụng câu lệnh. SQL> SHOW PARAMETER AUDIT NAME TYPE VALUE audit_file_dest string C:\ORACLEXE\APP\ORACLE\ ADMIN\XE\ADUMP audit_sys_operations boolean FALSE 85 audit_trail string NONE
  86. Standard Auditing  Chức năng Audit mặc định bị bất hoạt, nhưng có thể kích hoạt nó bằng cách thiết lập giá trị cho tham số AUDIT_TRAIL  AUDIT_TRAIL = { none | os | db | db,extended | xml | xml,extended }  Trong đó:  none or false – chức năng giám sát bị bất hoạt.  db or true – Bật chức năng giám sát và các bản ghi giám sát được sẽ được lưu trong database audit trail (SYS.AUD$).  xml- Bật chức năng giám sát với các bản ghi giám sát được sẽ được lưu như file OS có định dạng XML.86
  87. Standard Auditing  os- Bật chức năng giám sát với các bản ghi giám sát được ghi vào operating system audit trail.  Tham số AUDIT_SYS_OPERATIONS dùng để kích hoạt hay bất hoạt giám sát các hoạt động của những user kết nối vào hệ thống với quyền SYSDBA hay SYSOPER, bao gồm user SYS. Khi đó tất cả các bản ghi giám sát được ghi vào OS audit trail.  Tham số AUDIT_FILE_DEST đặc tả đường dẫn cho audit trail khi các lựa chọn OS, XML, EXTENDED được sử dụng. Nó cũng là vị trí lưu các bản ghi giám sát khi tham số AUDIT_SYS_OPERATIONS = true 87
  88. Standard Auditing Để kích hoạt chức năng giám sát, làm theo các bước sau  SQL> ALTER SYSTEM SET audit_trail=db SCOPE=SPFILE;  System altered.  SQL> SHUTDOWN  Database closed.  Database dismounted.  ORACLE instance shut down.  SQL> STARTUP  ORACLE instance started.  Database mounted.  Database opened.  SQL> 88
  89. Standard Auditing Kích hoạt lựa chọn Standard Auditing  Để sử dụng lệnh AUDIT thiết lập lựa chọn về câu lệnh và quyền thì bạn nhất thiết phải có quyền AUDIT SYSTEM. Còn để thiết lập các lựa chọn giám sát đối tượng bạn phải làm chủ đối tượng bị giám sát hay có quyền AUDIT ANY.  Lệnh AUDIT thiết lập lựa chọn giám sát câu lệnh và quyền có thể bao gồm mệnh đề BY để cụ thể danh sách những user hay application proxy để giới hạn tầm vực của câu lệnh và lựa chọn giám sát quyền.  BY SESSION/ BY ACCESS 89
  90. Standard Auditing Kích hoạt lựa chọn Standard Auditing  BY SESSION:  Ghi một bản ghi đơn cho tất cả các câu lệnh SQL cùng loại thực thi trên cùng những đối tượng schema trong cùng một session. Tuy nhiên nếu sử dụng operating system trail cho theo dấu giám sát (khi đó tham số AUDIT_FILE_DEST được gán giá trị OS), thì CSDL sẽ viết nhiều mục vào file theo dấu ngay cả khi bạn sử dụng mệnh đề BY SESSION. 90
  91. Standard Auditing Kích hoạt lựa chọn Standard Auditing BY ACCESS:  Ghi một bản ghi cho mỗi lần truy xuất. Nếu đặc tả lựa chọn câu lệnh hay quyền hệ thống mà giám sát câu lệnh DDL thì CSDL sẽ tự động giám sát theo BY ACCESS không quan tâm bạn sử dụng mệnh đề BY SESSION hay BY ACCESS. Ngoài ra thì nếu không đặc tả thì BY SESSION là mặc định.  WHENEVER SUCCESSFUL/ WHENEVER NOT SUCCESSFUL  WHENEVER SUCCESSFUL giám sát những lệnh thành công.  WHENEVER NOT SUCCESSFUL giám sát những lệnh thất bại hay kết quả lỗi. Nếu loại bỏ hai mệnh đề này thì Oracle cũng sẽ ghi lại sự giám sát không quan tâm câu lệnh có thành công hay không. 91
  92. Standard Auditing Bất hoạt lựa chọn Standard Auditing  Câu lệnh NOAUDIT để tắt các lựa chọn giám sát của Oracle 10G.  Mệnh đề WHENEVER để tắt các giám sát đối với các câu lệnh được thực hiện thành công hay không thành công. Nếu không sử dụng mệnh đề đó thì chức năng giám sát sẽ tắt cả đối với trường hợp thành công hay thất bại.  Mệnh đề BY SESSION/BY ACCESS không được hỗ trợ trong câu lệnh NOAUDIT. 92
  93. Standard Auditing Điều khiển sự phát triển và kích cỡ của Standard Audit Trail  Nếu audit trail đầy dẫn tới không một bản ghi giám sát nào được ghi thêm vào thì những câu lệnh AUDIT không thể thực thi thành công cho tới khi audit trail trống trở lại. Do đó, người quản trị bảo mật phải điều khiển sự phát triển và kích cỡ của audit trail. 93
  94. Standard Auditing Điều khiển sự phát triển và kích cỡ của Standard Audit Trail  Khi chức năng giám sát được kích hoạt và các bản ghi giám sát được sinh ra thì dung lượng của audit trail phụ thuộc hai yếu tố:  Số lựa chọn giám sát được sử dụng.  Tần số thực hiện các câu lệnh được giám sát.  Để điều khiển sự phát triển của audit trail, bạn có thể sử dụng phương pháp:  Kích hoạt và bất hoạt giám sát CSDL. Nếu nó được kích hoạt thì các bản ghi giám sát được sinh ra và lưu trữ trong audit trail. Nếu nó bất hoạt thì các bản ghi 94sẽ không được sinh ra.
  95. Standard Auditing Điều khiển sự phát triển và kích cỡ của Standard Audit Trail  Chọn lọc kĩ những lựa chọn giám sát được kích hoạt. Nếu nhiều lựa chọn giám sát được kích hoạt thì những bản ghi giám sát không cần thiết có thể làm đầy audit trail.  Quản lí chặt khả năng giám sát đối tượng. Điều đó có thể được thực hiện bằng hai cách khác nhau:  Nhà quản trị bảo mật làm chủ tất cả các đối tượng và quyền hệ thống AUDIT ANY không bị cấp cho bất kì một user nào khác.  Tất cả các đối tượng chứa trong những schema mà không tương ứng với database user thực sự (user đó không được cấp quyền CREATE SESSION) và người quản trị bảo mật là user duy nhất có quyền AUDIT ANY. 95  Xóa một số bản ghi trong audit trail để vừa giải phóng
  96. Standard Auditing Điều khiển sự phát triển và kích cỡ của Standard Audit Trail  Ví dụ: Xóa toàn bộ bản ghi trong audit trail: DELETE FROM SYS.AUD$; Xóa toàn bộ bản ghi được sinh ra do kết quả của việc giám sát bảng emp: DELETE FROM SYS.AUD$ WHERE obj$name = ‘EMP’;  Chú ý: Chỉ có user SYS (user có quyền DELETE ANY TABLE), hay user được SYS gán quyền DELETE trên SYS.AUD$ mới có thể thực hiện những câu lệnh trên. 96
  97. Cú pháp câu lệnh giám sát audit::= 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. 97
  98. Cú pháp câu lệnh giám sát sql_statement_clause::=  Chú ý: Oracle khuyên rằng nên đặc tả lựa chọn quyền hệ thống và câu lệnh để giám sát hơn là nêu chung qua các role hoặc shortcuts. 98
  99. Cú pháp câu lệnh giám sát auditing_by_clause::=  Giám sát chỉ những câu lệnh SQL gọi bởi những user cụ thể. Nếu không sử dụng mệnh đề này thì Oracle sẽ giám sát câu lệnh của tất cả user. 99
  100. Cú pháp câu lệnh giám sát schema_object_clause::=  Giám sát các hoạt động trên những đối tượng schema.  Object_option: đặc tả hoạt động cụ thể cho việc giám sát. Ví dụ như ALTER, COMMENT, AUDIT, DELETE, EXECUTE, GRANT, INSERT, READ,  ALL: là một shortcut tương ứng với tất cả các object 100 options cho các loại đối tượng.
  101. Cú pháp câu lệnh giám sát auditing_on_clause::=  auditing_on_clause: đặc tả đối tượng schema riêng biệt được giám sát. 101
  102. Cú pháp câu lệnh giám sát auditing_on_clause::=  ON DEFAULT: thiết lập những lựa chọn đối tượng cụ thể trở thành những lựa chọn đối tượng mặc định cho những đối tượng được tạo ra sau đó. Sau khi thiết lập những lựa chọn giám sát mặc định, bất kì đối tượng nào được tạo ra sau đó thì được giám sát tự động với những lựa chọn đó. Những lựa chọn giám sát mặc định cho một view luôn là sự kết hợp của lựa chọn giám sát cho bảng cơ sở của view đó. Có thể xem lựa chọn giám sát mặc định hiện tại bằng cách truy vấn ALL_DEF_AUDIT_OPTS.  Khi thay đổi lựa chọn giám sát mặc định, lựa chọn giám sát cho những đối tượng được tạo lúc trước vẫn giữ nguyên. Bạn có thể thay đổi lựa chọn giám sát cho đối tượng đã tồn tại chỉ bằng đặt tả đối tượng trong mệnh đề 102 ON của câu lệnh AUDIT.
  103. Cú pháp câu lệnh giám sát noaudit::= 103
  104. Fine-grained Auditing (FGA)  Fine-grained auditing (FGA) đặt ra nhiều điều kiện giám sát chi tiết hơn. Ta không cần phải thiết lập thông số cho AUDIT_TRAIL để kích hoạt chức năng này, mà chỉ cần tạo ra các chính sách FGA rồi áp dụng chúng trên các hoạt động hay các đối tượng cụ thể mà ta muốn giám sát.  Cơ chế này trong cơ sở dữ liệu ngăn chặn người dùng khỏi việc cố gắng tìm cách truy vấn vòng để không bị giám sát.  Những bản ghi của FGA sẽ lưu trong bảng SYS.FGA_LOG$ và được truy cập thông qua view DBA_FGA_AUDIT_TRAIL. 104
  105. Fine-grained Auditing (FGA) Ưu thế của Fine-grained Auditing so với Trigger:  Fine-grained auditing thỏa mãn những nhu cầu bằng cách cung cấp sự hiệu quả vượt lên trên phương pháp trigger. Trigger phải gánh chịu quá trình gọi hàm PL/SQL khi mỗi hàng được xử lí và tạo ra một bản ghi audit chỉ khi một cột thích hợp bị thay đổi bởi một câu lệnh DML.  Mặt khác, một chính sách fine-grainned auditing không phải gánh chịu chi phí cho mỗi hàng. Nó chỉ giám sát một lần cho mỗi chính sách. Cụ thể, nó sẽ giám sát khi một cột thích hợp cụ thể bị tác động bởi một loại lệnh DML xác định, hoặc bị thay đổi bởi câu lệnh hoặc nằm trong tiêu chuẩn chọn lọc của nó 105
  106. Fine-grained Auditing (FGA) Chính sách trong Fine-grained Auditing:  Chính sách FGA có thể theo dõi việc truy xuất dữ liệu dựa trên nội dung của dữ liệu đó. Sử dụng chính sách, ta có thể chỉ rõ cột nào và điều kiện khi nào ta mới cần phải ghi lại việc truy xuất đó. Ta cũng có thể cung cấp thêm tên hàm mà ta muốn thực thi khi một sự kiện giám sát xảy ra. Hàm đó có thể nhắc nhở hoặc báo động cho người quản trị hay xử lí lỗi và các bất thường. 106
  107. Fine-grained Auditing (FGA) Hàm xử lí sự kiện:  Trong chính sách FGA có thể xác định điều kiện khi nào ta truy xuất dữ liệu sẽ gây ra một trigger giám sát. Những chính sách đó có thể sử dụng các xử lí sự kiện uyển chuyển để nhắc nhỏ nhà quản trị khi sự kiện trigger xảy ra.  Ví dụ, một công ty có thể cho phép nhân viên HR truy cập thông tin về lương mà không bị giám sát, nhưng khi làm việc với số lương lớn hơn $500k thì sẽ bị giám sát. Khi đó việc đó xảy ra hệ thống sẽ cảnh báo cho nhà quản trị. 107
  108. Fine-grained Auditing (FGA) Hàm xử lí sự kiện:  Cơ chế thực hiện cảnh báo đó được thực hiện nhờ vào một hàm: PROCEDURE fname( object_schema VARCHAR2, object_name VARCHAR2, policy_name VARCHAR2) AS  Trong đó:  fname: tên của thủ tục  object_schema: tên của schema chứa bảng bị giám sát.  object_name: tên của bảng bị giám sát.  policy_name: tên của chính sách 108
  109. Fine-grained Auditing (FGA) Hàm và các cột liên quan trong Fine-grained Auditng:  Để hiện thực thêm uyển chuyển, ta có thể thêm vào các hàm tự định nghĩa để đưa ra điều kiện cho chính sách và xác định cột nào cần được giám sát (cột liên quan) để tinh lọc chính sách giám sát. Ví dụ, hàm đó có thể tạo ra một bản ghi giám sát chỉ khi mức lương lớn hơn $250k bị truy cập.  Chỉ rõ cột liên quan có thể giúp giảm các trường hợp sai cũng như là các bản ghi không cần thiết, bởi vì việc giám sát chỉ cần được thực hiện khi một cột cụ thể được tham khảo đến trong câu truy vấn. 109
  110. Fine-grained Auditing (FGA) Hàm và các cột liên quan trong Fine-grained Auditng:  Ví dụ, một công ty có thể chỉ mong muốn ghi lại sự truy cập thông tin về lương khi tên của nhân viên cũng bị truy cập, bởi vì nếu chỉ xem thông tin về lương không mà không biết tên người sở hửu số lương đó cũng vô nghĩa. Ta cũng có thể chỉ rõ rằng việc giám sát chỉ xảy ra khi tất cả các cột liên quan điều được tham khảo đến, hoặc chỉ một trong các cột liên quan được tham khảo.  Trong trường hợp nhiều hơn một cột liên quan được chỉ định, Oracle Database sẽ sinh ra một bản ghi giám sát nếu câu lênh SQL tham khảo đến bất kì cột110 nào trong những cột được giám sát đó.
  111. Fine-grained Auditing (FGA) Hàm và các cột liên quan trong Fine-grained Auditng:  Điều kiện giám sát NULL:  Để đảm báo việc giám sát các hành động cụ thể (statement_types) ảnh hưởng tới những cột được chỉ định rõ (audit_column), đặc tả điều kiện giám sát (audit_condition) là NULL, điều đó được hiểu như là một điều kiện đúng. Dạng điều kiện cũ “1=1” không còn được sử dụng như trong Oracle 9i vì nó không có được kết quả mong muốn một cách đáng tin cậy. NULL sẽ vẫn tạo ra được sự giám sát kể cả khi không có dòng nào được xử lí, do đó tất cả mọi hoạt động trên cột liên quan (audit_column) với chính111 sách đó đều được ghi lại.
  112. Fine-grained Auditing (FGA) Hàm và các cột liên quan trong Fine-grained Auditng: Lưu ý:  Sử dụng chuỗi rỗng không tương đương với giá trị NULL và sẽ dẫn đến sự giám sát đáng tin cậy.  Nếu NULL hoặc không có điều kiện giám sát nào được đặc tả, thì bất kì hành động nào tác động lên một bảng thỏa chính sách đó đều khiến cho một bản ghi giám sát được tạo ra, dù cho có không có dòng nào được trả về từ câu truy vấn. 112
  113. Gói DBMS_FGA trong Oracle  Gói DBMS_FGA cung cấp chức năng bảo mật FGA. Để có thể quản lý các chính sách giám sát, ta cần phải có quyền thực thi trên DBMS_FGA (EXCUTE ON DBMS_FGA)  Thủ tục ADD_POLICY  Thủ tục này dùng để tạo ra các chính sách giám sát. Số chính sách giám sát tối đa trên một bảng hoặc view là 256. 113
  114. Gói DBMS_FGA trong Oracle Cú pháp DBMS_FGA.ADD_POLICY(  object_schema VARCHAR2,  object_name VARCHAR2,  policy_name VARCHAR2,  audit_condition VARCHAR2,  audit_column VARCHAR2,  handler_schema VARCHAR2,  handler_module VARCHAR2,  enable BOOLEAN,  statement_types VARCHAR2,  audit_trail BINARY_INTEGER IN DEFAULT, 114  audit_column_opts BINARY_INTEGER IN DEFAULT);
  115. Gói DBMS_FGA trong Oracle 115
  116. Gói DBMS_FGA trong Oracle 116
  117. Gói DBMS_FGA trong Oracle  Chú ý về tham số audit_trail:  audit_trail => DBMS_FGA.DB : bản ghi giám sát sẽ được ghi vào bảng SYS.FGA_LOG$ của cơ sở dữ liệu và loại bỏ cột SQL Text và SQL Bind.  audit_trail => DBMS_FGA.DB+EXTENDED : bản ghi giám sát sẽ được ghi vào bảng SYS.FGA_LOG$ của cơ sở dữ liệu và có thêm hai SQL Text và SQL Bind.  audit_trail => DBMS_FGA.XML: bản ghi giám sát sẽ được ghi vào file XML, file này được lưu trong hệ điều hành và không chứa hai cột SQL Text và SQL Bind.  audit_trail => DBMS_FGA.XML+EXTENDED: bản ghi giám sát sẽ được ghi vào file XML, file này được lưu trong hệ điều hành và chứa hai cột SQL Text và SQL Bind.  Các thông số của audit_trail nằm trong view ALL_AUDIT_POLICIES. 117
  118. Gói DBMS_FGA trong Oracle Thủ tục DISABLE_POLICY  Thủ tục này để bất hoạt một chính sách giám sát.  Cú pháp DBMS_FGA.DISABLE_POLICY( object_schema VARCHAR2, object_name VARCHAR2, policy_name VARCHAR2 ); 118
  119. Gói DBMS_FGA trong Oracle Thủ tục DISABLE_POLICY  Tham số: Tên Mô tả object_schema Tên của schema chứa đối tượng bị giám sát object_name Tên của đối tượng bị giám sát policy_name Tên của chính sách. 119
  120. Gói DBMS_FGA trong Oracle Thủ tục ENABLE_POLICY  Thủ tục này cho phép kích hoạt một chính sách giám sát.  Cú pháp  DBMS_FGA.ENABLE_POLICY(  object_schema VARCHAR2,  object_name VARCHAR2,  policy_name VARCHAR2,  enable BOOLEAN); 120
  121. Gói DBMS_FGA trong Oracle Thủ tục ENABLE_POLICY  Tham số Tên Mô tả object_schema Tên của schema chứa đối tượng bị giám sát. object_name Tên của đối tượng bị giám sát. policy_name Tên của chính sách enable TRUE là giá trị mặc định. 121
  122. Gói DBMS_FGA trong Oracle Thủ tục DROP_POLICY  Thủ tục này để loại bỏ một chính sách giám sát.  Cú pháp  DBMS_FGA.DROP_POLICY(  object_schema VARCHAR2,  object_name VARCHAR2,  policy_name VARCHAR2 ); 122
  123. Gói DBMS_FGA trong Oracle Thủ tục DROP_POLICY  Tham số: Tên Mô tả object_schema Tên của schema chứa đối tượng bị giám sát. object_name Tên của đối tượng bị giám sát. policy_name Tên của chính sách. 123
  124. Fine-Grained Auditing –FGA Ví dụ: Audit trên cột EMP.SAL BEGIN DBMS_FGA.add_policy ( object_schema=> 'AUDIT_TEST', object_name=> 'EMP', policy_name=> 'SALARY_AUDIT', audit_condition=> 'SAL > 50000', audit_column=> 'SAL', statement_types=>'SELECT, INSERT, UPDATE, DELETE' ); 124 END;
  125. DML Action Auditing with Oracle  Record data changes on the table:  Name of the person making the change  Date of the change  Time of the change  Before or after value of the columns are not recorded 125
  126. DML Action Auditing with Oracle (continued) 126
  127. DML Action Auditing with Oracle (continued)  Steps:  Use any user other than SYSTEM or SYS; with privileges to create tables, sequences, and triggers  Create the auditing table  Create a sequence object  Create the trigger that will record DML operations  Test your implementation 127
  128. History Auditing Model Implementation Using Oracle  Historical data auditing is simple to implement; main components are TRIGGER objects and TABLE objects  Keeps record of:  Date and time the copy of the record was captured  Type of operation applied to the record 128
  129. History Auditing Model Implementation Using Oracle (continued)  Steps:  Use any user other than SYSTEM or SYS; with privileges to create tables, sequences, and triggers  Create history table  Create the trigger to track changes and record all the values of the columns  Test your implementation 129
  130. DML Auditing Using Repository with Oracle (Simple 1)  Simple Auditing Model 1  Flag users, tables, or columns for auditing  Requires less database administrative skills:  Application administrators can do it  User interface is built in top of the repository  Auditing flags are flexible  Does not record before or after column values; only registers type of DML operations 130
  131. DML Auditing Using Repository with Oracle (Simple 1) (continued) 131
  132. DML Auditing Using Repository with Oracle (Simple 1) (continued)  Steps:  Use any user other than SYSTEM or SYS  Create triggers  Create sequence object  Build tables to use for applications  Populate application tables 132
  133. DML Auditing Using Repository with Oracle (Simple 1) (continued)  Steps (continued):  Populate auditing repository with metadata  Create the stored package to be used with the trigger  Create triggers for application tables  Test your implementation 133
  134. DML Auditing Using Repository with Oracle (Simple 2)  Simple Auditing Model 2: requires a higher level of expertise in PL/SQL  Stores two types of data:  Audit data: value before or after a DML statement  Audit table: name of the tables to be audited 134
  135. DML Auditing Using Repository with Oracle (Simple 2) (continued) 135
  136. DML Auditing Using Repository with Oracle (Simple 2) (continued)  Steps:  Use any user other than SYSTEM or SYS; with privileges to create tables, and triggers  Create the auditing repository  Establish a foreign key in AUDIT_DATA table referencing AUDIT_TABLE table  Create a sequence object  Create the application schema 136
  137. DML Auditing Using Repository with Oracle (Simple 2) (continued)  Steps (continued):  Add data to tables  A stored PL/SQL package will be used for auditing within the triggers  Create triggers for audited tables  Add auditing metadata  Test your implementation 137
  138. Auditing Application Errors with Oracle  Application errors must be recorded for further analysis  Business requirements mandate to keep an audit trail of all application errors  Materials:  Repository consisting of one table  Methodology for your application 138
  139. Auditing Application Errors with Oracle (continued)  Steps:  Select any user other than SYSTEM or SYS; with privileges to create tables, and procedures  Populate tables  Create the ERROR table  Create a stored package to perform the UPDATE statement  Test your implementation: perform and update using the CREATE package 139
  140. Oracle PL/SQL Procedure Authorization  Oracle PL/SQL stored procedures are the mainstay of implementing business rules  Security modes:  Invoker rights: procedure is executed using security credentials of the caller  Definer rights: procedure is executed using security credentials of the owner 140
  141. Oracle PL/SQL Procedure Authorization (continued)  Steps:  Create a new user  Select a user with CREATE TABLE and PROCEDURE privileges  Populate tables  Create stored procedure to select rows in a table  Grant EXECUTE privileges on new procedure  Log on as the new user and query the table  Execute procedure 141
  142. giám sát bằng trigger  System trigger: Trigger được tự động thực thi khi có các sự kiện của hệ thống xảy ra  Khởi động hoặc tắt CSDL  Đăng nhập hoặc đăng xuất  Tạo, chỉnh sửa hoặc xóa các đối tượng của lược đồ  Trigger CSDL:  Trigger trên các câu lệnh Update, Delete, Insert  Các trigger CSDL có thể ghi lại các thay đổi ở cấp hàng và cột của bảng dữ liệu  Các truy cập đọc(SELECT) không thể được ghi lại bằng các trigger CSDL thông thường 142
  143. Oracle Triggers 143
  144. Oracle Triggers  CREATE TRIGGER  Executed in a specific order:  STATEMENT LEVEL triggers before COLUMN LEVEL triggers  BEFORE triggers before AFTER triggers  USER_TRIGGERS data dictionary view: all triggers created on a table  A table can have unlimited triggers: do not overuse them 144
  145. Oracle Triggers 145
  146. Kết quả giám sát  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-GrainedAudit  Kết quả trả về trong bảng fga_log$  View: dba_fga_audit_trail  Trường hợplưu file OS  Lưu thành file XML trong thư mục $Oracle\orcl\adump 146
  147. Creating DDL Triggers with Oracle  Audit program provides:  Audit trail for all activities  Opportunity for using process controls  Database activities statements (in addition to DML):  Data Definition Language (DDL)  Data Control Language  Database events  SQL statements audit trail 147
  148. Creating DDL Triggers with Oracle (continued)  Use CREATE TRIGGER:  DDL statements  Database events 148
  149. Example of LOGON and LOGOFF Database Events  Steps:  Log on as SYSTEM  Create the APP_AUDIT_LOGINS table  Create two triggers:  One that fires after the logon event  One that fires before the logoff event  Log on as DBSEC; disconnect after a few minutes  Log on as SYSTEM to check the auditing table 149
  150. DDL Event Example  Steps:  Log on as SYSTEM  Create a trigger that fires before an ALTER statement is completed  Log on as DBSEC and alter a table  Pseudocolumns:  ora_dict_obj_name  ora_dict_obj_owner  ora_sysevent 150
  151. Auditing Code with Oracle  Steps:  Log on as DBSEC  Create an auditing table  Create a table and populate it with two records  Create a trigger to track code  Update the new table  Look at the contents of the APP_AUDIT_SQLS table 151
  152. Auditing Database Activities with Oracle  Oracle provides mechanisms for auditing all:  Who creates or modifies the structure  Who is granting privileges to whom  Two types of activities based on the type of SQL command statement used:  Defined by DDL (Data Definition Language)  Defined by DCL (Data Control Language) 152
  153. Auditing DDL Activities  Use a SQL-based AUDIT command  Verify auditing is on:  Check the AUDIT_TRAIL parameter  Values:  DB  DB_EXTENDED  OS  NONE 153
  154. Auditing DDL Activities (continued) 154
  155. DDL Activities Example 1  Steps:  Use any user other than SYS or SYSTEM to create a table  Add three rows into the table  Log on as SYSTEM or SYS to enable auditing: For ALTER and DELETE  Log in as DBSEC:  Delete a row  Modify the structure of the table 155
  156. DDL Activities Example 1 (continued)  Steps (continued):  Check the audit records  Log in as SYSTEM and view the DBA_AUDIT_TRAIL table  Turn off the auditing option  Check the content of the DBA_AUDIT_OBJECT to see auditing metadata 156
  157. DDL Activities Example 1 (continued) 157
  158. DDL Activities Example 1 (continued) 158
  159. DDL Activities Example 2  Steps:  Log in as SYSTEM or SYS to enable auditing for the TABLE statement; ALTER, CREATE, and DROP TABLE statements  Log on as DBSEC and create a table, then drop the table  Log on as SYSTEM; view the content of DBA_AUDIT_TRAIL  Turn off auditing for the TABLE statement 159
  160. DCL Activities Example  Steps:  Log on as SYSTEM or SYS and issue an AUDIT statement  Log on as DBSEC and grant SELECT and UPDATE to SYSTEM  Log on as SYSTEM and display the contents of DBA_AUDIT_TRAIL  Review audit data dictionary 160
  161. DCL Activities Example (continued) 161
  162. Example of Auditing User Activities  Steps:  Log on as SYSTEM or SYS, to issue an audit statement  Log on as DBSEC and create a temporary table  Go back to SYSTEM to view the contents of DBA_AUDIT_TRAIL 162
  163. Audit Trail File Destination  Steps:  Modify the initialization parameter file, INIT.ORA; set parameter AUDIT_TRAIL to the value OS  Create a folder/directory  Set AUDIT_FILE_DEST to the new directory  Shut down and restart the database  Connect as DBSEC 163
  164. Oracle Alert Log  Audits database activities:  Errors:  Errors related to physical structure are recorded in the Alert log  Monitor errors every five to ten minutes; can be done using a Windows or UNIX script  Syntactical errors are not recorded  Startup and shutdown  Date and time of each occurrence 164
  165. Oracle Alert Log (continued) 165
  166. Oracle Alert Log (continued)  Database activities (continued):  Modified initialization parameters, each time a database is started  Checkpoints: configure Oracle to record checkpoint time  Archiving: view the timing for all redo log sequences, as well as archiving times  Physical database changes 166
  167. Oracle Alert Log (continued) 167
  168. Các lưu ý với AUD$  Kiểm soát kích thước và sự phát triển của AUDIT_TRAIL  AUD$ nằm trong SYSTEM tablespace  Tấn công kiểu DOS có thể làm đầySYSTEM tablespace, và làm cho CSDL không thể hoạt động được  Số record trong AUD$ phụ thuộc vào 2 yếu tố: số giám sát được bật lên và tần suất thực thi của các thao tác được giám sát  Giảipháp:  giám sát có chọn lọc  Lưu file audit trên file OS  Di chuyển các record trongAUD$ ra ngoài nếu AUD$ quá lớn 168
  169. Bảo vệ AUDIT TRAIL  Chỉ cấp quyền DELETE ANY TABLE hoặc DELETE trên Sys.Aud$ cho những người dùng tin cậy  giám sát chính Sys.Aud$ AUDITINSERT UPDATE DELETE ONsys.aud$ BYACCESS; 169
  170. Kết luận  Thực hiện và duy trì việc giám sát là một trong các bước quan trọng đảm bảo sự an toàn cho hệ thống  giám sát giúp phát hiện vấn đề chứ không giải quyết vấn đề  giám sát nhiều sẽ làm giảm hiệu suất của hệ thống nên cần có chính sách giám sát hợp lý:  Chọn lọc các đối tượng và sự kiện cần giám sát  Bảo vệ dữ liệu giám sát  Quản lý kích thước của audit log  Phân tích dữ liệu giám sát thường xuyên để sớm phát hiện vấn đề 170
  171. Thank you! 171