fixmint
VI

File ZIP này có an toàn để mở không? Kiểm tra trước khi giải nén

Tác giả: · · 4 phút đọc

Hãy kiểm tra file ZIP trước khi giải nén. Danh sách nội dung của nó liệt kê từng file cùng tên, kích thước và mức độ giảm dung lượng sau khi nén. Có năm dấu hiệu cho thấy một file ZIP có thể gây hại: kích thước phình to khi giải nén, tên file thoát ra khỏi thư mục của nó, đuôi file thứ hai che giấu loại file thật, một mục được mã hóa, và một file có loại thật không khớp với tên. Xem bên trong file ZIP trước, và chỉ giải nén những gì bạn mong đợi.

Xem nội dung file ZIPBên trong file ZIP này có gì?Dùng miễn phí

Danh sách nội dung của ZIP cho thấy gì

ZIP lưu mỗi file dưới dạng một mục. Ở cuối file lưu trữ, nó giữ một danh sách gọi là thư mục trung tâm (central directory), với một bản ghi cho mỗi mục. Mỗi bản ghi chứa tên và đường dẫn của mục, kích thước trước và sau khi nén, phương pháp nén, một giá trị kiểm tra gọi là CRC-32 (một con số ngắn được tính từ nội dung, dùng để phát hiện hỏng dữ liệu), và việc mục đó có được mã hóa hay không.

Các công cụ giải nén đọc danh sách này trước tiên. Trình xem ZIP chỉ đọc danh sách, nên bạn có thể xem bên trong mà không cần giải nén gì cả. Không có gì trong file lưu trữ được chạy.

Zip bomb: file nhỏ nhưng giải nén ra rất lớn

Nén hoạt động bằng cách thay dữ liệu lặp lại bằng các mã ngắn, vì vậy càng lặp nhiều thì kết quả càng nhỏ. Tỷ lệ nén là kích thước chưa nén chia cho kích thước đã nén. Các chuỗi dữ liệu lặp lại dài nén rất tốt. Phương pháp ZIP thông dụng có thể làm nhỏ một chuỗi byte giống nhau dài khoảng một nghìn lần.

Zip bomb lợi dụng điều này. Đó là một file lưu trữ nhỏ nhưng giải nén ra nhiều gigabyte, đôi khi có các file lưu trữ lồng trong file lưu trữ để nhân dung lượng lên. Giải nén nó sẽ làm đầy ổ đĩa và có thể khiến máy treo.

Các file thông thường cho bạn cảm nhận về tỷ lệ nén bình thường. Văn bản và mã nguồn nén được nhiều. Ảnh, video và các file đã được nén sẵn, như .docx, .xlsx và .jpg, hầu như không nhỏ đi. Nếu một file đáng lẽ chỉ là tài liệu thường mà tỷ lệ nén lên đến hàng trăm, đó là dấu hiệu cảnh báo.

Tên file thoát ra khỏi thư mục

Mỗi tên mục có thể bao gồm thư mục. Một tên như ../../Startup/update.bat buộc trình giải nén đi lên hai cấp và ghi vào thư mục khởi động, nơi chương trình sẽ chạy mỗi khi bạn đăng nhập. Đây được gọi là path traversal, hay "zip slip". Các trình giải nén cẩn thận sẽ loại bỏ phần ../. Các công cụ cũ và script tự viết có thể không làm vậy.

Tên bắt đầu bằng dấu gạch chéo, như /etc/... hoặc C:\..., cũng là cùng một vấn đề: nó cố ghi vào một vị trí cố định trên ổ đĩa của bạn. Trình xem hiển thị tên đúng như được lưu, nên bạn có thể đọc trước khi có bất cứ thứ gì được ghi ra.

Đuôi file kép và loại file bị che giấu

Đuôi file cuối cùng trong tên file cho hệ thống biết đó là loại file gì. invoice.pdf.exe kết thúc bằng .exe, nên nó là một chương trình, dù bắt đầu bằng cái tên trông giống file PDF. Mặc định Windows ẩn đuôi của các loại file đã biết, nên tên có thể hiện là "invoice.pdf".

Kiểm tra loại file thật qua các byte đầu

