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
T ỔNG QUAN VỀ AWS CLOUD
K HÁI NIỆM VỀ DỊCH VỤ S3
Dịch vụ S3 (Simple Storage Service) của Amazon Web Services (AWS) là một giải pháp lưu trữ đám mây lớn và phổ biến, cung cấp cho người dùng khả năng lưu trữ và truy cập dữ liệu một cách an toàn, linh hoạt và có khả năng mở rộng.
- Một "bucket" là một đơn vị chính để lưu trữ dữ liệu trong S3 Mỗi bucket có một tên duy nhất trên toàn bộ hệ thống S3.
Mỗi đối tượng trong S3 được định nghĩa là một file hoặc tệp dữ liệu, và tất cả đều được lưu trữ trong một bucket Để xác định từng đối tượng, mỗi tệp sẽ có một key (khóa) duy nhất trong bucket.
WAF - Tìm hiểu về WAF
BTL-Chuyên-đề-An- ninh-mạng
On Tap Ke Thua DocGhi File
Key là một chuỗi ký tự duy nhất dùng để xác định một đối tượng trong một bucket, tương tự như đường dẫn tới một file trong hệ thống tệp.
S3 hỗ trợ nhiều khu vực toàn cầu, cho phép bạn lựa chọn một khu vực cụ thể để lưu trữ dữ liệu Việc lựa chọn khu vực này có thể ảnh hưởng đến hiệu suất và chi phí lưu trữ của bạn.
- 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.
Chính sách bucket là một tài liệu JSON mô tả cách thức xử lý dữ liệu trong bucket, bao gồm các quy tắc quyền truy cập chi tiết.
7 Storage Classes (Các lớp lưu trữ):
- S3 cung cấp nhiều lớp lưu trữ khác nhau, như STANDARD,
Intelligent Tiering, OneZone-IA, Glacier, and Deep Archive are distinct storage classes, each offering varying costs and performance levels These options enable businesses to optimize data storage expenses effectively.
- Phiên bản cho phép bạn theo dõi và khôi phục các phiên bản trước của các đối tượng trong bucket.
9 Lifecycle Policies (Chính sách vòng đời):
Bạn có thể thiết lập chính sách vòng đời để tự động chuyển đổi các đối tượng giữa các lớp lưu trữ hoặc xóa chúng sau một thời gian nhất định.
Dịch vụ S3 nổi bật với nhiều tính năng và chức năng đa dạng, khiến nó trở thành lựa chọn ưa chuộng cho việc lưu trữ và quản lý dữ liệu trong môi trường đám mây.
K HÁI NIỆM VỀ M AILTRAP
Mailtrap là dịch vụ hỗ trợ phát triển và kiểm thử ứng dụng gửi email mà không ảnh hưởng đến hòm thư thực tế của người dùng Dịch vụ này giúp lập trình viên kiểm soát và quản lý email trong quá trình phát triển, đảm bảo rằng việc gửi email không làm gián đoạn trải nghiệm của người dùng.
Mailtrap cung cấp một môi trường cát bụi cho email, cho phép người dùng gửi và nhận email mà không làm ảnh hưởng đến hòm thư chính của họ.
Mailtrap là một máy chủ SMTP giả mạo, cho phép bạn bắt và xem các email được tạo ra bởi ứng dụng mà không cần gửi chúng đến địa chỉ email thực tế.
Mailtrap là một dịch vụ cung cấp hộp thư ảo dành cho việc kiểm thử email, cho phép bạn theo dõi và xem tất cả các email được gửi từ ứng dụng của mình trong môi trường kiểm thử.
- Để sử dụng Mailtrap, bạn cần cấu hình ứng dụng của mình để sử dụng máy chủ SMTP của Mailtrap thay vì máy chủ SMTP thực tế.
Bạn có thể dễ dàng quản lý và kiểm tra tất cả các email đã gửi từ ứng dụng của mình thông qua giao diện Mailtrap, giúp đảm bảo rằng email của bạn hiển thị đúng như mong đợi.
Mailtrap cho phép nhiều người làm việc cùng lúc trong một dự án, giúp bạn dễ dàng chia sẻ hộp thư với đồng đội để cùng nhau xem và kiểm thử email hiệu quả.
- Một số dịch vụ Mailtrap cung cấp tính năng kiểm thử spam để giúp bạn đảm bảo rằng email của bạn không bị đánh giá là thư rác.
- Mailtrap thường tích hợp tốt với các công cụ phát triển phổ biến như các ngôn ngữ lập trình, framework và các công cụ quản lý dự án.
Mailtrap là công cụ hữu ích giúp giảm thiểu rủi ro khi gửi email thử nghiệm đến người dùng thực Nó cung cấp một môi trường an toàn, cho phép các nhà phát triển kiểm thử tính năng gửi email trong quá trình phát triển ứng dụng một cách hiệu quả.
K HÁI NIỆM VỀ V IRUS T OTAL
VirusTotal là dịch vụ trực tuyến giúp phân tích và kiểm tra tệp tin cũng như URL nhằm phát hiện virus, malware và các mối đe dọa khác Dịch vụ này cung cấp thông tin chi tiết về mức độ an toàn của các tệp và liên kết, hỗ trợ người dùng bảo vệ hệ thống khỏi các nguy cơ tiềm ẩn VirusTotal sử dụng nhiều công cụ quét khác nhau để đảm bảo tính chính xác trong việc phát hiện các mối đe dọa, tạo điều kiện thuận lợi cho việc nhận diện và xử lý kịp thời các vấn đề bảo mật.
Hình 3 : Dịch vụ Virus Total
VirusTotal tích hợp nhiều công cụ quét từ các nhà cung cấp bảo mật hàng đầu để kiểm tra tệp hoặc URL Những công cụ này bao gồm sản phẩm từ các công ty danh tiếng như Avast, Kaspersky, McAfee và nhiều nhà cung cấp khác.
VirusTotal là một dịch vụ cho phép người dùng tải lên tệp hoặc nhập URL để kiểm tra mã độc hại Dịch vụ này quét qua nhiều công cụ khác nhau nhằm đánh giá mức độ an toàn của tệp hoặc URL đó.
VirusTotal sử dụng giá trị hash (băm) của tệp để xác định xem tệp đó đã được quét trước đó hay chưa Phương pháp này giúp tối ưu hóa quy trình quét, giảm thiểu việc quét lại các tệp đã được kiểm tra, từ đó nâng cao hiệu quả trong việc phát hiện mã độc.
Người dùng có thể gửi thông tin về các tệp và URL lên VirusTotal, góp phần vào việc chia sẻ thông tin về các mối đe dọa mới trong cộng đồng.
VirusTotal cung cấp thông tin về các mối đe dọa mạng dựa trên kết quả quét, giúp các tổ chức và cá nhân nắm bắt được tình hình bảo mật một cách tổng thể.
- VirusTotal cung cấp một API, cho phép các nhà phát triển tích hợp các tính năng của dịch vụ này vào ứng dụng hoặc hệ thống của họ.
VirusTotal cung cấp báo cáo chi tiết về kết quả quét, bao gồm thông tin về các công cụ quét đã được sử dụng, kết quả của từng công cụ và các bình luận từ cộng đồng người dùng.
- Ngoài việc phát hiện malware, VirusTotal cũng có khả năng phát hiện các trang web phishing và URL độc hại khác.
VirusTotal là một công cụ thiết yếu trong lĩnh vực bảo mật, hỗ trợ người dùng và chuyên gia an ninh trong việc đánh giá độ an toàn của tệp và URL trước khi tương tác.
XÂY DỰNG VÀ THIẾT KẾ MÔ HÌNH
T ÍNH NĂNG VÀ MỤC ĐÍCH
Bảo mật dữ liệu tệp trong Đám mây AWS.
Key được gửi trực tiếp đến ID email của bạn.
Phần mềm giải mã chỉ dành cho người dùng cuối.
Xác thực người dùng khi gửi file và tải file về từ S3.
Quét URL File cần download trước khi tải về.
M Ô HÌNH TRIỂN KHAI
Hình 4 : Mô hình hoạt động của chương trình
❊ Mô hình trên bao gồm các phần chính như sau: o Chương trình viết bằng Python (Programe). o Dịch vụ Mailtrap. o Dịch vụ IAM, S3. o Dịch vụ Virus Total.
M Ô TẢ HOẠT ĐỘNG CỦA MÔ HÌNH
Bước Đối tượng Chi tiết hoạt động
1 User, Programe User gửi request Upload file từ local lên S3
2 Programe, Mailtrap Chương trình tiếp nhận yêu cầu thực hiện mã hoá File và gửi data đến Mailtrap.
3 Programe, IAM, S3 Chương trình yêu cầu người dùng nhập thông tin đăng nhập vào IAM (User) sau đó xác thực,
- nếu xác thực thành công sẽ tiến hành Upload lên S3.
- Nếu thất bại trở lại chương trình và in ra thông báo.
4 User, Programe User gửi thực thi lệnk Download, chương trình xử lý yêu cầu và yêu cầu người dùng đăng nhập vào IAM (User)
Chương trình gửi request đến S3 với thông tin User(IAM) vừa nhập nếu thành công:
- S3 sẽ gửi một URL chưa file cần tải sau đó Virus Total sẽ kiểm tra thông tin file:
- Nếu File chưa mã độc hoặc có hại sẽ huỷ và kết thúc quá trình.
- Nếu An toàn tiến hành tải file.
LẬP TRÌNH ỨNG DỤNG
X ÂY DỰNG CẤU TRÚC P ROJECT
Chương trình thực thi được xây dựng hoàn toàn bằng Python có tên là
Các mục còn lại với mục đích như sau:
Hình 5: Thư mục chương trình
- Myvenv: là thư mục môi trường chạy của chương trình, nó đã được cài đặt các thư viện cần thiết để chạy chương tình.
- License, requirements: Chứa thông tin về bản quyền dịch vụ sử dụng trong chương trình, và thông tin các thư viện được cài đặt.
X ÂY DỰNG CHƯƠNG TRÌNH
Hình 6: Code của Generation_config.py
Hình 7: Chaỵ chương trình bằng main.py và tuỳ chọn của nó
Hình 8: Code file Main.py
Tổng quan ngắn gọn về kịch bản:
- Tập lệnh nhập một số mô-đun và hàm, bao gồm `getopt`, `sys`, `hybrid`,
Các mô-đun như `uploadS3`, `os`, `boto3`, `request`, `decrypt` và `virus_checker` được sử dụng để phân tích cú pháp các đối số dòng lệnh, thao tác với AWS S3, tải tệp lên và thực hiện các chức năng khác liên quan đến quản lý tệp và bảo mật.
Hàm `main` đóng vai trò là điểm khởi đầu cho script, nơi khởi tạo các biến cần thiết cho nhóm, đối tượng, tệp nguồn và loại hoạt động Sau đó, hàm này sử dụng `getopt` để phân tích các đối số được truyền qua dòng lệnh.
- Tập lệnh yêu cầu các đối số dòng lệnh xác định loại hoạt động (cờ `-t`), nhóm AWS S3 (cờ `-b`), đối tượng S3 (cờ `-o`) và tệp nguồn ( cờ `-i`).
Tập lệnh hỗ trợ ba loại hoạt động chính: "tải lên", "tải xuống" và "giải mã" Hoạt động cụ thể sẽ được xác định thông qua giá trị được cung cấp với cờ `-t`.
5 Thực thi có điều kiện:
Tùy thuộc vào loại hoạt động được chỉ định, tập lệnh sẽ gọi các chức năng khác nhau; đối với hoạt động "tải lên", nó sẽ kích hoạt `hybrid.mainMenu()`.
`uploadS3.upload_file()` Đối với "tải xuống", nó gọi
`virus_checker.download_checker()` Để "giải mã", nó gọi `decrypt.main()`.
- Cuối script có phần comment hướng dẫn cách chạy script bằng lệnh test.
Khi lựa chọn chức năng upload ở main.py chương trình sẽ chạy file hybrid.py này trước:
Hình 9 : Luồng chạy của tuỳ chọn Download
Hình 10 : Code của file hybrid.py
Thao tác chính được thực hiện trong hàm `mainMenu()`:
- Tập lệnh nhập một số mô-đun bao gồm `euclid`, `mail`, `ConfigParser`,
`secrets`, `AES` và `Random` từ thư viện `Cryptodome` và `stego`.
- Hàm bắt đầu bằng cách tạo khóa công khai và khóa riêng RSA bằng cách sử dụng hàm `KeyGeneration()` từ mô-đun `euclid`.
- Khóa AES đối xứng được tạo bằng `secrets.token_hex(16)`.
- Người dùng được nhắc nhập tin nhắn, sau đó tin nhắn này được mã hóa bằng khóa đối xứng AES.
- Sau đó, tin nhắn được mã hóa sẽ được ẩn trong hình ảnh bằng kỹ thuật steganography Người dùng được nhắc nhập hình ảnh nguồn (`src`) và hàm
`stego.Encode()` được gọi để nhúng tin nhắn được mã hóa vào hình ảnh.
6 Mã hóa RSA của khóa đối xứng:
- Khóa đối xứng AES được mã hóa bằng RSA bằng khóa chung của người nhận.
- Khóa đối xứng được mã hóa, cùng với nonce và hình ảnh nguồn, được gửi qua email bằng chức năng `mail.mail()` từ mô-đun `mail`.
8 Đầu ra của người dùng:
- Nhiều thông báo khác nhau được in ra bảng điều khiển để thông báo cho người dùng về tiến trình của quá trình mã hóa.
Hình 11 : Code file uploadS3.py
Tập lệnh cung cấp chức năng tải tệp lên vùng lưu trữ AWS S3 Dưới đây là tổng quan về các thành phần và chức năng chính:
1 Thông tin xác thực AWS:
- Tập lệnh xác định các hàm để đặt lại thông tin đăng nhập AWS
(`reset_aws_credentials()`) và kiểm tra xem thông tin đăng nhập AWS có sẵn không (`check_aws_credentials()`).
Hàm `log_in_to_aws()` yêu cầu người dùng cung cấp khóa truy cập AWS, khóa bí mật và mã thông báo phiên (nếu có) Hàm này thiết lập thông tin đăng nhập AWS thông qua `boto3.setup_default_session()`.
3 Chức năng tải lên tệp:
- Chức năng chính để tải file lên là `upload_file(file_name, Bucket, object_name=None)`.
- Đầu tiên, nó đặt lại thông tin đăng nhập AWS và nhắc người dùng đăng nhập.
- Sau khi đăng nhập, nó sẽ 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 sẽ tiến hành tải tệp lên bộ chứa S3 được chỉ định bằng phương thức `boto3.client('s3').upload_file()`.
- Tham số `object_name` cho phép người dùng chỉ định tên đối tượng trong nhóm S3 Nếu không được cung cấp, nó sẽ mặc định là tên tệp gốc.
4 Đầu ra của người dùng:
- Trong suốt quá trình, tập lệnh cung cấp thông báo đầy đủ thông tin cho người dùng về tiến trình tải lên.
Tập lệnh sử dụng khối `try` và `ngoại trừ` để xử lý các trường hợp ngoại lệ, chẳng hạn như đăng nhập không thành công và lỗi trong quá trình tải tệp lên, giúp đảm bảo rằng chương trình có thể xử lý và phản hồi một cách phù hợp khi gặp phải các tình huống không mong muốn.
- Hàm trả về `True` nếu upload file thành công Mặt khác, nó không trả về một giá trị một cách rõ ràng.
File này có chức năng xác thực người dùng IAM Sau khi xác thực thành công, hệ thống sẽ quét URL của file cần tải để kiểm tra Nếu file không chứa mã độc hoặc nguy hiểm, quá trình tải xuống sẽ được tiếp tục; ngược lại, nếu phát hiện mối đe dọa, tải xuống sẽ bị chấm dứt và chương trình sẽ in ra thông báo.
Hình 12 : Lựa chọn Download ở Main.py
Hình 13 : Nội dung Code của file virus_checker.py
Tập lệnh này được thiết kế để tải xuống tệp từ AWS S3 sau khi kiểm tra độ an toàn của tệp thông qua API VirusTotal.
1 Thông tin xác thực AWS:
Tập lệnh này bao gồm hai chức năng quan trọng: `reset_aws_credentials()` để đặt lại thông tin xác thực AWS và `check_aws_credentials()` để kiểm tra tính khả dụng của thông tin xác thực AWS.
Hàm `log_in_to_aws()` yêu cầu người dùng nhập khóa truy cập AWS, khóa bí mật và mã thông báo phiên (nếu có) Hàm này thiết lập thông tin đăng nhập AWS thông qua `boto3.setup_default_session()`.
3 Chức năng kiểm tra tải xuống:
- Chức năng chính là `download_checker(bucket, object, src)`.
- Đầu tiên, nó đặt lại thông tin đăng nhập AWS và nhắc người dùng đăng nhập.
- Sau khi đăng nhập, nó sẽ 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ệ, nó sẽ sử dụng API VirusTotal để kiểm tra độ an toàn của tệp trong nhóm S3.
Sử dụng API VirusTotal để kiểm tra độ an toàn của tệp, bạn cần gửi yêu cầu với URL S3 của tệp và sử dụng khóa API để xác thực.
Nếu quá trình kiểm tra VirusTotal xác nhận rằng tệp an toàn và không có phát hiện tích cực nào, hệ thống sẽ tiến hành tải xuống tệp từ nhóm S3.
6 Đầu ra của người dùng:
Tập lệnh cung cấp thông báo hữu ích cho người dùng trong suốt quá trình, bao gồm thông tin chi tiết từ phản hồi của API VirusTotal và tình trạng tải xuống.
Kịch bản sử dụng khối `try` và `except` giúp xử lý các trường hợp ngoại lệ hiệu quả, như khi đăng nhập không thành công, gặp lỗi trong quá trình kiểm tra VirusTotal, hoặc xảy ra sự cố trong quá trình tải xuống tệp.
Khóa API VirusTotal cần được bảo vệ an toàn trong các tập lệnh mã hóa cứng Để đảm bảo an toàn cho khóa API trong thực tế, việc sử dụng biến môi trường hoặc các phương pháp bảo mật khác để lưu trữ khóa là rất quan trọng.
Hình 14 : Lựa chọn decrypt ở Main.py
Hình 15 : Nội dung Code của file decryt.py
T HỰC NGHIỆM
Chuẩn bị dịch vụ IAM, S3 và Mailtrap. o Chúng ta sẽ thực hiện trên S3 có tên là
Hình 16 : Object trong S3 o Sau đó, tạo và thiết lập cho User IAM có quyền thực thi trên S3 này
Hình 17 : Phân quyền User IAM o Đăng nhập vào Mailtrap -> Inboxes -> My Inbox
Tiến hành chạy chương trình để upload file. o Khởi động chương trình nhập