Cách nhận diện Bot xấu

Tác giả ChatGPT, T.Chín 27, 2024, 10:48:31 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Là một quản trị viên trang web, có một điều bạn cần lưu ý: bot. Bot chiếm hơn một nửa lưu lượng truy cập web và hơn 40% lưu lượng truy cập internet.

Với khối lượng truy cập đằng sau các bot này, chúng ta phải biết mọi thứ có liên quan về chúng. Trong bài viết này, chúng ta sẽ thảo luận về chúng là gì, cách phân biệt giữa bot tốt và xấu, cách chúng có thể có lợi hoặc gây hại cho trang web của chúng ta và cách ngăn chặn bot thu thập dữ liệu trang web của chúng ta.


1. Bot là gì và tại sao chúng có thể gây ra vấn đề cho các trang web?

Nói một cách đơn giản, bot là các ứng dụng phần mềm được cấu hình để tự động chạy các tác vụ thường lặp lại (bao gồm cả việc sao chép hành vi của con người). Với sự tích hợp ngày càng tăng của internet vào cuộc sống hàng ngày của chúng ta, bot đã trở thành một phần không thể thiếu của cấu trúc trực tuyến. Bot lập chỉ mục các trang web, do đó, các công cụ tìm kiếm có thể dễ dàng dẫn người dùng đến nội dung có liên quan nhất với một từ khóa cụ thể. Chúng cũng đã được chứng minh là hữu ích trong việc theo dõi thông tin mới, ví dụ, liên tục kiểm tra tình trạng phòng mới của khách sạn để cập nhật cho những khách có thể đến.

Bot có thể là một công cụ tuyệt vời, nhưng chúng cũng có thể trở thành vũ khí nguy hiểm có thể gây hại cho trang web của chúng ta tùy thuộc vào cách chúng ta sử dụng chúng. Vì lý do đó, chúng tôi phân loại chúng thành hai loại độc lập với các tác vụ được lập trình của chúng: "Bot tốt" và "Bot xấu".

2. Các loại Bot

Như đã đề cập trước đó, chúng ta sẽ chia bot thành "Tốt" hoặc "Xấu". Tuy nhiên, dựa trên chức năng của chúng, chúng ta có thể chia chúng thành các loại nhỏ hơn.

2.1. Bot tốt

Khi nhắc đến "Good Bots", chúng ta đang thảo luận về các bot thực hiện các nhiệm vụ có thể mang lại lợi ích cho cả người dùng và chủ sở hữu trang web và làm cho internet hiệu quả hơn, an toàn hơn và thân thiện hơn khi sử dụng. Một số loại bot phổ biến nhất được phân loại dưới đây:

  • Spider Bots (trình thu thập thông tin):  Đây là các bot kiểm tra nội dung trên các trang web trên Internet, lập chỉ mục và cung cấp phản hồi chính xác hơn khi sử dụng công cụ tìm kiếm.
  • Chatbot:  Bot mô phỏng người điều hành thực tế, hỗ trợ người dùng thực hiện các nhiệm vụ đơn giản hoặc giải đáp thắc mắc chung.
  • Bot giám sát:  Một loại bot cụ thể có mục tiêu là giám sát các trang web để tìm kiếm hành vi bất thường hoặc đo lường tính khả dụng.
  • Máy quét web: Tương tự như bot giám sát, chúng quét một trang web để tìm kiếm các mẫu lạ. Tuy nhiên, máy quét web tập trung vào bảo mật và có thể giúp phát hiện xem trang web có bị xâm phạm hay bị nhiễm phần mềm độc hại hay không.

2.2. Bot xấu

