Chặn đứng Credential Stuffing ngay tại Edge
Cách tracio.ai nhận diện các lần đăng nhập tự động trước khi chúng chạm tới hệ thống xác thực — kết hợp device fingerprint, kiểm tra tần suất và tín hiệu hành vi.
Credential stuffing
là các cuộc tấn công dùng công cụ tự động để thử những cặp tên đăng nhập và mật khẩu bị đánh cắp lên các trang đăng nhập. Quy mô của chúng cực lớn — một tay điều hành có thể thử hàng triệu bộ thông tin đăng nhập mỗi ngày trên hàng trăm site mục tiêu. Các biện pháp phòng thủ truyền thống như rate limiting và CAPTCHA là không đủ, bởi kẻ tấn công phân tán request qua hàng nghìn địa chỉ IP và dùng các dịch vụ giải CAPTCHA. Dưới đây là cách chúng tôi chặn credential stuffing ngay tại edge, trước khi request chạm tới hệ thống xác thực của bạn.
Bề mặt tấn công
Một chiến dịch credential stuffing điển hình sử dụng một danh sách thông tin đăng nhập bị đánh cắp (được rao bán trên các chợ dark web với giá chỉ 10 USD cho mỗi triệu bản ghi), một công cụ tự động hóa (thường là script tùy biến hoặc công cụ như OpenBullet), và một pool IP proxy (các residential proxy xoay vòng trên mỗi request để né rate limiting dựa trên IP).
Kẻ tấn công cấu hình công cụ để gửi request đăng nhập với tốc độ được kiểm soát — đủ chậm để tránh kích hoạt các rate limit đơn giản, nhưng đủ nhanh để thử hàng nghìn bộ thông tin mỗi giờ. Mỗi request đến từ một địa chỉ IP khác nhau, với một chuỗi user agent khác nhau, khiến nó trông như một luồng các lần đăng nhập hợp lệ từ những người dùng khác nhau.
Vì sao rate limiting thất bại
Rate limiting dựa trên IP là tuyến phòng thủ đầu tiên mà hầu hết các đội triển khai, và cũng là tuyến thất bại đầu tiên. Các dịch vụ residential proxy cung cấp quyền truy cập tới hàng triệu địa chỉ IP thật — router gia đình, thiết bị di động và thiết bị IoT — xoay vòng trên mỗi request. Từ góc nhìn của máy chủ, mỗi lần đăng nhập đến từ một IP residential duy nhất chưa từng có lịch sử lạm dụng.
Rate limiting dựa trên tài khoản (giới hạn số lần đăng nhập trên mỗi tên đăng nhập) hiệu quả hơn nhưng lại tạo ra một lỗ hổng từ chối dịch vụ: kẻ tấn công có thể khóa những người dùng hợp lệ bằng cách cố tình làm thất bại nhiều lần đăng nhập nhắm vào tên đăng nhập của họ.
Device fingerprinting làm nền tảng
Device fingerprinting thay đổi cục diện vì nó nhận diện thiết bị đang chạy cuộc tấn công, chứ không phải IP mà thiết bị đó đang dùng. Một công cụ credential stuffing chạy trên một máy đơn hoặc một cụm VM tạo ra một device fingerprint nhất quán trên tất cả các request của nó, bất kể nó xoay vòng qua IP proxy nào.
Bộ máy Bot Detection của chúng tôi nhận diện chính các công cụ tự động hóa. Selenium để lại các dấu vết navigator.webdriver. Puppeteer và Playwright có những đặc điểm runtime JavaScript riêng biệt. Headless Chrome thiếu một số API trình duyệt cụ thể mà Chrome có giao diện vẫn có. Ngay cả những HTTP client tùy biến không thực thi JavaScript cũng bị phát hiện qua TLS fingerprinting — các thông điệp Client Hello của chúng để lộ thư viện HTTP nền tảng.
Theo dõi tần suất theo thiết bị
Một khi đã có một định danh thiết bị ổn định (thông qua Device Identification), chúng tôi có thể áp dụng kiểm tra tần suất ở cấp thiết bị thay vì cấp IP. Nếu một thiết bị đơn lẻ thử 50 lần đăng nhập trong 5 phút — bất kể các request đó đến từ bao nhiêu IP khác nhau — thì mẫu hành vi này rõ ràng không thể nhầm lẫn là credential stuffing.
Module IP Intelligence của chúng tôi theo dõi tần suất qua ba cửa sổ thời gian: 5 phút, 1 giờ và 24 giờ. Cách tiếp cận đa cửa sổ này bắt được cả các cuộc tấn công dữ dội (hàng trăm lần thử mỗi phút) lẫn các cuộc tấn công chậm-và-thấp (vài lần thử mỗi giờ duy trì suốt nhiều ngày).
Phân tích tín hiệu hành vi
Bên cạnh bot detection và theo dõi tần suất, phân tích Smart Signals của chúng tôi xem xét các tín hiệu hành vi phân biệt tấn công tự động với đăng nhập hợp lệ. Người dùng thật thể hiện sự biến thiên tự nhiên trong thời điểm gửi request, tốc độ gõ phím và các mẫu điều hướng. Công cụ tự động thường tạo ra thời gian nhất quán một cách máy móc, các header request giống hệt nhau, và không có chuyển động chuột hay sự kiện cuộn trang.
Chúng tôi cũng kiểm tra sự bất nhất giữa các tín hiệu vốn báo hiệu việc giả mạo môi trường. Một trình duyệt tự nhận là Chrome trên macOS nhưng lại trình ra các tham số WebGL gắn với một Linux VM sẽ bị gắn cờ ngay lập tức. Một chuỗi user agent không khớp với TLS fingerprint sẽ kích hoạt cảnh báo can thiệp.
Triển khai tại Edge
Chìa khóa để chặn credential stuffing là chặn nó trước khi nó chạm tới hệ thống xác thực của bạn. Agent của chúng tôi nạp trên trang đăng nhập và thu thập tín hiệu trong lúc trang tải — trước khi người dùng (hay bot) gửi thông tin đăng nhập. Kết quả fingerprint và bot detection đã sẵn sàng vào thời điểm biểu mẫu đăng nhập được gửi đi, cho phép máy chủ của bạn từ chối các lần thử tự động ngay lập tức.
Với các mục tiêu lưu lượng cao, chúng tôi khuyến nghị triển khai tích hợp Cloudflare Worker hoặc CloudFront Lambda@Edge của chúng tôi, vốn chạy kiểm định fingerprint ngay tại CDN edge. Điều này nghĩa là các request credential stuffing bị chặn ngay tại node edge gần kẻ tấn công nhất, không bao giờ chạm tới các máy chủ gốc của bạn.
Kết quả
Khách hàng của chúng tôi ghi nhận lượng credential stuffing giảm 99% sau khi triển khai tracio.ai trên các trang đăng nhập của họ. Phần 1% còn lại gồm những cuộc tấn công cực kỳ tinh vi dùng tự động hóa trình duyệt đầy đủ với các tín hiệu được giả mạo cẩn thận — và chúng bị phát hiện bởi cơ chế đa phương pháp của chúng tôi ngay trong vài chục request đầu tiên khi các mẫu tần suất lộ diện.