Схема безопасности и соответствия требованиям Azure. Веб-приложение PaaS для PCI DSS

Обзор

Служба автоматизации Azure Blueprint по безопасности и соответствию требованиям предоставляет указания по развертыванию среды платформы как услуги (PaaS), которая соответствует требованиям стандартов безопасности данных в сфере платежных карт (PCI DSS 3.2) и подходит для сбора, хранения и получения данных владельца карты. Это решение автоматизирует развертывание и конфигурацию ресурсов Azure для общей эталонной архитектуры, демонстрируя, как клиенты могут обеспечить соответствие требованиям к безопасности и соответствию. Оно также служит основой для создания и настройки решений в Azure. Это решение реализует подмножество требований PCI DSS 3.2. Дополнительные сведения о требованиях PCI DSS 3.2 и этом решении см. в разделе документации по соответствию требованиям.

Служба автоматизации Azure Blueprint по безопасности и соответствию требованиям автоматически развертывает эталонную архитектуру веб-приложения PaaS с предварительно настроенными элементами управления безопасностью, чтобы помочь клиентам обеспечить соответствие требованиям PCI DSS 3.2. Решение состоит из шаблонов Azure Resource Manager и сценариев PowerShell, позволяющих развернуть и настроить ресурсы.

Эта архитектура призвана служить основой, которую клиенты должны адаптировать для конкретных требований, и не должна использоваться "как есть" в рабочей среде. Развертывания приложения в этой среде без изменений недостаточно для полного соответствия требованиям PCI DSS 3.2. Обратите внимание на следующее:

  • Эта архитектура является своего рода эталоном, который помогает клиентам использовать Azure в соответствии с требованиями PCI DSS 3.2.
  • Клиенты несут ответственность за проведение соответствующих проверок безопасности и соответствия внутренней оценки решения, созданного с использованием этой архитектуры, поскольку требования могут варьироваться в зависимости от специфики реализации каждого клиента.

Для соответствия требованиям PCI DSS требуется, чтобы квалифицированный аудитор систем безопасности (QSA) сертифицировал решение для рабочей среды. Клиенты несут ответственность за выполнение надлежащей оценки безопасности и соответствия любого решения, созданного с использованием этой архитектуры, так как требования могут варьироваться в зависимости от специфики реализации каждого клиента.

Инструкции по развертыванию см. здесь.

Схема и компоненты архитектуры

Служба автоматизации Azure Blueprint по безопасности и соответствию требованиям позволяет развернуть эталонную архитектуру для веб-приложения PaaS с внутренней базой данных SQL Azure. Веб-приложение размещается в изолированной среде службы приложений Azure, представляющей собой частную выделенную среду в центре обработки данных Azure. В этой среде осуществляется балансировка нагрузки трафика для веб-приложения между виртуальными машинами под управлением Azure. Эта архитектура также включает в себя группы безопасности сети и шлюз приложений, а также службы Azure DNS и Load Balancer.

Для расширенного анализа и создания отчетов базы данных SQL Azure можно настроить с индексами columnstore. Базы данных SQL Azure можно масштабировать или полностью отключить в соответствии с текущей активностью клиентов. Весь трафик SQL шифруется с помощью SSL и самозаверяющих сертификатов. Azure рекомендует использовать доверенный центр сертификации для повышенной безопасности.

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

Для повышения уровня безопасности все ресурсы в этом решении управляются как группа ресурсов с помощью Azure Resource Manager. Управление доступом на основе ролей Azure Active Directory используется для управления доступом к развернутым ресурсам, в том числе к ключам в Azure Key Vault. Мониторинг работоспособности системы осуществляется через Azure Monitor. Клиенты могут настроить обе службы мониторинга для ведения журналов и отображения работоспособности системы на единой панели мониторинга с удобной навигацией.

Для управления базой данных SQL Azure часто используется пакет SQL Server Management Studio, запущенный на локальном компьютере с доступом к Базе данных SQL Azure через безопасное соединение VPN или ExpressRoute.

Кроме того, Application Insights обеспечивает управление производительностью и аналитикой приложений в режиме реального времени с помощью журналов Azure Monitor. Корпорация Майкрософт рекомендует настроить подключение VPN или ExpressRoute для управления и импорта данных в подсеть эталонной архитектуры.

Схема эталонной архитектуры веб-приложения PaaS для PCI DSS