"Bad Bot" là những bot được lập trình với mục đích xấu. Chúng có thể tương tác với các trang web, ứng dụng và dịch vụ giống như con người, nhưng thay vào đó là sử dụng sai mục đích và lạm dụng tài nguyên.  Hơn một nửa số bot xấu được nhắm mục tiêu  có mức độ tinh vi cao, khiến chúng thậm chí còn khó phát hiện và ngăn chặn hơn.

  • Spam Bot:  Bot được cấu hình để gửi thư rác, thường là sau khi khai thác các tài khoản email hợp lệ. Các hình thức spam khác là đánh giá giả mạo, bình luận chỉ ra một vụ lừa đảo, v.v.
  • Scraper:  Scraping nội dung là hành vi tìm kiếm và đánh cắp nội dung, thường là với mục đích xấu. Một bot có thể tải xuống tất cả dữ liệu từ một trang web; dữ liệu này có thể được sử dụng để sao chép một trang web có phiên bản tương tự nhưng gian lận, cùng với các hành vi có hại khác. Một cách sử dụng phổ biến khác của các bot này là từ chối hàng tồn kho. Các bot đặt hàng một mặt hàng cụ thể để khiến người dùng hợp pháp không thể sử dụng, do đó làm giảm doanh số tiềm năng.
  • Bot mạng xã hội:  Bot mô phỏng hành vi xã hội của con người, đăng bình luận (thường là thông tin sai lệch), đề nghị "kiếm tiền miễn phí" hoặc truyền bá một số quan điểm chính trị nhất định, cùng với nhiều mục đích khác.
  • Các hoạt động bot độc hại khác:  Một số hoạt động xấu dựa trên việc sử dụng bot, chẳng hạn như tấn công DDoS, nhồi thông tin đăng nhập, gian lận nhấp chuột, trộm thẻ tín dụng, v.v.

3. Quản lý Bot

Khi xem xét một số ví dụ về bot xấu ở trên, chúng ta thấy rõ rằng chúng ta cần thiết lập chính sách quản lý bot để kiểm soát chúng càng nhiều càng tốt và tận dụng những bot tốt, vì ngay cả những bot này cũng có thể gây ra rắc rối trong một số trường hợp.

Điều này đặc biệt liên quan đến các trang web vừa và nhỏ, những mục tiêu dễ bị tấn công nhất. Một tỷ lệ đáng kể trong số chúng đang sử dụng hệ thống quản lý nội dung, chẳng hạn như  WordPress. Chúng ta có thể biến các trang web thành mục tiêu khó khăn hơn cho các bot xấu và giám sát các bot tốt. Chúng ta sẽ tập trung vào ba tùy chọn chính: Bảo vệ thư mục (robots.txt), Bảo vệ máy chủ web và Giải pháp bên ngoài.

3.1. Bảo vệ thư mục: robots.txt

Một kỹ thuật chính để bảo vệ/điều chỉnh hoạt động của bot là thông qua tệp robots.txt. Đây là một tệp văn bản thuần túy đặc biệt (thường được đặt ở gốc của trang web) để kiểm soát việc thu thập dữ liệu của bot. Cú pháp tương đối đơn giản; chúng tôi sử dụng từ đặc biệt "User-agent" để chỉ định tác nhân mà quy tắc sẽ áp dụng và các chỉ thị "Allow", "Disallow" hoặc "Crawl-delay" để thiết lập hành vi cho các tác nhân đó. Mặc dù có những chỉ thị khác, nhưng đây là những chỉ thị phổ biến nhất. Hãy cùng xem một ví dụ:

Mã nguồn [Chọn]
User-agent: *
Crawl-delay: 5
Allow: /

Trong trường hợp này, ký hiệu "*" biểu thị tất cả các tác nhân và "/" phản ánh thư mục gốc của trang web, do đó tất cả các bot được phép thu thập toàn bộ trang web, với tốc độ 5 giây cho mỗi yêu cầu, bằng cách sử dụng chỉ thị Crawl-delay (chỉ thị này có thể được diễn giải khác nhau tùy thuộc vào tác nhân). Hãy cùng xem xét một trường hợp sử dụng khác. Giả sử chúng ta muốn loại trừ hai bot khỏi việc truy cập vào thư mục wp-admin. Chúng ta có thể thực hiện bằng cú pháp này:

Mã nguồn [Chọn]
User-agent: Some-Bot
User-agent: Useless-Bot
Disallow: /wp-admin/

Sự khác biệt so với ví dụ trước là chúng tôi sử dụng lệnh "Disallow" để loại trừ thư mục đó (/wp-admin/) sau khi liệt kê các tác nhân người dùng không mong muốn.

Tệp robots.txt rất tiện lợi, nhưng nó có những hạn chế. Tệp này chỉ là một biểu hiện của hành vi mong muốn. Tuy nhiên, các bot độc hại có thể bỏ qua hoặc không quan tâm đến các quy tắc này hoàn toàn. Một số tác nhân cũng có thể có cách diễn giải cú pháp khác nhau. Do đó, các quy tắc áp đặt có thể không hiệu quả đối với một số bot.

3.2. Bảo vệ máy chủ web

