ข้ามไปที่เนื้อหาหลัก

การทำ Vulnerability Scanning ด้วย ZAP ( Zed Attack Proxy )

Vulnerability Scanning (การสแกนหาช่องโหว่)

Vulnerability Scanning คือกระบวนการตรวจสอบระบบโดยอัตโนมัติเพื่อค้นหาช่องโหว่ด้านความปลอดภัย เช่น การตั้งค่าที่ผิดพลาด, ซอฟต์แวร์ที่ล้าสมัย หรือโค้ดที่อาจมีปัญหา

ลักษณะของ Vulnerability Scanning

  • ใช้ เครื่องมืออัตโนมัติ เช่น OWASP ZAP, Nessus, OpenVAS
  • มุ่งเน้นการ ระบุช่องโหว่ที่มีอยู่ แต่ไม่ทำการโจมตีเพื่อทดสอบ
  • มีการจัดอันดับความร้ายแรงของช่องโหว่ เช่น Low, Medium, High, Critical
  • สามารถใช้ ทำซ้ำได้ง่าย และเหมาะสำหรับการตรวจสอบ Compliance (มาตรฐานความปลอดภัย)

ตัวอย่างช่องโหว่ที่ตรวจพบ

  • การตั้งค่าที่ไม่ปลอดภัย (Security Misconfigurations)
  • การเปิดใช้โปรโตคอลที่ล้าสมัย เช่น TLS 1.0
  • ซอฟต์แวร์ที่ไม่ได้รับการอัปเดต
  • ช่องโหว่ในโค้ด เช่น SQL Injection, XSS

OWASP ZAP (Zed Attack Proxy)

เป็นเครื่องมือโอเพนซอร์สที่ถูกพัฒนาโดย OWASP (Open Web Application Security Project) สำหรับการทำ Security Testing โดยเฉพาะการตรวจสอบช่องโหว่ (Vulnerability Assessment) ใน เว็บแอปพลิเคชัน โดย ZAP ทำหน้าที่เป็น Proxy Server ที่ดักจับและวิเคราะห์ traffic ที่วิ่งระหว่างเบราว์เซอร์กับแอปพลิเคชัน

คุณสมบัติเด่นของ ZAP

  • สแกนหาช่องโหว่โดยอัตโนมัติ (Vulnerability Scanning): สามารถตรวจจับช่องโหว่เช่น SQL Injection, Cross-Site Scripting (XSS), Security Misconfigurations ฯลฯ
  • เป็นเครื่องมือที่ใช้งานง่าย: มี Graphical User Interface (GUI) ที่ใช้งานสะดวก และยังมี Command-line Interface (CLI) สำหรับผู้ที่ต้องการใช้งานแบบอัตโนมัติหรือเขียน script
  • ดักจับทราฟฟิกด้วย Proxy: ZAP ทำหน้าที่เป็น Proxy Server เพื่อดักจับและวิเคราะห์ Request/Response ระหว่างผู้ใช้งานและเว็บแอปพลิเคชัน
  • Active และ Passive Scanning:
    • Passive Scan: ตรวจสอบ traffic เพื่อหาช่องโหว่โดยไม่รบกวนการทำงานของแอปพลิเคชัน
    • Active Scan: ส่งคำขอที่มีการดัดแปลงเพื่อทดสอบความปลอดภัยของแอปพลิเคชัน ซึ่งอาจมีการเปลี่ยนแปลงข้อมูลในระบบ
  • Spidering และ Crawling: ค้นหาทุกหน้าและทุกลิงก์ของเว็บแอปพลิเคชันโดยอัตโนมัติเพื่อให้แน่ใจว่าไม่มีส่วนใดหลุดจากการตรวจสอบ
  • การใช้งานแบบ API: สามารถเขียนสคริปต์เรียกใช้ ZAP ผ่าน API เพื่อให้การทดสอบอัตโนมัติได้

Download ZAP

ลิงค์ download

ZAP Desktop UI

  • 1. แถบเมนู (Menu Bar) – ให้การเข้าถึงเครื่องมืออัตโนมัติและเครื่องมือแบบแมนนวลต่างๆ
  • 2. แถบเครื่องมือ (Toolbar) – ประกอบด้วยปุ่มที่ให้การเข้าถึงฟีเจอร์ที่ใช้งานบ่อยได้ง่าย
  • 3. หน้าต่างแสดงแผนผัง (Tree Window) – แสดงโครงสร้างของไซต์ (Sites tree) และโครงสร้างสคริปต์ (Scripts tree)
  • 4. หน้าต่างพื้นที่ทำงาน (Workspace Window) – แสดงคำขอ (requests), คำตอบ (responses) และสคริปต์ พร้อมทั้งอนุญาตให้แก้ไขได้
  • 5. หน้าต่างข้อมูล (Information Window) – แสดงรายละเอียดของเครื่องมืออัตโนมัติและเครื่องมือแบบแมนนวล
  • 6. ส่วนท้าย (Footer) – แสดงสรุปการแจ้งเตือนที่พบและสถานะของเครื่องมืออัตโนมัติหลัก

