วิธีใช้ OWASP ZAP ทดสอบความปลอดภัยของเว็บแอปพลิเคชัน โดยใช้ OWASP Juice Shop


OWASP ZAP Vulnerability Scan

การทดสอบช่องโหว่ของเว็บแอปพลิเคชันเป็นสิ่งที่จำเป็นสำหรับนักพัฒนาและผู้ดูแลระบบ OWASP ZAP เป็นหนึ่งในเครื่องมือยอดนิยมที่ช่วยให้เราสามารถตรวจสอบความปลอดภัยของเว็บแอปได้อย่างมีประสิทธิภาพ

ในบทความนี้ เราจะพาไปรู้จักกับ OWASP ZAP และวิธีใช้งานร่วมกับ Juice Shop เพื่อค้นหาและวิเคราะห์ช่องโหว่ของเว็บแอป

OWASP ZAP คืออะไร

OWASP ZAP (Zed Attack Proxy) เป็นเครื่องมือ Open Source ที่ช่วยทดสอบความปลอดภัยของเว็บแอปพลิเคชันโดยการสแกนหาช่องโหว่ เช่น SQL Injection, Cross-Site Scripting (XSS), Security Misconfiguration และอื่น ๆ

ZAP มีฟีเจอร์ที่หลากหลาย เช่น การสแกนอัตโนมัติ การตรวจสอบความปลอดภัยแบบ Manual การสร้างรายงาน และการสนับสนุนการทำงานร่วมกับเครื่องมืออื่น ๆ ZAP เป็นเครื่องมือที่เหมาะสำหรับนักพัฒนาซอฟต์แวร์ นักทดสอบความปลอดภัย และผู้ที่สนใจในด้าน Cybersecurity

OWASP Juice Shop คืออะไร

OWASP Juice Shop เป็นเว็บแอปพลิเคชันที่สร้างขึ้นเพื่อใช้เป็นตัวอย่างในการทดสอบช่องโหว่ด้านความปลอดภัย มันเต็มไปด้วยช่องโหว่ยอดนิยมตาม OWASP Top 10 ซึ่งเหมาะสำหรับใช้เรียนรู้และฝึกฝนการทดสอบด้าน Security Juice Shop มีฟีเจอร์ที่หลากหลาย เช่น การจัดการบัญชีผู้ใช้ การชำระเงินออนไลน์ และการจัดการสินค้า ซึ่งทำให้มันเป็นตัวอย่างที่ดีในการทดสอบความปลอดภัยของเว็บแอปพลิเคชัน

ติดตั้งและรัน OWASP Juice Shop บน Local

Note

Juice Shop รองรับหลายวิธีในการรัน เช่น Docker, Node.js, Heroku, และ AWS ในที่นี้เราจะใช้ Docker เพื่อรัน Juice Shop บน Local

แต่วันนี้เราจะใช้ Docker ในการติดตั้ง Juice Shop เพราะมันง่ายและรวดเร็ว

docker run -p 8888:3000 bkimminich/juice-shop
  • รอจนกระทั่ง Juice Shop รันเสร็จ จากนั้นเปิดเว็บเบราว์เซอร์และไปที่ http://localhost:8888

Juice Shop

ติดตั้งและตั้งค่า OWASP ZAP

ติดตั้ง OWASP ZAP

  • ดาวน์โหลด OWASP ZAP จาก เว็บไซต์ทางการ
  • ติดตั้งตามขั้นตอนของระบบปฏิบัติการที่คุณใช้งาน
  • เปิด OWASP ZAP

ZAP

ตั้งค่า Proxy ใน OWASP ZAP

  • เปิด ZAP แล้วไปที่ ToolsOptionsNetworkLocal Server/Proxies
  • ตั้งค่า Address เป็น localhost และ Port เป็น 8080
  • กด OK เพื่อบันทึกการตั้งค่า

ZAP Proxy Settings

Note

การตั้งค่า Proxy จะช่วยให้ ZAP สามารถดักจับและวิเคราะห์การเชื่อมต่อระหว่างเว็บเบราว์เซอร์และ Juice Shop ได้ เรียกง่าย ๆ ว่า ทุก Request ที่ส่งจากเบราว์เซอร์จะถูกส่งไปยัง ZAP

ใช้ OWASP ZAP สแกน OWASP Juice Shop

สแกนอัตโนมัติ (Automated Scan)

  • เปิด OWASP ZAP → ไปที่แท็บ Quick Start
  • เลือก Automated Scan

ZAP Automated Scan

  • ใส่ URL ของ Juice Shop (http://localhost:8888) ในช่อง URL to attack
  • กด Attack เพื่อเริ่มการสแกน

ZAP Attack

  • รอจนกระทั่งการสแกนเสร็จสิ้น
  • เมื่อการสแกนเสร็จสิ้น คุณจะเห็นรายงานช่องโหว่ที่พบในแท็บ Alerts
  • วิเคราะห์และแก้ไขปัญหาที่พบ
  • ไปที่แท็บ Alerts คุณจะเห็นรายการช่องโหว่ เช่น
ตารางแสดงตัวอย่างการสแกนช่องโหว่
ระดับความเสี่ยงประเภทช่องโหว่วิธีแก้ไข
🔴 HighSQL Injectionใช้คำสั่ง SQL ที่ปลอดภัย (Prepared Statements) หรือใช้ ORM เพื่อลดความเสี่ยง
🟡 MediumContent Security Policy (CSP) Header Not Setเพิ่ม CSP Header เพื่อป้องกันการโจมตีแบบ XSS และการโหลดเนื้อหาจากแหล่งที่ไม่ปลอดภัย
🟢 LowX-Content-Type-Options Header Missingตั้งค่า X-Content-Type-Options: nosniff ใน Header เพื่อป้องกันการแอบเปลี่ยนประเภทไฟล์

ZAP Alerts

  • คลิกที่ช่องโหว่เพื่อดูรายละเอียดเพิ่มเติม เช่น คำอธิบาย วิธีการโจมตี และวิธีการแก้ไข
  • คุณสามารถคลิกที่ Request และ Response เพื่อดูรายละเอียดของ Request และ Response ที่ถูกส่งไปยัง Juice Shop
  • คุณสามารถใช้ข้อมูลเหล่านี้ในการวิเคราะห์และปรับปรุงความปลอดภัยของเว็บแอปพลิเคชัน
  • นอกจากนี้ ZAP ยังมีฟีเจอร์การสร้างรายงานที่ช่วยให้คุณสามารถบันทึกผลการสแกนได้
  • ไปที่ ReportGenerate Report
  • เลือกรูปแบบรายงานที่ต้องการ เช่น HTML, XML, Markdown
  • กด Generate เพื่อสร้างรายงาน
  • รายงานจะถูกบันทึกในโฟลเดอร์ที่คุณเลือก

ZAP Report

ตัวอย่างรายงานช่องโหว่จาก ZAP

Buy Me A Coffee