Открытый и опасный: в чем риски создания приложений на open source в России
Разработка собственных мобильных приложений — тренд современного ИT-обучения и востребованная услуга на ынке. Бизнесу нужны свои приложения онлайн-магазинов, сервисов заказов, бронирования и покупок, игр и развлечений. Каждый день россияне в два клика скачивают подобные продукты из библиотек приложений, но это не так безопасно, как кажется.
Руководитель отдела анализа кода Angara Security Илья Поляков объясняет, почему после 24 февраля 2022 года разработка собственного ПО на базе открытого программного обеспечения open source в России несет большие риски для владельцев и пользователей
Разработка с элементом риска
Приложение, которое программирует надпись на новогодней гирлянде. Приложение, которое превращает экран Android в экран iPhone или имитирует фальшивый входящий звонок, чтобы прервать неудобную беседу. Приложение с зажигалкой для концертов, приложение со скидками и приложение для записи к специалистам. Разработчики по всему миру (и Россия не исключение) используют для многих таких продуктов open source. Это программное обеспечение с открытым исходным кодом, которое следующий автор может адаптировать под свои задачи, доработать, улучшить и дополнить, использовать в разработке другой программы с похожей архитектурой кода. Концепция open source — мировая практика, она родилась в ответ на проприетарное ПО коммерческих компаний с жесткими авторскими правами и ограниченным или полностью закрытым кодом.
Открытый исходный код значительно облегчает жизнь и пользователей, и разработчиков, и целых корпораций. Благодаря открытым разработкам в свободном доступе можно не тратить время на создание нужного кода с нуля, а встраивать уже готовые решения в архитектуру своего программного обеспечения. Так мы получаем нужные для бизнеса приложения намного быстрее и с меньшими затратами. Открытые исходные коды использовались для создания Google Chrome, Opera и "Яндекс Браузера", на основе open source появилась и операционная система Android.
Опасное "но" заключается в том, что злоумышленники могут добавлять в популярный зрелый опенсорсный компонент вредоносную функциональность. При использовании open source и заимствовании компонентов открытого кода разработчики обычно опасаются вредоносных Python-пакетов. Например, в этом году IT-специалисты столкнулись с такими вредоносными пакетами в репозитории Python Package Index (PyPI). Из них на машину разработчиков распаковывался вредоносный софт, который старался закрепиться в системе и дальше мог воровать конфиденциальные данные и получать доступ к криптовалютным кошелькам жертв, их браузерной истории и другим приложениям. Но в России эта проблема рисков сейчас намного шире: после 24 февраля 2022 года специалисты по кибербезопасности наблюдают появление Protestware. Это добавление в открытый код вредоносной функциональности, которая активируется только в российском киберпространстве.
Открыт — значит, уязвим
Любой софт уязвим для внешних угроз и вредоносных воздействий, но обнаружить опасность в ПО на open source удается проще и быстрее. Недостаток программ на открытом коде можно превратить в их преимущество: если создать специальный доверенный репозитарий (огромное хранилище для данных и программ с открытым кодом), то все необходимые компоненты для дальнейшего использования могли бы отфильтровывать и проверять службы информационной безопасности. Мы в Angara Security уверены, что уровень проверки можно подбирать в зависимости от критичности архитектурных элементов программного обеспечения. Скажем, одному разработчику для создания своего ПО требуется сторонний архив Java-классов, другому — питоновский пакет, третьему — докер-образ (шаблон для создания и запуска приложения. — Forbes). Для каждого такого компонента можно установить уровень защиты и проверки: от автоматического сканирования антивирусом/песочницей и SCA-инструментом на предмет наличия "вредоносов" и известных уязвимостей до полуавтоматизированного поиска в исходном коде новых уязвимостей или даже экспертного анализа каждого коммита (последних изменений в коде).
Безопасность разработки надо соблюдать на самых ранних стадиях жизненного цикла ПО. На этом этапе можно снизить расходы на безопасность, в том числе за счет минимизации количества доверенных компонент, что снизит и расходы на обеспечение их безопасности. К примеру, у "Лаборатории Касперского" есть принципы кибериммунитета. ПО, которое разрабатывается в соответствии с этими принципами, обладает более и менее доверенными компонентами. Соответственно, для них оправданы разные уровни глубины проверок.
Пример разрушительного внедрения в открытый код — целенаправленные и взаимосвязанные атаки на цепочку поставок ПО с открытым исходным кодом, нацеленные на международный банковский сектор в 2023 году. Их обнаружила исследовательская группа Checkmarx. Для незаметного внедрения на сайт банка-жертвы злоумышленники загрузили вредоносный пакет на open source платформу NPM. Пакет давал им возможность подключаться к элементам страницы входа в банковскую систему, незаметно перехватывать данные для входа и передавать их в удаленное место. Зашифрованный в пакете файл не определялся онлайн-сервисами для сканирования на вирусы как вредоносный и незаметно внедрялся в инфраструктуру. Основным объектом атаки должна была стать страница входа в систему банка для мобильных устройств.
Своя экосистема как метод защиты
В российском киберпространстве подобные публичные кейсы кибератак с помощью внедрения в open source код уже встречаются, поэтому это направление в российских компаниях уже под особым контролем. Современное цифровое пространство предполагает сотрудничество и открытый обмен кодом, а значит, каждый такой код доступен не только добросовестным разработчикам, но и злоумышленникам.
Минцифры еще в 2022 году объявило о создании национального репозитария ПО с открытым кодом для укрепления цифрового суверенитета. С точки зрения государства национальный репозитарий удобен тем, что программное обеспечение, созданное за бюджетные средства, может быть использовано снова и пригодится для реализации новых проектов. Разработчики такого ПО с открытым кодом получат среду для совместной работы, свободную от санкционных рисков. Государственный репозитарий создаст безопасную среду для работы с открытым кодом: каждое такое ПО будет проходить глубокие проверки на уязвимости и на потенциальное содержание вредоносных компонентов.