Minh họa công nghệ Transparent Data Encryption (TDE) của Oracle server

Một phần của tài liệu Bài giảng An toàn ứng dụng web và cơ sở dữ liệu (Trang 134)

Ƣu điểm của công nghệ TDE là hoàn toàn trong suốt với ngƣời dùng. Tuy nhiên,

nhƣợc điểm của nó là làm tăng tải máy chủcơ sở dữ liệu. Ngoài ra, nếu ngƣời dùng hoặc tin tặc có thể truy cập cơ sở dữ liệu, thì hắn ta có thể trích xuất dữ liệu từ cơ sở dữ liệu

theo cách thơng thƣờng. Điều này có nghĩa là TDE khơng thể bảo vệ đƣợc dữ liệu khỏi bị đánh cắp nếu ngƣời dùng có quyền truy nhập vào dữ liệu trong cơ sở dữ liệu.

133

6.3.4. Mã hóa dữ liệu trên đƣờng truyền

Dữ liệu trao đổi giữa máy khách, máy chủứng dụng và máy chủcơ sở dữ liệu có thể đƣợc bảo vệ sử dụng các giao thức, kỹ thuật dựa trên mã hóa, nhƣ SSL/TLS, hoặc IPSec (IP Security). SSL/TLS là giao thức bảo mật dữ liệu hoạt động giữa tầng giao vận (TCP) và tầng ứng dụng. Một số đặc tính của SSL/TLS:

- Cần có chứng chỉ số khóa cơng khai cho máy chủ cấp bởi bên thứ 3 tin cậy - Sử dụng hệkhóa cơng khai đểtrao đổi khóa phiên

- Sử dụng khóa phiên để mã hóa dữ liệu

- Sử dụng hàm băm có khóa (MAC/HMAC) đểđảm bảo tính tồn vẹn dữ liệu - Xác thực thực thể

- Đảm bảo tính bí mật, tồn vẹn và xác thực thông tin truyền.

Khác với SSL/TLS, giao thức bảo mật IPSec hoạt động ở tầng mạng (IP) và đƣợc sử

dụng để tạo đƣờng hầm, hoặc kênh giao tiếp an toàn giữa máy chủ và máy khách. Tùy theo cấu hình làm việc, IPSec hỗ trợ đảm bảo tính xác thực và bí mật dữ liệu truyền. Trên thực tế, IPSec thƣờng đƣợc sử dụng làm giao thực bảo mật trong các mạng riêng ảo (VPN).

Nhìn chung, các giao thức bảo mật dữ liệu trên đƣờng truyền làm giảm hiệu năng hệ

thống do chúng tiêu tốn nhiều tài ngun tính tốn và tăng đáng kểlƣợng dữ liệu truyền thực tế. Do vậy, chỉ nên sử dụng các giao thức bảo mật dữ liệu trên đƣờng truyền khi máy khách và máy chủ cơ sở dữ liệu khơng ở cùng mạng LAN.

6.3.5. Mã hóa d liu s dng các thiết b lƣu trữđặc bit

Các thiết bị lƣu trữ đặc biệt, có hỗ trợ mã hóa dữ liệu có thể đƣợc sử dụng để lƣu trữ

cơ sở dữ liệu. Chẳng hạn, các thiết bị lƣu trữ sử dụng cho các máy chủ, thƣờng là đĩa

cứng và RAID có hỗ trợ khảnăng mã hóa/giải mã, nên tồn bộcơ sở dữ liệu đƣợc bảo vệ

bằng mã hóa. Ƣu điểm của phƣơng pháp này là nó thƣờng đƣợc thực hiện ở mức BIOS của hệ thống, hoặc hệđiều hành nên hoàn toàn trong suốt với ngƣời dùng.

Tƣơng tự nhƣ phƣơng pháp mã hóa tồn bộ cơ sở dữ liệu (TDE), nhƣợc điểm của

phƣơng pháp này là nếu ngƣời dùng hoặc tin tặc có thể truy cập cơ sở dữ liệu, thì hắn ta có thể trích xuất dữ liệu từ cơ sở dữ liệu theo cách thơng thƣờng. Điều này có nghĩa là phƣơng pháp mã hóa dữ liệu sử dụng các thiết bị lƣu trữ đặc biệt cũng không thể bảo vệ đƣợc dữ liệu khỏi bị đánh cắp nếu ngƣời dùng có quyền truy nhập vào dữ liệu trong cơ sở

