SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 09.03.2021 14:42:00

proot
Участник
Откуда: Москва
Зарегистрирован: 03.03.2009
Сообщений: 21

"токсичный" MySQL сервер

Можно ли создать MySQL сервер "токсичный" относительно несанкционированного копирования БД и его самого?
Сценарий: есть коммерческая (платная)  клиент-серверная пара (MySQL сервер и клиентское приложение). Клиент коннектется через SSL. В случае перехвата ключей в памяти локального хоста, где крутится приложение - можно подключиться к серверу, скачать структуру БД, сами БД, понять какой версии сервер, его возможные настройки и развернуть бесплатный клон этой пары  на другом железе.
Как сделать, так что бы этот клон работал с тихим  случайным накоплением незначительных ошибок, которые через полгода приведут к искажению данных.
В руках имеем весь проект сходников клиентской части (т.е. можем внести в КЧасть любой дополнительный функционал), ну и сам MySQL сервер используем  в простейшей Комьюнити версии.

Шифрование БД - всё таки нагружает сервер, особенно если там не один десяток изолированных контейнеров MySQL. А хорошее шифрование - хорошо нагружает..
Само шифрование - это следующий этап, но шифровать всё - не имеет смысла. Достаточно зашифровать некоторые таблицы.
Это не позволит сопоставить все данные относительно друг - друга, а частичные данные - не имеют большой ценности.
Ну и само шифрование, это не защита методом "социальной инженерии".

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

К серверу нет аппаратного доступа. Он у нас в "облаке VDS"- USB dongl keys или TPM - не поставишь..
Если, задача не решаема так, то решаемая ли она 100% на своём аппаратном сервере, куда можно воткнуть что-нибудь железное...

Неактивен

 

#2 09.03.2021 19:20:08

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: "токсичный" MySQL сервер

Мне кажется, нужно всё-таки уходить от MySQL торчащего наружу. Те сложности, которые мы в этом месте придумываем, будут сложны в реализации и при этом очень просто обходиться атакующим.

Единственное нормальное решение, которое я вижу, — делать API, через которое уже подключаться клиентом.

Ну и непосредственно по вопросу. Копирование данных работает по тому же протоколу, что и, собственно, доступ. Если у вас клиент в принципе может вытащить все данные, то и mysqldump сможет. В голову приходят какие-то такие усложнения, но опять же — все обходятся тривиально:
 
* Сделать какую-то хранимую процедуру, которая выдает нужные данные, но только в обмен на «секрет». Секрет можно посылать в открытом виде (легче узнать), можно в закрытом виде (aka подписанный timestamp) — узнать сложнее, но т.к. в приложении он есть, то тоже достается.

* Сделать какую-то таблицу, которая «не читается» — mysqldump на ней споткнется. Например, вот так:

create table data_1 (a int);
create view data as select * from data_1;
drop table data_1;

обходится, очевидно, аккуратным выпиливанием ее из дампа

* Шифровать строки каких-то таблиц

* Доставать разные наборы данных под разными пользователями (так один mysqldump не будет видеть полный набор данных)

Неактивен

 

#3 11.03.2021 23:02:49

proot
Участник
Откуда: Москва
Зарегистрирован: 03.03.2009
Сообщений: 21

Re: "токсичный" MySQL сервер

Спасибо, за приговор.
Нужно было нам "не приходить" 20 лет назад к торчащему наружу MySQL, тогда бы и не искали сегодня такие глупые решения..
Перепись - дорогОво  стоит.

Опять за старое..Если, я немного "отпрыгну в сторону", аки заяц:
MySQL есть в исходниках (есть же?) может быть не самые свежие версии, но вроде как должен быть.
И я изменю синтаксисы запросов (например SELECT) на некоторую случайную последовательность (suvy97htQW) и по-больше так знаков.
А потом  скомпилирую сервер заново. Это, как-то испортит жись моим "партнёрам" в сети? Понятно, что клиентская часть тоже будет запрашивать и писать данные с новым систаксисом.
Один большой специалист сказал мягко, что "это  не помещается в его голове", а почему не пояснил..

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson