Dựa trên những bản ghi kiểm toán, quản trị viên cơ sở dữ liệu DBA sẽphát hiện kịp thời những tấn công hay lỗ hổng ảnh hưởng đến cơ sở dữ liệu, từ đó ngăn chặn hành vi phá hoại hay xâm ph
Trang 1HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA AN TOÀN THÔNG TIN
- -AN TOÀN CƠ SỞ DỮ LIỆU
TÌM HIỂU KIỂM TOÁN CSDL VÀ THỰC HIỆN TRÊN ORACLE
Ngành: An toàn thông tin
Mã số: ATCTHT10
Giảng Viên: TS Trần Thị Lượng
Nhóm sinh viên thực hiện: Nhóm 07
Vũ Thị Dịu: AT140408Nguyễn Thị Lan: AT140221Bùi Thị Thư Thư
Trần Thị Ngân
Hà Nội, tháng 12/2020
Trang 2MỤC LỤC
DANH MỤC TỪ VIẾT TẮT 3
DANH MỤC HÌNH VẼ 4
LỜI NÓI ĐẦU 5
CHƯƠNG 1.TỔNG QUAN VỀ KIỂM TOÁN CSDL 6
1.1 KHÁI NIỆM KIỂM TOÁN 6
1.2 MỘT SỐ ĐỊNH NGHĨA CHUNG TRONG KIỂM TOÁN CSDL 6
1.3 MỤC ĐÍCH VÀ VAI TRÒ CỦA KIỂM TOÁN 7
1.3.1 Mục đích 7
1.3.2 Vai trò 7
1.4 MỘT SỐ LƯU Ý TRONG KIỂM TOÁN 9
CHƯƠNG 2.KỸ THUẬT KIỂM TOÁN CSDL TRONG ORACLE 10
2.1 GIỚI THIỆU VỀ KIỂM TOÁN TRONG ORACLE 10
2.2 CÁC CƠ CHẾ KIỂM TOÁN CSDL 11
2.3 CÁC PHƯƠNG PHÁP KIỂM TOÁN TRONG ORACLE 11
2.3.1 Kiểm toán bằng application server log 11
2.3.2 Kiểm toán bằng trigger 12
2.3.3 Kiểm toán bằng câu lệnh 12
2.4 DANH MỤC KIỂM TOÁN CSDL 13
2.4.1 Kiểm toán đăng nhập/đăng xuất CSDL 13
2.4.2 Kiểm toán nguồn sử dụng cơ sở dữ liệu 15
2.4.3 Kiểm toán hoạt động câu lệnh DDL 15
2.4.4 Kiểm toán hoạt động câu lệnh DML 16
2.4.5 Kiểm toán sử dụng CSDL ngoài giờ làm việc 17
Trang 32.4.6 Kiểm toán lỗi CSDL 18
2.4.7 Một số loại kiểm toán CSDL khác 19
CHƯƠNG 3: THỰC NGHIỆM MỘT SỐ KỸ THUẬT KIỂM TOÁN CSDL TRONG ORACLE 20
3.1 KỊCH BẢN THỰC NGHIỆM 20
3.1.1 Kiểm toán đăng nhập, đăng xuất 20
3.1.2 Kiểm toán câu lệnh DDL 23
3.1.3 Kiểm toán câu lệnh DML 25
3.1.4 Kiểm tra lỗi trong CSDL 29
3.2 Đánh giá kết quả thực nghiệm 30
KẾT LUẬN 31
TÀI LIỆU THAM KHẢO 32
Trang 4DANH MỤC TỪ VIẾT TẮT
DBA Quản trị viên cơ dữ liệu (Database
AdministratorDDL Ngôn ngữ định nghĩa dữ liệu (Data
Definition LanguageDML Ngôn ngữ thao tác dữ liệu (Data
Manipulation Language
Trang 5DANH MỤC HÌNH VẼ
Hình 2-1: Khóa tài khoản sử dụng một cảnh báo và thủ tục CSDL 14
Hình 2-2: Một dòng cơ sở truy cập CSDL 17
Hình 3-1:User1 và User2 sau khi được gán quyền thành công 20
Hình 3-2: Bảng lưu kết quả kiểm toán 20
Hình 3-3:Ttrigger kiểm toán đăng nhập tạo thành công 21
Hình 3-4: Trigger kiểm toán đăng xuất tạo thành công 22
Hình 3-5: Thực hiện hành động đăng nhập, đăng xuất với 2 user 22
Hình 3-6: Kết quả kiểm toán sau khi thực hiện đăng nhập, đăng xuất 23
Hình 3-7: Bảng ddl_audit lưu kết quả kiểm toán 23
Hình 3-8: Trigger kiểm toán hoạt động câu lệnh DDL tạo thành công 24
Hình 3-9: Thực hiện một số câu lệnh create, alter 24
Trang 6LỜI NÓI ĐẦU
Với nhiều tổ chức, cơ sở dữ liệu (CSDL) là nơi chứa toàn bộ thông tinbao gồm cả những thông tin nhạy cảm, bí mật Đây là một trong những mụctiêu mà các tin tăc thường xuyên nhắm tới Bất kì sự mất mát nào liên quanđến cơ sở dữ liệu cũng sẽ gây ra những tổn thất nặng nề, nó quyết định đến sựthành bại của một tổ chức
Vì thế, bất kỳ hoạt động nào liên quan đến CSDL phải được ghi lại, đặcbiệt các câu truy vấn có liên quan đến dữ liệu nhạy cảm, cáo giao dịch bấtthường nhằm đảm tính bảo mật, an toàn và sẵn sàng của thông tin Một trongnhững phương pháp giúp quản trị viên theo dõi, đảm bảo an toàn cho cơ sở dữliệu hiệu quả là kiểm toán Đây được coi như hàng rào cuối cùng để bảo vệcuối cùng cho cơ sở dữ liệu khỏi sự xâm phạm bất hợp pháp
Xuất phát từ thực tế đó, nhóm chúng em đã chọn đề tài “ Tìm hiểu vềkiểm toán cơ sở dữ liệu và thực hiện trên Oracle” Mục đích của đề tài tìmhiểu mục đích cũng như vai trò của việc kiểm toán, cũng như các cơ chế,phương pháp và các loại kiểm toán cơ sở dữ liệu và tiến hành thực nghiêmtrên hệ quản trị cơ sở dữ liệu Oracle
Báo cáo bao gồm 3 chương như sau:
Chương 1: Tổng quan về kiểm toán CSDL
Chương 2: Kỹ thuật kiểm toán CSDL trong Oracle
Chương 3: Thực nghiệm một số kỹ thuật kiểm toán CSDL trên Oracle
Do thời gian thực hiện đề tài còn nhiều hạn chế, báo cáo của nhómkhông thể những sai sót trong quá trình thực hiện Chúng em rất mong nhậnđược sự góp ý chân thành của cô để đề tài được hoàn thiện hơn
Chúng em xin chân thành cảm ơn!
Trang 7CHƯƠNG 1.TỔNG QUAN VỀ KIỂM TOÁN CSDL
1.1 KHÁI NIỆM KIỂM TOÁN
Kiểm toán (auditing) được hiểu là toàn bộ các hoạt động giám sát và ghilại những gì xảy ra đối với hệ thống công nghệ thông tin Các thông tin đượcghi lại có thể là những thay đổi về trạng thái hoạt động của hệ thống hay cáctương tác qua lại giữa hệ thống và người dùng
Nó có thể dựa trên các hành động cá nhân, chẳng hạn như kiểu câu lệnhSQL được thực thi hoặc dựa trên sự kết hợp của các yếu tố có thể bao gồm tênngười dùng, ứng dụng, thời gian,
Dựa trên những bản ghi kiểm toán, quản trị viên cơ sở dữ liệu (DBA) sẽphát hiện kịp thời những tấn công hay lỗ hổng ảnh hưởng đến cơ sở dữ liệu, từ
đó ngăn chặn hành vi phá hoại hay xâm phạm của tin tặc, nhanh chóng sửa đổinhững bất thường của hệ thống
1.2 MỘT SỐ ĐỊNH NGHĨA CHUNG TRONG KIỂM TOÁN CSDL KIỂM TOÁN CSDL (Database Auditing) : là việc theo dõi và ghi lại
các hành động của người dùng thực hiện trên CSDL Người quản trị CSDLthường cài đặt tính năng kiểm toán vì mục đích an toàn, nhằm đảm bảo nhữngngười không có thẩm quyền không được phép truy cập vào dữ liệu
NHẬT KÝ 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 và được sắp xếp theo thứ tự thời gian
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
BÁO CÁO KIỂM TOÁN (Audit Report): là tài liệu chứa quá trình tìm
kiếm kiểm toán, ghi lại các kết quả kiếm toán đạt được
Trang 8BẢN GHI KIỂM TOÁN (Audit Record): bao gồm thông tin về các hoạt
động đã được kiểm toán, người sử dụng thực hiện các hoạt động, ngày giờ vàthời gian hoạt động
VẾT KIỂM TOÁN (Audit Trail): là bản ghi lưu lại 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 (Audit Data): 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 NỘI BỘ (Internal Auditing): là kiểm toán thực hiện 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ểmtoán
KIỂM TOÁN MỞ RỘNG (External Auditing): là kiểm toán thực hiện
kiểm tra, xác minh 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ểmtoán
1.3 MỤC ĐÍCH VÀ VAI TRÒ CỦA KIỂM TOÁN
1.3.1 Mục đích.
Mục đích của kiếm toán là xem xét, đánh giá tính sẵn sàng, an toàn
và chính xá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 mọi hoạt động tại mọi thờiđiểm hay không?
Việc truy cập dữ liệu chỉ dành cho người có thẩm quyền haykhông?
CSDL có cung cấp thông tin chính xác, trung thực, kịp thời haychưa?
1.3.2 Vai trò.
Vai trò của kiểm toán được xem là một phần của chính sách an toàn:
Trang 9 Theo dõi các hành động hiện tại trong một lược đồ, bảng, hàng,cột hoặc một nội dung dữ liệu cụ thể.
Giám sát hoạt động CSDL như phát hiện người sử dụng bất hợppháp đang thao tác hoặc sửa đổi với CSDL 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
Điều tra hoạt động đáng ngờ: Chẳng hạn, nếu một người dùng tráiphép thực hiện hành động xóa dữ liệu từ bảng nào đó, thì cácDBA có thể kiếm toán tất cả các kết nối CSDL, việc xóa bỏ thànhcông và không thành công của các bảng trong CSDL để có thểphát hiện ra hành vi trên
Theo dõi và thu thập dữ liệu về các hoạt động CSDL cụ thể.Chẳng hạn, DBA có thể thu thập số liệu thống kê về những bảngđang được cập nhật, hoặc làm thế nào nhiều người dùng đồngthời kết nối trong thời gian cao điểm.Từ đó, có những biện pháp
để cải thiện hiệu suất
Kiểm toán để thỏa mãn các yêu cầu pháp lý: thể hiện trách nhiệmvới dữ liệu của khách hàng Kết quả của quá trình kiểm toán là sựbắt buộc người dùng phải có trách nhiệm về hành động mà họthực hiện, bằng cách theo dõi hành vi của họ
Trang 101.4 MỘT SỐ LƯU Ý TRONG KIỂM TOÁN
Kiểm toán tại mọi thời điểm từ khi hệ thống bắt đầu hoạt động.Nên sửdụng kết hợp kiểm toán bên trong và kiểm toán bên ngoài
Kiểm toán một cách có chọn lọc những gì cần thiết, bởi việc kiểm toán cóthể làm giảm hiệu suất của hệ thống
Những hoạt động cần phải kiếm toán:
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 application trigger và data trigger
Thay đổi quyền và thay đổi thông tin 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ệ…
Thông tin nhật ký kiểm toán cần được lưu trữ và bảo mật.Ngoài ra, nên tựđộng hóa và giám sát hoạt động kiểm toán
Trang 11
2 CHƯƠNG 2.KỸ THUẬT KIỂM TOÁN CSDL TRONG ORACLE 2.1 GIỚI THIỆU VỀ KIỂM TOÁN TRONG ORACLE
Oracle kiểm toán các người dùng:
Kiểm toán các truy cập thành công hoặc không thành công
Kiểm toán 1 người dùng, 1 nhóm người dùng hoặc tất cả cácngười dùng
Kiểm toán ở cấp phiên làm việc (session level) hoặc cấp truy cập(access level)
Kiểm toán sẽ làm giảm hiệu suất của hệ thống Chỉ nên kiểm toánnhững gì cần thiết.Dữ liệu kiểm toán nên được ghi trên file của hệđiều hành (OS) để tiết kiếm tài nguyên của CSDL
Yêu cầu của kiểm toán 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ườiquả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ạiDBMS (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
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
Trang 122.2 CÁC CƠ CHẾ KIỂM TOÁN CSDL
Có 5 cơ chế kiểm toán cơ bản trong CSDL bao gồm:
Kiểm toán bắt buộc (Mandatory Auditing): Là các hoạt động kiểm
toán mặc định Dù CSDL kiểm toán có được kích hoạt hay không, thì
hệ thống vẫn kiểm tra một số hoạt động liên quan đến CSDL và ghichúng vào tập tin vận hành hệ thống kiểm toán
soát toàn diện và đầy đủ nhất trong cơ sở dữ liệu Oracle Nó cho phépkiểm soát hành động (Action), loại hành động, đối tượng, đặc quyền(Privilege), user truy cập…
Có 2 giai đoạn liên quan đến sử dụng Standard Audit
Kích hoạt cơ chế kiểm soát (Audit)
Xác định các chuyên mục (category) cần kiểm soát, tức là xácđịnh các hành động nào sẽ được ghi lại dấu vết (Tạo ra AuditTrail)
Kiểm toán dựa trên giá trị (Value-based Auditing): Là cơ chế
kiểm toán dựa trên kiểm toán chuẩn, tuy nhiên nó còn kiểm toán dựatrên giá trị thực tế đã được đưa vào, cập nhật, hoặc bị xóa
Kiểm toán mịn (Fine-grained auditing- FGA): cơ chế này được
mở rộng từ kiểm toán chuẩn, ghi lại các câu lệnh SQL đã được thựchiện thay vì chỉ những sự kiện đã xảy ra
Kiểm toán DBA: là cơ chế thực hiện kiểm toán riêng cho các
DBA
2.3 CÁC PHƯƠNG PHÁP KIỂM TOÁN TRONG ORACLE
2.3.1 Kiểm toán bằng application server log
Nhật ký truy cập trên application server hay web server là dạng kiểmtoán cơ bản
Trang 13 Có nhiều thông tin chứa trong các tập tin nhật ký: các tài nguyênđược truy cập, ai đã truy cập, khi nào, như thế nào (thành công, thấtbại ).
Dạng audit này có ích cho việc phát hiện những hành vi đáng nghingờ, (ví dụ tấn công DoS)
Nhược điểm: thông tin không trực tiếp (chỉ có IP address mà khôngbiết user nào, có URL mà không biết chương trình nào)
2.3.2 Kiểm toán bằng trigger
Trigger được tự động thực thi khi có các sự kiện hệ thống xảy ra.Chẳnghạn như :
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ện 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
Trang 14Có thể kiểm toán tất cả các quyền gán cho người dùng hoặc role trong CSDL
Bao gồm: các truy cập đọc, ghi và xóa trên các bảng dữ liệu
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
2.4 DANH MỤC KIỂM TOÁN CSDL
2.4.1 Kiểm toán đăng nhập/đăng xuất CSDL
Đây là loại kiểm toán đầu tiên được yêu cầu trong hầu hêt các môitrường nhằm tạo vết kiểm toán đầy đủ xem bất kỳ ai đã đăng nhập/đăngxuất vào CSDL Quá trình này ghi lại hai sự kiện: một sự kiện cho việcđăng nhập và một sự kiện cho lần đăng xuất Đối với mỗi sự kiện nhưvậy, DBA cần phải lưu ít nhất hai tham số là tên đăng nhập và thời gianđăng nhập/đăng xuất Ngoài ra, có thể lưu thêm một số thông tin bổ sungbao gồm: địa chỉ IP của máy khởi tạo kết nối và chương trình được sửdụng để bắt đầu kết nối
Ngoài hai sự kiện trên, DBA cũng cần ghi lại tất cả các lần đăngnhập thất bại Trên thực tế, các sự kiện đăng nhập không thành công cònquan trọng hơn sự kiện đăng nhập thành công từ quan điểm an toàn Việcđăng nhập không thành công không chỉ được ghi lại nhằm mục đích kiểmtoán và tuân thủ mà còn được sử dụng làm cơ sở cho các cảnh báo vàthậm chí là việc khóa tài khoản sau này Đăng nhập không thành công quá
số lần cho phép chắc chắn là một báo cáo bảo mật thú vị mà nhiều ngườimuốn xem xét sự cố của các lần đăng nhập này dựa trên các yếu tố sau:
Tên người dùng
Trang 15 Địa chỉ IP máy khách kết nối không thành công
Chương trình được sử dụng kết nối
Thời gian kết nối không thành công
Hoạt động đăng nhập và đăng xuất có thể được kiểm tra bằng cáctính năng cơ sở dữ liệu hoặc bằng cách sử dụng giải pháp bảo mật cơ sở
dữ liệu bên ngoài Khi sử dụng một hệ thống an toàn bên ngoài, DBA cóthể sử dụng tường lửa để chặn bất kỳ kết nối nào sau khi phát hiện có một
số lần cố gắng đăng nhập thất bại Trong trường hợp này, CSDL thậm chícòn không nhận được các nỗ lực kết nối vì đã bị từ chối ở mức tườnglửa.Một tùy chọn khác là sử dụng các thủ tục CSDL Hệ thống kiểm toán
sẽ tạo ra một cảnh báo khi số lần đăng nhập thất bại vượt quá ngưỡng nhấtđịnh Cảnh báo được gửi đến một hệ thống có trách nhiệm kết nối vớiCSDL và gọi đến thủ tục khóa tài khoản Hệ thống này thường thông báocho DBA rằng hành động này đã được thực hiện để tiến hành một cuộcđiều tra và tài khoản có thể bị trả lại nếu cần
Hình 2-1: Khóa tài khoản sử dụng một cảnh báo và thủ tục CSDL
Trang 162.4.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 tinnguồn của máy khách Nó bao gồm: kiểm toán nút mạng được kết nối tớiCSDL(chẳng hạn, sử dụng địa chỉ IP hoặc máy chủ) và kiểm toán ứngdụng đang được sử dụng để truy cập vào CSDL Thông tin này là mộttrong những giá trị thường nhận được khi kiểm toán các kết nối CSDL.Nếu kiến trúc của bạn dựa trên mô hình client/server, thì nguồn địachỉ IP thường xác định một người sử dụng duy nhất, việc theo dõi và báocá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 thao tác và xem dữ liệu nào –đó là một vếtkiể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ônggiú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ựchiện một vài kỹ thuật phù hợp
2.4.3 Kiểm toán hoạt động câu lệnh DDL
Ngôn ngữ định nghĩa dữ liệu (DDL) là một ngôn ngữ của SQL giúpđịnh nghĩa cấu trúc của CSDL, bao gồm định nghĩa các hàng, các cột, cácbảng dữ liệu, các chỉ số và một số thuộc tính khác liên quan đến cơ sở dữliệu DDL thực thi các câu lệnh như: CREATE, ALTER, DROP,
Kiểm toán thay đổi lược đồ hay kiểm toán hoạt động câu lệnh DDL
là 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ẽbởi xuất phát từ ba quan điểm: bảo mật, tuân thủ, quản lý cấu hình và quytrình
Từ quan điểm bảo mật, các câu lệnh DDL là những lệnh có khả nănggây tổn hại nhất và chắn chắn có thể được sử dụng bởi kẻ tấn công đểxâm nhập bất kỳ hệ thống nào