1. Trang chủ
  2. » Giáo án - Bài giảng

DauHoang DBSecurity chuong 3 cac co che bao mat CSDL

119 170 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 119
Dung lượng 1,5 MB

Nội dung

Trang 11  Các phương pháp xác thực hỗ trợ bởi DB2 UDB 8.2:  SERVER_ENCYPT: Xác thực thực hiện trên máy chủ và máy khách phải cung cấp tên người dùng và mật khẩu;  KERBEROS: Sử dụng g

Trang 1

BÀI GIẢNG MÔN

AN TOÀN CSDL NÂNG CAO

Giảng viên: TS Hoàng Xuân Dậu

E-mail: dauhx@ptit.edu.vn

Bộ môn: An toàn thông tin

Khoa: Công nghệ thông tin

CHƯƠNG 3 – CÁC CƠ CHẾ BẢO MẬT CƠ SỞ DỮ LIỆU

Trang 3

Trang 3

Xác thực & trao quyền

 Bảo mật mật khẩu

Trang 4

Trang 4

3.1.1 Xác thực & trao quyền

 Điều khiển truy cập vào CSDL nói riêng hoặc các hệ thống nói chung dựa trên 2 dịch vụ cơ bản:

 Xác thực (Authentication): Là quá trình xác minh tính chân thực của các thông tin nhận dạng mà người dùng cung cấp

 Trao quyền (Authorization): Xác định các tài nguyên mà người dùng được phép truy nhập sau khi người dùng đã được xác thực

Trang 5

Trang 5

 Thông tin nhận dạng người dùng có thể gồm:

 Bạn là ai (Who you are)?

• CMND

• Bằng lái xe

• Vân tay,

 Những cái bạn biết (What you know) ?

• Tên truy nhập, mật khẩu,

Trang 6

Trang 6

 Xác thực 1 hoặc nhiều nhân tố:

 Xác thực 1 nhân tố: các nhân tố xác thực trong 1 nhóm kể trên

• VD: mật khẩu, hoặc tên người dùng + mật khẩu

 Xác thực 2 nhân tố: các nhân tố xác thực trong 2 nhóm kể trên

• VD: Thẻ ATM + PIN

 Xác thực 3 nhân tố: các nhân tố xác thực trong 3 nhóm kể trên

• VD: Thẻ ATM + Vân tay + PIN

 Nguyên tắc chung: Số nhân tố sử dụng trong 1 quá trình xác thực càng nhiều thì nó càng an toàn:

 VD: Thẻ + vân tay + PIN cho mức an toàn rất cao

3.1.1 Xác thực & trao quyền

Trang 7

Trang 7

 Xác thực là thành phần cơ sở của mô hình bảo mật

Trang 8

Trang 8

3.1.1 Xác thực & trao quyền

 Lựa chọn phương pháp xác thực phù hợp trong số các

phương pháp xác thực sẵn có:

 Không xác thực (No authentication / Trusted client)

 Xác thực dựa trên hệ điều hành

 Xác thực dựa trên hệ quản trị CSDL

 Xác thực hỗn hợp (hệ điều hành hoặc hệ quản trị CSDL)

Trang 10

Trang 10

3.1.1 Xác thực & trao quyền

 Các phương pháp xác thực của một số DBMS cụ thể:

 Các phương pháp xác thực hỗ trợ bởi DB2 UDB 8.2;

 Các phương pháp xác thực hỗ trợ bởi MS SQL Server;

 Các phương pháp xác thực hỗ trợ bởi Oracle Server

Trang 11

Trang 11

 Các phương pháp xác thực hỗ trợ bởi DB2 UDB 8.2:

 SERVER_ENCYPT: Xác thực thực hiện trên máy chủ và máy khách phải cung cấp tên người dùng và mật khẩu;

 KERBEROS: Sử dụng giao thức KERBEROS để xác thực máy khách KERBEROS cho phép một máy khách xác thực và trao đổi khóa với một máy chủ dịch vụ nhờ sự hỗ trợ của máy chủ KERBEROS;

 KRB_SERVER_ENCRYPT: Cho phép lựa chọn phương pháp xác

thực sử dụng KERBEROS hoặc SERVER_ENCYPT;

 DATA_ENCRYPT: Tương tự SERVER_ENCYPT, nhưng dữ liệu trao đổi trong cả phiên làm việc được mã hóa;

Trang 12

Trang 12

