Яка хороша практика безпеки для зберігання критичної бази даних на ноутбуках розробника?


33

У нас є кілька подарунків:

  1. Розробникам потрібна репліка виробничої бази на своїх машинах.
  2. Розробники мають пароль до зазначеної бази даних у файлах App.config.
  3. Ми не хочемо, щоб дані у зазначеній базі даних були порушені.

Кілька запропонованих рішень та їх недоліки:

  1. Повне диск-шифрування. Це вирішує всі проблеми, але погіршує продуктивність ноутбука, і ми починаємо роботу, тому не майте грошей на власні коні.
  2. Створення ВМ із зашифрованим жорстким диском та збереження на ньому бази даних. Він працює добре, але це не дуже допомагає, оскільки в Web.Config є пароль.
  3. Рішення №2 + вимагає від розробника вводити пароль бази даних кожного разу, коли він що-небудь запускає. Це вирішує всі проблеми, але це дійсно громіздко для розробників, які іноді запускають додаток кілька разів на хвилину. Також у нас є кілька додатків, які підключаються до однієї бази даних, і реалізація екрана паролів повинна відрізнятися в кожному.

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


26
Ви фактично вимірювали ефективність шифрування повного диска на продуктивність. Я використовував його на досить старих ноутбуках і не визнавав значної погіршення продуктивності. Сучасні операційні системи досить добре кешують, а диски все одно повільні. Найгірший вплив, мабуть, на час роботи акумулятора.
5gon12eder

69
Якщо чесно, це не здається правильним підходом. 1) Для чого розробникам потрібна виробнича база даних на своїх машинах? Чи не існує способу створення фіктивних даних для dv db? 2) Чому пароль зберігається у простому тексті у конфігураційному файлі? Ви намагаєтесь поставити пов'язку на хибний процес, здається. Можливо, ви можете переглянути, що насправді живе на розроблювальних машинах, а також як зберігається пароль для бази даних.
Томас Стрінгер

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

6
Жоден користувач MacBook Pro не міг сказати вам зі швидкістю машини, чи повне шифрування диска включене чи вимкнено на SSD-диску. Немає різниці. Жодного, що можна помітити. Можливо, одного ви можете виміряти, але нічого, що помітно.
gnasher729

5
Я другий коментар @ gnasher729 Використовуючи повне шифрування дисків протягом багатьох років у регульованих умовах (фінансових та медичних), це не повинно бути помітним зниженням продуктивності. Багато людей містять інші дійсні точки, але в умовах HIPAA важко проводити розумну політику без повного шифрування диска, навіть якщо бази даних не розміщуються на ноутбуках. Електронні листи та інші фрагменти даних у будь-якому випадку нерідко закінчуються. Поміняйте файли .... і т.д. ... Повне шифрування диска не є адекватним, але зазвичай це необхідно.
joshp

Відповіді:


100

Ви не тільки не хочете копії виробничої бази даних, це може бути фактично незаконним. Наприклад, у США ви не можете переміщувати виробничі дані з виробничого середовища, якщо вони містять регульовану інформацію, таку як особисті медичні дані, фінансові дані або навіть дані, які можуть бути використані при крадіжці особи. Якщо ви цього зробите, вас можуть оштрафувати, втратити свою придатність і, відповідно, бути предметом більш агресивних перевірок або навіть бути названими в судовому порядку.

Якщо вам потрібні дані масштабу виробництва для тестування, у вас є кілька варіантів:

  1. Згенерувати всі фіктивні дані. Це хитріше, ніж це звучить. Генерувати розумні уявні дані надзвичайно складно та трудомістко.
  2. Анонімізуйте свої виробничі дані. Це може бути простіше, але поводьтесь обережно.

Для варіанту №2

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

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

3
"Наприклад, у США ви не можете переміщувати виробничі дані з виробничого середовища, якщо вони містять регульовану інформацію" Що? У вас є джерело для цього? Ви не можете, наприклад, використовувати резервні копії виробничої бази даних як дані для постановочного середовища або як тестування dbs на машинах розробників?
няня

12
@nanny Не використовується, якщо ви використовуєте регульовані дані. Наприклад, я працював у регламенті HIPAA. HIPAA стверджує, що "Охоплені суб'єкти господарювання також повинні застосовувати обґрунтовані мінімально необхідні політики та процедури, які обмежують кількість захищеної медичної інформації, яка використовується, розкривається та вимагається для певних цілей". Мінімально необхідна політика відкрита для певного тлумачення. Наш юрисконсульт запропонував суворе тлумачення, яке зберігало конфіденційні дані, які розробники не мали доступу до них. (Чи справді їм потрібно виконувати свою роботу?) Таке ж обережність стосується дотримання фінансових вимог, як PCI.
Корбін березня

4
@nanny Прийміть це, як чули, від не юриста, але, як я розумію, правила сильно різняться залежно від держави. Юрисконсульт, з яким я працюю, завжди помиляється на стороні обережності. Строго кажучи, розробникам не потрібні фактичні SSN, щоб виконувати свої обов'язки, тому радник пропонує цим SSN жити в захищеному середовищі, де розробники не можуть отримати доступ до них. Не слухайте мене. Адвокат, який шукає ваших довгострокових інтересів, стане найкращим ресурсом.
Корбін березня

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

9

Чи можете ви хоча б надати розробникам VM у вашому центрі обробки даних, щоб вони могли RD для цієї роботи? Хоча вони справді повинні відпрацьовувати невиробничі дані, це було б безпечніше, поки ви не зможете потрапити туди, оскільки дані не зберігатимуться на легко вкрадених ноутбуках.