dữ liệu.

6.4.Mt s bin pháp bo mật cơ sở d liu khác

Mục này trình bày một số biện pháp bổ sung cho bảo mật cơ sở dữ liệu, bao gồm: bảo vệ chuỗi kết nối cơ sở dữ liệu và tƣờng lửa cơ sở dữ liệu.

Bo v chui kết nối cơ sở d liu

Chuỗi kết nối cơ sở dữ liệu (Database connection string) là chuỗi mô tả các tham số

mà các máy khách sử dụng để tạo kết nối đến máy chủ cơ sở dữ liệu. Chẳng hạn, một

134 ConnectionString = "Driver={SQL Server}; Network=DBMSSOCN;

Server=192.168.0.10;Address=192.168.0.10;WSID=192.168.0.100; Database=CustomersDB;UID=test_user;PWD=Abc123456;"

Do hầu hết các chuỗi kết nối có chứa các thơng tin nhạy cảm, nhƣ địa chỉ IP máy chủ, tên truy nhập và mật khấu ngƣời dùng đƣợc lƣu trong các file ở dạng văn bản rõ nên có

nguy cơ bị tin tặc lạm dụng. Do vậy, cần mã hóa các chuỗi kết nối cơ sở dữ liệu để đảm bảo an toàn.

Tường lửa cơ sở d liu

Tƣờng lửa cơ sở dữ liệu là hệ thống lọc truy vấn cơ sở dữ liệu bằng phần cứng hoặc phần mềm đƣợc đặt ở giữa ngƣời dùng, máy khách, hoặc ứng dụng và các máy chủcơ sở

dữ liệu. Nhiệm vụ chính của tƣờng lửa cơ sở dữ liệu là giám sát, phân tích các câu lệnh gửi đến cơ sở dữ liệu dựa trên tập các luật, hoặc chính sách đã định trƣớc. Nếu câu lệnh hợp lệ thì chuyển đến máy chủ cơ sở dữ liệu để thực thi. Ngƣợc lại, nếu phát hiện câu lệnh độc hại thực hiện việc ngăn chặn, cảnh báo, hoặc ghi log. Hình 6.6 biểu diễn mơ

hình tƣờng lửa lọc truy vấn kết hợp với kiểm toán (audit) cơ sở dữ liệu.

Ƣu điểm của tƣờng lửa cơ sở dữ liệu là có thể thực hiện việc lọc truy vấn tập trung, từ

nhiều máy khách, ứng dụng đến nhiều máy chủ cơ sở dữ liệu triển khai trong hệ thống mạng. Hơn nữa, tƣờng lửa cơ sở dữ liệu không yêu cầu sửa mã ứng dụng cũng nhƣ mã

truy vấn cơ sở dữ liệu. Nhƣợc điểm của tƣờng lửa cơ sở dữ liệu là làm giảm hiệu năng, do việc phân tích cú pháp các câu lệnh SQL và chạy các tập luật giám sát tiêu tốn nhiều tài ngun tính tốn.

Hình 6.6. Mơ hình tường la lc truy vn kết hp vi kim tốn cơ sở d liu

6.5.Mơ hình bo mt mt s h qun trcơ sở d liu

Mục này giới thiệu kiến trúc hệ thống, mơ hình và các giải pháp bảo mật của 3 hệ

quản trị cơ sở dữ liệu đƣợc sử dụng phổ biến nhất, gồm Microsoft SQL Server, MySQL và Oracle.

135

6.5.1. Microsoft SQL Server

6.5.1.1. Gii thiu

Hệ quản trị cơ sở dữ liệu SQL Server đƣợc Microsoft lần đầu phát hành phiên bản 1.0

vào năm 1989. Đến nay đã có nhiều phiên bản SQL Server đã đƣợc phát hành và phiên bản mới nhất là SQL Server 2017 phát hành vào cuối năm 2017. Microsoft SQL Server là

hệ quản trị cơ sở dữ liệu quan hệ và đƣợc sử dụng khá phổ biến để quản lý các cơ sở dữ liệu cỡ nhỏ và vừa. Trƣớc đây, SQL Server chỉ có thể chạy trên các hệ điều hành Microsoft Windows và Microsoft Windows Server. Tuy nhiên, gần đây SQL Server cũng có thể chạy trên các hệđiều hành dựa trên Linux.

Hình 6.7.Kiến trúc tng th ca Microsoft SQL Server

