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

TRIỂN KHAI THỬ NGHIỆM CÁC KỸ THUẬT BẢO MẬT THÔNG TIN TRÊN HỆ CSDL NOSQL MONGODB (Luận Văn Thạc Sĩ)

90 6 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

Tiêu đề Triển khai thử nghiệm các kỹ thuật bảo mật thông tin trên hệ CSDL NoSQL MongoDB
Tác giả Nguyen Thanh Long
Trường học Viện Công Nghệ Thông Tin Và Truyền Thông, Đại Học Bách Khoa Hà Nội
Chuyên ngành Khoa học máy tính
Thể loại Luận văn thạc sĩ
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 90
Dung lượng 1,71 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • CHƯƠNG 1. TỔNG QUAN VỀ CSDL NOSQL VÀ HỆ QUẢN TRỊ (7)
    • 1.1. Giới thiệu CSDL NOSQL (7)
      • 1.1.1. Đặc điểm NoSQL (7)
      • 1.1.2. Các mô hình của NoSQL (8)
      • 1.1.3. Ưu và nhược điểm của hệ quản trị cơ sở dữ liệu NoSQL (9)
      • 1.1.4. Phân loại NoSQL (10)
      • 1.1.5. So sánh hệ quản trị cơ sở dữ liệu NoSQL và SQL (14)
      • 1.1.6. Ứng dụng của NoSQL hiện nay (15)
    • 1.2. Giới thiệu về hệ quản trị CSDL MongoDB (16)
      • 1.2.1. Khái niệm (16)
      • 1.2.2. So sánh MongoDB với cơ sở dữ liệu quan hệ (18)
      • 1.2.3. Quản lý cơ sở dữ liệu MongoDB (19)
  • CHƯƠNG 2. AN TOÀN VÀ BẢO MẬT THÔNG TIN ĐỐI VỚI CSDL (32)
    • 2.1.2. Lạm dụng đặc quyền (33)
    • 2.1.3. Tấn công SQL Injection (33)
    • 2.1.4. Mã độc (34)
    • 2.1.5. Lợi dụng vết kiểm toán yếu (34)
    • 2.1.6. Lợi dụng sự sơ hở để khai thác phương tiện lưu trữ (35)
    • 2.1.7. Khai thác các CSDL có điểm yếu và bị lỗi cấu hình (35)
    • 2.1.8. Rò rỉ các dữ liệu nhạy cảm không được quản lý (35)
    • 2.1.9. Tấn công từ chối dịch vụ (36)
    • 2.1.10. Vấn đề đào tạo và chuyên gia an ninh mạng còn hạn chế (36)
    • 2.2. Các giải pháp an toàn và bảo mật thông tin trong MongoDB (36)
      • 2.2.1. Các giải pháp mã hóa CSDL (36)
      • 2.2.2. Giải pháp mã hóa đường truyền (40)
      • 2.2.3. Giải pháp xác thực (43)
      • 2.2.3. Ủy quyền và kiểm soát truy cập (49)
  • CHƯƠNG 3. TRIỂN KHAI THỬ NGHIỆM VÀ ỨNG DỤNG (53)
    • 3.1. Mô tả thực nghiệm (53)
      • 3.1.1. Mô tả cơ sở dữ liệu (53)
      • 3.1.2. Mô tả hoạt động của cơ sở dữ liệu (54)
    • 3.2. Mô hình hệ thống cơ sở dữ liệu và giải pháp an toàn cho cơ sở dữ liệu 50 1. Các thành phần của hệ thống CSDL (55)
    • 3.1. Mô hình an toàn cho CSDL (55)
      • 3.2.2. Các giải pháp an toàn và bảo mật cho hệ thống cơ sở dữ liệu (55)
    • 3.3. Triển khai thử nghiệm (57)
      • 3.3.1. Tạo cơ sở dữ liệu (57)
      • 3.3.2. Cấu hình xác thực người dùng (60)
      • 3.3.3. Cấu hình kiểm soát truy cập (62)
      • 3.3.4. Cấu hình mã hóa mật khẩu (64)
      • 3.3.5. Cấu hình bảo mật đường truyền (65)
      • 3.3.6. Triển khai tường lửa (71)
  • KẾT LUẬN (83)
  • TÀI LIỆU THAM KHẢO (84)

Nội dung

TRIỂN KHAI THỬ NGHIỆM CÁC KỸ THUẬT BẢO MẬT THÔNG TIN TRÊN HỆ CSDL NOSQL MONGODB (Luận Văn Thạc Sĩ) Cơ sở dữ liệu quan hệ đã thống trị ngành công nghiệp phần mềm trong một thời gian dài khi đã cung cấp cơ chế để lưu trữ dữ liệu liên tục, đồng thời kiểm soát, giao dịch, giao diện được chuẩn hóa và được tích hợp vào các hệ thống dữ liệu ứng dụng, báo cáo. Tuy nhiên, trong vài năm qua chúng ta đã thấy sự gia tăng của một loại cơ sở dữ liệu mới, đó là cơ sở dữ liệu NoSQL, các cơ sở dữ liệu dạng này cho phép lưu trữ các dữ liệu phức tạp, phân tán lớn. NoSQL có nghĩa là không chỉ SQL, ngụ ý rằng khi thiết kế một giải pháp phần mềm hoặc sản phẩm, có nhiều hơn một cơ chế lưu trữ có thể được sử dụng dựa trên các nhu cầu. NoSQL không có một định nghĩa rõ ràng mà chúng ta có thể hiểu là mô hình cơ sở dữ liệu mới có các đặc điểm như: Không sử dụng các mô hình quan hệ, chạy tốt trên các cụm(server), chủ yếu là mã nguồn mở, xây dựng cho web thế kỷ 21, tối thiểu hóa lượcđồ. Tuy nhiên, hiện nay có rất nhiều hiểm họa tấn công vào các CSDL NoSQL. Vì vậy việc đảm bảo ATTT cho các CSDL này là một vấn đề hết sức quan trọng. Xuất phát từ thực tiễn trên, đồ án này thực hiện đề tài “ Tìm hiểu và triển khai thử nghiệm các kỹ thuật mã hóa trên CSDL NoSQL”. CHƯƠNG 1. TỔNG QUAN VỀ CSDL NOSQL VÀ HỆ QUẢN TRỊ CSDL MONGODB 2 1.1. Giới thiệu CSDL NOSQL 2 1.1.1. Đặc điểm NoSQL 2 1.1.2. Các mô hình của NoSQL 3 a) Mô hình dữ liệu tổng hợp 3 b) Mô hình dữ liệu phân tán 3 1.1.3. Ưu và nhược điểm của hệ quản trị cơ sở dữ liệu NoSQL 4 a) Ưu điểm 4 b) Nhược điểm 5 1.1.4. Phân loại NoSQL 5 a) Key-value stores 5 b) Document Databases 6 d) Graph Databases 8 1.1.5. So sánh hệ quản trị cơ sở dữ liệu NoSQL và SQL 9 1.1.6. Ứng dụng của NoSQL hiện nay 10 1.2. Giới thiệu về hệ quản trị CSDL MongoDB 11 1.2.1. Khái niệm 11 1.2.2. So sánh MongoDB với cơ sở dữ liệu quan hệ 13 1.2.3. Quản lý cơ sở dữ liệu MongoDB 14 CHƯƠNG 2. AN TOÀN VÀ BẢO MẬT THÔNG TIN ĐỐI VỚI CSDL NOSQL VÀ HỆ QUẢN TRỊ CSDL MONGODB 27 2.1. Các hiểm họa mất an toàn thông tin trong cơ sở dữ liệu NoSQL .. 27 2.1.1. Lạm dụng các đặc quyền vượt mức và các đặc quyền không còn được dùng 27 2.1.2. Lạm dụng đặc quyền 28 2.1.3. Tấn công SQL Injection 28 2.1.4. Mã độc 29 2.1.5. Lợi dụng vết kiểm toán yếu 29 2.1.6. Lợi dụng sự sơ hở để khai thác phương tiện lưu trữ 30 2.1.7. Khai thác các CSDL có điểm yếu và bị lỗi cấu hình 30 2.1.8. Rò rỉ các dữ liệu nhạy cảm không được quản lý 30 2.1.9. Tấn công từ chối dịch vụ 31 2.1.10. Vấn đề đào tạo và chuyên gia an ninh mạng còn hạn chế 31 2.2. Các giải pháp an toàn và bảo mật thông tin trong MongoDB 31 2.2.1. Các giải pháp mã hóa CSDL 31 2.2.2. Giải pháp mã hóa đường truyền 35 2.2.3. Giải pháp xác thực 38 2.2.3. Ủy quyền và kiểm soát truy cập 44 CHƯƠNG 3. TRIỂN KHAI THỬ NGHIỆM VÀ ỨNG DỤNG 48 3.1. Mô tả thực nghiệm 48 3.1.1. Mô tả cơ sở dữ liệu 48 3.1.2. Mô tả hoạt động của cơ sở dữ liệu 49 3.2. Mô hình hệ thống cơ sở dữ liệu và giải pháp an toàn cho cơ sở dữ liệu 50 3.2.1. Các thành phần của hệ thống CSDL 50 3.1. Mô hình an toàn cho CSDL 50 3.2.2. Các giải pháp an toàn và bảo mật cho hệ thống cơ sở dữ liệu 50 3.3. Triển khai thử nghiệm 52 3.3.1. Tạo cơ sở dữ liệu 52 3.3.2. Cấu hình xác thực người dùng 55 3.3.3. Cấu hình kiểm soát truy cập 57 3.3.4. Cấu hình mã hóa mật khẩu 59 3.3.5. Cấu hình bảo mật đường truyền 60 3.3.6. Triển khai tường lửa 66