Sử dụng cấu hình máy chủ web tùy chỉnh có thể giúp chặn phần lớn các bot không tinh vi. Chúng tôi có một số quy tắc và tính năng để phát hiện và hạn chế hoạt động của bot, ví dụ,  tường lửa ModSecurity được sử dụng rộng rãi. Các tùy chọn khác để ngăn bot thu thập dữ liệu trang web của bạn là các quy tắc "Kiểm soát truy cập". Với các quy tắc này, chúng ta có thể chặn các yêu cầu từ một IP hoặc tên máy chủ cụ thể và không chỉ vậy, chúng ta thậm chí có thể chặn bằng các biến tùy ý hơn, chẳng hạn như "Tác nhân người dùng". Nếu chúng ta muốn chặn bot sử dụng IP "91.55.25.255" và bot MSN, chúng ta có thể thêm các quy tắc này vào tệp cấu hình (các quy tắc đang sử dụng cú pháp của Apache):

Mã nguồn [Chọn]
Require not ip 91.55.25.255
Require not host search.msn.co

Ở một lưu ý khác, để chặn các yêu cầu của User-agent (trong trường hợp này chúng ta đang chặn "Useless-Bot"), quy tắc phải là:

Mã nguồn [Chọn]
<If "%{HTTP_USER_AGENT} == 'Useless-Bot'">
Require all denied
</If>

Các quy tắc trên có hiệu quả hơn đáng kể khi chúng ta tạo "Danh sách cho phép" hoặc "Danh sách chặn" với tất cả các tác nhân người dùng và địa chỉ IP (hoặc kết hợp cả hai) mà chúng ta muốn cho phép hoặc chặn.

Chúng ta cũng có thể sử dụng các mô-đun đặc biệt, chẳng hạn như  Mod_Evasive, để giới hạn tốc độ yêu cầu từ các IP hoặc máy chủ cụ thể nếu chúng bỏ qua bất kỳ tốc độ nào được đặt bằng chỉ thị Crawl-delay trong tệp robots.txt.

3.3. Giải pháp bên ngoài

Một số  nhà cung cấp dịch vụ  đã hạn chế các bot có vấn đề; tuy nhiên, ngày càng khó phát hiện và chặn các bot phát triển cao, vì chúng có thể bắt chước hành vi của con người gần như hoàn hảo. Trong những điều kiện như vậy, các tùy chọn được mô tả ở trên có thể trở nên kém hiệu quả và cần phải tăng cường.

Việc thêm các bài kiểm tra CAPTCHA có thể làm giảm đáng kể hiệu quả của các bot độc hại và giúp ngăn chặn các bot không mong muốn thu thập dữ liệu trang web. Một cách tiếp cận tiên tiến hơn là sử dụng giải pháp quản lý bot. Các giải pháp đặc biệt này sẽ có thể xác định các bot xấu bằng một số kỹ thuật, bao gồm phân tích hành vi, hạn chế dựa trên thử thách, v.v.

3.4. Chặn tất cả các bot?

Chúng ta có thể muốn chặn hoàn toàn mọi hoạt động của bot; tuy nhiên, chúng ta cần phải cẩn thận vì điều đó có thể gây hại cho điểm SEO và làm giảm lượng truy cập cũng như khả năng tiếp cận người dùng.

Vì vậy, thay vì chặn tất cả, cách hiệu quả nhất để quản lý bot là sử dụng kết hợp các phương pháp được mô tả ở trên và cho phép các bot tốt thu thập thông tin và lập chỉ mục các trang web của chúng ta để có khả năng hiển thị tối ưu.

3.5. Referrers

Một số quan niệm sai lầm về "Referrers" có thể chỉ ra rằng bạn có thể lọc bot tốt khỏi bot xấu dựa trên tác nhân người dùng và người giới thiệu mà họ đặt. Tuy nhiên, bot không có nghĩa vụ phải tuân thủ các thông lệ hoặc tiêu chuẩn tốt nhất; và họ có thể đặt bất kỳ tùy chọn nào mà người quản lý bot thấy phù hợp.

Trên thực tế, một cách làm phổ biến của các bot xấu là ngụy trang bằng cách sử dụng các tác nhân người dùng và người giới thiệu hợp lệ. Đây là lý do tại sao sử dụng nhiều phương pháp kết hợp lại tốt hơn nhiều so với sử dụng một tiêu chí lọc duy nhất.

Nếu bạn cần thêm trợ giúp về chủ đề này hoặc bất kỳ vấn đề liên quan nào khác, hãy vui lòng để lại bình luận bên dưới.