Hình 6.7 mơ tả kiến trúc tổng thể của Microsoft SQL Server. Theo mơ hình kiến trúc này, Microsoft SQL Server gồm 3 thành phần chính: External protocols (Các giao thức

ngồi), Database engine (Mơ tơ cơ sở dữ liệu) và SQLOS API. Các giao thức ngoài là các giao thức đƣợc sử dụng trong quá trình giao tiếp giữa máy khách và máy chủ cơ sở dữ

liệu. Mô tơ cơ sở dữ liệu là thành phần chính của SQL Server, gồm 2 thành phần con là

mô tơ lƣu trữ và bộ xử lý truy vấn, có trách nhiệm quản lý lƣu trữ và xử lý truy vấn cơ sở

dữ liệu. SQLOS API là thành phần giao tiếp của SQL Server với hệđiều hành nền.

Các cơ sở dữ liệu trong SQL Server đƣợc quản lý bởi mô tơ lƣu trữ (Storage engine)

gồm 2 loại: cơ sở dữ liệu hệ thống và cơ sở dữ liệu ngƣời dùng tạo lập. Có 4 cơ sở dữ liệu hệ thống chứa các dữ liệu cho quản lý hệ thống. Cụ thể:

- Master: Chứa các dữ liệu hệ thống, bao gồm tài khoản truy nhập - MSDB: Chứa các siêu dữ liệu quản lý (Meta data)

- Model: Cơ sở dữ liệu mẫu để tạo các cơ sở dữ liệu khác

136

SQL Server lƣu trữ các cơ sở dữ liệu và các thành phần kèm theo dƣới dạng các file trên hệ thống lƣu trữ. Các file và nhóm file cơ sở dữ liệu bao gồm: các file dữ liệu (*.mdf, *.ndf), các file log giao dịch (*.ldf) và các file sao lƣu.

Bộ xử lý truy vấn (Query processor) có nhiệm vụ dịch, tối ƣu hóa và thực hiện các lệnh SQL từ ngƣời dùng, hoặc máy khách và trả về kết quả. Các lệnh SQL có thể bao gồm lệnh theo dạng T-SQL (Transact SQL), các thủ tục và hàm cơ sở dữ liệu.

6.5.1.2. Mơ hình bo mt

Hình 6.8.Mơ hình bo mt ca SQL Server

Hình 6.8 mơ tả mơ hình bảo mật của SQL Server. Trong mơ hình này, SQL Server thực hiện 2 khâu xác thực ngƣời dùng (login authentication) và kiểm tra quyền truy nhập (verifiy permissions) của ngƣời dùng sau khi xác thực thành cơng. Hình 6.9 mơ tả mơ hình cấp quyền truy nhập vào các đối tƣợng của SQL Server. Theo đó, ngƣời dùng cơ sở dữ liệu đƣợc cấp quyền truy nhập vào các đối tƣợng của cơ sở dữ liệu (nhƣ bảng, khung nhìn, thủ tục,…) thơng qua các vai trị (role).

Hình 6.9.Mơ hình cp quyn truy nhập vào các đối tượng ca SQL Server

Hình 6.10 mơ tả mơ hình phân cấp quản lý quyền truy nhập (roles) của SQL Server.

Trong đó, các vai trị đƣợc chia thành 2 nhóm lớn: các vai trị máy chủ (Server roles), quản lý bởi cơ sở dữ liệu hệ thống Master và các vai trò cơ sở dữ liệu (Database roles), quản lý bởi các cơ sở dữ liệu ngƣời dùng tạo. Các vai trò cơ sở dữ liệu lại chia làm 3 loại: các vai trò cố định (Fixed db roles), các vai trò ngƣời dùng (User db roles) và vai trị

137 cơng cộng (Public role). Tất cảcác vai trò cơ sở dữ liệu sẽ ánh xạđến tập các quyền truy nhập vào các đối tƣợng trong cơ sở dữ liệu.

Hình 6.10. Mơ hình phân cp qun lý quyn truy nhp (roles) ca SQL Server

6.5.2. MySQL

6.5.2.1. Gii thiu

Hình 6.11.Kiến trúc ca h qun trcơ sở d liu MySQL

MySQL là hệ quản trị dữ liệu quan hệ, mã mở đƣợc sử dụng rộng rãi do MySQL hỗ

trợ đầy đủ các tính năng của một hệ quản trị cơ sở dữ liệu mạnh và phiên bản MySQL cộng đồng đƣợc cung cấp miễn phí theo giấy phép GPL. Đã có nhiều phiên bản MySQL

