Kharkiv Quality Assurance Day 2019
ІГОР СТАРЧЕУС
«Впровадження GDPR у великій fin tech компанії»
Телеграм канал: wwww.t.me/goqameetup
Фейсбук сторінці: www.fb.com/goqaevent
Сайт: www.kharkiv.qaday.org/
2. GDPR - General Data Protection Regulation
Упрощенно это закон (вступил в силу 25 мая 2018), регулирующий отношения
между гражданами ЕС и теми, кто эти данные собирает, обрабатывает и
использует в своей работе (интернет-сервисы, веб-ресурсы, коммерческие и
некоммерческие компании, организации).
3. Мировой объем данных
90% мировых данных было
создано за последние 2 года.
Наша способность собирать и
хранить личные данные
возросла быстрее, чем
способность продумывать, как
управлять ими и защищать их.
Зеттабайт 1 миллион
миллионов гигабайт.
6. О чем НЕ поговорим
● Безопасность по дизайну
● Внутренние аудиты систем
● Утечки данных (вata bridge) - информирование пользователей про утечки
7. О чем поговорим
● Ключевые принципы GDPR
● Зачем внедрять/соответствовать GDPR
● Задача внедрения в финансовой компании
● Условия внедрения, описание структуры компании
● Какие данные удалять, а что же делать если данные нужны в будущем?
● Анонимизация данных
● Зачем и где решили применять хэширование
● Анонимизация в сторонних (3rd party) сервисах и соответствующие
проблемы
● Тестирование внедрения GDPR
● Подготовка тестовых данных
8. О чем поговорим
● Метрики для тестовой отчетности
● Подведение итогов внедрения
● Чек лист для внедрения GDPR
● Вопросы
9. GDPR - General Data Protection Regulation
Ключевые принципы GDPR:
● Законность, справедливость и прозрачность;
● Конкретные цели;
● Минимизация использованных данных;
● Точность;
● Ограничение хранения данных;
● Целостность и конфиденциальность/безопасность;
● Подотчетность (DPO, data protection officer).
11. Задача - внедрение в финансовой компании
Постановка задачи (все просто):
Соответствовать GDPR
12. Контекст внедрения GDPR
● Крупная финансовая компания (~350 сотрудников)
● Основной род деятельности компании выдача кредитов физ. лицам;
● Главный офис в Германии (есть офисы и в других странах);
● Основные рынки - Польша, Испания, Россия, Индия;
● Ресурсы для внедрения - менеджер, разработчик, тестировщик,
департамент юристов;
● Архитектура уже создана, GDPR не был учтен;
● Основная сущность в системе кредит;
● Дополнительная сущность клиент.
13. “Наивный”план как будем это делать
● Смотрим какие данные есть в системе
● Определяем конфиденциальные данные (sensitive data)
● Удаляем конфиденциальные данные
● Соответствуем GDPR
14. Проблемы с которыми столкнулись
● Данные нельзя просто взять и удалить - становятся неработоспособными
связи, структура данных в таблицах;
● Противоречивость - должны удалять, но хранить для финансовых аудитов;
● BI (business intelligence) отделу нужно большинство данных которые мы
планируем удалять;
● Сторонние сервисы хранят данные;
● Прошла уже половина времени;
● Данных ооооочень много ~ 100 000 кредитов в месяц. За 5 лет ~ 6 000 000;
● Данные хранятся во многих частях микро-сервисной архитектуры;
● В разных странах - разные сроки удаления данных.
20. Что анонимизируем
Все личные данные:
● Имена
● Телефоны
● Адреса
● Email
● Банковские данные - номера карт, счетов
21. Что НЕ анонимизируем
Не личные данные:
● Пол
● Семей статус
● Дату рождения
● Даты выдачи кредитов
● Даты платежей
22. Какие кредиты анонимизируем?
Кредиты существуют в нескольких статусах:
● До получения денег - LEAD
● После получения денег - CONFIRMED
● Когда наши отношения с клиентом закончены TERMINAL
23. Когда анонимизируем?
● По запросу клиента в службу поддержки (только в случае окончания
отношения, либо при отказе в кредитовании)
● По истечению конкретного периода времени
26. Процесс анонимизации
● Добавили планировщики (schedulers) раз в неделю
● Планировщики запускают задания (jobs)
● Задания находят подходящие кредиты и делают следующее:
○ Личные данные заменяют на Xxxxx
○ Email заменяют на anonymous@ourcompany.com
27. Тест данные для анонимизации
Создали тестовые кредиты автотестами;
Создали тестовые кредиты вручную, заполняем все необязательные поля;
Но не копируем с боя - в таком случае не соответствуем GDPR.
30. Боевые проблемы (production issues)
● Очень много данных для анонимизации
● Исправление - анонимизировать порционно (не все данные сразу)
● Выяснилось что упустили несколько полей и не анонимизировали их
● Исправление - запустим еще раз “дополнительно” анонимизацию
(реанонинимизация) уже анонимизированных данных
32. Проблемы ре-анонимизации
● Ре-анонинимизированные данные анонимизировались циклично
● Исправление:
○ Повторно анонимизированные имейлы заменить на reanonymous@ourcompany.com
○ Исключить reanonymous@ourcompany.com из кандидатов для анонимизации
33. Теперь точно все отлично, но есть один момент ...
● Нужно сохранять связи в анонимизированных сущностях для BI отдела:
○ кредиты и количество отправленных email/смс
○ связи с платежами/транзакциями (которые тоже анонимизированны)
● Данных хранятся в сторонних сервисах:
○ Записи телефонных разговоров
○ Документы - сгенерированные контракты
○ Исходящие email/смс
○ Логи
34. Связи в анонимизированных сущностях
Мы выбрали вариант
хеширования.
Применили хеширование к ID и
по хеш сумме можем
восстановить связи
MD5 хеш строки шаблона
<text>.<salt>
35. Анонимизация в сторонних сервисах
Не совсем очевидно все ли сторонние сервисы соответствуют GDPR.
● Мы сделали все от нас зависящее:
○ У некоторых не было API для отправки запроса на анонимизацию/удаление данных.
Пинговали их писать АПИ и потом проверяли.
● Документы хранятся в Amazone S3, мы удалили ссылки на документы и
больше не смогли к ним получить доступа.
37. ● На изучение и понимание соответствия GDPR уходит половина
отведенного на эту активность времени.
● Нагрузочное тестирование обязательно! На реальных объемах данных
● Сторонние сервисы отдельная огромная тема, многие не готовы,
общайтесь заранее по поводу API
Выводы
38. ● Берем с боя 1 анонимизированную сущность и ставим себе целью
определить реального человека по любой доступной информации
● Проверяем нагрузку во время анонимизации (порционно запускаем)
● Определяем сколько времени займет анонимизация
○ У нас была ситуация что поток новых клиентов больше чем скорость анонимизации
данных
“Лайфхак” - пока клинтские данные в очереди на анонимизацию, зарыли его
профиль, что б он не видел данных и не пожаловался.
Мониторинг
39. Check list действий
● Определяем конфиденциальные данные
● Определяем объемы данных и требуемые ресурсы для анонимизации
● Определяем сторонние сервисы хранящие конфиденциальную
информацию
● Реализовываем алгоритмы анонимизации
● Запускаем анонимизацию, на копии реальных мощностей и объемов
данных
● Анонимизируем в бою и мониторим
● Наблюдаем отношение уже анонимизированных данных к общему
объему данных для анонимизации
● 10 000/50 000 000 = 0.002%
● 100 000/50 000 000 = 0.02%
● 300 000/50 000 000 = 0.03%