1. Trang chủ
  2. » Giáo Dục - Đào Tạo

(Tiểu luận) đề tài xây dựng công cụ lưu trữ dữ liệu an toàn từ máy tính lêncloud

34 4 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

ACL Access Control List: - ACL được sử dụng để xác định quyền truy cập của người dùng hoặc các đối tượng khác đối với một đối tượng cụ thể hoặc một bucket.6.. Khái niệm về MailtrapMailtr

BỘ THÔNG TIN VÀ TRUYỀN THÔNG HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THƠNG - BÁO CÁO CUỐI KỲ MƠN HỌC Mơn: Chuyên đề An toàn phần mềm Đề tài: “Xây dựng cơng cụ lưu trữ liệu an tồn từ máy tính lên Cloud” Sinh viên thực Mã số sinh viên Lớp Giảng viên hướng dẫn Niên khóa : : : : : Nguyễn Ngọc Tiểu Long N19DCAT045 D19CQAT01-N TS Huỳnh Trọng Thưa 2019-2024 TP.HCM tháng 11 năm 2023 LỜI CẢM ƠN Lời đầu tiên, cho em xin phép gửi lời tri ân sâu sắc đến thầy cô trường Học viện Cơng nghệ Bưu Viễn thơng sở TP.HCM tận tình dẫn dắt truyền đạt cho em nhiều kiến thức quý báu trong năm học vừa qua Đặc biệt, em xin gửi lời cảm ơn chân thành tới TS Huỳnh Trọng Thưa, thầy truyền đạt kiến thức, hướng dẫn em nghiên cứu thực hành suốt trình thực đề tài Em không tiếp thu thêm nhiều kiến thức mà học tinh thần thái độ làm việc nghiêm túc từ thầy Đó hành trang cần thiết cho trình làm việc tương lai Vì làm em khơng tránh việc có nhiều thiếu sót Em mong nhận thơng cảm đóng góp ý kiến q thầy tồn thể bạn Sau cùng, em xin chúc quý thầy cô khoa Công nghệ thông tin 2, thầy TS Huỳnh Trọng Thưa đỡ em thời gian làm báo cáo tốt nghiệp vừa qua thật dồi sức khỏe để tiếp tục truyền đạt kiến thức cho hệ mai sau, đào tạo nhiều lớp trẻ tài cho ngành TP Hồ Chí Minh, ngày 13 tháng 11 năm 2023 SINH VIÊN THỰC HIỆN ĐỀ TÀI Báo cáo DATN đại học LỜI CÁM ƠN Nguyễn Ngọc Tiểu Long Nguyễễn Ngọc Tiểu Long MỤC LỤC LỜI CẢM ƠN TỔNG QUAN VỀ AWS CLOUD 1.1 1.2 1.3 KHÁI NIỆM VỀ DỊCH VỤ S3 KHÁI NIỆM VỀ MAILTRAP .4 KHÁI NIỆM VỀ VIRUS TOTAL XÂY DỰNG VÀ THIẾT KẾ MƠ HÌNH .8 2.1 2.2 2.3 TÍNH NĂNG VÀ MỤC ĐÍCH MƠ HÌNH TRIỂN KHAI MÔ TẢ HOẠT ĐỘNG CỦA MƠ HÌNH LẬP TRÌNH ỨNG DỤNG 10 3.1 3.2 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.3 3.3.1 3.3.2 XÂY DỰNG CẤU TRÚC PROJECT 10 XÂY DỰNG CHƯƠNG TRÌNH 11 GENERATION_CONFIG.PY 11 MAIN.PY .11 HYBRID.PY 13 UPLOADS3.PY 15 VIRUS_CHECKER.PY 16 DECRYPT.PY 18 THỰC NGHIỆM 20 DEMO UPLOAD FILE 20 DEMO DOWNLOAD FILE .24 KẾT LUẬN 26 TÀI LIỆU THAM KHẢO 27 Nguyễễn Ngọc Tiểu Long DANH MỤC HÌNH ẢNH Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình 1: Dịch vụ S3 : Dịch vụ Mailtrap : Dịch vụ Virus Total : Mô hình hoạt động chương trình .9 5: Thư mục chương trình .11 6: Code Generation_config.py 12 7: Chaỵ chương trình main.py tuỳ chọn .12 8: Code file Main.py 13 : Luồng chạy tuỳ chọn Download 14 10 : Code file hybrid.py 14 11 : Code file uploadS3.py 16 12 : Lựa chọn Download Main.py 17 13 : Nội dung Code file virus_checker.py 18 14 : Lựa chọn decrypt Main.py 19 15 : Nội dung Code file decryt.py 20 17 : Phân quyền User IAM 22 18 : Inbox Mailtrap 23 19 : Kết chương trình .23 20 : Kết thực thi upload lên S3 .24 21 : Nội dung Inbox Inbox/Mailtrap 24 22 : Kết Object upload lên Bucket S3 .25 23 : Chương trình chạy Download File an tồn từ S3 26 24 : Kết file aws_2.png tải từ S3 .26 Nguyễễn Ngọc Tiểu Long TỔNG QUAN VỀ AWS CLOUD 1.1 Khái niệm dịch vụ S3 Dịch vụ S3 (Simple Storage Service) Amazon Web Services (AWS) dịch vụ lưu trữ đám mây có quy mơ lớn phổ biến, thiết kế để cung cấp cho người dùng cách an toàn, linh hoạt scalable để lưu trữ truy cập liệu Dưới số khái niệm dịch vụ S3: Hình 1: Dịch vụ S3 Bucket (Xô): - Một "bucket" đơn vị để lưu trữ liệu S3 Mỗi bucket có tên tồn hệ thống S3 Object (Đối tượng): - Mỗi đối tượng S3 file tệp liệu lưu trữ bucket Mỗi đối tượng có key (khóa) bucket để xác định Nguyễễn Ngọc Tiểu Long Document continues below Discover more from: An toàn mạng AT19 Học viện Cơng ng… 48 documents Go to course WAF - Tìm hiểu WAF An toàn mạng 100% (2) BTL-Chuyên-đề-An40 ninh-mạng An tồn mạng 100% (1) Doc1 - aaaâaa 30 An tồn mạng None Phần mạch điện aaaâaa An tồn mạng None Nghiên cứu khoa học 39 - research scienece An toàn mạng None On Tap Ke Thua Doc Ghi File An toàn mạng None Key: - Key chuỗi ký tự sử dụng để xác định đối tượng bucket Key giống đường dẫn tới file hệ thống tệp Region (Khu vực): - S3 hỗ trợ nhiều khu vực giới Bạn chọn khu vực cụ thể để lưu trữ liệu Việc chọn khu vực ảnh hưởng đến hiệu suất chi phí ACL (Access Control List): - ACL sử dụng để xác định quyền truy cập người dùng đối tượng khác đối tượng cụ thể bucket Bucket Policy: - Một sách bucket JSON document mô tả cách mà liệu bucket xử lý Nó chứa quy tắc quyền truy cập chi tiết Storage Classes (Các lớp lưu trữ): - S3 cung cấp nhiều lớp lưu trữ khác nhau, STANDARD, INTELLIGENT_TIERING, ONEZONE_IA, GLACIER, DEEP_ARCHIVE Mỗi lớp lưu trữ có chi phí hiệu suất khác nhau, giúp tối ưu hóa chi phí cho việc lưu trữ liệu Versioning (Phiên bản): - Phiên cho phép bạn theo dõi khôi phục phiên trước đối tượng bucket Lifecycle Policies (Chính sách vịng đời): - Bạn cấu hình sách vịng đời để tự động chuyển đối tượng lớp lưu trữ xóa chúng sau khoảng thời gian định Nguyễễn Ngọc Tiểu Long Dịch vụ S3 cung cấp loạt tính chức khác nhau, làm cho trở thành lựa chọn phổ biến cho việc lưu trữ quản lý liệu môi trường đám mây 1.2 Khái niệm Mailtrap Mailtrap dịch vụ thiết kế để giúp phát triển kiểm thử ứng dụng gửi email mà không làm phiền đến hòm thư thực tế người dùng Dưới số khái niệm Mailtrap: Hình : Dịch vụ Mailtrap Sandbox Email Environment: - Mailtrap cung cấp môi trường cát bụi (sandbox) cho email, nơi bạn gửi nhận email mà khơng ảnh hưởng đến hịm thư người dùng thực tế Fake SMTP Server: - Mailtrap máy chủ SMTP giả mạo (fake SMTP server), giúp bạn bắt xem email mà ứng dụng bạn tạo mà không cần gửi chúng đến địa email thực tế Inbox for Test Emails: - Mailtrap cung cấp hộp thư ảo cho email kiểm thử, nơi bạn xem tất email gửi từ ứng dụng mơi trường kiểm thử Nguyễễn Ngọc Tiểu Long SMTP Configuration: - Để sử dụng Mailtrap, bạn cần cấu hình ứng dụng để sử dụng máy chủ SMTP Mailtrap thay máy chủ SMTP thực tế Inbox Management: - Bạn xem, quản lý kiểm tra tất email gửi từ ứng dụng giao diện Mailtrap Điều giúp đảm bảo email bạn hiển thị bạn mong đợi Collaboration: - Mailtrap thường hỗ trợ nhiều người làm việc lúc dự án Bạn chia sẻ hộp thư với đồng đội để xem kiểm thử email Spam Testing: - Một số dịch vụ Mailtrap cung cấp tính kiểm thử spam để giúp bạn đảm bảo email bạn không bị đánh giá thư rác Integration with Development Tools: - Mailtrap thường tích hợp tốt với công cụ phát triển phổ biến ngôn ngữ lập trình, framework cơng cụ quản lý dự án Mailtrap giúp giảm rủi ro gửi email thử nghiệm đến người dùng thực cung cấp môi trường an tồn để kiểm thử tính gửi email trình phát triển ứng dụng Nguyễễn Ngọc Tiểu Long - Sau đó, tin nhắn mã hóa ẩn hình ảnh kỹ thuật steganography Người dùng nhắc nhập hình ảnh nguồn (`src`) hàm `stego.Encode()` gọi để nhúng tin nhắn mã hóa vào hình ảnh Mã hóa RSA khóa đối xứng: - Khóa đối xứng AES mã hóa RSA khóa chung người nhận Gửi thư: - Khóa đối xứng mã hóa, với nonce hình ảnh nguồn, gửi qua email chức `mail.mail()` từ mô-đun `mail` Đầu người dùng: - Nhiều thông báo khác in bảng điều khiển để thông báo cho người dùng tiến trình q trình mã hóa 3.2.4 uploadS3.py Hình 11 : Code file uploadS3.py 16 Nguyễễn Ngọc Tiểu Long Tập lệnh cung cấp chức tải tệp lên vùng lưu trữ AWS S3 Dưới tổng quan thành phần chức chính: Thơng tin xác thực AWS: - Tập lệnh xác định hàm để đặt lại thông tin đăng nhập AWS (`reset_aws_credentials()`) kiểm tra xem thơng tin đăng nhập AWS có sẵn không (`check_aws_credentials()`) Đăng nhập vào AWS: - Hàm `log_in_to_aws()` nhắc người dùng nhập khóa truy cập AWS, khóa bí mật mã thơng báo phiên (nếu có) Nó thiết lập thông tin đăng nhập AWS cách sử dụng `boto3.setup_default_session()` Chức tải lên tệp: - Chức để tải file lên `upload_file(file_name, Bucket, object_name=None)` - Đầu tiên, đặt lại thơng tin đăng nhập AWS nhắc người dùng đăng nhập - Sau đăng nhập, kiểm tra xem thơng tin đăng nhập có hợp lệ hay khơng - Nếu thơng tin xác thực hợp lệ, hàm tiến hành tải tệp lên chứa S3 định phương thức `boto3.client('s3').upload_file()` - Tham số `object_name` cho phép người dùng định tên đối tượng nhóm S3 Nếu khơng cung cấp, mặc định tên tệp gốc Đầu người dùng: - Trong suốt trình, tập lệnh cung cấp thông báo đầy đủ thông tin cho người dùng tiến trình tải lên Xử lý ngoại lệ - Tập lệnh sử dụng khối `try` `ngoại trừ` để xử lý trường hợp ngoại lệ, chẳng hạn đăng nhập không thành công lỗi trình tải tệp lên 17 Nguyễễn Ngọc Tiểu Long Trạng thái trả lại: - Hàm trả `True` upload file thành cơng Mặt khác, không trả giá trị cách rõ ràng 3.2.5 Virus_checker.py Chức file để xác thực người dùng IAM (User), sau thành công thực quét Url File cần tải để kiểm tra Nếu file chưa mã độc nguy hiểm chấm dứt tải xuống quay lại chương trình in thơng báo, file An tồn thực tải file xuống Hình 12 : Lựa chọn Download Main.py Hình 13 : Nội dung Code file virus_checker.py 18 Nguyễễn Ngọc Tiểu Long Tập lệnh dường thiết kế để tải xuống tệp từ nhóm AWS S3 sau kiểm tra độ an toàn tệp API VirusTotal Dưới chức chính: Thơng tin xác thực AWS: - Tương tự tập lệnh trước, tập lệnh xác định chức để đặt lại thông tin xác thực AWS (`reset_aws_credentials()`) kiểm tra xem thông tin xác thực AWS có sẵn khơng (`check_aws_credentials()`) Đăng nhập vào AWS: - Hàm `log_in_to_aws()` nhắc người dùng nhập khóa truy cập AWS, khóa bí mật mã thơng báo phiên (nếu có) Nó thiết lập thơng tin đăng nhập AWS cách sử dụng `boto3.setup_default_session()` Chức kiểm tra tải xuống: - Chức `download_checker(bucket, object, src)` - Đầu tiên, đặt lại thơng tin đăng nhập AWS nhắc người dùng đăng nhập - Sau đăng nhập, kiểm tra xem thơng tin đăng nhập có hợp lệ hay khơng - Nếu thơng tin xác thực hợp lệ, sử dụng API VirusTotal để kiểm tra độ an tồn tệp nhóm S3 Kiểm tra API VirusTotal: - Kịch sử dụng API VirusTotal để kiểm tra độ an toàn file Nó gửi yêu cầu có URL S3 tệp tới API VirusTotal, sử dụng khóa API để xác thực Tải xuống từ S3: - Nếu trình kiểm tra VirusTotal tệp an tồn (khơng có phát tích cực nào), tiến hành tải xuống tệp từ nhóm S3 cách sử dụng `boto3.client('s3').download_file()` Đầu người dùng: - Tập lệnh cung cấp thơng báo mang tính thơng tin cho người dùng suốt trình, bao gồm chi tiết từ phản hồi API VirusTotal trạng thái tải xuống Xử lý ngoại lệ: 19 Nguyễễn Ngọc Tiểu Long - Kịch sử dụng khối `try` ``ngoại trừ` để xử lý trường hợp ngoại lệ, chẳng hạn đăng nhập không thành công, lỗi trình kiểm tra VirusTotal lỗi trình tải xuống tệp Khóa API VirusTotal: - Khóa API VirusTotal sử dụng tập lệnh mã hóa cứng Trong tình thực tế, điều quan trọng phải giữ an tồn cho khóa API có khả sử dụng biến môi trường phương pháp bảo mật khác để lưu trữ khóa 3.2.6 Decrypt.py Hình 14 : Lựa chọn decrypt Main.py Hình 15 : Nội dung Code file decryt.py 20 Nguyễễn Ngọc Tiểu Long Tập lệnh thiết kế để người dùng cuối thực trình giải mã phần trình triển khai mật mã lai Dưới bảng phân tích thành phần chức chính: Nhập khẩu: - Tập lệnh nhập mô-đun cần thiết, bao gồm `secret`, `random`, `sys`, `AES` `Random` từ `Cryptodome`, `stego`, `numpy`, `Image` từ `PIL` Chức giải mã: - `decryptAES(cipherAESd, cipherText)`: Giải mã văn mật mã mã hóa AES cách sử dụng cipherAESd (đối tượng giải mã AES) cung cấp - `decrypt(pk, ciphertext)`: Thực giải mã RSA khóa riêng (pk) mã Giải mã Steganography: - `Decode(src)`: Trích xuất thơng điệp ẩn từ hình ảnh phương pháp steganography Thơng báo ẩn trích xuất cách thu thập bit có ý nghĩa nhỏ giá trị pixel tìm thấy dấu phân cách "$t3g0" Chức giải mã chính: - `main(src)`: Hàm điều phối q trình giải mã - Gọi `Decode(src)` để trích xuất thơng điệp ẩn từ hình ảnh - Nhắc người dùng nhập khóa riêng khóa đối xứng AES - Giải mã khóa đối xứng AES giải mã RSA - Giải mã tin nhắn gốc khóa đối xứng AES giải mã Đầu người dùng: - Kịch cung cấp thơng điệp mang tính thơng tin cho người dùng, bao gồm tin nhắn giải mã Cách sử dụng ví dụ: 21 Nguyễễn Ngọc Tiểu Long - Tập lệnh chứa lệnh gọi ví dụ tới `main(src)` với số tham số đầu vào 3.3 Thực nghiệm 3.3.1 Demo Upload file  Chuẩn bị dịch vụ IAM, S3 Mailtrap o Chúng ta thực S3 có tên Hình 16 : Object S3 o Sau đó, tạo thiết lập cho User IAM có quyền thực thi S3 22 Nguyễễn Ngọc Tiểu Long Hình 17 : Phân quyền User IAM o Đăng nhập vào Mailtrap -> Inboxes -> My Inbox Hình 18 : Inbox Mailtrap  Tiến hành chạy chương trình để upload file 23 Nguyễễn Ngọc Tiểu Long o Khởi động chương trình nhập

Ngày đăng: 26/12/2023, 04:59

Xem thêm:

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

TÀI LIỆU LIÊN QUAN

w