đƣợc phát hành, kể từ phiên bản đầu tiên đƣợc phát hành năm 1995 và đến nay là phiên bản MySQL 5.7.20 đƣợc phát hành cuối năm 2017. MySQL có thể chạy trên hầu hết các hệđiều hành, bao gồm Unix, Linux, Microsoft Windows và MacOS.

138 Kiến trúc của hệ quản trị cơ sở dữ liệu MySQL, nhƣ mô tả trên Hình 6.11 gồm các thành phần: Connectors (Các bộ kết nối), Connection Pool (Bộ lƣu kết nối), Query

Engine (Mô tơ truy vấn), Pluggable Storage Engines (Các mô tơ lƣu trữ có thể cắm

đƣợc), Files and Logs (Các file và log) và Management Services & Utilities (Các dịch vụ

quản lý và tiện ích).

Thành phần Mơ tơ truy vấn lại gồm các mô đun con: SQL Interface (Giao diện SQL), Parser (Bộ kiểm tra và dịch truy vấn), Optimizer (Bộ tối ƣu hóa), Caches & Buffers (Các bộ nhớ cache và bộ đệm). Khác với các hệ quản trị cơ sở dữ liệu khác, MySQL hỗ trợ

nhiều mô lƣu trữkhác nhau. Các mơ tơ lƣu trữ có thể "cắm đƣợc" vào hệ thống thông qua giao diện này. Các mô tơ lƣu trữđƣợc sử dụng phổ biến là MyISAM và InnoDB.

6.5.2.2. Mơ hình bo mt ca MySQL

Hình 6.12.Mơ hình bo mt ca MySQL

Mơ hình bảo mật của MySQL, nhƣ biểu diễn trên Hình 6.12 gồm 4 nhóm biện pháp bảo mật chính: Authentication (Xác thực), Authorization (Trao quyền), Encryption (Mã

hóa) và Firewall & Auditing (Tƣờng lửa và kiểm toán). MySQL hỗ trợ nhiều phƣơng

pháp xác thực ngƣời dùng, bao gồm: xác thực dựa trên hệ điều hành (Windows Active Directory, Linux / LDAP), xác thực cung cấp bởi bản thân MySQL và xác thực Custom.

Phƣơng pháp xác thực Custom là xác thực bằng phƣơng pháp riêng, hoặc đặc thù. Trao quyền là khâu đi kèm sau khi ngƣời dùng cơ sở dữ liệu đƣợc xác thực thành cơng. Các vấn đềcó liên quan đến trao quyền gồm: quản lý đặc quyền, quản trị cơ sở dữ liệu, quyền truy nhập vào cơ sở dữ liệu và các đối tƣợng cơ sở dữ liệu và ngƣời dùng proxy.

Ngoài xác thực và trao quyền, MySQL cũng hỗ trợ một số cơ chế mã hóa, nhƣ giao

thức bảo mật SSL/TLS, các hệ mã hóa khóa bí mật và khóa cơng khai, và chữ ký số.

MySQL cũng hỗ trợ cơng nghệ TDE cho phép mã hóa tồn bộcơ sở dữ liệu. Tƣờng lửa và kiểm toán cơ sở dữ liệu là các biện pháp bổsung tăng cƣơng an ninh cho cơ sở dữ liệu của MySQL. Tƣờng lửa cho phép lọc các câu lệnh SQL và chặn các câu lệnh SQL không hợp lệ, nhƣ minh họa trên Hình 6.13. Trong khi đó, kiểm tốn cơ sở dữ liệu giúp giám sát việc tuân thủchính sách an ninh và giám sát các hành vi đăng nhập và truy vấn cơ sở dữ

139

Hình 6.13. Mơ hình tường lửa cơ sở d liu ca MySQL

6.5.3. Oracle

6.5.3.1. Gii thiu

Hình 6.14.Kiến trúc h thng Oracle DBMS

Hệ quản trị cơ sở dữ liệu Oracle, hay máy chủ Oracle (Oracle Server) là một hệ quản trị cơ sở dữ liệu với cách tiếp cận mở, toàn diện và tích hợp trong quản lý thông tin.

Oracle đã đƣợc phát hành qua nhiều phiên bản và phiên bản mới nhất là Oracle 12c Release 2 phát hành đầu năm 2017. Oracle Server có thể chạy trên hầu hết các hệ điều hành, bao gồm Unix, Linux và Microsoft Windows.

