An ninh Cơ sở dữ liệu (Database Security)

An ninh CSDL là một vấn đề quan trọng trong việc quản lý CSDL vì yếu tố nhạy cảm và độ quan trọng của dữ liệu và thông tin nhất là trong các tổ chức, doanh nghiệp. Dữ liệu lưu trong CSDL thường là cực kì quan trọng đối với hoạt động kinh doanh của tổ chức, ảnh hưởng đến lợi nhuận và liên quan đến tài sản của tổ chức.

pptx28 trang | Chia sẻ: lylyngoc | Lượt xem: 2409 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu An ninh Cơ sở dữ liệu (Database Security), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Click to edit Master title style Click to edit Master text styles Second level Third level Fourth level Fifth level ‹#› SGU - CNTT - Hệ quản trị CSDL 11/26/2012 An ninh CSDL (Database Security) ThS. Hoàng Mạnh Hà hoangha84@gmail.com https://sites.google.com/site/hoangha84 Nội dung SGU - CNTT - Hệ quản trị CSDL 2 Giới thiệu An ninh CSDL là một vấn đề quan trọng trong việc quản lý CSDL vì yếu tố nhạy cảm và độ quan trọng của dữ liệu và thông tin nhất là trong các tổ chức, doanh nghiệp. Dữ liệu lưu trong CSDL thường là cực kì quan trọng đối với hoạt động kinh doanh của tổ chức, ảnh hưởng đến lợi nhuận và liên quan đến tài sản của tổ chức. Do đó CSDL cũng chính là nguồn tài nguyên quan trọng của tổ chức và cần được bảo vệ. SGU - CNTT - Hệ quản trị CSDL 3 Giới thiệu Hệ thống CSDL ngày càng trở nên phức tạp bởi sự ứng dụng phổ biến của mô hình dữ liệu phân tán kết hợp với kiến trúc client/server. Sự truy xuất CSDL được mở rộng hơn nhiều thông qua mạng Internet và mạng nội bộ doanh nghiệp. Điều này dẫn đến kết quả là việc quản trị an ninh CSDL sao cho hiệu quả ngày càng khó khăn và tốn thời gian hơn. Vì vậy việc nhà quản trị CSDL (Database administrator – DBA) phát triển các chính sách, thủ tục và sự quản lý phù hợp để bảo vệ CSDL là một vấn đề rất quan trọng. SGU - CNTT - Hệ quản trị CSDL 4 Mục tiêu của an ninh CSDL Bảo vệ dữ liệu khỏi các mối đe dọa (threat) như sự mất mát vô ý hay chủ quan, hư hỏng hay việc lạm quyền, sử dụng sai mục đích CSDL. Điều này liên quan đến sự toàn vẹn và vấn đề truy xuất dữ liệu. Định nghĩa mối đe dọa: các tình huống hay sự kiện, vô tình hay cố ý, mà dẫn đến ảnh hưởng bất lợi đến hệ thống (do đó cũng ảnh hưởng đến cả tổ chức). SGU - CNTT - Hệ quản trị CSDL 5 Mục tiêu của an ninh CSDL Một mối đe dọa có thể gây ra bởi một tình huống, sự việc liên quan đến một người, một hành động hay một tình huống có thể gây thiệt hại cho tổ chức. Thiệt hại: Hữu hình: hư hỏng, mất mát phần cứng, phần mềm hoặc dữ liệu… Vô hình: sự tín nhiệm, tin tưởng của khách hàng vào tổ chức… Ngoài ra an ninh CSDL còn liên quan đến sự cho phép hay ngăn chặn người dùng thực hiện những hành động nào đó đến CSDL hoặc thành phần bên trong CSDL từ đó ngăn chặn việc lạm dụng hay sử dụng CSDL sai mục đích. SGU - CNTT - Hệ quản trị CSDL 6 Mục tiêu của an ninh CSDL DBA là người có trách nhiệm bảo vệ an ninh chung của hệ thống CSDL → phải xác định được các mối đe dọa nghiêm trọng từ đó xây dựng cơ chế an ninh để đảm bảo hạn chế tối đa thiệt hại từ những mối đe dọa này. Mỗi người dùng hoặc nhóm người dùng nếu muốn truy xuất CSDL: Đăng kí tài khoản cho DBA. DBA cung cấp tài khoản và mật khẩu cho người dùng phù hợp với nhu cầu sử dụng và chính sách của tổ chức. Đăng nhập vào CSDL. HQT CSDL kiểm tra tính hợp lệ và cho phép sử dụng CSDL. Thông thường HQT CSDL quản lý tài khoản và mật khẩu người dùng thông qua 1 bảng được mã hóa. SGU - CNTT - Hệ quản trị CSDL 7 Các mối đe dọa đến an ninh CSDL Đe dọa trực tiếp: duyệt, thay đổi hoặc lấy cắp dữ liệu bởi một truy xuất không hợp lệ. Để đảm bảo an ninh CSDL, tất cả các thành phần của hệ thống cũng phải được bảo mật: CSDL Phần cứng Hệ điều hành Mạng Người dùng Nơi đặt hệ thống máy tính… SGU - CNTT - Hệ quản trị CSDL 8 Các mối đe dọa đến an ninh CSDL Một số mối đe dọa khác liên quan đến tổng thể cơ chế bảo mật: Loss of availability: dữ liệu, hệ thống hoặc cả 2 không thể được truy xuất do sự phá hoại phần cứng, mạng hoặc ứng dụng. Điều này có thể đình trệ hoạt động và ảnh hưởng đến lợi nhuận của tổ chức nhất là các tổ chức cần duy trì hoạt động 24x7 như các tổ chức tín dụng, ngân hàng, kinh doanh trực tuyến… Loss of data integrity (toàn vẹn): làm sai lệch hoặc hư hỏng dữ liệu, có thể ảnh hưởng nghiêm trọng đến hoạt động của tổ chức. Nếu sự toàn vẹn của dữ liệu không được phục hồi có thể dẫn đến sự mất mát nghiêm trọng hoặc đưa ra các quyết định quan trọng sai lệch. SGU - CNTT - Hệ quản trị CSDL 9 Các mối đe dọa đến an ninh CSDL Loss of confidentiality (bí mật): Mất sự bảo mật với những thông tin then chốt, có tính chiến lược dẫn đến mất đi tính cạnh tranh của tổ chức. Loss of privacy: mất sự bảo mật dữ liệu riêng tư, có thể lợi dụng để tống tiền, hối lộ hoặc gây hại cho tổ chức. Theft and fraud (trộm cắp và lừa đảo) Accidental losses: lỗi con người, phần mềm hoặc phần cứng SGU - CNTT - Hệ quản trị CSDL 10 Phân loại vấn đề an ninh CSDL Các vấn đề về tính hợp lệ và đúng quy cách (Legal and ethical issues): mỗi quyền của cá nhân hay nhóm người dùng được truy xuất dữ liệu cụ thể. Những thông tin riêng tư không được truy xuất bởi người dùng không được phép. System-related issues: các chức năng bảo mật ở các cấp độ hệ thống khác nhau. VD mức phần cứng vật lý, mức HQT CSDL, mức hệ điều hành… Organization-based issues: Thông thường các tổ chức đặt ra nhiều cấp độ bảo mật khác nhau và phân cấp người dùng dựa trên đó. Trong tình huống đó, chính sách bảo mật của tổ chức phải được đảm bảo. Policy-based issues: Mỗi tổ chức, chính phủ… tại mỗi thời điểm sẽ có những chính sách về thông tin: thông tin được phép chia sẻ và thông tin không được phép. SGU - CNTT - Hệ quản trị CSDL 11 Cấp quyền và xác thực Cấp quyền (Authorization): là tiến trình cấp cho người dùng quyền truy xuất hợp lệ đến hệ thống hoặc đối tượng của hệ thống. Đây là quyền cao nhất trong chính sách quản trị của tổ chức. Tiến trình cấp quyền liên quan đến xác thực yêu cầu của người dùng. Xác thực (Authentication): kiểm tra thao tác của một người dùng trên là được phép hay không. Quá trình xác thực đơn giản nhất là thực hiện việc kiểm tra tài khoản và mật khẩu (Password-based authentication). Để tăng tính bảo mật đặc biệt là trong môi trường mạng, những cơ chế xác thực khác được dùng như challenge-response system (password là trường hợp đơn giản), digital signatures… SGU - CNTT - Hệ quản trị CSDL 12 Cấp quyền và xác thực Điều khiển việc cấp quyền và xác thực có thể được tích hợp vào phần mềm. Hai kĩ thuật điều quản lý việc truy xuất dữ liệu được dùng trong bảo mật hệ thống: Discretionary (linh hoạt) access control. Mandatory (bắt buộc) access control Mục tiêu: hạn chế tối đa sự mất mát, thiệt hại CSDL Hầu hết HQT CSDL hỗ trợ 1 trong 2 kĩ thuật hoặc cả 2. SGU - CNTT - Hệ quản trị CSDL 13 DISCRETIONARY ACCESS CONTROL Kiểm soát truy cập linh hoạt (còn gọi là security scheme) được dựa trên các khái niệm về quyền truy cập (còn gọi là đặc quyền) và cơ chế cấp cho người sử dụng đặc quyền này. Có thế cấp quyền truy cập cho người dùng trên các đối tượng khác nhau bao gồm tập tin dữ liệu cụ thể hoặc các dòng dữ liệu ứng với từng thao tác riêng biệt như đọc, ghi, xóa, sửa hoặc tất cả các quyền đó. SGU - CNTT - Hệ quản trị CSDL 14 DISCRETIONARY ACCESS CONTROL Người tạo ra các đối tượng CSDL thì mặc định sẽ có tất cả quyền trên đối tượng đó. Hệ quản trị CSDL sẽ theo dõi cách thức cấp quyền cho các người dùng. Cơ chế này rất mềm dẻo, linh hoạt. Mặc dù vậy nó cũng có những khuyết điểm nhất định, ví dụ, một người sử dụng trái phép có thể lừa một người sử dụng hợp pháp tiết lộ những thông tin nhạy cảm. SGU - CNTT - Hệ quản trị CSDL 15 Cấp phát/thu hồi quyền truy cập Cấp/thu hồi quyền truy cập là trách nhiệm của người quản trị CSDL (DBA – database administrator). DBA sẽ phải phân loại người dùng và dữ liệu tương ứng với chính sách bảo mật của tổ chức và tiến hành cấp/thu hồi quyền truy cập của tài khoản cá nhân, người dùng và nhóm người dùng bao gồm những hành động sau: Tạo tài khoản mới. Cấp quyền truy cập. Thu hồi quyền truy cập. Gán mức độ bảo mật. SGU - CNTT - Hệ quản trị CSDL 16 2 cấp phân quyền Có tài khoản và mật khẩu không có nghĩa là người dùng hay nhóm người dùng có thể truy cập tất cả chức năng của CSDL. Thông thường, cần gán 2 mức quyền để hoàn tất việc truy xuất hệ thống CSDL: The account level privilege assignment: DBA xác định cụ thể quyền mà mỗi tài khoản được cấp không phụ thuộc vào quan hệ trong CSDL. Thông thường bao gồm các đặc quyền sau trong SQL CREATE SCHEMA privilege, CREATE TABLE privilege, CREATE VIEW privilege, ALTER privilege, DROP privilege, MODIFY privilege, SELECT privilege SGU - CNTT - Hệ quản trị CSDL 17 2 cấp phân quyền The relation (or table) level privilege assignment: DBA điều khiển quyền truy xuất vào quan hệ hoặc view cụ thể trong CSDL. Ở cấp này, cần chỉ định quyền cho từng người dùng cụ thể cùng với quan hệ và loại câu lệnh thực hiện. Cấp phát/thu hồi quyền trên quan hệ được điều khiển bằng cách gán cho mỗi quan hệ R trong CSDL một tài khoản owner. (Thông thường là tài khoản được dùng để tạo ra quan hệ lần đầu tiên) Owner có toàn quyền trên quan hệ đã tạo ra. SGU - CNTT - Hệ quản trị CSDL 18 2 cấp phân quyền Trong SQL, các quyền có thể được cấp trên quan hệ R: SELECT privilege on R: đọc dữ liệu từ quan hệ R MODIFY privileges on R: chỉnh sửa (thêm, sửa, xóa) dữ liệu R REFERENCES privilege on R: tham chiếu tới quan hệ R SGU - CNTT - Hệ quản trị CSDL 19 Ví dụ về GRANT SGU - CNTT - Hệ quản trị CSDL 20 GRANT {ALL | privilege-list} ON {table-name [(column-comma-list)] | view-name [(column-comma-list)]} TO {PUBLIC | user-list} [WITH GRANT OPTION] GRANT {ALL | privilege-list [(COLUMN-COMMA-LIST)]} ON {table-name | view-name} TO {PUBLIC | user-list} [WITH GRANT OPTION] Ý nghĩa cú pháp ALL Cấp tất cả những quyền cho đối tượng mà người sử dụng lệnh GRANT có thể privilege-list Chỉ cấp cho những quyền trong list ON Xác định đối tượng được cấp quyền. Nó có thể là một table hoặc view. column-comma-list Chỉ ra những cột ảnh hưởng bở quyền. Nếu nó không được chỉ định thì nó sẽ được áp dụng cho toàn bộ table/view. TO Xác định những người dùng được cấp quyền. PUBLIC Cấp quyền cho tất cả những người sử dụng có tài khoản và mật khẩu hợp lệ trong hệ thống . user-list Quyền sẽ được cấp cho những người dùng được xác định trong danh sách. WITH GRANT OPTION Người được cấp quyền được phép cấp những quyền mà người đó đã được cấp cho người dùng khác. SGU - CNTT - Hệ quản trị CSDL 21 Thu hồi quyền (REVOKE) SGU - CNTT - Hệ quản trị CSDL 22 REVOKE {ALL | privilege-list} ON {table-name [(column-comma-list)] | view-name [(column-comma-list)]} FROM {PUBLIC | user-list} REVOKE {ALL | privilege-list [(COLUMN-COMMA-LIST)]} ON {table-name | view-name} FROM {PUBLIC | user-list} Audit Trails Một audit trail thực chất là 1 tập tin đặc biệt hoặc cơ sở dữ liệu, trong đó hệ thống tự động theo dõi thường xuyên tất cả các hoạt động được thực hiện bởi người dùng trên dữ liệu. Nó là 1 bản ghi của tất cả các thay đổi (ví dụ thêm, sửa, xóa, v.v) vào cơ sở dữ liệu, kèm theo các thông tin: chỉ ra sự thay đổi của người dùng đã tạo ra và việc đó xảy ra lúc nào. Trong một số hệ thống, audit trail được gắn vật lý với các bản ghi giao dịch, còn một số khác, bản ghi giao dịch với audit trail có thể khác nhau. SGU - CNTT - Hệ quản trị CSDL 23 Audit Trails Một nội dung trong audit trail thường chứa thông tin như Yêu cầu (văn bản gốc) Điểm cuối mà hành động được gọi lên Người dùng đã gọi lên hành động Ngày tháng và thời điểm của hành động Những thuộc tính, tuples bị ảnh hưởng Những giá trị cũ Những giá trị mới SGU - CNTT - Hệ quản trị CSDL 24 Audit Trails Audit trail hỗ trợ bảo mật cho cơ sở dữ liệu. Ví dụ, nếu số dư trên tài khoản bị phát hiện là không chính xác, có thể ngân hàng muốn theo dõi tất cả những cập nhật được thực hiện trên tài khoản đó, để tìm ra những cập nhật không chính xác, cũng như người thực hiện chúng. Các ngân hàng sau đó cũng có thể dùng audit trail để theo dõi tất cả cập nhật được những người này thực hiện, nhằm tìm ra những cập nhật không chính xác khác. Nhiều DBMS cung cấp các cơ chế kèm theo để tạo các audit trail. Cũng có thể tạo 1 audit bằng các trigger thích hợp để định nghĩa trên các cập nhật quan hệ, loại này dùng các biến được định nghĩa bởi hệ thống mà chúng xác nhận tên người dùng và thời gian. SGU - CNTT - Hệ quản trị CSDL 25 MANDATORY ACCESS CONTROL Kiểm soát truy cập bắt buộc dựa trên những chính sách bảo mật cho toàn hệ thống và không thể thay đổi bởi cá nhân người sử dụng. DBA phân loại dữ liệu và người dùng thành những lớp hoặc cấp độ khác nhau dựa trên chính sách bảo mật của tổ chức. Mỗi đối tượng dữ liệu được gắn với 1 cấp độ và mỗi người dùng cũng được gắn một mức cho phép sử dụng thông tin. VD: Top secret (TS), Secret (S), Confidential (C), Unclassified (U) Phổ biến: Mô hình Bel-LaPadula SGU - CNTT - Hệ quản trị CSDL 26 Tường lửa (Firewall) Tường lửa là hệ thống được xây dựng nhằm ngăn chặn những sự truy xuất không được phép trên mạng nội bộ. Tường lửa được xây dựng bằng cả phần cứng lẫn phần mềm hoặc kết hợp cả 2. Ta thường gặp tường lửa dùng để ngăn chặn người sử dụng Internet không được phép truy cập mạng nội bộ. Tất cả thông tin vào/ra mạng nội bộ phải đi qua tường lửa. Tường lửa kiểm tra từng dữ liệu vào/ra và chặn những dữ liệu không được phép. SGU - CNTT - Hệ quản trị CSDL 27 Một số kĩ thuật tường lửa được sử dụng trong an ninh CSDL Packet Filter: Kiểm tra từng packet gửi/nhận qua mạng và cho phép hay ngăn chặn dựa trên những luật do người dùng định nghĩa. Application Gateway: Cơ chế bảo mật được áp dụng cho một số ứng dụng cụ thể. Circuit-level Gateway: Cơ chế bảo mật được áp dụng khi giao thức TCP hoặc UDP được thiết lập, sau đó không kiểm tra thêm. Proxy Server: chuyển tiếp dữ liệu ra vào mạng, có tác dụng ẩn địa chỉ thật của các máy tính trong mạng nội bộ. SGU - CNTT - Hệ quản trị CSDL 28 SGU - CNTT - Hệ quản trị CSDL 29