Tác giả: Lisa & Aro

Biên tập: Liz

Trong môi trường Internet ngày nay, phần mềm độc hại, virus, tấn công lừa đảo và các mối đe dọa khác xuất hiện liên tục, việc cài đặt phần mềm diệt virus (như AVG, Bitdefender, Kaspersky, Malwarebytes và các sản phẩm quốc tế nổi tiếng khác) có thể giúp người dùng phòng ngừa các chương trình độc hại và nâng cao an ninh hệ thống. Tuy nhiên, chức năng của phần mềm diệt virus chủ yếu là cung cấp bảo vệ an ninh cơ bản, nó chỉ có thể giảm thiểu rủi ro mà không thể đảm bảo an toàn tuyệt đối. Cuộc chiến là một quá trình động, việc cài đặt phần mềm diệt virus chỉ là bước đầu tiên để nâng cao an toàn. Đồng thời, chính phần mềm diệt virus cũng có thể xảy ra tình trạng báo sai, mang lại rủi ro bổ sung.

Gần đây, một số người dùng đã phản hồi rằng, sau khi sử dụng phần mềm diệt virus, một số tiện ích mở rộng trình duyệt (đặc biệt là tiện ích ví tiền điện tử) bị báo sai là phần mềm độc hại, dẫn đến tệp JavaScript của tiện ích bị cách ly hoặc xóa, cuối cùng làm hỏng ví tiện ích, không thể sử dụng bình thường.

Đối với người dùng Web3, tình huống này đặc biệt nghiêm trọng, vì các tiện ích ví mã hóa thường lưu trữ khóa riêng, nếu xử lý không đúng, có thể dẫn đến mất dữ liệu ví, thậm chí không thể khôi phục tài sản. Do đó, hiểu cách khôi phục đúng cách dữ liệu tiện ích bị báo sai là vô cùng quan trọng.

Làm thế nào để xử lý?

Nếu phát hiện phần mềm diệt virus báo sai khiến tiện ích mở rộng của trình duyệt bị hỏng, hãy làm theo các bước sau để khôi phục:

1. Khôi phục tệp từ khu vực cách ly, tuyệt đối không gỡ cài đặt tiện ích

Nếu phát hiện một phần mềm hoặc tiện ích không thể hoạt động, hãy ngay lập tức kiểm tra "khu vực cách ly" (Quarantine) hoặc "lịch sử" (History) của phần mềm diệt virus để tìm các tệp bị báo sai, tuyệt đối không xóa tệp đã cách ly.

  • Nếu tệp vẫn nằm trong khu vực cách ly, chọn "Khôi phục" (Restore), và thêm tệp hoặc tiện ích mở rộng đó vào danh sách tin cậy để tránh báo sai lần nữa.

  • Nếu tệp đã bị xóa, hãy kiểm tra xem có bản sao lưu tự động nào hoặc sử dụng công cụ phục hồi dữ liệu để khôi phục.

  • Lưu ý: Không gỡ cài đặt tiện ích mở rộng! Ngay cả khi tiện ích đã bị hỏng, có thể vẫn còn các tệp liên quan đến khóa riêng được mã hóa trên máy, vẫn có khả năng phục hồi.

2. Sao lưu và tìm kiếm dữ liệu tiện ích cục bộ

Dữ liệu của tiện ích thường được lưu trữ trên đĩa cứng cục bộ, ngay cả khi tiện ích không thể mở, vẫn có thể tìm thấy dữ liệu liên quan để khôi phục (ID tiện ích lấy MetaMask làm ví dụ: nkbihfbeogaeaoehlefnkodbefgpgknn):

  • Tham khảo đường dẫn Windows: C:\Users\USER_NAME\AppData\Local\Google\Chrome\User Data\Default\Local Extension Settings\nkbihfbeogaeaoehlefnkodbefgpgknn

  • Tham khảo đường dẫn Mac:
    ~/Library/Application Support/Google/Chrome/Default/Local Extension Settings/nkbihfbeogaeaoehlefnkodbefgpgknn

