Diệt Virus Macro Trong Excel: Hướng Dẫn Chi Tiết Và Hiệu Quả

Mục lục bài viết

1. Giới thiệu về virus macro trong Excel

1.1. Macro là gì?

Macro là một tập hợp các lệnh được ghi lại hoặc viết bằng ngôn ngữ lập trình VBA (Visual Basic for Applications) nhằm tự động hoá các thao tác lặp đi lặp lại trong Excel. Khi người dùng mở một file Excel có chứa macro, các đoạn mã VBA sẽ được thực thi tự động.

1.2. Virus macro hoạt động ra sao?

Virus macro là một loại phần mềm độc hại được nhúng trong các tệp tin Excel (định dạng .xls, .xlsm, .xlsb). Khi người dùng mở tệp, macro sẽ chạy và thực hiện các hành vi nguy hiểm như:
– Tải và cài đặt phần mềm độc hại (trojan, ransomware) từ internet.
– Đánh cắp dữ liệu (thông tin tài chính, danh bạ, mật khẩu).
– Mã hoá file và yêu cầu tiền chuộc.
– Lây lan sang các tệp tin Excel khác trong mạng nội bộ.

1.3. Tại sao virus macro lại phổ biến?

  • Dễ dàng tạo: Người dùng không cần kiến thức sâu về lập trình, chỉ cần biết cách ghi macro.
  • Khả năng lây lan: Excel là công cụ phổ biến trong doanh nghiệp, nên một file nhiễm virus có thể nhanh chóng lan truyền.
  • Bảo mật yếu: Nhiều người vẫn để chế độ “Enable macros” mặc định, khiến virus dễ thực thi.

2. Những dấu hiệu cảnh báo file Excel bị nhiễm macro

Dấu hiệuMô tả chi tiết
Cảnh báo bảo mậtKhi mở file, Excel hiển thị “Security Warning – Macros have been disabled”. Nếu người dùng thường xuyên bỏ qua cảnh báo này, khả năng bị nhiễm tăng.
Tốc độ mở file chậmMacro độc hại thường thực hiện nhiều thao tác nền, làm cho file mở mất thời gian.
Cửa sổ pop‑up bất thườngXuất hiện các hộp thoại yêu cầu người dùng nhập thông tin, bật tính năng, hoặc tải phần mềm.
Thay đổi bất ngờ trong sheetThêm, xóa, hoặc thay đổi nội dung ô mà không có lý do rõ ràng.
Sự xuất hiện của file mớiMacro tạo ra các file .exe, .vbs, hoặc các file Excel mới trong thư mục tạm.
Kết nối mạng không mong muốnKiểm tra qua Task Manager hoặc Resource Monitor, thấy Excel hoặc VBA đang thực hiện các kết nối mạng.

Nếu gặp một hoặc nhiều dấu hiệu trên, cần thực hiện các bước kiểm tra và diệt virus macro ngay lập tức.

3. Chuẩn bị môi trường an toàn trước khi xử lý

3.1. Sử dụng máy ảo (Virtual Machine)

  • Lý do: Giúp cô lập môi trường làm việc, tránh lây lan sang hệ thống chính.
  • Cài đặt: Sử dụng phần mềm như VirtualBox, VMware, hoặc Hyper‑V. Cài đặt một bản Windows sạch, cài Excel và các công cụ bảo mật.

3.2. Tắt tính năng macro trong Excel (tạm thời)

  1. Mở Excel → File → Options.
  2. Chọn Trust Center → Trust Center Settings.
  3. Vào Macro Settings, chọn Disable all macros without notification.
  4. Nhấn OK và khởi động lại Excel.

3.3. Cài đặt phần mềm diệt virus chuyên dụng

  • Microsoft Defender (đã tích hợp trên Windows 10/11) với cập nhật mới nhất.
  • Malwarebytes, ESET, Kaspersky – các phần mềm này có mô-đun quét macro.
  • OfficeMalScanner – công cụ chuyên quét macro trong tài liệu Office.