Mỗi loại file đều bắt đầu bằng vài byte nhận dạng. Đuôi file chỉ là nhãn, và bất kỳ ai cũng có thể đổi nó. Kiểm tra loại file thật đọc các byte đầu và so sánh chúng với tên.

LoạiCác byte đầu (hexadecimal)
Tài liệu PDF25 50 44 46 (văn bản %PDF)
Ảnh PNG89 50 4E 47
Ảnh JPEGFF D8 FF
ZIP, và file Word hoặc Excel (chúng là ZIP bên trong)50 4B 03 04 (văn bản PK)
Chương trình Windows4D 5A (văn bản MZ)

Không khớp không có nghĩa là file có hại. Nó chỉ cho thấy file không đúng như tên khai báo, và vậy là đủ lý do để dừng lại và kiểm tra nguồn gốc của nó.

Mục được mã hóa

Một mục có mật khẩu sẽ che giấu nội dung. Trình xem vẫn hiển thị được tên và kích thước, nhưng không thể kiểm tra bên trong ở đây, và các công cụ quét cũng không đọc được bên trong. Vì vậy kẻ tấn công dùng file lưu trữ mã hóa để đưa file qua các bộ lọc. Sao kê ngân hàng và tờ khai thuế cũng thường được mã hóa có chủ đích. Nếu người gửi là người bạn quen, hãy hỏi mật khẩu qua một kênh khác, và chỉ mở file lưu trữ khi bạn biết ai đã gửi nó.

Rác của Mac và Windows

Hai hệ thống thêm các file mà bạn không tạo ra:

  • macOS lưu dữ liệu phụ cho mỗi file trong một thư mục ẩn __MACOSX, với các tên bắt đầu bằng ._ nằm cạnh file, và ghi các file .DS_Store để giữ cài đặt hiển thị của Finder.
  • Windows thêm Thumbs.db, một bộ nhớ đệm ảnh thu nhỏ, và desktop.ini, chứa cài đặt hiển thị thư mục.

Chúng vô hại, nhưng làm rối file lưu trữ và gây khó hiểu cho người nhận.

Dọn file lưu trữ trước khi gửi

Dọn file ZIP tạo cho bạn một file lưu trữ mới không có các file của Mac và Windows. Bản gốc của bạn vẫn giữ nguyên. Quy trình an toàn:

  1. Mở file lưu trữ trong Trình xem ZIP và đọc từng tên.
  2. Kiểm tra mọi file có tên hoặc loại trông không đúng bằng kiểm tra loại file.
  3. Dọn file lưu trữ, rồi mở bản đã dọn để xác nhận nó vẫn chứa đúng những gì bạn định gửi.
  4. Gửi bản đã dọn.

Các trường hợp đặc biệt

  • File lưu trữ lồng trong file lưu trữ. Trình xem chỉ hiển thị danh sách bên ngoài. Hãy mở file lưu trữ bên trong riêng và kiểm tra theo cách tương tự.
  • File lưu trữ bị hỏng. Thư mục trung tâm nằm ở cuối, nên phần cuối bị hỏng có thể khiến ZIP không mở được. Đó là vấn đề hỏng dữ liệu, không phải bằng chứng rằng file lưu trữ an toàn. Kiểm tra xem có bị hỏng không.
  • File tự giải nén. Một file lưu trữ có kèm chương trình, thường đặt tên đuôi .exe, chính là một chương trình. Đừng chạy nó trừ khi bạn tin nguồn gốc của nó.
  • Danh sách sạch không phải là bảo đảm. Một danh sách gọn gàng cho thấy tên và kích thước trông bình thường. Nó không chứng minh mỗi file đều vô hại. Đừng chạy chương trình từ file lưu trữ mà bạn không tin, kể cả sau khi đã kiểm tra.

Được dịch từ Bản tiếng Anh với sự hỗ trợ của AI.

Bình luận

    Chưa có bình luận nào. Hãy là người đầu tiên.

    Đánh giá của bạn (không bắt buộc)

    Email của bạn không bao giờ được hiển thị hoặc lưu lại.

    Bìa của Digital Workflow ToolkitDigital Workflow Toolkit

    Công thức, mẫu và cách làm để nối các tác vụ file nhỏ (chuyển đổi, đổi tên, nén, gộp) thành quy trình chạy giống nhau mỗi lần.

    $19.00Mua trên GumroadBản tiếng Anh