Это решение использует следующие службы Azure. Подробные сведения об архитектуре развертывания см. в разделе "Архитектура развертывания ".

  • Среда службы приложений версии 2
  • Шлюз приложений
    • (1) Брандмауэр веб-приложения
      • режим брандмауэра — предотвращение;
      • набор правил — OWASP 3.0;
      • прослушиватель — порт 443.
  • Application Insights
  • Azure Active Directory
  • Служба автоматизации Azure
  • Azure DNS
  • Azure Key Vault
  • Azure Load Balancer
  • Azure Monitor
  • Azure Resource Manager
  • Центр безопасности Azure
  • База данных SQL Azure
  • Хранилище Azure
  • Виртуальная сеть Azure
    • (1) Сеть /16
    • (4) Сети /24
    • (4) группы безопасности сети.
  • Веб-приложение Azure

Архитектура развертывания

В следующем разделе подробно описываются компоненты развертывания и реализации.

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

Узел-бастион. Узел-бастион является единой точкой входа, которая позволяет пользователям получать доступ к ресурсам, развернутым в этой среде. Узел-бастион предоставляет безопасное подключение к развернутым ресурсам, разрешая только удаленный трафик с общедоступных IP-адресов из надежного списка. Для разрешения трафика по протоколу удаленного рабочего стола (RDP) источник трафика должен быть определен в группе безопасности сети.

Это решение создает виртуальную машину в виде присоединенного к домену узла-бастиона со следующими настройками:

Среда службы приложений версии 2. Среда службы приложений Azure — это компонент службы приложений, предоставляющий полностью изолированную выделенную среду для безопасного выполнения приложений службы приложений Azure в большом масштабе. Эта функция изоляции необходима для выполнения требований PCI по соответствию.

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

Среды службы приложений позволяют использовать следующие средства управления и конфигурации:

Веб-приложение Azure: Служба приложений Azure позволяет клиентам создавать и размещать веб-приложения на выбранном языке программирования без управления инфраструктурой. Служба обеспечивает автоматическое масштабирование и высокий уровень доступности, поддерживает Windows и Linux и обеспечивает автоматическое развертывание из GitHub, Azure DevOps или любого репозитория Git.

Виртуальная сеть

Архитектура определяет частную виртуальную сеть с пространством адресов 10.200.0.0/16.

Группы безопасности сети. Группы безопасности сети содержат списки управления доступом (ACL), которые разрешают или запрещают трафик в виртуальной сети. Группы безопасности сети можно использовать для защиты трафика на уровне подсети или отдельной виртуальной машины. Существуют следующие группы безопасности сети:

  • 1 группа безопасности сети для шлюза приложений;
  • 1 группа безопасности сети для среды службы приложений;
  • 1 группа безопасности сети для Базы данных SQL Azure.
  • 1 группа безопасности сети для узла-бастиона.

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

Подсети: каждая подсеть связана с соответствующей группой безопасности сети.

Azure DNS. Служба доменных имен (DNS) отвечает за преобразование (разрешение) имени веб-сайта или службы в IP-адрес. Azure DNS является службой размещения доменов DNS, которая осуществляет разрешение имен на базе инфраструктуры Azure. Размещая домены в Azure, пользователи могут управлять записями DNS, используя те же учетные данные, API, инструменты и средства выставления счетов, что и для других служб Azure. Azure DNS также поддерживает частные домены DNS.

Azure Load Balancer. Azure Load Balancer позволяет клиентам масштабировать приложения и обеспечивать высокий уровень доступности служб. Load Balancer поддерживает как входящие, так и исходящие сценарии, обеспечивает низкую задержку и высокую пропускную способность, а также увеличивает масштаб до миллионов потоков для всех приложений, которые используют протоколы TCP и UDP.

Передаваемые данные

Azure по умолчанию шифрует весь обмен данными в центрах обработки данных в обоих направлениях. Все транзакции, направляемые в службу хранилища Azure через портал Azure, проходят по протоколу HTTPS.

Неактивные данные

Архитектура защищает неактивные данные, используя шифрование, аудит базы данных и другие меры.

Служба хранилища Azure. Для выполнения требований к шифрованию неактивных данных во всей службе хранилища Azure используется шифрование службы хранилища. Это помогает защищать и охранять данные держателей карт в рамках обязательств по безопасности организаций и соответствия требованиям, определенным в PCI DSS 3.2.

Шифрование дисков Azure. Служба Шифрование дисков Azure использует компонент BitLocker в Windows, чтобы обеспечить шифрование томов для дисков данных. Решение интегрируется с Azure Key Vault, что помогает управлять ключами шифрования дисков.

