Последние атака на пользователей PyPI продемонстрировали качественный рост уровня атакующих

Discussion in 'Мировые новости. Обсуждения.' started by alexzir, 18 Feb 2023.

  1. alexzir

    alexzir Well-Known Member

    Joined:
    29 Oct 2019
    Messages:
    927
    Likes Received:
    2,194
    Reputations:
    25
    Код, найденный в вредоносных пакетах, очень напоминал легально зарегистрированные предложения.

    Более 400 вредоносных пакетов были недавно загружены в PyPI (Python Package Index), официальное хранилище кода для языка программирования Python, что является последним свидетельством того, что нацеливание на разработчиков программного обеспечения, использующих эту форму атаки, не является преходящим увлечением.

    Все 451 пакета, обнаруженных недавно охранной фирмой Phylum, содержали почти идентичные вредоносные полезные нагрузки и был загружен пакетами, которые следовали одна за другой. После установки пакеты создают вредоносное расширение JavaScript, которое загружается при каждом открытии браузера на зараженном устройстве, что обеспечивает устойчивость вредоносного ПО при перезагрузках.

    JavaScript отслеживает буфер обмена зараженного устройства на предмет помещения любых криптовалютных адресов, которые могут быть скопированы в него. Когда адрес найден, вредоносная программа заменяет его адресом, принадлежащим злоумышленнику. Цель: перехватывать платежи, которые разработчик намеревался произвести другой стороне.

    В ноябре Phylum выявил десятки пакетов, загруженных сотни раз, которые использовали сильно закодированный JavaScript, скрытно выполняющий схожий алгоритм:
    • Создал текстовое поле на странице
    • Вставил в него любое содержимое буфера обмена
    • Использовал серию регулярных выражений для поиска распространенных форматов адресов криптовалют
    • Заменил все идентифицированные адреса адресами, контролируемыми злоумышленником, в ранее созданной текстовой области
    • Скопировал текстовую область в буфер обмена
    “Если в какой-либо момент скомпрометированный разработчик скопирует адрес кошелька, вредоносный пакет заменит адрес адресом, контролируемым злоумышленником”, - написал технический директор Phylum Луи Ланг в ноябрьском сообщении. “Эта скрытая подмена адреса приведет к тому, что конечный пользователь непреднамеренно отправит свои средства злоумышленнику”.

    Новый метод обфускации кода

    Помимо значительного увеличения количества загружаемых вредоносных пакетов, последняя кампания также использует существенно иной способ заметания своих следов. В то время как пакеты, раскрытые в ноябре, использовали кодировку для сокрытия поведения JavaScript, новые пакеты записывают идентификаторы функций и переменных в то, что представляется случайными 16-битными комбинациями иероглифов китайского языка, найденных в следующей таблице:
    1.jpg
    рис. Таблица соответствия

    Реализация кода:
    Code:
    ''.join(map(getattr(__builtins__, oct.__str__()[-3 << 0] + hex.__str__()[-1 << 2] + copyright.__str__()[4 << 0]), [(((1 << 4) - 1) << 3) - 1, ((((3 << 2) + 1)) << 3) + 1, (7 << 4) - (1 << 1), ((((3 << 2) + 1)) << 2) - 1, (((3 << 3) + 1) << 1)]))
    
    этот код создает встроенную функцию chr и сопоставляет функцию со списком целых чисел [119, 105, 110, 51, 50]. Затем строка объединяет его в строку, которая в конечном итоге создает 'win32'.

    Исследователи объяснили суть применяемого способа обфускации:
    По словам исследователей, несмотря на то, что этот метод создает видимость сильно запутанного кода, в конечном счете его легко победить, просто наблюдая за тем, что делает код при запуске.

    Последняя партия вредоносных пакетов пытается извлечь выгоду из опечаток, которые разработчики допускают при загрузке одного из этих легитимных пакетов:
    • bitcoinlib
    • ccxt
    • cryptocompare
    • cryptofeed
    • freqtrade
    • selenium
    • solana
    • vyper
    • websockets
    • yfinance
    • pandas
    • matplotlib
    • aiohttp
    • beautifulsoup
    • tensorflow
    • selenium
    • scrapy
    • colorama
    • scikit-learn
    • pytorch
    • pygame
    • pyinstaller
    Пакеты, нацеленные на законный пакет vyper, например, использовали 13 имен файлов, в которых отсутствовал или дублировался один символ или были перенесены два символа правильного имени:
    • yper
    • vper
    • vyer
    • vype
    • vvyper
    • vyyper
    • vypper
    • vypeer
    • vyperr
    • yvper
    • vpyer
    • vyepr
    • vypre
    “Этот метод тривиально легко автоматизировать с помощью скрипта (мы оставляем это в качестве упражнения для читателя), и по мере увеличения длины имени законного пакета увеличиваются и возможные опечатки”, - пишут исследователи. “Например, наша система обнаружила 38 опечаток в пакете cryptocompare, опубликованных почти одновременно пользователем по имени pinigin.9494”.

    Наличие вредоносных пакетов в законных репозиториях кода, которые очень похожи на названия проверенных пакетов, датируется, по крайней мере, 2016 годом, когда студент колледжа загрузил 214 пакетов-ловушек в репозитории PyPI, RubyGems и NPM, которые содержали слегка измененные имена легальных пакетов. Результат: Код самозванца был выполнен более 45 000 раз на более чем 17 000 отдельных доменах, и более чем половине были предоставлены всемогущие административные права. С тех пор так называемые typosquatting attacks получили популярность.

    Названия всех 451 вредоносных пакетов, обнаруженных исследователями Phylum, включены в сообщение в блоге. Это неплохая идея для тех, кто намеревался загрузить один из законных пакетов, предназначенных для перепроверки того, что они случайно не получили вредоносного двойника.

    Источник: https://arstechnica.com/information...le-in-pypi-contained-crypto-stealing-malware/

    Malicious Package List
    • aaiohttp
    • aihottp
    • aiohhttp
    • aiohtpt
    • aiohtt
    • aiohttpp
    • aioohttp
    • aiothtp
    • aiottp
    • amtplotlib
    • aohttp
    • apndas
    • atplotlib
    • bautifulsoup4
    • bbitcoinlib
    • beaautifulsoup4
    • beatuifulsoup4
    • beautiffulsoup4
    • beautiflsoup4
    • beautiflusoup4
    • beautifullsoup4
    • beautifulosup4
    • beautifuloup4
    • beautifulsooup4
    • beautifulsop4
    • beautifulsou4
    • beautifulsoup44
    • beautifulsoupp4
    • beautifulsouup4
    • beautifulssoup4
    • beautifulsuop4
    • beautifusloup4
    • beautifuulsoup4
    • beautiifulsoup4
    • beautiulsoup4
    • beauttifulsoup4
    • beauutifulsoup4
    • beeautifulsoup4
    • beuatifulsoup4
    • beutifulsoup4
    • bicoinlib
    • bictoinlib
    • biitcoinlib
    • bitccoinlib
    • bitcinlib
    • bitcionlib
    • bitcoiinlib
    • bitcoilib
    • bitcoilnib
    • bitcoinlb
    • bitcoinlbi
    • bitcoinli
    • bitcoinlibb
    • bitcoinliib
    • bitcoinnlib
    • bitconilib
    • bitconlib
    • bitcooinlib
    • bitocinlib
    • bitoinlib
    • bittcoinlib
    • btcoinlib
    • bticoinlib
    • cccxt
    • ccolorama
    • ccryptocompare
    • ccryptofeed
    • ccx
    • ccxtt
    • ccxxt
    • cikit-learn
    • clorama
    • collorama
    • coloama
    • coloarma
    • coloorama
    • coloraa
    • coloramaa
    • coloramma
    • colorrama
    • coolrama
    • coorama
    • crptocompare
    • crptofeed
    • crpytocompare
    • crpytofeed
    • crryptocompare
    • crryptofeed
    • crypocompare
    • crypofeed
    • crypotcompare
    • crypotfeed
    • crypptocompare
    • crypptofeed
    • cryptcompare
    • cryptcoompare
    • cryptfeed
    • cryptfoeed
    • cryptoccompare
    • cryptocmopare
    • cryptocmpare
    • cryptocomapre
    • cryptocomare
    • cryptocommpare
    • cryptocompaare
    • cryptocompae
    • cryptocompaer
    • cryptocompar
    • cryptocomparee
    • cryptocomparre
    • cryptocomppare
    • cryptocomprae
    • cryptocompre
    • cryptocoompare
    • cryptocopare
    • cryptocopmare
    • cryptoeed
    • cryptoefed
    • cryptofed
    • cryptofede
    • cryptofee
    • cryptofeedd
    • cryptofeeed
    • cryptoocmpare
    • cryptoocompare
    • cryptoofeed
    • cryptoompare
    • crypttocompare
    • crypttofeed
    • crytocompare
    • crytofeed
    • crytpocompare
    • crytpofeed
    • cryyptocompare
    • cryyptofeed
    • csikit-learn
    • csrapy
    • cxct
    • cxt
    • cyptocompare
    • cyptofeed
    • cyrptocompare
    • cyrptofeed
    • ebautifulsoup4
    • ebsockets
    • ensorflow
    • erquests
    • eslenium
    • etnsorflow
    • feqtrade
    • ferqtrade
    • ffreqtrade
    • freeqtrade
    • freqqtrade
    • freqrade
    • freqrtade
    • freqtade
    • freqtarde
    • freqtraade
    • freqtrad
    • freqtradde
    • freqtradee
    • freqtrae
    • freqtraed
    • freqtrdae
    • freqtrde
    • freqtrrade
    • freqttrade
    • fretqrade
    • fretrade
    • frqetrade
    • frqtrade
    • frreqtrade
    • fyinance
    • homeworkte
    • homeworktee
    • homeworkteee
    • homeworkteeee
    • homeworktest
    • homeworktestt
    • homeworktesttt
    • homeworkwork
    • iaohttp
    • ibtcoinlib
    • itcoinlib
    • maatplotlib
    • maplotlib
    • matlotlib
    • matlpotlib
    • matpllotlib
    • matplolib
    • matploltib
    • matplootlib
    • matplotlb
    • matplotlibb
    • matplotliib
    • matplottlib
    • matpltlib
    • matpltolib
    • matpoltlib
    • matpplotlib
    • mattplotlib
    • mmatplotlib
    • mtaplotlib
    • mtplotlib
    • oclorama
    • olana
    • olorama
    • oslana
    • panads
    • panas
    • pandaas
    • pandsa
    • pgame
    • pinstaller
    • piynstaller
    • pnadas
    • pndas
    • ppandas
    • ppygame
    • ppyinstaller
    • ppython-binance
    • ppytorch
    • pthon-binance
    • ptorch
    • ptyhon-binance
    • ptyorch
    • pyagme
    • pygaame
    • pygae
    • pygamee
    • pygamme
    • pyggame
    • pygmae
    • pyhon-binance
    • pyhton-binance
    • pyiinstaller
    • pyinnstaller
    • pyinsaller
    • pyinsstaller
    • pyinstaaller
    • pyinstalelr
    • pyinstalle
    • pyinstalleer
    • pyinstallerr
    • pyinstalller
    • pyinstallr
    • pyinstallre
    • pyinstlaler
    • pyinsttaller
    • pyintaller
    • pyintsaller
    • pyisntaller
    • pynistaller
    • pythhon-binance
    • pythn-binance
    • pythno-binance
    • pytho-binance
    • python-bbinance
    • python-biance
    • python-biannce
    • python-biinance
    • python-binaance
    • python-binace
    • python-binacne
    • python-binanc
    • python-binancce
    • python-binancee
    • python-binane
    • python-binanec
    • python-binannce
    • python-binnace
    • python-binnance
    • python-binnce
    • python-bnance
    • python-bniance
    • python-ibnance
    • python-inance
    • pythonn-binance
    • pythoon-binance
    • pytoch
    • pytocrh
    • pytohn-binance
    • pyton-binance
    • pytoorch
    • pytorcch
    • pytorchh
    • pytorh
    • pytorrch
    • pytrch
    • pytthon-binance
    • pyttorch
    • pyygame
    • pyyinstaller
    • pyython-binance
    • pyytorch
    • rcyptocompare
    • rcyptofeed
    • reqtrade
    • rfeqtrade
    • ryptocompare
    • ryptofeed
    • scarpy
    • sccikit-learn
    • sccrapy
    • sciikit-learn
    • sciikt-learn
    • sciit-learn
    • sciki-learn
    • scikiit-learn
    • scikit-earn
    • scikit-elarn
    • scikit-laern
    • scikit-larn
    • scikit-leaarn
    • scikit-lean
    • scikit-leanr
    • scikit-lear
    • scikit-learnn
    • scikit-learrn
    • scikit-leearn
    • scikit-leran
    • scikit-lern
    • scikit-llearn
    • scikitt-learn
    • scikkit-learn
    • scikt-learn
    • scikti-learn
    • sckiit-learn
    • scraapy
    • scrapyy
    • scray
    • scrpay
    • scrrapy
    • seelenium
    • seelnium
    • seleenium
    • seleinum
    • seleium
    • seleniium
    • seleniu
    • seleniumm
    • seleniuum
    • selennium
    • selenum
    • sellenium
    • selneium
    • selnium
    • sickit-learn
    • sikit-learn
    • slana
    • sleenium
    • sloana
    • soalna
    • soana
    • solaa
    • solaan
    • solaana
    • solanaa
    • solanna
    • sollana
    • solna
    • solnaa
    • soolana
    • srcapy
    • sscikit-learn
    • sscrapy
    • sselenium
    • ssolana
    • teensorflow
    • tennsorflow
    • tenorflow
    • tenosrflow
    • tensofrlow
    • tensoorflow
    • tensorfflow
    • tensorfllow
    • tensorflo
    • tensorfloow
    • tensorfloww
    • tensorflw
    • tensorflwo
    • tensorlfow
    • tensorlow
    • tensorrflow
    • tensroflow
    • tenssorflow
    • tesnorflow
    • tesorflow
    • tnesorflow
    • tnsorflow
    • vper
    • vpyer
    • vvyper
    • vyepr
    • vyer
    • vype
    • vypeer
    • vyperr
    • vypper
    • vypre
    • vyyper
    • wbesockets
    • webbsockets
    • webockets
    • webosckets
    • websckets
    • webscokets
    • websocckets
    • websocets
    • websockeets
    • websockes
    • websockest
    • websocketss
    • websocketts
    • websockkets
    • websocktes
    • websockts
    • websokcets
    • websokets
    • websoockets
    • webssockets
    • weebsockets
    • wesbockets
    • wesockets
    • wwebsockets
    • yffinance
    • yfiance
    • yfiannce
    • yfiinance
    • yfinaance
    • yfinace
    • yfinacne
    • yfinancce
    • yfinancee
    • yfinane
    • yfinanec
    • yfinannce
    • yfinnace
    • yfinnance
    • yfinnce
    • yfnance
    • yfniance
    • ygame
    • yper
    • ypinstaller
    • ypthon-binance
    • ython-binance
    • ytorch
    • yvper
    • yyfinance
     
    #1 alexzir, 18 Feb 2023
    Last edited: 18 Feb 2023
  2. alexzir

    alexzir Well-Known Member

    Joined:
    29 Oct 2019
    Messages:
    927
    Likes Received:
    2,194
    Reputations:
    25
    Исследователи кибербезопасности ReversingLabs предупреждают о «пакетах-самозванцах», имитирующих популярные библиотеки, доступные в репозитории Python Package Index (PyPI). Всего был обнаружен 41 вредоносный пакет PyPI. Все они представляют собой поддельные варианты законных библиотек: HTTP, AIOHTTP, requests, urllib и urllib3.

    Интересно, что злоумышленники намеренно изменили в названии законных библиотек буквально 1 символ, чтобы невнимательные разработчики приняли поддельные библиотеки за настоящие. Вот названия этих вредоносных пакетов:
    aio5, aio6, htps1, httiop, httops, httplat, httpscolor, httpsing, httpslib, httpsos, httpsp, httpssp, httpssus, httpsus, httpxgetter, httpxmodifier, httpxrequester, httpxrequesterv2, httpxv2, httpxv3, libhttps, piphttps, pohttp, requestsd, requestse, requestst, ulrlib3, urelib3, urklib3, urlkib3,urllb, urllib33, urolib3, xhttpsp

    Все вышеуказанные пакеты содержат либо загрузчики, которые служат каналом для доставки вредоносного ПО на зараженные хосты, либо похитители информации, предназначенные для удаления конфиденциальных данных, таких как пароли и токены.

    Подробнее: https://www.securitylab.ru/news/536614.php
     
Loading...