3.1.1 Xác thực & trao quyền

 Các phương pháp xác thực hỗ trợ bởi DB2 UDB 8.2:

 DATA_ENCRYPT_CMP: Xác thực tương tự SERVER_ENCYPT và truyền thông trong phiên làm việc được mã hóa nếu máy khách hỗ trợ

và không được mã hóa nếu máy khách không hỗ trợ;

 GSSPLUGIN: Phương pháp xác thực mở rộng, cho phép sử dụng bất

kỳ một phương pháp xác thực nào tuân theo GSS API (Generic

Security Service Application Program Interface);

 GSS_SERVER_ENCRYPT: Phương pháp xác thực có thể là

GSSPLUGIN hoặc SERVER_ENCRYPT

Trang 13

Trang 13

 Các phương pháp xác thực hỗ trợ bởi MS SQL Server:

 Xác thực bởi hệ điều hành (Windows authetication)

• MS SQL hoàn toàn dựa vào hệ điều hành để xác thực người dùng và liên kết người dùng với các nhóm;

• Là phương pháp xác thực Microsoft khuyến nghị sử dụng

 Xác thực hỗn hợp (Mixed authetication)

• Xác thực bởi Windows

– Được thực hiện nếu máy khách hỗ trợ NTLM (NT LAN Manager) hoặc Kerberos

• Xác thực bởi MS SQL Server

Trang 14

Trang 14

3.1.1 Xác thực & trao quyền

 Các phương pháp xác thực hỗ trợ bởi Oracle: Oracle hỗ trợ nhiều phương pháp xác thực, trong đó, 2 phương pháp

Trang 16

Trang 16

3.1.1 Xác thực & trao quyền

 Vấn đề quản lý và sử dụng những người dùng có quyền

Trang 17

Trang 17

 Mặc dù có nhiều công nghệ xác thực, nhưng xác thực dựa trên mật khẩu vẫn là phương pháp được sử dụng phổ biến nhất trong xác thực người dùng CSDL;

 Lý do cho sự phổ biến của việc sử dụng mật khẩu:

 Đảm bảo được mức an toàn tối thiểu;

 Đơn giản, dễ sử dụng;

 Chi phí cài đặt, quản lý và vận hành thấp

Trang 18

– Chữ thường, hoa, chữ số, ký tự đặc biệt:

» abcd1234: mật khẩu tồi

» Abcd123$: mật khẩu tốt (về mặt tính toán)

• Độ dài của mật khẩu

– Mật khẩu người dùng tốt có chiều dài >= 8 ký tự – Mật khẩu quản trị tốt cần có chiều dài >=10 ký tự – Mật khẩu cho truy nhập CSDL từ ứng dụng nên đảm bảo có đủ 4 loại ký

tự và độ dài từ 10 ký tự trở lên

 Tuổi thọ của mật khẩu

Trang 19

Trang 19

 Tính bảo mật của kỹ thuật điều khiển truy nhập sử dụng mật khẩu dựa trên:

 Tuổi thọ của mật khẩu

• Mật khẩu không hết hạn (không nên dùng)

