Skip to main content

การทดสอบ Fuzz คืออะไร?

การทดสอบ Fuzz หรือฟัซซิ่งเป็นวิธีการตรวจสอบเพื่อดูว่าโปรแกรมหรือระบบคอมพิวเตอร์จะตอบสนองต่อการป้อนข้อมูลและข้อมูลที่หลากหลายกระบวนการเกี่ยวข้องกับการสร้างข้อมูลบางประเภทไม่ว่าจะแบบสุ่มหรือสุ่มภายในข้อ จำกัด บางอย่างจากนั้นป้อนข้อมูลนั้นลงในโปรแกรมเพื่อทดสอบว่ามันจัดการข้อมูลที่ไม่คาดคิดได้อย่างไรรูปแบบพื้นฐานที่สุดของการทดสอบฟัซซี่เกี่ยวข้องกับการส่งลำดับการกดปุ่มหรืออักขระไปยังโปรแกรมและตรวจสอบว่าจะประมวลผลอย่างถูกต้องการทดสอบ Fuzz รุ่นที่ซับซ้อนมากขึ้นใช้ข้อมูลที่มีโครงสร้างซึ่งถูกจัดการแบบสุ่มและส่งไปยังโปรแกรมข้อมูลสามารถเข้าถึงโปรแกรมเป็นเหตุการณ์ระบบอินพุตแป้นพิมพ์สัญญาณเครือข่ายจำลองหรือแม้กระทั่งไฟล์ที่จะโหลด

มีส่วนต่าง ๆ ของโปรแกรมคอมพิวเตอร์ที่สามารถทดสอบด้วยเครื่องกำเนิดฟัซซี่อินเทอร์เฟซผู้ใช้กราฟิก (GUI) สามารถทดสอบได้โดยการสร้างลำดับของเหตุการณ์เมาส์และแป้นพิมพ์แบบสุ่มและตรวจสอบว่า GUI สามารถจัดการกับอินพุตได้โดยไม่ต้องขัดข้องการแช่แข็งหรือทำงานที่ไม่คาดคิดสามารถทดสอบโปรโตคอลเครือข่ายได้โดยอนุญาตให้เครื่องกำเนิดฟัซซี่เปลี่ยนชิ้นส่วนของแพ็กเก็ตข้อมูลที่ถูกต้องแบบสุ่มแล้วทำให้มั่นใจว่าโปรโตคอลสามารถทำงานต่อไปได้หลังจากได้รับข้อมูลที่ไม่ถูกต้ององค์ประกอบอินพุตพื้นฐานของเกือบทุกโปรแกรมสามารถตรวจสอบความสามารถในการต้านทานข้อผิดพลาดเช่นอินพุตที่ยาวเกินไปสำหรับประเภทการจัดเก็บข้อมูลอินพุตที่แตกต่างจากที่คาดไว้และอินพุตที่ไม่สมบูรณ์หรือไม่ถูกต้อง

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

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