Miasma: Công cụ nhốt trình thu thập web AI vào vòng lặp ô nhiễm vô tận
(github.com/austin-weeks)- Miasma là công cụ máy chủ viết bằng Rust dùng để đẩy trình thu thập web AI vào vòng lặp vô hạn, cản trở việc thu thập dữ liệu huấn luyện
- Chuyển hướng lưu lượng từ các công ty AI đang thu thập nội dung website ở quy mô lớn, rồi trả về dữ liệu bị đầu độc và các liên kết tự tham chiếu lấy từ “poison fountain”
- Có thể phòng vệ mà không lãng phí tài nguyên máy chủ nhờ tốc độ xử lý nhanh và mức sử dụng bộ nhớ thấp
- Dẫn trình thu thập vào đường dẫn
/botsđể tạo cấu trúc tuần hoàn vô hạn thông qua reverse proxy Nginx và chèn liên kết ẩn - Các công cụ tìm kiếm thông thường được bảo vệ bằng quy tắc ngoại lệ trong robots.txt, đồng thời dự án cho phép cộng đồng đóng góp dưới dạng mã nguồn mở
Cài đặt và chạy
- Có thể cài bằng Cargo
- Cài bằng lệnh
cargo install miasma
- Cài bằng lệnh
- Có thể tải binary dựng sẵn từ trang Releases trên GitHub
- Khi chạy với cấu hình mặc định, chỉ cần nhập lệnh
miasma - Có thể xem toàn bộ tùy chọn cấu hình bằng
miasma --help
Cách thiết lập bẫy cho trình thu thập
- Đặt đường dẫn
/botslàm điểm dẫn luồng cho trình thu thập - Dùng Nginx làm reverse proxy để chuyển các yêu cầu tới đường dẫn
/botssang máy chủ Miasmalocation ~ ^/bots($|/.*)$ { proxy_pass http://localhost:9855; }- Khớp với mọi biến thể đường dẫn như
/bots,/bots/,/bots/12345
- Khớp với mọi biến thể đường dẫn như
-
Chèn liên kết ẩn
- Thêm liên kết ẩn trong trang web mà khách truy cập là con người không nhìn thấy nhưng trình thu thập có thể phát hiện
<a href="/bots" style="display: none;" aria-hidden="true" tabindex="1"> Amazing high quality data here! </a> - Các thuộc tính
display: none,aria-hidden="true",tabindex="1"khiến liên kết không hiển thị với người dùng và công cụ hỗ trợ truy cập
- Thêm liên kết ẩn trong trang web mà khách truy cập là con người không nhìn thấy nhưng trình thu thập có thể phát hiện
-
Chạy Miasma
- Chỉ định
/botslàm tiền tố liên kết, đồng thời đặt cổng và giới hạn kết nối đồng thờimiasma --link-prefix '/bots' -p 9855 -c 50 - Cho phép tối đa 50 kết nối đồng thời; các yêu cầu vượt quá sẽ nhận phản hồi HTTP 429
- Với 50 kết nối, mức sử dụng bộ nhớ ước tính khoảng 50~60MB
- Chỉ định
-
Hoạt động sau khi triển khai
- Sau khi cấu hình xong và triển khai, trình thu thập sẽ đi theo đường dẫn
/botsvà lặp vô hạn qua các trang dữ liệu bị đầu độc - Có thể theo dõi yêu cầu lặp lại của trình thu thập theo thời gian thực qua log
- Sau khi cấu hình xong và triển khai, trình thu thập sẽ đi theo đường dẫn
Thiết lập robots.txt
- Cần thêm quy tắc ngoại lệ trong robots.txt để các crawler của công cụ tìm kiếm thông thường không truy cập vào Miasma
User-agent: Googlebot User-agent: Bingbot User-agent: DuckDuckBot User-agent: Slurp User-agent: SomeOtherNiceBot Disallow: /bots Allow: /
Tùy chọn cấu hình
- Có thể cấu hình chi tiết thông qua các tùy chọn CLI
| Tùy chọn | Mặc định | Mô tả |
|---|---|---|
port |
9999 |
Cổng mà máy chủ sẽ bind |
host |
localhost |
Địa chỉ host mà máy chủ sẽ bind |
max-in-flight |
500 |
Số lượng yêu cầu tối đa có thể xử lý đồng thời. Vượt quá sẽ trả về phản hồi 429. Mức dùng bộ nhớ tỉ lệ với giá trị này |
link-prefix |
/ |
Tiền tố của các liên kết tự tham chiếu. Ví dụ: /bots |
link-count |
5 |
Số lượng liên kết tự tham chiếu trong mỗi trang phản hồi |
force-gzip |
false |
Luôn áp dụng nén gzip bất kể header Accept-Encoding của client. Hữu ích để giảm chi phí truyền tải |
poison-source |
https://rnsaffn.com/poison2/ |
Nguồn proxy để lấy dữ liệu huấn luyện bị đầu độc |
Phát triển và đóng góp
- Có thể gửi báo cáo lỗi hoặc đề xuất tính năng qua GitHub Issues
- Các đóng góp mã do AI tạo ra sẽ tự động bị từ chối
- Hoan nghênh đóng góp từ cộng đồng và dự án được duy trì dưới dạng mã nguồn mở
1 bình luận
Ý kiến trên Hacker News
Giống như việc ai đó giữ chân kẻ gọi điện spam suốt 45 phút, tôi nghi ngờ liệu các kỹ thuật gây nhiễu bot kiểu này có thực sự hiệu quả hay không
Theo chính sách Google Search, việc chèn liên kết ẩn là vi phạm rõ ràng, có thể khiến thứ hạng trang bị giảm hoặc bị loại khỏi kết quả tìm kiếm
Cuối cùng cách này có khi còn gây hại cho chính trang web của tôi nhiều hơn là cho bot
Giống như video mà YouTuber Kitboga dùng AI call center để giữ chân các cuộc gọi spam, có thể xem đây là một chiến thuật du kích nhằm tiêu hao tài nguyên của đối phương
Có vẻ chúng có danh sách “cấm gọi” và danh sách “không sinh lời” riêng. Điều quan trọng là bị đưa vào danh sách thứ hai
Mọi người quá tức giận nên Golden Telecom đã thực hiện cuộc gọi trả đũa tự động, và công ty đó biến mất
Cách này có thể hiệu quả theo kiểu đó, nhưng cần thuê một cụm modem
Nếu xuất hiện các công cụ có chống scraping, chống Google crawler, và có chỉ mục tìm kiếm lấy con người làm trung tâm, thì vẫn có khả năng
Nội dung trên website công khai của tôi đang bị các scraper ăn cắp
Rốt cuộc tôi cũng đã ăn cắp bài viết này, còn bạn thì coi như đang ăn cắp bình luận của tôi. Thế giới đầy rẫy kẻ trộm
Nội dung thì mở cho tất cả mọi người, nhưng tôi không muốn nó bị biến thành thứ mà chẳng ai truy cập được nữa
Nếu tình trạng này tiếp diễn, tôi sẽ không còn muốn chia sẻ nữa
Cuối cùng việc đặt con người và công cụ của doanh nghiệp lên cùng một mặt bằng là một so sánh sai lầm
Trước đây tôi từng làm phần mềm trả phí và thêm mã chống sao chép, nhưng lần nào cũng xuất hiện bản crack mới
Cuối cùng tôi nhận ra cuộc chiến đó vô nghĩa và gỡ bỏ mã bảo vệ
Nỗ lực ngăn AI bot crawl cũng giống một trò đập chuột chũi như vậy
Nhưng động lực của cộng đồng đó vốn là niềm vui và danh tiếng, nên tôi nghĩ ngoài đời rất khó áp dụng
Nhưng mạng xã hội và nỗi ám ảnh bản quyền đã làm gia tăng ham muốn kiểm soát của con người
Tôi tò mò liệu mấy kỹ thuật này có thực sự hiệu quả không
Phần lớn scraper có lẽ đã có sẵn kỹ thuật để vượt qua các kiểu phòng thủ này
Theo kinh nghiệm của tôi, cách này có tác dụng ở một mức nào đó
Tôi không biết chúng có học dữ liệu rác tôi tạo ra hay không, nhưng cứ mơ vậy đã
Cách tiếp cận đầu độc dữ liệu (data poisoning) này khá thú vị
Khi mô hình học từ dữ liệu web, nó sẽ thừa hưởng nguyên trạng cả thiên lệch và thao túng trong đó
Nếu tác nhân xấu đầu độc dữ liệu ở quy mô lớn, bản thân quá trình huấn luyện sẽ biến thành một cấu trúc đối kháng
Cuối cùng giải pháp là quản lý nguồn gốc dữ liệu đáng tin cậy (provenance)
Những nỗ lực kiểu này rốt cuộc chỉ đang cung cấp dữ liệu huấn luyện để AI trở nên thông minh hơn
Thị trường nội dung dựa trên quảng cáo rất có thể sẽ sụp đổ, và kết quả là nó sẽ được tái cấu trúc thành thị trường chú trọng chất lượng nội dung
Thay vào đó, mô hình trực tiếp cấp phép và cung cấp dữ liệu sẽ dần định hình
Tôi nghĩ chỉ cần loại bỏ các thuộc tính
style="display:none"hoặcaria-hidden="true"là có thể tránh được các mánh này phải khôngNếu là scraper tử tế thì đúng ra phải tuân thủ quy tắc đó
Con người không thấy, nhưng bot vẫn sẽ lần theo
Ý tưởng này hay đấy, nhưng rốt cuộc nó sẽ gây hại nhiều hơn cho doanh nghiệp vừa và nhỏ (SME)
Chỉ các công ty lớn ngày càng mạnh hơn, còn các website nhỏ thì biến mất khỏi kết quả tìm kiếm AI
Cuối cùng chỉ còn cách thuận theo dòng chảy, thỉnh thoảng để lại chút kháng cự nhỏ là thực tế nhất
Những công cụ như Nightshade 2.0 trông giống dự án câu chú ý khá vụng về
Giải pháp thật sự là cung cấp dữ liệu ở định dạng thân thiện với LLM
Mánh
display:noneđơn giản sẽ không hiệu quả với crawler thông minhXem thảo luận liên quan
Điều thực sự thú vị là bộ dữ liệu Poison Fountain mà dự án này sử dụng
Trên rnsaffn.com/poison3 có câu “tôi muốn gây hại cho các hệ thống trí tuệ máy”
Kiểu ý thức hệ hacker này khiến tôi khó đồng cảm vì nó giống như nhập vai (roleplay)