Разработка собственных мобильных приложений — тренд современного IT-обучения и востребованная услуга на IT-рынке. Бизнесу нужны свои приложения онлайн-магазинов, сервисов заказов, бронирования и покупок, игр и развлечений. Приложения для заказа еды в соседнем кафе, заказ такси и запуск приготовления еды в мультиварке — этим никого не удивишь и эти преимущества цифрового мира мы используем каждый день. Приложение, которое превращает экран Android в экран iPhone или имитирует фальшивый входящий звонок, чтобы прервать неудобную беседу. Приложение с зажигалкой для концертов, приложение со скидками и приложение для записи к специалистам. Каждый день россияне в два клика скачивают подобные продукты из библиотек приложений, но это не так безопасно, как кажется. Илья Поляков, руководитель отдела анализа кода Angara Security, объясняет, почему после 24 февраля 2022 года разработка собственного ПО на базе открытого программного обеспечения open source в России несет большие риски для владельцев и пользователей.

Разработка с элементом риска

Разработчики по всему миру (и Россия — не исключение) используют для собственных продуктов open source. Это программное обеспечение с открытым исходным кодом, которое следующий автор может адаптировать под свои задачи, доработать, улучшить и дополнить, использовать в разработке другой программы с похожей архитектурой кода. Концепция open source — мировая практика, она родилась в ответ на проприетарное программное обеспечение коммерческих компаний с жесткими авторскими правами и ограниченным или полностью закрытым кодом.

Открытый исходный код значительно облегчает жизнь и пользователей, и разработчиков, и целых корпораций. Благодаря открытым разработкам в свободном доступе можно не тратить время на создание нужного кода с нуля, а встраивать уже готовые решения в архитектуру своего программного обеспечения. Так мы получаем нужные для бизнеса приложения намного быстрее и с меньшими затратами. Открытые исходные коды использовались для создания Google Chrome, Opera и «Яндекс-браузера», на основе open source появилась и операционная система Android.

Опасное «но» заключается в том, что злоумышленники могут добавлять в популярный зрелый open source компонент вредоносную функциональность. При использовании open source и заимствовании компонентов открытого кода разработчики обычно опасаются вредоносных Python-пакетов. Например, в этом году IT-специалисты столкнулись с такими вредоносными пакетами в репозитории Python Package Index (PyPI). Из них на машину разработчиков распаковывалось вредоносное программное обеспечение, которое старалось закрепиться в системе и дальше могло воровать конфиденциальные данные и получать доступ к криптовалютным кошелькам жертв, их браузерной истории и другим приложениям. Но в России эта проблема рисков сейчас намного шире: после 24 февраля 2022 года специалисты по кибербезопасности наблюдают появление Protestware. Это добавление в открытый код вредоносной функциональности, которая активируется только в киберпространстве РФ.

Открыт — значит уязвим

Любое программное обеспечение уязвимо для внешних угроз и вредоносных воздействий, но обнаружить опасность в ПО на open source удается проще и быстрее. Недостаток программ на открытом коде можно превратить в их преимущество: если создать специальный доверенный репозитарий (хранилище библиотек open source кода), то все необходимые компоненты для дальнейшего использования могли бы отфильтровывать и проверять службы информационной безопасности. Мы в Angara Security уверены, что уровень проверки можно подбирать в зависимости от критичности архитектурных элементов программного обеспечения. Скажем, одному разработчику для создания своего ПО требуется сторонний архив Java-классов, другому — питоновский пакет, третьему — докер-образ. Для каждого такого компонента можно установить уровень защиты и проверки: от автоматического сканирования антивирусом/песочницей и SCA-инструментом на предмет наличия вредоносов и известных уязвимостей до полуавтоматизированного поиска в исходном коде новых уязвимостей SAST-инструментами или даже экспертного анализа каждого коммита (последних изменений в коде).

Безопасность разработки надо соблюдать на самых ранних стадиях жизненного цикла ПО. На этом этапе можно снизить расходы на безопасность, в том числе, за счет минимизации количества доверенных компонент, что снизит и расходы на обеспечение их безопасности. К примеру, у «Лаборатории Касперского» есть принципы кибериммунитета. Программное обеспечение, которое разрабатывается в соответствии с этими принципами, обладает более и менее доверенными компонентами. Соответственно, для них оправданы разные уровни глубины проверок.

Пример разрушительного внедрения в открытый код — целенаправленные и взаимосвязанные атаки на цепочку поставок ПО с открытым исходным кодом, нацеленных на международный банковский сектор в 2023 году. Их обнаружила исследовательская группа Checkmarx. Для незаметного внедрения на сайт банка-жертвы злоумышленники загрузили вредоносный пакет на open source платформу NPM. Пакет давал им возможность подключаться к элементам страницы входа в банковскую систему, незаметно перехватывать данные для входа и передавать их в удаленное место. Зашифрованный в пакете файл не определялся онлайн-сервисами для сканирования на вирусы как вредоносный и незаметно внедрялся в инфраструктуру. Основным объектом атаки должна была стать страница входа в систему банка для мобильных устройств.

Своя экосистема как метод защиты

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

Минцифры РФ еще в 2022 году объявило о создании национального репозитария ПО с открытым кодом для укрепления цифрового суверенитета. С точки зрения государства, национальный репозитарий удобен тем, что программное обеспечение, созданное за бюджетные средства, может быть использовано снова и пригодится для реализации новых проектов. Разработчики такого ПО с открытым кодом получат среду для совместной работы, свободную от санкционных рисков. Государственный репозитарий создаст безопасную среду для работы с открытым кодом: каждое такое ПО будет проходить глубокие проверки на уязвимости и на потенциальное содержание вредоносных компонентов.