3.4. Sao lưu dữ liệu quan trọng

  • Sử dụng File History, OneDrive, hoặc ổ cứng ngoài.
  • Đảm bảo sao lưu không chứa macro (chỉ sao lưu dữ liệu dạng CSV, TXT).

4. Các công cụ và phương pháp diệt virus macro trong Excel

4.1. Sử dụng Microsoft Defender Offline

  1. Tải Microsoft Defender Offline từ trang Microsoft.
  2. Khởi động máy tính bằng USB boot.
  3. Quét toàn bộ ổ đĩa, bao gồm các file .xls, .xlsm.
  4. Xóa hoặc cách ly các file bị phát hiện chứa macro độc hại.

4.2. Sử dụng PowerShell để tách macro

# Đặt đường dẫn tới file Excel
$excelFile = "C:\Temp\file_nhiem.xlsm" # Khởi tạo đối tượng Excel
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $false
$excel.DisplayAlerts = $false # Mở file dưới dạng read‑only
$workbook = $excel.Workbooks.Open($excelFile, $null, $true) # Lấy danh sách macro
$modules = $workbook.VBProject.VBComponents foreach ($module in $modules) { $code = $module.CodeModule.Lines(1, $module.CodeModule.CountOfLines) if ($code -match "Shell|CreateObject|DownloadFile") { Write-Host "Macro nguy hiểm phát hiện trong module: $($module.Name)" # Ghi ra file log Add-Content -Path "C:\Temp\macro_log.txt" -Value "$($module.Name) : $code" }
} # Đóng workbook mà không lưu
$workbook.Close($false)
$excel.Quit()
System.Runtime.Interopservices.Marshal::ReleaseComObject($excel) | Out-Null

Giải thích: Đoạn script trên mở file Excel ở chế độ chỉ đọc, liệt kê tất cả các module VBA, sau đó tìm kiếm các từ khóa thường xuất hiện trong macro độc hại như Shell, CreateObject, DownloadFile. Khi phát hiện, script ghi lại thông tin vào file log để người quản trị xử lý.

4.3. Sử dụng OLETools (Python) để phân tích macro

pip install oletools
from oletools.olevba import VBA_Parser, TYPE_OLE, TYPE_OpenXML def scan_excel(file_path): vbaparser = VBA_Parser(file_path) if vbaparser.detect_vba_macros(): print(f"+ Macro được phát hiện trong {file_path}") for (filename, stream_path, vba_filename, vba_code) in vbaparser.extract_all_macros(): print(f"--- Macro: {vba_filename} ---") print(vba_code) # Kiểm tra các hành vi nguy hiểm if any(keyword in vba_code.lower() for keyword in "shell", "createobject", "urldownloadtofile", "wget"): print("! Macro có khả năng nguy hiểm!") else: print("- Không có macro trong file.") vbaparser.close() scan_excel(r"C:\Temp\file_nhiem.xlsm")

Lưu ý: OLETools giúp phân tích chi tiết nội dung macro mà không cần mở file trong Excel, giảm thiểu rủi ro.

4.4. Sử dụng macro remover tự động

  • Free Macro Remover: Công cụ miễn phí, chỉ nhận các macro hợp lệ và loại bỏ chúng, giữ lại dữ liệu.
  • Download: https://www.free-macro-remover.com
  • Cách dùng:
  • Chọn “Add Files” → chọn các file .xls, .xlsm.
  • Bấm “Remove Macros”.
  • Kiểm tra file mới đã không còn macro (mở trong Excel, sẽ không có thông báo macro).

4.5. Quét bằng Malwarebytes

  1. Mở Malwarebytes → Threat Scan.
  2. Chọn Custom Scan, thêm thư mục chứa file Excel.
  3. Khi phát hiện “Excel Macro” hoặc “Office Macro”, chọn Quarantine.
  4. Sau khi cách ly, mở file trong Excel (macro đã bị vô hiệu hoá) để kiểm tra tính toàn vẹn.

5. Quy trình diệt virus macro toàn diện

Diệt Virus Macro Trong Excel
Diệt Virus Macro Trong Excel

Bước 1: Phát hiện

  • Kiểm tra cảnh báo bảo mật.
  • Dùng OLETools hoặc PowerShell script để liệt kê macro.

Bước 2: Cách ly

  • Di chuyển file sang thư mục Quarantine.
  • Đánh dấu “Read‑only” để tránh thay đổi.

Bước 3: Phân tích

  • Mở file trong môi trường máy ảo, bật macro và quan sát hành vi (sử dụng Process Monitor, Wireshark).
  • Ghi lại các hành động: tạo file, kết nối mạng, ghi registry.

Bước 4: Xóa hoặc làm sạch

  • Nếu macro không cần thiết, dùng Free Macro Remover hoặc VBA Project → Remove trong Excel.
  • Nếu macro cần thiết nhưng có phần độc hại, chỉnh sửa mã VBA: xóa các đoạn Shell, CreateObject, URLDownloadToFile.

Bước 5: Kiểm tra lại

  • Quét lại file bằng Malwarebytes, Microsoft Defender, và OLETools.
  • Đảm bảo không còn macro hoặc macro chỉ chứa mã an toàn.

Bước 6: Phòng ngừa

  • Đặt chính sách Group Policy: “Disable all macros without notification” cho toàn bộ máy trạm.
  • Đào tạo nhân viên: không mở file Excel không rõ nguồn, không bật macro nếu không chắc chắn.
  • Cập nhật định kỳ Excel và hệ điều hành để giảm lỗ hổng bảo mật.

6. Cách phòng ngừa virus macro trong môi trường doanh nghiệp

6.1. Chính sách bảo mật macro

  • Group Policy → User Configuration → Administrative Templates → Microsoft Office Excel 2026 → Excel Options → Security.
  • Bật “Disable all macros without notification” và “Allow only digitally signed macros”.

6.2. Đào tạo nhân viên

  • Workshop định kỳ về nhận diện file nguy hiểm.
  • Hướng dẫn cách Report file nghi ngờ cho bộ phận IT.

6.3. Sử dụng giải pháp Email Gateway

  • Cài đặt Proofpoint, Mimecast, hoặc Microsoft Defender for Office 365 để quét và chặn file đính kèm có macro (định dạng .xlsm, .xlsb).

6.4. Kiểm tra chữ ký số (Digital Signature)

  • Yêu cầu các file macro nội bộ phải được ký bằng chứng thư số của công ty.
  • Khi mở file, Excel sẽ hiển thị “Signed by …”. Nếu không có chữ ký, nên từ chối.

6.5. Định kỳ audit VBA

  • Sử dụng script PowerShell hoặc OLETools thực hiện audit hàng tuần trên toàn bộ thư mục chia sẻ để phát hiện macro mới.

7. Các trường hợp thực tế và cách giải quyết

7.1. Trường hợp 1: Macro lây lan qua email nội bộ

  • Mô tả: Nhân viên A nhận file “Báo cáo tài chính.xlsm” từ đồng nghiệp B, mở macro và máy bị tải trojan.
  • Giải pháp:
  • Cách ly máy A, tắt kết nối mạng.
  • Quét toàn bộ máy bằng Microsoft Defender Offline.
  • Sử dụng OLETools để trích xuất macro, phát hiện lệnh URLDownloadToFile.
  • Xóa macro, tái tạo file bằng dữ liệu gốc (CSV) và gửi lại dưới dạng .xlsx.

7.2. Trường hợp 2: Macro ẩn trong tệp .xlsb

  • Mô tả: File .xlsb không hiển thị cảnh báo macro, nhưng khi mở, macro thực hiện mã hoá file.
  • Giải pháp:
  • Mở file trong Excel Safe Mode (excel /safe).
  • Vào Developer → Visual Basic, kiểm tra ThisWorkbook và các module.
  • Xóa toàn bộ module, lưu lại dưới dạng .xlsx.
  • Quét lại bằng Malwarebytes.

7.3. Trường hợp 3: Macro được ký số nhưng vẫn độc hại

  • Mô tả: Kẻ tấn công mua chứng thư số giả và ký macro độc hại.
  • Giải pháp:
  • Kiểm tra Certificate Revocation List (CRL) và OCSP để xác thực chứng thư.
  • Sử dụng SigCheck (Sysinternals) để kiểm tra thông tin chi tiết.
  • Nếu chứng thư không hợp lệ, chặn file và báo cáo cho bộ phận bảo mật.

8. Các công cụ bổ trợ hữu ích

Công cụChức năngLink tải
OLEToolsPhân tích macro, phát hiện mã độchttps://github.com/decalage2/oletools
PowerShell VBA ScannerTìm kiếm từ khóa nguy hiểm trong macroTự viết (xem phần 4.2)
Free Macro RemoverLoại bỏ macro không cần thiếthttps://www.free-macro-remover.com
Microsoft Defender OfflineQuét offline, không bị ảnh hưởng bởi malwarehttps://www.microsoft.com/en-us/windows defender offline
MalwarebytesQuét đa dạng malware, bao gồm macrohttps://www.malwarebytes.com
Process Monitor (ProcMon)Giám sát hoạt động hệ thống khi macro chạyhttps://docs.microsoft.com/en-us/sysinternals/downloads/procmon
WiresharkKiểm tra lưu lượng mạng khi macro kết nốihttps://www.wireshark.org

9. Tổng kết

Virus macro trong Excel vẫn là một trong những mối đe dọa phổ biến nhất đối với các tổ chức và người dùng cá nhân. Tuy nhiên, với quy trình phát hiện, cách ly, phân tích và diệt virus macro được trình bày ở trên, bạn hoàn toàn có thể ngăn chặn, xử lý và phòng ngừa hiệu quả:

  1. Nhận diện sớm bằng các dấu hiệu cảnh báo và công cụ quét tự động.
  2. Cô lập môi trường (máy ảo, chế độ Safe Mode) để tránh lây lan.
  3. Sử dụng công cụ chuyên dụng (OLETools, PowerShell, Malwarebytes) để trích xuất và phân tích macro.
  4. Loại bỏ hoặc làm sạch macro độc hại bằng các phần mềm như Free Macro Remover hoặc chỉnh sửa trực tiếp trong VBA.
  5. Thực hiện chính sách bảo mật nghiêm ngặt trong doanh nghiệp: vô hiệu hoá macro mặc định, yêu cầu chữ ký số, đào tạo nhân viên và sử dụng giải pháp Email Gateway để chặn tệp đính kèm nguy hiểm.

Áp dụng những biện pháp này không chỉ bảo vệ dữ liệu quan trọng mà còn giảm thiểu rủi ro tấn công mạng, bảo vệ uy tín và tài chính của tổ chức. Hãy luôn cập nhật kiến thức và công cụ bảo mật mới nhất để đối phó với những biến thể virus macro ngày càng tinh vi.

⚠️
LƯU Ý QUAN TRỌNG: Miễn trừ trách nhiệm: Mặc dù chúng tôi luôn nỗ lực để đảm bảo tính chính xác và cập nhật của thông tin, nhưng các quy định về giáo dục và tuyển sinh có thể thay đổi theo thời gian. BigSchool không chịu trách nhiệm về bất kỳ sai sót nào hoặc kết quả phát sinh từ việc sử dụng thông tin trên trang này. Độc giả nên liên hệ trực tiếp với nhà trường hoặc cơ quan chức năng để có thông tin mới nhất. Ngoài ra, BigSchool tuyệt đối không bán sản phẩm, khóa học hay cung cấp dịch vụ được nhắc đến trong bài.

Viết một bình luận