Pirms dažām dienām tika paziņots, ka PyPI direktorijā (Python pakotņu indeksā) ir identificētas 11 pakotnes, kas satur ļaunprātīgu kodu.
Pirms problēmu identificēšanas pakotnes kopumā tika lejupielādētas aptuveni 38 000 reižu , un ir vērts atzīmēt, ka atklātās ļaunprātīgās pakotnes izceļas ar sarežģītu metožu izmantošanu, lai slēptu saziņas kanālus ar uzbrucēju serveriem.
Atklātās pakas ir šādas:
- svarīga pakete (6305 lejupielādes) e Svarīga pakete (12897): šie iepakojumi izveidot savienojumu ar ārēju serveri aizsegā, lai izveidotu savienojumu ar pypi.python.org lai nodrošinātu čaulas piekļuvi sistēmai (reverse shell) un izmantojiet programmu trevorc2, lai paslēptu sakaru kanālu.
- pptest (10001) un ipboards (946): izmantoja DNS kā saziņas kanālu informācijas pārsūtīšanai par sistēmu (pirmajā paketē resursdatora nosaukums, darba direktorijs, iekšējais un ārējais IP, otrajā - lietotājvārds un resursdatora nosaukums).
- pūces mēness (3285), DiscordSafety (557) y yiffparty (1859) — identificējiet Discord pakalpojuma marķieri sistēmā un nosūtiet to ārējam resursdatoram.
- trrfab (287): nosūta / etc / passwd, / etc / hosts, / home identifikatoru, resursdatora nosaukumu un saturu ārējam saimniekdatoram.
- 10 centi 10 (490) — izveidots reversais apvalka savienojums ar ārēju resursdatoru.
yandex-yt (4183): parādīja ziņojumu par uzlauzto sistēmu un novirzīja uz lapu ar papildu informāciju par papildu darbībām, kas izdota caur nda.ya.ru (api.ya.cc).
Tāpēc tiek minēts, ka īpaša uzmanība jāpievērš importantpackage un important-package paketēs izmantotajai ārējo resursdatoru piekļuves metodei , kas savas aktivitātes slēpšanai izmanto PyPI katalogā izmantoto Fastly satura piegādes tīklu.
Faktiski pieprasījumi tika nosūtīti uz pypi.python.org serveri (tostarp HTTPS pieprasījuma ietvaros SNI norādot python.org nosaukumu), bet uzbrucēja kontrolētā servera nosaukums tika iestatīts HTTP galvenē "Host ». Satura piegādes tīkls nosūtīja līdzīgu pieprasījumu uzbrucēja serverim, pārsūtot datus, izmantojot TLS savienojuma parametrus ar pypi.python.org.
PyPI infrastruktūru nodrošina Fastly Content Delivery Network, kas izmanto Varnish caurspīdīgo starpniekserveri tipisku pieprasījumu kešatmiņai un izmanto CDN līmeņa TLS sertifikātu apstrādi, nevis galapunktu serverus, lai pārsūtītu HTTPS pieprasījumus caur starpniekserveri. Neatkarīgi no mērķa resursdatora, pieprasījumi tiek nosūtīti uz starpniekserveri, kas identificē vēlamo resursdatoru pēc HTTP "Host" galvenes, un domēna resursdatora nosaukumi ir saistīti ar tipiskām CDN slodzes līdzsvarotāja IP adresēm, kas atrodamas visos Fastly klientos.
Uzbrucēju serveris ir reģistrēts arī CDN Fastly , kas piedāvā bezmaksas plānus un pat atļauj anonīmu reģistrāciju. Jāatzīmē, ka līdzīga shēma tiek izmantota pieprasījumu nosūtīšanai upurim, kad tiek izveidota "apgrieztā čaula", bet to iniciē uzbrucēja resursdators. No ārpuses mijiedarbība ar uzbrucēja serveri šķiet likumīga sesija ar PyPI direktoriju, kas ir šifrēta ar PyPI TLS sertifikātu. Līdzīga metode, kas pazīstama kā "domēna frontēšana", iepriekš tika izmantota, lai aktīvi slēptu resursdatora nosaukumu, apejot blokus. Tas ietvēra dažu CDN nodrošinātās HTTPS opcijas izmantošanu, fiktīva resursdatora norādīšanu SNI un pieprasītā resursdatora nosaukuma nodošanu HTTP resursdatora galvenē TLS sesijas ietvaros.
Ļaunprātīgās darbības slēpšanai papildus tika izmantota TrevorC2 pakotne, kas mijiedarbību ar serveri padara līdzīgu parastai tīmekļa pārlūkošanai.
Paketēs pptest un ipboards tika izmantota cita pieeja tīkla aktivitāšu slēpšanai, pamatojoties uz noderīgas informācijas kodēšanu pieprasījumos DNS serverim. Ļaunprātīga programmatūra pārraida informāciju, veicot DNS vaicājumus, kuros uz komandu un vadības serveri nosūtītie dati tiek kodēti, izmantojot apakšdomēna nosaukumā esošo base64 formātu. Uzbrucējs pieņem šos ziņojumus, kontrolējot domēna DNS serveri.
Visbeidzot, ja vēlaties uzzināt vairāk, informāciju varat atrast tālāk norādītajā saitē.