Маскирование данных: надежный способ защиты информации в средах разработки
По мере того как практика DevOps становится частью корпоративной культуры все большего количества компаний, а приложения и ИТ-сервисы – одними из ключевых элементов развития и роста, проблема защиты конфиденциальных данных становится все острее. Поэтому сегодня мы поговорим о маскировании ценной информации как о методе убить сразу двух зайцев.
Любой разработчик скажет вам, что для отработки концепций, развития приложений и реализации иных практических задач ему нужны реальные данные. В свою очередь офицер службы защиты ИТ возразит, что их ни в коем случае нельзя предоставлять, потому что подобная халатность может привести к утечке и серьезным проблемам для компании. И оба специалиста будут правы. Для того, чтобы разрешить эту конфликтную ситуацию на практике все чаще применяется такой метод защиты конфиденциальных данных, как маскирование.
Зачем нужно маскировать данные?
Процесс непрерывной разработки, тестирования и обновления ПО связан сразу с несколькими рисками. Во-первых, для развертывания сред тестирования и разработки обычно используются наиболее доступные публичные облачные сервисы, часто не обладающие высоким уровнем защиты и соответствующие большинству требований регуляторов относительно хранения конфиденциальных данных. Во-вторых, к разработке и тестированию не редко привлекаются сторонние специалисты — как специализированные компании, так и фрилансеры. Получение доступа к реальной бизнес-информации для таких подрядчиков — совершенно неоправданный риск для компании, и поэтому возникает потребность в маскировании персональных данных.
В свою очередь, использование синтетических наборов данных для тестирования может привести к тому, что программное обеспечение станет неработоспособным. Например, может оказаться, что количество записей в базе данных намного больше, либо поля, в которых разработчик ожидал увидеть «цифры», будут заполнены «буквами», и так далее. Любое несоответствие потребует доработки прикладного ПО (а это время и деньги), а также предоставления реальных данных, на которых происходят ошибки. Именно поэтому требуется решить одновременно две задачи: и защитить информацию, и оперативно предоставить её для внутренних и внешних проектных команд.
Маскирование - это не шифрование!
Не знакомые достаточно близко со сферой защиты ИТ часто путают понятия маскирования и шифрования данных, считая их эквивалентными методами организации защиты конфиденциальных данных. Кто-то относит шифрование к частным случаем маскирования, а порой эти понятия вообще ассоциируются друг с другом. Между тем, маскирование данных отличается от шифрования невозможностью восстановить исходный набор значений. То есть любой зашифрованный код можно расшифровать, имея открытый и закрытый ключ. Не обладая ключами, расшифровать код также можно, только для этого потребуется больше времени и хорошие алгоритмы для подбора этих самых ключей.
Маскирование — это совсем другое дело. Данные, которые вы получаете на выходе после процедуры маскирования, не могут указать на исходные значения. В частности, два запуска процесса маскирования могут дать различные результаты на выходе. Благодаря этому замаскированные записи можно смело передавать внешним сотрудникам и подрядчикам, не опасаясь огласки. Маскирование представляет собой эффективный метод защиты конфиденциальных статистических данных.
Как работает маскирование
Существуют различные подходы к маскированию. Они могут использовать как разные методы, так и различные схемы хранения данных и пополнения их набора для нужд тестирования. В частности, маскирование можно разделить на ручное и автоматическое, на статическое и динамическое. Тем временем, в качестве алгоритмов маскирования применяются методы псевдонимизации, обфускации и скремблирования. Выбор конкретного метода зависит от целей и особенностей использования маскированных данных. Однако следует учесть, что только порядка 50% проектов маскирования без специальных средств действительно доводятся до конца, а при усечении базы данных в ручном режиме часто возникают искажения форматов. Но самое негативное, что в результате часть записей может оказаться без изменения, сводя на нет саму инициативу маскирования. Автоматизированные системы маскирования становятся сегодня все более популярными, потому что они не только гарантируют повсеместные изменения записей, но могут самостоятельно обнаруживать конфиденциальную информацию, а также связанные с ней ключи и обращающиеся к ней приложения.
Если компании необходимо передавать готовые копии определенных объемов данных подрядчикам для тестирования или анализа работы определенных приложений, для этого прекрасно подойдут системы создания статических наборов замаскированных данных. Автоматизированные системы могут самостоятельно определить чувствительную информацию в предоставленных БД, ориентируясь на заранее заданные шаблоны и правила. Специальные фрагменты или целые базы данных для неавторизованных пользователей формируются по запросу, и в каждую выгрузку закладывается определенный объем замаскированной информации, которая не соответствует реальным данным, но повторяет их формат.
Динамическое маскирование применяется в тех случаях, когда среды тестирования и разработки должны получать доступ к реальным корпоративным данным. Как правило, система динамического маскирования устанавливается в качестве еще одного виртуального сервера и «на лету» маскирует записи, предоставляя подрядчикам доступ к уже искаженным данным. При этом объем базы и типовые характеристики записей остаются соответствующими реальности. Интересно, что средства динамического маскирования также позволяют дифференцировать доступ к реальной базе данных и ее «поддельной» копии. То есть пользователи, которым действительно необходимо работать с реальными данными, получат доступ к фактической БД, а те, у кого нет доступа, будут видеть поддельную базу данных, причем каждый — свою собственную.
Методы искажения данных
Поговорим теперь о методах самой подмены значений. Они могут быть различными в зависимости от того, какая ведется работа, и какие характеристики данных нужно сохранить. Например, если речь идет о персональных данных, то для сочетания фамилии, имени и отчества чаще всего применяется метод псевдонимизации. То есть система выбирает другую фамилию, а также меняет имя и отчество, сопровождая их новым идентификатором в системе. Таким образом становится невозможно отнести данные к тому же человеку, которому они принадлежали изначально.
Для таких записей, как, например, номера счетов или кредитных карт, применяется метод скремблирования. Он подразумевает получение случайных последовательностей, с сохранением общей характеристики данных. Таким образом, на выходе вы также получите 16 цифр, но совершенно случайной последовательности. Они позволят тестировать ПО, оперирующее платежными данными, но не будут нарушать права клиентов и подвергать опасности их платежные активы.
Наконец, одним из самых популярных является метод обфускации или замены на иные данные с сохранением функциональности, но затрудняя анализ и понимание информации. Обфускация давно и успешно применяется для маскировки программного кода, чтобы исключить возможность его анализа и кражи. Теперь же «запутанные» данные применяются и в целях тестирования. В качестве примеров обфускации можно замену, перемешивание, дисперсию числовых значение, редактирование/обнуление данных.
В зависимости от задач тестирования и разработки каждое поле исходной базы данных может быть замаскировано по-разному. Вы можете потребовать от системы сохранять гендерную принадлежность субъектов персональных данных или, например, не искажать их рост, ограничившись псевдонимизацией ФИО. Все зависит от того, как эти данные будут использованы далее. Наиболее совершенные системы маскирования позволяют также поддерживать связность полей значений друг с другом. Например, если вы замаскируете номер карты клиента, можно обеспечить одинаковое отображение этого номера в нескольких разрабатываемых продуктах, чтобы проверить, узнают ли системы в данном клиенте одного и того же человека (в данном случае — выдуманного).
Обычно параметры маскирования легко задаются в самих программных продуктах, которые отвечают за преобразование информации для сохранения ее конфиденциальности перед тем, как предоставить доступ к базе данных неавторизованным лицам.
Применение маскирования
Грамотная реализация системы маскирования данных позволяет решить сразу несколько проблем. Во-первых, замаскированные данные можно смело передавать специалистам по разработке и тестированию. Во-вторых, они прекрасно подходят для выявления статистических закономерностей и передачи информации во внешние аналитические системы. В-третьих, грамотно настроенное динамическое маскирование позволяет создать иллюзию доступа к реальным данным у злоумышленников, помогая поймать нарушителей при попытке кражи и публикации фейковых данных.
На сегодняшний день, учитывая ужесточение требований регуляторов, такие как GDPR, HIPAA или российский № 152-ФЗ, инструменты маскирования оказываются одним из необходимых компонентов построения комплексной системы защиты конфиденциальных данных. Поэтому компания K2 CLOUD использует все виды маскирования при разработке и тестировании ПО для любых клиентов с целью сохранения конфиденциальности важной информации. Современные решения позволяют работать с различными базами данных, включая Oracle, Microsoft SQL Server, SAP (Sybase) ASE, PostgreSQL, MySQL и другие, а также на облачных сервисах, таких как K2 CLOUD, Amazon AWS, SunGard и так далее. Благодаря этому становится возможным обеспечить повсеместную защиту данных и создать комплексную инфраструктуру безопасности при взаимодействии с разработчиками, аналитиками и специалистами по тестированию любого ПО.