Tài liệu An ninh bảo mật - Chương 5; Kiểm toán cơ sở dữ liệu: GV: Nguyễn Phương TâmChương 5. KIỂM TOÁN CƠ SỞ DỮ LIỆ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 OracleMỤC TIÊUDate Phương Tâm5.1 Tổng quan về kiểm toán5.2 Các loại kiểm toán5.3 Thực hành kiểm toán trên OracleNỘI DUNGDate Phương Tâm5.1 TỔNG QUAN VỀ KIỂM TOÁN5.1.1 Các định nghĩa5.1.2 Vai trò của kiểm toánDate Phương Tâm5.1.1 CÁC ĐỊNH NGHĨAKiể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ế.Date Phương TâmSổ 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...
61 trang |
Chia sẻ: Khủng Long | Lượt xem: 1073 | Lượt tải: 4
Bạn đang xem trước 20 trang mẫu tài liệu An ninh bảo mật - 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
GV: Nguyễn Phương TâmChương 5. KIỂM TOÁN CƠ SỞ DỮ LIỆ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 OracleMỤC TIÊUDate Phương Tâm5.1 Tổng quan về kiểm toán5.2 Các loại kiểm toán5.3 Thực hành kiểm toán trên OracleNỘI DUNGDate Phương Tâm5.1 TỔNG QUAN VỀ KIỂM TOÁN5.1.1 Các định nghĩa5.1.2 Vai trò của kiểm toánDate Phương Tâm5.1.1 CÁC ĐỊNH NGHĨAKiể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ế.Date Phương TâmSổ 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.5.1.1 CÁC ĐỊNH NGHĨADate Phương TâmBá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 CSDL5.1.1 CÁC ĐỊNH NGHĨADate Phương TâmKiể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ánKiể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án5.1.1 CÁC ĐỊNH NGHĨADate Phương TâmKiể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.5.1.1 CÁC ĐỊNH NGHĨADate Phương TâmKiể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.5.1.1 CÁC ĐỊNH NGHĨADate Phương TâmKiể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?5.1.2 VAI TRÒ CỦA KIỂM TOÁNDate Phương TâmVai 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.5.1.2 VAI TRÒ CỦA KIỂM TOÁNDate Phương Tâm5.2.1 Kiểm toán đăng nhập cơ sở dữ liệuLoạ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.5.2 CÁC LOẠI KIỂM TOÁNDate Phương Tâm5.2.1 Kiểm toán đăng nhập cơ sở dữ liệuNgoà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.5.2 CÁC LOẠI KIỂM TOÁNDate Phương Tâm5.2.1 Kiểm toán đăng nhập cơ sở dữ liệuQuá 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.5.2 CÁC LOẠI KIỂM TOÁNDate Phương Tâm5.2.1 Kiểm toán đăng nhập cơ sở dữ liệuHoạ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.5.2 CÁC LOẠI KIỂM TOÁNDate Phương Tâm5.2.1 Kiểm toán đăng nhập cơ sở dữ liệuTạ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:5.2 CÁC LOẠI KIỂM TOÁNcreate table user_login_audit(user_id varchar2(30), session_id number(8), host varchar2(30), login_day date, login_time varchar2(10), logout_day date, logout_time varchar2(10));Date Phương Tâm5.2.1 Kiểm toán đăng nhập cơ sở dữ liệuTiếp theo, tạo ra trigger để khởi tạo khi đăng nhập mới:5.2 CÁC LOẠI KIỂM TOÁNcreate or replace trigger user_login_audit_triggerAFTER 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; END;Date Phương Tâm5.2.1 Kiểm toán đăng nhập cơ sở dữ liệuNgà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:5.2 CÁC LOẠI KIỂM TOÁNcreate or replace trigger user_logout_audit_triggerBEFORE LOGOFF ON DATABASE BEGIN-- logout day update user_login_auditset logout_day = sysdate Where sys_context('USERENV','SESSIONID')=session_id;Date Phương Tâm-- logout time updateuser_login_auditsetlogout_time = to_char(sysdate, 'hh24:mi:ss')wheresys_context('USERENV','SESSIONID')=session_id;COMMIT;END;5.2 CÁC LOẠI KIỂM TOÁNDate Phương Tâm5.2 CÁC LOẠI KIỂM TOÁNThự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. Date Phương Tâm5.2 CÁC LOẠI KIỂM TOÁNKhi 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. Date Phương Tâm5.2 CÁC LOẠI KIỂM TOÁNMộ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. Date Phương Tâm5.2 CÁC LOẠI KIỂM TOÁNNgoà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 WeekendsDate Phương Tâm5.2 CÁC LOẠI KIỂM TOÁN5.2.2 Kiểm toán nguồn sử dụng cơ sở dữ liệuLiê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. Date Phương Tâm5.2 CÁC LOẠI KIỂM TOÁN5.2.2 Kiểm toán nguồn sử dụng cơ sở dữ liệuChươ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.Date Phương Tâm5.2 CÁC LOẠI KIỂM TOÁNHình 5.3 Các vệt kiểm toánDate Phương Tâm5.2 CÁC LOẠI KIỂM TOÁN5.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. Date Phương Tâm5.2 CÁC LOẠI KIỂM TOÁN5.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. Date Phương Tâm5.2 CÁC LOẠI KIỂM TOÁN5.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ộ. Date Phương Tâm5.2 CÁC LOẠI KIỂM TOÁN5.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. Date Phương Tâm5.2 CÁC LOẠI KIỂM TOÁN5.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-6amKhi 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. Date Phương Tâm5.2 CÁC LOẠI KIỂM TOÁN5.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.Date Phương Tâm5.2 CÁC LOẠI KIỂM TOÁN5.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. Date Phương Tâm5.2 CÁC LOẠI KIỂM TOÁN5.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 đồ. Date Phương Tâm5.2 CÁC LOẠI KIỂM TOÁN5.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ệchDate Phương Tâm5.2 CÁC LOẠI KIỂM TOÁN5.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.Date Phương Tâm5.2 CÁC LOẠI KIỂM TOÁN5.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 đồDate Phương Tâm5.2 CÁC LOẠI KIỂM TOÁN5.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. Date Phương Tâm5.2 CÁC LOẠI KIỂM TOÁN5.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 DDLcreate 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));Date Phương Tâm5.2 CÁC LOẠI KIỂM TOÁN5.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 DDLcreate or replace triggerDDL_triggerAFTER DDL ON DATABASE BEGINinsert into ddl_audit_trail (user_id,ddl_date, event_type, object_type, owner, object_name)VALUES(ora_login_user, sysdate, ora_sysevent, ora_dict_obj_type, ora_dict_obj_owner, ora_dict_obj_name);End;Date Phương Tâm5.2 CÁC LOẠI KIỂM TOÁN5.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. Date Phương Tâm5.2 CÁC LOẠI KIỂM TOÁN5.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. Date Phương Tâm5.2 CÁC LOẠI KIỂM TOÁN5.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. Date Phương Tâm5.2 CÁC LOẠI KIỂM TOÁN5.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. Date Phương Tâm5.2 CÁC LOẠI KIỂM TOÁN5.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:Date Phương Tâm5.2 CÁC LOẠI KIỂM TOÁN5.2.5 Kiểm toán lỗi cơ sở dữ liệu Tạo bảng ghi lỗicreate table error_audit( user_id varchar2(30), session_id number(8), host varchar2(30), error_date date, error varchar2(100));Date Phương Tâm5.2 CÁC LOẠI KIỂM TOÁN5.2.5 Kiểm toán lỗi cơ sở dữ liệu Tạo các trigger để khởi tạo khi lỗi xảy ra create or replace trigger audit_errors_triggerAFTER 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;Date Phương Tâm5.2 CÁC LOẠI KIỂM TOÁN5.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.Date Phương TâmBảng 5.1 Các sự kiện xử lý lỗiTên sự kiệnLớp sự kiệnMô tả16AttentionTậ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.21ErrorLogSự kiện lỗi đã được ghi trong nhật ký lỗi.22EventLogSự kiện khi đăng nhập nhật ký ứng dụng33ExceptionNgoại lệ xuất hiện trên server.67Execution WarningsBất kỳ cảnh báo nào đã xảy ra trong 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ủ.Date Phương TâmBảng 5.1 Các sự kiện xử lý lỗiTên sự kiệnLớp sự kiệnMô tả55Hash WarningHoạt động của bảng băm có thể gặp cácvấn đề về lỗi79Missing Column StatisticsCột số liệu thống kê cho các truy vấn tối ưu thường không có sẵn.80Missing Join PredicateThự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.61OLEDB ErrorsLỗi OLE DB có thể xuất hiện.Date Phương Tâm5.2 CÁC LOẠI KIỂM TOÁN5.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.Date Phương Tâm5.2 CÁC LOẠI KIỂM TOÁN5.2.6 Kiểm toán hoạt động của câu lệnh DMLKiể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. Date Phương Tâm5.2 CÁC LOẠI KIỂM TOÁN5.2.6 Kiểm toán hoạt động của câu lệnh DMLVệ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ũ. Date Phương Tâm5.2 CÁC LOẠI KIỂM TOÁN5.2.6 Kiểm toán hoạt động của câu lệnh DMLVí 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ó.. Date Phương Tâm5.2 CÁC LOẠI KIỂM TOÁN5.2.6 Kiểm toán hoạt động của câu lệnh DMLVì 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. Date Phương Tâm5.2 CÁC LOẠI KIỂM TOÁN5.2.6 Kiểm toán hoạt động của câu lệnh DMLKiể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.Date Phương Tâm5.2 CÁC LOẠI KIỂM TOÁN5.2.6 Kiểm toán hoạt động của câu lệnh DMLTấ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:Date Phương Tâm5.2 CÁC LOẠI KIỂM TOÁN5.2.6 Kiểm toán hoạt động của câu lệnh DMLBảng 5.2 Bảng sự kiện DOPTên sự kiệnLớp sự kiệnMô tả28DOP EventXảy ra trước khi một câu lệnh SELECT, INSERT, hoặc UPDATE được thi hành. Date Phương Tâm5.2 CÁC LOẠI KIỂM TOÁN5.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.Date Phương Tâm5.3 THỰC HÀNH KiỂM TOÁN TRÊN ORACLEThự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 OracleBước 4: Đánh giá dựa vào kết quả đạt được.Date Phương Tâm
Các file đính kèm theo tài liệu này:
- tailieu.ppt