AWS Network Firewall คืออะไร การแนะนำฟังก์ชันล่าสุดของ AWS

เริ่มต้น กุญแจสำคัญที่จะทำให้เราเข้าใจเกี่ยวกับกลไกของ Firewall นั้นก็คือ rule group และ table design ถ้าคุณเข้าใจการทำงานของ 2 อย่างนี้ คุณจะสามารถรู้ได้ว่าข้อมูลไหนที่มีความจำเป็นต่อการตั้งค่า ซึ่งในบล็อกนี้ผมได้สร้างรูปภาพประกอบให้เข้าใจง่ายที่สุดและผมหวังว่าจะเป็นประโยชน์ต่อการศึกษา Network Firewall กับทุกคน
2022.12.03

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Network Firewall คืออะไร ?

ถ้าสรุปให้เข้าใจง่ายๆคือ เซอร์วิสที่ใช้ในการจัดการและกระจาย firewalls สำหรับใช้งาน VPC รวมถึง IDS และ IPS เปรียบเทียบกับ Network ACL กับ Security groups นั้น เซอร์วิสนี้มีความสามารถสูงในการสร้าง DPI สำหรับแอพพลิเคชั่นที่ตรวจจับและตรวจสอบ Domain name ต่างๆ หรือ ระบบป้องกันการบุกรุก Intrusion Prevention System (IPS) นั้นเอง

องค์ประกอบของ Network Firewall

AWS Network Firewall มีองค์ประกอบหลัก 3 ส่วนคือ

  • firewall
  • Firewall Policy
  • Rule Groups

Firewall

Firewall ทำหน้าที่ในการสร้าง gateway สำหรับ load balancer หรือการ VPC endpoint ที่อยู่ใน subnet และเชื่อมต่อกันเกิดเป็น Firewall policy ในส่วนของการทำ logging เพื่อตั้งค่าจะรวมอยู่ในส่วนนี้

Firewall Policy

Firewalll Policy จะเป็นส่วนที่ใช้ในการกำหนดการทำงานของ firewall และตั้งค่า rule group เพื่อออกคำสั่งพื้นฐาน

Rule Groups

ส่วนนี้จะเป็นการกำหนดหัวข้อการคัดกรองซึ่งจะมีอยู่ 3 ประเภทของหัวข้อ (ข้อมูลล่าสุดเมื่อ มีนาคม 2022) - Unmanaged Stateless Rule Group - Unmanaged Stateful Rule Group - Managed Stateful Rule Groups

Unmanaged Stateless Rule Group

คือ rule group ที่ใช้ในการควบคุม stateless traffic ทั้งหมดเพื่อตรวจสอบข้อมูล traffic จาก 5-tuple ประกอบด้วย source IP, source port, destination IP, destination port และ protocol. ณ ปัจจุบันหลังจาก มีนาคม 2022, managed stateless rule groups จะไม่มีให้บริการแล้วเช่นเดียวกับ managed stateful rule

เนื้อหาที่ต้องเข้าใจก่อนใช้งาน stateful rule groups

เป็นเรื่องง่ายมากที่จะทำความเข้าใจถ้าเราแยกความหมายระหว่าง "Actions" และ "Order"

Action

คือการกำหนดหน้าที่การทำงานว่าจะให้ทำอะไรเกี่ยวกับการตรวจสอบ Traffic
ซึ่งเราสามารถเลือกได้แค่ 1 อย่างจากทั้งหมด 3 ประเภท คือ

  • Path: อนุญาตให้ส่งข้อมูลไปยังปลายทาง
  • Drop: บล็อคการส่งข้อมูลไปยังปลายทาง
  • Alert: ปล่อยให้ส่งข้อมูลไปยังปลายทางได้และมีการแจ้งเตือนในรูปแบบ Log

Order

คือการกำหนดคำสั่งใน rule ที่มีการประเมินและเลือกใช้งานซึ่งเราสามารถเลือกได้ 2 ประเภท

  • default
  • Strict

Default

เป็นการตั้งค่าการประเมินพื้นฐานโดยความแตกต่างจะอยู่ที่การเลือกใช้งาน Action type
โดยเฉพาะ Rule จะถูกประเมินจาก 3 คำสั่งนี้ pass,drop และ alert

ตามตัวอย่างในรูป IP address 192.168.0.0/24 ที่ใช้งาน port 80 จะสามารถผ่านได้ Pass
ถ้ามีการใช้งานโดยใช้ port และ CIDR อื่นนอกเหนือจากนี้จะมีสถานะเป็น Drop
โดยปกติการ drop จะถูกประมวลผลก่อน ดังนั้น alert จะไม่ทำงาน
ถ้าเราต้องการ alert แนะนำให้เราเลือกประเภท strict ในหัวข้อด้านล่างเพื่อใช้งาน

strict

เป็นการกำหนดให้สามารถใช้งานคำสั่งที่เราตั้งค่าเองได้
โดย Rules จะถูกประมวลผลจากบนลงล่าง
ดังนั้น alert จะถูกประเมินหลังจาก drop ได้ถูกตรวจสอบแล้ว
ซึ่ง unmanaged stateless rule groups นั้นถูกตั้งให้ใช้งานเป็นหลัก จึงมีการกำหนดด้วยคำสั่งการประมวลผล

Unmanaged stateful rule group

