Как найти вирус в файле?Наиболее простой, с точки зрения реализации, способ заключается в том, чтобы искать вирусную сигнатуру в «хвостах» всех программных секций. Более «правильно», найдя точку входа и команду перехода на код инициализации, рассчитать адрес, на который выполняет переход команда «CALL», и искать сигнатуру уже в этом фрагменте. Итак, файловые вирусы для UNIX существуют. Но сколько-нибудь заметного распространения они не имеют. Причин тому несколько, и все они действуют одновременно. Во-первых, следует отметить неоднородность мира UNIX. Если вести речь о переносимости вирусов в виде двоичных кодов, то перед вирусописателями возникает ряд труднопреодолимых барьеров. Это и несоответствие системы команд различных процессоров — например, исполняемый модуль для PowerPC/MacOS никогда не запустится на 80×86/FreeBSD. Это и различие в способах организации программных пакетов — например, для установки RPM-пакета в систему, поддерживающую DEB-пакеты, потребуется принудительная промежуточная перекодировка. Это и «плюрализм» в организации системных вызовов — в частности, операционная система Linux передает управление из 3-го кольца защиты в 0-е при помощи «INT 80h», BeOS при помощи «INT 25h», QNX при помощи «INT 28h», а FreeBSD и Solaris при помощи «CALL DWORD PTR 7:0», причем форматы передачи параметров через стек и регистры не совпадают. Во-вторых, распространению UNIX-вирусов препятствует серьезная политика безопасности, устанавливаемая по умолчанию. Идеология UNIX вынуждает любого пользователя работать с пониженными привилегиями. Для такого пользователя доступны на запись фактически только объекты файловой системы, владельцем которых он является. Любой файловый вирус, будучи запущен, заразит только программы «хозяина», но не тронет ни программ других пользователей, ни компонентов операционной системы. Система разграничения доступа, свойственная Windows NT, тоже может быть настроена подобным «суровым» образом, но делать это пользователю придется самостоятельно. Причем пользователь рискует лишить работоспособности многие СУБД, офисные пакеты, компьютерные игры и т. п., рассчитанные на «старые» версии Windows 9X.

Еще интересные статьи :