База данных SQL Azure. В экземпляре Базы данных SQL Azure используются следующие меры безопасности базы данных:

  • Использование Active Directory для аутентификации и авторизации обеспечивает централизованное управление удостоверениями для пользователей баз данных и других служб Майкрософт.
  • Аудит базы данных SQL позволяет отслеживать события базы данных и записывать их в журнал аудита в учетной записи хранения Azure.
  • В Базе данных SQL Azure настроено прозрачное шифрование данных, которое обеспечивает шифрование и расшифровку базы данных, связанных резервных копий и файлов журналов транзакций в реальном времени для защиты неактивных данных. Прозрачное шифрование данных позволяет защитить сохраненные данные от несанкционированного доступа.
  • Правила брандмауэра предотвращают любой доступ к серверам баз данных без надлежащих разрешений. Брандмауэр предоставляет доступ к базам данным на основе исходного IP-адреса каждого запроса.
  • Обнаружение угроз SQL позволяет немедленно выявлять потенциальные угрозы и реагировать на них. При этом поступают оповещения системы безопасности о подозрительных действиях с базами данных, потенциальных уязвимостях, атаках путем внедрения кода SQL и аномальных шаблонах доступа к базам данных.
  • Зашифрованные столбцы гарантируют, что конфиденциальные данные никогда не отобразятся как открытый текст внутри системы баз данных. После включения шифрования данных получить доступ к данным в виде открытого текста смогут только клиентские приложения и серверы приложений, у которых есть доступ к ключам.
  • Динамическое маскирование данных Базы данных SQL ограничивает возможность раскрытия конфиденциальных данных, маскируя их для непривилегированных пользователей или приложений. Динамическое маскирование данных может автоматически обнаруживать потенциально конфиденциальные данные и предлагать применение соответствующих масок. Это помогает определить и сократить доступ к данным таким образом, чтобы они не извлекались из базы данных с помощью несанкционированного доступа. Клиенты несут ответственность за настройку параметров динамического маскирования данных в соответствии со своей схемой базы данных.

Управление удостоверениями

Следующие технологии обеспечивают возможности управления доступом к данным держателей карт в среде Azure:

  • Azure Active Directory — это мультитенантная облачная служба каталогов и управления удостоверениями Майкрософт. Все пользователи этого решения создаются в Azure Active Directory, включая пользователей, обращающихся к Базе данных SQL Azure.
  • Аутентификация приложения выполняется с использованием Azure Active Directory. Дополнительные сведения см. в статье Интеграция приложений с Azure Active Directory. Кроме того, при шифровании столбцов базы данных используется Azure Active Directory для проверки подлинности приложения в Базе данных Azure SQL. Дополнительные сведения см. в статье о защите конфиденциальных данных в Базе данных SQL Azure.
  • Управление доступом на основе ролей Azure позволяет администраторам определять детальные разрешения доступа, предоставляя его ровно в той мере, которая необходима пользователям для выполнения работы. Вместо предоставления каждому пользователю неограниченных разрешений на ресурсы Azure администраторы могут разрешить только определенные действия для доступа к данным держателей карт. Доступ к подписке есть только у администратора подписки.
  • Azure Active Directory Privileged Identity Management позволяет клиентам свести к минимуму число пользователей, имеющих доступ к определенной информации, например данным держателей карт. Администраторы могут использовать Azure Active Directory Privileged Identity Management для обнаружения, ограничения и отслеживания привилегированных удостоверений, а также их доступа к ресурсам. Эту функцию можно также задействовать для получения административного JIT-доступа по требованию, когда это необходимо.
  • Защита идентификации Azure Active Directory обнаруживает потенциальные уязвимости, влияющие на удостоверения организации, настраивает автоматические ответы на обнаруженные подозрительные действия, связанные с удостоверениями организации, и расследует подозрительные инциденты, чтобы принять соответствующие меры для их устранения.

Безопасность

Управление секретами. Для управления ключами и секретами в решении используется Azure Key Vault. Хранилище ключей Azure помогает защитить криптографические ключи и секреты, используемые облачными приложениями и службами. Следующие возможности Azure Key Vault помогают клиентам защитить эти данные и получить доступ к ним:

  • Политики расширенного доступа настраиваются по мере необходимости.
  • Политики доступа к Key Vault определены с минимальными необходимыми разрешениями на использование ключей и секретов.
  • Все ключи и секреты в Key Vault имеют срок действия.
  • Все ключи в Key Vault защищены специализированными аппаратными модулями безопасности. Тип ключа — 2048-разрядный ключ RSA, защищенный с помощью HSM.
  • Всем пользователям или идентификаторам предоставляются минимальные необходимые разрешения с помощью управления доступом на основе ролей.
  • Для журналов диагностики хранилища ключей включен срок хранения не менее 365 дней.
  • Допустимые операции шифрования для ключей доступны только тем пользователям, которым они нужны.

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

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

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

