Cloudflare เว็บแอปพลิเคชันไฟร์วอลล์ (WAF) บล็อกภัยคุกคามทางไซเบอร์มากกว่า 57 พันล้านรายการต่อวัน ซึ่งนั่นหมายถึงการร้องขอ HTTP ที่ถูกบล็อกไปกว่า 650,000 การร้องขอต่อวินาที โค้ดต้นฉบับที่ใช้กรองการรับส่งข้อมูลนี้เขียนโดย CTO ของ Cloudflare ในปัจจุบัน และ WAF นี้ได้รับรางวัลมากมายนับแต่นั้นมา รวมถึงการทำคะแนนในด้านความสามารถในการทำงานของ WAF ได้สูงที่สุดใน Gartner Magic Quadrant ประจำปี

เนื่องจากเราให้ความสำคัญกับการเปลี่ยนโค้ดเมื่อโค้ดนั้นไม่สามารถบำรุงรักษาได้ ประสิทธิภาพการทำงานไม่เพียงพอ หรือไม่สามารถปรับขยายได้ดังที่เคยอีกต่อไป เราจึงเขียนส่วนสำคัญของ Cloudflare stack ขึ้นใหม่อยู่เสมอ ซึ่งเป็นสิ่งที่จำเป็นอย่างยิ่งเนื่องจากการเติบโตอย่างมหาศาลของเราโดยทำให้โซลูชันของเมื่อวานนั้นไม่สามารถทำงานได้ เราพยายามเปลี่ยนโค้ด LuaJIT ดั้งเดิมที่จอห์นเขียนขึ้นด้วยโค้ดใหม่ ซึ่งเขียนด้วยภาษา Rust ร่วมกับ UI ที่ปรับปรุงใหม่มาระยะหนึ่งแล้ว
และในขณะนี้ เรารู้สึกตื่นเต้นมากที่จะได้ประกาศเปิดตัว Cloudflare เว็บแอปพลิเคชันไฟร์วอลล์ใหม่
เริ่มตั้งแต่วันนี้ บัญชีที่สร้างขึ้นใหม่บน Cloudflare จำนวน 10% จะได้รับสิทธิ์ในการเข้าใช้งาน WAF ใหม่ทุกครั้งที่มีการเพิ่มโซนแผน Pro หรือสูงกว่า เปอร์เซ็นต์ดังกล่าวจะเพิ่มขึ้นเป็นบัญชีใหม่ 100% ตลอดเดือนเมษายน หลังจากนั้นจะเริ่มดำเนินการย้ายข้อมูลสำหรับลูกค้าเดิม โดยลูกค้าองค์กรสามารถย้ายข้อมูลก่อนกำหนดได้โดยติดต่อทีมบัญชีขององค์กร
สิ่งที่มีการเปลี่ยนแปลง
เว็บแอปพลิเคชันไฟร์วอลล์ (WAF) เป็นองค์ประกอบหลักของแพลตฟอร์ม Cloudflare ในฐานะที่เป็นหนึ่งในผลิตภัณฑ์ที่มีการใช้งานมากที่สุดในพอร์ตโฟลิโอ เราจึงได้รับคำติชมและประสบการณ์มากมายจากการใช้งานในวงกว้าง ซึ่งช่วยชี้แนะเราในการวนซ้ำครั้งสำคัญครั้งนี้ WAF ใหม่จะนำมาซึ่ง:
การเรียกดูกฎและการกำหนดค่าที่ดียิ่งกว่าเดิม - การใช้งานที่ง่ายเพียงแค่คลิกเดียวโดยไม่ต้องสูญเสียเครื่องมือระดับสูง: การกรองขั้นสูง, การแก้ไขแบบหลายรายการ, การใช้แท็กกฎ, และอื่น ๆ รวมถึงการเปิดใช้งานกฎ WordPress ทั้งหมด, การตั้งค่า Cloudflare Managed Rule ต่าง ๆ ให้กับ LOG หรือการค้นหาว่ากฎใดที่ไม่ทำงานนั้นเป็นเรื่องที่แสนง่าย
เอ็นจิ้นการจับคู่ใหม่ - เขียนขึ้นด้วยภาษา Rust และรองรับซินแทกซ์ wirefilter ซึ่งเป็นซินแทกซ์เดียวกับที่กฎไฟร์วอลล์แบบกำหนดเองใช้ เอ็นจิ้นนี้จะช่วยให้เราทำการใช้งานกฎที่ผ่านการจัดการแล้วได้รวดเร็วขึ้น และยังมีความสามารถในการขยายไปสู่ระดับถัดไปได้โดยการอนุญาตให้ทำการใช้งานตัว WAF บนการรับส่งข้อมูลที่มากขึ้น ซึ่งทั้งหมดจะเกิดขึ้นพร้อมกับการปรับปรุงประสิทธิภาพและความปลอดภัย
ชุดกฎแบบปรับปรุงใหม่ - WAF ใหม่มาพร้อมกับชุดกฎแบบปรับปรุงใหม่ที่สามารถควบคุมสถานะกฎแบบแยกออกจากการดำเนินการได้ดียิ่งขึ้น รวมถึงปรับปรุง Cloudflare OWASP Core Ruleset โดยอิงจาก OWASP Core Ruleset (v3.3 ณ เวลาที่เขียน) เวอร์ชันล่าสุด ซึ่งจะช่วยเพิ่มความระแวดระวังและปรับปรุงอัตราผลบวกเท็จเมื่อเทียบกับเวอร์ชันปัจจุบัน
การกำหนดค่าส่วนกลาง - ทำการใช้งานการกำหนดค่าเดียวกันไปทั่วทั้งบัญชีของคุณ จัดกลุ่มกฎให้เป็นชุดกฎและใช้ความสามารถในการทำเป็นเวอร์ชัน native และความสามารถในการย้อนเวอร์ชันกลับคืน
รายการด้านบนเป็นเพียงส่วนเล็ก ๆ น้อย ๆ ของสิ่งที่เรารู้สึกตื่นเต้น ซึ่งแต่ละประเด็นสมควรที่จะมีโพสต์ของตนเอง ซึ่งนี่คือไฮไลท์บางส่วน
การเรียกดูกฎและการกำหนดค่าที่ดีขึ้น
Cloudflare Managed Ruleset ซึ่งรวมถึงกลุ่ม Cloudflare Specials1 เป็นหนึ่งในองค์ประกอบหลักของ WAF ในกลุ่มนี้จะมีกฎหลายร้อยข้อที่ Cloudflare จัดเตรียมและดูแลอยู่ โดยในการกำหนดค่าเริ่มต้น เรามุ่งหวังที่จะได้อัตราผลบวกเท็จที่ต่ำอย่างยิ่ง ควบคู่ไปกับการมอบแนวฐานความปลอดภัยที่ดียิ่งให้กับทุกเว็บแอปพลิเคชัน และเพื่อความปลอดภัยที่ดีที่สุด คุณควรเปิดใช้กฎให้มากที่สุด ซึ่งหมายความว่าในบางครั้ง คุณอาจจำเป็นต้องเจาะลึกลงในรายละเอียดและปรับแต่งพฤติกรรมของชุดกฎตามการใช้งานเบื้องลึก
ด้วย WAF ใหม่ เราต้องการความมั่นใจว่าการเปิดใช้งาน Managed Ruleset นั้นสะดวกด้วยเพียงคลิกเดียวโดยการกำหนดค่าเริ่มต้นไว้ให้ แต่ยังคงให้ประสบการณ์การกำหนดค่าที่ดียิ่งกว่าสำหรับผู้ที่สนใจจะทำ
WAF UI ใหม่ คลิกเพียงหนึ่งครั้งเพื่อเปิด Cloudflare Managed Ruleset และ Cloudflare OWASP ModSecurity Core Ruleset

