Змеиный код: как распознать вредоносные Python-приложения и защититься от них

BOOX

Стаж на ФС с 2012 года
Команда форума
Служба безопасности
Private Club
Регистрация
23/1/18
Сообщения
25.637
Репутация
11.175
Реакции
59.715
RUB
50
В мире современных технологий Python стал одним из самых популярных языков программирования благодаря своей простоте и универсальности.


Однако, возросло и количество вредоносных Python-приложений, которые могут нанести серьезный ущерб как частным пользователям, так и организациям. В данной статье мы рассмотрим, какие угрозы представляют вредоносные Python-приложения, как их распознать и защититься от них.

nyy0w05oay43gvn5mryew7bm0pm123uh.png


Особенности Python с точки зрения разработки вредоносов

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

Чтобы зловред не обнаружил антивирус, создатели вредоносных приложений пишут самомодифицируемый код, который переписывает свой код и создает новые файлы с уникальными бинарными кодами при каждой установке.

Python популярный язык для очень большого количества задач, и разработка вредоносного ПО – совсем не основное. Однако у Python есть специфика в том, что для подключения дополнительных модулей или библиотек используется собственный репозиторий PyPi. И это создает дополнительный вектор для атаки. Есть уже несколько десятков пакетов, которые были загружены в этот репозиторий как легитимные, однако затем при использовании выясняется наличие в них вредоносных функций – от кражи аутентификационных данных до майнинга криптовалюты.

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

Благодаря синтаксису Python, ВПО может быть написано в короткие сроки, а также иметь высокую производительность и эффективность. Также он позволяет интегрировать различные модули и библиотеки, что делает вредоносное программное обеспечение, написанное на этом языке, более мощным и сложным для обнаружения и борьбы.

Кроме того, Python является кроссплатформенным языком программирования. Это означает, что вредоносное программное обеспечение на основе данного кода может внедряться в различные ОС без изменений. Так, он становится универсальным средством для работы с различными системами.

В 2015 году Symantec неуловимого трояна, который использовала группа, занимающаяся кибершпионажем, стоящая за семейством ВПО Duke. Seaduke (определенный Symantec как ) — малозаметный троян, который похищал информацию и использовался в атаках на ряд крупных целей правительственного уровня. С помощью Seaduke злоумышленники могут получать подробную информацию о боте/системе, обновлять конфигурацию бота, загружать и скачивать файлы, а также самостоятельно удалять вредоносное ПО из системы.

С использованием Python написано довольно много инструментов, которые применяются для тестирования на проникновение. Этими же инструментами часто пользуются злоумышленники (например, Impacket, LaZagne). Само по себе вредоносное ПО на нем пишут не так часто.

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

На практике, самый необычный случай с которым удалось столкнуться Angara SOC, это программа-вымогатель, разработанная на Python и использующая алгоритм Fernet для рекурсивного шифрования файлов. Никакого дополнительного расширения при этом не добавляется, но в начало зашифрованного файла идет добавление строки MR!

В качестве закрепления в скомпрометированной сети и коммуникации с так называемым сервером управления используется утилита ngrok для проброса порта 3389 (RDP). Это позволяет открыть доступ к внутренним ресурсам машины. Это ВПО использует группировка M0r0k T34m (Morok Team) (Sunset Wolf), которую мы выявили при расследовании инцидента в одной из российских компаний в феврале 2024 года.

В 2019 году сотрудники обнаружили угрозу для операционной системы macOS. Бэкдор, получивший имя , может загружать и исполнять на устройстве пользователя любой код на языке Python.

Типы вредоносных Python-приложений

Среди часто встречающихся типов ВПО, написанных на Python можно выделить несколько:
  1. Установщик — вредоносная программа, которая загружает на устройство жертвы и запускает другие зловреды, устанавливает трояны и рекламные системы без разрешения со стороны пользователя.
  2. Майнер — программа, которая использует мощности устройства для добычи криптовалюты. Как правило, майнеры отслеживают работу на устройстве и включаются, когда есть свободные ресурсы. Так они дольше остаются незамеченными.
  3. Стилер — ВПО, собирающее и передающее информацию своим создателям.
  4. Шифровальщик — программа-вымогатель. Когда пользователь скачивает и открывает файл с вымогателем, зловред шифрует данные на компьютере или во всей системе, блокируя к ней доступ. Обычно после этого злоумышленники требуют у жертвы выкуп за дешифровку и возвращение данных.

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

Методы защиты

Специфической защиты от вредоносных Python-приложений не существует. Для обеспечения информационной безопаности необходимо соблюдать ряд мер:

  • установить и обновлять антивирус;
  • своевременно обновлять ПО, чтобы избежать эксплуатацию уязвимостей;
  • не устанавливать ПО из непроверенных источников;
  • использовать надежные пароли и регулярно их менять;
  • включить двухфакторную аутентификацию;
  • регулярное создание бэкапов;
  • интегрировать в систему решение, которое анализирует и отслеживает аномалии.
Python является интерпретируемым языком – выполняет код построчно. Такая функция делает его уязвимым для кибератак. По этой причине одна из важных стратегий заключается в тщательной проверке и фильтрации внешних модулей и библиотек, используемых в приложении.

Кроме того, необходимо регулярно обновлять все приложения, чтобы устранить уязвимости и предотвратить кибератаки. Еще одной стратегией защиты может быть использование механизмов автоматического анализа кода, чтобы выявить потенциально опасные участки и избежать возможных угроз.

Для максимальной защиты, в том числе и от вредоносных Python-приложений, необходимо использовать межсетевой экран нового поколения (NGFW). Большая часть работы этого софта автоматизирована, что снижает риск ошибок и значительно увеличивает производительность компании. NGFW имеет возможность объединения с другими системами безопасности, связанные с идентификацией и аутентификацией, а также мониторингом и управлением уязвимостями. Путем интеграции можно создать комплексную систему защиты, которая обеспечит максимальную защиту предприятия – до .

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

Заключение

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

Для защиты от подобных угроз необходимо принимать меры предосторожности, такие как установка антивируса, регулярное обновление ПО, использование надежных источников и обучение сотрудников основам кибербезопасности. Только совместными усилиями и постоянным вниманием к безопасности можно обеспечить защиту от вредоносных Python-приложений и других киберугроз.


 
  • Теги
    python python-приложения вредонос
  • Сверху Снизу