เวิร์กสเตชันออนไลน์ของ OnWorks Linux และ Windows

โลโก้

ฟรีโฮสติ้งออนไลน์สำหรับเวิร์กสเตชัน

<ก่อนหน้านี้ | เนื้อหา | ถัดไป>

11.4.2. หน่วยความจำเสียหาย


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

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

• Stack Buffer Overflow: เมื่อโปรแกรมเขียนข้อมูลไปยังบัฟเฟอร์บนสแต็กมากกว่าที่มีที่ว่าง หน่วยความจำที่อยู่ติดกันอาจเสียหายได้ ซึ่งมักจะทำให้โปรแกรมหยุดทำงาน

• Heap Corruption: หน่วยความจำฮีปได้รับการจัดสรร ณ รันไทม์ และมักจะมีข้อมูลจากโปรแกรมที่กำลังรันอยู่ ความเสียหายของฮีปเกิดขึ้นจากการจัดการข้อมูลเพื่อเขียนทับผ่านรายการที่เชื่อมโยงของพอยน์เตอร์หน่วยความจำฮีป

• Integer Overflow: โอเวอร์โฟลว์เหล่านี้เกิดขึ้นเมื่อแอปพลิเคชันพยายามสร้างค่าตัวเลขที่ไม่สามารถอยู่ภายในพื้นที่จัดเก็บที่จัดสรรได้

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


ระบบปฏิบัติการคลาวด์คอมพิวติ้งยอดนิยมที่ OnWorks: