Tác giả: Lisa & Aro
Trong môi trường Internet ngày nay, các mối đe dọa như phần mềm độc hại, vi-rút và các cuộc tấn công lừa đảo đang xuất hiện với tốc độ vô tận. Việc cài đặt phần mềm diệt vi-rút (như AVG, Bitdefender, Kaspersky, Malwarebytes và các sản phẩm nổi tiếng quốc tế khác) có thể giúp người dùng ngăn chặn các chương trình độc hại và cải thiện bảo mật hệ thống. Tuy nhiên, vai trò của phần mềm diệt virus là cung cấp khả năng bảo vệ an ninh cơ bản. Nó chỉ có thể giảm thiểu rủi ro nhưng không thể đảm bảo an ninh tuyệt đối. Đối đầu là một quá trình năng động và cài đặt phần mềm diệt vi-rút chỉ là bước đầu tiên để cải thiện bảo mật. Đồng thời, phần mềm diệt vi-rút cũng có thể đưa ra kết quả dương tính giả, gây thêm rủi ro.
Gần đây, một số người dùng đã báo cáo rằng sau khi sử dụng phần mềm diệt vi-rút, một số tiện ích mở rộng của trình duyệt (đặc biệt là tiện ích mở rộng ví tiền điện tử) đã bị báo cáo nhầm là phần mềm độc hại, khiến các tệp JavaScript của tiện ích mở rộng bị cô lập hoặc xóa và cuối cùng, ví tiện ích mở rộng bị hỏng và 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ì tiện ích mở rộng ví tiền điện tử thường lưu trữ khóa riêng. Nếu xử lý không đúng cách, có thể dẫn đến mất dữ liệu ví hoặc thậm chí không thể khôi phục tài sản. Do đó, điều quan trọng là phải hiểu cách khôi phục đúng cách dữ liệu mở rộng đã bị cách ly do kết quả dương tính giả.
Làm thế nào để giải quyết vấn đề này?
Nếu bạn thấy tiện ích mở rộng của trình duyệt bị hỏng do phần mềm diệt vi-rút báo cáo sai, bạn nên khôi phục tiện ích mở rộng đó theo các bước sau:
1. Khôi phục tệp từ vùng cách ly và không gỡ cài đặt tiện ích mở rộng
Nếu bạn thấy phần mềm hoặc tiện ích mở rộng nào đó không chạy được, hãy kiểm tra ngay phần "Cách ly" hoặc "Lịch sử" của phần mềm diệt vi-rút để tìm các tệp bị báo cáo sai và không xóa các tệp đã cách ly.
Nếu tệp vẫn còn trong vùng cách ly, hãy chọn Khôi phục và thêm tệp hoặc phần mở rộng vào danh sách đáng tin cậy để tránh xảy ra cảnh báo sai lần nữa.
Nếu tệp đã bị xóa, vui lòng kiểm tra xem có bản sao lưu tự động hay sử dụng công cụ khôi phục dữ liệu để khôi phục tệp đó.
Hãy nhớ: Không gỡ cài đặt tiện ích mở rộng! Ngay cả khi phần mở rộng bị hỏng, các tệp liên quan đến khóa riêng được mã hóa vẫn có thể được lưu trữ cục bộ và vẫn có thể khôi phục được.
2. Sao lưu và tìm dữ liệu phần mở rộng cục bộ
Dữ liệu phần mở rộng thường được lưu trữ trong đĩa cục bộ. Ngay cả khi phần mở rộng không thể mở được, bạn vẫn có thể tìm thấy dữ liệu liên quan để phục hồi (lấy MetaMask làm ví dụ cho ID phần mở rộng: nkbihfbeogaeaoehlefnkodbefgpgknn):
Tham chiếu đường dẫn Windows: C:\Users\USER_NAME\AppData\Local\Google\Chrome\User Data\Default\Local Extension Settings\nkbihfbeogaeaoehlefnkodbefgpgknn
Tham chiếu đường dẫn Mac:
~/Library/Application Support/Google/Chrome/Default/Local Extension Cài đặt/nkbihfbeogaeaoehlefnkodbefgpgknn
Cần lưu ý rằng nếu Chrome sử dụng nhiều cấu hình tài khoản, thì Mặc định trong đường dẫn có thể trở thành Hồ sơ 1/Hồ sơ 2. Bạn cần kiểm tra thư mục Hồ sơ cụ thể và điều chỉnh đường dẫn theo tình hình thực tế. Bạn nên sao lưu toàn bộ thư mục của phần mở rộng mục tiêu càng sớm càng tốt để có thể phục hồi dễ dàng trong trường hợp có sự cố.
3. Phương pháp khôi phục sơ bộ: ghi đè lên thư mục tiện ích mở rộng cục bộ
Nếu tiện ích mở rộng bị hỏng do báo động giả, cách trực tiếp nhất là ghi đè dữ liệu tiện ích mở rộng đã sao lưu trực tiếp vào thư mục tiện ích mở rộng tương ứng với đường dẫn cục bộ trên máy tính mới hoặc môi trường trình duyệt mới, sau đó mở lại chương trình tiện ích mở rộng.
4. Phương pháp khôi phục nâng cao: Giải mã thủ công dữ liệu khóa riêng tư
Nếu phần mở rộng vẫn không thể mở được hoặc dữ liệu bị mất, bạn có thể thử phương pháp khôi phục nâng cao hơn, đó là giải mã thủ công dữ liệu khóa riêng tư để khôi phục. Lấy MetaMask làm ví dụ:
Tìm kiếm ID tiện ích mở rộng MetaMask cục bộ trên máy tính của bạn và tìm thư mục 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 lưu trữ dữ liệu khóa riêng được mã hóa. Bạn 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ã.
Các bước giải mã: Mở công cụ giải mã MetaMask Vault -> Sao chép nội dung được mã hóa vào tệp ldb/log -> Giải mã bằng mật khẩu gốc mở rộng -> Sau khi lấy được khóa riêng, hãy nhập lại ví.

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

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

