Threat Model

Rủi ro của Máy chủ Proxy Công cộng và Cách Sống Chung với Chúng

3 min read Published Updated 510 words

Hãy coi mọi proxy miễn phí như hạ tầng không đáng tin cậy, bởi vì đúng là như vậy. Người vận hành ẩn danh, mô hình tài trợ không rõ ràng, và cùng một socket có thể luân chuyển qua botnet, router gia đình bị xâm nhập, và honeypot của nhà nghiên cứu chỉ trong một tuần. Điều đó không làm cho proxy miễn phí trở nên vô dụng — nó khiến một số thói quen nhỏ trở thành bắt buộc.

Các Cuộc Tấn Công Phổ Biến

Các mối đe dọa không phải là kịch tính. Chúng thuộc loại nhàm chán nhưng thành công vì hầu hết người dùng không buồn phòng thủ.

Đánh cắp thông tin đăng nhập qua HTTP thuần văn bản. Nếu bạn đăng nhập vào bất kỳ thứ gì qua http:// thông qua một proxy không xác định, người vận hành sẽ thấy mật khẩu. Luôn luôn tunnel TLS qua CONNECT hoặc sử dụng SOCKS đến một đích tự thực thi HTTPS. Các luồng đăng nhập hiện đại chỉ dùng HTTPS trên các trang lớn, nhưng các mạng nội bộ cũ, trang quản trị IoT và các triển khai CMS cũ thì không.

Chèn header và nội dung. Một proxy HTTP thù địch có thể viết lại bất kỳ phần nào của yêu cầu của bạn: thay đổi cookie, hoán đổi referrer, chèn tham số theo dõi, hoặc loại bỏ header cache. Cùng một proxy có thể chèn nội dung vào phản hồi — script vào HTML, chuyển hướng vào JSON, quảng cáo vào trang tĩnh. Nếu bạn đọc phản hồi từ phía máy chủ thông qua proxy, hãy coi chúng đã bị xâm phạm cho đến khi bạn có thể xác minh tính toàn vẹn từ một đường dẫn đáng tin cậy.

Tấn công DNS qua SOCKS5. SOCKS5 có thể phân giải tên miền tại proxy. Nếu proxy nói dối về bản ghi DNS, bạn sẽ kết nối đến một máy chủ do người vận hành kiểm soát. Cấu hình client của bạn để phân giải cục bộ khi có thể: curl --resolve example.com:443:93.184.216.34, hoặc trong code, truyền địa chỉ IP thay vì tên miền.

Ghi nhật ký lưu lượng. Ngay cả một proxy có thiện chí cũng có thể ghi lại mọi URL bạn truy cập. Đối với các mô hình mối đe dọa bao gồm "người này đã yêu cầu những URL nào", mọi proxy công cộng đều là công cụ sai. Hãy sử dụng Tor hoặc VPN trả phí với chính sách không ghi nhật ký đã được công bố và thành tích đã từng chống lại trát tòa.

Cạn kiệt tài nguyên phía client. Một số proxy cố tình làm chậm kết nối đến mức ì ạch, trả về phản hồi rất lớn, hoặc giữ socket mở mà không gửi dữ liệu. Đặt giới hạn kích thước phản hồi và thời gian chờ kết nối nghiêm ngặt ở phía client của bạn.

Phòng Thủ, Theo Thứ Tự Ưu Tiên

Gửi mọi thứ bên trong TLS qua CONNECT hoặc đến đích HTTPS thông qua SOCKS. Không bao giờ tái sử dụng thông tin đăng nhập phía sau proxy công cộng mà bạn sẽ dùng lại ở nơi khác. Xác thực chứng chỉ một cách nghiêm ngặt — ghim nhà phát hành là quá mức cần thiết cho sử dụng thông thường, nhưng chấp nhận bất kỳ chuỗi nào là liều lĩnh. Đặt thời gian chờ ngắn cho kết nối và đọc. Ghi nhật ký phản hồi proxy để xem xét pháp y khi khối lượng công việc quan trọng. Xoay vòng thường xuyên; một proxy đã hoạt động năm phút trước không nhất thiết là cùng một proxy bây giờ.

Proxy Miễn Phí Thực Sự Hữu Ích Cho Việc Gì

Ba loại công việc biện minh cho sự ồn ào này. Kiểm tra biến thể nội dung theo địa lý: CDN của bạn có phục vụ đúng trang từ Frankfurt so với São Paulo không? Thu thập dữ liệu công khai, không cần xác thực: kết quả công cụ tìm kiếm, API công khai không có giới hạn tốc độ theo IP, nội dung đã được lập chỉ mục ở nơi khác. Xác minh rằng ứng dụng của bạn hoạt động chính xác khi IP ra ngoài không quen thuộc với mục tiêu — hữu ích cho QA trên các hệ thống có heuristic phát hiện gian lận dựa trên IP.

Hãy sử dụng chúng cho những việc đó. Chấp nhận tỷ lệ thất bại. Đừng đặt bất cứ thứ gì bạn không muốn mất phía sau một proxy.