Trang 2

MỤC LỤC

LỜI CẢM ƠN i

LỜI CAM ĐOAN ii

KÝ HIỆU, CHỮ VIẾT TẮT vi

LỜI NÓI ĐẦU 1

CHƯƠNG 1 TỔNG QUAN VỀ CSDL NOSQL VÀ HỆ QUẢN TRỊ CSDL MONGODB 2

1.1 Giới thiệu CSDL NOSQL 2

1.1.1 Đặc điểm NoSQL 2

1.1.2 Các mô hình của NoSQL 3

a) Mô hình dữ liệu tổng hợp 3

b) Mô hình dữ liệu phân tán 3

1.1.3 Ưu và nhược điểm của hệ quản trị cơ sở dữ liệu NoSQL 4

a) Ưu điểm 4

b) Nhược điểm 5

1.1.4 Phân loại NoSQL 5

a) Key-value stores 5

b) Document Databases 6

d) Graph Databases 8

1.1.5 So sánh hệ quản trị cơ sở dữ liệu NoSQL và SQL 9

1.1.6 Ứng dụng của NoSQL hiện nay 10

1.2 Giới thiệu về hệ quản trị CSDL MongoDB 11

1.2.1 Khái niệm 11

1.2.2 So sánh MongoDB với cơ sở dữ liệu quan hệ 13

1.2.3 Quản lý cơ sở dữ liệu MongoDB 14

CHƯƠNG 2 AN TOÀN VÀ BẢO MẬT THÔNG TIN ĐỐI VỚI CSDL NOSQL VÀ HỆ QUẢN TRỊ CSDL MONGODB 27

Trang 3

2.1 Các hiểm họa mất an toàn thông tin trong cơ sở dữ liệu NoSQL 27

2.1.1 Lạm dụng các đặc quyền vượt mức và các đặc quyền không còn được dùng 27 2.1.2 Lạm dụng đặc quyền 28

2.1.3 Tấn công SQL Injection 28

2.1.4 Mã độc 29

2.1.5 Lợi dụng vết kiểm toán yếu 29

2.1.6 Lợi dụng sự sơ hở để khai thác phương tiện lưu trữ 30

2.1.7 Khai thác các CSDL có điểm yếu và bị lỗi cấu hình 30

2.1.8 Rò rỉ các dữ liệu nhạy cảm không được quản lý 30

2.1.9 Tấn công từ chối dịch vụ 31

2.1.10 Vấn đề đào tạo và chuyên gia an ninh mạng còn hạn chế 31

2.2 Các giải pháp an toàn và bảo mật thông tin trong MongoDB 31

2.2.1 Các giải pháp mã hóa CSDL 31

2.2.2 Giải pháp mã hóa đường truyền 35

2.2.3 Giải pháp xác thực 38

2.2.3 Ủy quyền và kiểm soát truy cập 44

CHƯƠNG 3 TRIỂN KHAI THỬ NGHIỆM VÀ ỨNG DỤNG 48

3.1 Mô tả thực nghiệm 48

3.1.1 Mô tả cơ sở dữ liệu 48

3.1.2 Mô tả hoạt động của cơ sở dữ liệu 49

3.2 Mô hình hệ thống cơ sở dữ liệu và giải pháp an toàn cho cơ sở dữ liệu 50 3.2.1 Các thành phần của hệ thống CSDL 50

3.1 Mô hình an toàn cho CSDL 50

3.2.2 Các giải pháp an toàn và bảo mật cho hệ thống cơ sở dữ liệu 50

3.3 Triển khai thử nghiệm 52

3.3.1 Tạo cơ sở dữ liệu 52

Trang 4

3.3.2 Cấu hình xác thực người dùng 55

3.3.3 Cấu hình kiểm soát truy cập 57

3.3.4 Cấu hình mã hóa mật khẩu 59

3.3.5 Cấu hình bảo mật đường truyền 60

3.3.6 Triển khai tường lửa 66

KẾT LUẬN 78

TÀI LIỆU THAM KHẢO 79

Trang 5

KÝ HIỆU, CHỮ VIẾT TẮT

AES Advanced Encryption Standard Tiêu chuẩn mã hóa tiên

CMS Content Management System Hệ thống quản trị nội

dung CPU Central Processing Unit Bộ xử lý trung tâm FGAC Fine Grained Access Control Cơ chế kiểm soát min

HTTP HyperText Transfer Protocol Giao thức truyền tải

siêu văn bản

quan hệ

SQL Structured Query Language Ngôn ngữ truy vấn

giao vận

Trang 6

LỜI NÓI ĐẦU

Cơ sở dữ liệu quan hệ đã thống trị ngành công nghiệp phần mềm trong một thời gian dài khi đã cung cấp cơ chế để lưu trữ dữ liệu liên tục, đồng thời kiểm soát, giao dịch, giao diện được chuẩn hóa và được tích hợp vào các hệ thống dữ liệu ứng dụng, báo cáo Tuy nhiên, trong vài năm qua chúng ta đã thấy sự gia tăng của một loại cơ sở dữ liệu mới, đó là cơ sở dữ liệu NoSQL, các cơ sở dữ liệu dạng này cho phép lưu trữ các dữ liệu phức tạp, phân tán lớn NoSQL có nghĩa là không chỉ SQL, ngụ ý rằng khi thiết kế một giải pháp phần mềm hoặc sản phẩm, có nhiều hơn một cơ chế lưu trữ có thể được

sử dụng dựa trên các nhu cầu NoSQL không có một định nghĩa rõ ràng mà chúng ta có thể hiểu là mô hình cơ sở dữ liệu mới có các đặc điểm như: Không

sử dụng các mô hình quan hệ, chạy tốt trên các cụm(server), chủ yếu là mã nguồn mở, xây dựng cho web thế kỷ 21, tối thiểu hóa lược đồ

Tuy nhiên, hiện nay có rất nhiều hiểm họa tấn công vào các CSDL NoSQL Vì vậy việc đảm bảo ATTT cho các CSDL này là một vấn đề hết sức quan trọng Xuất phát từ thực tiễn trên, đồ án này thực hiện đề tài “ Tìm hiểu

và triển khai thử nghiệm các kỹ thuật mã hóa trên CSDL NoSQL”

Trang 7

CHƯƠNG 1 TỔNG QUAN VỀ CSDL NOSQL VÀ HỆ QUẢN TRỊ

CSDL MONGODB 1.1 Giới thiệu CSDL NOSQL

NoSQL là Non – Relational: tạm dịch là phi quan hệ NoSQL là cơ sở

dữ liệu không quan hệ, ràng buộc giữa các Collection (hay còn gọi là các table trong cơ sở dữ liệu bình thường) Tức là giữa các Collection sẽ không có khóa chính hay khóa ngoại như trong cơ sở dữ liệu bình thường Việc này sẽ giảm bớt rối khi cơ sở dữ liệu chúng ta có nhiều bảng NoSQL đặc biệt nhấn mạnh đến mô hình lưu trữ cặp giá trị - khóa và hệ thống lưu trữ phân tán

1.1.1 Đặc điểm NoSQL

Tính nhất quán lỏng lẻo (Looser consistency) : NoSQL tổ chức lưu trữ

và truy xuất dữ liệu theo cơ chế “thoáng hơn trong đảm bảo tính nhất quán của dữ liệu” so với mô hình dữ liệu quan hệ truyền thống nhằm cải thiện hiệu suất, đảm bảo dữ liệu luôn được đáp ứng tốt hơn

