Những cuộc “chạy đua vũ trang” ngầm khá hay ho trong giới công nghệ

Cách đây vài hôm, có thằng bạn nhờ mình coi hộ nó cái web, chỉ có cách chống DDOS, cách hạn chế web bị crawl, bị spam v…v

Sau 1 hồi nghiên cứu, tìm hiểu cách DDOS và chống DDOS, cách crawl và chống crawl, mình bỗng nhận ra: trong giới công nghệ, có nhiều cuộc “chạy đua vũ trang” ngầm, kéo dài cả thập kỉ, rất hay ho mà nhưng lại ít ai biết. 

Do vậy, mình viết bài này để chia sẻ cho các bạn biết nhé!

Ad-block vs Chống Ad-block

Hầu như 69.96% các trang tin tức đều có gắn quảng cáo, tracking để … kiếm thêm tiền (kể cả blog này cũng vậy). Đây là nguồn doanh thu chính của các trang này.

Thế nhưng, từ phía góc nhìn người dùng,  không ai muốn xem web mà bị quảng cáo, không ai muốn mình bị Google, Facebook theo dõi, biết mình đã ghé thăm trang ABC bậy bạ…

Thế là các chương trình ad-block ra đời. Cơ chế hoạt động của chúng khá đơn giản:

  • Chặn các URL có chứa ad, tracking của Facebook, Google (Chặn từ browser hoặc file host/DNS)
  • Can thiệp vào HTML của trang web, ẩn đi các banner, ad quảng cáo
Trời đã sinh ra ad, sao còn sinh ad-block

Tất nhiên, không có quảng cáo thì sẽ không có thu nhập. Các trang phải tìm cách … chống ad-block. Hiện nay, họ làm theo 1-2 cách sau:

  • Sử dụng các chương trình chống ad-block (cloudflare.com/apps/adblock-blocker) nếu script quảng cáo bị chặn, thì sẽ … hiển thị popup to đùng đề nghị các bạn disable ad-block
  • Hiển thị ad 1 cách “lượn lẹo”, tránh bị ad-block phát hiện.
Facebook hiển thị ad 1 cách “lượn lẹo”. Không để chữ “sponsor” để tránh bị ad-block chặn

Tất nhiên, vỏ quýt dày có móng tay nhọn. Giờ giang hồ cũng đang phát triển 1 số addon chống anti-ad-block, giúp ngăn chặn trang web phát hiện người dùng đang dùng ad-block. Mệt mỏi ghê chưa!

Capcha vs Bot

Một cuộc chạy đua vũ trang khác không kém phần sôi động là cuộc chạy đua giữa Capcha và Bot.

Với những trang web có tính năng cho phép người dùng đăng, post bài, mấy anh dev có thể dễ dàng viết bot hoặc automation để làm trò y hệt như người vậy.

Làm sao để ngăn chặn bot? Cách đơn giản nhất là kiểm tra xem người đăng bài là người hay bot! Ngày xưa, với ReCaptcha v1, ta hiển thị 1 dòng chữ, bắt con người đọc và gõ vào. Nếu là bot thì bot sẽ … bó tay, không đọc được.

Dần đà, bot trở nên khôn hơn. Với công nghệ OCR, việc nhận dạng chữ viết không còn quá khó khăn nữa. Thế là, mấy bạn làm Captcha bắt đầu phát triển ReCaptcha v2, bắt mấy con bot nhận diện nhà cửa, xe cộ.

Có những mẩu capcha mà con người còn toát mồ hôi hột, nói chi bot

Đấy, mỗi lần các bạn phải gõ captcha mệt phở, thì hãy chửi mấy ông dev viết ra bot, để dân tình phải dùng captcha chặn nha!

Có một số trang như Facebook thì họ cao tay hơn, có rate limit, nếu người dùng có hành động lạ (unfriend, gửi kết bạn quá nhiều) sẽ chặn lại bớt, lúc đó bot hoặc người cũng bó tay (tất nhiên dân mạng VN cao tay hơn, FB chặn gì cũng qua được hết).

Scraper/Crawler và Anti Crawler

Một số trang web như tin tức, thông tin chứng khoán, dữ liệu công, … có rất nhiều dữ liệu, nhưng lại không cung cấp API cho người dùng. Hoặc 1 số trang TMDT như Tiki, Shopee, Thegioididong, có thông tin giá sản phẩm, nhưng không có API để truy cập.

Tức mình, mấy ông dev (lại mấy ông dev) lại ra tay viết mấy con bot/crawler để tải dữ liệu từ mấy trang đấy đem về hệ thống của mình.

