วิธีการรักษาความปลอดภัยเว็บแอปพลิเคชันด้วย AWS WAF



บทความนี้จะบอกวิธีที่คุณสามารถรักษาความปลอดภัยเว็บแอปพลิเคชันด้วย AWS WAF และติดตามผลด้วยการสาธิตที่ใช้ได้จริง

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

มาเริ่มกันเลย





ต่อไปในบทความเกี่ยวกับ 'วิธีการรักษาความปลอดภัยเว็บแอปพลิเคชันด้วย AWS WAF?'

เริ่มต้นด้วยปัจจัยพื้นฐานบางประการ

AWS ให้บริการเช่น EC2, ELB (Elastic Load Balancer), S3 (Simple Storage Service), EBS (Elastic Block Storage) เพื่อสร้างแอปพลิเคชันที่มีประโยชน์และสวยงามได้อย่างรวดเร็วและมี CAPEX น้อยลง (CAPital EXpenditure) ในขณะที่สร้างแอปพลิเคชันเหล่านี้การรักษาความปลอดภัยแอปพลิเคชันและปกป้องข้อมูลมีความสำคัญเท่าเทียมกัน หากไม่ได้รับการรักษาความปลอดภัยอย่างเหมาะสมข้อมูลแอปพลิเคชันอาจไปอยู่ในมือคนผิดเช่นเดียวกับในกรณีล่าสุด เหตุการณ์ Capital One .



Capital One โฮสต์เว็บแอปพลิเคชันบน EC2 และไม่ได้รับการรักษาความปลอดภัยอย่างเหมาะสม อดีตพนักงานของ AWS สามารถใช้ประโยชน์จากช่องโหว่นี้และดาวน์โหลดรีมข้อมูลลูกค้าจาก S3 ได้ ภายหลังพบว่ามีการดาวน์โหลดข้อมูลจากองค์กรอื่น ๆ อีก 30 แห่งจาก AWS ดังนั้นหากต้องการเน้นย้ำอีกครั้งการออกแบบและออกแบบแอปพลิเคชันนั้นไม่เพียงพอ แต่การรักษาความปลอดภัยแอปพลิเคชันก็สำคัญไม่แพ้กัน

ใช้ Capital One AWS WAF (ไฟร์วอลล์แอปพลิเคชันบนเว็บ) เพื่อป้องกันเว็บแอปพลิเคชัน แต่ไม่ได้รับการกำหนดค่าอย่างถูกต้องเนื่องจากแฮ็กเกอร์สามารถเข้าถึงข้อมูลใน S3 และดาวน์โหลดได้ ในบทความนี้เราจะสำรวจวิธีใช้และกำหนดค่า AWS WAF เพื่อป้องกันการโจมตีเว็บทั่วไปเช่น SQL Injection, XSS (Cross Site Scripting) เป็นต้นต้องกำหนดค่า AWS WAF ควบคู่ไปกับ Application Load Balancer , CloudFront หรือ API Gateway ในสถานการณ์นี้เราจะใช้ Application Load Balancer คำขอใด ๆ จากลูกค้าผ่านทางเบราว์เซอร์จะผ่าน AWS WAF จากนั้นไปยัง Application Load Balancer และสุดท้ายไปที่ Web Application บน EC2 สามารถใช้ AWS WAF ได้ บล็อกคำขอที่เป็นอันตราย จากแฮกเกอร์โดยใช้ชุดของกฎและเงื่อนไข

รูปภาพ - แอปพลิเคชันบนเว็บที่ปลอดภัยด้วย AWS WAF - Edureka

ต่อไปในบทความเกี่ยวกับ 'วิธีการรักษาความปลอดภัยเว็บแอปพลิเคชันด้วย AWS WAF?'



ลำดับขั้นตอนในการเริ่มต้นใช้งาน AWS WAF

ขั้นตอนที่ 1: การสร้างเว็บแอปพลิเคชันที่มีช่องโหว่

