Tôi dùng ZIP bomb để bảo vệ máy chủ của mình
(idiallo.com)Mở đầu
- Phần lớn lưu lượng Internet là bot, và một phần trong số đó có mục đích độc hại (spam, hack, v.v.).
- Tác giả từng bị bot khiến máy chủ WordPress nhiễm mã độc hoặc bị loại khỏi kết quả tìm kiếm của Google.
- Để ngăn chặn điều này, tác giả bắt đầu sử dụng Zip Bomb.
Nội dung chính
-
Zip Bomb là gì?
- Là tệp nén nhỏ nhưng khi giải nén sẽ mở rộng thành dung lượng rất lớn.
- Tệp nén 1MB có thể nở thành 1GB, còn 10MB thành 10GB, làm tê liệt máy chủ.
-
Chức năng gzip hiện có
- Trên web, gzip được dùng để nén nhằm tăng hiệu quả truyền tải.
- Hầu hết bot cũng hỗ trợ nén gzip.
-
Cách ứng phó bằng Zip Bomb
- Khi bị đánh giá là bot độc hại, máy chủ sẽ phản hồi bằng tệp Zip Bomb được nén gzip cùng với
200 OK. - Trong lúc mở tệp này, bot có thể bị sập hoặc treo trên máy chủ của chính nó.
- Thông thường dùng loại 1MB (nở thành 1GB) hoặc 10MB (nở thành 10GB).
- Khi bị đánh giá là bot độc hại, máy chủ sẽ phản hồi bằng tệp Zip Bomb được nén gzip cùng với
-
Cách tạo Zip Bomb
dd if=/dev/zero bs=1G count=10 | gzip -c > 10GB.gz- Tạo 10GB dữ liệu byte 0 bằng
/dev/zero, sau đó nén lại bằng gzip. - Kết quả là một zip bomb có kích thước khoảng 10MB.
- Tạo 10GB dữ liệu byte 0 bằng
-
Ví dụ áp dụng trên máy chủ
- Nếu middleware phát hiện IP trong danh sách đen hoặc mẫu hành vi độc hại, nó sẽ gửi Zip Bomb.
if (ipIsBlackListed() || isMalicious()) { header("Content-Encoding: deflate, gzip"); header("Content-Length: "+ filesize(ZIP_BOMB_FILE_10G)); readfile(ZIP_BOMB_FILE_10G); exit; }
Kết luận
- Zip Bomb không phải là biện pháp phòng thủ hoàn hảo.
- Bot tinh vi có thể phát hiện và vượt qua nó.
- Tuy nhiên, với các bot cấp thấp thu thập dữ liệu web một cách bừa bãi, đây là một biện pháp phòng thủ hiệu quả.
- Dù có tiêu tốn một phần tài nguyên máy chủ, nó vẫn đủ đáng giá vì mục tiêu bảo mật.
29 bình luận
Tôi nghĩ đây là một cách đáng thử nếu bạn không có phương án nào hiệu quả để chặn các bot tạo ra lưu lượng spam đến máy chủ của mình.
Đọc khá vui, giống như một bài viết về việc tặng bom kim tuyến cho kẻ trộm hàng giao tận nơi vậy :)
Video đó vui mà. Y hệt như thế luôn haha
Bài viết trên internet không phải là bưu kiện thuộc sở hữu của ai đó
Nếu là tài sản riêng không được công khai thì hẳn họ đã thêm thủ tục xác thực rồi
Có thể xem nó giống như việc đặt một tờ rơi ngoài đường rồi bôi chất kịch độc lên đó vậy
Đây là một khái niệm khác với việc dán các tờ rơi bị tẩm độc với mục đích xấu.
Về mặt đạo đức thì đây không phải là cách hay. Và cũng không phải là giải pháp gốc rễ.
Đây là lần đầu tôi gặp kiểu này nên tôi muốn hỏi giải pháp căn bản là gì!!
Tôi đồng ý
Bot độc hại thì có phải là theo cách có đạo đức à? lol
Bot độc hại thực sự thì không thể bắt bằng cách này đâu.
Bomb gzip cũng không hiệu quả,
cứ xem như có ai đó không biết gì viết một bài đùa về bom cho vui thôi.
Đúng là kiểu người như thế này làm cho việc được công nhận là phòng vệ chính đáng càng khó hơn nhỉ haha...
Tại sao đây lại không phải là một cách làm đúng đắn về mặt đạo đức? Tôi tò mò.
Bài viết thú vị thật! Đây là một cách mà tôi chưa từng nghĩ tới, cảm ơn bạn đã chia sẻ!
Mục đích của việc đăng bài như thế này là gì nhỉ?
Tôi nghĩ trên thực tế gần như không có khả năng các công ty đang chạy crawler đọc bài này rồi loại trừ ra.
Vậy bài viết này được viết hướng tới những độc giả nào?
Là một bài giới thiệu để cho những người cũng đang vận hành blog biết rằng có cách như thế này,
hay là một kiểu câu tương tác rằng blog của tôi bảo mật mạnh thế này đấy, nếu làm được thì cứ thử crawl xem?
Tôi thật sự rất tò mò không biết đăng bài này lên thì sẽ nhận được điều gì
Chẳng phải chỉ là có những cách như thế này thôi sao..
Chỉ là blog cá nhân thôi, chẳng lẽ không được viết gì cũng được sao? 🤔
Tất nhiên vì đó không phải là nơi công khai nên cũng có thể chỉ là bài đăng được viết ra mà không suy nghĩ gì nhiều.
Giống như trong cộng đồng, người ta cũng có thể để lại bình luận mà chẳng suy nghĩ gì nhiều.
Tôi không thể chặn hoàn toàn crawler, nên tốt nhất là ngay từ đầu đừng nhận bất kỳ nỗ lực truy cập nào, nhưng tôi tò mò về ý đồ muốn câu kéo sự chú ý đó.
Vậy tức là nếu phán đoán bot dựa trên IP thì cũng sẽ ném bom vào luôn đúng không haha
Cảm nhận được sự phẫn nộ từ tác giả. haha
Ý là sẽ tặng một quả bom cho những yêu cầu mà agent tự nhận là bot.. Quá ác ý rồi. Dù sao thì agent cũng rất dễ che giấu. Nếu là bot thực sự có ý đồ xấu thì sẽ không để lộ ác ý.
Gần đây thỉnh thoảng có thể thấy các trường hợp bị thiệt hại do lưu lượng truy cập quá mức từ các dịch vụ tích hợp với LLM, nên về thực chất cũng có thể xem đây là một biện pháp đối phó cho kiểu tình huống đó. Ví dụ, nếu nhìn vào tính năng tìm kiếm web của ChatGPT thì với đặc tính của nhóm người dùng này, khả năng phát sinh lưu lượng truy cập quá mức theo kiểu “không có ác ý” là khá lớn, và tôi nghe nói những trường hợp này có thể dễ dàng lọc ra bằng cách đối sánh agent đơn giản. Nếu đó thật sự là chủ đích thì rốt cuộc chỉ là con đường làm hao tốn chi phí máy chủ của OpenAI (và cả danh tiếng?) một cách oan uổng mà thôi..
Vậy nên đây là một bài viết vô nghĩa.
OpenAI dù sao cũng là một công ty đủ lớn để có thể giữ mức lịch sự đó rồi.
Và có lẽ việc người dùng tự mình nhấp vào kết quả tìm kiếm thì khó tạo ra lưu lượng đến mức đáng ngại, chẳng phải vấn đề là crawler hoạt động quá mức sao?
Tôi đồng ý rằng dù là User-Agent như bạn nói hay cơ chế phát hiện dựa trên IP được nhắc trong bài gốc, vì thông tin nhận dạng đều có thể bị ngụy trang nên rất khó khẳng định là ác ý hay không. Có lẽ bot thực sự độc hại sẽ tiếp cận tinh vi hơn nhiều.
Theo tôi, thay vì kiểu tấn công này, có lẽ một hướng "nudge" thực tế hơn là cung cấp API thu thập dữ liệu có giới hạn tải, để vẫn cho phép truy cập tự động hợp pháp nhưng bảo vệ được tài nguyên máy chủ. haha
Đã có cái gọi là bots.txt mà từ rất lâu rồi chúng ta đã đồng thuận mà..
Đây là một bình luận không liên quan đến bài viết này, nhưng có vẻ gần đây số người dùng để lại bình luận ác ý trên hada mà tôi thường theo dõi đã tăng lên rõ rệt. Có lẽ bầu không khí đã khác đi khá nhiều so với thời còn không có bình luận hoặc chỉ có rất ít bình luận.
Cá nhân tôi nghĩ sẽ thế nào nếu có tính năng chặn, hoặc tính năng làm mờ bình luận khi nhận được nhiều lượt báo cáo.
Có vẻ như những người dùng nhận được nhiều lượt đề xuất sẽ được trao những tính năng như vậy.
2222222222222222