Chữ ký số trong văn bản Microsoft Office rất dễ bị giả mạo

14:09 | 06/09/2023

Chữ ký Office Open XML (OOXML), một tiêu chuẩn Ecma/ISO được sử dụng trong các ứng dụng Microsoft Office và mã nguồn mở OnlyOffice có một số lỗi bảo mật và có thể dễ dàng bị giả mạo.

Do đó, các tệp Office được ký theo cách này có thể bị thay đổi mà không bị phát hiện hoặc bị ngụy tạo với chữ ký giả mạo. Điều đó về cơ bản đi ngược lại với mục đích của chữ ký số.

Các nhà nghiên cứu từ Đại học Ruhr Bochum (Đức) đã mô tả tình trạng đáng tiếc này trong một bài viết với tựa đề: "Mọi chữ ký đều bị phá vỡ: Về sự thiếu an toàn của Chữ ký OOXML của Microsoft Office". 

OOXML xuất hiện lần đầu trong Office vào năm 2006. Nó bao gồm một gói các tệp XML được nén. Microsoft gọi định dạng này là Open XML.

Các nhà nghiên cứu cho biết họ đã tìm thấy sự khác biệt trong cấu trúc của các tài liệu văn phòng và cách chữ ký được kiểm tra. Kết quả là họ có thể xác định 05 cách tấn công các tài liệu để thay đổi nội dung và giả mạo chữ ký.

Các nhà nghiên cứu đã thử nghiệm các cuộc tấn công trên các phiên bản Microsoft Office trên Windows và macOS, cũng như trên OnlyOffice Desktop cho Windows, macOS và Linux. Kết quả, tất cả các bản đều có nguy cơ dễ bị tấn công.

Ngoài ra, với Microsoft Office cho macOS, chữ ký tài liệu hoàn toàn không được xác thực. Các nhà nghiên cứu nhận thấy rằng, họ có thể thêm một tệp trống có tên sig1.xml vào gói OOXML, bao gồm nhiều tệp được nén và Office dành cho Mac sẽ hiển thị biểu ngữ bảo mật báo hiệu rằng tài liệu được bảo vệ bằng chữ ký.

Các tác giả giải thích trong bài viết: “Tác động của các cuộc tấn công là rất đáng báo động. Những kẻ tấn công có thể tùy ý thao túng nội dung được hiển thị của một tài liệu đã ký và nạn nhân không thể phát hiện ra”.

"Tệ hơn nữa, chúng tôi đưa ra một cuộc tấn công giả mạo chữ ký phổ quát cho phép kẻ tấn công tạo một tài liệu tùy ý và áp dụng chữ ký được trích xuất từ một nguồn khác, chẳng hạn như tài liệu ODF hoặc token SAML. Đối với nạn nhân, tài liệu được hiển thị là hợp lệ, được ký bởi một thực thể đáng tin cậy".

Có 03 vấn đề chủ yếu, đầu tiên, OOXML sử dụng chữ ký một phần, vì vậy không phải mọi tệp đều được kiểm tra. Thứ hai, quy trình hiển thị cho phép thêm nội dung chưa được ký vào tệp và thứ ba, thao tác xác minh mật mã học cho chữ ký số là việc quá phức tạp.

Simon Rohlmann, Tandem - Giáo sư An ninh CNTT/Thông tin tại Đại học Khoa học Ứng dụng Mainz và là tác giả chính của bài báo tại Đại học Ruhr Bochum giải thích: "Chúng tôi thấy vấn đề chính liên quan tới chữ ký một phần. Chữ ký điện tử được cho là để bảo vệ tính toàn vẹn của tài liệu, nhưng đồng thời không phải tất cả các phần của tài liệu đều được ký. Đây là một mâu thuẫn về mặt thuật ngữ".

Nhóm nghiên cứu cho biết họ đã báo cáo những phát hiện này cho Microsoft, OnlyOffice và cho ủy ban tiêu chuẩn có liên quan, ISO/IEC JTC 1/SC 34. Họ tuyên bố rằng, Microsoft đã thừa nhận những phát hiện và trao một khoản tiền thưởng cho việc tìm được lỗi, nhưng "đã quyết định rằng các lỗ hổng không yêu cầu sự chú ý ngay lập tức". Các nhà nghiên cứu cho biết họ không nhận được phản hồi từ OnlyOffice kể từ tháng 10/2022. Microsoft và OnlyOffice đã không trả lời ngay các yêu cầu bình luận.

Một trong những đồng tác giả của bài viết, Daniel Hirschberger đã đăng mã chứng minh tính khả thi của việc giả mạo chữ ký OOXML. Rohlmann cho biết, ông vừa kiểm tra lại các cuộc tấn công trên phiên bản LTSC mới nhất của Microsoft Office 2021 (phiên bản 2108, bản dựng 14332.20503). Ông nói: “Tất cả phương thức tấn công vẫn tiến hành được, điều đó có nghĩa là các lỗ hổng vẫn chưa được khắc phục”.

Khi được hỏi về đánh giá của Microsoft cho rằng những vấn đề này không cần được chú ý ngay lập tức, Rohlmann cho biết ông không đồng ý. Ông nói: “Chữ ký số ít nhất phải đạt được các mục tiêu bảo mật thông tin về tính toàn vẹn và tính xác thực".

"Bằng cách chọn tiêu chuẩn OOXML cho chữ ký từng phần, những mục tiêu này không thể đạt được. Chúng tôi đã tìm thấy một số cách để sửa đổi nội dung của các tài liệu OOXML đã ký. Điều này làm cho chữ ký số của các tài liệu này hầu như vô giá trị. Ví dụ: kẻ tấn công có thể sử dụng các tài liệu đã ký để thực hiện các cuộc tấn công dựa trên việc thao túng hành vi con người có vẻ đặc biệt đáng tin cậy vì tài liệu có chứa chữ ký hợp lệ của cấp trên".

Rohlmann cho biết, không thể nói được việc các tài liệu OOXML đã ký phổ biến đến mức nào. Ông nói: "Các tài liệu đã ký chủ yếu được sử dụng bởi các công ty và chính phủ, được sử dụng trong nội bộ, vì vậy chúng tôi không có bất kỳ thông tin rõ ràng nào về điều này. Tuy nhiên, tôi ước tính rằng việc phân phối tài liệu PDF đã ký có lẽ cao hơn đáng kể so với số tài liệu OOXML đã ký".

Rohlmann cho biết, chữ ký một phần là vấn đề chính và các định dạng tệp khác đã giải quyết vấn đề này, đặc biệt là định dạng tài liệu mở OpenDocument Format (ODF). Ông nói: “Trong các phiên bản sơ thảo trước đó, các tệp mối quan hệ không phải là một phần của tính toán chữ ký, giống như trong OOXML ngày nay”.

"Điều này đã được khắc phục trong phiên bản ODF cuối cùng 1.2. Trong nghiên cứu, chúng tôi cũng phát hiện ra các sự cố với các phiên bản ODF đã ký, nhưng nhiều khả năng các sự cố này là do các vấn đề cơ bản với chữ ký XML hoặc lỗi triển khai của nhà cung cấp. Nói chung, chúng ta nên tránh chữ ký một phần trong tài liệu. Vì điều này dẫn đến việc triển khai không an toàn".

Microsoft cho biết: “Vấn đề này đã được giải quyết trong tất cả các phiên bản cập nhật hàng tháng của Office. Chúng tôi đánh giá cao sự hợp tác với nhà nghiên cứu này, người đã báo cáo vấn đề này dưới dạng phối hợp tiết lộ lỗ hổng”.