Anubis ใช้งานได้จริง
(xeiaso.net)- Anubis ถูกนำไปใช้งานบน policytoolbox.iiep.unesco.org ของ UNESCO ทำให้ได้รับความสนใจมากขึ้นในฐานะตัวอย่างเครื่องมือรับมือบอตที่องค์กรขนาดใหญ่ใช้งาน
- หลังตรวจสอบแล้วว่า
unesco.orgเป็นโดเมนทางการของ UNESCO การนำไปใช้งานครั้งนี้จึงถูกมองว่าเป็นกรณีใช้งานจริงของ องค์กรที่เกี่ยวข้องกับ United Nations - การใช้งานกำลังขยายวงกว้างขึ้นร่วมกับปลายทางที่ทราบอยู่แล้ว เช่น Linux Kernel Mailing List archives, FreeBSD SVN, SourceHut, FFmpeg, Wine และ GNOME GitLab
- สถานการณ์ที่องค์กรเหล่านี้นำ Anubis มาใช้ แสดงให้เห็นว่าปัญหา ทราฟฟิกบอต บนอินเทอร์เน็ตอาจรุนแรงกว่าที่คาดไว้
- Anubis และสแตกที่เกี่ยวข้องยังต้องการเวลาเพิ่มขึ้น และหากมีผู้สนับสนุนเพียงพอ ก็อาจทำงานพัฒนาเต็มเวลาและไปถึงขั้น จ้างงาน ได้
ยืนยันการนำไปใช้งานที่ UNESCO
- Anubis ถูกนำไปใช้งานบน policytoolbox.iiep.unesco.org ของ UNESCO ซึ่งอยู่ภายใต้ United Nations
unesco.orgถูกระบุใน Wikipedia ว่าเป็นโดเมนทางการของ United Nations Educational, Scientific and Cultural Organization- ต้องการติดต่อทีมผู้ดูแลระบบของ UNESCO เพื่อตรวจสอบว่ามีปัญหาใดระหว่างการติดตั้งหรือไม่ และทำให้ กระบวนการติดตั้งง่ายขึ้น
กรณีการนำไปใช้งานที่ทราบ และงานในอนาคต
- กรณี การนำไปใช้งานขนาดใหญ่ ที่ยืนยันแล้วมีดังนี้
- Linux Kernel Mailing List archives
- SVN ของ FreeBSD และเร็ว ๆ นี้คือ git
- SourceHut
- FFmpeg
- Wine
- UNESCO
- The Science Olympiad Student Center
- Enlightenment desktop environment
- GitLab ของ GNOME
- หากองค์กรขนาดนี้กำลังใช้ Anubis อยู่ ปัญหาทราฟฟิกบอตอาจอยู่ในระดับที่ รุนแรงกว่าที่เคยคาดไว้มาก
- เช่นเดียวกับกรณีที่ YouTube ครั้งหนึ่งเคยเข้าใกล้ “the inversion” ซึ่งทราฟฟิกจากบอตมีมากกว่าทราฟฟิกจากมนุษย์ คำถามที่ยังเหลืออยู่คือปรากฏการณ์คล้ายกันนี้แพร่กระจายไปทั่วอินเทอร์เน็ตในวงกว้างเพียงใด
- จำเป็นต้องทุ่มเวลาให้กับ Anubis และสแตกที่เกี่ยวข้องอย่างจริงจัง และหากสามารถหาผู้สนับสนุนได้เพียงพอ ก็จะสามารถทำงานนี้เต็มเวลาและถึงขั้น จ้างงาน ได้
- หาก Anubis มีประโยชน์ ขอให้สนับสนุนผ่าน Patreon
1 ความคิดเห็น
ความเห็นจาก Hacker News
บทความที่เกี่ยวข้อง: Anubis: พร็อกซี proof-of-work เพื่อกัน AI crawler (100 points, 23 days ago, 58 comments) https://news.ycombinator.com/item?id=43427679
น่าสนุกดีที่ Xe เอาสิ่งที่เมื่อก่อนแทบจะเป็นมุก/โพสต์ไร้สาระ มาทำให้กลายเป็นผลิตภัณฑ์ที่มีประโยชน์จริงได้ เคยบอกเสมอว่า จังหวะเวลาคือทุกอย่าง
ก็น่าแปลกใจอยู่ที่มีไซต์จำนวนมากขนาดนี้ต้องการหรือจำเป็นต้องใช้มัน เข้าใจปัญหาหน้า Git ที่ช้าของ Git server บางตัวที่ลึกมาก ไม่มีแคช และให้บริการจากดิสก์ช้า ๆ
UNESCO นี่ค่อนข้างเหนือความคาดหมาย ไซต์ย่อยนั้นมีเอกสารหลายพันฉบับและค่อนข้างใหญ่ แต่เป็นคอนเทนต์แบบ static ก็น่าจะให้บริการได้ง่าย พอลองดูพบว่าเป็น WordPress ที่ deploy แบบหละหลวม บน Apache ไม่มีแคช ไม่มีการบีบอัดคอนเทนต์ และไม่มี HTTP/2·HTTP/3
น่าจะแก้ให้ให้บริการได้ถูกมากแม้บนเครื่องเล็ก ๆ ได้ไม่ยาก แต่แน่นอนว่าต้องใช้ความเชี่ยวชาญ และความเชี่ยวชาญก็ยังไม่ถูก
อาจจะถาม LLM ก็ได้ แต่ถ้ายังไม่รู้ด้วยซ้ำว่าควรถามอะไร มันก็ยังช่วยได้ไม่มาก ถ้าไม่รู้ด้วยซ้ำว่าไซต์ช้าตั้งแต่แรก แล้วจะไปถามทำไม คงแค่ได้ยินว่าโดนทราฟฟิกถล่ม แล้วก็ไปหา furry defender มาใช้แทน
ไม่ได้หมายความว่ามันยากนะ แต่หมายถึงตั้งแต่คนที่รู้ว่ามันมีอยู่ก็มีน้อยแล้ว
ถ้าให้เดา เหตุผลที่ไม่แตะ WordPress อาจไม่ใช่ปัญหาทางเทคนิค แต่อาจเป็นเพราะไม่อยากยุ่งกับ instance ที่เปราะบาง ปัญหาเรื่องสิทธิ์ในองค์กร หรือผู้ดูแลคิดไปแล้วว่า WP ตั้งค่าไว้ดีอยู่แล้ว
อันนี้ไม่มีทางแคชได้ และพวกบอตก็ไม่เคารพไฟล์ robots เลย ขอ URL ไปเรื่อย ๆ แล้วดึงบทความซ้ำ ๆ ด้วยตัวเลขและชุดผสมต่าง ๆ เป็นปัญหาปวดหัวจริง ๆ
วิธีแก้ที่เห็นจนถึงตอนนี้มีแค่ Cloudflare, บังคับล็อกอิน, Anubis หรือไม่ก็อินฟราสเกลมหาศาลแบบไร้เหตุผล
บางไซต์บอกว่า 60% ของทราฟฟิกมาจากบอต และไซต์ที่เล็กกว่าน่าจะมีสัดส่วนสูงกว่านั้นมาก
ยังจำโปรเจกต์ที่พยายามทำให้ proof-of-work กลายเป็นการคำนวณที่มีประโยชน์ได้ด้วย
ถ้าสับสนว่านี่คืออะไร มันคือสิ่งที่ทำมาเพื่อ กัน AI scraping
“Anubis ใช้โจทย์ proof-of-work เพื่อรับประกันว่าไคลเอนต์กำลังใช้เบราว์เซอร์สมัยใหม่และสามารถคำนวณ checksum แบบ SHA-256 ได้”
https://anubis.techaro.lol/docs/design/how-anubis-works
ค่อนข้างเจ๋ง และอาจช่วยโปรเจกต์ของผมสักหนึ่งหรือสองโปรเจกต์ได้
การให้โพสต์คอนเทนต์หรือสั่งรันงาน แน่นอนว่าอาจเป็นปัญหาได้ในหลายสถานการณ์
แต่ในการให้บริการคอนเทนต์อย่างเดียว ปกติแล้วการเป็นมนุษย์หรือบอตไม่ใช่เกณฑ์ที่อยากใช้กรองหรือบล็อก ถ้าไคลเอนต์รายหนึ่งไม่ได้ abuse ระบบ แล้วทำไมต้องสนด้วยว่าไคลเอนต์นั้นเป็นมนุษย์ไหม
“นอกจากนี้ยังใช้เวลาเป็น input ด้วย เพราะด้วยคุณสมบัติของเส้นเวลาเชิงเส้น ทั้งเซิร์ฟเวอร์และผู้ร้องขอต่างก็รู้ว่าเวลาคืออะไร”
เป็น ประโยคตลก ๆ ในเอกสาร
ด้วยเหตุผลหลายอย่าง ความคลาดเคลื่อนของการซิงก์นาฬิกา เป็นเรื่องพบได้ทั่วไป คาดหวังไม่ได้ว่าผู้ใช้กลุ่มล่าง 10% จะตรงแม้แต่ระดับวัน และแม้แต่กลุ่มล่าง 25% ก็อาจคลาดเคลื่อนไปได้สัก 5 นาที
ภาพหน้า intermediate ที่แสดงระหว่างรอการตรวจของ Anubis เสร็จน่ารักมาก ๆ ผมรู้สึกมาตลอดว่าภาพวาดและตัวละครในบล็อกของ Xe สวย
นอกเรื่องนิดหนึ่ง ผมสงสัยด้วยว่าสิ่งนี้จะส่งผลต่อ search engine ทั่วไปอย่างไร และต่างจากโซลูชันของ Cloudflare ที่กัน AI crawler อย่างไร ซึ่งมีอธิบายไว้ในหน้า GitHub [1]
“ถ้าคุณติดตั้งและใช้สิ่งนี้ มีความเป็นไปได้สูงที่บาง search engine จะไม่ index เว็บไซต์ของคุณ นี่ไม่ถือเป็นบั๊กของ Anubis แต่ถือเป็นฟีเจอร์”
“นี่เป็นการตอบโต้ที่ค่อนข้างเหมือนใช้ระเบิดนิวเคลียร์ แต่บอต AI scraper scrape หนักเกินไปจนไม่มีทางเลือก”
“ในกรณีส่วนใหญ่ คุณไม่จำเป็นต้องใช้สิ่งนี้ และการปกป้อง origin server บางตัวด้วย Cloudflare ก็น่าจะเพียงพอ อย่างไรก็ตาม ในสถานการณ์ที่ใช้ Cloudflare ไม่ได้หรือไม่อยากใช้ ก็มี Anubis อยู่”
[1]: https://github.com/TecharoHQ/anubis/
แต่บริการอย่าง Google บางทีก็ใช้ IP เดียวกันสำหรับ AI และการ index ของ search
ถึงอย่างนั้นก็กำลังปรับปรุง เช่น ให้แท็ก Open Graph ผ่านได้ เพื่ออย่างน้อยให้ rich preview ทำงานได้
ผมอ่านเกี่ยวกับ Anubis มาแล้ว เป็นโปรเจกต์ที่เจ๋งดี น่าเสียดายที่อย่างที่มีคนพูดในคอมเมนต์ ผู้เยี่ยมชมไซต์ต้อง เปิดใช้งาน JavaScript™
ถ้าเป็นไซต์ที่ยังไงก็ต้องใช้ JavaScript™ เพื่อปรับปรุงประสบการณ์ผู้ใช้ ก็ไม่เป็นไรเลย แต่สำหรับพวกไซต์สแตติกที่ไม่จำเป็นต้องใช้ JS เลย แบบนั้นไม่ค่อยเหมาะ
ผมทำโซลูชันของตัวเองที่บล็อก “บอตไม่ดี” พวกนี้ได้อย่างมีประสิทธิภาพในระดับเครือข่าย โดยใช้ฐานข้อมูล MaxMind กับ WAF และรีเวิร์สพร็อกซีที่ทำเอง เพื่อบล็อกทั้งเครือข่ายขนาดใหญ่หลายแห่งของ “Big Tech / Big LLM” ในระดับ ASN(BGP)
แน่นอนว่ามีทั้งการเล่นตุกติกกับ ASN และการหลอกเรื่องชื่อเสียงไปพร้อมกันด้วย แต่รับมือได้ยากมาก จากการไล่ดูล็อกแบบคร่าว ๆ บอตพวกนี้มักส่งคำขอจาก IP บ้านเฉพาะบางตัวเพียงครั้งเดียว และช่วงเหล่านั้นก็น่าจะเป็นช่วงที่ผู้ใช้มนุษย์จริง ๆ ใช้ด้วย
พูดง่าย ๆ คือมีความเสี่ยงที่จะบล็อกทราฟฟิกปกติ โซลูชันนี้ก็มีความเสี่ยงเหมือนกัน แต่สำหรับมนุษย์ส่วนใหญ่ ความเสี่ยงจริง ๆ ต่ำกว่ามาก
คงจะดีถ้าไม่ต้องใช้ JavaScript และรองรับผู้ใช้ที่ปิดมันได้ด้วย แต่ไม่เคยมีลูกค้าหรือผู้ใช้ปลายทางคนไหนบ่นเรื่องที่ต้องเปิด JavaScript เลย
คนที่คัดค้านข้อกำหนดเรื่อง JavaScript เป็นคนส่วนน้อยที่เสียงดัง และในจำนวนนั้นส่วนใหญ่เมื่อเจอไซต์ที่ต้องใช้ JavaScript ก็แค่เปิดมันอยู่ดี แม้ตอนนั้น ผมคิดว่ามีเพียงน้อยมากที่จะถอนหายใจอย่างพ่ายแพ้
ชอบไอเดียนะ แต่เมื่อธรรมชาติของโจทย์ชัดเจนขึ้นแล้ว น่าจะต้องลงไปถึง ระดับโปรโตคอล
ในแง่การเข้าถึงได้ สุดท้ายแล้วงาน proof-of-work ควรกลายเป็นส่วนหนึ่งที่ใกล้กับ TCP มากกว่าให้แต่ละเว็บไซต์ไป implement แยกกันด้วย JavaScript
[0] https://datatracker.ietf.org/wg/privacypass/about/
ทางแก้ที่ “ดีพอ” คือ SHA(seed, nonce) ที่ใช้กันแพร่หลายอยู่แล้ว ถ้าบริษัทเทคโนโลยียักษ์ใหญ่ต้องการ เรื่องนี้ก็น่าจะผนวกเข้าไปในเลเยอร์ที่ต่ำกว่าของสแตกได้ง่าย ๆ
บนมือถือของผม การแก้การตรวจจับบอตใช้เวลาถึง 5 วินาที
ส่วนตัวแล้วผมไม่คิดว่าประสบการณ์ผู้ใช้แย่ขนาดนั้น เพราะไม่ต้องทำอะไรเลย ชอบมากกว่า CAPTCHA แน่นอน
ตอนนี้กำลังทำต้นแบบที่เรียกว่า “Enigma Webfont” อยู่ ตั้งใจจะใช้ seed และค่าการหมุนแบบกำหนดเอง ต่อเซสชันผู้ใช้กับเว็บฟอนต์ที่ถูกเสิร์ฟและแคช
เป้าหมายคือทำให้การเว็บสแครปทำได้ไม่คุ้มในทางปฏิบัติ เพราะต้นทุนการคำนวณ OCR ตอนนี้เป็นเกมแมวจับหนู เลยอยากเปลี่ยนสมดุลเกมสักหน่อย
ถ้าไม่มีเซสชันผู้ใช้ ซอร์ส HTML ก็แทบไม่มีความหมาย และถ้าทรัพยากรในแคชหายไปด้วยพฤติกรรมแบบ OTP ก็ทำให้เว็บเพจอ่านไม่ได้เช่นกัน
วิธีนี้ทำให้สร้าง CAPTCHA ได้ในทางปฏิบัติ โดยให้ผู้ใช้ปรับหน้าต่าง seed ในเครื่องจนกว่าจะอ่านคำเฉพาะได้ เช่น “เลื่อนสไลเดอร์จนกว่าจะอ่านคำว่า Foxtrott ได้”
อยากฟังความเห็นของ Xe มาก ๆ เราจะร่วมมือกันได้ไหม?
สแตกเทคโนโลยีคือ Go เพราะเป็นภาษาเดียวที่แก้ไฟล์เว็บฟอนต์โดยตรงได้ง่ายและไม่ติดปัญหา
การทำให้ข้อความพังไม่น่าช่วยอะไร ยังไงมันก็จะยิงเข้ามาเรื่อย ๆ อยู่ดี จากรูปแบบทราฟฟิก คนที่สร้างบอตพวกนี้ก็แค่... <https://www.youtube.com/watch?v=ulIOrQasR18>
สำหรับ “อยากฟังความเห็นของ Xe เราจะร่วมมือกันได้ไหม?” เท่าที่ผมเข้าใจ สิ่งที่น่าจะต้องการความช่วยเหลือคือการทำให้โปรเจกต์นี้ยั่งยืนขึ้นทั้งในอนาคตอันใกล้และไกล มากกว่าการใส่ฟีเจอร์เพิ่ม Anubis ดูเหมือนจะทำงานได้ดีเยี่ยมอยู่แล้ว
แน่นอนว่ามันทำงานได้ดีในการบล็อกผู้ใช้ที่ปิด JavaScript