Cơ chế kiểm toán - An toàn cơ sở dữ liệu - Học Viện Kỹ Thuật Mật Mã

Cơ chế kiểm toán, Tổng quan về kiểm toán trong CSDL, 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à ghi lại những gì xảy ra đối với hệ thống công nghệ thông tin. Tài liệu giúp bạn tham khảo và đạp kết quả cao. Mời bạn đọc đón xem!

2.1.3.
  
2.1.3.1.
      
2.1.3.1.1.
   
            
           
            
        
         
            
      
            
             
              
      
2.1.3.1.2.
   
            
        
       
    

         
  
           
          
          
          
   
              
        
           
           
        
             
 
          
    

          
             
   
2.3.1.1.3.
 
     
 


        

  
 


           

              
             


       
 
         

  
           
    
            
   
           


             
             
            
 
          
          
            
       
             
             

2.3.1.1.4.
     
       
-

-
      
-
   
-
     
     
-
          
-
     
           
-
          
-
           
  
            
  
-
          
   
-
        
         
 
     
-
       
-
               
  
         
-
           
 
             

  
-
     
-
            
      
         
-
          
       

-
             
          

      
-
        
 
-
           
     
2.3.1.1.5.
      
        
         
      
   
             
         
        
 
        
  



      
     
      
             
       
         
            
       
            
2.1.3.2.
   
2.1.3.2.1.
 
  
           
 
          
           

           
 
           
            
           
            
             
   
             
          
              

           
  


          
 
         
   



       
    

    
    

     
    

     
  

       
    

      
Bảng : Các giá trị của tham số
2.1.3.2.2.
    
     
            
   
           
       
      
     
            
  
    
           

             
     
          
             
        
           
            
      
   
       
    
      
       
             
             
           
            

    






         
--Thực hiện kiểm toán u lệnh SELECT trên bảng Employee:
   
--Tạo view Emp_Name và kiểm toán câu lệnh SELECT
   
    
  
--Thc hiện câu lệnh truy vấn trên view Emp_Name
  
          
           
2.1.3.2.3.
    
 
   
         

          



 


  
       
      
  
           
    
   
          
 
     
             
 
            
  
     
           
 
              
          
  
         
   
           
       
    
      

      
       
           

            
     
      
             
 
2.1.3.2.4.
    
    
            
           
              
         
 
            
          
          
                
              
              
        
   
               
   
            


              
               
              
             
        
   
               
             
          
              
             
       
Khóa tài khoản sử dụng một cảnh báo và thủ tục CSDL
user1
4am
user2
12am-6am
192.168.1.168
SQLLoader
192.168.1.168
ETL
      
            
             
             
            
   
         
            
             
              
               
         
    
         
          
            
           
             
        
Hình : Mt ng cơ sở truy cập CSDL
            
          
      
            

            
              
    
    
            
           
             


         
  
  
             
            
         
            
              
   
         
             
  
   
              
               
               
         
             
              
            
        
          
              
       
    

        



           
     
      
    
              
            
   
             
            
           
         
            

                 
       


      
             
         
    
          
              
         
          
          
           
            
  
            
             
         
    
 

       

   
               
                

              
                
         
     
               
      
           
              
          
 
   

       
         
    
   
| 1/14

Preview text:

2.1.3. Cơ chế kiểm toán
2.1.3.1. Tổng quan về kiểm toán trong CSDL 2.1.3.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à
ghi lại những gì xảy ra đối với hệ thống công nghệ thông tin. Các thông tin
được ghi lại có thể là những thay đổi về trạng thái hoạt động của hệ thống
hay các tươ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ệnh SQL đượ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ên ngườ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 đổi những bất thường của hệ thống. 2.1.3.1.2.
Một số định nghĩa chung:
• 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 (The Audit Finding) ghi lại các kết quả kiểm toán đạt được.
• Các bản ghi kiểm toán (Audit Records) 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ờ - 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ểm toá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, 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.
2.3.1.1.3. Mục đích và vai trò của kiểm toán 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 hoạt động tại mọi thời điểm hay không? Việc truy cập
CSDL chỉ dành cho người có thẩm quyền? CSDL có cung cấp thông tin
chính xác, trung thực và kịp thời hay chưa?.... 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:
• 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 dụng 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ợp pháp đang thao tác với CSDL.
• Điều tra hoạt động đáng ngờ: Chẳng hạn, nếu một người dùng trái
phép thực hiện hành động xóa dữ liệu từ một bảng nào đó, thì các DBA
có thể kiểm toán tất cả các kết nối CSDL, việc xóa bỏ thành cô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, bao nhiêu I/O được thực hiện, hoặc làm thế nào nhiều người
dùng đồng thời kết nối trong thời gian cao điểm.
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ọ.
2.3.1.1.4. Các đối tượng cần kiểm toán
• 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
• Kiểm toán 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ìn nào kết nối CSDL
• Kiểm toán 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ờ
• Kiểm toán 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
- Phương pháp: dùng chức năng built-in của DBMS, sử dụng hệ thống
kiểm toán bên ngoài, so sánh snapshot của lược đồ (shema) theo thời gian
• 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
- 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
• Kiểm toán 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
• Kiểm toán 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
- Ngăn chặn tấn công vượt quyền
- Các thông tin cần chú ý như: thay đổi quyền người dùng, thay đổi
password, thêm/xóa User trên User/ Login/ Role
• Kiểm toán 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 kiểm toán vì dữ liệu kiểm toán sẽ
rất lớn (ví dụ: CSDL có 100 bảng với khoảng 1 triệu transaction/ngày…)
• Kiểm toán 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 kiểm toán bên ngoài khác
2.3.1.1.5. Các cơ chế kiểm toán trong 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à ghi
chúng vào tập tin vận hành hệ thống kiểm toán.
- Kiểm toán chuẩn (Standard Database Auditing): Đây là thiết lập
kiểm toán ở cấp độ hệ thống bằng cách sử dụng những tham số
AUDIT_TRAIL. Sau khi khích hoạt tính năng này, cần lựa chọn các đối
tượng và đặc quyền muốn kiểm toán.
- 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ựa trê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ực hiệ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.1.3.2. Kiểm toán trong Oracle 2.1.3.2.1. Tổng quan
Oracle cho phép tùy chọn kiểm toán được tập trung hoặc rộng rãi, cho phép kiểm toán:
• 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ác ngườ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).
Các bản ghi kiểm toán (Audit record) bao gồm các thông tin như hoạt
động đã được kiểm toán, người dùng thực hiện hoạt động và ngày giờ của
hoạt động. Các bản ghi kiểm toán có thể được lưu trữ trong một bảng từ
điển dữ liệu, gọi là dấu vết kiểm toán cơ sở dữ liệu (Database audit trail) ,
hoặc trong các tệp hệ điều hành, gọi là dấu vết kiểm toán hệ điều hành
(Operating system audit trail).
Bảng SYS.AUD$ trong Oracle là một bảng được sử dụng để lưu trữ các bản
ghi kiểm toán (audit records) trong cơ sở dữ liệu. Để truy cập và xem
thông tin từ bảng, ta có thể dùng các view được định nghĩa sẵn như là DBA_AUDIT_TRAIL.
Tham số khởi tạo AUDIT_TRAIL trong Oracle Database được sử dụng để
bật hoặc tăt tính năng ghi lại các hoạt động kiểm toán (audit) trong cơ sở dữ liệu.
Các giá trị của tham số khởi tạo AUDIT_TRAIL trong init.ora: Giá trị tham số Ý nghĩa
Lưu trữ các bản ghi kiểm toán trong DB (default)
bảng từ điển dữ liệu SYS.AUD$
Giống DB và lưu thêm cột SQL DB_EXTEND
Binding và SQL text vào SYS.AUD$
Lưu trữ các bản ghi kiểm toán dưới XML
dạng tệp XML trên hệ điều hành. XML_EXTENDED
Giống XML và lưu thêm SQL bind và cột SQL Text
Lưu trữ các bản ghi kiểm toán trong OS
các tệp văn bản trên hệ điều hành. NONE
Không lưu trữ bản ghi kiểm toán
Bảng : Các giá trị của tham số 2.1.3.2.2.
Các loại kiểm toán trong Oracle
Statement Auditing (Kiểm toán câu lệnh)
Là kiểm toán những lệnh hoặc nhóm câu lệnh trên từng đối tượng. Các câu lệnh chia thành 2 loại:
- DDL (Data Definition Language): ví dụ AUDIT TABLE sẽ kiểm toán mọi
lệnh CREATE và DROP liên quan đến Table
- DML (Data Manipulation Language): AUDIT SELECT TABLE sẽ
kiểm toán mọi lệnh SELECT … FROM Table/View
Có thể kiểm toán 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.
Privilege auditing (Kiểm toán quyền)
Kiểm toán quyền là việc kiểm toán các câu lệnh sử dụng quyền hệ thống
AUDIT SELECT ANY TABLE sẽ kiểm toán mọi lệnh được tạo ra từ người
dùng sử dụng quyền SELECT ANY TABLE
Trường hợp cả statement và privilege cùng được kiểm toán thì chỉ 1
audit record được tạo ra. Vì vậy, kiểm toán quyền không xảy ra nếu hành
động đã được cho pháp bởi các quyền sở hữu.
Kiểm toán quyền có độ tập trung hơn kiểm toán câu lệnh vì mỗi tùy
chọn kiểm toán quyền chỉ kiểm toán liên quan đến câu lệnh cụ thể, không
phải là danh sách các câu lệnh liên quan:
- Statement auditing: AUDIT TABLE
CREATE, ALTER, DROP (TABLE) đều được kiểm toán
- Privilege auditing: AUDIT CREATE TABLE
Chỉ kiểm toán câu lệnh CREATE (TABLE)
Schema Object Auditing (Kiểm toán đối tượng lược đồ)
Kiểm toán đối tượng lược đồ có thể kiểm toán toàn bộ các câu lệnh
SELECT và DML được cho pháp bởi quyền đối tượng lược đồ (schema object
privileges) như câu lệnh SELECT hoặc DELETE trên một bảng cụ thể. Các
câu lệnh GRANT và REVOKE điều khiển các quyền này cũng được kiểm toán.
Các đối tượng của Schema: - Table - View - Procedure - Trigger - Function - Package
Privilege auditing có độ ưu tiên thấp hơn Schema object auditing Ví dụ:
--Thực hiện kiểm toán câu lệnh SELECT trên bảng Employee: AUDIT SELECT ON Employee;
--Tạo view Emp_Name và kiểm toán câu lệnh SELECT CREATE VIEW Emp_Name AS
SELECT EName FROM Employee; AUDIT SELECT ON Emp_Name;
--Thực hiện câu lệnh truy vấn trên view Emp_Name
SELECT * FROM Employee_Name;
Kết quả sẽ tạo ra hai bản ghi kiểm toán: một cho câu truy vấn trên
View Emp_Name, một cho câu truy vấn trên bảng cơ sở Employee. 2.1.3.2.3.
Các công cụ kiểm toán trong Oracle Oracle Audit Dùng câu lệnh AUDIT
Có 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. Kiểm toán bằng 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ệ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 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
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ểm toán cơ bản.
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ất bại...).
Dạng audit này có ích cho việc phát hiện những hành vi đáng nghi ngờ, (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ông
biết user nào, có URL mà không biết chương trình nào).
Kiểm toán mịn (Fine-grained auditing- FGA)
Fine-Grained Auditing do package DBMS_FGA quản lý Kiểm
toán những truy cập dựa theo nội dung
Kiểm toán được cấp đến hàng và cột
Các câu lệnh INSERT, UPDATE, DELETE thường được kiểm toán. Câu lệnh
SELECT ít được kiểm toán hơn cho chi phí cao (được sử dụng thường xuyên)
FGA cung cấp 1 giao diện cho phép kiểm toán lệnh SELECT. Khi có 1 record
trong tập records trả về thỏa điều kiện cho trước thì 1 record audit mới được tạo ra 2.1.3.2.4.
Một số dạng kiểm toán cơ bản
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ôi
trường nhằm tạo vết kiểm toán đầy đủ xem bất kỳ ai đã đăng nhập/đăng
xuất vào CSDL. Công tác 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 việc đăng xuất. Đối với mỗi sự kiện, 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. Ngoài
ra, có thể lưu thêm một số thông tin bổ sung bao 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 đăng nhậ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òn quan 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ểm toá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.
Hoạt động đăng nhập và đăng xuất có thể được kiểm tra bằng các tí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ường lử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ới CSDL và gọi
đến thủ tục khóa tài khoản. Hệ thống này thường thông báo cho 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.
Khóa tài khoản sử dụng một cảnh báo và thủ tục CSDL
Kiểm toán khóa nguồn sử dụng CSDL
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 máy khách, bao gồm: Kiểm toán nút mạng được kết nối tới
CSDL và kiểm toán ứng dụng đang được sử dụng để truy cập vào CSDL.
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 CSDL.
Kiểm toán việc sử dụng CSDL ngoài giờ làm việc
Một loại kiểm toán khác liên quan đến kiểm toán đăng nhập CSDL là
hoạt động kiểm toán được thực hiện ngoài giờ làm việc bình thường. Đây
là một yêu cầu đáng quan tâm và thường được yêu cầu từ TC/DN. Bởi các
hoạt động thực hiện ngoài giờ thường đáng ngờ và có thể là kết quả của việc
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.
Nói chung, DBA luôn mong muốn nhận được những hoạt động người
dùng đã thực hiện, thường ở mức câu lệnh SQL. Nếu hoạt động đăng nhập
như vậy là đáng ngờ, thì việc năm băt những gì họ đã sử dụng trong CSDL
là điều quan trọng. Do đó vết kiểm toán ngoài giờ rất có ý nghĩa.
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ờ làm việc là sử dụng một dòng cơ sở. user1 192.168.1.168 SQLLoader 2am- 4am user2 192.168.1.168 ETL 12am-6am
Hình : Một dòng cơ sở truy cập CSDL
Khi thực hiện kiểm toán ngoài giờ, DBA nên loại trừ bất kỳ hoạt
động do các ứng dụng thực hiện, bằng cách sử dụng các tên đăng nhập và
đến từ các địa chỉ IP trên.
Kiểm toán chỉ thực hiện khi có sự khác biệt từ dò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 kiểm toán sẽ chỉ
ghi nhận những hoạt động đang xảy ra bên ngoài các chuẩn (đã được định nghĩa trong dòng cơ sở).
Kiểm toán hoạt động câu lệnh DDL
Ngôn ngữ định nghĩa dữ liệu (Data Definition Language – 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ác bả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, RENAME.
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. Do xuất phát từ
ba quan điểm: an toàn; tuân thủ; quản lý cấu hình và quy trình.
Từ quan điểm an toàn, các lệnh DDL là những lệnh có khả năng gây
tổn hại và chăc chăn được sử dụng bởi kẻ tấn công để xâm nhập bất kỳ hệ
thống nào. Thậm chí, việc lấy căp thông tin thường liên quan đến các câu
lệnh DDL (chẳng hạn thông qua việc tạo thêm một bảng thì dữ liệu có thể
được sao chép trước khi khai thác).
Từ quan điểm tuân thủ, nhiều quy định yêu cầu phải kiểm toán bất kỳ
sửa đổi nào của cấu trúc dữ liệu như các bảng biểu và khung nhìn. Việc tuân
thủ yêu cầu của kiểm toán DDL thường tương tự như các yêu cầu được định
nghĩa trong việc quản lý cấu hình và quản trị IP.
Mọi thao tác thay đổi trên lược đồ cần phải được kiểm toán và lưu trữ để
DBA có thể xem xét tham khảo trong tương lai. Đây là một cách để có thể
nhanh chóng xác định và giải quyết các lỗi có thể làm tổn hại dữ liệu
hoặc có thể gây ra các dữ liệu sai lệch.
Mặt 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 đưa ra. Việc kiểm soát chặt chẽ trong
quá trình quản lý cấu hình là rất quan trọng.
Có ba phương pháp chính để kiểm toán hoạt động câu lệnh bao gồm: Sử
dụng tính năng kiểm toán CSDL; Sử dụng hệ thống kiểm toán bên ngoài và
so sánh nhanh các lược đồ.
Hầu hết các môi trường CSDL sẽ cho phép 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. Đây là một loại
kiểm toán rất quan trọng cần được thực hiện trong các hệ thống CSDL. Kiểm toán lỗi CSDL
Các kiểm toán lỗi do CSDL trả lại là một trong những vết kiểm toán
đầu tiên nên được thực hiện. Điều này đặc biệt đúng theo quan điểm an
toàn. Chẳng hạn, khi tìm hiểu về tấn công SQL injection, trong nhiều
trường hợp kẻ tấn công sẽ nỗ lực thực hiện nhiều lần
dựa trên thông báo lỗi của hệ thống cho đến khi họ nhận được kết quả mong đợi.
Bên cạnh đó, các lỗi do CSDL hiển thị có thể giúp DBA tìm ra các vấn đề
ảnh hưởng đến thời gian phản hồi và tính sẵn sàng. Kiểm toán lỗi chi tiết
được hỗ trợ bởi một số các nhà cung cấp CSDL và DBA có thể tham khảo
các tài liệu hướng dẫn về môi trường để thực hiện.
Kiểm toán hoạt động câu lệnh DML
Ngôn ngữ thao tác dữ liệu (Data Manipulation Language - DML) là một
ngôn ngữ khác của SQL giúp thao tác chi tiết hơn trên các đối tượng CSDL cụ
thể, bao gồm các lệnh như: SELECT, INSERT, UPDATE, DELETE.
Kiểm toán hoạt động câu lệnh DML là một yêu cầu phổ biến. Tuy nhiên,
cần phải cẩn thận với loại kiểm toán này và thực hiện có chọn lọc. Bởi đây
là một kỹ thuật mà số lượng dữ liệu có thể được tạo ra rất lớn, nên cần chăc
chăn rằng cơ sở hạ tầng kiểm toán có thể quản lý được, đặc biệt là khi nó
gồm cả giá trị mới và cũ.
Giả định có 1.000.000 giao dịch DML mỗi ngày, mỗi giao dịch cập nhật
một giá trị giao dịch duy nhất. CSDL có 100 bảng với mỗi bảng có 10 giá
trị được cập nhật. Việc kiểm toán sẽ có kết quả là có một CSDL kiểm toán
với 10.000 bản ghi trong mỗi tháng.
Mặc dù t椃Ānh toán này là đơn giản và độ chính xác không cao, nhưng sẽ
không ngạc nhiên nếu kiểm toán ghi lại những giá trị cũ và mới, thì sau một
năm CSDL kiểm toán sẽ có dung lượng lớn hơn 35 lần so với các CSDL ban đầu.
Vì vậy, khi xem vết kiểm toán DML, DBA nên chọn lọc các đối tượng
và lệnh để kiểm toán. Ví dụ, 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ác bảng CSDL. Thậm chí, DBA nên chọn lọc các bảng
và cột để duy trì các giá trị cũ và mới, thay vì kiểm toán cho toàn bộ CSDL
hay toàn bộ một bảng nào đó.
Ngoài những loại kiểm toán cơ bản trên, còn có các dạng kiểm toán
CSDL khác như: Kiểm toán các thay đổi đối với các nguồn của thủ tục
lưu trữ và trigger; kiểm toán các thay đổi đối với các đặc quyền, định
nghĩa User/Login và các thuộc tính an toàn khác; kiểm toán việc tạo, thay
đổi và sử dụng các liên kết CSDL và sao lưu; kiểm toán những thay đổi đối
với dữ liệu nhạy cảm.