วันนี้ ในการเปิดใช้ Cloudflare Managed Ruleset คุณต้องเปิดใช้งานสวิตช์ WAF ส่วนกลางและกำหนดค่ากลุ่มกฎที่เป็นประโยชน์ต่อคุณ กลุ่มกฎสิบกลุ่ม ซึ่งรวมไปถึง WordPress, Joomla, PHP และอื่น ๆ ในลักษณะเดียวกันจะปรากฏขึ้นโดยตรงบนหน้าเพจด้วยการสลับการเปิด/ปิด ซึ่ง UI นี้ไม่อนุญาตให้การกรองหรือการกำหนดค่ากฎภายในกลุ่มทำได้ง่ายจนเกินไป จนไม่มีการตรวจสอบกฎไปทีละข้อ
UI ของ Managed Ruleset WAF UI ปัจจุบัน (ของเดิม) การคลิกที่กลุ่มจะแสดงรายการกฎในแต่ละกลุ่ม

แม้ว่า UI จะเรียบง่าย แต่ก็ไม่อนุญาตให้ดำเนินงานทั่วไปอย่างรวดเร็ว เช่น ให้แสดงกฎทั้งหมดที่ปิดอยู่หรือแสดงกฎทั้งหมดในการลดความเสี่ยงต่อการโจมตีแบบ XSS ในปัจจุบันนั้น ระบบจะแสดงกฎทั้งหมดในตารางเดียว แต่จะมีการกรองตามสถานะของกฎ การดำเนินการ และแท็กซึ่งสามารถทำได้เพียงคลิกเดียว อีกทั้งจะใช้แท็กกฎแทนกลุ่ม ซึ่งกฎอาจมีแท็กตั้งแต่หนึ่งแท็กขึ้นไป ทำให้ระบบมีความยืดหยุ่นมากขึ้น โดยเราจะใช้แท็กสำหรับ:
กำหนดว่ากฎนั้นสามารถใช้กับส่วนประกอบซอฟต์แวร์เฉพาะได้หรือไม่
การกำหนดเวกเตอร์การโจมตี (เช่น XSS, SQLi, RCE)
การกำหนดกฎเกณฑ์เฉพาะสำหรับ CVE
ข้อสุดท้าย เราอนุญาตให้มีการควบคุมการแก้ไขแบบหลายรายการ นอกเหนือจากการควบคุมกฎข้อเดียวแบบเรียง เพื่อให้สามารถเปลี่ยนแปลงการกำหนดค่าตามกรณีการใช้งานเฉพาะได้รวดเร็วขึ้น
The new WAF ruleset browser. Bulk options, tags and filtering components in one place.

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

