วิธีใช้ AWS WAF(Web Application Firewall) ป้องกันการฉีด SQL สคริปต์ข้ามไซต์และการแปรงฟันที่เป็นอันตรายของแฮ็กเกอร์ได้อย่างมีประสิทธิภาพ
ในสภาพแวดล้อมเครือข่ายสาธารณะบริการเว็บภายนอกอินเทอร์เฟซ APP หรือเว็บไซต์อีคอมเมิร์ซที่เปิดทุกวันไม่เพียงแต่ต้องเผชิญกับลูกค้าจริงเท่านั้น
เครื่องสแกนแฮ็กเกอร์โปรแกรมรวบรวมข้อมูลที่เป็นอันตรายและการโจมตีอัตโนมัติต่างๆต่อช่องโหว่ของเลเยอร์แอปพลิเคชัน
。
ทีมเทคนิคหลายทีมไม่มีความตระหนักในการป้องกันมากพอโดยคิดว่าทุกอย่างจะดีถ้าเซิร์ฟเวอร์ติดตั้งซอฟต์แวร์ป้องกันไวรัสและทีมรักษาความปลอดภัยปิดพอร์ตที่ไม่ได้ใช้ผลก็คือ:
ฐานข้อมูลหลักถูกปล้นโดยตรงโดยคำสั่งฉีด SQL ธรรมดาหน้าเว็บถูกฝังด้วยสคริปต์ที่เป็นอันตราย (XSS) ซึ่งนำไปสู่การขโมยเงินของผู้ใช้หรืออินเทอร์เฟซกิจกรรมทางการตลาดถูกแฮ็กเครื่องมือแฮ็กถูกผลิตขึ้นในเวลาไม่กี่นาทีงบประมาณ.
ในสถาปัตยกรรมแบบดั้งเดิมเพื่อจัดการกับการโจมตีที่เป็นอันตรายของเลเยอร์แอปพลิเคชันนี้ (เลเยอร์ที่เจ็ดในโมเดล OSI เจ็ดชั้น) จำเป็นต้องเปลี่ยนโค้ดแบ็คเอนด์จำนวนมากหรือเขียนกฎการสกัดกั้นที่ซับซ้อนมากในระดับ Nginx ค่าใช้จ่ายในการดำเนินการและการบำรุงรักษาสูงและง่ายมากฆ่าคำขอปกติโดยไม่ได้ตั้งใจ
การชำระเงินบนคลาวด์ของ AWS Amazon
บน Amazon Cloud อาวุธป้องกันที่สง่างามและไร้กังวลที่สุดคือ
AWS WAF(Web Application Firewall,Web Application Firewall)
。เปรียบเสมือน "เจ้าหน้าที่ตรวจสอบความปลอดภัยของปีศาจ" ที่อยู่แถวหน้าของเซิร์ฟเวอร์ก่อนที่คำขอจะไปถึงเซิร์ฟเวอร์ส่วนหลังของคุณมันจะปิดกั้นอาวุธที่ซ่อนอยู่ยาพิษและกองทัพแปรงที่เป็นอันตรายทุกชนิดไว้ที่ขอบ
บทช่วยสอนเชิงลึกของวันนี้ไม่ได้พูดถึงความปลอดภัยขั้นสูงและใช้มุมมองที่ใช้งานได้จริงที่สุดเพื่อพาคุณไปพิชิต AWS WAF อย่างสมบูรณ์
หลักการหลัก: AWS WAF อยู่ที่ไหน? มันทำงานอย่างไร?
ก่อนที่จะกำหนดค่าเราต้องหาว่า "เจ้าหน้าที่ตรวจสอบความปลอดภัย" นี้อยู่ที่ใดในโครงสร้างของคุณ AWS WAF
ไม่สามารถ
แขวนโดยตรงบนเซิร์ฟเวอร์คลาวด์ EC2เครื่องเดียวมันทำงานผ่าน "กาฝาก" ในเลเยอร์การรับส่งข้อมูลหลักสามแกนต่อไปนี้:
Application Load Balancer (ALB): แอพพลิเคโหลดควอไลเซอร์ของคุณ
Amazon CloudFront: CDN ขอบโหนดทั่วโลกของคุณ
Amazon API Gateway: เกตเวย์อินเตอร์เฟซบริการไมโครของคุณ
การชำระเงินบนคลาวด์ของ AWS Amazon
เมื่อแฮ็กเกอร์ชาวอเมริกันสร้างคำขอที่มีรหัสที่เป็นอันตรายอย่างระมัดระวังและส่ง:
การจราจรมาถึงโหนด CDN ขอบ CloudFront (หรือ ALB) ก่อน
AWS WAF เข้าแทรกแซงทันทีมันจะใช้ "Web ACL" ที่กำหนดค่าไว้เพื่อสแกน Header (ส่วนหัวคำขอ), Query String (พารามิเตอร์ URL), Body (ตัวคำขอ) และแหล่ง IP ของคำขอเช่นเครื่องเอกซเรย์
ถ้าตรงกับลักษณะของแฮ็กเกอร์, WAF โดยตรงที่ขอบคาย403 Forbidden สกัดกั้นกระแสการโจมตี
ปริมาณไม่สามารถสัมผัสได้ถึงปริมาณของเซิร์ฟเวอร์ส่วนหลังของคุณและจะไม่ใช้ CPU และแบนด์วิดท์ทางธุรกิจของคุณ
ขั้นตอนแรก: การลงจอดสามขั้นตอนของการป้องกันหลัก AWS WAF (การคัดลอกการต่อสู้จริง)
แกนหลักของการกำหนดค่า AWS WAF คือการสร้างไฟล์
Web ACL (รายการควบคุมการเข้าถึงเว็บ)
。เราใช้ "การป้องกันการจัดสรรภาระงาน ALB ในประเทศหรือต่างประเทศ" โดยตรงเป็นตัวอย่างในการปรับใช้การป้องกัน:
ขั้นตอนที่1: สร้างเว็บ ACL ใหม่และผูกทางเข้า
ลงชื่อเข้าใช้คอนโซลผู้ดูแลระบบ AWS ค้นหาและเข้าสู่คอนโซล WAF & Shield 。
คลิก Web ACL ในแถบนำทางด้านซ้ายจากนั้นคลิก Create Web ACL ทางด้านขวา
การกำหนดค่าพารามิเตอร์ที่สำคัญ: ประเภททรัพยากร: หากคุณต้องการปกป้อง CloudFront CDN ให้เลือก Global (CloudFront) หากคุณกำลังปกป้องการจัดสรรภาระงานให้เลือกแหล่งที่มาของภูมิภาคและเลือกภูมิภาคที่เซิร์ฟเวอร์ของคุณตั้งอยู่ (เช่น us-west-2 West Oregon). ชื่อ: ตั้งชื่อให้สดชื่นเช่น prod-web-waf-acl
คลิก Add AWS resources ที่ Associated AWS resources ด้านล่างเพื่อตรวจสอบอินสแตนซ์ ALB ที่คุณกำลังเรียกใช้บริการเว็บคลิก Next.
ขั้นตอนที่2: การกำหนดค่า AWS ชุดกฎการโฮสต์อย่างเป็นทางการในคลิกเดียว (การฉีด SQL ที่ถูกบล็อกด้วย XSS)
เจ้าหน้าที่ AWS ช่วยเราเขียน "ชุดเกราะชั้นยอด" เพื่อรับมือกับการโจมตีของแฮ็กเกอร์ทั่วไปที่เรียกว่า
AWS Managed Rule Groups
。คุณไม่จำเป็นต้องเข้าใจการเผชิญหน้าด้านความปลอดภัยเครือข่ายขั้นสูงเพียงแค่เปิดใช้งานได้ด้วยคลิกเดียว:
ในหน้า Add rules and rule groups ให้คลิกที่ Add rules -> Add managed rule groups ทางด้านขวา
ขยายกลุ่มกฎการจัดการ AWS และคุณจะเห็นกฎการบำรุงรักษาอย่างเป็นทางการและการอัปเดตแบบเรียลไทม์มากมายขอแนะนำอย่างยิ่งให้เลือก "กองกำลังหลัก" สามประการต่อไปนี้โดยหลับตา: ชุดกฎหลัก (CRS): ชุดกฎหลักนี่คือจิตวิญญาณของ WAF ซึ่งมีการป้องกันช่องโหว่ทั่วไปส่วนใหญ่ (รวมถึง OWASP Top 10) การรวมไฟล์ภายในเครื่อง (LFI) และการโจมตีทั่วไปอื่นๆ SQL ฐานข้อมูล (SQLi) ชุดกฎ: SQL ฉีดการป้องกันพิเศษมุ่งเน้นไปที่อักขระพิเศษของฐานข้อมูลในคำขอโดยเฉพาะและเชื่อมประตูฐานข้อมูลหลังความตาย Known bad inputs rule set: ป้องกันช่องโหว่สแกนเนอร์แฮกเกอร์หลายคนชอบใช้เครื่องมือโอเพนซอร์สอัตโนมัติ (เช่น SQLmap) เพื่อทดสอบสุ่มสี่สุ่มห้า
เว็บไซต์กฎนี้สามารถระบุโพรบของเครื่องมือเหล่านี้ได้อย่างแม่นยำและบล็อกโดยตรง
คลิก Add rules เพื่อบันทึก
ขั้นตอนที่3: เปิดการจำกัดอัตรา (Rate-based Rule)-เชี่ยวชาญในการรูดแฮกเกอร์ที่เป็นอันตราย
การโจมตีช่องโหว่ถูกบล็อกขั้นตอนต่อไปคือการจัดการกับสิ่งที่ลำบากที่สุด
การแปรงฟันที่เป็นอันตรายการชนห้องสมุดโปรแกรมรวบรวมข้อมูลและการโจมตี CC
。
เพื่อเติมแบนด์วิดท์ของคุณหรือขยายอินเทอร์เฟซ SMS/รหัสยืนยันของคุณแฮกเกอร์จะใช้ไก่เนื้อหรือพร็อกซี IP จำนวนมากเพื่อทำงานพร้อมกันอย่างบ้าคลั่งในเวลาอันสั้น AWS WAF
Rate-based Rule (กฎตามอัตรา)
เป็นวิธีที่แข็งแกร่งที่สุดในการยอมจำนนพวกเขา
ในหน้ากฎให้คลิก Add rules -> Add my own rules and rules groups 。
พารามิเตอร์การกำหนดค่า: Rule type: ติ๊กกฎ Rate-based 。 Rate limit (อัตราเส้นสีแดง): กำหนดขีดจำกัดการเข้าถึง IP เดียวภายใน5นาทีตัวอย่างเช่นสำหรับเว็บไซต์ธรรมดาให้ตั้งค่า2000หากเป็นอินเทอร์เฟซการลงทะเบียน/การเข้าสู่ระบบที่ละเอียดอ่อนมากสามารถบีบอัดเป็น100-300ได้การดำเนินการ: เลือก Block (การสกัดกั้นโดยตรง) หรือ Count (เฉพาะบันทึกไม่สกัดกั้นโดยปกติจะใช้สำหรับการสังเกตล่วงหน้า)
ด้วยวิธีนี้เมื่อคำขอ IP ในต่างประเทศเกินเส้นสีแดงที่คุณตั้งไว้ภายใน5นาที AWS WAF จะใส่กุญแจมือ IP ทันทีและการเข้าชมครั้งต่อไปจะให้รางวัลเป็น403โดยปกติ5ถึง10นาทีหลังจากพฤติกรรมปกติจะถูกปลดบล็อกโดยอัตโนมัติ
ขั้นตอนที่สอง: Master Advanced-จะลด "อัตราการฆ่า" ของ WAF ได้อย่างไร?
มีจุดเจ็บปวดชั่วนิรันดร์ในด้านความปลอดภัย:
ยิ่งการป้องกันเข้มงวดมากเท่าไหร่ก็ยิ่งฆ่าคนดีได้ง่ายขึ้นเท่านั้น
ตัวอย่างเช่นหากพนักงานการเงินของบริษัทของคุณอัปโหลดตาราง Excel ที่มีสูตรทางการเงินในพื้นหลังกฎการฉีด SQL ของ WAF อาจเข้าใจผิดว่าเป็นรหัสแฮ็กเกอร์และบล็อกพี่สาวทางการเงินโดยตรง
ในวันแรกของการเปิดตัว WAF สถาปนิกที่มีประสบการณ์จะใช้เทคนิคสองประการต่อไปนี้เพื่อปรับแต่งการดำเนินงาน:
1.เปิดการทดสอบ "Count" ก่อน
อย่าดึงชุดเกราะที่เพิ่งซื้อมาเพื่อป้องกันกระสุนทันทีเมื่อมีการเพิ่มกฎในสภาพแวดล้อมการผลิต:
การชำระเงินบนคลาวด์ของ AWS Amazon
เคล็ดลับใหญ่ในการหลีกเลี่ยงหลุม: ขั้นแรกให้เปลี่ยนการดำเนินการของ Managed Rules ทั้งหมดที่เพิ่งเข้าร่วมเป็น Count
ในโหมดนี้ WAF จะไม่สกัดกั้นคำขอที่น่าสงสัยเมื่อพบคำขอที่น่าสงสัยแต่จะประทับตรา "ผู้ต้องสงสัย" ไว้ในบันทึกเพื่อให้คำขอดำเนินต่อไป
ทำงานเป็นเวลา3ถึง7วันและไปที่คอนโซลเพื่อตรวจสอบบันทึกการสุ่มตัวอย่าง CloudWatch ของ WAF หากคุณพบว่าการทำงานปกติของผู้ใช้ปกติหลายคนถูกประทับตราด้วยแสดงว่า
กฎมากเกินไปในขณะนี้คุณสามารถดำเนินการ exclude (ยกเว้น) สำหรับกฎย่อยเฉพาะบนคอนโซลและหลังจากล้างการฆ่าคนแล้วให้เปลี่ยน Action เป็น Block อย่างเป็นทางการ
2.เปิด "ช่องสีเขียว (IP รายการที่อนุญาตพิเศษ)" อย่างถูกต้อง
หากบริษัทของคุณมีพันธมิตรเฉพาะหรือ IP เครือข่ายสาธารณะในพื้นที่สำนักงานภายในที่จำเป็นต้องเรียกใช้อินเทอร์เฟซบ่อยอย่าปล่อยให้พวกเขาเข้าคิวกับแฮกเกอร์เพื่อผ่านการตรวจสอบความปลอดภัย
สร้างชุด IP ด้วยตนเองใน WAF และป้อน IP เครือข่ายสาธารณะคงที่ของบริษัทของคุณ
เพิ่มกฎที่กำหนดเองใน Web ACL: หากคำขอมาจากชุด IP นี้การดำเนินการจะถูกตั้งค่าเป็น Allow โดยตรงและลำดับความสำคัญ (Priority) ของกฎนี้จะถูกยกไปที่ตำแหน่ง0ด้านบนด้วยวิธีนี้การจราจรภายในสามารถเข้าสู่ตลาดได้โดยตรง
ขั้นตอนที่สาม: ดูสมุดบัญชีการเรียกเก็บเงินของ AWS WAF (แพงไหม?)
การเรียกเก็บเงินของ AWS WAF นั้นสดชื่นมากไม่มีค่าใช้จ่ายเซิร์ฟเวอร์ที่มองไม่เห็น
ค่าธรรมเนียมฐานคงที่ค่าธรรมเนียมการจัดการการไหล
โหมด:
ค่าธรรมเนียมฐาน Web ACL: $10ต่อ Web ACL ต่อเดือน
ค่าธรรมเนียมกฎ: สำหรับทุกกฎที่คุณเพิ่มลงใน Web ACL (เช่นเลือกชุด CRS หรือเขียนกฎจำกัดความเร็วด้วยตัวเอง) กฎแต่ละข้อจะถูกเรียกเก็บเงิน1ดอลลาร์ต่อเดือน (ชุดกฎการโฮสต์อย่างเป็นทางการของ AWS ส่วนใหญ่ให้ฟรีไม่มีเงินเพิ่ม)
ค่าธรรมเนียมการดำเนินการตามคำขอ: ค่าใช้จ่ายที่ยืดหยุ่นจริงสำหรับคำขอทุกๆ1ล้านคำขอจะมีการเรียกเก็บเงิน $0.60
💡กรณีคณิตศาสตร์ประกันภัย: สมมติว่าคุณสร้าง Web ACL แขวนกฎพื้นฐานอย่างเป็นทางการ3ข้อและกฎจำกัดความเร็ว1ข้อ (รวม4 Rule) เว็บไซต์ของคุณมีคำขอทั้งหมด20ล้านคำขอต่อเดือนค่าเช่ารายเดือนคงที่: $10 (ACL) $1*4 (กฎ) = $14ค่าธรรมเนียมคำขอ:(20ล้าน/1ล้าน) * $0.60 = $12บิลทั้งหมด: เพียง $26 (ประมาณ RMB 180) ต่อเดือนด้วยเงินของตั๋วหนังสองใบเราได้ว่าจ้างบอดี้การ์ดดิจิทัลชั้นนำที่มีการป้องกันส่วนบุคคลตลอด24ชั่วโมงสำหรับธุรกิจหลักของบริษัท
สรุปและสูตรป้องกันตัว
ในสถาปัตยกรรมเนทีฟบนคลาวด์สมัยใหม่เป็นเรื่องที่อันตรายอย่างยิ่งและล้าหลังในการวางการป้องกันความปลอดภัยบนโค้ดส่วนหลังการใช้ AWS WAF เราได้ดำเนินการล้างปริมาณการใช้งานที่เป็นอันตรายที่ขอบเครือข่ายด้านนอกสุดสุดท้ายนี้ฉันจะให้สูตร WAF สี่สูตรที่ทหารผ่านศึกใช้:
กุญแจแรกที่ทางเข้า: WAF แขวนอยู่หน้า ALB หรือ CDN และตัดขอบหัววัดของแฮ็กเกอร์
ตรวจสอบโฮสติ้งอย่างเป็นทางการ: CRS, SQLi บวกการฉีดช่องโหว่หลักในคลิกเดียว
ขีดจำกัดความเร็วปกติปริมาณแปรง: อินเทอร์เฟซที่ละเอียดอ่อนมีเส้นสีแดงและโปรแกรมรวบรวมข้อมูลที่เป็นอันตรายจะกะพริบโดยตรง
Count ก่อนแล้ว B
ล็อค: อย่าสนใจการผลิตและการเปิดตัวดูบันทึกก่อนแล้วจึงอัปเกรด
การชำระเงินบนคลาวด์ของ AWS Amazon