5. Viết công cụ phục hồi tùy chỉnh
Nếu phương pháp trên không thể phục hồi dữ liệu ví, người dùng có thể viết một tập lệnh để trích xuất dữ liệu lưu trữ mở rộng từ tệp cơ sở dữ liệu cục bộ rồi giải mã. Tại đây, PhantomKeyRetriever được sử dụng làm mẫu để viết các nguyên tắc cơ bản và cách triển khai các công cụ khôi phục ví khác nhau như sau:
Các plugin 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ộ. Ví tiện ích mở rộng của 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 dữ liệu được mã hóa trong vùng 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. Bất kể loại ví nào, nguyên tắc chính 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 được sao chép, vẫn không thể truy cập được nếu không có mật khẩu chính xác.
Hầu hết các ví tiền điện tử đều sử dụng kiến trúc mã hóa nhiều lớp để tăng cường bảo mật. Đầu tiên, mật khẩu chính của người dùng được sử dụng để mã hóa khóa trung gian (thường được gọi là "khóa mã hóa" hoặc "khóa giải mã"). Khóa trung gian này sau đó được sử dụng để mã hóa khóa riêng thực tế hoặc mã ghi nhớ. Thiết kế này đảm bảo rằng ngay cả khi mã ứng dụng ví bị giả mạo, kẻ tấn công chỉ cần biết mật khẩu người dùng để lấy được khóa riêng. Thiết kế nhiều 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 phải nhập lại mật khẩu chính cho mỗi thao tác.
Quy trình viết công cụ khôi phục ví thường bao gồm:
Xác định vị trí và trích xuất dữ liệu được mã hóa (đọc dữ liệu từ LevelDB/IndexedDB).
Phân tích cấu trúc dữ liệu và xác định khóa riêng được mã hóa/ký hiệu ghi nhớ.
Yêu cầu người dùng nhập mật khẩu ví 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/mnemonic.
Quá trình này đòi hỏi phải có kiến thức chính xác về lược đồ mã hóa của ví và định dạng lưu trữ dữ liệu, thường phải thu thập thông qua kỹ thuật đảo ngược hoặc phân tích mã nguồn mở của ví.
Lấy công cụ PhantomKeyRetriever làm ví dụ. Đây là một tập lệnh được thiết kế đặc biệt để trích xuất ký hiệu ghi nhớ hoặc khóa riêng của ví Phantom từ dữ liệu trình duyệt Chrome. SlowMist hiện đã mã nguồn mở công cụ này trên GitHub (https://github.com/slowmist/PhantomKeyRetriever). Các nguyên tắc cốt lõi của công cụ như sau:
Đọc cơ sở dữ liệu Chrome LevelDB và sao chép dữ liệu có liên quan vào một thư mục tạm thời.
Duyệt qua cơ sở dữ liệu để tìm khóa mã hóa và thông tin hạt giống ví được lưu trữ trong ví Phantom.
Người dùng nhập mật khẩu Phantom và tập lệnh sử dụng PBKDF2/Scrypt để tính toán khóa giải mã.
Giải mã dữ liệu kho ví và trích xuất mã ghi nhớ BIP39 hoặc khóa riêng Base58.
Trong quy trình giải mã hai lớp này, tập lệnh hỗ trợ hai hàm phái sinh khóa, PBKDF2 và Scrypt, và sử dụng SecretBox của thư viện NaCl để giải mã an toàn. Cuối cùng, tùy thuộc vào loại dữ liệu được giải mã, tập lệnh sẽ tạo ra mã ghi nhớ tuân thủ BIP39 hoặc trích xuất khóa riêng được mã hóa theo Base58.

Cần lưu ý rằng các trình duyệt khác hỗ trợ ví mở rộng (như Edge, Firefox) cũng có các nguyên tắc tương tự và sẽ không được nhắc lại ở đây.
Làm thế nào để ngăn ngừa?
Để giảm nguy cơ xảy ra kết quả dương tính giả, người dùng có thể thực hiện các biện pháp sau:
Thường xuyên sao lưu 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ể khôi phục nhanh chóng khi xảy ra kết quả dương tính giả.
Thêm thủ công các quy tắc tin cậy vào phần mềm diệt vi-rút. Đối với phần mềm hoặc tiện ích mở rộng quan trọng (như MetaMask), bạn có thể thêm thủ công chúng vào danh sách tin cậy để ngăn chặn các kết quả dương tính giả.
Sử dụng các kênh chính thức để tải xuống phần mềm và tránh cài đặt các ứng dụng không chính thức hoặc đã sửa đổi để giảm khả năng bị phần mềm diệt vi-rút đánh dấu là rủi ro tiềm ẩn.
Tóm tắt
Đối đầu luôn thay đổi liên tục và các chiến lược an ninh cũng cần phải được điều chỉnh liên tục. Cài đặt phần mềm diệt virus là quan trọng, nhưng cuối cùng, người dùng là tuyến phòng thủ cuối cùng cho tài sản của họ. Khi gặp phải các kết quả dương tính giả, người dùng nên xử lý một cách bình tĩnh, tránh xóa trực tiếp các tệp quan trọng và sử dụng các phương pháp khôi phục phù hợp. Chỉ bằng cách nắm vững kiến thức bảo mật chính xác, bạn mới có thể thực sự đảm bảo an toàn cho dữ liệu của mình.