Các trình đọc PDF như Adobe Reader đã là một nguồn của nhiều lỗ hổng bảo mật trong những năm qua. Điều này là do tệp PDF không chỉ là tài liệu - tệp này có thể chứa tập lệnh, phương tiện được nhúng và các thứ có vấn đề khác.
PDF không chỉ là tài liệu
Định dạng tệp PDF thực sự rất phức tạp. Nó có thể chứa nhiều thứ, không chỉ văn bản và hình ảnh, như bạn có thể mong đợi. PDF hỗ trợ nhiều tính năng mà nó cho là không nên, đã mở ra nhiều lỗ hổng bảo mật trong quá khứ.
- JavaScript: Các tệp PDF có thể chứa mã JavaScript, cùng ngôn ngữ được các trang web sử dụng trong trình duyệt của bạn. Các tệp PDF có thể là động và chạy mã sửa đổi nội dung của PDF hoặc điều chỉnh các tính năng của trình xem PDF. Trong lịch sử, nhiều lỗ hổng đã được gây ra bởi các tệp PDF sử dụng mã JavaScript để khai thác Adobe Reader. Triển khai JavaScript của Adobe Reader thậm chí còn chứa các API JavaScript dành riêng cho Adobe, một số trong số đó không an toàn và đã bị khai thác.
- Nhúng Flash: Các tệp PDF có thể chứa nội dung Flash được nhúng. Bất kỳ lỗ hổng nào trong Flash cũng có thể được sử dụng để xâm phạm Adobe Reader. Cho đến ngày 10 tháng 4 năm 2012, Adobe Reader có Trình phát Flash kèm theo. Lỗi bảo mật được sửa trong Trình phát Flash chính có thể chưa được sửa trong Trình phát Flash kèm theo Adobe Reader cho đến vài tuần sau đó, để các lỗ hổng bảo mật mở rộng để khai thác. Adobe Reader hiện đã sử dụng Trình phát Flash được cài đặt trên hệ thống của bạn chứ không phải trình phát nội bộ.
- Khởi chạy tác vụ: Các tệp PDF có khả năng khởi chạy bất kỳ lệnh nào sau khi bật lên cửa sổ xác nhận. Trong các phiên bản Adobe Reader cũ hơn, tệp PDF có thể cố gắng khởi chạy lệnh nguy hiểm miễn là người dùng nhấp OK. Adobe Reader hiện có chứa danh sách đen hạn chế tệp PDF khởi chạy các tệp thi hành.
- GoToE: Các tệp PDF có thể chứa các tệp PDF được nhúng, có thể được mã hóa. Khi người dùng tải tệp PDF chính, nó có thể tải ngay tệp PDF được nhúng của nó. Điều này cho phép kẻ tấn công ẩn các tệp PDF độc hại bên trong các tệp PDF khác, lừa các trình quét chống vi-rút bằng cách ngăn chúng kiểm tra tệp PDF ẩn.
- Điều khiển phương tiện nhúng: Ngoài Flash, các tệp PDF trong lịch sử có thể chứa phương tiện Windows Media Player, RealPlayer và QuickTime. Điều này sẽ cho phép PDF khai thác lỗ hổng trong các điều khiển trình phát đa phương tiện có thể nhúng này.
Có nhiều tính năng hơn trong định dạng tệp PDF làm tăng bề mặt tấn công của nó, bao gồm khả năng nhúng bất kỳ tệp nào bên trong tệp PDF và sử dụng đồ họa 3D.
Bảo mật PDF đã được cải thiện
Bây giờ bạn hy vọng sẽ hiểu lý do tại sao các tệp Adobe Reader và PDF là một nguồn của rất nhiều lỗ hổng bảo mật. Các tệp PDF có thể trông giống như các tài liệu đơn giản, nhưng không bị lừa dối - có thể xảy ra nhiều hơn trên bề mặt.
Tin tốt là bảo mật PDF đã được cải thiện. Adobe đã thêm một sandbox có tên là "Protected Mode" trong Adobe Reader X. Điều này chạy PDF trong một môi trường giới hạn, bị khóa, nơi nó chỉ có quyền truy cập vào một số phần của máy tính của bạn, không phải toàn bộ hệ điều hành của bạn. Điều này tương tự như cách hộp cát của Chrome cô lập các quy trình trang web từ phần còn lại của máy tính của bạn. Điều này tạo ra nhiều công việc hơn cho những kẻ tấn công. Họ không chỉ phải tìm lỗ hổng bảo mật trong trình xem PDF - họ phải tìm lỗ hổng bảo mật và sau đó sử dụng lỗ hổng bảo mật thứ hai trong hộp cát để thoát khỏi hộp cát và làm hỏng phần còn lại của máy tính. Điều này là không thể làm được, nhưng ít lỗ hổng bảo mật đã được phát hiện và khai thác trong Adobe Reader kể từ khi sandbox được giới thiệu.
Mặc dù chúng tôi có thể tự hỏi liệu các tệp PDF có thực sự có khả năng thực hiện tất cả những điều này hay không, bảo mật PDF ít nhất cũng được cải thiện. Đó là nhiều hơn chúng ta có thể nói cho các plug-in Java, đó là khủng khiếp và hiện là vector tấn công chính trên web. Chrome cảnh báo bạn trước khi chạy nội dung Java nếu bạn cũng đã cài đặt trình cắm Java.