Phân tích cuộc tấn công mạng Ransomware trên cơ sở thuật toán mã hóa RSA và AES
Ransomware là một loại mã độc được thiết kế để mã hóa dữ liệu trên hệ thống máy tính của nạn nhân, sau đó yêu cầu người dùng trả tiền chuộc để lấy lại quyền truy cập vào dữ liệu của họ. Đây là một hình thức tống tiền kỹ thuật số.
Kẻ tấn công thường phát tán Ransomware thông qua các email lừa đảo, các trang web độc hại hoặc các phương tiện lưu trữ di động đã bị nhiễm. Khi một thiết bị bị nhiễm, Ransomware sẽ tự động mã hóa dữ liệu trên đó. Sau đó, người dùng sẽ nhận được một thông báo yêu cầu thanh toán một khoản tiền, thường là qua tiền ảo như Bitcoin, để nhận khóa giải mã.
Cơ chế hoạt động của Ransomware thường diễn ra qua nhiều giai đoạn, từ lây nhiễm đến yêu cầu tiền chuộc.
Các bước chính trong quá trình hoạt động của một cuộc tấn công ransomware
Hướng dẫn triển khai biện pháp đảm bảo an toàn thông tinĐỌC NGAY
Lây nhiễm: Ransomware có thể lây nhiễm vào hệ thống qua nhiều phương thức, bao gồm email lừa đảo (phishing) có đính kèm tập tin độc hại, các liên kết tải xuống độc hại từ trang web giả mạo hoặc quảng cáo lừa đảo, và các phương tiện lưu trữ di động đã bị nhiễm virus. Người dùng cuối thực hiện hành động mở file hoặc click vào link, từ đó kích hoạt mã độc.
Khởi tạo: Khi đã vào được hệ thống, ransomware sẽ tự sao chép và cài đặt chính nó vào hệ thống. Một số phiên bản ransomware cũng có thể tự sao chép lên các máy tính khác trong mạng lưới để lan rộng sự lây nhiễm.
Mã hóa dữ liệu: Ransomware sẽ tiến hành quét các tệp tin trên hệ thống để tìm các tệp quan trọng như tài liệu, ảnh, video và các tệp dữ liệu quan trọng khác. Sau đó, nó sử dụng các thuật toán mã hóa mạnh để mã hóa (khóa) các tệp này, khiến chúng không thể truy cập được mà không có khóa giải mã.
Yêu cầu tiền chuộc: Sau khi mã hóa dữ liệu xong, ransomware sẽ hiển thị thông báo yêu cầu tiền chuộc trên màn hình của nạn nhân, thông báo rằng dữ liệu đã bị khóa và đưa ra chỉ dẫn về cách thanh toán tiền chuộc để lấy lại khóa giải mã. Thông thường, tiền chuộc được yêu cầu phải thanh toán bằng Bitcoin hoặc một loại tiền tệ kỹ thuật số khác.
Thanh toán và giải mã: Nếu nạn nhân quyết định trả tiền, họ sẽ phải tuân theo các hướng dẫn thanh toán và chuyển tiền tới địa chỉ ví điện tử của kẻ tấn công. Sau khi nhận được tiền, kẻ tấn công có thể cung cấp khóa giải mã để nạn nhân có thể mở khóa dữ liệu của mình. Tuy nhiên, không phải lúc nào việc trả tiền chuộc cũng đảm bảo rằng dữ liệu sẽ được giải mã.
Phát tán: Trong một số trường hợp, ransomware còn có khả năng tự phát tán sang các hệ thống khác, tìm kiếm các máy tính khác trong cùng mạng để lây nhiễm, qua đó tăng tốc độ lan rộng của cuộc tấn công.
Ví dụ, chúng ta có thể xem xét WannaCry, một trong những cuộc tấn công ransomware nổi tiếng nhất đã lan rộng trên toàn cầu vào tháng 5 năm 2017.
Phương thức lây nhiễm
WannaCry lây lan thông qua lỗ hổng trong Windows SMB (Server Message Block) protocol. Lỗ hổng này, được biết đến với tên mã là "EternalBlue", đã được NSA (Cơ quan An ninh Quốc gia Hoa Kỳ) khám phá nhưng bị rò rỉ bởi nhóm hacker Shadow Brokers. WannaCry tự động lan truyền từ máy tính này sang máy tính khác mà không cần tương tác từ người dùng thông qua mạng.
Khởi tạo và cài đặt
Sau khi xâm nhập thành công vào một máy tính thông qua lỗ hổng EternalBlue, WannaCry sẽ tự giải nén và cài đặt bản thân vào hệ thống. Nó sử dụng một module khác có tên là "DoublePulsar" để tiêm mã độc vào hệ thống. WannaCry sau đó sẽ thiết lập một kênh liên lạc với máy chủ điều khiển của kẻ tấn công (C&C server) để nhận các chỉ thị và cập nhật.
Mã hóa dữ liệu
WannaCry tiến hành quét các đĩa cứng để tìm các tệp tin và thư mục để mã hóa. Nó tập trung vào các định dạng tệp phổ biến như tài liệu văn phòng, hình ảnh, video, và tệp lưu trữ. Ransomware này sử dụng thuật toán mã hóa RSA-2048 kết hợp với AES-128 để mã hóa tệp tin, đảm bảo rằng không thể giải mã mà không có khóa riêng của kẻ tấn công.
Phân tích thuật toán mã hóa RSA-2048 và AES-128
Thuật toán mã hóa RSA-2048 và AES-128 là hai trong số những thuật toán mã hóa khóa công khai và khóa bí mật phổ biến nhất được sử dụng hiện nay. Mỗi thuật toán có cơ chế và mục đích sử dụng riêng, và cùng nhau, chúng cung cấp một giải pháp bảo mật mạnh mẽ trong nhiều ứng dụng, bao gồm cả Ransomware như WannaCry. Dưới đây là phân tích chi tiết về cách thức hoạt động của hai thuật toán này:
Mô tả RSA-2048
Mã hóa và Khóa
Thuật toán RSA có hai khóa: khóa công khai (hay khóa công cộng) và khóa bí mật (hay khóa cá nhân). Mỗi khóa là những số cố định sử dụng trong quá trình mã hóa và giải mã. Khóa công khai được công bố rộng rãi cho mọi người và được dùng để mã hóa. Những thông tin được mã hóa bằng khóa công khai chỉ có thể được giải mã bằng khóa bí mật tương ứng. Nói cách khác, mọi người đều có thể mã hóa nhưng chỉ có người biết khóa cá nhân (bí mật) mới có thể giải mã được.
Tạo khóa
Giả sử A và B cần trao đổi thông tin bí mật thông qua một kênh không an toàn (ví dụ như Internet). Với thuật toán RSA, A đầu tiên cần tạo ra cho mình cặp khóa gồm khóa công khai và khóa bí mật theo các bước sau:
1. Chọn 2 số nguyên tố lớn p và q với p ≠ q, lựa chọn ngẫu nhiên và độc lập.
2. Tính: n = pq .
3. Tính: giá trị hàm số Euler f (n) = (p − 1)(q − 1).
4. Chọn một số tự nhiên e sao cho 1 < e < f (n)và là số nguyên tố cùng nhau với f (n).
5. Tính: d sao cho de º 1(mod f (n)) .
Một số lưu ý:
• Các số nguyên tố thường được chọn bằng phương pháp thử xác suất.
• Các bước 4 và 5 có thể được thực hiện bằng giải thuật Euclid mở rộng
• Bước 5 có thể viết cách khác: Tìm số tự nhiên x sao cho d= cũng là số tự nhiên. Khi đó sử dụng giá trị dmod (p−1)(q−1).
• Từ bước 3, PKCS#1 v2.1 sử dụng l =LCM(p−1,q−1) thay cho f= (p −1)(q−1)).
Khóa công khai bao gồm:
•n, môđun, và
• e, số mũ công khai (cũng gọi là số mũ mã hóa).
Khóa bí mật bao gồm:
• n, môđun, xuất hiện cả trong khóa công khai và khóa bí mật, và
• d, số mũ bí mật (cũng gọi là số mũ giải mã).
Một dạng khác của khóa bí mật bao gồm:
•p và q, hai số nguyên tố chọn ban đầu,
• p và q, hai số nguyên tố chọn ban đầu,
• d mod (p-1) và d mod (q-1) (thường được gọi là dmp1 và dmq1),
• (1/q) mod p (thường được gọi là iqmp)
A gửi khóa công khai cho B, và giữ bí mật khóa cá nhân của mình. Ở đây, p và q giữ vai trò rất quan trọng. Chúng là các phân tố của n và cho phép tính d khi biết e. Nếu không sử dụng dạng sau của khóa bí mật (dạng CRT) thì p và q sẽ được xóa ngay sau khi thực hiện xong quá trình tạo khóa.
Mã hóa
Giả sử B muốn gửi đoạn thông tin M cho A. Đầu tiên B chuyển M thành một số m < n theo một hàm có thể đảo ngược (từ m có thể xác định lại M) được thỏa thuận trước.
Lúc này B có m và biết n cũng như e do A gửi. B sẽ tính c là bản mã hóa của m theo công thức:
c = me mod n
Hàm trên có thể tính dễ dàng sử dụng phương pháp tính hàm mũ (theo môđun) bằng (thuật toán bình phương và nhân) Cuối cùng Bình gửi c cho An.
Giải mã [ sửa | sửa mã nguồn ]
A nhận c từ B và biết khóa bí mật d. A có thể tìm được m từ c theo công thức sau:
m = cd mod n
Biết m, A tìm lại M theo phương pháp đã thỏa thuận trước. Quá trình giải mã hoạt động vì ta có
ed=(me)dºmed (mod n).
Do ed º 1 (mod p-1) và ed º 1 (mod q-1), (theo định lý Fermat nhỏ) nên:
med º m (mod p)
Ransomware sử dụng nhiều loại thuật toán mã hóa khác nhau để đảm bảo rằng dữ liệu bị khóa không thể được truy cập mà không có khóa giải mã. Các thuật toán này có thể bao gồm cả mã hóa khóa công khai (asymmetric) và khóa bí mật (symmetric). Dưới đây là một số thuật toán mã hóa phổ biến nhất mà ransomware sử dụng:
Các loại thuật toán mã hóa thường được Ransomware sử dụng
Mã độc tống tiền Ransomware tăng mạnh, Thủ tướng yêu cầu tăng cường bảo đảm an toàn thông tin mạngĐỌC NGAY
AES (Advanced Encryption Standard): Là một thuật toán mã hóa khối rất mạnh và hiệu quả, thường sử dụng khóa 128, 192 hoặc 256-bit. AES là một lựa chọn phổ biến trong ransomware do tốc độ mã hóa nhanh và tính bảo mật cao.
RSA (Rivest-Shamir-Adleman): Là một thuật toán mã hóa khóa công khai phổ biến, thường được sử dụng để an toàn chuyển khóa mã hóa AES qua mạng. RSA thường sử dụng khóa 2048-bit hoặc lớn hơn để tăng cường bảo mật.
ECC (Elliptic Curve Cryptography): Là một thuật toán mã hóa khóa công khai sử dụng các đường cong elliptic. ECC có hiệu quả về mặt bộ nhớ và băng thông hơn so với RSA, nhưng không phải là phương pháp được sử dụng phổ biến nhất trong ransomware.
Triple DES (3DES): Mặc dù không phổ biến như AES, 3DES vẫn được một số phần mềm độc hại sử dụng để mã hóa dữ liệu. Nó dựa trên DES, một thuật toán cũ hơn, nhưng thực hiện mã hóa ba lần liên tiếp để tăng cường bảo mật.
ChaCha20: Là một thuật toán mã hóa luồng mới hơn và được sử dụng trong một số trường hợp bởi các biến thể ransomware hiện đại do tốc độ và tính an toàn của nó.
Blowfish và Twofish: Đây là các thuật toán mã hóa khối đối xứng, với Blowfish sử dụng khóa có độ dài thay đổi từ 32 đến 448-bit. Twofish là kế thừa của Blowfish và thường sử dụng khóa 128-bit hoặc 256-bit.
Các tổ chức phát triển Ransomware thường chọn những thuật toán mã hóa này không chỉ vì chúng cung cấp mức độ bảo mật cao, mà còn vì chúng có thể thực hiện nhanh chóng và hiệu quả trên nhiều loại phần cứng. Việc lựa chọn thuật toán phù hợp giúp đảm bảo rằng việc giải mã dữ liệu mà không có khóa phù hợp là không thể hoặc rất khó khăn, đồng thời tăng cường khả năng yêu cầu tiền chuộc thành công của kẻ tấn công.
Giải pháp kỹ thuật khi gặp tấn công Ransomware
Khi đối mặt với một cuộc tấn công Ransomware, có nhiều bước kỹ thuật bạn có thể thực hiện để giảm thiểu thiệt hại và khôi phục các hệ thống. Dưới đây là một số giải pháp kỹ thuật chính để xử lý và phục hồi sau một cuộc tấn công ransomware:
1. Ngắt kết nối từ mạng
Ngay lập tức ngắt kết nối máy tính bị nhiễm khỏi mạng để ngăn chặn ransomware lây lan sang các thiết bị khác. Điều này bao gồm Wi-Fi, mạng Ethernet, và các kết nối không dây khác.
2. Xác định và đánh giá mức độ nhiễm
Xác định phiên bản ransomware: Sử dụng các công cụ và dịch vụ như ID Ransomware để xác định loại ransomware, có thể giúp bạn tìm hiểu thêm về cách thức mã hóa và khả năng giải mã.
Đánh giá thiệt hại: Kiểm tra các hệ thống và dữ liệu bị ảnh hưởng để hiểu phạm vi của cuộc tấn công và xác định các tệp quan trọng bị ảnh hưởng.
3. Sao lưu dữ liệu bị ảnh hưởng
Sao lưu thông tin: Sao lưu tất cả dữ liệu bị ảnh hưởng, ngay cả khi đã bị mã hóa. Điều này bảo đảm rằng bạn có một bản sao của dữ liệu, có thể hữu ích cho quá trình phục hồi sau này hoặc nếu có công cụ giải mã được phát triển.
4. Sử dụng công cụ giải mã
Tìm kiếm công cụ giải mã: Kiểm tra các nguồn như No More Ransom Project để tìm các công cụ giải mã có sẵn mà không cần trả tiền chuộc. Các công cụ này được phát triển khi các nhà nghiên cứu bảo mật tìm ra lỗ hổng trong thuật toán của ransomware.
5. Khôi phục hệ thống
Khôi phục từ sao lưu: Sử dụng các bản sao lưu không bị ảnh hưởng để khôi phục dữ liệu và hệ thống. Đảm bảo rằng các bản sao lưu đã được quét bằng phần mềm chống malware trước khi khôi phục.
Cài đặt lại hệ điều hành: Nếu không có bản sao lưu, bạn có thể cần phải cài đặt lại hệ điều hành và các ứng dụng từ đầu để đảm bảo rằng ransomware được loại bỏ hoàn toàn.
6. Tăng cường các biện pháp bảo mật
Cập nhật và vá lỗi: Đảm bảo rằng tất cả phần mềm, bao gồm hệ điều hành và các ứng dụng, được cập nhật với các bản vá bảo mật mới nhất.
Đào tạo nhận thức bảo mật cho người dùng: Giáo dục người dùng về các mối đe dọa bảo mật, như lừa đảo phishing và các mẹo an toàn trực tuyến.
7. Tham khảo ý kiến chuyên gia
Tư vấn chuyên gia: Nếu tình hình vượt quá khả năng xử lý, hãy tìm kiếm sự giúp đỡ từ các chuyên gia an ninh mạng để có các giải pháp chuyên nghiệp và hiệu quả.
Trong khi xử lý một cuộc tấn công Ransomware, điều quan trọng là phải duy trì sự bình tĩnh và tuân thủ quy trình đã lên kế hoạch để giảm thiểu thiệt hại và bảo vệ dữ liệu. Luôn luôn cân nhắc đến khả năng pháp lý và tác động tiềm ẩn khi quyết định có trả tiền chuộc hay không, vì điều này có thể dẫn đến các vấn đề phức tạp hơn.
Tham khảo giải pháp "No more ransom project"
Dự án cung cấp các công cụ giải mã miễn phí cho nhiều loại Ransomware và cũng là nguồn tài nguyên giáo dục để giúp người dùng hiểu và bảo vệ mình khỏi Ransomware.
Dưới đây là một số ví dụ về các công cụ giải mã được No More Ransom Project cung cấp như: Decryptor for WannaCryFake; GandCrab Decryptor; GandCrab; Rakhni Decryptor; Shade Decryptor; Avast Free Ransomware Decryption Tools.
Lưu ý: No more ransom project liên tục cập nhật và bổ sung các công cụ giải mã mới khi chúng trở nên có sẵn, làm cho nó trở thành một nguồn tài nguyên quý giá cho bất kỳ ai đang tìm cách phục hồi dữ liệu sau một cuộc tấn công Ransomware.