1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tiểu luận kiểm toán trong fine grained auditing

33 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 33
Dung lượng 628,87 KB

Cấu trúc

  • CHƯƠNG 1. GIỚI THIỆU VỀ ORACLE 10G VÀ KIỂM TOÁN TRONG (5)
    • 1.1. ORACLE 10G (5)
      • 1.1.1. Ưu điểm của Oracle (5)
      • 1.1.2. Tính năng cải tiến của Oracle 10 G ( oracle 10 Grid Computing) (6)
    • 1.2. KIỂM TOÁN TRONG ORACLE 10G (7)
      • 1.2.1. Tại sao phải kiểm toán (7)
      • 1.2.2. Khái quát về kiểm toán (10)
  • CHƯƠNG 2. FINE-GRAINED AUDITING (0)
    • 2.1. Các tính năng vượt trội của kiểm toán FGA (14)
    • 2.2. Các thủ tục trong gói DBMS_FGA (18)
      • 2.2.1. DBMS_FGA.ADD_POLICY Procedure (18)
      • 2.2.2. Các thủ tục khác chỉ trạng thái (Status) (23)
      • 2.2.3. FGA Guidelines (Hướng dẫn sử dụng FGA) (24)
  • CHƯƠNG 3. KỊCH BẢN DEMO (25)
    • 3.1. Cài đặt servervà các tham số cần thiết (25)
    • 3.2. Thực hiện kiểm toán FGA (Fine Grained Auditing) (27)
    • 3.3. Kết quả đạt được (31)
  • KẾT LUẬN (32)
  • TÀI LIỆU THAM KHẢO (33)

Nội dung

Một số tấn công phổ biến hiện nay: Tấn công SQL injection SQL injection là một kĩ thuật cho phép những kẻ tấn công lợi dụng lỗ hổng trong việc kiểm tra dữ liệu nhập trong các ứng dụng we

GIỚI THIỆU VỀ ORACLE 10G VÀ KIỂM TOÁN TRONG

ORACLE 10G

Oracle không chỉ nhắm tới những doanh nghiệp lớn mà còn nhắm tới những doanh nghiệp trung bình và cho cả những doanh nghiệp nhỏ.Cụ thể là Oracle Server có đủ các phiên bản thương mại từ Personal, Standard đến Enterprise (ngoài ra còn có Oracle lite)

Về phía các doanh nghiệp: Oracle tỏ ra rất có ưu điểm như tính bảo mật cao, tính an toàn dữ liệu cao, dễ dàng bảo trì-nâng cấp, cơ chế quyền hạn rỏ ràng, ổn định,

Oracle cũng không quá đắt, nếu doanh nghiệp đã từng mua lisence của MSSQLServer thì sẽ thấy giá của Oracle cũng không chênh lệch là bao thậm chí còn rẻ hơn, nhưng lợi ích có được lại rất lớn

Về phía những nhà phát triển: Oracle cũng tỏ ra rất có ưu điểm như dễ cài đặt, dễ triển khai và dễ nâng cấp lên phiên bản mới Hơn nữa Oracle còn tích hợp thêm PL/SQL, là một ngôn ngữ lập trình có cấu trúc - Structure Language Tạo thuận lợi cho các lập trình viên viết các Trigger, StoreProcedure, Package Đây là điểm rất mạnh so với các CSDL hiện có trên thị trường

Oracle, ngoài các kiểu dữ liệu thông thường còn có các kiểu dữ liệu đặc biệt khác mang lại sức mạnh cho Oracle như Blob, clob, Bfile, Nếu ta chỉ chạy thử, ta cũng không cần lo đến vấn đề lisence vì có thể download từ trang của Oracle (technet.oracle.com)

Ngoài ra, ta có thể triển khai Oracle trên nhiều OS khác nhau (Windows, Solaris, Linux, ) mà không cần phải viết lại PL/SQL code Có thể import một dumpFile (backupFile) từ một máy chạy OS này sang OS khác hoặc từ một version thấp lên một version cao hơn mà không gặp bất cứ

6 | P a g e trở ngại nào ! (việc ngược lại cũng có thể thực hiện được nếu như ta không xài các tính năng mới so với version trước đó)

