Что случилось
В менеджере пакетов PyPI нашли 450 пакетов для кражи криптовалюты. Вредоносные скрипты маскируются под популярные блокчейн-библиотеки для Python — например, bitcoinlib, ccxt, cryptocomare и другие. Чтобы обмануть разработчиков, хакеры используют технику тайпсквоттинга — меняют несколько букв в названии библиотеки, чтобы она выглядела как настоящая.
А дальше происходит следующее:
- Разработчик устанавливает фейковую библиотеку себе на компьютер.
- В папке %AppData% создаётся новое расширение для браузеров на основе движка Chromium — например, для Google Chrome, Opera или Edge.
- В это расширение записывается вредоносный скрипт.
- Когда пользователь копирует чей-то кошелёк себе в буфер обмена, скрипт меняет его на поддельный.
- В результате пользователь переводит криптовалюту не тому, кому собирался, а мошеннику.
Как замаскировали код вируса
Чтобы скрыть реальное назначение вируса, хакеры озаглавили все основные функции и переменные случайным набором китайских иероглифов. В программировании этот приём называется обфускацией — когда код специально делают нечитаемым, чтобы нельзя было узнать, как он работает.
В результате получилась вот такая картина:
Впрочем, дешифровать код вируса не составило труда. Дело в том, что в Python есть специальная функция eval(), которая выводит результат работы любого кода. То есть в неё можно передать любую функцию или выражение и посмотреть, как они работают.