Шлюз приложений Azure. Архитектура снижает риск уязвимостей системы безопасности с помощью Шлюз приложений Azure с настроенным брандмауэром веб-приложения и включенным набором правил OWASP. Доступны следующие дополнительные возможности:

Ведение журналов и аудит

Службы Azure обеспечивают детальную запись системных и пользовательских действий, а также сведений о работоспособности системы.

  • Журналы действий: журналы действий предоставляют аналитические сведения об операциях, выполняемых с ресурсами в подписке. Журналы действий помогают определить инициатора операции, время события и состояние.
  • Журналы диагностики.Журналы диагностики включают в себя все журналы, создаваемые каждым ресурсом. К этим журналам относятся системные журналы событий Windows, журналы службы хранилища Azure, журналы аудита Key Vault, а также журналы брандмауэра и доступа к шлюзу приложений. Все журналы диагностики обеспечивают запись данных в централизованную и зашифрованную учетную запись Azure для архивирования. В соответствии с требованиями конкретной организации пользователь может настроить срок хранения до 730 дней.

Журналы Azure Monitor. Эти журналы объединяются в журналы Azure Monitor для обработки, хранения и создания отчетов на панелях мониторинга. Собранные данные объединяются в отдельные таблицы для каждого типа данных в рабочих областях Log Analytics, что позволяет анализировать все данные независимо от первичного источника. Кроме того, Центр безопасности Azure интегрируется с журналами Azure Monitor, позволяя клиентам использовать запросы Kusto для доступа к данным событий безопасности и объединения их с данными из других служб.

В эту архитектуру входят следующие решения для мониторинга Azure:

  • Оценка Active Directory. Решение проверки работоспособности Active Directory оценивает риск и работоспособность серверных сред через регулярный интервал и предоставляет приоритетный список рекомендаций, относящихся к развернутой серверной инфраструктуре.
  • Оценка SQL. Решение "Проверка работоспособности SQL" регулярно оценивает риски и работоспособность серверных сред и предоставляет клиентам список рекомендаций, относящихся к развернутой серверной инфраструктуре и перечисленных в порядке приоритета.
  • Работоспособность агентов. Решение "Работоспособность агентов" сообщает количество развернутых агентов, их географическое распределение, а также количество агентов, которые перестают отвечать на запросы и агентов, которые отправляют операционные данные.
  • Аналитика журнала действий. Решение "Аналитика журнала действий" помогает анализировать журналы действий Azure во всех подписках Azure для клиента.

Служба автоматизации Azure. Это решение обеспечивает хранение и выполнение модулей Runbook, а также управление ими. В этом решении модули runbook помогают собирать журналы из Базы данных SQL Azure. Решение Отслеживание изменений службы автоматизации позволяет клиентам легко определять изменения в среде.

Azure Monitor.Azure Monitor помогает пользователям отслеживать производительность, поддерживать безопасность и выявлять тенденции. Решение предоставляет организациям возможность аудита, создания оповещений и архивации данных, включая отслеживание вызовов API в ресурсах Azure клиентов.

Application Insights.Application Insights — это расширяемая служба управления производительностью приложений (APM) для веб-разработчиков с поддержкой нескольких платформ. Application Insights обнаруживает аномалии производительности и может использоваться клиентами для мониторинга динамического веб-приложения. Эта служба содержит мощные аналитические средства, которые помогают клиентам диагностировать проблемы и понять, что пользователи фактически делают в их приложении. Эта служба помогает клиентам постоянно улучшать производительность и удобство использования.

Модель рисков

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

Веб-приложение PaaS для модели угроз PaaS pci DSS

Документация по соответствию

В документе Azure Security and Compliance Blueprint — PCI DSS Customer Responsibility Matrix (Схема безопасности и соответствия требованиям Azure. Таблица ответственности клиентов согласно PCI DSS) перечисляются обязанности контроллеров и обработчиков, согласно требованиям PCI DSS 3.2.

В документе Azure Security and Compliance Blueprint — PCI DSS PaaS Web Application Implementation Matrix (Схема безопасности и соответствия требованиям Azure. Таблица реализации веб-приложения PaaS для PCI DSS) содержатся сведения о том, какие требования PCI DSS 3.2 отражены в архитектуре веб-приложения PaaS, включая подробные описания того, как реализация соответствует требованиям каждой затронутой статьи.