คือ rule group ที่ถูกใช้งานโดย Suricata ซึ่งเป็น เครือข่าย open source IPS สำหรับ network แบบ stateful เป็นรูปแบบ unmanaged rule group สำหรับใช้งาน custom rules หรือ rules ที่เราตั้งค่าเอง โดยมีการกำหนด rule ทั้งหมด 3 แบบ

  • 5-tuple ประกอบด้วย source IP, source port, destination IP, destination port และ protocol.
  • Domain list ชื่อโดเมนด์ต่างๆ ที่กำหนดเพื่อใช้งาน
  • Suricata compatible IPS เครือข่ายที่กลั่นกรองโดย Suricata compatible IPS rules

Domain list นั้นไม่สามารถใช้งานได้ด้วยการตั้งค่าแบบ strict
อีกทางเลือกหนึ่งคือใช้การประเมินแบบ strict และการกรองตามโดเมนที่มี "กฎ IPS ที่เข้ากันได้กับ Suricata"

Managed stateful rule group

เป็น rule group ที่มีจัดการของ AWS ซึ่งจะพร้อมใช้งานตั้งแต่เดือนธันวาคม 2021 เมื่อเกิดช่องโหว่หรือภัยคุกคามใหม่ๆ ในการรักษาความปลอดภัยแอปพลิเคชันทเกิดขึ้น จะมีการอัพเดต rule group ที่มีการจัดการโดยอัตโนมัติและจัดเตรียม rule group เวอร์ชันใหม่

การประเมินของ Firewall Policy

Firewall Policy นั้นเป็นส่วนที่รับผิดชอบในการกำหนด rule group และดำเนินการตามค่าเริ่มต้น" หากเจาะลึกลงไปอีกนิด Firewall สามารถมีกลุ่มกฎหลายกลุ่มที่เชื่อมโยงกันมันได้แต่ละกลุ่มกฎมี "ลำดับความสำคัญ" ช่วยที่กำหนดการประเมิน "คำสั่งการประเมินกฎแบบมีสถานะและการดำเนินการเริ่มต้น" และ "rule group" ที่ใช้ใน "กลุ่มกฎแบบมีสถานะ" จะต้องตรงกัน

การตรวจสอบทั่วไปของคำสั่งการประเมินกฎ

ด้านล่างนี้เป็นแผนภาพแสดงการทำงานของ rule และการคำนวนต่างๆ ซึ่งค่อนข้างจะมีความซับซ้อน ลองใช้เวลาในการวิเคราะห์ดูครับ

Loot table design

Network Firewalls นั้นมีการใช้งาน NAT gateways ร่วมกันมากขึ้นนั้นก็เพราะ ตำแหน่งของความสัมพันธ์รวมกันระหว่าง NAT Gateway ได้เปลี่ยนไปแล้วในการอัพเดทครั้งนี้

Pre-MSR design

MSR ย่อมาจาก More Specific Routing เป็นฟังก์ชันที่ใช้ในการกำหนด route หรือ subnet ที่เฉพาะเจาะจง โดยมีการแยก table ออกมาจาก local route ยังไงก็ตามถ้าอยากได้ข้อมูลเพิ่มเติม สามารถดูลิงค์ที่อยู่ด้านล่างได้เลยครับ

ก่อนที่จะถือกำเนิดเกี่ยวกับ Specific Routhing (หรือในชื่อ MSR) เราใช้งาน VPC เป็นทางเชื่อมไปยัง Routing เพื่อควบคุมทุกคนใน Internet Gateway

ในการตั้งค่าครั้งนี้ IP Address ของ NAT นั้นถูกใช้เป็นข้อมูลตั้งค่าเพื่อให้สามารถเข้าถึง Firewall Endpoint ได้หลังจากผ่าน NAT Gateway ไปแล้ว

Design ของ MSR

ตั้งแต่โครงสร้าง MSR การติดต่อสื่อสารภายนอกสามารถทำได้ผ่าน Firewall Endpoint ปัญหาอย่างเช่น การรวม IP ของ Nat Gateway ได้ถูกแก้ไขแล้ว

ในอนาคต ถ้ามีโอกาสใช้งาน Network Firewall ผมขอแนะนำว่าให้คุณใช้งาน MSR สำหรับการออกแบบ route

โครงการตรวจสอบระบบความปลอดภัยให้กับ AWS Environment

AWS จะมีการตรวจสอบความปลอดภัยของสภาพแวดล้อมของคุณให้ฟรีในระยะเวลาจำกัด โดยจะตรวจสอบการตั้งค่าที่เกี่ยวข้องกับความปลอดภัยทั้งหมด 189 รายการ ซึ่งเป็นแนวทางปฏิบัติที่ดีที่สุดของ AWS และรายงานให้เรารับรู้ อย่างมีประสิทธิภาพด้วยการสนับสนุนของบริษัทมากกว่า 3,000 แห่ง สามารถดูรายละเอียดเพิ่มเติมได้ที่ลิงค์ด้านล่างครับ AWS environment security check campaign

สรุป

เนื้อหาทั้งหมดในบทความนี้ผมได้แปลมาจากบล็อกของภาษาญี่ปุ่นจากคุณ たかくに นะครับ ถ้าต้องการศึกษาข้อมูลหรือเนื้อหาเพิ่มเติมสามารถเข้าไปอ่านจากบล็อกของคุณ takakuni ได้เลยครับ

บทความต้นฉบับ

ขอขอบคุณบทความต้นฉบับที่เป็นแหล่งข้อมูลให้ผมนำมาแปลและเขียนเนื้อหาในบล็อกนี้ครับ

  • AWS再入門ブログリレー2022 Network Firewall 編