Давным-давно, в далекой галактике, когда я еще учился на программиста, писали мы умные программы с использованием таких интересных технологий как COM, DCOM и CORBA.
В то время было очень интересно узнать и понять, что твоя программа может с легкостью использовать функционал самых разнообразных программ, установленных на компьютере.
Моя программа, написанные с использованием стандартов COM, являлась на самом деле неким «управляющим», который реализует некий функционал, управляя взаимодействием определенного набора COM-компонент с использованием стандартизированных интерфейсов. А если использовать DCOM или CORBA, то для меня тогдашнего студента, сетевое взаимодействие объектов казалось практически чудом.
Эти воспоминания ассоциативно возникли у меня вот по какой причине. Недавно один хороший человек прислал мне ссылку на статью, в которой говориться о том, что неугомонные исследователи Техасского университета разработали необычный компьютерный вирус, который обладает способностью создавать свой исполняемый код, «самособираясь» из кусков кода других, установленных на зараженном ПК приложений.
Перед исследователями была поставлена задача продемонстрировать возможность создания «зловреда», который бы не мог быть обнаружен традиционными антивирусными программами. Почему-то не удивляет, что эти исследования частично финансировались Американскими военными (война за «демократию» в киберпространстве?).
После заражения машины новый вирус выстраивает свое тело из небольших по размеру фрагментов программного кода, которые он получает из приложений, установленных на инфицированном ПК. Такими приложениями могут быть как обычный «Блокнот», так и «Internet Explorer». Фрагменты выбираются таким образом, чтобы они могли выполнять определенные, «нужные» для работы вируса задачи.
Хотя действия, выполняемые этим «экстримальным» зловредом всегда одинаковы, они всегда выполняются по разному, так как набор частей кода, из которых будет состоять вирус, на каждом конкретном компьютере будет уникальным. Как следствие, для антивирусных программ вирус будет выглядеть каждый раз по-новому, что существенно затруднит его детектирование.
Очевидно, что результаты этих исследований могут быть использованы для создания некоего «кибероружия» или же для создания защитных программ. Однако, при усложнении задач, которые будут ставиться перед такими «самособирающимися» программами, количество пригодных для них «доноров» кода будет сокращаться и разработчикам придется прикладывать дополнительные усилия для реализации поиска дополнительных источников кода, может быть даже и в сети. А в сети "кирпичиков" для построение такого вируса найдется любое необходимое количество.