це читається більше як коментар, див. Як відповісти
gnat

5
@gnat, ця відповідь може бути коротким, але це дуже хороша запропонована альтернатива.

Не будь такий педант, @gnat ... це прекрасна відповідь.
dwoz

@ dan1111 У цьому проблема. Це не відповідь. Це альтернатива. Це робить коментар, а не відповідь.
corsiKa

2
@corsiKa, відповіді, які оскаржують передумови питання, дозволені і часто є дуже хорошими відповідями. Дивіться проблему XY: meta.stackexchange.com/questions/66377/what-is-the-xy-problem . І більш детальні відповіді можуть бути кращими, але це все-таки відповідь.

8

По можливості змініть свій спосіб роботи.

Як вказували інші:

  • Використання виробничих даних для розробки не є хорошою практикою.
  • Мати пароль, що зберігається у простому тексті, не є хорошою практикою.

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

У реальному світі, однак, це дійсно неможливо змінити. Якщо припустити, що те, що ви робите, є законним, вам, можливо, доведеться жити з цим домовленістю (принаймні тимчасово).

Якщо це дійсно необхідно, потрібно просто зашифрувати повний диск.

Враховуючи ризики, потрібно використовувати найкращий доступний варіант безпеки, і це все. Якщо є хіт виступу, живіть з ним. Це вартість роботи з конфіденційними даними.

Якби я був вашим замовником, я не був би вражений, що ви вирішили не використовувати найкращий доступний варіант захисту з моїми даними, оскільки це зробило ваші ноутбуки трохи повільнішими.


1
"Не ідеальне рішення" слід змінити на "абсолютно дурну ідею" IMO
Darkhogg

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

Я погоджуюся з першим пунктом, але не з другим. Якщо ви не зберігаєте свій пароль в простому тексті, де ви зберігаєте його (1) шифротекст або (2) ваш мозок. Якщо (1), то де ви зберігаєте пароль для шифру (виявлено нескінченну петлю). Якщо (2), то, сподіваюся, вам сподобається прокинутися о 2:00, щоб набрати пароль, щоб перезапустити послугу.
emory

1

Відповідь Корбіна Марта досить гарна, я просто додам додаткову деталь, що у вашій виробничій базі зазвичай є два класи даних: метадані системи / програми; дані клієнта / дані транзакцій. Останнє НІКОЛИ не слід застосовувати в середовищі розвитку "як є".

Дійсно дуже рідко, що вам потрібна актуальна інформація про клієнта для розвитку.

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


5
client user data/transactional data... should NEVER be used in a development environment "as is." - Це для мене звучить нездійсненно. Проблеми програмування, пов'язані з виробництвом, пов'язані з конкретними даними клієнта, були б нерозв'язними в рамках цієї домовленості. Крім того, фактичні живі дані надзвичайно корисні з точки зору тестування. Зусилля щодо приватизації чи анонімізації повинні бути зосереджені виключно на даних, які спеціально регламентовані.
Роберт Харві

@RobertHarvey, це нездійсненно лише тоді, коли ви не зможете відтворити виробничу проблему в середовищі розробників. Я думаю, що протягом своєї кар'єри (тривалої) я можу порахувати на кілька пальців кількість разів, коли належним чином дезінфіковані дані тестів були недостатньо для відтворення виробничої помилки. "Власна бізнес-інформація" виходить далеко за межі номерів SSN та CC!
dwoz

4
Але якщо ви збираєтесь піти цим маршрутом, у вас з’являться ІТ-люди, які не можуть виконати свою роботу, оскільки вони не мають адміністративного доступу до всього. Я визнаю, це спричиняє потенційні проблеми Сноудена, але я не бачу реальної альтернативи, окрім як найняти людей, яким можна довіряти. Сарбанес Окслі та HIPAA дуже специфічні щодо того, який тип даних потрібно секвеструвати, і вони не містять "усіх даних про виробництво", а не довго. При цьому я не вірю, що будь-які дані про виробництво повинні існувати на роумінгових ноутбуках.
Роберт Харві

1
-1 НІКОЛИ. Ваші більш нюансовані коментарі кращі, ніж ваша відповідь; ви повинні відредагувати їх у ньому.

1
@ dan1111 ми можемо погодитись тоді не погодитися. Дані клієнтів "як є", якщо НІКОЛИ НІКОЛИ не використовуються в системах розробників. Його завжди слід санітувати. Ти не віриш у це, бо тебе ще не покусав цей шалений мангуст ... і ось що, коли це станеться. Шалливий божевільний гризун, який має намір витягти вашу кров. Прийміть мою пораду, уникайте шаленого мангуста.
dwoz

1

Ви не вказуєте, яка база даних та яке середовище.

Якщо ви можете використовувати інтегровану безпеку, то база даних не доступна без входу в систему як цей користувач. Так, якщо дані на жорсткому диску, їх можна зламати, але це захист першого рівня.

App.config змушує думати, що це може бути .NET. Помістіть конфігурацію в привід великого пальця і ​​прочитайте його з палець. Якщо накопичувача немає, тоді введіть пароль користувача.

Чи є спосіб зберегти пароль у пам'яті при першому його введенні та прочитанні всіма. Знову ви не заявляєте про навколишнє середовище. Файли з пам'яттю

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


0

Один з можливих варіантів - це зробити копію бази даних та очистити цю копію зі скриптом, щоб ви отримали інші дані, ніж те, що є насправді у виробництві. Ви не отримаєте ті самі дані, що і виробництво, але у вас буде такий же масштаб.


це, здається, просто повторює пункт, зроблений та пояснений у верхній відповіді близько тижня тому
гнат
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.