1.1.2 Tính năng cải tiến của Oracle 10 G ( oracle 10 Grid

Oracle Database 10g được phát hành với phiên bản 10.1.0.2 đầu năm

2004 Oracle Database 10g là hệ thống cơ sở dữ liệu đầu tiên được thiết kế nhằm tăng sức mạnh lưu trữ và xử lý dữ liệu dựa trên công nghệ tính toán lưới (Grid Computing)

Việc phát hành Oracle10g cung cấp cơ sở hạ tầng hiệu năng cao toàn diện, bao gồm:

➢ Khả năng mở rộng của các sở để doanh nghiệp các trang web thương mại điện tử

➢ Mạnh mẽ, đáng tin cậy, có sẵn, và kiến trúc an toàn

➢ Một mô hình phát triển lựa chọn triển khai dễ dàng

➢ Tận dụng skillset hiện hành của một tổ chức trong suốt nền tảng Oracle (bao gồm cả SQL,PL / SQL, Java, và XML)

➢ Một giao diện quản lý cho tất cả các ứng dụng

➢ Tiêu chuẩn công nghiệp công nghệ , không có độc quyền trong khóa

KIỂM TOÁN TRONG ORACLE 10G

1.2.1 Tại sao phải kiểm toán

An toàn thông tin trong cơ sở dữ liệu bao gồm 3 yếu tố chính: tính bí mật, toàn vẹn và sẵn sàng.Vì thế để đảm bảo an toàn thông tin trong cơ sở dữ liệu cần đảm bảo cả ba yếu tố Yếu tố bí mật quan trọng nhất để đảm bảo an toàn trong các môi trường, cả quân sự lẫn thương mại Đảm bảo tính toàn vẹn có nghĩa là ngăn chặn, phát hiện và xác định các sửa đổi thông tin trái phép Đảm bảo tính sẵn sàng có nghĩa là ngăn chặn, phát hiện và xác định các từ chối truy nhập chính đáng vào các dịch vụ mà hệ thống cung cấp

1.2.1.1 Các hiểm họa đối với an toàn cơ sở dữ liệu

Một hiểm hoạ có thể được xác định khi đối phương (người, hoặc nhóm người) sử dụng các kỹ thuật đặc biệt để tiếp cận nhằm khám phá, sửa đổi trái phép thông tin quan trọng do hệ thống quản lý

Các xâm phạm tính an toàn cơ sở dữ liệu bao gồm đọc, sửa, xoá dữ liệu trái phép Thông qua những xâm phạm này, đối phương có thể:

• Khai thác dữ liệu trái phép thông qua suy diễn thông tin được phép

• Sửa đổi dữ liệu trái phép

• Từ chối dịch vụ hợp pháp

Các hiểm hoạ an toàn có thể được phân lớp, tuỳ theo cách thức xuất hiện của chúng, là hiểm hoạ có chủ ý và vô ý (ngẫu nhiên)

Những xâm phạm trên liên quan đến hai lớp người dùng sau:

• Người dùng được phép truy cập nhưng lạm dụng quyền, sử dụng vượt quá quyền hạn được phép của họ

• Đối phương là người, hay nhóm người truy nhập thông tin trái phép, có thể là những người nằm ngoài tổ chức hay bên trong tổ chức Họ tiến hành các hành vi phá hoại phần mềm cơ sở dữ liệu hay phần cứng của

8 | P a g e hệ thống, hoặc đọc ghi dữ liệu trái phép Trong cả hai trường hợp trên, họ đều thực hiện với chủ ý rõ ràng

Một số tấn công phổ biến hiện nay:

SQL injection là một kĩ thuật cho phép những kẻ tấn công lợi dụng lỗ hổng trong việc kiểm tra dữ liệu nhập trong các ứng dụng web và các thông báo lỗi của hệ quản trị cơ sở dữ liệu để "tiêm vào"(inject) và thi hành các câu lệnh SQL bất hợp pháp (không được người phát triển ứng dụng lường trước) Hậu quả của nó rất tai hại vì nó cho phép những kẻ tấn công có thể thực hiện các thao tác xóa, hiệu chỉnh, … do có toàn quyền trên cơ sở dữ liệu của ứng dụng, thậm chí là server mà ứng dụng đó đang chạy Lỗi này thường xảy ra trên các ứng dụng web có dữ liệu được quản lí bằng các hệ quản trị cơ sở dữ liệu như SQL Server, MySQL, Oracle, DB2, Sysbase

Attacking Oracle : kẻ tấn công sử dụng TCP scan port để quét lỗ hổng trên Server Database Oracle

Kẻ tấn công thường làm tràn bộ đệm của hệ thống hoặc làm ngập lụt băng thông mạng để sửa đổi dữ liệu hoặc đánh cắp thông tin

Tấn công leo thang đặc quyền

Sự leo thang đặc quyền có thể hiểu đơn giản là một phương thức tấn công mà với cách này, các User có quyền hạn thấp hơn sẽ tấn công vào một điểm dễ bị tổn thương nhất của hệ thống để trở thành một người quản trị hoặc có thể trở thành các User có quyền hạn cao hơn

1.2.1.2 Các yêu cầu bảo vệ cơ sở dữ liệu

Bảo vệ cơ sở dữ liệu khỏi các hiểm hoạ, có nghĩa là bảo vệ tài nguyên, đặc biệt là dữ liệu khỏi các thảm hoạ, hoặc truy nhập trái phép Các yêu cầu bảo vệ cơ sở dữ liệu gồm:

• Bảo vệ chống truy nhập trái phép

• Bảo vệ chống suy diễn

• Bảo vệ toàn vẹn cơ sở dữ liệu

• Khả năng lưu vết và kiểm tra

• Quản lý và bảo vệ dữ liệu nhạy cảm

1.2.1.3 Vai trò của kiểm toán trong việc bảo vệ cơ sở dữ liệu Để bảo mật cơ sở dữ liệu thì giám sát (Monitoring) và kiểm toán (Audit) là một phần không thể thiếu cho những thủ tục bảo mật

Kiểm toán giúp thu giữ và lưu trữ thông tin về những gì đang xảy ra trong hệ thống Kiểm toán phải được tập trung để chỉ những sự kiện được quan tâm sẽ được lưu lại vết (Trail).Từ đó nhờ những bản ghi audit sẽ giúp DBA phát hiện và kịp thời những tấn công hay lỗ hổng và ngăn chặn những hành vi phá hoại của tin tặc.Hoặc nhanh chóng sửa chữa những bất thường của hệ thống

Kiểm toán thường được sử dụng để:

• Kích hoạt tính trách nhiệm sau này cho các hành động hiện tại thực hiện trong một lược đồ đặc biệt, bảng, hoặc hàng, hoặc ảnh hưởng đến nội dung cụ thể

• Giúp người giám sát biết được nếu có user bất hợp pháp đang thao tác với cơ sở dữ liệu

• Điều tra hoạt động đang nghi ngờ Ví dụ nếu một người sử dụng trái phép là xóa dữ liệu từ các bảng, sau đó các quản trị viên bảo mật có thể

10 | P a g e kiểm toán tất cả các kết nối CSDL và tất cả các xóa bỏ thành công va không thành công của các hàng từ tất cả các bảng trong CSDL

• Theo dõi 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 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 tại thời gian cao điểm

1.2.2 Khái quát về kiểm toán

Kiểm toán là việc theo dõi và ghi lại các hành động lựa chọn CSDL người dùng Nó có thể được dựa trên hành động cá nhân, chẳng hạn như các loại câu lệnh SQL, hoặc kết hợp các yếu tố bao gồm tên, ứng dụng, thời gian,… Chính sách bảo mật có thể tạo ra kiểm toán khi các yếu tố quy định tại một CSDL Oracle được truy cập hay thay đổi bao gồm cả nội dung

Oracle cho phép tùy chọn kiểm toán phải được tập trung hoặc mở rộng, cho phép kiểm toán sau đây:

• Sự thực hiện statement thành công , Sự thực hiện statement không thành công, hoặc cả hai

• Sự thực hiện statement một lần trong mỗi phiên của người dùng hoặc một lần trong thời gian báo cáo được thực thi

• Các hoạt động của tất cả người dùng hoặc của một người dùng cụ thể

Ta có thể sử dụng Enterprise Manager để xem và cấu hình các thông số liên quan đến kiểm toán khởi tạo và quản lý các đối tượng được kiểm toán để báo cáo kiểm toán và lược đồ đối tượng kiểm toán

Audit record (Bản ghi kiểm toán) 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, và thời gian hoạt

FINE-GRAINED AUDITING

Các tính năng vượt trội của kiểm toán FGA

Fine grained auditing kiểm toán dữ liệu dựa trên nội dung FGA cung cấp điều khiển tốt hơn và là một phương pháp chi tiết hơn của kiểm toán

Phương pháp này tạo ra các bản ghi kiểm toán dựa trên các điều kiện, truy vấn chính xác,và lấy dữ liệu hoặc điều chỉnh bằng các statement Nó cung cấp một cơ sở để kiểm toán những statement tham chiếu đến một cột cụ thể Phương pháp FGA được giới thiệu trong Oracle9i Tuy nhiên, Oracle Database 10g tăng cường năng lực cho FGA bằng cách mở rộng SQL Support để hỗ trợ các kiểm toán của các truy vấn, cũng như các hoạt động UPDATE, INSERT và DELETE

Hình 2.1: Ví vụ về chính sách kiểm toán Được giới thiệu vào Oracle 9i, hạt mịn kiểm toán (FGA) thực hiện khả năng kiểm toán thông qua một gói phần mềm mới có tên DBMS_FGA Gói này cho phép thực hiện kiểm toán ở một mức độ rất chi tiết đối với bất kỳ bảng trong cơ sở dữ liệu thông qua một đối tượng cơ sở dữ liệu đặc biệt gọi là một chính sách FGA Có nhiều tiểu chương trình của gói DBMS_FGA Gói DBMS_FGA cho phép thiết lập các điều kiện kiểm toán và xác định

15 | P a g e các cột kiểm toán để chỉ định cột trong một bảng hoặc xem yêu cầu monitoring Khi điều kiện được đáp ứng vào cột cụ thể,kiểm toán FGA sẽ lưu lại một bản ghi kiểm toán cho thấy các truy vấn SQL text

Tạo ra một chính sách kiểm toán bằng cách sử dụng các thuộc tính được cung cấp như điều kiện kiểm toán

Vô hiệu hóa một chính sách kiểm toán

Giảm (Xoá) một chính sách kiểm toán

Cho phép một chính sách kiểm toán

Bảng 2.1: Các thủ tục của gói DBMS_FGA

Các bản ghi kiểm toán standard auditing chi tiết như chủ sở hữu, dấu thời gian, loại của statement vv, nhưng nó không cung cấp thông tin về sự thay đổi đã xảy ra trong dữ liệu Thông tin này có thể rất hữu ích cho các DBA hoặc người dùng muốn phân tích các hoạt động diễn ra trên bảng Đây là lý do tại sao nhà phát triển cần có sự giúp đỡ của triger và ghi lại các giá trị bảng trước và sau trong bảng người dùng định nghĩa Nhưng trigger chỉ có thể được ghi lại bằng DML statements Insert, Update và Delete còn Select thì không được lưu lại Vì vậy,nếu muốn ghi lại các statement Select đã đưa ra vào một bảng hay cột cụ thể của bảng thì cần đến FGA để giải quyết FGA cũng cho phép kiểm toán phải được tập trung hẹp hơn so với standard hay value-based database auditing Đến Oracle 9i , FGA chỉ được hỗ trợ Select , nhưng trong Oracle 10g FGA hỗ trợ tất cả statement DML Vì vậy, tất cả các Insert, Update, Delete

16 | P a g e và Select statement có thể được chụp lại bằng cách sử dụng FGA và có thể được xem qua các từ điển dữ liệu DBA_FGA_AUDIT_TRAIL

STATEMENT_TYPE Loại của statement – INSERT, UPDATE,

DELETE, hay SELECT để kích hoạt kiểm toán

EXTENDED_TIMESTAMP Timestamp mở rộng của the trail entry

PROXY_SESSIONID Nếu người dùng là một người dùng doanh nghiệp và kết nối bằng cách sử dụng một người sử dụng proxy, các SID của các phiên kết nối người sử dụng proxy được hiển thị ở đây

GLOBAL_UID Nếu người dùng là một người dùng doanh nghiệp,thì đây là các global user ID

INSTANCE_NUMBER Số của instance nếu sử dụng RAC

OS_PROCESS Operating System xử lý id

TRANSACTIONID Các transaction nhận dạng, nếu statement là một phần của statement

ENTRYID Các mục định danh trong các dấu vết

Bảng 2.2: Các cột mới của dba_fga_audit_trail

Tùy chọn trong kiểm toán FGA có thể được tập trung bởi các cột riêng lẻ trong một bảng hoặc khung nhìn, và thậm chí có thể có điều kiện để

17 | P a g e kiểm toán được ghi lại chỉ khi một số chi tiết kỹ thuật quản trị được xác định là đáp ứng Nhiều hơn một cột có liên quan được hỗ trợ cho một chính sách FGA Theo mặc định, nếu có một trong cột này hiện diện trong các câu lệnh SQL, nó được kiểm toán DBMS_FGA.ALL_COLUMNS và DBMS_FGA.ANY_COLUMNS được cung cấp cho kiểm toán trên cơ sở có bất kỳ hoặc tất cả các cột có liên quan được sử dụng trong bản báo cáo (statement)

Sử dụng các gói DBMS_FGA PL / SQL để tạo ra một chính sách kiểm toán trên target table hay view Nếu bất kỳ các hàng được trả lại từ một khối truy vấn kết hợp các cột được kiểm toán và kiểm toán quy định điều kiện, sau đó có một sự kiện kiểm toán thì bản ghi kiểm toán phải được tạo ra và lưu trữ trong các Audit Trail

Các sự kiện kiểm toán cũng có thể thực hiện một thủ tục(procedure) FGA tự động tập trung kiểm toán từ các mức độ báo cáo(statement), và do đó một SELECT statement trả về hàng ngàn hàng chỉ tạo ra một bản ghi kiểm toán

Kiểm toán FGA cung cấp một phương pháp tiếp cận linh hoạt,được kiểm soát để kiểm toán các hoạt động cơ sở dữ liệu Các tính năng nổi bật như xử lý sự kiện, kiểm toán, điều kiện, và cột tham chiếu cho các FGA một kĩ thuật tốt hơn các kỹ thuật kiểm toán khác của Oracle FGA là dễ dàng để quản lý và không tạo thêm chi phí cho quản trị cơ sở dữ liệu

Các thủ tục trong gói DBMS_FGA

2.2.1 DBMS_FGA.ADD_POLICY Procedure

Hình 2.2: DBMS_FGA.ADD_POLICY Procedure

( object_schema VARCHAR2, object_name VARCHAR2, policy_name VARCHAR2, audit_condition VARCHAR2, audit_column VARCHAR2, handler_schema VARCHAR2, handler_module VARCHAR2, enable BOOLEAN, statement_types VARCHAR2, audit_trail BINARY_INTEGER IN DEFAULT, audit_column_opts BINARY_INTEGER IN DEFAULT );

Parameter Description object_schema Lược đồ của đối tượng được kiểm toán Giá trị mặc định:

NULL (Nếu NULL, những hiệu quả lược đồ người dùng hiện hành được giả định.) object_name Tên của đối tượng được kiểm toán policy_name Tên duy nhất của chính sách audit_condition Một điều kiện trong một hàng mà chỉ ra một điều kiện monitoring NULL được cho phép và các hành vi như là TRUE Giá trị mặc định: NULL audit_column Các cột phải được kiểm tra để truy cập Đây có thể bao gồm các cột ẩn Các mặc định, NULL, nguyên nhân kiểm toán nếu cột nào được truy cập hoặc bị ảnh hưởng Giá trị mặc định: NULL handler_schema Các lược đồ có chứa các xử lý sự kiện Các mặc định, NULL, nguyên nhân lược đồ hiện tại sẽ được sử dụng Giá trị mặc định: NULL handler_module Tên chức năng của các xử lý sự kiện, bao gồm các tên gói nếu cần thiết Chức năng này được gọi chỉ sau khi hàng đầu tiên phù hợp với điều kiện kiểm toán được xử lý trong truy vấn Nếu thủ tục không có ngoại lệ, user SQL statement will fail as well Giá trị mặc định: NULL

Enable Cho phép các chính sách nếu TRUE, đó là mặc định Giá trị mặc định: TRUE

20 | P a g e statement_types Các SQL statement mà chính sách này được áp dụng: insert, update, delete, or select Giá trị mặc định: SELECT audit_trail Whether to populate LSQLTEXT và LSQLBIND trong fga_log$ Giá trị mặc định: DB_EXTENDED

Bảng 2.3: Mô tả các thuộc tính DBMS_FGA.ADD_POLICY

Ví dụ : cho thấy một chính sách FGA được tạo ra với thủ tục

DBMS_FGA.ADD_POLICY Thủ tục này chấp nhận các đối số sau đây:

Chỉ định cho mỗi chính sách FGA một tên khi tạo ra nó Như ví dụ trên trong các tên chính sách AUDIT_EMPS_SALARY bằng cách sử dụng các đối số sau đây: policy_name => 'audit_emps_salary' Điều kiện kiểm toán

Các điều kiện kiểm toán là một câu lệnh SQL xác định được định nghĩa khi sự kiện kiểm toán phải cháy Trong ví dụ, tất cả các hàng trong department_10 được kiểm toán bằng cách sử dụng các đối số điều kiện : audit_condition => 'department_id'

Kiểm toán Cột (Audit column)

Các cột kiểm toán xác định các dữ liệu đang được kiểm toán Một sự kiện kiểm toán xảy ra nếu cột này bao gồm SELECT statement hoặc nếu điều kiện kiểm toán cho phép lựa chọn Trong ví dụ kiểm toán hai cột bằng cách sử dụng các đối số sau đây: audit_column => 'LƯƠNG,

COMMISION_PCT' Đối số này là tùy chọn Nếu nó không được quy định thì sau đó là đối số AUDIT_CONDITION xác định xem một sự kiện kiểm toán phải xảy ra Đối tượng (Object)

21 | P a g e Đối tượng là các bảng hoặc xem đó là được kiểm toán Nó được thông qua như là hai đối số:

- Các lược đồ có chứa các đối tượng

Trong ví dụ các cuộc kiểm toán bảng hr.employees bằng cách sử dụng các đối số sau đây: object_schema => 'h' object_name => 'nhân viên

Bộ xử lý sự kiện tùy chọn là một thủ tục PL / SQL xác định bất kỳ hành động bổ sung phải được ghi lại trong kiểm toán Ví dụ, Bộ xử lý sự kiện có thể gửi một trang cảnh báo tới administraotor

Nếu không xác định, sau đó mục kiểm toán sự kiện được đưa vào audit_trail Nếu một sự kiện kiểm toán xử lý được xác định, sau đó kiểm toán được đưa vào audit_trail và xử lý sự kiện kiểm toán được thực hiện

Các trường hợp được đưa vào kiểm toán bao gồm các chính sách FGA tạo ra sự kiện, người sử dụng thực hiện các SQL statement, và SQL statement và các biến của nó ràng buộc.Việc xử lý sự kiện được thông qua như là hai đối số:

- Các lược đồ có chứa các PL / đơn vị chương trình SQL

- Tên của người / đơn vị PL chương trình SQL

Trong ví dụ trên đã thực hiện thủ tục SECURE.LOG_EMPS_SALARY bằng cách sử dụng đối số sau:

- handler_module => 'log_emps_salary'

Theo mặc định, Audit_trail luôn viết những văn bản SQL và SQL kết nối thông tin đến LOBs Các mặc định có thể được thay đổi (ví dụ, nếu hệ thống bị suy giảm hiệu suất)

- Bản ghi được kiểm toán nếu FGA là thỏa mãn và các cột có

- liên quan được tham chiếu

- DELETE statement được kiểm toán không phân biệt bất kỳ

- MERGE statement được kiểm toán với các cơ sở INSERT hoặc UPDATE tạo ra các các statements

Hình 2.3: Kiểm toán DML statement

Với một chính sách FGA định nghĩa cho DML statement, một DML statement được kiểm toán nếu dữ liệu hàng (cả mới và cũ) được vận dụng đáp ứng các chính sách tiêu chí xác định

Tuy nhiên, nếu các cột có liên quan cũng được quy định trong định nghĩa chính sách, statement đã được kiểm toán khi dữ liệu đáp ứng các FGA xác định và statement tham chiếu đến các cột có liên quan xác định Đối với DELETE statements, xác định các cột có liên quan trong quá trình định nghĩa chính sách là không hữu ích bởi vì tất cả các cột trong một bảng đều bị ảnh hưởng trước một câu lệnh DELETE Do đó, một DELETE statement là luôn luôn được kiểm toán không phụ thuộc vào các cột liên quan

MERGE statement được hỗ trợ bởi FGA Các INSERT, UPDATE statement cơ bản được kiểm toán nếu đáp ứng bất kỳ chính sách INSERT hoặc UPDATE FGA

Sử dụng chính sách FGA đã xác định trước, Statement đầu tiên được kiểm toán trong khi Statement thứ hai thì chưa

2.2.2 Các thủ tục khác chỉ trạng thái (Status)

➢ ENABLE_POLICY Procedure : Thủ tục này cho phép kích hoạt một chính sách kiểm toán

DBMS_FGA.ENABLE_POLICY( object_schema VARCHAR2, object_name VARCHAR2, policy_name VARCHAR2, enable BOOLEAN);

➢ DISABLE_POLICY Procedure : Thủ tục này cho phép hủy bỏ kích hoạt một chính sách kiểm toán

DBMS_FGA.DISABLE_POLICY( object_schema VARCHAR2, object_name VARCHAR2, policy_name VARCHAR2 );

➢ DROP_POLICY Procedure : Thủ tục này cho phép xóa một chính sách kiểm toán

DBMS_FGA.DROP_POLICY( object_schema VARCHAR2, object_name VARCHAR2, policy_name VARCHAR2 );

Trong ví dụ trên trạng thái cho thấy các chính sách FGA được kích hoạt và đối số kích hoạt các chính sách: enable => TRUE

2.2.3 FGA Guidelines (Hướng dẫn sử dụng FGA)

• Để kiểm toán tất cả các statement, sử dụng một điều kiện vô giá trị

• Tên chính sách phải là duy nhất

• Bảng hoặc khung nhìn được kiểm toán đã phải tồn tại khi tạo ra các chính sách

• Nếu cú pháp điều kiện kiểm toán là không hợp lệ, một Lỗi ORA28112 được nâng lên khi các đối tượng được kiểm toán được truy cập

• Nếu các cột được kiểm toán không tồn tại trong bảng thì sẽ không có hàng được kiểm toán

• Nếu xử lý sự kiện không tồn tại, không có lỗi trả về và các bản ghi kiểm toán vẫn được tạo ra

• Các giá trị kiểm toán được được tạo và lưu tại DBA_FGA_AUDIT_TRAIL (bảng sys.fga_log$ ) Để xem các hành động được liểm toán ta dùng câu lệnh :

Select *(hoặc các trường cần xem) from DBA_FGA_AUDIT_TRAIL; Đối với các SELECT satement, FGA ghi lại các statement của chính nó, và không phải là các hàng (row) thực tế

Tuy nhiên, khi FGA được kết hợp với Flashback Query, các hàng có thể được tái tạo như chúng đã tồn tại ở thời điểm trước đó

KỊCH BẢN DEMO

Cài đặt servervà các tham số cần thiết

- Server của chúng ta chạy trên Windows 7 và được cài sẵn bản Oracle server Enterprise 10g trở lên

Kiểm toán là tính năng mặc định của Oracle server, ta có thể hiển thị xem kiểm toán đã được bật hay chưa bằng câu lệnh SHOW PARAMETER AUDIT

- - - audit_file_dest string C:\ORACLE\PRODUCT\10.2.0\ADMIN

\DB10G\ADUMP audit_sys_operations boolean FALSE audit_trail string NONE

Kiểm toán mặc định bị tắt, ta có thể bật lên bằng cách cài đặt tham số cho AUDIT_TRAIL

AUDIT_TRAIL = { none | os | db | db,extended | xml | xml,extended }

• none or false –Kiểm toán bị tắt

• db or true –Kiểm toán được bật, với tất cả bản ghi kiểm toán được lưu trong cơ sở dữ liệu kiểm toán (SYS.AUD$)

• db,extended – giống db, nhưng cột SQL_BIND và SQL_TEXT là tương tự nhau

• xm - kiểm toán được bật, với tất cả bản ghi kiểm toán được lưu tại các file XML hệ thống

• xml,extended - như xml, nhưng cột SQL_BIND và SQL_TEXT là tương tự nhau

• os - kiểm toán được bật, với tất cả bản ghi kiểm toán hướng trực tiếp tới kiểm toán của hệ thống Để bật kiểm toán ta sử dụng câu lệnh sau:

ALTER SYSTEM SET audit_trailSCOPE=SPFILE

SQL> ALTER SYSTEM SET audit_trailSCOPE=SPFILE;

Khởi động lại Oracle server để có hiệu lực:

Total System Global Area 289406976 bytes

Thực hiện kiểm toán FGA (Fine Grained Auditing)

i Đầu tiên tạo một người dùng mới AUDIT_TEST:

CONNECT sys/password AS SYSDBA

CREATE USER audit_test IDENTIFIED BY password DEFAULT TABLESPACE users

GRANT connect TO audit_test;

GRANT create table, create procedure TO audit_test; ii Tạo một bảng kiểm tra:

CREATE TABLE emp ( empno NUMBER(4) NOT NULL, ename VARCHAR2(10), job VARCHAR2(9), mgr NUMBER(4), hiredate DATE, sal NUMBER(7,2), comm NUMBER(7,2), deptno NUMBER(2)

INSERT INTO emp (empno, ename, sal) VALUES (9999, 'Tim', 1);

INSERT INTO emp (empno, ename, sal) VALUES (9999, 'Larry', 50001);

29 | P a g e iii Viết một policy kiểm toán tất cả các truy vấn về lương lớn hơn £50,000 :

CONN sys/password AS sysdba

DBMS_FGA.add_policy( object_schema => 'AUDIT_TEST', object_name => 'EMP', policy_name => 'SALARY_CHK_AUDIT', audit_condition => 'SAL > 50000', audit_column => 'SAL');

/ iv Thực hiện truy vấn cả bảng employees để xem policy hoạt động như dự kiến:

SELECT sal FROM emp WHERE ename = 'Tim';

SELECT sal FROM emp WHERE ename = 'Larry'; v Kết nối bằng sys để xemsql_texttrongdba_fga_audit_trail :

CONN sys/password AS SYSDBA

FROM dba_fga_audit_trail;

SELECT sal FROM emp WHERE ename = 'Larry'

Quá trình xử lý mở rộng có thể gắn với một sự kiện FGA bằng cách khai báo một thủ tục cơ sở dữ liệu và gắn với chính sự kiện kiểm toán này Ta sẽ thử khai báo một thủ tục FIRE_CLERK :

DBMS_FGA.add_policy( object_schema => 'AUDIT_TEST', object_name => 'EMP', policy_name => 'SALARY_CHK_AUDIT', audit_condition => 'SAL > 50000', audit_column => 'SAL', handler_schema => 'AUDIT_TEST', handler_module => 'FIRE_CLERK', enable => TRUE);

Gói DBMS_FGA chứa các thủ tục sau đây:

Ta có thể sử dụng các thủ tục này để quản lý các policy.

Kết quả đạt được

Sau khi ta sử dụng một user thường AUDIT_TEST để thực hiện tạo một bảng nhân viên và truy vấn về lương nhân viên lơn hơn £50 000, ta sử dụng Fine Grained Auditing để ghi lại hành động này lên CSDL

Trong thực tế khi có kẻ tấn công hoặc có hành động bất thường vào bảng như trên, nhờ những bản ghi kiểm toán mà ta có thể phát hiện và ngăn chặn kịp thời giảm thiểu tối đa các thiệt hại

Ngày đăng: 30/01/2024, 10:07

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w