Tính nhất quán ngầu nhiên (Eventual consistency): NoSQL không yêu cầu phải đảm bảo tính nhất quán của dữ dữ liệu ngay tức thì mà sẽ hiện thực tính nhất quán của dữ liệu theo cơ chế lan truyền Ví dụ: Khi bạn đổi đổi avartar trên Facebook thì hình ảnh trên trang cá nhân của bạn được đổi tức thì, còn trong danh sách bạn bè và trên trang chủ chưa được cập nhật ngay

Lưu trữ phân phối (Distributed storage): hay còn gọi là lưu trữ phân tán là thay vì dữ liệu được lưu trữ trên một máy chủ duy nhất thì hệ thống sẽ lưu dữ liệu trên nhiều máy khác nhau

Khả năng mở rộng theo chiều ngang (Horizontal scalable): với các hệ quản trị cơ sở dữ liệu quan hệ , khi mà dữ liệu quá lớn phương pháp tăng khả năng lưu trữ là sẽ phải mở rộng (nâng cấp máy chủ), còn đối với NoSQL thì chỉ cần bổ sung thêm máy chủ khác vì hệ thống hỗ trợ lưu trữ phân tán trên nhiều máy

Trang 8

1.1.2 Các mô hình của NoSQL

a) Mô hình dữ liệu tổng hợp

Mô hình cơ sở dữ liệu quan hệ là rất khác nhau so với các loại cấu trúc

dữ liệu mà các nhà phát triển ứng dụng sử dụng Sử dụng các cấu trúc dữ liệu

đã được mô hình hóa bởi các nhà phát triển để giải quyết vấn đề, lĩnh vực khác nhau đã làm tăng chuyển động đi từ mô hình quan hệ và hướng tới mô hình tổng hợp (hầu hết trong số này được đề cập đến trong cuốn sách Domain Driven Design của Eric Evans) Một số mô hình là tổng hợp của các đơn vị dữ liệu mà có sự tương tác với từng phần trong đó với nhau Các đơn vị dữ liệu với cơ sở dữ liệu như là “key-value”, “document”và “column-family”

Tổng hợp để dễ dàng hơn trong việc quản lý dữ liệu lưu trữ trên các cụm Và các đơn vị dữ liệu bây giờ có thể lưu trữ trên bất kỳ máy tính nào và khi lấy ra từ cơ sở dữ liệu chúng ta sẽ được tất cả các dữ liệu có liên quan cùng với nó Cơ sở dữ liệu tổng hợp làm việc tốt nhất khi hầu hết các dữ liệu được thực hiện trên cùng một tổng hợp, ví dụ như khi cần có được một đơn đặt hàng

và tất cả các chi tiết của nó, nó sẽ tốt hơn khi lưu trữ thông tin theo một đối tượng tổng hợp

b) Mô hình dữ liệu phân tán

Cơ sở dữ liệu theo định hướng tổng hợp thực hiện phân phối các dữ liệu

dễ dàng hơn, vì các cơ chế phân phối có để di chuyển tổng hợp và không phải

lo lắng về dữ liệu có liên quan, như tất cả các dữ liệu liên quan được chứa trong tổng hợp Có hai kiểu phân phối dữ liệu:

- Sharding: sharding phân phối dữ liệu khác nhau trên nhiều máy chủ, do

đó mỗi máy chủ đóng vai trò như là nguồn duy nhất cho một tập hợp con của dữ liệu

- Replication: replication sao chép dữ liệu trên nhiều máy chủ, vì vậy mỗi

bit dữ liệu có thể được tìm thấy ở nhiều nơi Replication có hai hình thức:

Trang 9

- Master-slave: làm cho một nút có quyền hạn như là bản sao để xử lý ghi

trong khi slave đồng bộ với master và có thể xử lý đọc

- Peer-to-peer: cho phép ghi vào bất kỳ nút nào mà các nút phối hợp đồng

bộ các bản sao của dữ liệu

Master-slave làm giảm sự xung đột khi có thực hiện cập nhật còn peer-to- peer tránh tải tất cả viết lên một máy chủ duy nhất nên khi có lỗi chỉ xảy ra tại một điểm duy nhất Một hệ thống có thể sử dụng một trong hai hoặc cả hai kỹ thuật trên

1.1.3 Ưu và nhược điểm của hệ quản trị cơ sở dữ liệu NoSQL

a) Ưu điểm

NoSQL Là mã nguồn mở: không phải mất chi phí và có xu hướng tin cậy, an ninh và nhanh hơn để triển khai so với các hệ quản trị cơ sở dữ liệu độc quyền

Linh hoạt trong việc mở rộng và phát triển: Về phía công ty quản lý thì giúp dễ dàng mở rộng máy chủ khi dữ liệu càng ngày càng lớn hoặc lượng truy cập, tải dữ liệu quá lớn, thay vì thuê một máy chủ lớn hơn để thế máy chủ trước thì công ty chỉ cần thuê thêm một máy chủ khác Về phía người lập trình thì giúp dễ dàng thêm Collection (Bảng) hoặc cặp dữ liệu (Cột) Dễ dàng trong việc thống kê, truy vấn nhanh

Áp dụng được công nghệ điện toán đám mây: dễ dàng mở rộng phạm vi được theo yêu cầu có sử dụng một dịch vụ như là Amazon EC2 Giống như tất cả công nghệ đám mây, EC2 dựa vào ảo hóa Liên kết yếu của ảo hóa là sự thực thi của I/O, với bộ nhớ và CPU các các kết nối mạnh NoSQL lưu trữ dữ liệu thường được mở rộng phạm vi theo chiều ngang tận dụng được sự cung cấp mềm dẻo của đám mây Giúp mở rộng dữ liệu dễ dàng hơn

Được các hãng lớn sử dụng như Amazon, BBC, Facebook và Google Làm nền tảng, cơ sở cho các công ty lớn áp dụng cũng như có sự tin cậy cao

về hệ quản trị NoSQL

Trang 10

b) Nhược điểm

Hỗ trợ không đồng đều cho các doanh nghiệp Các doanh nghiệp vừa được sự hỗ trợ tốt nhất từ nhà cung cấp RMBMS (vì được phát triển trước NoSQL một thời gian khá dài) còn các doanh nghiệp nhỏ thì thường sử dụng các mã nguồn mở thì không được sự hỗ trợ tốt nhất

Chưa được sử dụng rộng rãi vì NoSQL vẫn chưa nhận được sự tin cậy với nhiều doanh nghiệp, một phần dữ liệu đã được xây dựng từ lâu, nên việc chuyển đổi cũng là vấn đề khó với nhiều doanh nghiệp và chưa được hỗ trợ tốt

về chức năng cũng như sự ổn định như RMBMS

Còn mới lạ với một số lập trình viên Chưa được sử dụng để đào tạo rộng rãi Chưa có tool hỗ trợ giao diện tương tác cũng như các phương thức tốt nhất Dẫn đến hạn chế về tri thức nghiệp vụ

Chia sẻ dữ liệu chưa theo một tiêu chuẩn chung Mỗi cơ sở dữ liệu NoSQL có các giao diện lập trình ứng dụng API riêng của mình Sự thiếu hụt các tiêu chuẩn có nghĩa là nó không có khả năng để chuyển một cách đơn giản từ một nhà cung cấp này sang một nhà cung cấp khác

1.1.4 Phân loại NoSQL

Hiện tại có nhiều loại cơ sở dữ liệu NoSQL Các loại cơ sở dữ liệu này không giống nhau về các lưu trữ và chúng được chia thành những nhóm sau: a) Key-value stores

Ý tưởng chính của kiểu NoSQL là sử dụng bảng băm (hash-table), nơi

có một khóa duy nhất và một con trỏ chỉ đến mục dữ liệu cụ thể Các mô hình key/value thì đơn giản và dễ thực hiện nhất Nhưng nó sẽ không hiệu quả khi bạn chỉ truy vấn hay update đến một phần dữ liệu trong phần giá trị

Các cơ sở dữ liệu tiêu biểu cho Key-value stores là: Riak, Redis, MemCache, Project Voldemort, CouchBase

Trang 11

Ứng dụng: Do tốc độ truy xuất nhanh, key-value stores thường được dùng

để làm cache cho ứng dụng (Tiêu biểu là Redis và MemCache) Ngoài ra, nó còn được sử dụng để lưu thông tin trong sessions, profiles/preferencer của user

