การทดสอบฟัซซี่คืออะไร?

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

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

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

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

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