Viện Công Nghệ Thông Tin Và Truyền Thông ĐẠI HỌC BÁCH KHOA HÀ NỘI Luận Văn Thạc Sĩ TRIỂN KHAI THỬ NGHIỆM CÁC KỸ THUẬT BẢO MẬT THÔNG TIN TRÊN HỆ CSDL NOSQL MONGODB Nguyen Thanh Long Ha Noi, 2023 ii 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.
TỔNG QUAN VỀ CSDL NOSQL VÀ HỆ QUẢN TRỊ CSDL MONGODB. Giới thiệu CSDL NOSQL. Đặc điểm NoSQL. 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. Ưu và nhược điểm của hệ quản trị cơ sở dữ liệu NoSQL. 4 b) Nhược điểm.
Phân loại NoSQL. 5 a) Key-value stores. So sánh hệ quản trị cơ sở dữ liệu NoSQL và SQL. Ứng dụng của NoSQL hiện nay.
Giới thiệu về hệ quản trị CSDL MongoDB. So sánh MongoDB với cơ sở dữ liệu quan hệ. Quản lý cơ sở dữ liệu MongoDB. AN TOÀN VÀ BẢO MẬT THÔNG TIN ĐỐI VỚI CSDL NOSQL VÀ HỆ QUẢN TRỊ CSDL MONGODB.
Các hiểm họa mất an toàn thông tin trong cơ sở dữ liệu NoSQL. 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. Lạm dụng đặc quyền. Tấn công SQL Injection.
Lợi dụng vết kiểm toán yếu. Lợi dụng sự sơ hở để khai thác phương tiện lưu trữ. Khai thác các CSDL có điểm yếu và bị lỗi cấu hình. Rò rỉ các dữ liệu nhạy cảm không được quản lý.
Tấn công từ chối dịch vụ. Vấn đề đào tạo và chuyên gia an ninh mạng còn hạn chế. Các giải pháp an toàn và bảo mật thông tin trong MongoDB. Các giải pháp mã hóa CSDL.
Giải pháp mã hóa đường truyền. Giải pháp xác thực. Ủy quyền và kiểm soát truy cập. TRIỂN KHAI THỬ NGHIỆM VÀ ỨNG DỤNG.
Mô tả thực nghiệm. Mô tả cơ sở dữ liệu. Mô tả hoạt động của cơ sở dữ liệu. 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.
Các thành phần của hệ thống CSDL. Mô hình an toàn cho CSDL. Các giải pháp an toàn và bảo mật cho hệ thống cơ sở dữ liệu. Triển khai thử nghiệm.
Tạo cơ sở dữ liệu. Cấu hình xác thực người dùng. Cấu hình kiểm soát truy cập. Cấu hình mã hóa mật khẩu.
Cấu hình bảo mật đường truyền. Triển khai tường lửa. 78 TÀI LIỆU THAM KHẢO. 79 v KÝ HIỆU, CHỮ VIẾT TẮT Từ viết tắt Tiếng anh Tiếng Việt Tiêu chuẩn mã hóa tiên AES Advanced Encryption Standard tiến Giao diện lập trình ứng API Application Programming Interface dụng Chuỗi mã hóa nhị phân BSON Binary Object Notation giống JSON CLI Command Line Interface Giao diện dòng lệnh Hệ thống quản trị nội CMS Content Management System dung CPU Central Processing Unit Bộ xử lý trung tâm FGAC Fine Grained Access Control Cơ chế kiểm soát min Giao thức truyền tải HTTP HyperText Transfer Protocol siêu văn bản Cơ sở dữ liệu không NoSQL Non – Relational quan hệ SSL Secure Socket Layer Tầng ổ bảo mật Ngôn ngữ truy vấn SQL Structured Query Language mang tính cấu trúc Relational Database Danagement Hệ thống quản lý cơ sở RMBMS System dữ liệu quan hệ Giao thức bảo mật tầng TLS Transport Layer Security giao vận 1 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”. TỔNG QUAN VỀ CSDL NOSQL VÀ HỆ QUẢN TRỊ CSDL MONGODB 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.
Đặ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.
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: 4 - 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. Ư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.