การทำ Automate Scan

  • Step 1: เลือก Automated Scan
  • Step 2: กรอก URL ที่ต้องการ scan จากนั้น เลือก Attack
  • Step 3: รอระบบประมวลผล
  • Step 4: เราสามารถดู report การ scan ได้ที่ tab Alerts โดยผลลัพธ์จะแบ่งเป็นหัวข้อและเรียงตามระดับความเสี่ยงจากมากไปน้อย
  • โดยมีระดับความเสี่ยงดังต่อไปนี้

    • High: เสี่ยงสูงมาก
    • Medium: เสี่ยงปานกลาง
    • Low: เสี่ยงน้อย
    • Informational: แจ้งเพื่อทราบ
    • False Positive: ให้คุณเข้าไปทดสอบดูว่าช่องโหว่ดังกล่าวเป็นช่องโหว่หรือไม่
  • Step 5: นอกจากนี้ยังสามารถ export report ในรูปแบบ html file ได้ที่ปุ่ม Generate report มุมขวาบน
  • Step 6: ตั้งค่าชื่อและที่เก็บไฟล์ แล้วเลือก Generate Report
  • Step 7: จะได้หน้าตาผลลัพธ์เป็นเว็บ HTML ดังนี้

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

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

การทำ Performance Testing ด้วย Postman

Performance Test คืออะไร? Performance Test คือการทดสอบซอฟต์แวร์หรือระบบ เพื่อประเมินความสามารถในการทำงานเมื่อมีภาระหรือโหลดต่างๆ เข้ามาในระบบ เช่น จำนวนผู้ใช้ที่เพิ่มขึ้น, ปริมาณข้อมูลที่ถูกประมวลผล หรือความซับซ้อนในการทำงานของระบบ เหตุผลที่ต้องทำ Performance Test วัดความเร็วของระบบ (Speed) ช่วยให้ทราบว่าระบบสามารถตอบสนองต่อการร้องขอ (request) ได้เร็วเพียงใดในสภาวะการใช้งานที่หลากหลาย ไม่ว่าจะเป็นเมื่อมีผู้ใช้จำนวนน้อยหรือมาก ประเมินความเสถียร (Stability) ตรวจสอบว่าระบบสามารถทำงานได้ต่อเนื่องภายใต้การทำงานหนักหรือโหลดที่สูง เช่นในช่วงที่มีจำนวนผู้ใช้เพิ่มขึ้นอย่างมาก หรือในสถานการณ์ที่ต้องประมวลผลข้อมูลจำนวนมาก ปรับปรุงประสิทธิภาพ (Optimization) ช่วยให้ระบุจุดอ่อนของระบบ เช่น API ที่ทำงานช้า หรือการใช้ทรัพยากรมากเกินไปในบางส่วน ซึ่งสามารถปรับปรุงได้เพื่อเพิ่มประสิทธิภาพ เตรียมพร้อมสำหรับการใช้งานจริง (Real-World Readiness) การทดสอบช่วยให้เราทราบถึงการตอบสนองของระบบในสภาวะที่ใกล้เคียงกับการใช้งานจริง เพื่อให้มั่นใจว่าเมื่อปล่อยระบบให้ผู้ใช้ใช้งาน จะไม่เกิดปัญหาการโหลด...

Python: Chat bot &Text to Speech ภาษาไทย ด้วย gTTS

วันนี้จะมาแนะนำทุกๆ คนเกี่ยวกับ การเขียนโปรแกรมง่าย ๆ เพื่อให้คอมพิวเตอร์อ่านออกเสียงตามที่เราได้พิมพ์ให้ โดย ใช้ library คือ gTTS และ play sound จะมีวิธีการเขียนอย่างไร มาดูกันเลย เริ่มจากติดตั้ง package gTTS และ play sound ก่อน                                                                          pip install gTTS                                                                                pip install playsound                                                    ...

รวมชุดคำสั่ง Assembly ของ AVR

บทความนี้ได้รวบรวมชุดคำสั่งภาษา assembly ของไมโคคอนโทรลเลอร์ตระกูล AVR และสรุปการใช้งานเป็นภาษาไทยอย่างง่ายหากมีข้อผิดพลาด ขออภัยด้วยครับ ชุดคำสั่งทางคณิตศาสตร์และลอจิก add Rd, Rr   :   Rd + Rr เก็บผลลัพธ์ไว้ใน Rd adc Rd, Rr   :   Rd + Rr + Carry flag  เก็บผลลัพธ์ไว้ใน Rd mul Rd, Rr   :   Rd x Rr ได้ผลลัพธ์เป็น 16 bit เก็บไว้ใน R0, R1 sub Rd, Rr   :   Rd - Rr เก็บผลลัพธ์ไว้ใน Rd sbc Rd, Rr   :   Rd - Rr - Carry flag  เก็บผลลัพธ์ไว้ใน Rd and Rd, Rr   :   Rd and Rr แบบ bit ต่อ bit or Rd, Rr   :   Rd or Rr แบบ bit ต่อ bit eor Rd, Rr   :    Rd exclusive or Rr แบบ bit ต่อ bit com Rd   :   complement (กลับบิต) Rd neg Rd   :   2'complement (ติดลบ) Rd inc Rd   :   Rd++ dec Rd   :   Rd-- clr Rd   :   เคลียร์ bit Rd เป็น 0 ชุดคำสั่งเคลื่อนย้ายข้อมูล mov R...