Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบเครือข่าย >> ความปลอดภัยเครือข่าย

ทำไม Network Security Testing ไม่ควรทำด้วยตนเอง (Manual) เพียงอย่างเดียว?

Manual Security Testing คืออะไร?

Pentesters ใช้ทักษะและประสบการณ์ทดสอบด้วยมือเพื่อหาช่องโหว่ที่เครื่องมือ DAST หาไม่พบ เช่น ช่องโหว่การอนุญาต (Authorization Flaws) และ Business Logic Flaws ที่ต้องการ Pentester ที่มีทักษะ

ทำไมต้องทำ Security Testing?

วัตถุประสงค์หลักคือระบุภัยคุกคามและช่องโหว่ที่อาจถูกโจมตี เพื่อให้ระบบทำงานต่อไปได้โดยไม่ถูก exploit หรือแฮก

ทำไมต้องการ Manual Testing?

QA ทีมตัดสินใจทันทีจาก直覺 (Instinct) สามารถเรียกดูและทดสอบโค้ดได้ตามต้องการ ราคาถูกกว่าและได้ Feedback เร็วกว่า Automated Testing ในบางกรณี

Testing ใดทำด้วยมือได้?

Manual Testing คือการรัน Test Cases โดยไม่ใช้ Automation Tools ทดสอบจากมุมมอง End-user ให้แน่ใจว่าแอปทำงานตาม Requirement Document

ควรทำ Security Testing เมื่อไหร่?

ควรทำ Pen Test ก่อนนำระบบไป Production เมื่อระบบไม่ได้ถูกเปลี่ยนแปลงต่อเนื่องแล้ว Best Practice คือทดสอบก่อนนำเข้าระบบจริง

Manual Security Test หรือ Automated Security Test ไหนดีกว่า?

Logic Vulnerabilities ทดสอบด้วย Automated Tools ยาก ต้องเข้าใจ Scope และ Flow ของแอป Manual Testing ช่วยให้ Tester สร้าง Exploit เองได้ตามช่องโหว่และสถานการณ์

Security Testing ใน Manual Testing คืออะไร?

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

Security Testing ทำอย่างไร?

  • ใช้ Scripts ที่ปรับแต่งและซอฟต์แวร์สแกนอัตโนมัติ
  • Manual Testing ขั้นสูง: สร้าง Test Cases รุนแรง เช่น ทดสอบการเข้ารหัส ตรวจสอบ User Controls วิเคราะห์แอปพลิเคชันลึกเพื่อหา Nested Vulnerabilities

Manual Testing Techniques

  1. ศึกษา Software Requirement Specification
  2. วางแผนทดสอบที่ชัดเจน
  3. เขียน Test Cases ครอบคลุมทุก Requirement
  4. ขอ QA Lead Review Test Cases
  5. รัน Test Cases และบันทึก Bugs

Manual Testing Example

ทดสอบด้วยมือเพื่อหา Defects โดยไม่ใช้ Tools/Automation Scripts ใช้ Test Plan Document เป็นแนวทางให้ครอบคลุมการทดสอบทั้งหมด

Software Security Tests ทำอย่างไร?

  • ตรวจสอบ Access Control Management
  • Dynamic Penetration Testing
  • Static Code Analysis
  • ตรวจสอบ Server Access Controls
  • Entry/Exit Points
  • Session Management
  • Password Management
  • Brute Force Attacks

Requirement ใน Manual Testing

ระหว่างพัฒนาซอฟต์แวร์มีการทดสอบหลายขั้นตอน อาจเป็น Functional หรือ Non-functional Test Plan ระบุวิธีรัน Test Cases ด้วยมือ ใช้ Automation Frameworks เช่น Selenium WebDriver สำหรับ Automate Scenarios

ทำไมต้องการ Manual Testing?

ช่วยเข้าใจปัญหาทั้งหมดตั้งแต่ราก base Automated Testing ประหยัดเวลาและให้ผลเร็ว แต่อาจพลาดบริบท Manual Testing เข้าใจปัญหาได้ลึกซึ้งกว่า (Conceptually และ Emotionally)

Testing ใดอยู่ใน Manual Testing?

  • Acceptance Testing
  • White Box Testing
  • Black Box Testing

Manual Testing หมายถึงอะไร?

ตรวจสอบซอฟต์แวร์หา Errors ด้วยมือ (เทียบกับ Test Automation) Tester ต้องทำหน้าที่เป็น User เพื่อให้แน่ใจว่าแอปทำงานตามที่ตั้งใจไว้

Manual Testing ทำอย่างไร?

Checker ตรวจสอบโปรแกรมหา Defects, Bugs และปัญหาอื่นๆ ทดสอบเหมือน End-user ให้แน่ใจ Features ทำงานถูกต้อง รัน Test Case ทีละอันด้วยมือ ใช้ Features ของแอปเหมือน End-user จริง

Performance Testing ด้วยมือ ทำอย่างไร?

  1. วิเคราะห์สภาพแวดล้อมทดสอบ
  2. กำหนด Performance Metrics
  3. วางแผนทดสอบประสิทธิภาพ
  4. ตั้งค่าสภาพแวดล้อมทดสอบ
  5. นำ Test Design ไปใช้
  6. รันการทดสอบ
  7. Analyze, Report, Retest

ทำไมเราต้องทำ Manual Testing?

หา Bugs และปัญหา Features ก่อนนำไป Deploy Validate Features หลัก ไม่ต้องใช้ Automated Tools รัน Test Cases หรือสร้าง Error Reports