หน้าจอตรวจสอบการปรับใช้ Ruleset จากหน้าจอนี้ คุณสามารถตรวจสอบการกำหนดค่าแบบกำหนดเองที่แทนที่จากค่าตั้งต้นได้
เอ็นจิ้นการจับคู่ใหม่
Cloudflare WAF ปัจจุบันที่รับผิดชอบการดำเนินการ Managed Ruleset แล้วนั้นเขียนด้วยภาษา LuaJIT และทำงานในฐานะโมดูล NGINX ดังนั้น ซินแทกซ์ของกฎจึงเป็นไปตามซูเปอร์เซ็ตของซินแทกซ์ที่ ModSecurity ใช้ โดยจะมีคุณลักษณะเพิ่มเติมเฉพาะสำหรับการใช้งาน Cloudflare
ในการย้ายไปยังเอ็นจิ้นใหม่ เรามีจุดมุ่งหมายให้เกิด:
สภาพแวดล้อมที่ปลอดภัยกว่า ดีกว่า และมีประสิทธิภาพมากกว่าซึ่งสอดคล้องกับเทคโนโลยีอื่น ๆ ที่ใช้งานอยู่ใน Cloudflare
ให้ผู้ใช้ได้สัมผัสความสามารถในการกรองและการจับคู่ที่ดียิ่งกว่าเดิมเป็นอย่างมากเพื่อความยืดหยุ่นในการใช้งานและการจัดการข้อยกเว้นที่ง่ายขึ้น
คุณลักษณะผลิตภัณฑ์แบบครบวงจรที่กำหนดได้โดยการใช้ซินแทกซ์ wirefilter เป็นพื้นฐานสำหรับ Managed Ruleset
ประเด็นสุดท้ายนี้มีความสำคัญอย่างยิ่งไม่เพียงแต่สำหรับเราเท่านั้น แต่รวมไปถึงผู้ใช้ของเราด้วย เนื่องจากซินแทกซ์นี้มีการใช้งานอยู่แล้วในกฎไฟร์วอลล์แบบกำหนดเองของเรา และยังใช้ในไลบรารี Rust พื้นฐานเดียวกันเพื่อดำเนินการตัวกรองด้วย!
เอ็นจิ้นใหม่นี้ที่ทำงานด้วย Rust ซึ่งเราได้เคยพูดถึงความชื่นชอบในตัวของมันใน Blog นี้ไปแล้ว และเรายังกำลังทำงานต่อไปเพื่อให้มั่นใจว่าการใช้งานใหม่นี้ไม่เพียงแต่มาพร้อมกับการปรับปรุงด้านความปลอดภัยเท่านั้น แต่ยังมีการปรับปรุงในด้านความเร็วอีกด้วย โดยเราจะพูดถึงรายละเอียดเฉพาะใน Blog ที่จะโพสต์ในอนาคต
อัปเดตชุดกฎ Cloudflare
ชุดกฎ Cloudflare ที่อัปเดตใหม่และย้ายไปใช้งานกับ WAF ใหม่ ส่วนที่น่าจับตามองคือ ตอนนี้ชุดกฎใช้ซินแทกซ์ wirefilter และสถานะของกฎที่แยกออกจากการทำงานของกฎแล้ว ซึ่งจะช่วยให้คุณสามารถกำหนดค่าของทั้งสองกรณีแยกกันได้
อีกทั้ง Cloudflare OWASP Core Ruleset ยังได้รับการอัปเดตที่สำคัญในแบบแยกอิสระจากตัวเอ็นจิ้น ซึ่ง Cloudflare WAF ในปัจจุบันใช้ OWASP ModSecurity Core Ruleset เวอร์ชัน 2.x ส่วนใน WAF ใหม่นั้น Cloudflare OWASP Core Ruleset จะอิงตามเวอร์ชัน 3.3 ล่าสุดจาก GitHub repository โดยตรง
Cloudflare OWASP Core Ruleset ใหม่มาพร้อมคุณลักษณะการเพิ่มเอ็นจิ้น อันนำมาซึ่งการปรับปรุงจากตัวที่มีอยู่ในหลาย ๆ ประการ:
ผลบวกเท็จน้อยลงและกฎทั่วไปสำหรับการใช้งานที่ทรงพลังยิ่งขึ้น
ควบคุมคะแนนความอ่อนไหวได้มากขึ้น พร้อมการบ่งชี้อย่างชัดเจนว่ากฎแต่ละข้อมีส่วนทำให้เกิดคะแนนมากน้อยเพียงใด และคะแนนรวมเมื่อการร้องขอเกิดการทำงานเป็นเท่าใด
การเพิ่มระดับความระแวงระวัง - เพื่อให้ทำการรวม หรือการยกเว้น หรือกลุ่มกฎได้อย่างง่ายดายโดยพิจารณาจากความเสี่ยงเชิงผลบวกเท็จ
แท็กกฎเพื่อยินยอมให้ทำการใช้งานกฎที่เกี่ยวข้องตามแอปพลิเคชัน

