À TRIỂN KHAI THỬ NGHIỆM GIẢI PHÁP MÃ HÓA DỮ LIỆU LƯU TRỮ DỰA TRÊN PHẦN MỀM NGUỒN MỞ VERACRYPT CHƯƠNG 1: TỔNG QUAN VỀ LƯU TRỮ DỮ LIỆU Chương này trình bày các nội dung tìm hiểu dữ liệu lưu trữ, thiết bị lưu trữ, các nguy cơ mất an toàn đối với dữ liệu lưu trữ và một số giải pháp bảo mật dữ liệu lưu trữ. CHƯƠNG 2: GIẢI PHÁP MÃ HÓA DỮ LIỆU LƯU TRỮ DỰA TRÊN PHẦN MỀM VERACRYPT Chương này trình bày về thuật toán được ứng dụng trong mã hóa ổ đĩa, các chế độ mã hóa ổ đĩa và giải pháp mã hóa dữ liệu lưu trữ trong phần mềm VeraCrypt. CHƯƠNG 3: THỬ NGHIỆM GIẢI PHÁP MÃ HÓA SỬ DỤNG MÃ NGUỒN VERACRYPT Chương này trình bày cấu trúc logic cơ bản của mã nguồn VeraCrypt, các tùy biến đối với mã nguồn và cách thức triển khai sử dụng ổ đĩa ảo để bảo mật dữ liệu lưu trữ.
ĐẠI HỌC BÁCH KHOA HÀ NỘI ĐỒ ÁN TỐT NGHIỆP TÌM HIỂU VÀ TRIỂN KHAI THỬ NGHIỆM GIẢI PHÁP MÃ HÓA DỮ LIỆU LƯU TRỮ DỰA TRÊN PHẦN MỀM NGUỒN MỞ VERACRYPT Sinh viên thực hiện: Nguyễn Văn Sơn Hà Nội – 2023 MỤC LỤC MỤC LỤC i DANH MỤC CÁC TỪ VIẾT TẮT iii DANH MỤC BẢNG BIỂU iv DANH MỤC HÌNH VẼ Lỗi! Thẻ đánh dấu khơng được xác định LỜI NĨI ĐẦU v CHƯƠNG I: TỔNG QUAN VỀ LƯU TRỮ DỮ LIỆU 1.1 Dữ liệu máy tính 1.1.1 Khái niệm liệu máy tính 1.1.2 Cách biểu diễn liệu thiết bị lưu trữ 1.1.3 Đặc điểm liệu lưu trữ 1.1.4 Các trạng thái liệu 1.2 Lưu trữ liệu 1.2.1 Phân cấp thiết bị lưu trữ 1.2.2 Đặc tính thiết bị lưu trữ 1.2.3 Thiết bị lưu trữ thực tế 1.3 Nguy an toàn liệu 13 1.3.1 Nguyên nhân nhận thức, kiến thức người dùng 13 1.3.2 Nguyên nhân bất cẩn người quản trị sở hạ tầng 13 1.3.3 Nguyên nhân liệu trộm cắp máy tính 14 1.3.4 Một số cơng điển hình 15 1.4 Các giải pháp bảo mật 16 1.4.1 Mã hóa file, hệ thống tệp 16 1.4.2 Mã hóa ổ đĩa ( Disk Encryption) 19 1.5 Kết luận chương 27 CHƯƠNG II: GIẢI PHÁP MÃ HÓA DỮ LIỆU LƯU TRỮ DỰA TRÊN PHẦN MỀM VERACRYPT 29 2.1 Giới thiệu chuẩn IEEE P1619 29 2.1.1 Thuật toán AES 29 2.1.2 Các chế độ mã hóa liệu lưu trữ 33 2.2 Giới thiệu phần mềm VeraCrypt 46 2.2.1 Giới thiệu 46 2.2.2 Quy trình xử lý liệu VeraCrypt 46 2.2.3 Quy trình xử lý khóa VeraCrypt 51 2.3 Kết luận chương 53 CHƯƠNG III: PHÁT TRIỂN ỨNG DỤNG MÃ HÓA DỮ LIỆU DỰA TRÊN MÃ NGUỒN MỞ VERACRYPT 54 3.1 Tùy biến mã nguồn VeraCrypt 54 3.2 Biên dịch triển khai ứng dụng VeraCrypt 61 3.2.1 Cài đặt môi trường phát triển 61 3.2.2 Biên dịch mã nguồn VeraCrypt 63 3.2.3 Triển khai ứng dụng VeraCrypt 65 3.3 Kết luận chương 68 KẾT LUẬN 69 TÀI LIỆU THAM KHẢO 70 DANH MỤC CÁC TỪ VIẾT TẮT Từ viết tắt AES Tiếng Anh Tiếng Việt Advanced Encryption Standard Tiêu chuẩn mã hóa nâng cao DES Data Encryption Standard Tiêu chuẩn mã hóa CTR Counter Chế độ đếm ECB Electronic Codebook Chế độ sách điện tử EFS Encrypted File-System Mã hóa hệ thống tệp DRAM Dynamic Random Access Bộ nhớ truy cập ngẫu Memory nhiên động HHD Hybrid Hard Drive Ổ cứng lai IEEE Institute of Electrical and Tổ chức phi lợi nhuận Electromics Engineers NIST điện điện tử National Institute of Standards Viện Tiêu chuẩn Kỹ and Technology thuật quốc gia ROM Read-Only Memory Bộ nhớ đọc RAM Random Access Memory Bộ nhớ truy cập ngẫu nhiên SRAM Static Random Access Memory Bộ nhớ truy cập ngẫu nhiên tĩnh SSD Solid State Drive Ổ cứng lưu trữ thể rắn USB Universal Serial Bus Chuẩn kết nối đa dụng Xor mã hóa Xor XEX Xor Encrypt Xor XTS XEX-based tweaked-codebook Chế độ dựa XEX mode with ciphertext stealing “lấy” mã DANH MỤC BẢNG BIỂU Bảng 1.1 So sánh SRAM DRAM Bảng 2.1 Bảng biểu diễn trạng thái đầu vào, đầu 30 Bảng 2.2 Độ dài khóa, độ dài khối số vịng AES 31 Bảng 2.3 Cấu trúc volume header 50 LỜI NÓI ĐẦU Trong xã hội công nghệ thông tin nay, tất thông tin cá nhân lưu trữ thiết bị nhỏ gọn, giá thành rẻ, dễ sử dụng USB, DVD, Các thiết bị lưu trữ có tính phổ biến cao, kéo theo nguy an tồn liệu, lộ lọt thông tin thiết bị bị thất lạc cắp, Vì vậy, thực cần có biện pháp để bảo vệ liệu trước nguy Rất nhiều giải pháp bảo vệ đưa kiểm soát người dùng truy cập vào liệu, hệ thống, dùng phần mềm đặt mật cho file, bảo mật liệu giải pháp quan trọng cần thiết Giải pháp bảo mật liệu dùng thuật toán mật mã cho phép mã hóa liệu cần bảo vệ Mã hóa liệu việc chuyển đổi liệu từ dạng đọc hiểu sang dạng không đọc hiểu thông qua trình mã hóa Vì vậy, kẻ cơng có thiết bị lưu trữ mà liệu bạn mã hóa khó thu thơng tin ban đầu Xuất phát từ thực tế đó, tơi chọn đề tài “Tìm hiểu triển khai thử nghiệm giải pháp mã hóa liệu lưu trữ dựa phần mềm nguồn mở VeraCrypt” làm nội dung nghiên cứu cho đồ án tốt nghiệp Nội dung đề tài nghiên cứu chia làm chương: CHƯƠNG 1: TỔNG QUAN VỀ LƯU TRỮ DỮ LIỆU Chương trình bày nội dung tìm hiểu liệu lưu trữ, thiết bị lưu trữ, nguy an toàn liệu lưu trữ số giải pháp bảo mật liệu lưu trữ CHƯƠNG 2: GIẢI PHÁP MÃ HÓA DỮ LIỆU LƯU TRỮ DỰA TRÊN PHẦN MỀM VERACRYPT Chương trình bày thuật tốn ứng dụng mã hóa ổ đĩa, chế độ mã hóa ổ đĩa giải pháp mã hóa liệu lưu trữ phần mềm VeraCrypt CHƯƠNG 3: THỬ NGHIỆM GIẢI PHÁP MÃ HÓA SỬ DỤNG MÃ NGUỒN VERACRYPT Chương trình bày cấu trúc logic mã nguồn VeraCrypt, tùy biến mã nguồn cách thức triển khai sử dụng ổ đĩa ảo để bảo mật liệu lưu trữ CHƯƠNG I: TỔNG QUAN VỀ LƯU TRỮ DỮ LIỆU 1.1 Dữ liệu máy tính 1.1.1 Khái niệm liệu máy tính Dữ liệu máy tính thơng tin xử lý lưu trữ máy tính Thơng tin dạng tài liệu văn bản, hình ảnh, clip âm thanh, chương trình phần mềm loại liệu khác Dữ liệu máy tính xử lý CPU máy tính lưu trữ tệp thư mục đĩa cứng máy tính Ở cấp độ thơ sơ nó, liệu máy tính loạt bit bit 1, gọi liệu nhị phân Bởi tất liệu máy tính định dạng nhị phân nên tạo, xử lý, lưu lưu trữ kỹ thuật số Điều cho phép liệu truyền từ máy tính sang máy tính khác kết nối mạng thiết bị đa phương tiện khác nhau, đồng thời liệu không bị suy giảm theo thời gian chất lượng sau sử dụng nhiều lần 1.1.2 Cách biểu diễn liệu thiết bị lưu trữ Tất liệu âm thanh, hình ảnh, số, giới thực mà muốn lưu trữ máy tính chuyển đổi thành liệu biểu thị bit 0, Hình 1.1 Dữ liệu đời thực abc text Dữ liệu máy tính 01110101011010101 10100101011010101 01010101010110101 01000101011010101 01101010101001100 00101011101100111 10101001010101010 10101010101010101 01010101011000100 Hình 1.1 Dữ liệu đời thực liệu máy tính Mỗi loại liệu lại có cách quy ước để chuyển đổi thành bit 0, khác Có thể chia tín hiệu đời thực thành số loại sau: ký tự, hình ảnh - đồ họa, âm thanh, - Ký tự biểu diễn dạng ASCII, ASCII phủ Hoa Kì áp dụng làm tiêu chuẩn để biểu diễn ký tự máy tính Ví dụ: nhập chữ C bàn phím, máy tính chuyển đổi thành byte dạng 01000011 - Hình ảnh – đồ họa: liệu hình ảnh – đồ họa biểu diễn thành pixel, byte biểu diễn pixel Trong thang độ xám, pixel màu xám từ đen cực sang cực khác - Âm thanh: xuất tự nhiên dạng tín hiệu tương tự Khi đưa vào máy tính, tín hiệu tương tự chuyển thành tín hiệu số qua giai đoạn: lấy mẫu, lượng tử hóa, trung bình hóa mã hóa Cần lấy mẫu độ cao sóng âm khoảng thời gian Các độ cao đại diện cho mức độ decibel âm 1.1.3 Đặc điểm liệu lưu trữ Do liệu lưu trữ lưu trữ thiết bị lưu trữ dạng thông tin số nên có đầy đủ đặc điểm thơng tin số Tính đồng Vì thơng tin kỹ thuật số truyền ký hiệu xếp nên tất sơ đồ kỹ thuật số có số phương pháp để xác định điểm bắt đầu chuỗi Trong ngôn ngữ viết nói người, đồng hóa thường cung cấp tạm dừng (dấu cách), viết hoa chấm câu Thông tin liên lạc máy thường sử dụng trình tự đồng hóa đặc biệt Tính ngôn ngữ Trong tất giao tiếp kỹ thuật số, liệu trình bày theo ngơn ngữ người gửi người nhận thống từ trước Nói chung việc chọn ngơn ngữ tùy ý nhằm định ý nghĩa gán cho chuỗi ký hiệu cụ thể, phạm vi giá trị phép, Tính chép Do diện khơng thể tránh khỏi nhiễu nên việc tạo nhiều liên tiếp truyền thông tương tự khơng thể thực làm tăng độ nhiễu Bởi thơng tin liên lạc kỹ thuật số thường khơng có lỗi nên sao tạo vơ thời hạn Tính nén Theo Miller, "Dữ liệu số không nén lớn dạng thô, thực tạo tín hiệu lớn (do khó truyền hơn) so với liệu tương tự Tuy nhiên, liệu số nén Lượng không gian băng thông cần thiết để gửi thông tin Dữ liệu nén, gửi sau giải nén vị trí người nhận Điều cho phép gửi nhiều thông tin kết là, ví dụ, tín hiệu truyền hình kỹ thuật số cung cấp nhiều chỗ phổ sóng khơng khí cho nhiều kênh truyền hình hơn” 1.1.4 Các trạng thái liệu Dữ liệu có trạng thái: liệu trạng thái lưu trữ, liệu lưu thông liệu trạng thái sử dụng Hình 1.2 đưa nhìn tổng thể trạng thái liệu Dữ liệu lưu thông Dữ liệu sử dụng Dữ liệu hoạt động lưu phương pháp vật lý sở liệu thiết bị lưu trữ Dữ liệu sử dụng Dữ liệu lưu thông Dữ liệu truyền qua mạng lưu trữ tạm thời máy tính để đươc đọc sửa đổi Dữ liệu trạng thái lưu trữ Dữ liệu trạng thái lưu trữ Dữ liệu lưu sở liệu thiết bị lưu trữ Hình 1.2 Trạng thái liệu 1.1.4.1 Dữ liệu trạng thái lưu trữ Dữ liệu trạng thái lưu trữ thuật ngữ liệu lưu trữ thiết bị phương tiện lưu hình thức Nó liệu lưu trữ ổ đĩa cứng, băng dự phòng, lưu đám mây ngoại vi chí thiết bị di động Dữ liệu trạng thái lưu trữ thường trạng thái ổn Hình 3.3 Thư mục VeraCrypt/src/Crypto Thuật tốn AES lập trình với ngơn ngữ Assembly file VeraCrypt/src/Crypto/Aes_x64.asm Hình 3.4 Một phần nội dung file Aes_x64.asm Hình 3.5 Các vịng AES thực src/Crypto/Aescrypt.c Các thuộc tính AES lập trình file Aes_x64.asm gọi lại thực qua tùng vòng file src/Crypto/Aescrypt.c Các thuật tốn mã hóa VeraCrypt hoạt động chế độ XTS Cách thức hoạt động chế độ lập trình file src/Volume/EncryptionModeXTS.cpp Hình 3.6 Một phần nội dung file src/Volume/EncryptionModeXTS.cpp Việc lược bỏ thuật tốn cần thực xóa bỏ file lập trình Twofish, Serpent, Camellia, Kuznyechik Các thuật file thuật toán gọi thực trình thuộc thư mục src/Volume Giao điện cho phép người dùng lựa chọn thuật tốn mã hóa phân vùng lập trình từ dịng 63 file VeraCrypt/src/Volume/EncryptionAlgorithm.cpp Hình 3.7 File VeraCrypt/src/Volume/EncryptionAlgorithm.cpp Các thuật tốn có testcase để kiểm sốt trường hợp trình thực thi Các testcase trình bày file veracrypt/src/Volume/EncryptionTest.cpp Việc thêm bớt thuật tốn mã hóa cần đảm bảo testcase Mỗi thuật toán người dùng lựa chọn phải đảm bảo 10 testcase đầu vào, nên việc cắt giảm thuật tốn mã hóa cần chỉnh giá trị số lượng testcase dịng 1124 Hình 3.8 Testcase AES file EncryptionTest.cpp Hình 3.9 Tham số kiểm sốt testcase đầu vào dịng 1124 Sau thực tùy biến thuật toán mật mã để tránh lỗi khơng tìm thấy thuật tốn thuật toán lược bỏ cần thay đổi lệnh compiler file Makefile Hình 3.10 file Makefile nơi quản lý trình biên dịch mã nguồn 3.2 Biên dịch triển khai ứng dụng VeraCrypt 3.2.1 Cài đặt môi trường phát triển Bước 1: Cài đặt yasm câu lệnh “sudo apt-get install yasm” Yasm trình biên dịch hỗ trợ tập lệnh x86 AMD64 Bên cạnh yasm cịn chấp nhận cú pháp trình biên dịch NASM GAS để đưa kết nhị phân, ELF32, ELF64, COFF, Win32 Win64 tạo thông tin gỡ lỗi nguồn định dạng STABS, DWARF CodeView Bước 2: Cài đặt libfuse-dev Bước 3: Cài đặt pkg-config pkg-config chương trình build-in sẵn linux, có chức lấy thơng tin thư viện cài đặt để phục vụ cho việc build ứng dụng thư viện khác có sử dụng thư viện Thư viện cài đặt có file có mở rộng ".pc" chứa thông tin thư viện, chương trình pkg-config đọc thơng tin từ file thơng qua biến mơi trường có tên PKG_CONFIG_PATH Bước 4: Cài đặt libgtk-3-dev libgtk-3-dev libfuse-dev gói mở rộng FUSE (Filesystem in Userspace) lõi module nạp cho hệ thống máy tính chạy hệ điều hành họ Unix, cho phép người dùng thơng thường có khả tạo hệ thống tệp mà không cần chỉnh sửa mã kernel Đây kết đạt chạy mã hệ thống tệp không gian người dùng, module FUSE cung cấp "cầu nối" đến giao diện kernel thực FUSE thức tích hợp vào nhân Linux từ phiên 2.6.14 Bước 5: Cài đặt wxWidget 3.0.5 từ source code link https://www.wxwidgets.org/downloads/#v3.0.5 wxWidgets (trước wxwindows) công cụ thư viện Tools widget cho phép tạo giao diện người dùng đồ họa (GUIs) cho tảng ứng dụng cross wxWidgets cho phép mã giao diện chương trình để biên dịch chạy số tảng máy tính với thay đổi tối thiểu wxWidgets hỗ trợ loạt hệ điều hành phổ biến thư viện đồ họa, độc quyền miễn phí Hình 3.11 folder wxWidget-3.0.5 sau giải nén Sau Extract file tải thực truy cập vào thư mục source code chạy lệnh “export “export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/” PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig/” để hệ thống nhận diện thư viện chia sẻ libgtk pkgconfig cài đặt Thự câu lệnh “./configure” để cấu hình cho trình make Sau cấu hình xong chạy câu lệnh “make -j4” để biên dịch lệnh “sudo make install” để cài đặt wxWidget3.0.5 vào hệ thống 3.2.2 Biên dịch mã nguồn VeraCrypt Bước 6: Truy cập vào thư mục src thực biên dịch source code VeraCrypt với lệnh “make “Main/veracrypt” -j4” khởi chạy phần mềm lệnh Hình 3.12 Quá trình biên dịch mã nguồn VeraCrypt Trước tiến hành biên dịch mã nguồn nên thực xóa lịch sử biên dịch lệnh “make clean” Hình 3.13 Giao diện ứng dụng VeraCrypt 3.2.3 Triển khai ứng dụng VeraCrypt 3.2.2.1 Tính khởi tạo ổ đĩa ảo Bước 1: Chọn “Create Volume” chọn tính “Create an enceypted file container” để khởi tạo chứa tập tin mã hóa Hình 3.14 Khởi tạo ổ đĩa ảo với chứa tập tin mã hóa Bước 2: Chọn “Standard VeraCrypt volume” để tạo ổ đĩa ảo thông thường vị trí lưu Hình 3.15 Chọn kiểu ổ đĩa vị trí lưu tập tin mã hóa Vị trí lưu ổ đĩa ảo file bất kỳ, liệu ổ đĩa ảo VeraCrypt sử lý vào lưu Lưu ý chọn tập tin có chứa nội dung nội dung khơng mã hóa mà bị VeraCrypt thay mã liệu ổ đĩa ảo Bước 3: Chọn thuật tốn mã hóa XTS-AES dung lượng ổ đĩa ảo muốn khởi tạo Hình 3.16 Chọn thuật tốn mã hóa dung lượng cho ổ đĩa ảo Bước 4: Thiết lập mật file khóa tiến hành chọn chuẩn ổ đĩa ảo định dạng ổ đĩa Hình 3.17 Chọn file khóa với chuẩn ổ đĩa trình định dạng Ở bước này, tình sinh khóa sử dụng giá trị ngẫu nhiên cung cấp tạo số ngẫu nhiên VeraCrypt Bộ tạo số ngẫu nhiên tạo vùng chứa giá trị ngẫu nhiên RAM với độ dài 320 byte Vùng chứa ghi liệu có đầu vào nguồn như: di chuyển chuột, bấm phím, thư viện MS Windows CryptoAPI, NETAPI132 Windows… Thế nên tình người dùng di chuyển trỏ chuột nhiều ngẫu nhiên nâng cao độ an tồn khóa sinh File khóa file lưu trữ máy tính truyền vào từ token hay thiết bị nhớ di động File khóa có độ dài tối thiểu 1024 kilobytes Nếu 1024 kilobytes file khóa bị thay đổi VeraCrypt nhận file khóa khơng cho phép Mount ổ đĩa mã hóa file khóa lên hệ thống Sau định dạng ổ đĩa ảo xong người dùng nhận thơng báo q trình khởi tạo ổ đĩa ảo hoàn tất 3.2.2.3 Sử dụng ổ đĩa ảo để bảo vệ liệu lưu trữ Bước 1: Nạp ổ đĩa ảo lên hệ thống Hình 3.18 Mount ổ đĩa lên hệ thống Bước 2: Thao tác với ổ đĩa ảo ổ đĩa thơng thường Hình 3.19 Phân vùng mã hóa Mount lên hệ thống Bước 3: Kết thúc phiên làm việc tiến hành gỡ ổ đĩa ảo xuống khỏi hệ thống Chuột phải vào ổ đĩa muốn gỡ bỏ chọn “Dismount Volume” Quá trình giúp ngăn cản người sử dụng khơng có mật tập đĩa tiến hành sử dụng trái phép tài nguyên bên tập đĩa 3.3 Kết luận chương Chương trình bày thư viện mật mã khả thay thuật toán mật mã phần mềm VeraCrypt Từ đưa giải pháp tùy biến mã nguồn cách xây dưng thư viện để biên dịch phần mềm Thực biên dịch phần mềm tiến hành triển khai thử nghiệm trình khởi tạo phân vùng bảo mật phục vụ lưu trữ liệu KẾT LUẬN Về mặt lý thuyết, đồ án trình bày nội dung sau: - Tổng quan lưu trữ liệu, đặc điểm thiết bị lưu trữ nguy an toàn liệu - Nghiên cứu chuẩn mã hóa liệu lưu trữ IEEE P1619 giải pháp mã hóa liệu dựa ứng dụng VeraCrypt - Tìm hiểu cách thức mã hóa liệu quản lý khóa ứng dụng VeraCrypt thông qua mã nguồn mở Về mặt thực nghiệm, đồ án thu kết sau: - Biên dịch tìm hiểu thư viện mật mã khả thay thuật toán mật mã phần mềm VeraCrypt - Triển khai thử nghiệm giải pháp mã hóa liệu VeraCrypt tảng máy tình cá nhân - Đánh giá độ an tồn cài đặt mã nguồn TÀI LIỆU THAM KHẢO [1] ThS Phạm Văn Lực, Vấn đề mã hóa liệu lưu trữ, Tạp chí An tồn thơng tin, 2010 [2] IEEE P1619 (Standard for Cryptographic Protection of Data on Block – Oriented Storage Devices) [3] IEEE P1619.1 (Standard for Authenticated Encryption with Length Expansion for Storage Devices) [4] IEEE P1619.3 (Standard for Key Management Infrastructure for Cryptographic Protection of Stored Data) [5] Louiza Khati, Nicky Mouha, and Damien Vergnaud, Full Disk Encryption: Bridging Theory and Practice [6] Adnan Vaseem Alam, Disk Encryption Scrutinizing IEEE Standard 1619\XTS-AES, Norwegian University of Science and Technology Department of Telematics, 2009 [7] Cryptographic Filesystems, Part One: Design and Implementation https://www.symantec.com/connect/articles/cryptographic-filesystems-part-onedesign-andimplementation [8] Encryption Scheme https://www.VeraCrypt71a.com/documentation/technical-details/encryptionscheme/?fbclid=IwAR2PiGejlCBbBRQuCcM4ITYlv_aXsWa65OG4ffwnGqag LUOdhwxCLkmdWAQ [9] Volume Header https://www.remosoftware.com/glossary/volumeheader?fbclid=IwAR2WXSDnYoVssDBF14eFyWgYwCiDdv0SHcamhfpmiig67EAzRLxe1LcRaY [10] Cut-and-paste-attack https://searchsecurity.techtarget.com/definition/cut-and-paste-attack [11] Data-breach https://www.trendmicro.com/vinfo/us/security/news/cyber-attacks/data-breach101