กลับไปหน้าบทความ

อ่าน 3 นาที

ความหลากหลายของซอฟต์แวร์

ความหลากหลายของซอฟต์แวร์ เป็นสาขาการวิจัยเกี่ยวกับการทำความเข้าใจและการออกแบบความหลากหลายในบริบทของซอฟต์แวร์

ความหลากหลายของซอฟต์แวร์

ความหลากหลายของซอฟต์แวร์เป็นสาขาการวิจัยเกี่ยวกับการทำความเข้าใจและการออกแบบความหลากหลายในบริบทของซอฟต์แวร์

พื้นที่

มีการหารือเกี่ยวกับความหลากหลายของซอฟต์แวร์ในด้านต่างๆ ในการสำรวจเกี่ยวกับความหลากหลายเพื่อความทนทานต่อข้อผิดพลาด[ 1 ]หรือเพื่อความปลอดภัย[ 2 ] [ 3 ]

พื้นที่หลักๆ ได้แก่:

เทคนิค

การแปลงโค้ด

เป็นไปได้ที่จะขยายความหลากหลายของซอฟต์แวร์ผ่านกระบวนการแปลงอัตโนมัติที่สร้างความหลากหลายสังเคราะห์ "มัลติคอมไพเลอร์" คือคอมไพเลอร์ที่ฝังเอ็นจิ้นการกระจายความหลากหลาย[ 5 ]สภาพแวดล้อมการดำเนินการแบบหลายตัวแปร (MVEE) มีหน้าที่ในการเลือกตัวแปรที่จะดำเนินการและเปรียบเทียบผลลัพธ์[ 6 ]

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

แนวทางอื่นในการเพิ่มความหลากหลายของซอฟต์แวร์ในการป้องกันประกอบด้วยการเพิ่มความสุ่มในกระบวนการหลักบางอย่าง เช่น การโหลดหน่วยความจำ ความสุ่มหมายความว่าโปรแกรมเวอร์ชันเดียวกันทั้งหมดทำงานแตกต่างกัน ซึ่งจะสร้างความหลากหลายของพฤติกรรมของโปรแกรม แนวคิดนี้ได้รับการเสนอและทดลองครั้งแรกโดยStephanie Forrestและเพื่อนร่วมงานของเธอ[ 9 ]

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

ตัวดำเนินการการแปลงประกอบด้วย: [ 11 ]

  • การสุ่มจัดวางโครงสร้างโค้ด: เรียงลำดับฟังก์ชันในโค้ดใหม่
  • การสุ่มจัดวางตัวแปรส่วนกลาง: จัดลำดับใหม่และเพิ่มช่องว่างให้กับตัวแปรส่วนกลาง
  • การสุ่มตัวแปรแบบเรียงซ้อน: จัดเรียงตัวแปรใหม่ในแต่ละเฟรมเรียงซ้อน
  • การสุ่มเค้าโครงฮีป

ความหลากหลายของซอฟต์แวร์ตามธรรมชาติ

เป็นที่ทราบกันดีว่าฟังก์ชันการทำงานบางอย่างมีให้ใช้งานในรูปแบบที่สลับเปลี่ยนกันได้ ความหลากหลายตามธรรมชาตินี้สามารถนำมาใช้ประโยชน์ได้ ตัวอย่างเช่น ได้มีการแสดงให้เห็นแล้วว่ามีประโยชน์ในการเพิ่มความปลอดภัยในระบบคลาวด์[ 12 ]

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Software_diversity&oldid=1318125338 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ความหลากหลายของซอฟต์แวร์

ความหลากหลายของซอฟต์แวร์ เป็นสาขาการวิจัยเกี่ยวกับการทำความเข้าใจและการออกแบบความหลากหลายในบริบทของซอฟต์แวร์

พื้นที่

มีการหารือเกี่ยวกับความหลากหลายของซอฟต์แวร์ในด้านต่างๆ ในการสำรวจเกี่ยวกับความหลากหลายเพื่อความทนทานต่อข้อผิดพลาด [ 1 ] หรือเพื่อความปลอดภัย [ 2 ] [ 3 ]

การแปลงโค้ด

เป็นไปได้ที่จะขยายความหลากหลายของซอฟต์แวร์ผ่านกระบวนการแปลงอัตโนมัติที่สร้างความหลากหลายสังเคราะห์ "มัลติคอมไพเลอร์" คือ คอมไพเลอร์ ที่ฝังเอ็นจิ้นการกระจายความหลากหลาย [ 5 ] สภาพแวดล้อมการดำเนินการแบบหลายตัวแปร (MVEE)...

ความหลากหลายของซอฟต์แวร์ตามธรรมชาติ

เป็นที่ทราบกันดีว่าฟังก์ชันการทำงานบางอย่างมีให้ใช้งานในรูปแบบที่สลับเปลี่ยนกันได้ ความหลากหลายตามธรรมชาตินี้สามารถนำมาใช้ประโยชน์ได้ ตัวอย่างเช่น ได้มีการแสดงให้เห็นแล้วว่ามีประโยชน์ในการเพิ่มความปลอดภัยใน ระบบคลาว ด์ [ 12 ]