ขั้นตอนแรกคือการสร้างเว็บแอปพลิเคชันที่เสี่ยงต่อการโจมตี SSRF (Server Side Request Forgery) ดังที่กล่าวไว้ในนี้ บล็อก เกี่ยวกับการโจมตีของ Capital One บล็อกนี้มีลำดับขั้นตอนดังนี้

  1. สร้าง EC2
  2. ติดตั้งซอฟต์แวร์ที่จำเป็นเพื่อสร้างเว็บแอปพลิเคชันที่มีช่องโหว่ SSRF
  3. สร้างและบทบาท IAM ด้วยสิทธิ์ S3 Read Only
  4. แนบบทบาท IAM กับ EC2
  5. สุดท้ายใช้ประโยชน์จากช่องโหว่ SSRF เพื่อรับข้อมูลรับรองความปลอดภัยที่เกี่ยวข้องกับบทบาท IAM

เมื่อทำตามลำดับขั้นตอนในบล็อกที่กล่าวถึงเรียบร้อยแล้วให้แทนที่ 5.6.7.8 ด้วยที่อยู่ IP สาธารณะของ EC2 ใน URL ด้านล่างและเปิดในเบราว์เซอร์ ข้อมูลรับรองความปลอดภัยที่เกี่ยวข้องกับบทบาท IAM ควรแสดงในเบราว์เซอร์ดังที่แสดงด้านล่าง นี่คือวิธีที่ Capital One ถูกแฮ็กโดยทั่วไป ด้วยข้อมูลรับรองความปลอดภัยแฮ็กเกอร์จึงสามารถเข้าถึงบริการ AWS อื่น ๆ เช่น S3 เพื่อดาวน์โหลดข้อมูล

http://5.6.7.8:80?url=http://169.254.169.254/latest/meta-data/iam/security-credentials/Role4EC2-S3RO

ขั้นตอนที่ 2: การสร้าง Application Load Balancer

AWS WAF ไม่สามารถเชื่อมโยงโดยตรงกับเว็บแอปพลิเคชัน แต่สามารถเชื่อมโยงกับ Application Load Balancer, CloudFront และ API Gateway เท่านั้น ในบทช่วยสอนนี้เราจะสร้างไฟล์ Application Load Balancer และการเชื่อมโยง AWS WAF ด้วยเช่นเดียวกัน

ขั้นตอนที่ 2a: กลุ่มเป้าหมายคือชุดของอินสแตนซ์ EC2 และต้องสร้างขึ้นก่อนที่จะสร้าง Application Load Balancer ใน EC2 Management Console คลิกที่ Target Group ในบานหน้าต่างด้านซ้ายและคลิกที่“ สร้างกลุ่มเป้าหมาย”

ขั้นตอนที่ 2b: ป้อนชื่อกลุ่มเป้าหมายและคลิกที่ 'สร้าง' จะสร้างกลุ่มเป้าหมายสำเร็จ

โครงสร้างข้อมูลและอัลกอริทึมในการสอน Java

ขั้นตอนที่ 2c: ตรวจสอบให้แน่ใจว่าได้เลือก Target Group แล้วคลิกที่แท็บ Targets และคลิกที่แก้ไขเพื่อลงทะเบียนอินสแตนซ์ EC2 กับ Target Group

ขั้นตอนที่ 2d: เลือกอินสแตนซ์ EC2 และคลิกที่“ เพิ่มลงทะเบียน” และคลิกที่“ บันทึก”

ควรลงทะเบียนอินสแตนซ์ตามที่แสดงด้านล่างสำหรับ Target Group

ขั้นตอนที่ 2e: ถึงเวลาสร้าง Application Load Balancer คลิกที่ Load Balancer ในบานหน้าต่างด้านซ้ายของ EC2 Management Console และคลิกที่“ Create Load Balancer”

คลิกที่“ สร้าง” สำหรับ“ Application Load Balancer”

ต่อไปในบทความเกี่ยวกับ 'วิธีการรักษาความปลอดภัยเว็บแอปพลิเคชันด้วย AWS WAF?'

ขั้นตอนที่ 2f: ป้อนชื่อของ Application Load Balancer และตรวจสอบให้แน่ใจว่าได้เลือก Availability Zone ทั้งหมดแล้วคลิก Next

ขั้นตอนที่ 2g: ใน 'กำหนดค่าการตั้งค่าความปลอดภัย' คลิกที่ถัดไป

