За прошлую неделю российские разработчики зарегистрировали более 30 случаев внедрения вредоносного кода в OpenSource-продукты, направленного на подрыв деятельности программистов из РФ и Белоруссии. В чатах и Telegram-каналах разработчиков публикуется ссылка на таблицу, в которой энтузиасты собирают информацию об инцидентах. Среди них встречаются примеры внедрения как относительно безобидных вредоносных функций вроде выведения на экран баннера с антивоенным лозунгом, так и опасных.
К последним относятся вирусы-шифровальщики, которые повреждают файлы на устройстве пользователя, и другие вирусы, выводящие из строя пользовательские устройства.
OpenSource-продукт – это заранее написанный на языке программирования модуль, который может использоваться разработчиком для внедрения в свой проект той или иной функции. Такой функцией, как объяснил «Газете.Ru» директор департамента разработки R-Vision Евгений Федоров, может быть процедура авторизации или регистрации в приложении, отрисовка графиков и диаграмм по заданным параметрам и не только. Готовые OpenSource-продукты используют для быстрого добавления в свои разработки типовых опций, реализация которых с нуля требует много времени.
«Стандартной практикой является ситуация, когда в продукте используются тысячи внешних OpenSource-модулей», – сказал эксперт.
Зараженные модули автоматически определяют географию устройства, на котором они были запущены. Как заявил руководитель продвижения продуктов компании «Код Безопасности» Павел Коростелев, критериев, по которым программа это «понимает», может быть масса. Маркером может служить как IP-адрес устройства, так и временная зона, в которой он работает.
«Сейчас идет целенаправленная атака на Россию. OpenSource – это один из векторов, который используется. Нельзя сказать, что такого не было раньше, думаю, что сейчас об этом стали больше говорить и задумываться», – сообщил руководитель группы автоматизации «Аладдин Р.Д.» Антон Бауткин.
Заместитель генерального директора по науке и развитию компании ИВК Валерий Андреев полагает, что такие инциденты должны стать для государства еще одним поводом для создания отечественного репозитория для открытого кода.
«Нужно обеспечить постоянный мониторинг и анализ ресурсов этого репозитория на предмет обнаружения уязвимостей кода. У российских разработчиков уже есть соответствующие технологические, методические и организационные наработки», – сказал Андреев.
Зона и риски
OpenSource-продукты априори считаются доверенными. То есть разработчики привыкли интегрировать в свои программы код из репозиториев вроде GitHub и не уделять его проверке внимания. Сейчас же это доверие, по словам главы Комитета по интеграции отечественного ПО АРПП «Отечественный софт» и заместителя гендиректора Postgres Professional Ивана Панченко, подрывается.
«Раньше общепринятой практикой было «просто брать и использовать». Понятно, что продукт может содержать ошибки, но случаи намеренного внесения вредоносного кода были крайне редки. Теперь очевидно, что гораздо больше усилий потребуется для проверки используемого кода», – прокомментировал эксперт.
Конкретно те примеры заражения, которые были обнаружены энтузиастами на прошлой неделе, по словам Панченко, угрожают малому числу разработчиков. Однако он не исключил, что прямо сейчас на репозиториях могут храниться более опасные и искусно сделанные «закладки» в OpenSource-проектах, нацеленные на российских разработчиков.
Антон Бауткин из «Аладдин Р.Д.» считает, что это угрожает всем российским разработчикам. Сегодня все сложные продукты создаются с использованием OpenSource-компонентов. Если кампания зарубежных программистов будет расширяться, проблема может коснуться не только разработчиков, но и пользователей программ. В прошлом подобное уже случалось.
«Приведу реальный пример, который произошел пару лет назад. На сайте при обновлении OpenSource-библиотеки внутри нее оказался «майнер» криптовалют. Каждый пользователь, который заходил на этот сайт, начинал «майнить» криптовалюту, но, естественно, не для себя, а на адрес злоумышленника. Таким образом, долгое нахождение на данном сайте могло вызвать преждевременный выход из строя оборудования ПК», – сказал он.
Аналогичного мнения придерживается главный специалист аудита по информационной безопасности в T.Hunter Владимир Макаров. По его словам, через заражение OpenSource-продукта в программу может пробраться практически любая вредоносная функция: как рекламный баннер, так и перехватчик платежных данных.
Как быть
Так как OpenSource-модули публикуются вместе с исходным кодом, перед интеграцией в свой продукт их можно проверить на наличие вредоносных функций. Впрочем, есть и сложности, отметил Евгений Федеров из R-Vision.
«Ручной просмотр изменений самый эффективный, но не самый производительный способ, так как проверить все изменения в сотнях, а то и тысячах внешних зависимостей – титаническая ручная работа», – сказал он.
К тому же, по словам Google Developer Expert в направлении Android Евгения Мацюка, разработчики не привыкли к проверке OpenSource. Ранее в комьюнити разработчиков и подумать никто не мог, что в OpenSource-продукты можно добавить вирус.
«Я даже не припомню, чтобы кто-то проверял на зловредов. На аргументы безопасников «а вдруг» всегда отмахивались «мол, невозможно такое». Теперь же нужно тщательно проверять не только программный код, но и бинари, непосредственно использующиеся в продукте», – сказал он.
По словам Бауткина из «Аладдин Р.Д.», единственным системным решением обсуждаемой проблемы является анализ исходных кодов на предмет «закладок» — желательно не только в ручном, но и в автоматизированном режимах. Однако для последнего необходима разработка новых и доработка текущих инструментов, настроенных под эту задачу.