Развертывание этого решения

Это решение автоматизации схемы безопасности и соответствия требованиям Azure состоит из файлов конфигурации JSON и сценариев PowerShell, которые обрабатываются службой API Azure Resource Manager для развертывания ресурсов в Azure. Подробные инструкции по развертыванию см. в этой статье.

Краткое руководство

  1. Клонируйте или скачайте этот репозиторий GitHub на локальную рабочую станцию.

  2. Просмотрите 0-Setup-AdministrativeAccountAndPermission.md и выполните предоставленные команды.

  3. Разверните тестовое решение с примером данных Contoso или осуществите пилотный проект в начальной рабочей среде.

    • 1A-ContosoWebStoreDemoAzureResources.ps1
      • Этот сценарий развертывает ресурсы Azure для демонстрации интернет-магазина, используя пример данных Contoso.
    • 1-DeployAndConfigureAzureResources.ps1
      • Этот сценарий развертывает ресурсы Azure, обеспечивающие поддержку рабочей среды для веб-приложения клиента. Клиенту нужно дополнительно настроить эту среду в соответствии с потребностями организации.

Инструкции и рекомендации

VPN и ExpressRoute

Чтобы установить защищенное подключение к ресурсам, которые развертываются в рамках этой эталонной архитектуры веб-приложений PaaS, необходимо настроить защищенный VPN-туннель или ExpressRoute. Правильно настроив VPN-подключение или ExpressRoute, клиенты могут добавить уровень защиты передаваемых данных.

При реализации защищенного VPN-туннеля с помощью Azure можно создать виртуальное частное подключение между локальной сетью и виртуальной сетью Azure. Это подключение осуществляется через Интернет и позволяет клиентам безопасно "туннелировать" информацию внутри зашифрованного канала между сетью клиента и Azure. VPN типа "сеть-сеть" — это безопасная проверенная технология, которая десятилетиями применяется на предприятиях всех размеров. Режим туннеля IPsec используется в этом решении как механизм шифрования.

Так как трафик в VPN-туннеле проходит через Интернет с VPN типа "сеть-сеть", Майкрософт предлагает другой, еще более защищенный вариант подключения. Azure ExpressRoute — это выделенный канал связи в глобальной сети между Azure и локальной средой или поставщиком услуг размещения Exchange. Подключения ExpressRoute не осуществляются через Интернет и обеспечивают повышенный уровень безопасности, надежности и быстродействия подключений с низким уровнем задержки по сравнению со стандартными подключениями через Интернет. Более того, так как это прямое подключение поставщика телекоммуникационных услуг клиента, данные не передаются через Интернет и поэтому недоступны в нем.

См. рекомендации по реализации защищенной гибридной сети, расширяющей локальную сеть в Azure.

Отказ от ответственности

  • Этот документ является исключительно информационным. МАЙКРОСОФТ НЕ ПРЕДОСТАВЛЯЕТ НИКАКИХ ГАРАНТИЙ, ЯВНЫХ, КОСВЕННЫХ ИЛИ ПРЕДУСМОТРЕННЫХ ЗАКОНОМ, В ОТНОШЕНИИ ИНФОРМАЦИИ В ЭТОМ ДОКУМЕНТЕ. Этот документ предоставляется как есть. Сведения и представления, выраженные в этом документе, включая URL-адрес и другие ссылки на интернет-сайт, могут изменяться без уведомления. Клиенты, читающие этот документ, берут ответственность за его использование на себя.
  • Настоящий документ не предоставляет клиентам юридических прав на интеллектуальную собственность в отношении продуктов или решений корпорации Майкрософт.
  • Клиенты могут скопировать и использовать данный документ для внутренних справочных целей.
  • Выполнение некоторых рекомендаций в этом документе может привести к более интенсивному использованию данных, а также сетевых и вычислительных ресурсов в Azure, а значит и к дополнительным затратам на лицензии или подписки Azure.
  • Эта архитектура призвана служить основой, которую клиенты должны адаптировать для конкретных требований, и не должна использоваться "как есть" в рабочей среде.
  • Этот документ разработан в качестве справочного материала и не определяет все способы, с помощью которых клиент может отвечать нормам и стандартам соответствия. Клиентам следует обратиться в юридический отдел своей организации, чтобы получить одобренные варианты пользовательских реализаций.