- หน้าแรก
- ตัวสร้างทราฟฟิก
- การผสานรวม
การผสานรวม
สถาปัตยกรรมแบบสมบูรณ์
หัวข้อที่มีชื่อว่า “สถาปัตยกรรมแบบสมบูรณ์”ตัวสร้างทราฟฟิกเป็นหนึ่งใน ส่วนประกอบในสภาพแวดล้อมสาธิตแบบหลายชั้น สถาปัตยกรรมที่สมบูรณ์เมื่อปรับใช้ส่วนประกอบทั้งหมด:
Traffic Generator -> F5 XC HTTP LB (WAF/Bot/API/CSD) -> Origin Server | CDN Simulator (optional)graph LR
TG[Traffic Generator VM] -->|Attack Traffic<br/>HTTPS| XCHLB[F5 XC HTTP LB]
XCHLB -->|WAF / Bot / API / CSD| ORIGIN[Origin Server VM<br/>Juice Shop, DVWA,<br/>VAmPI, httpbin, whoami]
CDN[CDN Simulator<br/>optional] -->|Cached Requests| XCHLB
TG -.->|Direct Baseline<br/>HTTP optional| ORIGINส่วนประกอบแต่ละรายการได้รับการปรับใช้และกำหนดค่าอย่างอิสระผ่าน Terraform ตัวสร้างทราฟฟิกกำหนดเป้าหมายไปที่ FQDN ของ F5 XC load balancer ไม่ใช่เซิร์ฟเวอร์ต้นทางโดยตรง
การผสานรวมกับเซิร์ฟเวอร์ต้นทาง
หัวข้อที่มีชื่อว่า “การผสานรวมกับเซิร์ฟเวอร์ต้นทาง”เซิร์ฟเวอร์ต้นทาง ให้แอปพลิเคชันแบ็กเอนด์ที่ชุดการโจมตีของตัวสร้างทราฟฟิกกำหนดเป้าหมาย:
| ชุดทราฟฟิก | แอปพลิเคชันต้นทาง | พาธ |
|---|---|---|
| api-attacks | VAmPI | /vampi/ |
| bot-simulation | แอปพลิเคชันทั้งหมด | ทุกพาธ |
| cdn-load-testing | ตัวจำลอง CDN | CDN endpoint |
| crapi-exploits | crAPI | /crapi/ |
| csd-demo-attacks | CSD Demo | /csd-demo/ |
| dvga-exploits | DVGA | /dvga/ |
| dvwa-exploits | DVWA | /dvwa/ |
| javascript-exploits | CSD Demo | /csd-demo/ |
| juice-shop-exploits | Juice Shop | /juice-shop/ |
| mitre-attack | แอปพลิเคชันทั้งหมด | ทุกพาธ |
| owasp-scanning | แอปพลิเคชันทั้งหมด | ทุกพาธ |
| performance-testing | แอปพลิเคชันทั้งหมด | ทุกพาธ |
| reconnaissance | แอปพลิเคชันทั้งหมด | ทุกพาธ |
| restaurant-exploits | Restaurant API | /restaurant/ |
| ssl-scanning | F5 XC LB (ไม่ใช่ต้นทางโดยตรง) | N/A |
| traffic-generation | แอปพลิเคชันทั้งหมด | ทุกพาธ |
| web-app-attacks | Juice Shop, DVWA | /juice-shop/, /dvwa/ |
ลำดับการปรับใช้
หัวข้อที่มีชื่อว่า “ลำดับการปรับใช้”- ปรับใช้ เซิร์ฟเวอร์ต้นทาง ก่อน — ซึ่งจะให้แอปพลิเคชันแบ็กเอนด์
- กำหนดค่า F5 XC HTTP load balancer โดยใช้เซิร์ฟเวอร์ต้นทางเป็น origin pool
- แนบ นโยบาย WAF, Bot Defense, ความปลอดภัย API และ CSD เข้ากับ load balancer
- ปรับใช้ ตัวสร้างทราฟฟิก โดยตั้งค่า
target_fqdnให้เป็นโดเมนของ F5 XC LB
การกำหนดค่าเป้าหมาย
หัวข้อที่มีชื่อว่า “การกำหนดค่าเป้าหมาย”config.env ของตัวสร้างทราฟฟิกเชื่อมต่อกับส่วนที่เหลือของสถาปัตยกรรม:
# Target the F5 XC load balancer (traffic passes through security policies)TARGET_FQDN=demo.example.com
# Optional: target the origin server directly (bypasses F5 XC)TARGET_ORIGIN_IP=20.10.5.100เมื่อตั้งค่า TARGET_FQDN แล้ว สคริปต์ชุดทั้งหมดจะส่งทราฟฟิกไปยัง https://<TARGET_FQDN>/... F5 XC load balancer จะรับคำขอ ใช้นโยบายความปลอดภัย และส่งต่อทราฟฟิกที่ได้รับอนุญาตไปยังเซิร์ฟเวอร์ต้นทาง
การผสานรวมกับ CSD Demo
หัวข้อที่มีชื่อว่า “การผสานรวมกับ CSD Demo”ชุด javascript-exploits ได้รับการออกแบบมาโดยเฉพาะสำหรับการสาธิต การป้องกันฝั่งไคลเอนต์ บนเซิร์ฟเวอร์ต้นทาง ชุดนี้ตรวจสอบการทำงานของ CSD Phase 2:
ขั้นตอน Phase 2:
- เซิร์ฟเวอร์ต้นทางโฮสต์หน้า CSD demo ที่
/csd-demo/ - F5 XC CSD แทรก JavaScript สำหรับการตรวจสอบลงในหน้า
- ชุด javascript-exploits ของตัวสร้างทราฟฟิกพยายาม:
- แทรกสคริปต์แบบ inline ที่เลียนแบบ Magecart skimmers
- แก้ไของค์ประกอบ DOM เพื่อเปลี่ยนเส้นทางการส่งแบบฟอร์ม
- โหลด JavaScript จากบุคคลที่สามที่ไม่ได้รับอนุญาต
- F5 XC CSD ตรวจพบการแก้ไขเหล่านี้และรายงานในแดชบอร์ด CSD
เพื่อใช้ชุด javascript-exploits:
# Ensure CSD is enabled on the F5 XC HTTP LB for the /csd-demo/ path# Then run the suite/opt/traffic-generator/suites/runner.sh javascript-exploitsการผสานรวมกับตัวจำลอง CDN
หัวข้อที่มีชื่อว่า “การผสานรวมกับตัวจำลอง CDN”เมื่อปรับใช้ตัวจำลอง CDN สถาปัตยกรรมจะเพิ่มชั้นการแคช:
Traffic Generator -> CDN Simulator -> F5 XC HTTP LB -> Origin Serverตัวจำลอง CDN อยู่ด้านหน้าของ F5 XC load balancer โดยแคชการตอบสนองและเพิ่มส่วนหัวที่คล้ายกับ CDN เพื่อส่งทราฟฟิกผ่าน CDN:
# Set TARGET_FQDN to the CDN Simulator's endpoint instead of F5 XC directlyTARGET_FQDN=cdn.demo.example.comสิ่งนี้มีประโยชน์ในการสาธิตวิธีที่ F5 XC จัดการทราฟฟิกที่มาผ่าน CDN รวมถึง:
- การระบุ IP ของไคลเอนต์จริงที่อยู่หลังส่วนหัวพร็อกซีของ CDN
- การใช้กฎ ไฟร์วอลล์แอปเว็บ (WAF) กับคำขอที่อาจถูกแก้ไขโดย CDN
- การจำแนกประเภท Bot Defense เมื่อ CDN แก้ไข browser fingerprints
การเปรียบเทียบทราฟฟิกแบบตรงกับผ่าน LB
หัวข้อที่มีชื่อว่า “การเปรียบเทียบทราฟฟิกแบบตรงกับผ่าน LB”ตัวสร้างทราฟฟิกรองรับการส่งทราฟฟิกทั้งผ่าน F5 XC และตรงไปยังต้นทาง การเปรียบเทียบนี้แสดงให้เห็นถึงคุณค่าของฟีเจอร์ความปลอดภัยของ F5 XC:
ผ่าน F5 XC (ค่าเริ่มต้น)
หัวข้อที่มีชื่อว่า “ผ่าน F5 XC (ค่าเริ่มต้น)”# Traffic goes: Generator -> F5 XC LB -> OriginTARGET_FQDN=demo.example.com /opt/traffic-generator/suites/runner.sh web-app-attacksผลที่คาดหวัง: WAF บล็อก SQL injection, XSS และ payload การแทรกคำสั่ง แดชบอร์ด Security Events แสดงคำขอที่ถูกบล็อกพร้อมรายละเอียดการละเมิด
ตรงไปยังต้นทาง (baseline)
หัวข้อที่มีชื่อว่า “ตรงไปยังต้นทาง (baseline)”# Traffic goes: Generator -> Origin (no security layer)TARGET_FQDN=20.10.5.100 /opt/traffic-generator/suites/runner.sh web-app-attacksผลที่คาดหวัง: payload ทั้งหมดไปถึงแอปพลิเคชันต้นทางโดยไม่ผ่านการกรอง Juice Shop และ DVWA ประมวลผล payload การโจมตี สิ่งนี้แสดงให้เห็นว่าจะเกิดอะไรขึ้นหากไม่มีการป้องกันของ F5 XC
ขั้นตอนการสาธิตแบบเปรียบเทียบคู่ขนาน
หัวข้อที่มีชื่อว่า “ขั้นตอนการสาธิตแบบเปรียบเทียบคู่ขนาน”สำหรับการสาธิตที่น่าประทับใจ ให้รันชุดเดียวกันทั้งสองวิธี:
- รัน
web-app-attacksโดยตรงกับต้นทาง — แสดงว่าการโจมตีสำเร็จ - รัน
web-app-attacksผ่าน F5 XC — แสดงว่าการโจมตีถูกบล็อก - เปิดแดชบอร์ด F5 XC Security Events เพื่อแสดงคำขอที่ถูกบล็อก
- เปรียบเทียบผลลัพธ์
meta.jsonของชุด: การรันแบบตรงแสดง “passed” มากกว่า (การโจมตีสำเร็จ), การรันผ่าน LB แสดง “failed” มากกว่า (การโจมตีถูกบล็อก)
TGEN_IP=$(terraform output -raw public_ip)ORIGIN_IP="20.10.5.100"LB_FQDN="demo.example.com"
# Run 1: Direct (baseline)ssh azureuser@${TGEN_IP} "TARGET_FQDN=${ORIGIN_IP} /opt/traffic-generator/suites/runner.sh web-app-attacks"
# Run 2: Through F5 XCssh azureuser@${TGEN_IP} "TARGET_FQDN=${LB_FQDN} /opt/traffic-generator/suites/runner.sh web-app-attacks"
# Compare resultsssh azureuser@${TGEN_IP} 'for d in $(ls -t /opt/traffic-generator/results/ | head -2); do echo "=== $d ==="; cat /opt/traffic-generator/results/$d/meta.json; echo; done'การปรับใช้ Terraform แบบหลายส่วนประกอบ
หัวข้อที่มีชื่อว่า “การปรับใช้ Terraform แบบหลายส่วนประกอบ”เมื่อปรับใช้สภาพแวดล้อม lab แบบสมบูรณ์ ให้ใช้ Terraform workspace หรือไดเรกทอรีแยกกันสำหรับแต่ละส่วนประกอบ:
# 1. Deploy origin servercd origin-serverterraform apply -var="subscription_id=YOUR_SUB_ID"ORIGIN_IP=$(terraform output -raw public_ip)
# 2. Configure F5 XC (manual or via separate Terraform)# Create origin pool -> HTTP LB -> attach WAF/Bot/API/CSD policies# LB_FQDN=demo.example.com
# 3. Deploy traffic generator targeting the F5 XC LBcd ../traffic-generatorterraform apply \ -var="subscription_id=YOUR_SUB_ID" \ -var="target_fqdn=demo.example.com" \ -var="target_origin_ip=${ORIGIN_IP}"
# 4. Generate trafficTGEN_IP=$(terraform output -raw public_ip)ssh azureuser@${TGEN_IP} '/opt/traffic-generator/suites/runner.sh web-app-attacks'