The Cloudflare OWASP Core Ruleset

The Cloudflare OWASP Core Ruleset review screen
หน้าจอตรวจสอบ Cloudflare OWASP Core Ruleset
ในฐานะส่วนหนึ่งของความพยายามในการแปลง OWASP ModSecurity Core Ruleset เวอร์ชันล่าสุดไปสู่การใช้งาน Cloudflare ทีมงานจึงได้สร้าง ModSecurity ให้กับตัวแปลงซินแทกซ์ wirefilter ด้วย ซึ่งจะทำให้เราสามารถทำการใช้งานและอัปเดตชุดกฎได้อย่างรวดเร็วและง่ายดายหลังจากการปรับปรุงอัปสตรีม เพื่อให้มั่นใจว่าลูกค้าจะสามารถเข้าใช้งานเวอร์ชันล่าสุดได้ตลอดเวลา นอกจากนี้ เรายังวางแผนที่จะทำ open source และแสดงตัวแปลงใน UI ในอนาคต เพื่อให้ลูกค้าสามารถย้ายจาก WAF ที่อิง ModSecurity ไปใช้ Cloudflare ได้ง่ายขึ้น
การกำหนดค่าส่วนกลาง
Cloudflare ทำงานบนโมเดล Cloudflare WAF แบบอิงตามโซนมาตั้งแต่เริ่มต้น ซึ่งเหมาะสำหรับกรณีการใช้งานทั่วไปที่ลูกค้าต้องการปกป้องแอปพลิเคชันจำนวนน้อย หรือมีชุดแอปพลิเคชันที่หลากหลายมากในแต่ละโซน
โดยปกติแล้ว การปรับใช้ที่ซับซ้อนหรือการรวมศูนย์ระหว่างโซนต่าง ๆ จะใช้ประโยชน์จาก API หรือเครื่องมือการทำงานอัตโนมัติ เช่น ผู้ให้บริการ Cloudflare Terraform
ด้วย WAF ใหม่ การปรับใช้ชุดกฎสามารถทำได้ผ่านตัวกรองการรับส่งข้อมูลแบบเบ็ดเสร็จภายใต้บัญชีเดียว ตัวอย่าง:
ทำการใช้งานตัว Cloudflare Managed Ruleset ไปในทุกโซนของฉัน
ทำงานการใช้งานตัว Cloudflare OWASP Core Ruleset บนการรับส่งข้อมูลทั้งหมดที่ไม่มี /api/* อยู่ในเส้นทาง
ปิดใช้งาน Managed Ruleset ในบัญชีของฉันสำหรับการรับส่งข้อมูลที่มาจาก IP ของฉัน

ซึ่งช่วยให้สามารถกำหนดค่า WAF ได้หลากหลายอย่างมีประสิทธิภาพด้วยการคลิกเพียงไม่กี่ครั้ง
_Three rulesets deployed on arbitrary applications on the account._
ชุดกฎสามชุดที่ทำการใช้งานบนแอปพลิเคชันแบบเบ็ดเสร็จในบัญชี
เพื่อให้สามารถทำงานดังกล่าวได้ ชุดกฎ (กลุ่มของกฎ) จะกลายเป็นแนวคิดอันดับหนึ่ง และได้ทำให้เป็นเวอร์ชันไว้แต่ต้น เพื่อให้มีความสามารถทั้งการย้อนเวอร์ชันกลับและตรวจการเปลี่ยนแปลงได้จากใน UI โดยตรง ซึ่งเป็นคุณลักษณะที่เราวางแผนที่จะเริ่มเปิดให้ใช้งานในอีกไม่กี่เดือนข้างหน้า
ในขั้นต้น การกำหนดค่าตามบัญชีจะพร้อมใช้งานสำหรับลูกค้าองค์กรเท่านั้น ซึ่งในขณะนี้องค์กรสามารถขอสิทธิ์การเข้าใช้งานล่วงหน้าได้โดยการติดต่อไปที่ทีมบัญชีของตน กฎไฟร์วอลล์แบบกำหนดเองจะถูกย้ายไปที่เอนจิ้นใหม่ในไม่ช้า ทำให้ลูกค้าสามารถสร้างกฎไฟร์วอลล์แบบกำหนดเอง และทำการใช้งานกฎตัวกรองการรับส่งข้อมูลได้ตามความต้องการ
แพลตฟอร์มใหม่สำหรับคุณลักษณะใหม่
WAF มีอะไรมากกว่าที่คุณคิด และทีมงานกำลังทุ่มเทอย่างยิ่งในการสรุปชุดคุณลักษณะเพิ่มเติมที่จะสร้างจาก WAF ใหม่ — ซึ่งรวมไปถึงการปรับปรุงตัวเอนจิ้นเอง การวิเคราะห์ที่ดีขึ้น และความสามารถในการมองเห็นเหตุการณ์ที่สามารถดำเนินการได้ อันที่จริงแล้ว ทุก ๆ เอนจิ้นได้รับการออกแบบให้เป็นพื้นฐานสำหรับผลิตภัณฑ์ Cloudflare ที่อิงกฎหลาย ๆ ผลิตภัณฑ์ โดยมีเป้าหมายเพื่อแสดงการกำหนดค่า Cloudflare ทั้งหมดให้เป็นชุดของกฎในท้ายที่สุด
ในระหว่างนี้ เราหวังเป็นอย่างยิ่งว่าจะได้รับความคิดเห็นจากคุณ และเรารู้สึกตื่นเต้นที่จะได้เห็นว่าเราจะสามารถสร้างสรรค์สิ่งใหม่ ๆ ได้ไกลกว่าเดิมได้เพียงใด
.......
1Cloudflare Specials เป็นกฎที่เขียนโดยทีมรักษาความปลอดภัยของ Cloudflare โดยอิงจากการสังเกตและปกป้องเว็บแอปพลิเคชันนับล้านที่อยู่เบื้องหลังแพลตฟอร์ม Cloudflare