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

Наша цель в KIProtect - попытаться упростить этот процесс для вас - как вы можете тратить время на науку о данных, но при этом обеспечивать защиту своих данных? Я сделал недавний доклад на PyData Edinburgh именно об этом, который вдохновил меня написать этот пост (полные слайды на GitHub).

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

Итак, с чего начать? Мы изучим ваши путешествия с помощью блок-схемы, потому что ... ну, они веселые. И, конечно, очень информативно.

Ваш первый выбор касается ваших данных. Лучшая политика - не использовать для начала никаких конфиденциальных данных. Начнем с этого:

Итак, вы можете сказать - ну ДА, мне нужны данные! Очевидно! Но я действительно хочу, чтобы вы подумали об этом. Итак, я спрошу еще раз - на этот раз немного по-другому.

Потому что ... ну, я действительно хочу, чтобы ты подумал об этом. Если бы у вас не было данных, действительно ли они понадобились бы вам, чтобы справиться с трудностями при их сборе? Во многих случаях было бы «приятно» иметь дополнительные данные или переменные, но на самом деле они вам не нужны - или вы не можете обосновать необходимость их сбора.

На этом этапе, связанном с неизвестным, у меня возникает много вопросов. Это звучит примерно так: «но, черт возьми, я просто еще не знаю, нужно ли мне это! Что, если позже выяснится, что последний знак имени человека действительно определяет его кредитоспособность? » (Мы можем вести много разговоров об этике этого типа разработки функций, но я оставлю это до другого).

Я прошу вас относиться к вашему первоначальному анализу как к исходному уровню; так же, как вы тестируете новую модель или технику. Во-первых, вы устанавливаете базовый уровень, который представляет собой ваш анализ данных на основе данных, которые представляют наименьший риск для конфиденциальности. Минимальная экспозиция, если хотите. Я обещаю, что вы сможете всегда добавить данные позже. Но в зависимости от того, что вы создаете или для чего используете анализ, удалить данные позже может быть сложно. Оптимальным результатом является установление базового уровня низкого риска для конфиденциальности и подтверждение того, что ваши данные содержат достаточно информации, при этом защищая конфиденциальность. Так что случай удаления конфиденциальных данных… намного меньше риска!

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

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

Если вы должны сохранить конфиденциальные данные и использовать истинные значения (например, почтовый индекс, город или уровень образования). Для этих данных определите, может ли K-Anonymity помочь сохранить конфиденциальность. Эта концепция была впервые представлена ​​доктором Латаньей Суини в ее статье k-анонимность: модель защиты конфиденциальности. Она предложила этот подход после того, как раскрыла данные о состоянии здоровья губернатора Массачусетса Уильяма Велда, связав регистрационные записи избирателей с анонимными больничными записями (это было после того, как он заявил, что выпуск медицинских карт будет полностью анонимным).

K-Anonymity защищает идентификационные атаки, создавая корзины, в которых любой отдельный человек вместо этого представлен в группе из K лиц. Это означает, что вы, по сути, пытаетесь уменьшить масштаб данных - используя город вместо почтового индекса или возрастной диапазон (35–45) вместо фактического возраста. Это позволяет в некоторой степени правдоподобно отрицать это (это не совсем моя запись - это мог быть любой из других 4 человек в моей группе!). При изучении K-анонимности важно также рассмотреть l-разнообразие и t-близость, которые обеспечивают повышенную конфиденциальность - особенно, если ваши группы имеют довольно несбалансированные цели или функции (т. Е. Все люди в группе имеют та же целевая переменная, поэтому знание группы раскрывает цель).

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

В KIProtect мы выпустили наш API гомоморфной псевдонимизации, который позволяет вам сохранять определенную достоверность и структуру ваших данных, сохраняя при этом конфиденциальность. Наш метод, основанный на криптографии, означает, что вы также можете де-псевдонимизировать данные, чтобы выявить истинные значения с помощью ключа (это замечательно, если вы не уверены, понадобятся ли вам истинные значения позже, поскольку вы можете восстановить их из псевдонимизированного значения). Метод псевдонимизации позволяет сохранять типы данных префикса - например, все годы в наборе данных могут быть сопоставлены с одним и тем же псевдонимом нового года - сохраняя информацию для тех дат или других данных, где связь с близлежащими точками является важной особенностью ( Хотите попробовать? Подпишитесь на наш Beta API).

Но скажите, что вы еще не уверены, нужно ли вам сохранять истинные ценности или нет… Давайте продолжим изучение с помощью нашей блок-схемы!

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

Если вы не проводите тестирование или исследования и вам все равно нужно использовать личные данные, следующим шагом будет изучение того, как безопасно выпустить этот анализ данных или модель. Продолжим ...

Если вы выпускаете модель машинного обучения, основанную на конфиденциальных данных, вы должны знать о машинном обучении с сохранением конфиденциальности - активной области исследований, целью которой является создание моделей, которые сохраняют индивидуальную конфиденциальность (или конфиденциальность данных с машины). обучающий сервис или платформа). Есть много активных исследователей по этой теме, в том числе Николас Папернот (в настоящее время в Google), команда SAP Leonardo и профессор Реза Шокри из Сингапурского университета и многие другие. Однако, если вы не обучили свою модель на личных данных (или заранее правильно анонимизировали данные), тогда вам хорошо идти сюда! (+1 за основы сохранения конфиденциальности!)

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

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

Лучшая стратегия - попытаться исправить модель, используя те же методы (машинное обучение с сохранением конфиденциальности или агрегированная анонимность). Это также указывает на то, почему наличие базового уровня должным образом анонимизированных (или псевдонимизированных, если это применимо) данных является отличной отправной точкой. Если информация не относится к частной или конфиденциальной информации, вы можете опубликовать ее, не опасаясь нарушения конфиденциальности. (Вы все равно должны учитывать, когда сами данные могут иметь риски для безопасности, такие как недавняя текущая карта Strava, на которой были обнаружены секретные военные базы, хотя это не обязательно представляло угрозу личной конфиденциальности).

Если вы каким-то образом уже запустили модель, обученную на частных данных, в производство, ПОЖАЛУЙСТА заблокируйте свой API и поговорите со своими группами безопасности и инженерами о предотвращении злонамеренного доступа к модели. Модель машинного обучения с открытым API в основном похожа на хорошую базу данных с учетными данными по умолчанию, находящуюся в общедоступной сети, поэтому действуйте соответственно (хотите узнать больше о рисках конфиденциальности и получении информации от атак с помощью черного ящика? См. Выводы о членстве Шокри атаки »бумага).

Заключение

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

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

Для получения дополнительной информации о решениях по обеспечению безопасности и конфиденциальности данных, над которыми мы работаем в KIProtect, посетите нас на https://kiprotect.com. Наш бета-API доступен для структурированной псевдонимизации, и у нас есть несколько других инструментов для анализа данных, сохраняющих конфиденциальность, так что не стесняйтесь зарегистрироваться и узнать больше.