b) Document Databases

Cơ sở dữ liệu Document được lấy cảm hứng từ Lotus Noted và tương tự như key-value stores Mô hình này về cơ bản là phiên bản cơ sử dữ liệu document bao gồm tập hợp document Nhưng chứa bên trong document là tập hợp key-value Những document này được lưu ở định dạng JSON Trong document có nhiều cặp key-value và các cặp key-value này được phép lồng vào nhau Mỗi document sẽ có 1 key Kiểu cơ sở dữ liệu document này hỗ trợ truy vấn hiệu quả hơn

Hình 1.1 Ví dụ về Document Database

Trang 12

Các cơ sở dữ liệu tiêu biểu cho cơ sở dữ liệu Document: CouchDB (JSON), MongoDB (BSON, RavenDB, TerraStone, OrientDB,

Ứng dụng: Do nhanh và linh động, document database thường đóng vài trò làm database cho các ứng dụng prototype, big data, e-commerce, CMS Ngoài ra, ta còn dùng nó để lưu log hoặc history

c) Column Family Stores

Cơ sở dữ liệu được tạo ra để lưu và xử lý một lượng dữ liệu lớn trên nhiều server Cơ sở dữ liệu column-family lưu trữ dữ liệu trong nhiều cột trong mỗi dòng cho từng dòng Column families là một nhóm các dữ liệu liên quan được truy cập với nhau

Hình 1 2 Ví dụ với Column Family Các cơ sở dữ liệu tiêu biểu cho Column Family Stores là: Cassandra (Phát triển bởi Facebook), HyperTable, Apache Hbase, BigTable (của Google), v.v

Ứng dụng: Column-Family Stores được sử dụng khi ta cần ghi một số lượng lớn dữ liệu, big data Nó còn được ứng dụng trong một số CMS và ứng dụng e-commerce

Trang 13

d) Graph Databases

Graph Databases là database sử dụng cấu trúc graph để lưu trữ dữ liệu,

nó khác so với cơ sở dữ liệu quan hệ lưu dữ liệu dưới dạng table, hay NoSQL lưu dữ liệu dưới dạng document key value

Hình 1.3 Ví dụ với Graph Databases Các bản ghi dữ liệu trong graph database được gọi là Nodes, các node được kết nối với nhau bằng các quan hệ Relationships Nodes và Relationships đều có thể có các thuộc tính Các Nodes có thể phân thành các group để dễ quản lý nhờ vào Label

Các cơ sở dữ liệu tiêu biểu cho Graph Databases là: Neo4J, Sones, AllegroGraph, Core Data, DEX, FlockDB, InfoGrid, OpenLink Virtuoso, v.v Ứng dụng: Khi cần truy vấn các mối quan hệ, graph database truy vấn nhanh và dễ hơn nhiều so với database Nó được dùng trong các hệ thống: mạng nơ ron, chuyển tiền bạc, mạng xã hội (tìm bạn bè), giới thiệu sản phẩm (dựa theo sở thích/lịch sử mua sắm của người dùng), v.v

Trang 14

1.1.5 So sánh hệ quản trị cơ sở dữ liệu NoSQL và SQL

Có nhiều điểm yếu kém Thực hiện khá tốt

Mô hình dữ liệu Table

Key/Value, Column- based – Tabular, Document-based, Graph- based data-stores

Hiệu suất

Kém hơn SQL

Relational giữa các bảng

Cực tốt

Bỏ qua SQL

Bỏ qua các ràng buộc dữ liệu

Khả năng mở rộng Hạn chế về lượng Hỗ trợ lượng lớn cho các

node

Trang 15

Phù hợp với công nghệ

Hiệu suất đọc ghi

Kém do thiết kế để đảm bảo sự vào/ra liên tục của dữ liệu

Tốt với mô hình xử lý lô

và những tối ưu về đọc- ghi dữ liệu

Thay đổi số node

trong hệ thống

Phải shutdown cả hệ thống Việc thay đổi số node phức tạp

Không cần phải shutdown cả hệ thống Việc thay đổi số node đơn giản, không ảnh hưởng đến hệ thống

Hỗ trợ lập trình hướng

Bảng 1 1 So sánh SQL và NoSQL

1.1.6 Ứng dụng của NoSQL hiện nay

Ngày nay, với sự phát triển của các ứng dụng Big Data mạng xã hội, yêu cầu đòi hỏi xử lý một lượng dữ liệu vô cùng lớn, tăng lên nhanh chóng hàng ngày Vì vậy mà NoSQL trở thành một cơ sở dữ liệu không thể thiếu để giải quyết những bài toán như vậy

Hình 1.4: Ứng dụng của NoSQL

Ví dụ như Facebook sử dụng NoSQL kết hợp với RDBMS để lưu trữ hàng tỷ bài viết và bình luận đáp ứng hơn 1 tỷ thành viên sử dụng dịch vụ mà vẫn luôn hoạt động ổn định, tính sẵn sàng cao và khả năng phân tán dữ liệu vô

Trang 16

tận Điều đó cho thấy rằng NoSQL là một tư tưởng lưu trữ mới đáng để thời gian và công sức nghiên cứu

1.2 Giới thiệu về hệ quản trị CSDL MongoDB

1.2.1 Khái niệm

MongoDB là một hệ quản trị cơ sở dữ liệu mã nguồn mở, dùng để thiết

kế cơ sở dữ liệu, giúp dễ dàng phát triển và mở rộng, cung cấp hiệu suất cao, tính sẵn sàng cao

Cấu trúc của Mongodb bao gồm các cặp “thuộc tính” – “giá trị”, MongoDB document tương tự như đối tượng JSON Giá trị của thuộc tính bao gồm các thuộc tính giá trị cụ thể (số, chữ, ), document, mảng, mảng các đối tượng

- Cơ sở dữ liệu (Database):

Database là một ô chứa dữ liệu ở mức vật lý(physical), mỗi database sẽ

có nhiều collection và được thiết lập lưu trữ ở một mơi trong máy chủ máy tính Một máy chủ MongoDB thường có thể tạo nhiều cơ sở dữ liệu

- Tập hợp (Collection):

Collection trong MongoDB là nhóm các tài liệu(document), nó tương đương với một bảng(table) trong CSDL, nên thông thường mỗi collection sẽ thuộc về một database duy nhất Tuy nhiên nó có một sự khác biệt đó là nó không có ràng buộc Relationship như các CSDL khác nên việc truy xuất dữ liệu rất nhanh, chính vì thế mỗi colletion có thể chứa nhiều thể loại khác nhau không giống như table trong hệ quản trị myspl là các field cố định

- Tài liệu (Document):

Document trong MongoDB có cấu trúc tương tự như kiểu dữ liệu

JSON,nghĩa là sẽ có các cặp (key => giá trị) nên nó có tính năng động rất lớn Document ta có thể hiểu nó giống như các record dữ liệu trong MYSQL, tuy

Trang 17

nhiên nó có sự khác biệt là các cặp(key=> value) có thể không giống nhau ở mỗi document

Để rõ hơn chúng ta sẽ so sánh MongoDB và một hệ quản trị CSDL

Bảng 1.2 So sánh MongoDB và một hệ quản trị CSDL

Ví dụ dưới đây là một cấu trúc CSDL của học viên lớp H24 trong

MongoDB:

Hình 1.5: Cấu trúc một CSDL MongoDB MongoDB chạy trên hầu hết các nền tảng và hỗ trợ kiến trúc 64-bit để

Trang 18

sử dụng sản xuất và cả hai 64-bit và 32-bit kiến trúc để thử nghiệm

1.2.2 So sánh MongoDB với cơ sở dữ liệu quan hệ

- So sánh các lệnh sử dụng trong MongoDB khác và MySQL

Trang 19

• MongoDB sinh ra để tăng tốc độ truy xuất dữ liệu, phù hợp cho các ứng dụng cần tốc độ phản hồi nhanh(realtime như facebook chẳng hạn) Còn các tác nghiệp cần tính toàn vẹn dữ liệu (trong banking) thì Nosql không đáp ứng được yêu cầu thay vì đó cần sử dụng MySQL

• MongoDB không có tính ràng buộc, vì vậy cần sự cẩn thận khi thao tác trên các collection có quan hệ dữ liệu với nhau

• MongoDB đẩy trách nghiệm thao tác Database cho tầng ứng dụng nên sẽ tốn tài nguyên (tài nguyên bây giờ không còn là vấn đề quá lớn nữa)

