2 điểm bởi GN⁺ 2025-04-30 | 1 bình luận | Chia sẻ qua WhatsApp
  • Phần lớn lưu lượng web đến từ bot, và một phần trong số đó được dùng cho mục đích độc hại
  • Zip Bomb là một tệp nén nhỏ, nhưng khi giải nén có thể mở rộng thành tệp rất lớn và gây quá tải máy chủ
  • Công nghệ nén được sử dụng để truyền dữ liệu hiệu quả trên web, và bot cũng tận dụng điều này
  • Khi phát hiện bot độc hại, máy chủ cung cấp tệp được nén bằng gzip để vô hiệu hóa bot
  • Zip Bomb không phải là giải pháp hoàn hảo, nhưng hiệu quả trong việc chặn các bot đơn giản

Bảo vệ máy chủ bằng Zip Bomb

  • Phần lớn lưu lượng web đến từ bot, và một phần trong số đó được dùng cho mục đích độc hại
  • Bot độc hại có thể tìm ra lỗ hổng của máy chủ và chèn script độc hại để biến máy chủ thành botnet
  • Zip Bomb là một tệp nén nhỏ, nhưng khi giải nén có thể mở rộng thành tệp rất lớn và gây quá tải máy chủ

Ứng dụng của công nghệ nén

  • gzip là công nghệ nén được sử dụng để truyền dữ liệu hiệu quả trên web
  • Cả trình duyệt web và bot đều hỗ trợ nén gzip, nhờ đó tận dụng băng thông tối đa
  • Khi phát hiện bot độc hại, máy chủ cung cấp tệp được nén bằng gzip để vô hiệu hóa bot

Cách tạo Zip Bomb

  • Sử dụng lệnh dd để tạo 10GB dữ liệu, rồi nén bằng gzip thành một tệp 10MB
  • Khi phát hiện yêu cầu độc hại, máy chủ sẽ cung cấp tệp Zip Bomb 10MB để vô hiệu hóa bot

Giới hạn của Zip Bomb

  • Zip Bomb không phải là giải pháp hoàn hảo, và một số bot có thể phát hiện rồi né tránh
  • Tuy nhiên, nó hiệu quả trong việc chặn các bot đơn giản và là một công cụ hữu ích để bảo vệ máy chủ

Bài viết liên quan

  • Cách xử lý 1,3 triệu yêu cầu web
  • Thay đổi chữ ký máy chủ Apache
  • Tuân thủ Do Not Track trong Google Analytics

1 bình luận

 
GN⁺ 2025-04-30
Ý kiến trên Hacker News
  • Hồi nhỏ tôi từng nghịch dại làm ln -s /dev/zero index.html trên trang chủ của mình. Trình duyệt thời đó rất không thích điều này, và hệ thống đôi khi bị treo hoặc sập
    • Sau này khi trình duyệt bắt đầu kiểm tra nội dung thực tế, chúng đã ngừng các yêu cầu kiểu này
  • Giờ gần như mọi trình duyệt đều hỗ trợ zstd và brotli, nên kiểu bom này có thể còn hiệu quả hơn
    • Một bình luận cũ từng cho thấy tỷ lệ nén 1.2M:1, và zstd còn cho hiệu năng tốt hơn
  • Bot có thể không hỗ trợ các chuẩn nén hiện đại
    • Đây có thể là cách tốt để chặn bot: vì mọi trình duyệt hiện đại đều hỗ trợ zstd, nếu ép dùng nó với các user agent không nằm trong whitelist thì có thể làm rối các scraper
  • Ở chỗ làm cũ, từng có bot phát hiện lỗ hổng WordPress và chèn script độc hại vào máy chủ
    • Thật buồn cười khi biết rằng không chỉ mình tôi từng trải qua cảnh PHP shell bị triển khai lên server chỉ 1 giờ sau khi cài WordPress
  • Zip bomb khá thú vị. Tôi từng phát hiện một lỗ hổng trong sản phẩm bảo mật, nơi các file zip archive vượt quá một kích thước nhất định sẽ không được quét đúng cách
    • Vì vậy nếu nhét zip bomb vào tài liệu Office XML thì sản phẩm đó vẫn cho đi qua, ngay cả khi bên trong có malware rất dễ nhận diện
  • Tôi từng tìm ra cách làm crash các SSH client đang cố đoán mật khẩu root qua ssh
    • Kết quả là đám script kiddie quay sang DDoS máy chủ của tôi
    • Sau đó tôi chuyển sang cách nhận diện các "bad actor" và chặn IP bằng luật tường lửa
    • Điều này ngày càng khó hơn vì IPv6
  • Người viết trang web có thể tạo zip bomb bằng các liên kết mà con người không nhìn thấy được (chữ trắng trên nền trắng, không tô sáng ở anchor khi hover/click)
    • Bot sẽ tải chúng xuống để kiểm tra (crawler và AI scraper cũng vậy)
  • Đây là bom gzip (hoạt động giống như một trang web nén thông thường), không phải file zip kiểu cổ điển dùng để chặn virus
  • Tôi từng triển khai thứ này thay cho script honeypot thông thường
    • Nó không hoạt động tốt lắm
    • Trong log máy chủ web, có thể thấy bot không tải hết 10 megabyte dữ liệu độc này
    • Chúng dừng ở nhiều độ dài khác nhau. Đến giờ tôi chưa từng thấy cái nào lấy quá khoảng 1.5Mb
    • Hoặc biết đâu nó vẫn có tác dụng? Có thể chúng giải mã luồng theo thời gian thực rồi bị crash? Ví dụ, thứ được ghi nhận là đã đọc 1.5Mb có thể đã được giải mã thành 1.5Gb trong RAM theo thời gian thực rồi sập không?
    • Không có cách nào biết được
  • Cách đây không lâu đã có vụ hạ tầng chống kiểm duyệt của Tor Project được vận hành trên cùng loại site như các bài blog về zip bomb
    • Google đã crawl một trong các file zip đó rồi thêm site vào danh sách tên miền độc hại, khiến một phần quan trọng của công cụ Snowflake của Tor bị ảnh hưởng
    • Mất vài tuần mới khắc phục xong
  • Trong một ứng dụng của tôi, để bảo vệ phần upload, tôi tạo một phân vùng đĩa tạm kích thước cố định 10MB nhằm giới hạn tác động nếu có file quá lớn được tải lên
  • Tôi làm việc tương tự bằng một script được chắp vá trong vài năm
    • Mỗi năm tôi xem lại log 404 và thêm những đường dẫn lỗ hổng phổ biến nhất vào blacklist
    • Nếu một URL như vậy bị yêu cầu 3 lần thì tôi thêm host đó vào greylist, chỉ cho phép các đường dẫn hợp lệ bị giới hạn