ใน“ กำหนดค่ากลุ่มความปลอดภัย” ให้สร้างกลุ่มความปลอดภัยใหม่หรือเลือกหนึ่งในกลุ่มความปลอดภัยที่มีอยู่ ตรวจสอบให้แน่ใจว่าพอร์ต 80 เปิดอยู่สำหรับการเข้าถึงเว็บเพจบน EC2 คลิกที่ถัดไป

ขั้นตอนที่ 2h: ใน 'กำหนดค่าการกำหนดเส้นทาง' ให้เลือก 'กลุ่มเป้าหมายที่มีอยู่' และเลือกกลุ่มเป้าหมายที่สร้างไว้ในขั้นตอนก่อนหน้านี้ คลิกที่ถัดไป

ขั้นตอนที่ 2i: อินสแตนซ์ EC2 เป้าหมายได้รับการลงทะเบียนเป็นส่วนหนึ่งของกลุ่มเป้าหมายแล้ว ดังนั้นในแท็บ 'ลงทะเบียนเป้าหมาย' โดยไม่มีการเปลี่ยนแปลงใด ๆ ให้คลิกที่ถัดไป

ขั้นตอนที่ 2j: สุดท้ายตรวจสอบรายละเอียดทั้งหมดของ Application Load Balancer และคลิกที่สร้าง Application Load Balancer จะถูกสร้างขึ้นดังที่แสดงด้านล่าง

ข้อดีของวิธีการโอเวอร์โหลดใน java

ขั้นตอนที่ 2k: รับชื่อโดเมนของ Application Load Balancer และแทนที่ข้อความที่ไฮไลต์ไว้ใน URL ด้านล่างและเปิดชื่อเดียวกันในเบราว์เซอร์ โปรดทราบว่าเรากำลังเข้าถึง Web Application ผ่าน Application Load Balancer และ Security Credentials จะแสดงดังที่แสดงด้านล่าง คุณสามารถบล็อก URL ด้านล่างได้โดยใช้ AWS WAF ดังที่แสดงในขั้นตอนต่อไปเพื่อหยุดการรั่วไหลของข้อมูลรับรองความปลอดภัย

MyALB-1929899948.us-east-1.elb.amazonaws.com ? url = http: //169.254.169.254/latest/meta-data/iam/security-credentials/Role4EC2-S3RO

ขั้นตอนที่ 3: การสร้าง AWS WAF (Web Application Firewall)

ขั้นตอนที่ 3a: ไปที่ AWS WAF Management Console แล้วคลิกที่“ กำหนดค่าเว็บ ACL” ภาพรวม AWS WAF จะแสดงขึ้น นี่คือลำดับชั้นของ AWS WAF Web ACL มีกฎและกฎมากมายมีเงื่อนไขมากมายที่เราจะสร้างในขั้นตอนต่อไป คลิกที่ถัดไป

ขั้นตอนที่ 3b: ป้อนชื่อ Web ACL ภูมิภาคเป็น North Virginia (หรือที่ที่สร้าง EC2) ประเภททรัพยากรเป็น“ Application Load Balancer” และสุดท้ายเลือก Application Load Balancer ซึ่งสร้างขึ้นในขั้นตอนก่อนหน้า คลิกที่ถัดไป

ขั้นตอนที่ 3c: นี่คือ เงื่อนไขในการบล็อกคำขอเว็บแอปพลิเคชันเฉพาะ จะต้องถูกสร้างขึ้น เลื่อนลงและคลิกที่“ สร้างเงื่อนไข” สำหรับ“ เงื่อนไขการจับคู่สตริงและนิพจน์ทั่วไป”

ขั้นตอนที่ 3 มิติ: ป้อนชื่อเงื่อนไขประเภทเป็น 'การจับคู่สตริง' กรอง 'พารามิเตอร์การค้นหาทั้งหมด' และพารามิเตอร์ที่เหลือทั้งหมดตามที่แสดงด้านล่าง แล้วคลิกที่“ เพิ่มตัวกรอง” จากนั้นคลิกสร้าง ที่นี่เรากำลังพยายามสร้างเงื่อนไขที่ตรงกับ URL ที่มีค่าของพารามิเตอร์เคียวรีเป็น 169.254.169.254 ที่อยู่ IP นี้เกี่ยวข้องกับไฟล์ ข้อมูลเมตา EC2 .

ขั้นตอนที่ 3e: ตอนนี้เป็นเวลาสร้างกฎซึ่งเป็นชุดของเงื่อนไข คลิกที่ 'สร้างกฎ' และระบุพารามิเตอร์ตามที่แสดงด้านล่าง คลิกที่ 'เพิ่มเงื่อนไข' สร้างและ 'ตรวจสอบและสร้าง'

ต่อไปในบทความเกี่ยวกับ 'วิธีการรักษาความปลอดภัยเว็บแอปพลิเคชันด้วย AWS WAF?'

ขั้นตอนที่ 3f: สุดท้ายตรวจสอบรายละเอียดทั้งหมดและคลิกที่ 'ยืนยันและสร้าง' Web ACL (Access Control List) จะถูกสร้างและเชื่อมโยงกับ Application Load Balancer ดังที่แสดงด้านล่าง

ตารางภายในตาราง html

ขั้นตอน 3g: ตอนนี้พยายามเข้าถึง Application Load Balancer URL ผ่านเบราว์เซอร์ตามที่ดำเนินการใน ขั้นตอนที่ 2k . คราวนี้เราจะได้รับ '403 Forbidden' เนื่องจาก URL ของเราตรงกับเงื่อนไข Web ACL และเรากำลังบล็อกอยู่ คำขอไม่ไปถึง Application Load Balancer หรือ Web Application บน EC2 ที่นี่เราสังเกตเห็นว่าแม้ว่าแอปพลิเคชันจะอนุญาตให้เข้าถึงข้อมูลรับรองความปลอดภัย แต่ WAF ก็ปิดกั้นเหมือนกัน

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

  • ลบเงื่อนไขในกฎ
  • ลบกฎใน WebACL
  • ยกเลิกการเชื่อมโยง ALB ใน WebACL
  • ลบ WebACL
  • ลบกฎ
  • ลบตัวกรองในเงื่อนไข
  • ลบเงื่อนไข
  • ลบ ALB และ Target Group
  • ยุติ EC2
  • ลบบทบาท IAM

สรุป

ดังที่ได้กล่าวไว้ก่อนหน้านี้การสร้าง Web Application โดยใช้ AWS นั้นง่ายและน่าสนใจมาก แต่เราต้องตรวจสอบให้แน่ใจด้วยว่าแอปพลิเคชันนั้นปลอดภัยและข้อมูลจะไม่รั่วไหลไปสู่มือคนผิด การรักษาความปลอดภัยสามารถใช้ได้หลายชั้น ในบทช่วยสอนนี้เราได้เห็นวิธีการใช้ AWS WAF (Web Application Firewall) เพื่อป้องกันเว็บแอปพลิเคชันจากการโจมตีเช่นการจับคู่กับที่อยู่ IP ของข้อมูลเมตาของ EC2 เราสามารถใช้ WAF เพื่อป้องกันการโจมตีทั่วไปเช่น SQL Injection และ XSS (Cross Site Scripting)

การใช้ AWS WAF หรือผลิตภัณฑ์รักษาความปลอดภัยอื่น ๆ ไม่ได้ทำให้แอปพลิเคชันปลอดภัย แต่ต้องกำหนดค่าผลิตภัณฑ์อย่างเหมาะสม หากไม่ได้รับการกำหนดค่าอย่างถูกต้องข้อมูลอาจไปอยู่ในมือคนผิดเช่นเดียวกับที่เกิดขึ้นกับ Capital One และองค์กรอื่น ๆ นอกจากนี้สิ่งสำคัญอื่น ๆ ที่ต้องพิจารณาคือการรักษาความปลอดภัยต้องได้รับการพิจารณาตั้งแต่วันแรกและไม่ต้องเสียบเข้ากับแอปพลิเคชันในภายหลัง

เรามาถึงตอนท้ายของบทความเกี่ยวกับวิธีการรักษาความปลอดภัยเว็บแอปพลิเคชันด้วย AWS WAF นอกจากนี้เรายังได้จัดทำหลักสูตรที่ครอบคลุมสิ่งที่คุณต้องใช้ในการทดสอบ Solution Architect! คุณสามารถดูรายละเอียดหลักสูตรสำหรับ การฝึกอบรม.

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบล็อก AWS นี้คืออะไรแล้วเราจะติดต่อกลับไป