Không có API thì mình tự cào, làm gì căng??

 

Có nhiều trang thì họ cho cào thoải mái, nhưng có nhiều trang thì họ lại … cực ghét vụ này:

  • Cào nhiều sẽ tốn tài nguyên, làm chậm hệ thống bên họ (Có nhiều bác … cào sập cbn server nhà người ta)
  • Các thông tin này mặc dù công khai, nhưng không được phép đi chia sẻ lung tung khi chưa cho phép
  • Cố ý không cho người ngoài xem và lưu các thông tin này (VD các trang TMDT họ không lưu, không hiện lịch sử giá, vì có thể ảnh hưởng đến sale)

Thế là họ tung ra những “chiêu” sau:

  • Sử dụng rate limit, chặn hoặc throttle khi thấy có quá nhiều request tới từ cùng 1 IP
  • Load dữ liệu từ JSON, AJAX, nếu cào HTML sẽ không thấy gì cả
  • Hiển thị capcha nếu thấy đối tượng tình nghi (các bạn xài adblock lâu lâu lướt lazada, shopee sẽ thấy captcha nhé)
  • Một số trang truyện ở VN chơi trò … chuyển chữ thành ảnh, thêm watermark, mã hoá file ảnh … để tránh chuyện bị chôm mất

Tiếc thay, đạo cao 1 tấc, ma cao 1 trượng. Giang hồ có rất nhiều cách để vượt qua những chiêu này:

  • Dùng 3G, 4G hoặc proxy để đổi và xoay vòng IP, tránh bị block
  • Không cào được HTML thì chạy luôn cả cái browser (Selenium, Puppeteer) để hiển thị dữ liệu. (Nhiều trang họ detect nếu là HeadlessChrome v…v thì họ cũng… chặn cmnl)

Cuộc chiến tới bây giờ vẫn… chưa có hồi kết =)). Các bạn có thể tìm hiểu thêm nhiều trò hay ho ở đây: https://www.codementor.io/blog/python-web-scraping-63l2v9sf2q

Chống HTML thì mình dùng Pupeteer/Headless Browser, làm gì căng

DDoS và chống DDoS

DDoS (Distributed Denial-of-Service) – Tấn công từ chối dịch vụ là hình thức tấn công bằng cách gửi rất nhiều request tới 1 server nào đó. Mục đính là làm hết băng thông, hết tài nguyên, để service này không tiếp tục hoạt động được.

Ví dụ đơn giản, gần nhà bạn có tiệm trà sữa. Kẻ DDOS sẽ thả vài trăm thằng giang hồ vào xếp hàng, mua trà sữa xong đổ bỏ. Người qua đường muốn uống cũng không thể vào mua trà sữa được nữa.

Trò này dân tình dùng rất nhiều, có nhiều hacker còn có cả botnet (một hệ thống vài trăm, vài ngàn bot), khi cần nguyên botnet này sẽ đồng loại tấn công vào 1 trang web , gây nghẽn cmn mạng.

Một hệ thống botnet có vài trăm/vài ngàn máy, dễ dàng tấn công làm sập 1 trang web

 

Có khá nhiều cách chống DDOS:

  • Chống, chặn các request lại từ tầng Firewall
  • Nhiều forum ngày xưa hiển thị 1 tấm hình, phải click thì mới vào được, chống được 1 phần DDOS
  • Sử dụng các service chống DDOS như Cloudflare để họ lo hết
  • Tất nhiên, các biện pháp này chỉ mang tính tương đối. Bản thân Cloudflare cũng từng bị DDOS với lưu lượng gần 400 Gbps (50GB/s).

Thật ra, chuyện DDOS và chống DDOS là 1 chủ đề rất dài và hay ho, nói cả quyển sách may ra mới hết. Trong phần này mình chỉ tóm gọn cho anh em biết sơ thôi nhé.

Tạm kết

Các bạn thấy không, những cuộc “chạy đưa vũ trang” này diễn ra lặng lẽ trong cả thập kỉ nhưng chúng ta vẫn không hề hay biết. Đến khi tìm hiểu, ta mới thấy mấy ông dev đã bỏ công sức ra nghiên cứu, chạy đua như thế nào.

Còn bạn thì sao, bạn có biết cuộc chạy đua vũ trang nào hay ho trong giới công nghệ nữa không? Nhớ comment chia sẻ cho người khác biết nhé.

4 thoughts on “Những cuộc “chạy đua vũ trang” ngầm khá hay ho trong giới công nghệ”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s