Skip to main content

ข้อบกพร่องด้านความปลอดภัยคืออะไร?

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

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

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

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