Кіріспе

Өзін-өзі өзгертетін бағдарламалық код, антивирустық бағдарламаларды жеңу немесе кері инженерия жасау үшін құрастырылған. Компьютерлік техникада полиморфты код – бастапқы алгоритмін сақтап, мутация жасау үшін полиморфты механизмді пайдаланатын код. Яғни, код әр орындалған сайын өзін өзгереді, бірақ кодтың функциясы (семантикасы) өзгермейді. Мысалы, 3+1 және 6-2 сияқты қарапайым математикалық өрнектер бірдей нәтиже береді, бірақ процессорда әртүрлі машиналық кодпен орындалады. Бұл тәсілді компьютерлік вирустар, шелл-кодтар және компьютерлік құрттар өздерін жасыру үшін кейде қолданады. Шифрлау – кодты жасырудың ең көп таралған тәсілі. Шифрлау кезінде кодтың негізгі бөлігі (пайдалы жүктеме деп те аталады) шифрланады және түсініксіз болып көрінеді. Кодтың бұрынғысынша жұмыс істеуі үшін, оған шифрлау функциясы қосылады. Код орындалғанда, бұл функция жүктемені оқиды және оны орындамас бұрын шифрлайды. Шифрлау ғана полиморфизм емес. Полиморфты мінез-құлыққа қол жеткізу үшін шифрлаушы/шығарғыш жұбы кодтың әрбір көшірмесімен мутацияланады. Бұл бірдей функцияны орындайтын кодтың әртүрлі нұсқаларын жасауға мүмкіндік береді.

Қауіпті код

Вирусқа қарсы бағдарламалық жасақтама мен кіргізуді анықтау жүйелерінің көпшілігі компьютерлік файлдар мен компьютерлік желі арқылы жіберілген дерек пакеттерін іздеу арқылы қауіпті кодты табуға тырысады. Егер қауіпсіздік бағдарламалары белгілі компьютерлік вирустар мен құрттарға сәйкес келетін үлгілерді тапса, олар қауіпті жою үшін тиісті шаралар қолданады. Полиморфты алгоритмдер мұндай бағдарламалық жасақтамаларға зиянды кодты тануды қиындатады, өйткені ол үнемі өзгеріп отырады. Зұлым бағдарламашылар шифрланған кодын вирус сканерлеу стратегиясынан қорғау үшін шифрланбаған шифрлау қозғалтқышын (және оның нәтижесіндегі шифрланған жүктемені) вирус немесе құрт таратылған сайын қайта жазуға тырысады. Вирусқа қарсы бағдарламалық қамтамасыз ету, осы зиянды бағдарламаларды сенімді түрде анықтау үшін шифрлау қозғалтқышының әртүрлі мутацияларындағы негізгі үлгілерді табу үшін күрделі үлгілерді талдауды қолданады. Эмуляция полиморфты бұрмалауды жеңу үшін қолданылуы мүмкін, зиянды бағдарламаны виртуалды ортада өздігінен ашуға мүмкіндік береді, содан кейін дәстүрлі қолтаңба сканерлеу сияқты басқа әдістерді пайдалануға болады. Мұндай виртуалды орта кейде «құм қорап» деп аталады. Егер дешифрленген жүктеме дешифрлеу алгоритмінің өзгеруіне қарамастан бірдей болса, полиморфизм вирусты мұндай эмуляциядан қорғамайды. Метаморфты кодтық әдістерді анықтауды одан әрі қиындату үшін қолдануға болады, себебі вирус жадыда инфекциядан инфекцияға дейін тұрақты болып қалатын код блоктары болмайынша орындалуы мүмкін. Бірінші полиморфты вирусты Марк Уошберн жазған. «1260» деп аталған вирус 1990 жылы жазылған. Жақсы танымал полиморфты вирус 1992 жылы хакер Dark Avenger антивирустық бағдарламалардан үлгіні танудан қашу мақсатымен жасады. Көп таралған және өте қауіпті полиморфты вирус – файлды жұқтырғыш «Вирут».