Специалисты фирмы ReversingLabs обнаружили подозрительный код в ходе проверки репозитория PyPi, в котором собраны модули для языка программирования Python. В ReversingLabs считают, что это первый случай сокрытия вредоносного кода в скомпилированном байт-коде модуля Python. Байт-код труднее проверить на наличие подозрительных функций, чем обычный исходный код на языке Python, на котором, как правило, пишутся модули. До сих пор исследователи находили вредоносный код только в обычных текстовых файлах программ.
Злоумышленники стараются замаскировать наличие вредоносного кода. Для этого они используют разнообразные методы — запутывание кода, перевод его в кодировку base64, сжатие архиваторами и так далее. В одном случае вредоносный код прятали, сдвигая его далеко за край экрана редактора, чтобы при обычном просмотре код не был виден. Байт-код, полученный в результате компиляции модуля, не предназначен для чтения человеком, и при анализе его приходится сначала декомпилировать.
Модуль, в котором нашелся вредоносный код, назывался fshec2 и уже удален из репозитория PyPi. Он состоял из трех файлов. Два из них выглядели безвредными, но из них при исполнении вызывалась функция из третьего файла, заранее скомпилированного в байт-код. Эта функция связывалась с командным сервером, получая от него команды и дополнительные модули для кражи данных. Автор допустил несколько оплошностей при настройке командного сервера, на основании чего исследователи полагают, что он не самый опытный хакер.