An toàn cơ sở dữ liệu - Chương 5. Kiểm toán cơ sở dữ liệu

pdf 61 trang phuongnguyen 3160
Bạn đang xem 20 trang mẫu của tài liệu "An toàn cơ sở dữ liệu - Chương 5. Kiểm toán cơ sở dữ liệu", để 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:

  • pdfan_toan_co_so_du_lieu_chuong_5_kiem_toan_co_so_du_lieu.pdf

Nội dung text: An toàn cơ sở dữ liệu - Chương 5. Kiểm toán cơ sở dữ liệu

  1. Chương 5. KIỂM TOÁN CƠ SỞ DỮ LIỆU GV: Nguyễn Phương Tâm
  2. MỤC TIÊU Trình bày các định nghĩa, vai trò của kiểm toán. Trình bày các loại kiểm toán thường dùng. Thực hành việc kiểm toán trên Oracle Trường CĐ CNTT HN Việt Hàn 2/61 Nguyễn Phương Tâm
  3. NỘI DUNG 5.1 Tổng quan về kiểm toán 5.2 Các loại kiểm toán 5.3 Thực hành kiểm toán trên Oracle Trường CĐ CNTT HN Việt Hàn 3/61 Nguyễn Phương Tâm
  4. 5.1 TỔNG QUAN VỀ KIỂM TOÁN 5.1.1 Các định nghĩa 5.1.2 Vai trò của kiểm toán Trường CĐ CNTT HN Việt Hàn 4/61 Nguyễn Phương Tâm
  5. 5.1.1 CÁC ĐỊNH NGHĨA Kiểm toán (auditing) là hoạt động giám sát và ghi lại được dựa trên các hoạt động cá nhân như thực hiện câu lệnh SQL, hay dựa trên sự kết hợp các yếu tố bao gồm tên, ứng dụng, thời gian, Các chính sách bảo mật có thể dẫn đến việc kiểm toán khi những phần tử cụ thể trong CSDL bị truy cập hay thay thế. Trường CĐ CNTT HN Việt Hàn 5/61 Nguyễn Phương Tâm
  6. 5.1.1 CÁC ĐỊNH NGHĨA Sổ kiểm toán (audit log) là tài liệu chứa tất cả các hoạt động đang được kiểm toán được sắp xếp theo thứ tự thời gian. Mục đích kiểm toán (audit objectives) là tập hợp những quy tắc doanh nghiệp, điều khiển hệ thống, quy tắc chính phủ, hoặc chính sách bảo mật. Kiểm toán viên (auditor) là người được phép thực hiện công việc kiểm toán. Thủ tục kiểm toán (audit procedure) là tập hợp các câu lệnh của tiến trình kiểm toán. Trường CĐ CNTT HN Việt Hàn 6/61 Nguyễn Phương Tâm
  7. 5.1.1 CÁC ĐỊNH NGHĨA Báo cáo kiểm toán (audit report) là tài liệu mà chứa quá trình tìm kiếm kiểm toán (the audit finding). Vệt kiểm toán (audit trail) là bản ghi của sự thay đổi tài liệu, thay đổi dữ liệu, những hoạt động hệ thống, hoặc những sự kiện thao tác. Dữ liệu kiểm toán (data audit) là bản ghi theo thời gian của dữ liệu thay đổi được lưu trữ trong tập tin log hoặc đối tượng bảng CSDL Kiểm toán CSDL (database auditing) là bản ghi theo thời gian của các hoạt động CSDL Trường CĐ CNTT HN Việt Hàn 7/61 Nguyễn Phương Tâm
  8. 5.1.1 CÁC ĐỊNH NGHĨA Kiểm toán nội bộ (internal auditing) là kiểm tra những hoạt động được quản lý bởi thành viên có quyền của tổ chức kiểm toán Kiểm toán mở rộng (external auditing) là kiểm tra, xác minh, và xác nhận tính hợp lý của tài liệu, tiến trình, thủ tục, hoặc các hoạt động được quản lý bởi thành viên có quyền bên ngoài tổ chức đang được kiểm toán Trường CĐ CNTT HN Việt Hàn 8/61 Nguyễn Phương Tâm
  9. 5.1.1 CÁC ĐỊNH NGHĨA Kiểm toán được sử dụng để: . 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 dung cụ thể nào đó. . Đ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. Trường CĐ CNTT HN Việt Hàn 9/61 Nguyễn Phương Tâm
  10. 5.1.1 CÁC ĐỊNH NGHĨA Kiểm toán được sử dụng để: . 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 đó. . 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 user cùng truy cập vào thời điểm cực đỉnh. Trường CĐ CNTT HN Việt Hàn 10/61 Nguyễn Phương Tâm
  11. 5.1.2 VAI TRÒ CỦA KIỂM TOÁN  Kiểm toán là một chức năng (cả kiểm toán trong và ngoài) đóng vai trò trung tâm trong việc bảo đảm quy tắc.  Mục đích của kiểm toán là xem xét và đánh giá tính sẵn sàng, tính bảo mật và tính chính trực thông qua việc trả lời những câu hỏi như: . Hệ thống máy tính có sẵn sàng cho hoạt động tại mọi thời điểm? . Liệu môi trường cơ sở dữ liệu có phải chỉ những người có thẩm quyền mới được sử dụng không? . Liệu môi trường cơ sở dữ liệu đã cung cấp thông tin chính xác, trung thực và kịp thời không? Trường CĐ CNTT HN Việt Hàn 11/61 Nguyễn Phương Tâm
  12. 5.1.2 VAI TRÒ CỦA KIỂM TOÁN Vai trò của kiểm toán được xem là một phần của chính sách an ninh. Không có chính sách an ninh nào mà không cần kiểm toán. Điều này không chỉ đơn thuần là một sản phẩm tự nhiên của con người, mà còn là hiệu quả của sự ức chế. Báo cáo kiểm toán và kết quả kiểm toán là công cụ quan trọng trong việc phát hiện vấn đề và sửa chữa chúng. Trường CĐ CNTT HN Việt Hàn 12/61 Nguyễn Phương Tâm
  13. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.1 Kiểm toán đăng nhập cơ sở dữ liệu Loại kiểm toán đầu tiên yêu cầu trong hầu hết các môi trường là một vệt kiểm toán đầy đủ của bất cứ ai đã đăng nhập vào cơ sở dữ liệu. Ghi lại hai sự kiện cho loại kiểm toán này là: một sự kiện cho việc đăng nhập và một sự kiện cho việc đăng xuất. Đối với mỗi sự kiện như vậy, bạn cần phải lưu ít nhất là tên đăng nhập và thời gian đăng nhập cho sự kiện này. Trường CĐ CNTT HN Việt Hàn 13/61 Nguyễn Phương Tâm
  14. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.1 Kiểm toán đăng nhập cơ sở dữ liệu Ngoài hai sự kiện, bạn cũng nên ghi lại tất cả các cố gắng đăng nhập thất bại. Trong thực tế, sự kiện đăng nhập thất bại có lẽ quan trọng hơn đăng nhập thành công từ một điểm bảo mật. Sự đăng nhập không thành công không chỉ ghi lại cho các mục đích tuân thủ và kiểm toán; chúng thường được sử dụng làm cơ sở cho các cảnh báo và thậm chí là khóa tài khoản. Trường CĐ CNTT HN Việt Hàn 14/61 Nguyễn Phương Tâm
  15. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.1 Kiểm toán đăng nhập cơ sở dữ liệu Quá nhiều lần đăng nhập không thành công chắc chắn là một báo cáo bảo mật cần quan tâm, và nhiều người xem xét các phân tích về những lần cố gắng đăng nhập thất bại dựa trên các phương diện sau đây: . Tên người sử dụng. . IP của khách hàng từ nơi kết nối không thành công. . Chương trình nguồn. . Thời gian trong ngày. Trường CĐ CNTT HN Việt Hàn 15/61 Nguyễn Phương Tâm
  16. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.1 Kiểm toán đăng nhập cơ sở dữ liệu Hoạt động đăng nhập và đăng xuất có thể được kiểm toán bằng cách sử dụng các tính năng cơ sở dữ liệu hoặc sử dụng một giải pháp bảo mật cơ sở dữ liệu bên ngoài. Tất cả các nhà cung cấp cơ sở dữ liệu hỗ trợ chức năng kiểm toán cơ bản này, và bởi vì số lượng những sự kiện này là khá nhỏ và ít có bất lợi trong việc thực hiện cơ sở dữ liệu ở mức độ kiểm toán này. Trường CĐ CNTT HN Việt Hàn 16/61 Nguyễn Phương Tâm
  17. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.1 Kiểm toán đăng nhập cơ sở dữ liệu Tạo Trigger để thực hiện kiểm toán đăng nhập Đầu tiên, tạo một bảng, nơi lưu trữ các thông tin: create table login_day date, user_login_audit login_time varchar2(10), ( logout_day date, user_id varchar2(30), logout_time session_id number(8), varchar2(10) host varchar2(30), ); Trường CĐ CNTT HN Việt Hàn 17/61 Nguyễn Phương Tâm
  18. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.1 Kiểm toán đăng nhập cơ sở dữ liệu Tiếp theo, tạo ra trigger để khởi tạo khi đăng nhập mới: create or replace trigger user_login_audit_trigger AFTER LOGON ON DATABASE BEGIN insert into user_login_audit values( user, sys_context('USERENV','SESSIONID'), sys_context('USERENV','HOST'), sysdate, to_char(sysdate, 'hh24:mi:ss'), null, null ); COMMIT; Trường CĐ CNTTEND; HN Việt Hàn Nguyễn Phương Tâm 18/61
  19. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.1 Kiểm toán đăng nhập cơ sở dữ liệu  Ngày và giờ đăng xuất được lưu trữ khi sử dụng trigger khởi tạo khi người sử dụng đăng xuất: create or replace trigger user_logout_audit_trigger BEFORE LOGOFF ON DATABASE BEGIN logout day update user_login_audit set logout_day = sysdate Where sys_context('USERENV','SESSIONID')=session_id; Trường CĐ CNTT HN Việt Hàn 19/61 Nguyễn Phương Tâm
  20. 5.2 CÁC LOẠI KIỂM TOÁN logout time update user_login_audit set logout_time = to_char(sysdate, 'hh24:mi:ss') where sys_context('USERENV','SESSIONID')=session_id; COMMIT; END; Trường CĐ CNTT HN Việt Hàn 20/61 Nguyễn Phương Tâm
  21. 5.2 CÁC LOẠI KIỂM TOÁN Thực hiện cảnh báo hoặc khóa tài khoản dựa trên đăng nhập không thành công yêu cầu hỗ trợ từ nhà cung cấp cơ sở dữ liệu hoặc giải pháp bảo mật cơ sở dữ liệu. Nếu sử dụng cơ sở dữ liệu để tạo ra các dấu vết kiểm toán cho đăng nhập/đăng xuất và nhà cung cấp cơ sở dữ liệu thực hiện khả năng khóa tài khoản, sau đó bạn có thể thiết lập khả năng trong môi trường cơ sở dữ liệu của bạn. Trường CĐ CNTT HN Việt Hàn 21/61 Nguyễn Phương Tâm
  22. 5.2 CÁC LOẠI KIỂM TOÁN Khi sử dụng một hệ thống an ninh bên ngoài, ta có thể sử dụng tường lửa SQL mà sẽ chặn bất cứ kết nối bằng cách sử dụng tên đăng nhập sau khi một số lượng nhất định cố gắng đăng nhập thất bại. Trong trường hợp này, cơ sở dữ liệu thậm chí sẽ không có được kết nối bởi vì nó sẽ bị từ chối ở cấp tường lửa. Trường CĐ CNTT HN Việt Hàn 22/61 Nguyễn Phương Tâm
  23. 5.2 CÁC LOẠI KIỂM TOÁN Một tùy chọn khác là sử dụng các thủ tục cơ sở dữ liệu, như trong hình 5.2. Trường CĐ CNTT HN Việt Hàn 23/61 Nguyễn Phương Tâm
  24. 5.2 CÁC LOẠI KIỂM TOÁN  Ngoài việc tạo ra một vệt kiểm toán, thông tin đăng nhập có thể được dùng để tạo ra một đường cơ sở (baseline) có thể giúp bạn trong việc xác định dị thường.  Một đường cơ sở cho hoạt động đăng nhập người sử dụng là một ánh xạ của hành vi đăng nhập “bình thường”. Đường cơ sở được xây dựng bởi danh sách tất cả các kết hợp, phân loại có thể xảy ra.  Có thể phân loại theo địa điểm đăng nhập mạng, tên người sử dụng, các chương trình mã nguồn, và thời gian trong ngày, đường cơ sở có thể tương tự như sau: user1 192.168.1.168 JDBC 24Hrs. user2 192.168.X.X Excel Normal Business Hours (9-5) user3 10.10.10.x isql Weekends Trường CĐ CNTT HN Việt Hàn 24/61 Nguyễn Phương Tâm
  25. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.2 Kiểm toán nguồn sử dụng cơ sở dữ liệu  Liên quan đến kiểm toán hoạt động đăng nhập là kiểm toán thông tin nguồn của client.  Bao gồm: . Kiểm toán nút mạng được kết nối với cơ sở dữ liệu . Kiểm toán ứng dụng đang được sử dụng để truy cập vào cơ sở dữ liệu.  Thông tin này là một trong những giá trị thường nhận được khi kiểm toán các kết nối cơ sở dữ liệu, nó thường quan trọng khi thông tin này ở mức độ gọi lệnh SQL. Trường CĐ CNTT HN Việt Hàn 25/61 Nguyễn Phương Tâm
  26. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.2 Kiểm toán nguồn sử dụng cơ sở dữ liệu  Chương trình nguồn thường là dữ liệu mà bạn nên thu thập cho mỗi truy vấn và các hoạt động trên cơ sở dữ liệu mà bạn muốn giữ lại trong các vệt kiểm toán, đặc biệt là nếu địa chỉ IP duy nhất xác định một người sử dụng.  Nếu kiến trúc dựa trên mô hình client/server, thì nguồn địa chỉ IP thường xác định một người sử dụng duy nhất, việc theo dõi và báo cáo về địa chỉ IP cho mỗi SQL gọi là tốt khi báo cáo mà trên đó người sử dụng cuối cùng đã thực hiện và xem dữ liệu của mình – đó là một vệt kiểm toán có giá trị.  Nếu sử dụng một kiến trúc máy chủ ứng dụng, thì địa chỉ IP sẽ không giúp xác định và báo cáo về việc người sử dụng cuối và bạn sẽ phải thực hiện bằng cách khác. Trường CĐ CNTT HN Việt Hàn 26/61 Nguyễn Phương Tâm
  27. 5.2 CÁC LOẠI KIỂM TOÁN Hình 5.3 Các vệt kiểm toán Trường CĐ CNTT HN Việt Hàn 27/61 Nguyễn Phương Tâm
  28. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.3 Kiểm toán việc sử dụng cơ sở dữ liệu ngoài giờ làm việc  Một đề tài liên quan đến việc kiểm toán của đăng nhập cơ sở dữ liệu là một hoạt động kiểm toán đang được thực hiện ngoài giờ làm việc bình thường. Đây là một yêu cầu trực quan và một việc thường được yêu cầu từ doanh nghiệp.  Yêu cầu trực quan của kiểm toán sử dụng cơ sở dữ liệu ngoài giờ làm việc bình thường là cần thiết vì các hoạt động thực hiện vào giờ này thường nghi ngờ và có thể là kết quả của một người sử dụng đang cố gắng truy cập trái phép hoặc sửa đổi dữ liệu. Trường CĐ CNTT HN Việt Hàn 28/61 Nguyễn Phương Tâm
  29. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.3 Kiểm toán việc sử dụng cơ sở dữ liệu ngoài giờ làm việc Tuy nhiên, một hacker giỏi thường sẽ cố gắng đăng nhập các cơ sở dữ liệu trong một thời gian “ngụy trang”. Việc cố gắng truy cập trái phép sẽ tốt hơn khi có nhiều “nhiễu” trong lúc thực hiện. Nhưng các hacker ít tinh vi thường thực hiện vào ban đêm hoặc lúc sáng sớm vì có ít người ở công ty. Trường CĐ CNTT HN Việt Hàn 29/61 Nguyễn Phương Tâm
  30. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.3 Kiểm toán việc sử dụng cơ sở dữ liệu ngoài giờ làm việc  Khi bạn kiểm toán hoạt động ngoài giờ, thường là không đủ để theo dõi khi đăng nhập và đăng xuất chỉ xảy ra ngoài giờ. Nói chung, bạn cũng mong muốn nhận được những hoạt động được thực hiện, thường ở mức câu lệnh SQL. Nếu đăng nhập như vậy là nghi ngờ, điều quan trọng là để nắm bắt những gì họ đã sử dụng trong cơ sở dữ liệu.  Có một vết kiểm toán đầy đủ tất cả các hoạt động đó đã được thực hiện bởi người sử dụng bất kỳ bên ngoài giờ làm việc bình thường là bởi vì thường thu nhập được nhiều hơn khi thực hiện và sẽ đáp ứng các yêu cầu tuân thủ theo quy định nội bộ. Trường CĐ CNTT HN Việt Hàn 30/61 Nguyễn Phương Tâm
  31. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.3 Kiểm toán việc sử dụng cơ sở dữ liệu ngoài giờ làm việc  Vết kiểm toán ngoài giờ là có ý nghĩa, ở một mức độ kỹ thuật, và phải rõ ràng về định nghĩa, vì hầu hết các môi trường cơ sở dữ liệu môi trường làm việc 24 giờ trong 7 ngày, và bạn không muốn tạo ra báo động sai bất cứ khi nào một kịch bản ETL thực hiện upload dữ liệu lớn ở bên ngoài giờ làm việc bình thường.  Trọng điểm để thực hiện tốt các vệt kiểm toán này không phải là bao gồm các hoạt động mà luôn được lập biểu để chạy các hoạt động ngoài giờ là một phần của vết kiểm toán này. Trường CĐ CNTT HN Việt Hàn 31/61 Nguyễn Phương Tâm
  32. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.3 Kiểm toán việc sử dụng cơ sở dữ liệu ngoài giờ làm việc  Một cách tiếp cận để lọc ra các hoạt động bình thường xảy ra ở bên ngoài giờ bình thường là sử dụng một đường cơ sở.  Ví dụ đường cơ bản truy cập cơ sở dữ liệu như sau: user1 192.168.1.168 SQLLoader 2am-4am user2 192.168.1.168 ETL 12am-6am  Khi thực hiện kiểm toán ngoài giờ nên loại trừ bất kỳ hoạt động được thực hiện bởi các ứng dụng này, bằng cách sử dụng những tên đăng nhập, và đến từ các địa chỉ IP trên. Trường CĐ CNTT HN Việt Hàn 32/61 Nguyễn Phương Tâm
  33. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.3 Kiểm toán việc sử dụng cơ sở dữ liệu ngoài giờ làm việc  Kiểm toán chỉ có những phân kỳ từ đường cơ sở giúp làm giảm kích thước của vệt kiểm toán khi kiểm tra, bởi vì hoạt động sẽ được ghi nhận là chỉ những hoạt động đang xảy ra bên ngoài của các chuẩn. Trường CĐ CNTT HN Việt Hàn 33/61 Nguyễn Phương Tâm
  34. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.4 Kiểm toán hoạt động câu lệnh DDL Kiểm toán thay đổi trên lược đồ, hay cụ thể hơn, kiểm toán hoạt động câu lệnh DDL là quan trọng và đã trở thành một trong những vệt kiểm toán được thực thi nhiều nhất. Điều này có lẽ vì kiểm toán thay đổi trên lược đồ là quan trọng từ quan điểm bảo mật, từ quan điểm tuân thủ (compliance), và từ một quan điểm quản lý cấu hình và quy trình. Trường CĐ CNTT HN Việt Hàn 34/61 Nguyễn Phương Tâm
  35. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.4 Kiểm toán hoạt động câu lệnh DDL  Từ quan điểm bảo mật, câu lệnh DDL là những lệnh có khả năng gây tổn hại nhất đang tồn tại và chắc chắn có thể được sử dụng bởi kẻ tấn công để thỏa hiệp với bất kỳ hệ thống nào. Thậm chí ăn cắp thông tin thường liên quan đến các lệnh DDL (ví dụ, thông qua việc tạo ra thêm một bảng thì dữ liệu có thể được sao chép trước khi khai thác).  Từ một quan điểm tuân thủ, nhiều quy định yêu cầu bạn phải kiểm toán bất kỳ sửa đổi nào của cấu trúc dữ liệu như bảng biểu và khung nhìn. Một số yêu cầu về HIPAA, ví dụ, có thể trực tiếp như là một kiểm toán cần phải thay đổi lược đồ. Trường CĐ CNTT HN Việt Hàn 35/61 Nguyễn Phương Tâm
  36. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.4 Kiểm toán hoạt động câu lệnh DDL  Quy định các yêu cầu để kiểm toán thay đổi lược đồ là không cần thiết bởi vì lý do bảo mật. Đôi khi cần là để tránh sai sót và để khám phá những vấn đề một cách nhanh chóng.  Việc tuân thủ yêu cầu của kiểm toán thay đổi lược đồ thường tương tự như các yêu cầu được định nghĩa như một phần của quản lý cấu hình và quản trị IP.  Thay đổi trên lược đồ cần phải được kiểm toán và lưu để tham khảo trong tương lai như là một cách để xác định và nhanh chóng giải quyết các lỗi có thể thỏa hiệp dữ liệu hoặc có thể gây ra các dữ liệu sai lệch Trường CĐ CNTT HN Việt Hàn 36/61 Nguyễn Phương Tâm
  37. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.4 Kiểm toán hoạt động câu lệnh DDL  Trong trường hợp khác, kiểm toán hoạt động câu lệnh DDL được thực hiện để loại bỏ các lỗi mà nhà phát triển và DBA có thể đưa ra và có thể có hiệu quả. Kiểm soát chặt chẽ hơn trong quá trình quản lý cấu hình là quan trọng và là một trong các trình điều khiển chính của kiểm toán DDL. Trường CĐ CNTT HN Việt Hàn 37/61 Nguyễn Phương Tâm
  38. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.4 Kiểm toán hoạt động câu lệnh DDL  Có ba phương pháp chính để kiểm toán thay đổi lược đồ 1. Sử dụng tính năng kiểm toán cơ sở dữ liệu 2. Sử dụng hệ thống kiểm toán bên ngoài 3. So sánh nhanh các lược đồ Trường CĐ CNTT HN Việt Hàn 38/61 Nguyễn Phương Tâm
  39. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.4 Kiểm toán hoạt động câu lệnh DDL  Hầu hết các môi trường cơ sở dữ liệu sẽ cho phép bạn kiểm toán hoạt động DDL bằng cách sử dụng cơ chế kiểm toán, giám sát sự kiện, ghi vết, và vv. Trường CĐ CNTT HN Việt Hàn 39/61 Nguyễn Phương Tâm
  40. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.4 Kiểm toán hoạt động câu lệnh DDL  Ví dụ, Oracle cho phép bạn sử dụng trigger hệ thống dựa trên câu lệnh DDL create table ddl_audit_trail ( user_id varchar2(30), ddl_date date, event_type varchar2(30), object_type varchar2(30), owner varchar2(30), object_name varchar2(30) ); Trường CĐ CNTT HN Việt Hàn 40/61 Nguyễn Phương Tâm
  41. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.4 Kiểm toán hoạt động câu lệnh DDL  Ví dụ, Oracle cho phép bạn sử dụng trigger hệ thống dựa trên câu lệnh DDL create or replace trigger DDL_trigger VALUES AFTER DDL ON DATABASE ( BEGIN ora_login_user, insert into ddl_audit_trail ( sysdate, user_id, ora_sysevent, ddl_date, ora_dict_obj_type, event_type, ora_dict_obj_owner, object_type, ora_dict_obj_name owner, ); object_name End; ) Trường CĐ CNTT HN Việt Hàn 41/61 Nguyễn Phương Tâm
  42. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.4 Kiểm toán hoạt động câu lệnh DDL  Cách thứ hai là sử dụng công cụ kiểm toán bên ngoài. Những công cụ này không chỉ tập hợp các thông tin trên danh nghĩa của bạn, mà còn cung cấp các công cụ cho việc báo cáo, cảnh báo, và các chức năng nâng cao như tạo đường cơ sở.  Cách thứ ba là so sánh nhanh các lược đồ, nó không cung cấp cho bạn một vệt kiểm toán chi tiết của hoạt động DDL và là kém hai loại khác nhưng tương đối dễ dàng thực hiện và có thể được sử dụng như là một giải pháp tạm thời cho đến khi bạn thực hiện một cơ sở hạ tầng kiểm toán sự thật. Trường CĐ CNTT HN Việt Hàn 42/61 Nguyễn Phương Tâm
  43. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.5 Kiểm toán lỗi cơ sở dữ liệu  Kiểm toán lỗi được trả về từ cơ sở dữ liệu là rất quan trọng và là một trong những vệt kiểm toán đầu tiên bạn nên thực hiện.  Điều này đặc biệt đúng, theo quan điểm bảo mật, và bạn đã thấy nhiều trường hợp điều này là quan trọng. Ví dụ, khi tìm hiểu về cuộc tấn công SQL injection, một trong những điều bạn biết được là trong nhiều trường hợp kẻ tấn công sẽ nỗ lực thực hiện nhiều lần cho đến khi họ nhận được kết quả đúng. Trường CĐ CNTT HN Việt Hàn 43/61 Nguyễn Phương Tâm
  44. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.5 Kiểm toán lỗi cơ sở dữ liệu  Ví dụ được sử dụng là một tấn công dựa trên UNION (toán tử hợp), kẻ tấn công cần phải đoán đúng số cột. Cho đến khi họ nhận được số đúng, các cơ sở dữ liệu liên tục sẽ trả lại một mã lỗi nói rằng các cột được lựa chọn bởi hai câu SELECT không tương ứng. Nếu bạn ghi lại tất cả các lỗi, bạn có thể xác định tình trạng này và phản ứng.  Đăng nhập lỗi là một ví dụ khác về một lỗi cần phải ghi lại và theo dõi, thậm chí nếu bạn không kiểm toán đăng nhập vào cơ sở dữ liệu. Cuối cùng, bất kỳ một cố gắng thực hiện nào bị lỗi liên quan đến phân quyền là một cảnh báo cho một cuộc tấn công có thể được tiến hành. Trường CĐ CNTT HN Việt Hàn 44/61 Nguyễn Phương Tâm
  45. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.5 Kiểm toán lỗi cơ sở dữ liệu  Lỗi cũng rất quan trọng từ góc độ chất lượng, và điều này cũng phản ánh đến vấn đề tuân thủ. Việc ứng dụng sản phẩm phát sinh lỗi bởi vì thiếu xót về vấn đề kỹ thuật và ứng dụng nên phải được xác định và sửa chữa.  Ghi lại lỗi SQL thường là một cách đơn giản để xác định những vấn đề này.  Các lỗi có thể dẫn bạn theo hướng của các vấn đề có ảnh hưởng đến thời gian phúc đáp và tính sẵn sàng. Trường CĐ CNTT HN Việt Hàn 45/61 Nguyễn Phương Tâm
  46. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.5 Kiểm toán lỗi cơ sở dữ liệu  Kiểm toán lỗi chi tiết được hỗ trợ bởi một số các nhà cung cấp cơ sở dữ liệu, và bạn có thể tham khảo các tài liệu hướng dẫn về môi trường để thực hiện. Trong Oracle bạn có thể sử dụng lại trigger hệ thống: Trường CĐ CNTT HN Việt Hàn 46/61 Nguyễn Phương Tâm
  47. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.5 Kiểm toán lỗi cơ sở dữ liệu Tạo bảng ghicreate lỗi table error_audit ( user_id varchar2(30), session_id number(8), host varchar2(30), error_date date, error varchar2(100) ); Trường CĐ CNTT HN Việt Hàn 47/61 Nguyễn Phương Tâm
  48. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.5 Kiểm toán lỗi cơ sở dữ liệu Tạo các triggercreate để khởi or tạo replace khi lỗi xảy trigger ra audit_errors_trigger AFTER SERVERERROR ON DATABASE BEGIN insert into error_audit values( user, sys_context('USERENV','SESSIONID'), sys_context('USERENV','HOST'), sysdate, dbms_standard.server_error(1) ); COMMIT; END; Trường CĐ CNTT HN Việt Hàn 48/61 Nguyễn Phương Tâm
  49. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.5 Kiểm toán lỗi cơ sở dữ liệu  Trong SQL Server, bạn có thể sử dụng kiểm toán tính năng hoặc dò vết tính năng. Nếu bạn chọn sử dụng dấu vết, bạn cần thiết lập các sự kiện thích hợp có liên quan đến lỗi sử dụng sp_trace_event. Những sự kiện bao gồm các định danh được hiển thị trong bảng 5.1. Trường CĐ CNTT HN Việt Hàn 49/61 Nguyễn Phương Tâm
  50. Bảng 5.1 Các sự kiện xử lý lỗi Tên sự kiện Lớp sự kiện Mô tả 16 Attention Tập hợp tất cả các sự kiện quan tâm, như yêu cầu gián đoạn kết nối client, hoặc khi một kết nối client bị ngắt. 21 ErrorLog Sự kiện lỗi đã được ghi trong nhật ký lỗi. 22 EventLog Sự kiện khi đăng nhập nhật ký ứng dụng 33 Exception Ngoại lệ xuất hiện trên server. 67 Execution Bất kỳ cảnh báo nào đã xảy ra trong Warnings quá trình thực hiện của thủ tục lưu trữ và câu lệnh trên máy chủ. Trường CĐ CNTT HN Việt Hàn 50/61 Nguyễn Phương Tâm
  51. Bảng 5.1 Các sự kiện xử lý lỗi Tên sự kiện Lớp sự kiện Mô tả 55 Hash Warning Hoạt động của bảng băm có thể gặp cácvấn đề về lỗi 79 Missing Column Cột số liệu thống kê cho các Statistics truy vấn tối ưu thường không có sẵn. 80 Missing Join Predicate Thực hiện truy vấn không có vị từ kết nối. Điều này có thể làm cho câu truy vấn chạy rất lâu. 61 OLEDB Errors Lỗi OLE DB có thể xuất hiện. Trường CĐ CNTT HN Việt Hàn 51/61 Nguyễn Phương Tâm
  52. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.5 Kiểm toán lỗi cơ sở dữ liệu  Đường cơ sở là quan trọng nếu môi trường ứng dụng của bạn là không hoàn hảo. Không phải mọi cơ sở dữ liệu và ứng dụng là môi trường sạch, và trong hầu hết các môi trường một số ứng dụng tạo ra lỗi cơ sở dữ liệu ngay cả trong sản xuất.  Tuy nhiên, lỗi được tạo ra bởi các ứng dụng được lặp đi lặp lại: các lỗi tương tự xảy ra ở cùng một nơi bởi vì các lỗi thường là kết quả từ những sai xót kỹ thuật và không thay đổi.  Nếu lỗi bạn lỗi đường cơ sở và đột nhiên thấy xuất hiện từ nhiều nơi khác nhau hoặc bạn thấy mã lỗi hoàn toàn khác nhau, thì bạn nên điều tra những gì đang xảy ra. Trường CĐ CNTT HN Việt Hàn 52/61 Nguyễn Phương Tâm
  53. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.6 Kiểm toán hoạt động của câu lệnh DML  Kiểm toán hoạt động của câu lệnh DML là một yêu cầu phổ biến, đặc biệt là trong trường hợp như dự án Sarbanes-Oxley nơi mà tính chính xác của thông tin tài chính là sự kiện chính. Vệt kiểm toán thay đổi dữ liệu là phổ biến ở hầu hết các kiểm toán chính.  Một yêu cầu kiểm toán liên quan mà đôi khi được nhắc đến (mặc dù nó không phải là phổ biến như kiểm toán các hoạt động DML) liên quan đến việc ghi chép đầy đủ giá trị mới và cũ cho mỗi hoạt động DML. Trường CĐ CNTT HN Việt Hàn 53/61 Nguyễn Phương Tâm
  54. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.6 Kiểm toán hoạt động của câu lệnh DML  Vệt kiểm toán DML và ghi lại các giá trị mới và cũ là một loại kiểm toán quan trọng mà có lẽ bạn sẽ cần. Tuy nhiên, bạn phải cẩn thận với loại kiểm toán này và nhận ra rằng kiểm toán này nên được thực hiện có chọn lọc.  Trong một số trường hợp, người đang có quá vệt kiểm toán và để đơn giản nên thực hiện kiểm toán hoạt động DML. Trong khi đây là kỹ thuật có thể, số lượng dữ liệu có thể được tạo ra là rất lớn, và bạn nên chắc chắn rằng cơ sở hạ tầng kiểm toán của bạn có thể quản lý được, đặc biệt là khi bạn bao gồm giá trị mới và cũ. Trường CĐ CNTT HN Việt Hàn 54/61 Nguyễn Phương Tâm
  55. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.6 Kiểm toán hoạt động của câu lệnh DML  Ví dụ, giả sử bạn có 1.000.000 DML chuyển tác mỗi ngày, và giả định đơn giản là mỗi bản cập nhật một giá trị giao dịch duy nhất, và bạn có 100 bảng trong cơ sở dữ liệu với mỗi bảng có 10 giá trị có thể sẽ được cập nhật, và bạn bắt đầu ra với một cơ sở dữ liệu đó có 10.000 bản ghi trong mỗi bảng.  Mặc dù tính toán này là đơn giản và không chính xác, bạn không nên ngạc nhiên rằng nếu bạn ghi lại những giá trị cũ và mới, sau một năm cơ sở dữ liệu kiểm toán của bạn sẽ có hơn 35 lần so với các cơ sở dữ liệu của chính nó Trường CĐ CNTT HN Việt Hàn 55/61 Nguyễn Phương Tâm
  56. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.6 Kiểm toán hoạt động của câu lệnh DML  Vì vậy, khi bạn xem vệt kiểm toán DML, bạn nên chọn có chọn lọc các đối tượng và lệnh để kiểm toán. Ví dụ, bạn có thể quyết định tạo ra những vệt kiểm toán cho một tập hợp con của các bảng cơ sở dữ liệu, cho một nhóm nhỏ hoặc đăng nhập tài khoản, vv. Thậm chí có chọn lọc hơn là lựa chọn những bảng và cột để duy trì các giá trị cũ và mới. Trường CĐ CNTT HN Việt Hàn 56/61 Nguyễn Phương Tâm
  57. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.6 Kiểm toán hoạt động của câu lệnh DML  Kiểm toán DML cũng được hỗ trợ thông qua ba phương pháp chính, nhưng việc so sánh hàng ngày (hoặc định kỳ) không phải là một lựa chọn trong trường hợp này. Ba phương pháp này là sử dụng khả năng của cơ sở dữ liệu, sử dụng một hệ thống kiểm toán bên ngoài, hoặc sử dụng trigger. Trường CĐ CNTT HN Việt Hàn 57/61 Nguyễn Phương Tâm
  58. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.6 Kiểm toán hoạt động của câu lệnh DML  Tất cả các cơ sở dữ liệu cung cấp cho bạn một số cách để thực hiện các vệt kiểm toán cho các hoạt động DML. Trong Oracle, ví dụ, bạn có thể sử dụng công cụ log miner được dựa trên redo log. Bởi vì ghi lại tất cả các hoạt động DML (bao gồm cả giá trị cũ và mới), log miner có thể giải nén thông tin này và làm cho nó sẵn sàng phục vụ bạn. Trong SQL Server, bạn có thể sử dụng sự kiện dò vết DOP: Trường CĐ CNTT HN Việt Hàn 58/61 Nguyễn Phương Tâm
  59. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.6 Kiểm toán hoạt động của câu lệnh DML  Bảng 5.2 Bảng sự kiện DOP Tên sự kiện Lớp sự kiện Mô tả 28 DOP Event Xảy ra trước khi một câu lệnh SELECT, INSERT, hoặc UPDATE được thi hành. Trường CĐ CNTT HN Việt Hàn 59/61 Nguyễn Phương Tâm
  60. 5.2 CÁC LOẠI KIỂM TOÁN 5.2.6 Kiểm toán hoạt động của câu lệnh DML  Đối với cách thứ hai, hệ thống kiểm toán cơ sở dữ liệu bên ngoài hỗ trợ kiểm toán DML dựa trên bất kỳ tiêu chí nào được lọc, bao gồm các đối tượng cơ sở dữ liệu, người sử dụng, ứng dụng, vv. Họ cũng giúp đỡ trong việc thu giữ và nén thông tin này và làm cho nó sẵn sàng để báo cáo, ngay cả khi số lượng dữ liệu rất lớn.  Cuối cùng, cách thứ ba đơn giản là sử dụng các tùy chọn trigger. Nếu bạn không phải là một phần của một dự án kiểm toán mở rộng và chỉ cần tạo một vệt kiểm toán DML cho một vài đối tượng, thêm vào đó gây nên ghi các thông tin vào một bảng kiểm toán cụ thể có thể là điều đơn giản nhất và nhanh nhất để giúp bạn chuyển sang bước tiếp theo của bạn dự án. Trường CĐ CNTT HN Việt Hàn 60/61 Nguyễn Phương Tâm
  61. 5.3 THỰC HÀNH KiỂM TOÁN TRÊN ORACLE Thực hiện qua các bước: . Bước 1: Tạo bộ kích khởi DDL với Oracle khởi động sau sự kiện đăng nhập và đăng xuất trong Oracle. . Bước 2: Kiểm toán mã lệnh: kiểm toán hoạt động của câu lệnh DDL, DML, . Bước 3: Tìm hiểu tập tin Alert Log trong Oracle . Bước 4: Đánh giá dựa vào kết quả đạt được. Trường CĐ CNTT HN Việt Hàn 61/61 Nguyễn Phương Tâm