Zhvilluesit e sistemit të menaxhimit të përmbajtjes Plone, i shkruar në Python dhe JavaScript/NodeJS, shpallën një incident, në të cilin në git-repozitorin e projektit në GitHub u shtua kod i dëmshëm. Fillimisht në repositorin u identifikuan tri ndryshime të shfaqura më 7 janar (1, 2, 3), që shtonin kod të dëmshëm në skedarët JavaScript të projektit (1, 2, 3). Analiza e incidentit zbuloi se integrimi i kodit të dëmshëm ishte realizuar për shkak të komprometimit të llogarisë së njërit prej zhvilluesve, token e aksesit të të cilit e kishin kapur kriminelët pas fillimit të një programi të dëmshëm në sistemin e tij.
Më 14 janar, llogaria e komprometuar u bllokua dhe zhvilluesve të projektit iu rekomandua të analizojnë komitetet nga 1 deri më 14 janar. Më 27 janar u zbulua se komitetet e vërejtura nuk ishin të vetmet, dhe sulmi preku pesë repozita të projektit (plone/volto, plone/mockup, plone/plone.app.mosaic, plone/critical-css-cli, plone/plonetheme.barceloneta), në të cilat u integrua fshehurazi kod i dëmshëm. Në rastin e repozitorit plone.app.mosaic, sulmuesve iu dha mundësia të zëvendësonin degën kryesore. Sulmi u realizua dy muaj pas kapjes së tokenit të aksesit të zhvilluesit.
Për integrimin e ndryshimeve, në vend të komiteteve të zakonshme, sulmuesit përdorën operacionin 'force push' (git push me opsionin '--force'), i cili lejon përmbysjen e degës në repozitorin e jashtëm me përmbajtjen e tyre dhe, për pasojë, shkruhet histórica e ndryshimeve (pas zëvendësimit, historia e degës tregon përmbajtjen e ngarkuar nga sulmuesit). Për të parandaluar një ndërrim të tillë të degëve në të ardhmen, zhvilluesit e Plone përfshinë në GitHub rregulla që bllokojnë operacionet 'force push' për degët kryesore dhe etiketat.
NĂ« repozitorin plone.app.mosaic, pĂ«r tĂ« vĂ«shtirĂ«suar identifikimin e komprometimit, sulmuesit kishin vendosur nĂ« degĂ«n kryesore njĂ« commit tĂ« dĂ«mshĂ«m, i cili kishte njĂ« datĂ« tĂ« rreme â 18 dhjetor, duke menduar se zona e kĂ«rkimit pĂ«r kodin e dĂ«mshĂ«m do tĂ« pĂ«rqendrohej nĂ« ndryshimet e shtuar pas aktivitetit tĂ« tyre tĂ« parĂ« nĂ« repozitor. Ndryshimi i dĂ«mshĂ«m u paraqit nĂ« commitin e vĂ«nĂ« nĂ« dukje si fillim i zhvillimit tĂ« njĂ« botimi tĂ« ri testues, por pĂ«rveç ndryshimit tĂ« numrit tĂ« versionit nĂ« metadata (nga 4.0.0a1 nĂ« 4.0.0a2.dev0), nĂ« skedarin JavaScript tĂ« ngarkuar gjatĂ« procesit tĂ« ndĂ«rtimit, prettier.config.js, u shtua kod i dĂ«mshĂ«m. PĂ«r tĂ« fshehur kodin gjatĂ« shikimit nĂ« terminal, ai u shtua nĂ« njĂ« linjĂ« me njĂ« operacion legjitim dhe u zhvendos jashtĂ« zonĂ«s sĂ« dukshme duke pĂ«rdorur hapĂ«sira. NĂ« ndĂ«rfaqen e GitHub, ky kod gjithashtu nuk shfaqej automatikisht dhe kĂ«rkonte tĂ« shtypje butonin 'Load Diff'.

Sulmi ishte më shumë i orientuar drejt zhvilluesve të projektit sesa drejt përdoruesve. Ndryshimet e dëmshme nuk u përfshinë në lëshimin final. Kodi i dëmshëm u aktivizua gjatë ndërtimit, shkarkonte eksploit për përmirësimin e privilegjeve, konfiguronte startimin automatik përmes thirrjeve të proceseve të tij nga skriptet e nisjes dhe lejonte menaxhim të largët. serverin. Përveç kësaj, komponenti i dëmshëm që instalohej kërkonte dhe dërgonte të dhëna të ndjeshme, si token e aksesit, profilet e shfletuesve dhe çelësat e portofolëve për kriptomonedha.
Burimi: opennet.ru
