Маскування даних

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Маскування[1] (обфускація[2]) даних — це спосіб захисту конфіденційної інформації від несанкціонованого доступу шляхом заміни вихідних даних фіктивними даними або довільними символами. При цьому замаскована інформація виглядає реалістично і несуперечливо і може використовуватися в процесі тестування програмного забезпечення. У більшості випадків маскування застосовується для захисту персональних даних і конфіденційної інформації організації.

Використання маскування даних найбільш поширено в процесі розробки додатків. При цьому загальноприйнята практика полягає у використанні виробничих даних на всіх етапах розробки: при створенні додатків і розширень, на етапі тестування та налагодження.

Основною проблемою з точки зору керівництва підприємств[3] та організацій є те, що розробники додатків не завжди підлягають перевірці корпоративних служб безпеки, перш ніж отримати доступ до виробничих даних. Така практика може стати причиною виникнення серйозних уразливостей в системі безпеки, оскільки дані можуть бути скопійовані неавторизованими користувачами, а заходи безпеки на різних етапах виробництва легко обійти.

Загальна практика маскування даних на рівні організації повинна бути тісно пов'язана з практикою тестування систем управління і основною методологією і повинна включати в себе процеси для розподілу тестів підмножин даних, що маскуються.

Вимоги до замаскованих даних[ред. | ред. код]

Дані, піддані маскуванню, повинні відповідати таким критеріям:

  • Замасковані дані повинні бути зрозумілими з точки зору логіки додатка. Наприклад, розглянемо ситуацію, коли необхідно замаскувати елементи поштових адрес, а назви міст замінити іншими назвами. Якщо додаток має можливість перевірки поштового індексу або пошуку за поштовим індексом, то маскування не повинно заважати коректному виконанню цих функцій. Це ж стосується алгоритмів перевірки номерів платіжних карт, страхових свідоцтв тощо.
  • Маскування повинно повністю виключати можливість відновлення реальних виробничих даних із замаскованих. Наприклад, може бути загальновідомим, що в організації працюють 10 керівників вищої ланки, зарплата яких становить понад $300,000. Якщо в замасковану базу даних відділу кадрів включено 10 значень із зазначеного числового діапазону (понад $ 300,000), то зловмисник може відновити відомості, які залишились методом зворотньої розробки. Тому маскування даних повинно проводитися таким чином, щоб гарантувати захист записів, що містять персональні відомості, а не просто окремих елементів в розрізнених полях і таблицях.

Методи маскування даних[ред. | ред. код]

Заміна[ред. | ред. код]

Заміна є одним з найбільш ефективних способів маскування, що дозволяє зберегти початковий вигляд даних. Наприклад, якщо вихідна таблиця БД містить записи з інформацією про клієнтів, то реальні імена і прізвища можна замінити іменами і прізвищами, взятими з спеціально створеного (підготовленого) файлу. Так, на першому етапі маскування всі імена клієнтів можуть замінюватися довільними чоловічими іменами, а на другому етапі можна зробити вставку жіночих імен в осередку, відповідних клієнтів-жінок (за допомогою фільтрації списку клієнта по осередку із зазначенням статі). Застосування такого підходу до маскування дозволяє забезпечити належну анонімність записів і зберегти статеве співвідношення клієнтів в замаскованій таблиці. Важливо, що база даних при цьому виглядає реалістично, а факт маскування інформації не є очевидним.

Метод заміни можна застосовувати для полів БД, що містять дані різного роду: наприклад, телефонні номери, поштові індекси, номери платіжних карт, страхових свідоцтв і т. д. Важливо, що у випадку з номерами пластикових карт, фіктивні номери повинні успішно проходити перевірку за алгоритмом Луна.

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

Перемішування[ред. | ред. код]

Перемішування — дуже поширений спосіб маскування даних. Він схожий з методом заміни, розглянутим вище, але при перемішуванні дані для заміни беруться з тієї ж колонки таблиці, що і вихідні дані. Простіше кажучи, дані в колонці перемішуються випадковим чином.

Однак, маскування з використанням лише одного цього методу має серйозні недоліки. Зловмисник, який має доступ до частини реальних відомостей, може відновити інші дані шляхом аналізу методом «що, якщо?». Крім того, перемішування можна повернути назад, дешифрувати його алгоритм.

Незважаючи на недоліки, метод перемішування є прекрасним доповненням до інших методів маскування даних і в певних випадках дозволяє отримати деякі переваги. Наприклад, для маскування показників фінансової звітності можна замінити імена постачальників, а потім перемішати номера рахунків у всій базі даних. При цьому вкрай малоймовірно, що будь-хто, навіть має обмежений доступ до вихідних даних, зможе їх відновити.

Дисперсія числових значень[ред. | ред. код]

Метод дисперсії (розкиду) застосовується при роботі c полями БД, що містять фінансову інформацію і дати. Цей метод полягає у відхиленні замаскованого числового значення від вихідного на певну величину. Наприклад, при маскуванні осередків, що містять дані про зарплату співробітників, відхилення від початкового значення може становити ± 10 %, тому замаскована інформація виглядає цілком реалістично і логічно.

Це ж стосується колонок таблиць БД, що містять дати. Якщо при маскуванні потрібно зберегти цілісність демографічної та актуарної інформації, то застосування відхилення на ± 120 днів до полів календарних дат збереже їх співвідношення в таблиці, але визначити особу людини за датою його народження, наприклад, буде неможливо.