• Mật khẩu có thời hạn sống (thời gian sống của mật khẩu nên đặt phụ thuộc chính sách an ninh, an toàn của cơ quan, tổ chức

– Có thể là 1, 2, 3, hoặc 6 tháng

• Mật khẩu dùng 1 lần (ít dùng trong xác thực người dùng CSDL)

Trang 20

 Sử dụng các mật khẩu ngắn, dễ đoán, như tên, ngày tháng năm

sinh, tên đăng nhập

 Dùng một mật khẩu (kể cả mật khẩu tốt) trên nhiều hệ thống

Trang 21

Trang 21

 Áp dụng chính sách quản lý mật khẩu "mạnh":

Trang 22

 Enforce password expiration: Áp dụng thời gian hết hạn cho mật khẩu

 User must change password at next logon: Bắt buộc người dùng phải đổi mật khẩu ở lần đăng nhập tiếp theo

 Chính sách quản lý mật khẩu được áp dụng là chính sách

an ninh của hệ điều hành

Trang 23

Trang 23

 Chính sách quản lý mật khẩu được áp dụng là chính sách

an ninh của hệ điều hành: MS Windows

Trang 25

Trang 25

 Dùng công cụ crack để kiểm tra độ an toàn của mật khẩu CSDL:

 SQLDict: http://ntsecurity.nu/toolbox/sqldict/

Trang 26

Trang 26 3.1.2 Bảo mật mật khẩu

 Sử dụng công cụ quản lý mật khẩu: KeePass

Trang 27

Trang 27

 Dữ liệu và cơ sở dữ liệu có thể được đảm bảo an toàn

thông qua việc đảm bảo an toàn cho ứng dụng truy nhập

Trang 28

Trang 28

3.2.1 Quản lý người dùng CSDL

 Đa phần các ứng dụng CSDL (như các website) cho phép nhiều người dùng ứng dụng, nhưng chúng thường chỉ dùng

1 hoặc một số ít tài khoản để kết nối với CSDL;

 Mô hình chia sẻ người dùng CSDL trong ứng dụng web:

Trang 29

Trang 29

 VD: Một trang web bán sách trực tuyến có thể hỗ trợ nhiều lớp người dùng thông qua các cơ chế phân quyền:

Khách viếng thăm được phép tìm kiếm sách, xem các thông tin chi tiết

về sách, chọn sách và đưa vào giỏ hàng;

Thành viên có thể thực hiện việc đặt hàng và thanh toán, cũng như

theo dõi việc chuyển hàng và gửi phản hồi về chất lượng phục vụ;

Nhân viên có thể thêm mới, cập nhật thông tin về sách và quản lý các

đơn hàng của khách hàng

Trang 30

Trang 30

3.2.1 Quản lý người dùng CSDL

 Trang web có thể sử dụng 1 tài khoản hoặc 1 số ít tài khoản

để kết nối đến CSDL và thao tác dữ liệu

 Để đảm bảo an toàn cao, cần kết hợp hài hòa giữa việc

phân quyền truy nhập ở mức ứng dụng và ở mức CSDL:

 Phân quyền người dùng ở mức ứng dụng: phụ thuộc vào tính năng hoặc nhóm tính năng người dùng có thể truy nhập;

 Phân quyền người dùng CSDL: phụ thuộc vào yêu cầu xem, hay thay đổi dữ liệu

Trang 31

Trang 31

 Hạn chế của việc quản lý quyền truy nhập ở mức ứng dụng:

 Do CSDL tuyệt đối "tin tưởng" ứng dụng và người phát triển ứng

dụng, nên bất kỳ khiếm khuyết hoặc lỗ hổng ở ứng dụng có thể dẫn đến các nguy cơ đối với CSDL;

 Ứng dụng không thể kiểm soát người dùng sử dụng các tài khoản truy nhập trực tiếp CSDL không thông qua ứng dụng:

• Người phát triển có thể sử dụng các tài khoản quản trị để thao tác dữ liệu trực tiếp;

• Người quản lý có thể sử dụng tài khoản riêng để chạy các câu truy vấn đặc biệt trích xuất dữ liệu

Trang 32

Trang 32

3.2.1 Quản lý người dùng CSDL

 Cần có chính sách quản lý và sử dụng các tài khoản truy

xuất CSDL giữa ứng dụng và người dùng trực tiếp cho phù hợp, nhằm đảm bảo an toàn cho cả ứng dụng và CSDL;

 Người dùng tài khoản truy xuất CSDL từ ứng dụng chỉ nên tập trung vào các thao tác dữ liệu;

 Người dùng trực tiếp truy nhập CSDL chỉ nên tập trung vào các thao tác quản trị hệ thống và quản trị CSDL

Trang 33

Trang 33

 Mô hình kết nối máy chủ web với máy chủ CSDL thông qua tường lửa:

Trang 34

Trang 34

3.2.2 Bảo mật hệ thống file của ứng dụng

 Thiết lập quyền truy nhập phù hợp

 Giữ bí mật mã nguồn

 Sử dụng phương pháp ẩn thông tin

 Vấn đề liệt kê và duyệt các thư mục

Trang 35

Trang 35

 Kết hợp sử dụng công cụ quản trị quyền truy nhập vào hệ thống file cục bộ của HĐH để thiết lập quyền truy nhập phù hợp cho các nhóm người dùng:

 Các trang công cộng: cho phép tất cả người dùng

 Các trang nội bộ: yêu cầu xác thực bằng username+password, hoặc quản lý quyền truy nhập theo phiên làm việc

 Các trang quản trị: bổ sung giới hạn các máy/mạng được phép truy cập thông qua địa chỉ IP

 Các chứa dữ liệu nhạy cảm của HĐH, máy chủ web: hạn chế truy

nhập

Trang 38

Trang 38

3.2.2 Bảo mật hệ thống file của ứng dụng –

Giữ bí mật mã nguồn

 Rò rỉ mã scripts do sao lưu (backup):

 Nhiều trình soạn thảo tự động lưu các nội dung cũ của file sang file backup, trước khi lưu nội dung cập nhật vào file Tên file backup có thể là:

Trang 39

Trang 39

 Rò rỉ thông tin từ phần chú thích mã:

Trang 40

Trang 40

3.2.2 Bảo mật hệ thống file của ứng dụng –

Sử dụng phương pháp ẩn thông tin

 Phương pháp ẩn thông tin truy nhập (obscurity) có thể được

sử dụng như một phương pháp bổ sung để tăng cường an ninh

 Nó không nên được sử dụng là biện pháp duy nhất

 Nên được dùng kết hợp với các biện pháp khác

Trang 41

Trang 41

 Một số ví dụ về ẩn thông tin truy nhập:

 Sử dụng cổng không chuẩn cho trang nội bộ, trang quản trị VD các cổng 8000, 8080,

 Sử dụng URL riêng, không thông dụng cho trang nội bộ, trang quản trị

https://admin4963.mysite.com https://mysite.com/admin4963/

Trang 42

Trang 42

3.2.2 Bảo mật hệ thống file của ứng dụng

 Vấn đề liệt kê và duyệt các thư mục:

 Cho phép/cấm liệt kê thư mục

• Sử dụng trang ngầm định

• Cấm liệt kê và sử dụng trang để báo lỗi

 Duyệt các thư mục thông qua chuỗi duyệt

• Sử dụng các bộ lọc

• Hạn chế việc đọc ghi hệ thống file dựa trên dữ liệu/tên file trực tiếp từ

người dùng

Trang 43

 Có thể thực hiện rà quét, phân tích web logs tự động sử

dụng các công cụ, hoặc các scripts,…

Trang 44

Trang 44

3.3 Bảo mật các đối tượng trong CSDL

 Quyền truy nhập đến các đối tượng trong CSDL có thể được thiết lập tùy thuộc vào chính sách quản trị CSDL và ứng

dụng

 Mỗi tài khoản người dùng được cấp quyền truy nhập thông qua việc gán vào một hoặc một số nhóm vai trò (roles);

 Một người dùng có thể truy nhập một hoặc một số CSDL;

 Việc truy nhập vào từng đối tượng trong CSDL có thể được gán riêng

Trang 46

Trang 46 3.3 Bảo mật các đối tượng trong CSDL

 Gán tài khoản người dùng vào các server roles (MS-SQL)

Trang 50

Trang 50

3.3 Bảo mật các đối tượng trong CSDL

 Quyền truy nhập gồm:

 Execute: với thủ tục, hàm và trigger

 SELECT, INSERT, UPDATE, DELETE và một số quyền khác với

bảng, view

Trang 51

Trang 51

 Giới thiệu về mã hóa CSDL

 Mã hóa dữ liệu trong bảng

 Mã hóa toàn bộ dữ liệu

 Mã hóa dữ liệu trên đường truyền

 Mã hóa dữ liệu sử dụng các

thiết bị lưu trữ đặc biệt

Trang 52

Trang 52

3.4 Sử dụng mã hóa – Giới thiệu

 Các kỹ thuật mã hóa có thể được sử dụng để bảo vệ dữ liệu lưu trong CSDL cũng như để bảo vệ cả CSDL

 Hai phương pháp phổ biến được sử dụng:

 Mã hóa (Encryption);

 Băm

Trang 53

• Với hàm băm 1 chiều thì không giải mã được

• Các giải thuật hăm thông dụng: MD4, MD5, MD2, SHA1, SHA2, SHA3,

• Thường được dùng để mã hóa mật khẩu

Trang 54

Trang 54

3.4 Sử dụng mã hóa – Mã hóa dữ liệu trong bảng

 Dữ liệu lưu trong bảng có thể được mã hóa theo 2 hướng:

 Sử dụng các hàm mã hóa/giải mã trong CSDL để mã hóa/giải mã khi thực hiện các thao tác ghi/đọc

• Các hệ quản trị CSDL cũ thường không hỗ trợ các hàm mã hóa/giải mã

• Các hệ quản trị CSDL mới hỗ các hàm mã hóa/giải mã ở mức hạn chế

 Mã hóa / giải mã dữ liệu tại lớp ứng dụng

• Thư viện API của ứng dụng hỗ trợ các hàm mã hóa/giải mã mạnh

 Nên sử dụng các cơ chế mã hóa ở mức ứng dụng

Trang 56

Trang 56

3.4 Sử dụng mã hóa – Mã hóa dữ liệu toàn bộ

 Dữ liệu trong các bảng và cả dữ liệu quản lý các bảng có thể được mã hóa nhờ các công nghệ đặc biệt thực hiện trực

tiếp trên máy chủ CSDL;

 Dữ liệu được mã hóa khi nó được ghi vào CSDL;

 Dữ liệu được giải mã sau khi được đọc từ CSDL và nạp vào bộ nhớ

Trang 57

Trang 57

 Công nghệ Transparent Data Encryption (TDE) cho phép mã hóa từng khối dữ liệu khi nó được ghi vào CSDL và giải mã khi khối được đọc ra từ CSDL;

 Công nghệ TDE được hỗ trợ bởi nhiều hệ quản trị CSDL:

 MS-SQL

 Oracle

 IBM DB2

Trang 58

Trang 58 3.4 Sử dụng mã hóa – Mã hóa dữ liệu toàn bộ - TDE

Trang 59

Trang 59

 Ưu điểm:

 Hoàn toàn trong suốt với người dùng

 Nhược điểm:

 Tăng tải máy chủ CSDL;

 Nếu người dùng hoặc tin tặc có thể truy cập CSDL, thì hắn ta có thể trích xuất dữ liệu từ CSDL theo cách thông thường  không bảo vệ được dữ liệu khỏi bị đánh cắp

Trang 60

Trang 60

3.4 Sử dụng mã hóa – Mã hóa dữ liệu truyền

 Dữ liệu trao đổi giữa máy khách và máy chủ CSDL có thể được bảo vệ sử dụng các kỹ thuật dựa trên mã hóa:

 Sử dụng SSL/TLS:

• Cần có chứng chỉ số khóa công khai cho máy chủ

• 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 toàn vẹn dữ liệu

• Xác thực thực thể

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

Trang 61

Trang 61

 Dữ liệu trao đổi giữa máy khách và máy chủ CSDL có thể

được bảo vệ sử dụng các kỹ thuật dựa trên mã hóa:

 Sử dụng IPSec

• Tạo đường hầm/kênh giao tiếp an toàn giữa máy chủ và máy khách

• Hai chế độ làm việc: Transport / Tunnel

• Hai phương thức mã hóa: AH và ESP

Trang 62

Trang 62

3.4 Sử dụng mã hóa – Mã hóa dữ liệu sử dụng TB đặc biệt

 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ữ CSDL

 Các thiết bị lưu trữ (thường là HDD và RAID) hỗ trợ sẵn khả năng mã hóa/giải mã, nên toàn bộ CSDL được bảo vệ bằng

mã hóa

 Nhược điểm:

 Nếu người dùng hoặc tin tặc có thể truy cập CSDL, thì hắn ta có thể trích xuất dữ liệu từ CSDL theo cách thông thường  không bảo vệ được dữ liệu khỏi bị đánh cắp

Trang 63

Trang 63

 Bảo vệ chuỗi kết nối CSDL (connection string):

 Hầu hết các chuỗi kết nối được lưu trong các file ở dạng text  Có nguy cơ bị tin tặc lạm dụng

 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;"

 Cần mã hóa các chuỗi kết nối CSDL để đảm bảo an toàn

Trang 64

Trang 64

3.5 Một số biện pháp bảo mật CSDL và ứng dụng khác

 Tường lửa CSDL:

 Giám sát, phân tích các câu lệnh gửi đến CSDL

 Nếu phát hiện câu lệnh độc hại  ngăn chặn

 Phát hiện dựa trên tập các luật/chính sách đã định trước

 Nhược điểm:

• 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 nguyên tính toán

Trang 65

Trang 65

Trang 66

 Mật khẩu thường được sinh ngẫu nhiên

 Chuyển giao mật khẩu:

• In ra giấy một danh sách mật khẩu để dùng dần

• Gửi qua các phương tiện khác như SMS

• Sử dụng các thiết bị chuyên dụng, như các e-token,

 Ưu điểm: an toàn hơn, tránh được tấn công kiểu replay (lấy được mật khẩu dùng lại)

 Nhược điểm: người sử dụng khó nhớ mật khẩu

Trang 67

Trang 67

 Sử dụng các phương pháp xác thực form, trang web như CAPTCHA

Ngày đăng: 30/04/2019, 00:26

TỪ KHÓA LIÊN QUAN

w