Microsoft đã phát hiện lỗ hổng trong việc ký dự Office Visual Basic for Applications macro (VBA). Lỗ hổng này có thể cho phép người dùng độc hại giả mạo dự án VBA đã ký mà không làm mất hiệu lực chữ ký số của dự án. Do đó, chúng tôi khuyên người dùng nên áp dụng các bản cập nhật bảo mật được liệt kê trong Microsoft Common Vulnerabilities and Exposures CVE-2020-0760.
Để nâng cao tính bảo mật của việc ký dự án macro Office VBA mới, Microsoft cung cấp phiên bản lược đồ chữ ký dự án VBA bảo mật hơn: Chữ ký V3. Chữ ký V3 có sẵn trong các sản phẩm sau đây:
-
Microsoft 365 phiên bản 2102 (bản dựng 16.0.13801.20266) và các phiên bản mới hơn của kênh hiện tại
-
Các phiên bản cấp phép số lượng lớn của Office 2019 phiên bản 1808 (bản dựng 10372.20060) và các phiên bản mới hơn
-
Các phiên bản bán lẻ của Office 2016 các phiên bản Click-to-Run và Office 2019 phiên bản 2102 (bản dựng 16.0.13801.20266) và các phiên bản mới hơn
-
Các phiên bản dựa trên Microsoft Installer (.msi) của Office 2016 có các bản cập nhật sau đây hoặc các phiên bản cập nhật mới hơn:
-
Mô tả về bản cập nhật bảo mật cho Excel 2016: 08/12/2020 (KB4486754)
-
Mô tả về bản cập nhật bảo mật cho PowerPoint 2016: 08/12/2020 (KB4484393)
-
Bản cập nhật cho ngày 1 tháng 12 năm 2020 Publisher 2016 (KB4484334)
-
Bản cập nhật cho bản cập nhật ngày 2 tháng 3 năm 2021 Access 2016 (KB4493188)
-
Mô tả về bản cập nhật bảo mật Office 2016: 09/03/2021 (KB4493225)
Chúng tôi khuyên các tổ chức nên áp dụng chữ ký V3 cho tất cả các macro để loại bỏ nguy cơ giả mạo.
Theo mặc định, để đảm bảo tính tương thích ngược, các tệp VBA có chữ ký hiện có sẽ tiếp tục hoạt động và các tệp được ký bằng chữ ký V3 có thể mở và chạy trong các phiên bản trước của Office hoặc trong máy khách Office không cập nhật. Tuy nhiên, chúng tôi khuyên người quản trị nên nâng cấp chữ ký VBA hiện có lên chữ ký V3 càng sớm càng tốt sau khi họ nâng cấp lên Office các phiên bản được liệt kê. Sau khi người quản trị xác nhận rằng không có mất tính tương thích đối với tổ chức, họ có thể vô hiệu hóa chữ ký VBA cũ bằng cách bật thiết đặt chính sách Chỉ tin cậy VBA sử dụng thiết đặt chính sách chữ ký V3. Để biết thêm thông tin về thiết đặt chính sách này, hãy xem mục "Bật thiết đặt chính sách: Chỉ tin cậy các macro VBA sử dụng chữ ký V3".
Nâng cấp tệp VBA đã ký lên chữ ký V3
Người quản trị có thể sử dụng các chủ đề sau đây để nâng cấp tệp chữ ký VBA hiện có lên chữ ký V3.
Tạo bảng kiểm kê các tệp VBA đã ký
Nếu bạn đã có một bảng kiểm kê tất cả các tệp VBA đã ký hiện có, bạn có thể bỏ qua mục này. Nếu không, hãy sử dụng Bộ công cụ Sẵn sàng cho Office bổ trợ và VBA để tạo bảng kiểm kê các tệp VBA đã ký hiện có cần được nâng cấp. Công cụ sẽ tạo một báo cáo liệt kê các tệp cần phải được nâng cấp cùng với vị trí tệp của chúng. Để biết thêm thông tin về Bộ công cụ Sẵn sàng, hãy xem Sử dụng Bộ công cụ Sẵn sàng để đánh giá tính tương thích của ứng dụng Ứng dụng Microsoft 365.
-
Chạy PowerShell hoặc mở cửa sổ Dấu nhắc Lệnh với tư cách người quản trị, rồi dẫn hướng đến thư mục cài đặt Bộ công cụ Sẵn sàng:
C:\Program Files (x86)\Microsoft Readiness Toolkit for Office -
Chạy lệnh sau đây để quét thư mục chứa tệp VBA của bạn (ví dụ: C:\Test_ToolKit):
ReadinessReportCreator.exe -sigscan -p C:\Test_ToolKit -r -output C:\outputSau khi quét, tệp kết quả JSON sẽ được tạo trong thư mục C:\output.
-
Từ thư mục cài đặt Bộ công cụ Sẵn sàng, chạy ReadinessReportCreator.exe của bạn để mở tệp kết quả.
Trong tệp kết quả, hãy tìm tất cả các tệp macro không an toàn mà bạn phải nâng cấp lên chữ ký V3.
Sử dụng Trình soạn thảo VBA để ký lại các tệp VBA
Nếu bạn có chứng chỉ riêng, hãy sử dụng Trình soạn thảo Visual Basic for Applications (VBA) được cung cấp trong ứng dụng Office để ký lại các tệp VBA.
-
Để ký lại tệp VBA, nhấn Alt+F11 từ bên trong tệp để mở Trình soạn thảo VBA.
-
Để thay thế chữ ký hiện có bằng chữ ký V3, chọn Công cụ> Chữ ký Số. Hộp thoại Chữ ký Số sẽ mở ra.
Lưu ý: Để ký một dự án VBA, khóa riêng phải được cài đặt đúng. Để biết thêm thông tin, hãy xem Ký điện tử dự án macro của bạn.
-
Chọn Choose to choose the certificate private key to use to sign the VBA project, and then select OK.
-
Để tạo chữ ký mới, hãy lưu tệp lại. Chữ ký số mới sẽ thay thế các chữ ký trước đó.
Sử dụng SignTool để ký lại tệp VBA
SignTool trong SDK Windows 10 thể giúp bạn ký lại tệp VBA thông qua dòng lệnh. Để lô công việc ký lại đối với danh sách kiểm kê được xác định trong mục "Tạo thư mục các tệp VBA đã ký", bạn có thể tích hợp SignTool vào công cụ quản trị của riêng bạn.
Lưu ý: Hiện tại, SignTool không hỗ trợ Microsoft Access.
Để ký lại tệp VBA bằng SignTool, hãy làm theo các bước sau:
-
Tải xuống và cài đặt Windows 10 SDK.
-
Tải xuống Officesips.exe từ Microsoft Office Chủ đề của Gói Giao diện Chủ đề cho các Dự án VBA Ký Điện tử.
-
Để ký tệp và xác minh chữ ký trong tệp, hãy đăng ký Msosip.dll và Msosipx.dll, rồi chạy Offsign.bat. Các bước chi tiết được đưa vào tệp Readme.txt tệp trong thư mục cài đặt của Officesips.exe.
Lưu ý: Sử dụng phiên bản x86 của SignTool trong thư mục "C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x86" khi bạn chạy Offsign.bat.
Bật thiết đặt chính sách: "Chỉ tin cậy macro VBA sử dụng chữ ký V3"
Sau khi bạn hoàn thành việc nâng cấp lên chữ ký V3, chúng tôi khuyên bạn nên bật cài đặt chính sách Chỉ tin cậy VBA sử dụng chính sách chữ ký V3 để đảm bảo rằng chỉ tệp chữ ký V3 được tin cậy.
Cài đặt chính sách này sẵn có trong Chính sách Nhóm hoặc Dịch Office Chính sách Điện toán đám mây. Tệp nằm trong User Configuration\Policies\Administrative Templates\Microsoft Office 2016\Security Cài đặt\Trust Center. Nếu thiết đặt này được bật, chỉ chữ ký V3 sẽ được coi là hợp lệ khi Office thực chữ ký số trong các tệp. Chữ ký định dạng trước đó trong tệp VBA sẽ bị bỏ qua.