Шифрування[ред. | ред. код]

Шифрування — це найбільш складний спосіб маскування даних. Алгоритм шифрування зазвичай передбачає наявність «ключа», необхідного для дешифрування і перегляду вихідних даних.

На перший погляд, шифрування — це ідеальне рішення проблеми обмеження доступу до інформації, але на практиці «ключ» може бути переданий співробітнику, який не має достатніх прав на перегляд даних, і це зводить нанівець всі зусилля щодо маскування.

Шифрування також може супроводжуватися перетворенням вихідних даних в бінарний вигляд, що здатне викликати проблеми в роботі додатків. Для виявлення і усунення конфліктів всередині додатків необхідно проводити тестування з передачею вихідної інформації тестувальникам, а це, в свою чергу, передбачає перевірку задіяних в тестуванні IT-фахівців службою безпеки. Прекрасна, в теорії, ідея при реалізації на практиці викликає масу складнощів: шифрування забирає багато часу на тестування та усунення виявлених недоліків.

Відносно недавно проблеми, пов'язані з шифруванням, були визнані розробниками ПЗ і науковим співтовариством. Підсумком досліджень в даній сфері стала поява нових алгоритмів шифрування, що дозволяють зберігати формат вихідних даних — FPE (format preserving encryption).

Редагування/обнулення[ред. | ред. код]

Іноді використовується спрощений метод маскування даних, що полягає в заміні символів у записі БД нулями або довільними символами. Очевидно, що цей спосіб дозволяє лише приховати, а не замаскувати початкове значення. У переважній більшості випадків подібний підхід знижує ступінь цілісності даних, оскільки викликає проблеми з валідацією даних додатками. Крім того, «неприродне» значення в записах БД явно свідчать про те, що до таблиці застосоване маскування.

Найчастіше цей спосіб маскування застосовується в процесі роботи з платіжними картами. Наприклад, оператори кол-центрів інтернет-магазинів можуть бачити лише останні чотири цифри номера кредитної картки клієнта (XXXX XXXX XXXX 6789), але після підтвердження даних білінгова система передає платіжній системі повний номер карти.

Ця система не дуже ефективна для тест-систем, але корисна для білінгового сценарію описаного вище. Він також широко відомий як спосіб динамічного маскування даних[4].

Типи маскування даних[ред. | ред. код]

Існує два основних типи маскування даних: статичне і динамічне маскування[5].

Статичне маскування даних[ред. | ред. код]

Статичне маскування даних зазвичай застосовується за необхідності передачі бази даних для тестування (наприклад, при передачі на аутсорсинг). Адміністратор БД створює копію виробничої бази даних, завантажує її на окремий сервер, скорочує обсяг відомостей, залишаючи тільки інформацію, необхідну для проведення конкретних тестів, потім застосовує маскування, вносить необхідні зміни в програмний код і відправляє замасковану копію БД розробникам або тестувальникам.

Динамічне маскування даних[ред. | ред. код]

Динамічне маскування (маскування в режимі реального часу, маскування «на льоту») відбувається в процесі передачі виробничих даних розробникам, без проміжного запису на будь-якому носії інформації.

Маскування даного типу є найбільш раціональним рішенням для організацій, які застосовують безперервну інтеграцію і не мають у своєму розпорядженні час, необхідний для створення і завантаження резервних копій баз даних. За безперервної інтеграції важлива можливість постійного пересилання невеликих наборів виробничих даних розробникам для тестування.

Динамічне маскування відбувається на основі атрибутів і заданих політик. Наприклад:

  • Лікар може переглядати медичні карти закріплених за ним пацієнтів (фільтрація даних);
  • Лікар не може переглядати індефікаційний номер всередині медичної карти (маскування даних).

Динамічне маскування також може застосовуватися разом з шифруванням даних в режимі реального часу, зокрема при використанні шифрування зі збереженням формату (Format-preserving encryption).

Маскування даних і хмарні сховища[ред. | ред. код]

В останні роки все частіше застосовується розробка програм «в хмарі», незалежно від того, чи будуть ці програми виконуватися безпосередньо в «хмарі» або на локальному комп'ютері. Існують різні методи створення наборів тестових даних і переміщення їх з локальних баз даних в «хмару» або між різними середовищами в межах «хмари». Маскування даних при цьому неминуче стає частиною життєвого циклу ПЗ.

Провідні постачальники програмних рішень для маскування даних[ред. | ред. код]

Примітки[ред. | ред. код]

  1. Data Masking and Encryption Are Different [video] - IRI. IRI (амер.). 2 листопада 2011. Архів оригіналу за 31 березня 2018. Процитовано 10 квітня 2018.
  2. Data Masking Definition. mask-me.net. Архів оригіналу за 27 лютого 2017. Процитовано 10 квітня 2018.
  3. GRT - from DATA to ACTION, Analytics, Industrial IoT, Energy, AI, DW, BI. GRT (амер.). Архів оригіналу за 3 квітня 2018. Процитовано 10 квітня 2018.
  4. IBM Marketplace - United States. www.ibm.com (en-us) . Архів оригіналу за 10 квітня 2018. Процитовано 10 квітня 2018.
  5. Static and Dynamic Data Masking Done Easy With DataSunrise. www.datasunrise.com (англ.). Архів оригіналу за 1 вересня 2017. Процитовано 10 квітня 2018.

Посилання[ред. | ред. код]