An toàn PDF - Mặt trái của đồng xu
Cập nhật: 15 tháng 2, 2010
An toàn PDF nghe như một chủ đề khá tối nghĩa. Và nó đúng là như vậy. Đối với绝大多数 người dùng máy tính, tài liệu PDF đơn giản là phương tiện thông tin. Thật không may, chúng đã trở thành nhiều hơn thế.
Tài liệu PDF đã tiến hóa đến mức chúng trở thành các applet tương tác, tải đầy script và những thứ khác, tất cả đều nâng cao trải nghiệm người dùng đáng kể, nhưng có thể dẫn đến các vấn đề tiềm ẩn khi bị lạm dụng. Kết hợp với phần mềm PDF phổ biến, thường bị nhắm mục tiêu và lạm dụng, việc mở tài liệu PDF có thể trở thành vấn đề bảo mật.
Chúng ta đã nói về lỗ hổng PDF và các biện pháp giảm thiểu có thể trong bài viết trước. Thực sự, với một chút suy nghĩ trước, rắc rối có thể tránh được khá dễ dàng. Chạy hệ điều hành với quyền hạn chế, dùng chương trình thay thế và bám vào nguồn thông tin uy tín và bạn sẽ ổn. Không có sự hoang mang, thực sự. Thực tế, bạn có thể muốn hỏi tại sao tôi muốn viết bài này, sau bài trước.
Vâng, hôm nay, tôi muốn trình bày chủ đề an toàn PDF từ một góc độ khác. Mặc dù tất cả các phương pháp được nhắc đến trong bài đầu tiên là kỹ thuật default-deny chung chung hoạt động tốt luôn, chúng không cho chúng ta biết bất cứ điều gì về file đang cầm trên tay. Nói cách khác, chúng ta có thể đang làm việc với một file "xấu", mà không bao giờ biết. Có thể không có rủi ro đối với hệ thống, nhưng nó không loại bỏ kỹ thuật social engineering. Hơn nữa, nếu bạn dùng một hệ thống được cấu hình đúng, bạn không quan tâm đến file gì bạn dùng hoặc mở, nhưng nếu bạn chuyển tiếp điều xấu cho đồng nghiệp không am hiểu của bạn thì sao? Đây là ví dụ: người dùng Linux; họ không cần quan tâm nhiều về file gì họ mở và dùng trên hệ thống của mình, nhưng chuyển tiếp file có thể bị nhiễm cho bạn bè dùng Windows có thể dẫn đến vài khoảnh khắc xấu hổ.
Giải pháp tốt nhất là không có bạn bè, như vậy bạn sẽ không chuyển tiếp điều xấu cho ai, nhưng vì mọi người thường có bạn bè, chúng ta sẽ thảo luận cách tiếp cận phân tích hơn cho phần mềm PDF. Nội dung trình bày hôm nay không thay thế bài học từ bài đầu tiên; nó bổ sung cho chúng - tốt.
Hãy bắt đầu.
Thực hành sử dụng lành mạnh
Trong bài viết của tôi về Thực hành Web an toàn, tôi đã phác thảo vài phương pháp người dùng trung bình có thể triển khai để thử phân tích mức độ "tốt" của file họ vừa tải và muốn chạy. Chúng xoay quanh online multi-scanner, nhờ giúp đỡ trên diễn đàn và một chút Googling vui vẻ. Đây không phải là cách hoàn hảo xử lý mọi thứ, đáng tiếc, đôi khi đó là cách duy nhất. Khi ai đó muốn chạy file, họ sẽ chạy nó. Điều tốt nhất bạn có thể làm là cố gắng thuyết phục họ làm vài kiểm tra sơ bộ trước khi thực thi file.
Vấn đề lớn với bất kỳ loại quét nào là bạn có thể gắn cờ file là xấu. Nhưng bạn không bao giờ có thể gắn cờ file là tốt. Nhiều người không hiểu điều này; thay vào đó họ tin tưởng tuyệt đối vào anti-virus của mình như giải pháp thánh thiêng cho tất cả. Tôi muốn nhấn mạnh điểm này: nếu anti-virus của bạn gắn cờ file là xấu, đó là cái xấu nhỏ nhất trong tất cả. Khi có nghi ngờ, không có nghi ngờ. Nhưng nếu phần mềm này gắn cờ file là sạch? Nó sạch không? Không. Điều này chỉ có nghĩa là nó không bị gắn cờ là xấu. Đó là tất cả.
Đây là lý do whitelisting - hay default-deny - là cách tốt nhất xử lý mối đe dọa mọi loại. Mọi người đều là kẻ thù trừ vài người bạn được chọn. Bạn đối xử với mọi thứ như xấu và từ từ, cẩn thận cho phép những mẩu tốt vào vòng tin cậy.
Bài viết lỗ hổng PDF của tôi toàn về whitelisting. Vấn đề với whitelisting là bạn đơn giản không biết bất kỳ vấn đề nào có thể tồn tại hay không. Bạn vui vẻ đi qua, không biết nỗi khổ nào có thể đe dọa người khác.
Đây là lúc blacklisting xuất hiện. Blacklisting, còn gọi là default-allow, là phương pháp bạn giữ cơ sở dữ liệu dài các điều xấu, cập nhật định kỳ danh sách. Sau đó, công cụ như anti-virus scanner dùng các cơ sở dữ liệu này để thử xác định mã độc. Chúng chạy pattern phát hiện chữ ký đối với code thực thi và báo cáo lại cho người dùng. Phương pháp khá Don Quixotic, nhưng nó đã trở thành chuẩn mực và mọi người sẽ làm bất cứ điều gì họ được bảo, miễn là nó là chuẩn mực.
Blacklisting giống như thực thi pháp luật. Hầu hết mọi người được coi là vô tội cho đến khi bị chứng minh có tội. Whitelisting giống như 1984. Bạn có thể đọc một bài viết khá triết lý về chủ đề này, nếu bạn nghiêng về đó.
Trong thế giới phần mềm, whitelisting thắng - và nó cũng không tệ trong xã hội. Blacklisting khá kém hiệu quả. Tuy nhiên, khi hai cái kết hợp, bạn có thể đạt được một số kết quả khá thú vị. Khi bạn đặt cherry blacklisting lên trên bánh kem whitelisting lạnh, bạn có một công thức rất hữu ích.
Whitelisting làm bạn hạnh phúc. Blacklisting làm bạn bè bạn hạnh phúc. Bạn giữ máy của mình ở trạng thái tốt và tránh gửi rác cho người khác, rút ngắn chu trình spam và malware. Giống như Superman thử vaccine cúm heo cho người khác.
Lỗ hổng PDF
Chúng ta đã nói về这些 ở độ dài trước đó. Bạn nhất định nên xem bài viết của tôi về chủ đề này, giải quyết các vector tấn công phổ biến nhất và các cách giảm thiểu rất đơn giản, đầu tiên và quan trọng nhất là thận trọng và kiên nhẫn.
Bây giờ, nếu bạn muốn kỹ thuật và dùng blacklisting, bất kể, đây là một bộ công cụ nên giúp bạn.
PDF Scanner, chúng là gì?
Thực vậy. Hầu hết mọi người chưa bao giờ nghe nói về công cụ nào xử lý file PDF cụ thể. Bạn có thể may mắn với các scanner anti-X truyền thống quảng cáo khả năng thánh thiêng của họ khắp nơi, nhưng có rất ít công cụ chuyên dụng xử lý PDF.
Cho đến gần đây, file PDF không được coi là thú vị. Nhưng sự kết hợp giữa scripting mạnh mẽ và Flash với PDF đã tạo ra một lỗ hổng có thể khai thác khá tốt. Tệ hơn, phần mềm PDF và Flash phổ biến nhất đến từ cùng một nhà cung cấp - Adobe, vì vậy khi bạn có vấn đề với cái này, bạn có thể sẽ có vấn đề với cái kia.
Giảm thiểu mối đe dọa PDF đã khiến nhiều người dùng Windows paranoid rơi vào hoang mang nhiều và giải pháp ít. Chạy tài khoản hạn chế và dùng phần mềm thay thế giải quyết vấn đề, nhưng ít người sẵn sàng thử những khái niệm đơn giản đến kinh ngạc này.
Gần đây, một số công cụ bảo mật PDF đã xuất hiện, cung cấp cho người dùng Windows một cách để thử xác định file xấu. Tôi nói lại, whitelisting là cách ưu tiên. Bây giờ, hãy xem xét các công cụ này:
Wepawet
trang chủ
Wepawet là một dịch vụ phân tích malware dựa trên web. Nó xử lý Flash, Javascript và file PDF. Bạn có thể dùng dịch vụ bằng cách tải file lên hoặc chỉ định URL. Rất đơn giản.
Và đây là dạng báo cáo mẫu:
Đây không hẳn là hoàn hảo, nhưng nó có thể cho bạn chỉ ra mọi việc là gì. Nhớ nhé, khi có nghi ngờ, không có nghi ngờ.
PDFiD
trang chủ (bài viết)
Công cụ này sẽ vô hiệu hóa Javascript bên trong file PDF. Cách nó làm là viết lại tên hàm thay đổi chữ thường thành chữ hoa và ngược lại. Vì ngôn ngữ PDF phân biệt chữ hoa chữ thường, điều này sẽ khiến script trở nên vô nghĩa và không thể dùng, nhưng điều này sẽ không ngăn phần mềm đọc hiển thị nội dung đúng cách. Chúng sẽ chỉ bỏ qua các lệnh xấu và đi tiếp.
Tuy nhiên, PDFiD là một script python command-line, vì vậy bạn sẽ phải cài Python và gọi công cụ từ dòng lệnh. Không có GUI sang trọng. Giống như Wepawet, công cụ này non trẻ và xanh lè và có thể có lỗi, nhưng nó làm được việc.
Đây là lệnh:
PDFiD -d <filename>.pdf
Điều này sẽ "trừ vũ trang" file PDF, loại bỏ Javascript và tạo bản sao gọi là <filename>.disarmed.pdf. Sau đó, bạn có thể thử file mới và xem nó làm gì và hoạt động như thế nào.
Tối đa kiến thức của tôi, và tôi có thể nhầm, PDFiD được bao gồm trong danh sách scanner của VirusTotal, vì vậy nếu bạn thực hiện quét trực tuyến đối với file đáng ngờ, bạn sẽ có 20+ công cụ xác minh tính toàn vẹn của nội dung tải lên, bao gồm PDFiD.
Extra
Nói chung, đó là tất cả cho hôm nay. Cho siêu geek, đây là thêm đọc:
File PDF này có độc hại không?
Kết luận
Bài viết này sẽ không biến bạn thành lính đặc nhiệm PDF hay gì đó kiểu đó. Nhưng nó cung cấp cho bạn các công cụ cơ bản để thử xác định file có thể không mong muốn. Các công cụ còn xa từ hoàn hảo hoặc dành cho sử dụng quy mô lớn, nhưng nếu bạn đang đọc bài này, bạn có thể không phải là người dùng máy tính trung bình.
Lần thứ triệu, nếu bạn không thích file, đừng chạy nó. Tốt nhất, để tránh lỗi tự gây ra do ngón tay ngứa, dùng ứng dụng thay thế và bám vào khái niệm đặc quyền tối thiểu. Cách này, ngay cả khi bạn thực thi file xấu, chúng sẽ có phạm vi gây hại nhỏ hơn nhiều.
Tôi khuyên dùng Wepawet và PDFiD khi gửi file bạn phải gửi cho bạn bè kém am hiểu với thói quen sử dụng máy tính xấu. Trong dài hạn, bạn có thể không tạo ra sự khác biệt lớn, nhưng ít nhất bạn đã cố gắng hết sức.
Bám vào whitelisting và dùng blacklisting khi xử lý file đáng ngờ trong quá trình truyền tải. Tôi hy vọng bạn thích bài viết này. Nếu bạn có điều khôn ngoan để thêm, đừng ngại, gửi email. Hẹn gặp lại.
Chúc vui.