Hình 6.14 mơ tả kiến trúc hệ thống của hệ quản trị cơ sở dữ liệu Oracle. Theo đó,

Oracle Server gồm 2 thành phần: một tiến trình Oracle (Oracle Instance) và cơ sở dữ liệu Oracle (Oracle Database). Tiến trình Oracle là phƣơng tiện để truy nhập cơ sở dữ liệu Oracle. Mỗi tiến trình Oracle thƣờng xuyên mở một và chỉ một cơ sở dữ liệu. Cơ sở dữ liệu Oracle là một tập các dữ liệu mà đƣợc xử lý nhƣ các đơn vị. Cơ sở dữ liệu Oracle gồm 3 loại file: file dữ liệu, file điều khiển và file log redo.

140 Mỗi Oracle Instance gồm 2 thành phần: các cấu trúc bộ nhớ (memory structures) và các tiến trình ngầm (background processes). Các cấu trúc bộ nhớ lại gồm 2 vùng bộ nhớ:

SGA (System Global Area) và PGA (Program Global Area). SGA đƣợc cấp phát khi tiến

trình Oracle đƣợc kích hoạt và nó là một thành phần cơ bản của tiến trình Oracle. PGA đƣợc cấp phát khi máy chủ đƣợc kích hoạt. Các tiến trình ngầm là các tiến trình hỗ trợ ghi cơ sở dữ liệu, ghi log, giám sát hệ thống, giám sát tiến trình... Ngồi ra, hệ quản trị cơ

sở dữ liệu Oracle cịn có 1 tiến trình ngƣời dùng (User process) và 1 tiến trình máy chủ

(Server process). Tiến trình ngƣời dùng đƣợc kích hoạt khi ngƣời dùng cơ sở dữ liệu tạo kết nối đến máy chủ Oracle và tiến trình máy chủ đƣợc kích hoạt và kết nối đến Oracle

Instance khi ngƣời dùng thiết lập 1 phiên làm việc, nhƣ mô tả trên Hình 6.15.

Hình 6.15. Mơ hình người dùng kết nối đến Oracle Server 6.5.3.2. Các bin pháp bo mt cơ sở d liu Oracle

Hình 6.16.Các bin pháp bo mật cơ sở d liu Oracle

Tƣơng tự nhƣ các hệ quản trị cơ sở dữ liệu khác, Oracle cũng hỗ trợ hầu hết các biện pháp bảo mật truyền thống, bao gồm quản lý tài khoản ngƣời dùng, xác thực và trao quyền, vai trò và quản lý quyền truy nhập đến các đối tƣợng trong cơ sở dữ liệu. Ngồi ra, Oracle cịn cung cấp một số biện pháp bảo mật nâng cao, nhƣ liệt kê trên Hình 6.16.

Theo đó, các biện pháp bảo mật nâng cao đƣợc chia thành 3 nhóm: giám sát

(Monitoring), điều khiển truy nhập (Access control), mã hóa và đặt mặt nạ (Encryption and Masking). Phần tiếp theo trình bày một số biện pháp bảo mật tiêu biểu thuộc 3 nhóm kể trên.

141 Hình 6.17 mơ tả phƣơng thức làm việc của cơng nghệ mã hóa tồn bộ cơ sở dữ liệu (TDE) hỗ trợ bởi máy chủ Oracle. Theo đó, dữ liệu đƣợc mã hóa ở mức cơ sở dữ liệu, hồn tồn trong suốt với ngƣời dùng. Hình 6.18 biểu diễn mơ hình sao lƣu an tồn của Oracle (Oracle Secure Backup). Theo mơ hình này, dữ liệu sao lƣu đƣợc mã hóa và lƣu

ra băng từ hoặc đẩy lên các đám mây. Hình 6.19 biểu diễn cơ chế đặt mặt nạ che dữ liệu

nhạy cảm (Oracle Data Masking) - các dữ liệu nhạy cảm, nhƣ mức lƣơng đƣợc che

(mask) trong môi trƣờng phát triển, giúp giảm nguy cơ rò rỉ các dữ liệu nhạy cảm từ

nhóm phát triển. Hình 6.20 biểu diễn cơ chế Oracle Database Vault. Theo đó, hệ thống

Một phần của tài liệu Bài giảng An toàn ứng dụng web và cơ sở dữ liệu (Trang 134)

Tải bản đầy đủ (PDF)

(161 trang)