Безопасность приложений low code и no code

«Приложения без программирования» позволяют снизить затраты на IT, но значительно повышают риски ИБ. Как снизить риски внедрения?

Снижение рисков информационной безопасности при внедрении систем low code и no code.

Low code, no code, zero code и даже «зерокодинг» — это популярный класс бизнес-приложений, в которых задачи, традиционно требующие привлечения программистов, решаются самими бизнес-пользователями. Необходимая функциональность собирается из готовых шаблонов, интерфейс при необходимости рисуется в WYSIWYG-редакторе, логика работы описывается простыми схемами или очень короткими фрагментами кода. Со всем этим может справиться человек без специальной подготовки, достаточно уверенного владения компьютером. Благодаря low code время разработки простого мобильного приложения сокращается с полугода до пары недель, а промостраничку для интернет-магазина или новый отчет в системе можно сделать за пару часов.

Систем «без программирования» достаточно много: для разработки мобильных приложений есть Bubble, для конструирования сайтов — Webflow, для аналитики и работы с данными — Parabola и Airtable. Все эти системы помогают организациям снизить затраты на IT-обслуживание систем и быстрее развивать нужные бизнес-функции.

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

Привилегированные учетные записи

Мини-приложение, разработанное вашими сотрудниками внутри платформы low code или no code, зачастую для работы должно иметь доступ к различным базам данных и вычислительным ресурсам. Оно часто выполняется с привилегиями сотрудника, создавшего приложение, и любой последующий пользователь (например, посетитель мини-сайта) выполняет действия с этим уровнем доступа. Отсюда прямой путь к атакам с повышением привилегий, причем понять, какой из посетителей совершил вредоносную активность, по логам будет проблематично.

Снижение рисков:

  • принцип наименьших привилегий для любых соединений с базами данных и API из системы no code;
  • отдельные учетные записи для работы мини-приложений (применение учетных данных пользователя, разработавшего приложение, недопустимо);
  • специальные меры протоколирования, позволяющие отследить реальных пользователей мини-приложения в моменты, когда оно делает запросы к базам данных и API.

Неверное использование авторизации

Почти все платформы low code работают с понятием «соединение» (connector / connection), позволяющим им обращаться к различным базам данных и другим приложениям внутри организации. Архитектура систем такова, что пользователь, давая разрешение на установку соединения, не имеет прямого контроля над его дальнейшим использованием. Соединение может повторно использоваться для выполнения других запросов к тем же данным, в том числе запросов другого мини-приложения или вообще другого пользователя.

Снижение рисков:

  • частое обновление токенов авторизации в системах, связанных с платформой no code;
  • мониторинг активно используемых соединений;
  • модификация неверно написанных мини-приложений, использующих «чужие» соединения. Отключение ненужных соединений;
  • снова принцип наименьших привилегий;
  • обучение бизнес-пользователей, информирование о рисках избыточно широкого доступа к данным из приложений.

Утечки или модификация данных

Широкий доступ систем no code к данным и программирование неспециалистами легко приводят к ситуации, когда через запрос к мини-приложению можно получить больше данных, чем ожидал разработчик. А ошибки в обработке данных или синхронизации между системами могут привести к непреднамеренному и масштабному повреждению данных или созданию их неучтенных копий.

Снижение рисков:

  • ограничение доступа к данным, в том числе минимизация разрешений на запись и удаление;
  • сокращение числа сотрудников, уполномоченных создавать и модифицировать соединения и настраивать правила доступа к ним;
  • мониторинг передачи данных платформой no code, чтобы вовремя идентифицировать избыточно большие объемы информации.

Неверные настройки безопасности

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

Снижение рисков:

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

Плохая обработка ввода

Большинство приложений low code имеют какой-то интерфейс, в них можно вводить данные, например контактную информацию в форму на созданном сайте. Верификация форм ввода часто недостаточна или отсутствует, что позволяет проводить классические атаки типа SQL-инъекций.

Снижение рисков:

  • обучение бизнес-пользователей. В их мини-приложениях обязательно нужны проверка и санация любой входящей информации, будь то текстовая форма, файл CSV или что-то еще;
  • применение дополнительных инструментов санации, например, при передаче SQL-запросов из платформы low code в базу данных.

Уязвимости в подключаемых модулях

Многие платформы no code используют модульную архитектуру и имеют своеобразные магазины компонентов для пользовательских проектов. Уязвимости в этих компонентах зачастую очень серьезны, а отследить их и оперативно обновить стандартными инструментами невозможно. Подобные модули даже могут быть троянизированы, если их разработчика взломают.

Снижение рисков:

  • систематическая чистка платформы. Нужно удалять неиспользуемые плагины, модули и другие компоненты;
  • ограничение пользователей коротким списком разрешенных компонентов;
  • полная инвентаризация используемых компонентов и отслеживание уязвимостей, выхода новых версий;
  • использование узкоспециализированных систем защиты для конкретной платформы low code (например, Wordfence для WordPress).

Незаконная обработка данных

Базы данных, хранимых мини-приложениями, иногда подчиняются общим правилам конкретной платформы low code, и у администраторов в организации нет полного контроля над их расположением и содержанием. Это может приводить к нарушениям местного законодательства о порядке хранения конкретных видов данных (152-ФЗ, GDPR и тому подобное).

Снижение рисков:

Забытые приложения

Приложения no code легко сделать и легко оставить работать незамеченными. Сотрудник ушел — а его мини-приложение продолжает ежедневно запускаться и создавать какой-то отчет, например. Или им продолжает пользоваться другой сотрудник, но IT и ИБ об этом уже ничего не знают.

Снижение рисков:

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