รหัสโอลิโกมอร์ฟิก
รหัสโอลิโกมอร์ฟิกหรือที่รู้จักกันในชื่อรหัสเซมิโพลีมอร์ฟิกเป็นวิธีการที่ไวรัสคอมพิวเตอร์ ใช้ ในการปกปิดตัวถอดรหัสโดยการสร้างเวอร์ชันต่างๆ เพื่อหลีกเลี่ยงการตรวจจับโดยซอฟต์แวร์ป้องกันไวรัส มีลักษณะคล้ายกับรหัสโพลีมอร์ฟิกแต่ มีความซับซ้อนน้อยกว่า [ 1 ]
รหัสโอลิโกมอร์ฟิกทำงานโดยการเลือกชิ้นส่วนแต่ละชิ้นของตัวถอดรหัสแบบสุ่มจากตัวเลือกที่กำหนดไว้ล่วงหน้าหลายแบบ ในระหว่างการทำงานส่วนประกอบเหล่านี้สามารถรวมกันได้หลายวิธีเพื่อสร้างตัวถอดรหัสเวอร์ชันใหม่ที่แตกต่างกัน[ 2 ]
การมีตัวถอดรหัสที่เป็นไปได้หลายตัวทำให้การตรวจจับไวรัสด้วยลายเซ็นป้องกันมัลแวร์ทำได้ยากขึ้น อย่างไรก็ตาม ไวรัสแบบโอลิโกมอร์ฟิกส่วนใหญ่สามารถสร้างตัวถอดรหัสได้เพียงจำนวนจำกัด[ 2 ]ประมาณไม่กี่ร้อยตัวดังนั้นการตรวจจับด้วยลายเซ็นแบบง่ายๆ จึงยังคงเป็นไปได้ อีกวิธีหนึ่งในการตรวจจับตัวถอดรหัสแบบโอลิโกมอร์ฟิกคือการสร้างลายเซ็นสำหรับโค้ดแต่ละส่วนที่เป็นไปได้ จัดกลุ่มชิ้นส่วนที่สามารถใช้แทนกันได้เข้าด้วยกัน และสแกนไฟล์เพื่อหาลำดับของชิ้นส่วนตัวถอดรหัสจากกลุ่มที่สลับกัน การจำลองอาจใช้ในการตรวจจับไวรัส แต่ก็อาจใช้ทรัพยากรมากกว่าที่จำเป็น
ประวัติศาสตร์
ไวรัสตัวแรกที่รู้จักซึ่งใช้รหัสโอลิโกมอร์ฟิกคือไวรัส Whale DOSซึ่งถูกระบุในปี 1990 โดยไวรัสนี้เลือกจากตัวถอดรหัสที่แตกต่างกันหลายสิบตัว ไวรัส Windows 95 ตัวแรก ที่ใช้รหัสโอลิโกมอร์ฟิกคือไวรัส Memorialซึ่งสามารถสร้างรูปแบบตัวถอดรหัสที่แตกต่างกันได้ 96 รูปแบบ อีกตัวอย่างหนึ่งคือตระกูลไวรัสWordSwapของ รัสเซีย [ 1 ]