Cần lưu ý rằng, nếu Chrome sử dụng nhiều cấu hình tài khoản, đường dẫn có thể thay đổi từ Default thành Profile 1/Profile 2, cần kiểm tra thư mục Profile cụ thể và điều chỉnh đường dẫn theo tình hình thực tế. Khuyến nghị sao lưu toàn bộ thư mục tiện ích mục tiêu ngay lập tức để có thể phục hồi khi xảy ra sự cố.

3. Phương pháp khôi phục thô bạo: ghi đè lên thư mục tiện ích cục bộ

Nếu báo sai làm hỏng tiện ích, phương pháp trực tiếp nhất là trong môi trường máy tính hoặc trình duyệt mới, sao chép dữ liệu tiện ích đã sao lưu vào đường dẫn thư mục tiện ích tương ứng trên máy cục bộ rồi mở lại tiện ích.

4. Phương pháp khôi phục nâng cao: Giải mã dữ liệu khóa riêng bằng tay

Nếu tiện ích vẫn không thể mở hoặc dữ liệu bị thiếu, có thể thử phương pháp khôi phục nâng cao hơn, tức là giải mã dữ liệu khóa riêng bằng tay để phục hồi. Lấy MetaMask làm ví dụ:

  • Tìm kiếm ID tiện ích MetaMask trên máy tính cục bộ, tìm thư mục như sau: C:\Users\[User]\AppData\Local\Google\Chrome\User Data\Default\Local Extension Settings\nkbihfbeogaeaoehlefnkodbefgpgknn

  • Thư mục này có thể chứa các tệp ldb/log, những tệp này lưu trữ dữ liệu khóa riêng đã mã hóa. Có thể sử dụng công cụ giải mã Vault chính thức của MetaMask (https://metamask.github.io/vault-decryptor/) để giải mã.

  • Bước giải mã: Mở công cụ giải mã Vault của MetaMask -> Sao chép nội dung đã mã hóa trong tệp ldb/log -> Sử dụng mật khẩu gốc của tiện ích để giải mã -> Sau khi lấy được khóa riêng, nhập lại ví.

Nếu tiện ích mở rộng MetaMask vẫn có thể mở một số trang (như chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/home.html), bạn có thể thử chạy đoạn mã sau để lấy dữ liệu khóa riêng đã mã hóa:

Sau đó, sao chép dữ liệu vault vào công cụ giải mã Vault của MetaMask để giải mã.

5. Viết công cụ khôi phục tùy chỉnh

Nếu các phương pháp trên không thể khôi phục dữ liệu ví, người dùng có thể tự viết script để trích xuất dữ liệu lưu trữ tiện ích từ tệp cơ sở dữ liệu cục bộ và sau đó giải mã. Dưới đây là mẫu PhantomKeyRetriever, viết nguyên lý và thực hiện của công cụ khôi phục ví khác nhau:

Các tiện ích ví thường lưu trữ dữ liệu nhạy cảm trong cơ sở dữ liệu hoặc tệp trên hệ thống cục bộ. Các tiện ích ví trình duyệt (như Phantom, MetaMask, v.v.) sử dụng API lưu trữ do trình duyệt cung cấp để lưu trữ dữ liệu đã mã hóa trong khu vực lưu trữ cục bộ của trình duyệt, thường là trong hệ thống cơ sở dữ liệu như LevelDB hoặc IndexedDB. Dù loại ví là gì, một nguyên tắc quan trọng là dữ liệu luôn được lưu trữ dưới dạng mã hóa, đảm bảo rằng ngay cả khi dữ liệu bị sao chép, cũng không thể truy cập nếu không có mật khẩu đúng.

Hầu hết các ví mã hóa đều sử dụng cấu trúc mã hóa đa lớp để tăng cường độ an toàn. Trước tiên, mật khẩu chính của người dùng được sử dụng để mã hóa một khóa trung gian (thường được gọi là "khóa mã hóa" hoặc "khóa giải mã"). Sau đó, khóa trung gian này được sử dụng để mã hóa khóa riêng thực tế hoặc cụm từ khôi phục. Thiết kế này đảm bảo rằng ngay cả khi mã của ứng dụng ví bị sửa đổi, kẻ tấn công vẫn cần biết mật khẩu của người dùng để lấy khóa riêng. Thiết kế đa lớp này cũng cho phép ứng dụng ví chỉ giải mã khóa trung gian sau khi người dùng đăng nhập mà không cần nhập lại mật khẩu chính mỗi lần thao tác.

Quy trình viết công cụ khôi phục ví thường bao gồm:

  • Định vị và trích xuất dữ liệu đã mã hóa (đọc dữ liệu từ LevelDB/IndexedDB).

  • Phân tích cấu trúc dữ liệu, nhận diện khóa riêng/ cụm từ khôi phục đã mã hóa.

  • Yêu cầu người dùng nhập mật khẩu ví, tính toán khóa giải mã thông qua KDF (như PBKDF2 hoặc Scrypt).

  • Giải mã khóa trung gian, sau đó giải mã khóa riêng/ cụm từ khôi phục.

Quá trình này yêu cầu hiểu biết chính xác về phương án mã hóa và định dạng lưu trữ dữ liệu của ví, điều này thường cần thông qua kỹ thuật đảo ngược hoặc phân tích mã nguồn mở của ví.

Đối với công cụ PhantomKeyRetriever, đây là một script được thiết kế đặc biệt để trích xuất cụm từ khôi phục hoặc khóa riêng của ví Phantom từ dữ liệu trình duyệt Chrome, SlowMist hiện đã công khai công cụ này trên GitHub (https://github.com/slowmist/PhantomKeyRetriever), nguyên lý cốt lõi của nó như sau:

  • Đọc cơ sở dữ liệu Chrome LevelDB, sao chép dữ liệu liên quan vào thư mục tạm.

  • Duyệt qua cơ sở dữ liệu, tìm thông tin khóa mã hóa và hạt giống của ví Phantom.

  • Người dùng nhập mật khẩu Phantom, script sử dụng PBKDF2/Scrypt để tính toán khóa giải mã.

  • Giải mã dữ liệu kho ví, trích xuất cụm từ khôi phục BIP39 hoặc khóa riêng Base58.

Trong quá trình giải mã hai lớp này, script hỗ trợ hai hàm phát sinh khóa PBKDF2 và Scrypt và sử dụng thư viện NaCl's SecretBox để giải mã an toàn. Cuối cùng, dựa trên loại dữ liệu giải mã, script sẽ tạo ra cụm từ khôi phục BIP39 chuẩn hoặc trích xuất khóa riêng mã hóa Base58.

Cần lưu ý rằng, các trình duyệt khác hỗ trợ tiện ích ví (như Edge, Firefox) cũng có nguyên lý tương tự, sẽ không đề cập thêm ở đây.

Làm thế nào để phòng ngừa?

Để giảm thiểu rủi ro báo sai, người dùng có thể thực hiện các biện pháp sau:

  • Sao lưu định kỳ các tệp quan trọng và dữ liệu tiện ích mở rộng của trình duyệt để có thể phục hồi nhanh chóng khi xảy ra báo sai.

  • Thêm quy tắc tin cậy bằng tay trong phần mềm diệt virus, đối với phần mềm hoặc tiện ích quan trọng (như MetaMask), có thể thêm thủ công vào danh sách tin cậy để tránh báo sai.

  • Tải phần mềm qua kênh chính thức, tránh cài đặt ứng dụng không chính thức hoặc phiên bản chỉnh sửa để giảm thiểu khả năng bị phần mềm diệt virus đánh dấu là mối nguy tiềm tàng.

Tóm tắt

Cuộc chiến chống lại mối đe dọa luôn là một quá trình động, chính sách bảo mật cũng cần phải điều chỉnh liên tục. Việc cài đặt phần mềm diệt virus là rất quan trọng, nhưng cuối cùng, người dùng mới là hàng rào cuối cùng bảo vệ tài sản của mình. Khi gặp phải báo sai, người dùng nên xử lý bình tĩnh, tránh xóa các tệp quan trọng một cách trực tiếp và sử dụng các phương pháp khôi phục thích hợp. Chỉ khi nắm vững kiến thức bảo mật đúng đắn, người dùng mới thực sự bảo vệ được an toàn dữ liệu của mình.