• MongoDb có thể mở trộng theo chiều ngang (scale out) phương pháp tăng cường khả năng lưu trữ và xử lý là dùng nhiều máy tính phân tán MongoDb mở rộng theo chiều dọc (scale up) tăng cấu hình server

• MongoDb dùng nhiều máy tính phân tán để lưu trữ dữ liệu nên chi phí sẽ rẻ hơn Mysql Mysql sử dụng những máy chủ có cấu hình cao, độc quyền nên sẽ đắt đỏ hơn

1.2.3 Quản lý cơ sở dữ liệu MongoDB

- Tạo Database:

Lệnh use trong MongoDB: Lệnh use DATABASE _ NAME trong MongoDB được sử dụng để tạo cơ sở dữ liệu Lệnh này sẽ tạo một cơ sở dữ liệu mới, nếu nó chưa tồn tại, nếu không thì lệnh này sẽ trả về cơ sở dữ liệu đang tồn tại Cú pháp như sau:

Trang 20

Ví dụ: Nếu muốn tạo một cơ sở dữ liệu là mydb, sử dụng lệnh như sau:

Để kiểm tra cơ sở dữ liệu đã chọn hiện tại, bạn sử dụng lệnh “show dbs”:

Cơ sở dữ liệu đã được tạo ra không có trong danh sách này Để hiển thị

nó, cần chèn ít nhất một Collection vào trong đó

Sau đó kiểm tra lại cơ sở dữ liệu bằng lệnh “show dbs”

- Xóa Database trong MongoDB:

Lệnh db.dropDatabase( ) trong MongoDB được sử dụng để xóa một cơ

sở dữ liệu đang tồn tại Cú pháp cơ bản của lệnh dropDatabase( ) là như sau:

Lệnh này sẽ xóa cơ sở dữ liệu đã chọn Nếu bạn không chọn bất kỳ cơ sở

dữ liệu nào thì nó sẽ xóa cơ sở dữ liệu mặc định test Ví dụ : Đầu tiên bạn kiểm tra danh sách các cơ sở dữ liệu có sẵn bởi sử dụng lệnh “show dbs”

>show dbs

db.dropDatabase()

Trang 21

Bây giờ, thử kiểm tra danh sách các cơ sở dữ liệu

- Tạo Collection trong MongoDB:

Phương thức db.createCollection(name,options) trong MongoDB được sử dụng để tạo Collection Cú pháp:

Trong lệnh trên name là tên của Collection, Options là một Document và được sử dụng để xác định cấu hình cho Collection:

Name Document (Tùy ý) Xác định các tùy chọn về

Trang 22

Tham số options tùy ý, vì thế chỉ cần đặt tên của Collection Dưới đây là danh sách các tùy chọn bạn có thể sử dụng :

Capped Boolean (Tùy ý) Nếu true, kích hoạt một

Capped Collection Đây là một Collection có kích cỡ cố định mà tự động ghi đè các entry cũ nhất khi nó tiếp cận kích cỡ tối đa Nếu bạn xác định là true, thì bạn cũng cần xác định tham số size

autoindexID Boolean (Tùy ý) Nếu true, tự động tạo chỉ mục

trên trường_id Giá trị mặc định là false

trị byte) cho một Capped Collection Nếu tham số capped là true, thì bạn cũng cần xác định trường này

đa được phép trong một Capped Collection

Bảng 1.6 Bảng trường, kiểu và miêu tả

Trong khi thực hiện việc chèn dữ liệu vào Document, đầu tiên MongoDB kiểm tra trường size của Capped Collection, sau đó mới kiểm tra trường max

Ví dụ: Cú pháp cơ bản của phương thức createCollection( ) mà không có các options như sau:

>use test

switched to db test

>db.createCollection("mycollection")

Trang 23

Bạn có thể kiểm tra Collections bằng câu lệnh:

- Xóa Collection trong MongoDB:

Phương thức db.collection.drop( ) trong MongoDB được sử dụng để xóa một collection cơ sở dữ liệu Cú pháp:

Ví dụ: đầu tiên kiểm tra các collections bên trong:

Bây giờ xóa 1 collection:

Sau đó kiểm tra các cơ sở dữ liệu Collections bên trong:

>

Trang 24

title: 'MongoDB Overview',

description: 'MongoDB is no sql database',

- Chèn Document trong MongoDB:

Để chèn dữ liệu vào Collection trong MongoDB, bạn cần sử dụng phương thức insert( ) hoặc save( ) Cú pháp:

Ví dụ:

Ở đây, mycol là tên Collection, đã được tạo trong phần trên Nếu

collection này chưa tồn tại trong cơ sở dữ liệu, thì MongoDB sẽ tạo Collection này và chèn Document nào trong đó Trong document được chèn, nếu chúng

