- Web Bot đã phát triển từ những yêu cầu đơn giản của HTTP client đến tự động hóa trình duyệt thực sự, và tương ứng với đó các kỹ thuật phát hiện bot cũng liên tục trở nên tinh vi hơn
- Nhiều công nghệ như uy tín IP, dấu vân tay TCP/TLS/môi trường trình duyệt, phân tích hành vi dựa trên JavaScript được sử dụng để phát hiện bot
- Các kỹ thuật né tránh của bot như trình duyệt headless, proxy, giả mạo User-Agent tiếp tục phát triển, nhưng các thuật toán phát hiện cũng tiến hóa theo, khiến cuộc chơi “mèo vờn chuột” giữa hai bên vẫn tiếp diễn
- Gần đây, việc kết hợp cả phân tích hành vi nâng cao sử dụng mô hình AI dựa trên dữ liệu hành vi khiến việc phát hiện bot càng trở nên phức tạp hơn
- Các hệ thống phòng thủ nhiều lớp như CAPTCHA, phát hiện proxy, Proof-of-Work, xác thực dựa trên hành vi đang dần trở nên phổ biến
Mở đầu: Sự tiến hóa của bot web và công nghệ phát hiện
- Bot web tồn tại dưới nhiều dạng, từ crawler đơn giản và script tự động hóa cho đến những chương trình tinh vi có thể hành xử như người dùng thật
- Có những bot hữu ích như bot công cụ tìm kiếm, bot lưu trữ, nhưng cũng có nhiều cách sử dụng gây vấn đề như spam và scraping trái phép
- Các nhà vận hành website đã chiến đấu với bot từ những ngày đầu, và kỹ thuật phát hiện lẫn né tránh đều ngày càng được nâng cấp
Bot đơn giản nhất: HTTP client
- Cách cơ bản nhất của bot là gửi yêu cầu đến website bằng các HTTP client đơn giản như
curl, wget
- Mọi HTTP client đều tự bộc lộ qua header
User-Agent, vì vậy website có thể dễ dàng phát hiện và chặn
- Ngay cả khi giả mạo User-Agent thành trình duyệt, trình duyệt thật vẫn bao gồm thêm nhiều header khác (ngôn ngữ, mã hóa...), nên nếu ngụy trang không hoàn hảo thì vẫn sẽ bị phát hiện
Uy tín IP và proxy
- Máy chủ sử dụng địa chỉ IP để phát hiện bot. Đặc biệt, các dải IP của cloud hoặc data center thường bị xem là lưu lượng bot/tự động hóa nên có độ tin cậy thấp
- Nếu vận hành mà không dùng proxy thì sẽ nhanh chóng bị chặn, nên cần né IP bằng proxy dân cư/mobile, và điều này phát sinh chi phí
- Website chủ động kiểm tra uy tín IP, việc các cổng proxy (như 1080) có đang mở hay không, dải IP và mẫu truy cập
- Để vượt qua chặn IP, người ta sử dụng rotating proxy và proxy mobile
Dấu vân tay TCP (TCP Fingerprinting)
- Khi thiết lập kết nối TCP trước yêu cầu HTTP, cách cấu thành gói TCP khác nhau theo từng hệ điều hành, nên có thể phân tích để nhận diện OS
- Nếu User-Agent và OS thực tế (dấu vân tay TCP) không khớp, lưu lượng đó sẽ bị đánh giá là bot/lưu lượng ngụy trang
- Proxy server cũng có thể ảnh hưởng đến dấu vân tay TCP, vì vậy khi chọn proxy cần cân nhắc việc OS có khớp hay không
Dấu vân tay TLS (TLS Fingerprinting)
- Trong quá trình bắt tay TLS, các bộ mã hóa được hỗ trợ, phiên bản và extension sẽ khác nhau theo từng trình duyệt/OS
- Dấu vân tay TLS cho phép suy đoán trình duyệt, hệ điều hành và loại thư viện, rồi đối chiếu chéo với User-Agent
Phát hiện bằng JavaScript
- Máy chủ, trước khi phản hồi hoặc sau khi trang được tải, sẽ thu thập thêm thông tin về môi trường và hành vi client bằng JavaScript
- Nếu bot không chạy JavaScript thì sẽ bị phát hiện ngay, nên bot cũng đối phó bằng các công cụ tự động hóa trình duyệt như Selenium, Puppeteer, Playwright
- Bot đang tiến hóa từ mức yêu cầu HTTP đơn thuần sang tự động hóa trình duyệt
Trình duyệt headless và phát hiện
- Chế độ headless (như Chrome không cửa sổ) là yếu tố thiết yếu trong phát triển bot, nhưng vẫn có thể bị phát hiện qua nhiều điểm khác biệt như
navigator.webdriver, danh sách plugin rỗng và các thuộc tính đặc trưng khác
- Có thể vá nhiều thuộc tính để ngụy trang, nhưng phải xử lý hàng chục tín hiệu khác nhau, trong khi các điểm phát hiện mới vẫn liên tục xuất hiện
- New Headless mode được đưa vào từ năm 2023 sử dụng cùng engine với Chrome thực, khiến việc phát hiện trở nên khó hơn
Phát hiện framework điều phối và IPC
- Các framework tự động hóa như Selenium và Playwright để lộ những đặc điểm riêng qua cờ/tuỳ chọn đặc thù, phiên bản trình duyệt và cấu hình môi trường
- Ví dụ: các cờ như
--disable-ipc-flooding-protection có thể trở thành manh mối nhận diện môi trường bot
- Một số hàm JS (ví dụ
window.history.pushState) có thể bị gọi quá mức để tạo trạng thái IPC flood và phục vụ việc phát hiện
Phát hiện proxy: nâng cao dựa trên JS
- Latency (đo độ trễ): so sánh chênh lệch giữa tổng độ trễ đo qua WebSocket và độ trễ TCP để kiểm tra sự hiện diện của proxy
- WebRTC Leak: dùng WebRTC của trình duyệt để lấy IP thực của client, rồi so với IP của yêu cầu HTTP; nếu không khớp thì nghi ngờ proxy/bot
- DNS Leak: JavaScript gửi yêu cầu đến một subdomain ngẫu nhiên → dùng vị trí/IP của DNS server để phát hiện mẫu bất thường (như không khớp quốc gia)
- Timezones: so sánh múi giờ của trình duyệt với vị trí IP để phát hiện việc dùng proxy hoặc ngụy trang
Captcha và xác thực
- Captcha là một cơ chế xác thực riêng nhằm phát hiện/chặn bot, được cấu thành từ các bài toán con người có thể giải như nhận dạng chữ, nhấp chuột...
- Gần đây xuất hiện captcha dựa trên Proof-of-Work (buộc thực hiện tác vụ tính toán) và captcha dựa trên hành vi (kết hợp nhấp chuột đơn giản và phân tích hành vi)
- Phần lớn bot vượt captcha bằng cách sử dụng dịch vụ solver captcha bên ngoài giá rẻ
Phân tích hành vi đơn giản/nâng cao
- Phân tích hành vi xem xét những đặc trưng phi hiệu quả và đa dạng vốn có trong hành vi con người như chuyển động chuột, mẫu gõ phím, vị trí/tốc độ nhấp chuột
- Ví dụ: chuyển động chuột theo đường cong, độ trễ khi nhấp, khoảng thời gian giữa các lần gõ phím, sự kiện orientation/motion trên thiết bị di động
- Bot dễ bị lộ qua các dấu hiệu như di chuyển theo đường thẳng, gõ đều/nhanh, tốc độ phản hồi phi thực tế
- Phân tích hành vi nâng cao thu thập và học từ lượng lớn dữ liệu hành vi của người và bot để dùng AI/machine learning nhận diện cả những mẫu cực nhỏ
- Ví dụ: phân loại dựa trên dữ liệu tổng hợp như quỹ đạo di chuyển chuột, chênh lệch thời gian rất nhỏ giữa các lần gõ phím, mẫu điều hướng trang
Kết luận và hàm ý
- Bot web và công nghệ phát hiện bot là cuộc đối đầu của sự tiến hóa và đối phó không ngừng, nơi nhiều kỹ thuật như dấu vân tay tĩnh, phân tích hành vi và phát hiện dựa trên AI được phối hợp sử dụng
- Bất chấp nhiều kỹ thuật né tránh và ngụy trang, các nhà vận hành dịch vụ vẫn đối phó bằng hệ thống phát hiện đa tầng, phân tích hành vi thời gian thực và mô hình AI, đồng thời cần liên tục nâng cấp
- Các nhà phát triển bot có giới hạn trong việc xây dựng một môi trường ngụy trang hoàn hảo, vì vậy việc hiểu các xu hướng phát hiện mới nhất và cách ứng phó là điều thiết yếu
Chưa có bình luận nào.