ta không xác định tham số_id, thì MongoDB gán một ObjectID duy nhất cho document này _ID là một số thập lục phân duy nhất, dài 12 byte cho mỗi Document trong một Collection 12 byte được phân chia như sau (đã được mô

Trang 25

{

title: 'MongoDB Overview',

description: 'MongoDB is no sql database',

title: 'NoSQL Database',

description: 'NoSQL database doesn't have tables',

message: 'My first comment',

dateCreated: new Date(2013,11,10,2,35),

like: 0

Để chèn nhiều document trong một truy vấn đơn, bạn có thể truyền một

mảng các document trong lệnh insert( ) Ví dụ:

bytes incrementer)

Trang 26

>db.mycol.find().pretty()

{

- Truy vấn trong Document trong MongDB

Để truy vấn dữ liệu từ Collection trong MongoDB, bạn cần sử dụng

phương thức find( ) trong MongoDB Cú pháp:

Phương thức find( ) sẽ hiển thị tất cả các Document ở dạng không có cấu trúc( hiển thị không theo cấu trúc nào) cú pháp:

Trang 27

Trong phương thức find( ), nếu bạn truyền nhiều key bằng cách phân biệt chúng bởi dấu phẩy, thì MongoDB xem nó như là điều kiện AND Cú pháp cơ bản của AND trong MongoDB như sau:

>db.mycol.find({key1:value1, key2:value2}).pretty()

Trang 28

>db.mycol.find({"by":"tutorials point","title": "MongoDB

{

Để truy vấn document dựa trên điều kiện OR, bạn cần sử dụng khóa $or

Cú pháp cơ bản của OR trong MongoDB như sau:

Ví dụ:

Trang 29

{ "_id" : ObjectId(5983548781331adf45ec5), "title":"MongoDB Overview"}

>db.mycol.update({'title':'MongoDB Overview'},{$set:{'title':'New

- Cập nhật Document trong MongoDB

Phương thức update( ) hoặc save( ) trong MongoDB được sử dụng để cập nhật document vào trong một collection Phương thức update( ) cập nhật các giá trị trong document( ) đang tồn tai trong phương thức save( ) thay thế document đang tồn tại với document đã truyền trong phương thức save( ) đó

Cú pháp:

Ví dụ:

Ví dụ sau sẽ thiết lập tiêu đề mới „New MongoDB Tutorial‟ của Document

có tiêu đề là „Mongo Overview‟:

Trang 30

{ "_id" : ObjectId(5983548781331adf45ec5), "title":"MongoDB Overview"}

>db.mycol.remove({'title':'MongoDB Overview'})

>db.mycol.find()

>

- Xóa Document trong MongoDB:

Phương thức remove( ) trong MongoDB được sử dụng để xóa Document từ Collection Phương thức remove( ) nhận hai tham số Tham số đầu tiên là deletion criteria xác định document để xóa, và tham số thức hai là just one dùng để xóa 1 hay nhiều document Cú pháp:

Ví dụ:

Remove document có title là „MongoDB Overview‟:

>db.mycol.find()

>

Trang 31

{ "_id" : ObjectId(5983548781331adf45ec5), "title":"MongoDB Overview"}

>db.mycol.find({},{"title":1,_id:0})

>

Phương thức find( ) trong MongDB, đã được giải thích trong truy vấn document chấp nhận tham số tùy ý thứ hai mà là danh sách các trường bạn muốn lấy Trong MongDB, khi bạn thực thi phương thức find( ), thì nó hiển thị các trường của một Document Để giới hạn điều này, bạn cần thiết lập danh sách các trường với giá trị 1 hoặc 0 Giá trị 1 được sử dụng để hiển thị trường, trong khi 0 được dùng để ẩn trường Cú pháp:

Ví dụ:

Ví dụ sau sẽ hiển thị tiêu đề của Document trong khi truy vấn nó:

>db.COLLECTION_NAME.find({},{KEY:1})

Trang 32

CHƯƠNG 2 AN TOÀN VÀ BẢO MẬT THÔNG TIN ĐỐI VỚI CSDL

NOSQL VÀ HỆ QUẢN TRỊ CSDL MONGODB 2.1 Các hiểm họa mất an toàn thông tin trong cơ sở dữ liệu NoSQL

Cơ sở dữ liệu (CSDL) của các tổ chức, doanh nghiệp luôn là mục tiêu của nhiều cuộc tấn công Bởi đây là nơi lưu trữ các thông tin về khách hàng và nhiều dữ liệu bí mật khác.Một trong những nguyên nhân khiến cho các CSDL

dễ bị tổn thương bởi các cuộc tấn công là do các tổ chức, doanh nghiệp chưa

có biện pháp bảo vệ đầy đủ cho tài nguyên này Khi kẻ xấu truy cập vào dữ liệu nhạy cảm, có thể thực hiện tất cả các công việc để gây mất mát về tài chính hoặc phá hoại danh tiếng của tổ chức, doanh nghiệp Sau đây là liệt kê

10 hiểm họa hàng đầu với an toàn thông tin cơ sở dữ liệu:

2.1.1 Lạm dụng các đặc quyền vượt mức và các đặc quyền không còn được dùng

Khi người dùng (hay ứng dụng) được gán các đặc quyền truy cập CSDL vượt qua các yêu cầu trong chức năng công việc của họ, thì những đặc quyền này có thể bị lạm dụng cho các mục đích xấu Ví dụ, một người phụ trách cho CSDL của trường đại học với công việc là thay đổi các thông tin liên lạc của sinh viên, người này có thể lạm dụng quyền hạn của mình với quyền cập nhật CSDL để sửa đổi trái phép điểm của sinh viên Hoặc, một nhân viên ngân hàng với công việc là chỉ được thay đổi thông tin liên lạc của những người nắm giữ tài khoản Tuy nhiên, người này có thể lạm dụng quyền vượt mức để tăng số dư tài khoản tiết kiệm của một đồng nghiệp…

Bên cạnh đó, khi một người thôi không làm việc tại một tổ chức, thường các quyền truy cập dữ liệu nhạy cảm của họ vẫn không được thay đổi Và nếu những người này có mục đích xấu, họ có thể sử dụng những đặc quyền cũ của mình để lấy cắp dữ liệu có giá trị cao, hoặc gây thiệt hại cho hệ thống

Trang 33

Một lý do đơn giản là những quản trị viên CSDL vì bận rộn với công việc quản trị của mình, nên không có thời gian để định nghĩa và cập nhật cơ chế kiểm soát quyền truy cập cho mỗi người dùng Kết quả là một số lượng lớn người dùng được gắn quyền truy nhập mặc định vượt xa so với yêu cầu công việc của họ

2.1.2 Lạm dụng đặc quyền

Người dùng có thể lạm dụng các quyền hợp pháp của mình để thực hiện những mục đích không hợp pháp Ví dụ, một nhân viên chăm sóc sức khỏe có quyền xem các bản ghi liên quan đến một bệnh nhân trong CSDL một ứng dụng web Tuy nhiên, thường cấu trúc của ứng dụng web sẽ hạn chế không cho phép người dùng được xem nhiều bản ghi, về lịch sử khám bệnh liên quan đến nhiều bệnh nhân một cách đồng thời Khi đó,nếu có mục đích xấu, nhân viên này có thể bỏ qua hạn chế của ứng dụng web đó bằng cách kết nối tới CSDL bằng mộtchương trình khách khác, chẳng hạn MS-Exel Trong đó, anh

ta sử dụng MS-Exel với quyền ủy nhiệm đăng nhập hợp lệ của mình nên có thể lấy ra và lưu lại tất cả các bản ghi về bệnh nhân trong CSDL

Ở đây, cần xem xét hai rủi ro Thứ nhất, nhân viên có mục đích xấu, sẵn sàng bán các bản ghi thông tin bệnh nhân để lấy tiền Thứ 2 (phổ biến hơn) do nhân viên cẩu thả, truy xuất và lưu trữ một lượng lớn thông tin bệnh nhân vào máy khách của họ với mục đích công việc hợp pháp Tuy nhiên, nhân viên này có thể lộ dữ liệu bệnh nhân ở một máy tính đầu cuối, vì nó trở thành điểm yếu cho Trojan, hay những kẻ lấy cắp máy tính

2.1.3 Tấn công SQL Injection

Trong một tấn công SQL Ịnection, kẻ tấn công thường chèn (hay “ tiêm”) các mệnh đề CSDL bất hợp pháp vào nguồn dữ liệu SQL dễ bị tổn thương Thường nguồn dữ liệu đích bao gồm các thủ tục được lưu và các tham số đầu vào của ứng dụng web Các nguồn này bị chèn những mệnh đề

Trang 34

hợp pháp,sau đó chúng truyền tới cơ sở dữ liệu và được xử lý tại đây Với SQL Injection, kẻ tấn công có thể đạt được truy nhập không giới hạn tới toàn

bộ CSDL

2.1.4 Mã độc

Tội phạp mạng thường sử dụng các cuộc tấn công tiên tiến, pha trộn nhiều chiến thuật, chẳng hạn như: lừa đảo qua email và sử dụng phầm mền độc hại để xâm nhập vào các tổ chức và lấy cắp dữ liệu nhạy cảm Những người dùng hợp pháp không biết phần mềm độc hại đã lây nhiễm thiết bị của mình, vì vậy vô hình chung họ trở thành một đường dẫn cho các nhóm tin tặc này truy cập vào mạng dữ liệu nhạy cảm

2.1.5 Lợi dụng vết kiểm toán yếu

Đối với bất kỳ hoạt động nào liên quan đến CSDL, cần ghi lại một cách

tự động tất cả các giao dịch CSDL nhạy cảm và/ hoặc các giao dịch bất thường Chính sách kiểm toán CSDL yếu sẽ dẫn đến những rủi ro nghiêm trọng cho tổ chức với nhiều mức độ khác nhau

Các cơ chế kiểm toán là hàng rào bảo vệ CSDL cuối cùng Nếu kẻ tấn công có thể phá vỡ các hàng rào khác thì cơ chế kiểm toán dữ liệu vẫn có thể xác định sự tồn tại của một xâm nhập sau những hành động của kẻ tấn công trước đó Những vết kiểm toán thu được tiếp tục có thể dùng để xác định người dùng nào vừa thực hiện được hành động này, đồng thời qua vết kiểm toán có thể khôi phục lại hệ thống

Cơ chế kiểm toán yếu đồng nghĩa với việc hệ thống không thể ghi lại đầy

đủ những hành động của người dùng dẫn đến việc không thể phát hiện và ngăn chặn kịp thời những hành động tấn công của người dùng hoặc một nhóm người dùng Do vậy, kiểm toán là cơ chế quan trọng mà mọi hệ thống cần phải

có để đảm bảo an toàn thông tin

Trang 35

2.1.6 Lợi dụng sự sơ hở để khai thác phương tiện lưu trữ

Các phương tiện lưu trữ sao lưu thường xuyên không được bảo vệ khỏi các tấn công Kết quả là đã có rất nhiều lỗ hổng bảo mật liên quan đến các hành vi trộm cắp các đĩa và băng sao lưu CSDL Hơn nữa, sự thất bại trong việc kiểm toán và giám sát các hoạt động của quản trị viên – người lẽ ra chỉ có thể truy cập ở mức độ thấp vào thông tin nhạy cảm, có thể đặt dữ liệu của tổ chức vào những rủi ro và nguy cơ khó lường Để hạn chế điều này, cần có những biện pháp thích hợp để bảo vệ bản sao lưu của những dữ liệu nhạy cảm và theo dõi những người dùng có đặc quyền cao nhất trong hệ thống nhằm đảm bảo an toàn cho dữ liệu của tổ chức

2.1.7 Khai thác các CSDL có điểm yếu và bị lỗi cấu hình

Thường các CSDL đều có chứa các điểm yếu dễ bị tổn thương và chưa được vá lỗi hoặc chứa các tài khoản và các tham số cấu hình mặc định Kẻ tấn công có thể khai thác những lỗ hổng đó để khởi động các cuộc tấn công Các

tổ chức thường cố gắng duy trì cấu hình CSDL của mình Tuy nhiên, việc vá lỗi cho CSDL mất rất nhiều thời gian ( có thể hàng tháng) mới hoàn thành, ngay cả khi các bản vá đã có sẵn Kết quả là trong thời gian vá lỗi, các CSDL chưa được vá lỗ hỏng vẫn còn rất nhiều điểm yếu dễ bị tổn thương

Theo một thống kê nhóm người dùng của Oracle năm 2012 có khoảng 28% người dùng chưa bao giờ áp dụng một bản vá quan trọng nào cho phiên bản Oracle mà họ đang sử dụng Ngoài ra, 10% người dùng của Oracle mất khoảng hơn một năm để hoàn thành xong quá trình vá lỗi cho sản phẩm họ sử dụng

2.1.8 Rò rỉ các dữ liệu nhạy cảm không được quản lý

Nhiều công ty đã thực hiện duy trì việc kiểm kê chính xác các CSDL

và các đối tượng dữ liệu quan trọng chứa trong các CSDL của họ Các CSDL thường có chứa một số thông tin nhạy cảm, có thể chúng được lưu trữ rải rác trong CSDL Do đó, nếu không có những biện pháp điều khiển

Trang 36

và kiểm soát quyền phù hợp thì những thông tin nhạy cảm này rất dễ bị truy xuất bất hợp pháp

2.1.9 Tấn công từ chối dịch vụ

Từ chối dịch vụ (DOS) là một loại tấn công trong đó các truy cập của người dùng hợp pháp vào các ứng dụng mạng hay vào dữ liệu sẽ bị từ chối Các điều kiện từ chối dịch vụ có thể được tạo ra qua nhiều kỹ thuật( nhiều trong đó liên quan đến các điểm yếu nền tảng) Ví dụ, tấn công DOS có thể dựa trên điểm yếu nền tảng CSDL để phá hủy một máy chủ Ngoài ra, còn có một số kỹ thuật DOS phổ biến khác như: sửa đổi dữ liệu, làm nghẽn mạng (network flooding) và làm quá tải tài nguyên máy chủ

2.1.10 Vấn đề đào tạo và chuyên gia an ninh mạng còn hạn chế

Những cơ chế kiểm soát an toàn bên trong tổ chức hiện nay chưa đáp ứng kịp so với sự tăng nhanh của dữ liệu được lưu trữ và nhiều tổ chức không được trang bị đầy đủ những giải pháp an toàn để đối phó với những sự cố và vi phạm an ninh thường xuyên xảy ra Đó là do thiếu năng lực chuyên môn cần thiết để thực hiện các kiểm soát an toàn, các chính sách bảo mật và vấn đề đào tạo

Chiến lược phòng thủ CSDL nhiều lớp:

Mười hiểm họa an toàn CSDL hàng đầu có thể được ngăn chặn bằng cách thực hiện các bước theo quy luật và có sự kiểm tra bên trong Có nhiều loại tấn công khác nhau vào CSDL và chúng ta có thể được sử dụng kết hợp với nhau để tăng sức mạnh, vì thế một chiến lược phòng thủ nhiều lớp là cần thiết để bảo vệ CSDL một cách tốt nhất

2.2 Các giải pháp an toàn và bảo mật thông tin trong MongoDB

2.2.1 Các giải pháp mã hóa CSDL

Trong bối cảnh bảo mật dữ liệu, quá trình mã hóa được sử dụng để chuyển đổi hoặc mã hóa dữ liệu gốc thành dữ liệu không thể đọc được gọi là

Trang 37

văn bản mã sau đó giải mã nó trở thành một định dạng có thể đọc được gọi là văn bản rõ Dưới đây là một số khái niệm về mã hóa trong MongoDB

- Mô hình phân cấp khóa mã hóa trong MongoDB:

Hình 2.1 Bảng hệ thống phân cấp khóa

Hệ thống phân cấp này cung cấp một cơ sở bảo mật cao cho dữ liệu nhạy cảm Tại phía trên cùng của hệ thống phân cấp này là khóa chủ dịch vụ SMK, khóa này thực hiện bảo vệ khóa chủ CSDL DMK tại mỗi ứng dụng CSDL trong MongoDB Khóa chủ CSDL DMK được sử dụng để mã hóa các khóa riêng như khóa bất đối xứng và chứng nhận trong CSDL Các khóa đối

Trang 38

xứng trong CSDL được sử dụng để bảo vệ các khóa đối xứng khác cũng như

dữ liệu trong CSDL

- Bảo vệ khóa

Khóa mã hóa và mật khẩu bảo vệ khóa đảm bảo tính năng bảo mật dữ liệu nhạy cảm Thường xuyên bảo vệ các khóa và mật khẩu làm giảm sự xuất hiện của việc phá hủy dữ liệu mã hóa thông qua sự theo dõi các giá trị mã hóa của tin tặc Sự bảo vệ này được điều khiển thông qua một vòng đời của mỗi khóa, minh họa trong hình sau

Hình 2.2 Vòng đời của khóa b) Các thuật toán mã hóa dữ liệu được sử dụng trong CSDL MongoDB

- Thuật toán đối xứng

• Thuật toán DES

• Thuật toán AES

- Thuật toán bất đối xứng RSA

- Thuật toán băm

• MD5

• SHA

c) Mã hóa cột

- Cơ bản mã hóa cột

Trang 39

Ở cấp độ ô, mức độ tốt nhất của mã hóa, mỗi ô chứa dữ liệu mã hóa được bảo vệ bởi một khóa cụ thể do người dùng thực hiện mã hóa Giải mã được thực hiện thông qua việc sử dụng cùng một khóa hoặc một khóa công khai tùy thuộc vào phương pháp mã hóa được áp dụng

Ngoài ra mã hóa cột là mã hóa tất cả các ô trong một cột duy nhất cùng với khóa và cho phép giải mã với khóa này sau đó cấp quyền cho các thành viên với vai trò của CSDL

- Ưu và nhược điểm của mã hóa cột

• Mã hóa cột cung cấp mã hóa ở mức độ tốt hơn nhiều so với mã hóa tệp tin sao lưu dữ liệu Nó cung cấp phương tiện mã hóa một cột duy nhất trong bảng từ một cột khác

• An toàn – yếu tố dữ liệu được mã hóa duy trì ở trạng thái đó cho đến khi

nó giải mã

• Người sử dụng – người sử dụng có thể được cấp quyền truy cập vào khóa

mã hóa và giải mã dữ liệu

- Nhược điểm

• Hạn chế kiểu dữ liệu – thực hiện mã hóa cột yêu cầu sửa đổi kiểu dữ liệu

• Trong quá trình quét bảng dữ liệu, các giá trị bị mã hóa một cách gượng

ép Khóa chính và chỉ mục sau khi mã hóa không còn sử dụng được

• Tổng chi phí xử lý – các xử lý cho quá trình mã hóa và giải mã tốn chi phí cao

d) Các bước thực hiện mã hóa cột

- Xác định thuật toán mã hóa cột

Có nhiều thuật toán có sẵn được chọn để mã hóa dữ liệu Tùy thuộc vào người sử dụng mà chọn thuật toán phù hợp Đối với mã hóa dữ liệu sử dụng thuật toán bất đối xứng dựa trên một thuật toán phức tạp và cung cấp mức độ bảo mật rất cao Còn về mã hóa đối xứng thì sức mạnh của mã hóa này phụ

Trang 40

thuộc vào độ dài của các khóa được sử dụng Các khóa có kích thước dài hơn cung cấp một cấp độ bảo mật cao hơn nhưng đi kèm chi phí xử lý cao hơn Các thuật toán mã hóa đối xứng nói chung ít phức tạp và do đó yếu hơn so với

mã hóa bất đối xứng nhưng kết quả xử lý nhanh hơn

- Thực hiện hệ thống khóa cấp bậc

Theo hệ thống phân cấp khóa mã hóa nêu trên, để mã hóa dữ liệu bằng khóa đối xứng, các bước thực hiện như sau:

Bước đầu tiên sẽ tạo một khóa DMK

Bước tiếp theo là tạo ra một chứng nhận, chứng nhận này được bảo vệ bởi khóa chủ CSDL quan trọng

Khóa cuối cùng trong hệ thống cấp bậc là khóa đối xứng sẽ được sử dụng để mã hóa dữ liệu nhạy cảm Việc lựa chọn một khóa đối xứng dựa trên các thuật toán nhanh và mạnh

- Thay đổi cấu trúc dữ liệu

Mã hóa cột đòi hỏi giá trị mã hóa được lưu trữ trong một cột với kiểu

dữ liệu là varbinary Để tiến hành mã hóa cột, tại bước này phải tạo một cột

dữ liệu mới với kiểu dữ liệu varbinary Cột này để lưu dữ liệu mã hóa

- Mã hóa cột

Sau khi đã tạo mới cột dữ liệu mã hóa, sử dụng một trong bốn phương thức: EncryptByAsymKey, EncrypByCert, EncrypByKey và EncrypByPassphrase để mã hóa dữ liệu cột và lưu dữ liệu mã hóa vào cột mới tạo ra kiểu dữ liệu là varbinary

2.2.2 Giải pháp mã hóa đường truyền

MongoDB hỗ trợ mã đường truyền dữ liệu từ người dùng đến Hệ QTCSDL sử dụng giao thức SSL/TLS

- Cấu trúc giao thức SSL/TLS:

Ngày đăng: 24/06/2023, 15:33

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] An Access Control Model for NoSQL Databases- December 2013- NoSQL database Sách, tạp chí
Tiêu đề: An Access Control Model for NoSQL Databases
Nhà XB: NoSQL database
Năm: 2013
[2] NEW TECH FORUM (FEB, 2, 2017), By David Murphy, InfoWorld. The essential guide to MongoDB security Sách, tạp chí
Tiêu đề: The essential guide to MongoDB security
Tác giả: David Murphy
Nhà XB: InfoWorld
Năm: 2017
[4] No SQL, No Injection? Examining NoSQL Security. Aviv Ron Cyber security Center of Excellence IBM Sách, tạp chí
Tiêu đề: No SQL, No Injection? Examining NoSQL Security
Tác giả: Aviv Ron
Nhà XB: Cyber security Center of Excellence IBM
[5] NoSQL NoSecurity – Security Issues with NoSQLDB by Mike Obijaju on June 22 nd , 2015 Sách, tạp chí
Tiêu đề: NoSQL NoSecurity – Security Issues with NoSQLDB
Tác giả: Mike Obijaju
Năm: 2015
[7] The essential guide to MongoDB security. NEW TECH FORUM. By David Murphy, InfoWorld | FEB 2, 2017 Sách, tạp chí
Tiêu đề: The essential guide to MongoDB security
Tác giả: David Murphy
Nhà XB: InfoWorld
Năm: 2017
[3] NoSQL Databases: New trend of Databases, Emerging reason, Classfication and Security Issuse. ISSN: 2277-9655 (I2OR), Publication Impact Factor: 3.785 (ISRA), Journal Impact Factor: 2.114 Khác
[6] Security and Performance Analysis of Encrypted NoSQL Databases, Authors: M.W. Grim BSc A.T. Wiersma BSc, February 12, 2017 Khác
[8] NoSQL Database Systems and their Security Challenges, Data & Network Security Lab (DNSL) Department of Computer Engineering Sharif University of Technology September 2015 Khác

HÌNH ẢNH LIÊN QUAN

Hình 1.1. Ví dụ về Document Database - TRIỂN KHAI THỬ NGHIỆM CÁC KỸ THUẬT BẢO MẬT THÔNG TIN TRÊN HỆ CSDL NOSQL MONGODB (Luận Văn Thạc Sĩ)
Hình 1.1. Ví dụ về Document Database (Trang 11)
Bảng 1 1. So sánh SQL và NoSQL - TRIỂN KHAI THỬ NGHIỆM CÁC KỸ THUẬT BẢO MẬT THÔNG TIN TRÊN HỆ CSDL NOSQL MONGODB (Luận Văn Thạc Sĩ)
Bảng 1 1. So sánh SQL và NoSQL (Trang 15)
Hình 2.1. Bảng hệ thống phân cấp khóa - TRIỂN KHAI THỬ NGHIỆM CÁC KỸ THUẬT BẢO MẬT THÔNG TIN TRÊN HỆ CSDL NOSQL MONGODB (Luận Văn Thạc Sĩ)
Hình 2.1. Bảng hệ thống phân cấp khóa (Trang 37)
Hình 2.2. Vòng đời của khóa  b)  Các thuật toán mã hóa dữ liệu được sử dụng trong CSDL MongoDB - TRIỂN KHAI THỬ NGHIỆM CÁC KỸ THUẬT BẢO MẬT THÔNG TIN TRÊN HỆ CSDL NOSQL MONGODB (Luận Văn Thạc Sĩ)
Hình 2.2. Vòng đời của khóa b) Các thuật toán mã hóa dữ liệu được sử dụng trong CSDL MongoDB (Trang 38)
Hình 2.3. Hình cấu trúc giao thức SSL - TRIỂN KHAI THỬ NGHIỆM CÁC KỸ THUẬT BẢO MẬT THÔNG TIN TRÊN HỆ CSDL NOSQL MONGODB (Luận Văn Thạc Sĩ)
Hình 2.3. Hình cấu trúc giao thức SSL (Trang 41)
Hình 3.5. Hình xác thực người dùng hợp lệ - TRIỂN KHAI THỬ NGHIỆM CÁC KỸ THUẬT BẢO MẬT THÔNG TIN TRÊN HỆ CSDL NOSQL MONGODB (Luận Văn Thạc Sĩ)
Hình 3.5. Hình xác thực người dùng hợp lệ (Trang 61)
Hình 3.6. Hình truy cập vào web hợp lệ với tài khoản “nhanviena” - TRIỂN KHAI THỬ NGHIỆM CÁC KỸ THUẬT BẢO MẬT THÔNG TIN TRÊN HỆ CSDL NOSQL MONGODB (Luận Văn Thạc Sĩ)
Hình 3.6. Hình truy cập vào web hợp lệ với tài khoản “nhanviena” (Trang 61)
Hình 3.3.8. Hình các mật khẩu đã được mã hóa - TRIỂN KHAI THỬ NGHIỆM CÁC KỸ THUẬT BẢO MẬT THÔNG TIN TRÊN HỆ CSDL NOSQL MONGODB (Luận Văn Thạc Sĩ)
Hình 3.3.8. Hình các mật khẩu đã được mã hóa (Trang 65)
Hình 3.14. đăng nhập web với bảo mật đường truyền HTTPS - TRIỂN KHAI THỬ NGHIỆM CÁC KỸ THUẬT BẢO MẬT THÔNG TIN TRÊN HỆ CSDL NOSQL MONGODB (Luận Văn Thạc Sĩ)
Hình 3.14. đăng nhập web với bảo mật đường truyền HTTPS (Trang 70)
Hình 3.15: thông tin chứng chỉ bảo mật tự ký hợp lệ - TRIỂN KHAI THỬ NGHIỆM CÁC KỸ THUẬT BẢO MẬT THÔNG TIN TRÊN HỆ CSDL NOSQL MONGODB (Luận Văn Thạc Sĩ)
Hình 3.15 thông tin chứng chỉ bảo mật tự ký hợp lệ (Trang 71)
Hình 3.26: Cấu hình các rule trong tường lửa - TRIỂN KHAI THỬ NGHIỆM CÁC KỸ THUẬT BẢO MẬT THÔNG TIN TRÊN HỆ CSDL NOSQL MONGODB (Luận Văn Thạc Sĩ)
Hình 3.26 Cấu hình các rule trong tường lửa (Trang 78)
Hình 3.27: Kiểm tra kết nối từ tường lửa ra internet - TRIỂN KHAI THỬ NGHIỆM CÁC KỸ THUẬT BẢO MẬT THÔNG TIN TRÊN HỆ CSDL NOSQL MONGODB (Luận Văn Thạc Sĩ)
Hình 3.27 Kiểm tra kết nối từ tường lửa ra internet (Trang 78)
Hình 3.32: Cấu hình quảng bá ra ngoài internet - TRIỂN KHAI THỬ NGHIỆM CÁC KỸ THUẬT BẢO MẬT THÔNG TIN TRÊN HỆ CSDL NOSQL MONGODB (Luận Văn Thạc Sĩ)
Hình 3.32 Cấu hình quảng bá ra ngoài internet (Trang 81)
Hình 4.3. Cài đặt MongoDB: Bước 1 - TRIỂN KHAI THỬ NGHIỆM CÁC KỸ THUẬT BẢO MẬT THÔNG TIN TRÊN HỆ CSDL NOSQL MONGODB (Luận Văn Thạc Sĩ)
Hình 4.3. Cài đặt MongoDB: Bước 1 (Trang 87)
Hình 4.5. Cài đặt MongoDB: Bước 4 - TRIỂN KHAI THỬ NGHIỆM CÁC KỸ THUẬT BẢO MẬT THÔNG TIN TRÊN HỆ CSDL NOSQL MONGODB (Luận Văn Thạc Sĩ)
Hình 4.5. Cài đặt MongoDB: Bước 4 (Trang 88)

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w