Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Как испортить БД ?  [new]
Alex Antonoff
Member

Откуда: Из лесу вестимо
Сообщений: 1251
Для распространения БД пользователям хочется усложнить визуальный просмотр информации метдом порчи ее внешнего вида:
1. Переименовать все обьекты в БД, получив новые названия вида random или guid
2. Пересоздать хранилки с опцией with encription, вытянув перед этим весь текст ХП в одну длиннющую строчку
3. В результате нужно иметь табличку соответствия по ХП, что бы научить приложение нормально работать с этой исковерканной БД
4. Может кто что то еще предложит ?

Есть ли такой инструмент, которые аккуратно все это может проделать ?
Все это еще осложняется наличием DSQL в ХП
6 сен 04, 09:45    [935880]     Ответить | Цитировать Сообщить модератору
 Re: Как испортить БД ?  [new]
Stupindo
Member

Откуда:
Сообщений: 143
Мне почему-то кажется, что такой подход переименования объектов базы будет лишним...
По моему достаточно весь интерфейс реализовать чере ХП, закриптовав их при этом. А прямого доступа к таблицам и вьюшкам юзерам вообще не давать.

Хотя мне не совсем понятно с какой целью и какого именно эффекта надо добиться скрывая названия объектов при распространении БД...
6 сен 04, 11:18    [936208]     Ответить | Цитировать Сообщить модератору
 Re: Как испортить БД ?  [new]
Trong
Member

Откуда: Novosibirsk
Сообщений: 759
Stupindo
Мне почему-то кажется, что такой подход переименования объектов базы будет лишним...

Такой подход будет единственно эффективным

Stupindo

По моему достаточно весь интерфейс реализовать чере ХП, закриптовав их при этом.

Нет никаких проблем с тем, чтобы ХП раскриптовать

Stupindo

А прямого доступа к таблицам и вьюшкам юзерам вообще не давать.

И как объяснить заказчику по какой причине вы не дадите ему полный доступ к ЕГО СЕРВЕРУ?
6 сен 04, 11:20    [936219]     Ответить | Цитировать Сообщить модератору
 Re: Как испортить БД ?  [new]
Trong
Member

Откуда: Novosibirsk
Сообщений: 759
Alex Antonoff
Для распространения БД пользователям хочется усложнить визуальный просмотр информации метдом порчи ее внешнего вида

То, что Вы описали обычно называют обфускацией (obfuscate), но вот для TSQL такой тулзы не видел ни разу.
6 сен 04, 11:31    [936274]     Ответить | Цитировать Сообщить модератору
 Re: Как испортить БД ?  [new]
Alex Antonoff
Member

Откуда: Из лесу вестимо
Сообщений: 1251
Trong
Alex Antonoff
Для распространения БД пользователям хочется усложнить визуальный просмотр информации метдом порчи ее внешнего вида

То, что Вы описали обычно называют обфускацией (obfuscate), но вот для TSQL такой тулзы не видел ни разу.

Именно так, собственно по этому и обращаюсь ;)

Доступом эту проблему не решить ...
6 сен 04, 13:40    [936769]     Ответить | Цитировать Сообщить модератору
 Re: Как испортить БД ?  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
Уже сто раз обсуждали: если у юзера есть админский пароль - база беззащитна, в т.ч. тексты ХП и вьюх. Гуиды наверно самая эффективная защита, то такую базу сложно сопровождать. А построение отчётов это вааще отдельная тема... :)
Наверно лучше и проще защитить приложение.
6 сен 04, 15:35    [937256]     Ответить | Цитировать Сообщить модератору
 Re: Как испортить БД ?  [new]
Trong
Member

Откуда: Novosibirsk
Сообщений: 759
LSV
Уже сто раз обсуждали: если у юзера есть админский пароль - база беззащитна, в т.ч. тексты ХП и вьюх. Гуиды наверно самая эффективная защита, то такую базу сложно сопровождать. А построение отчётов это вааще отдельная тема... :)
Наверно лучше и проще защитить приложение.

Ха-ха :) Вы БД 1С видели? Да в ней сам черт ногу сломит - попробуй чего-нть там поменяй :)
6 сен 04, 15:38    [937269]     Ответить | Цитировать Сообщить модератору
 Re: Как испортить БД ?  [new]
www.perlscript.ru
Member

Откуда: Москва
Сообщений: 344
Ой ли? Все что там есть - все можно поменять при желании.
6 сен 04, 17:02    [937619]     Ответить | Цитировать Сообщить модератору
 Re: Как испортить БД ?  [new]
www.perlscript.ru
Member

Откуда: Москва
Сообщений: 344
Репликация средствами SQL на 1С и все в таком духе, почитайте..
6 сен 04, 17:04    [937630]     Ответить | Цитировать Сообщить модератору
 Re: Как испортить БД ?  [new]
Alex Antonoff
Member

Откуда: Из лесу вестимо
Сообщений: 1251
LSV
Уже сто раз обсуждали: если у юзера есть админский пароль - база беззащитна, в т.ч. тексты ХП и вьюх. Гуиды наверно самая эффективная защита, то такую базу сложно сопровождать. А построение отчётов это вааще отдельная тема... :)
Наверно лучше и проще защитить приложение.

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

Нужно максимально усложнить тыринье данных. Понятно дело, если хацкер будет биться до конца, поломает...
7 сен 04, 06:12    [938313]     Ответить | Цитировать Сообщить модератору
 Re: Как испортить БД ?  [new]
Alex Antonoff
Member

Откуда: Из лесу вестимо
Сообщений: 1251
Trong
LSV
Уже сто раз обсуждали: если у юзера есть админский пароль - база беззащитна, в т.ч. тексты ХП и вьюх. Гуиды наверно самая эффективная защита, то такую базу сложно сопровождать. А построение отчётов это вааще отдельная тема... :)
Наверно лучше и проще защитить приложение.

Ха-ха :) Вы БД 1С видели? Да в ней сам черт ногу сломит - попробуй чего-нть там поменяй :)

Черт ногу сломит по первости. У 1Са уже достаточно доков по БД, естественно, нам не нужно такие доки публиковать ;) более того, между версиями БД хотелось бы имена обьетов перегенерять заново, что бы были каждый раз новые. К сожалению имена ХП, черех которые работает приложение необходимо сохранять между версиями, что бы обеспечить совместимость с предыдущими версиями клиента
7 сен 04, 06:15    [938315]     Ответить | Цитировать Сообщить модератору
 Re: Как испортить БД ?  [new]
Alex Antonoff
Member

Откуда: Из лесу вестимо
Сообщений: 1251
Эх жаль
7 сен 04, 15:40    [940474]     Ответить | Цитировать Сообщить модератору
 Re: Как испортить БД ?  [new]
Shultze
Member

Откуда: СПб
Сообщений: 382
Стройте базу на основе собственных метаданных, в которых будет GUID='Имя поля', 'Наименование поля по русски','Комменты','Еще всякая лажа'

Все ХП & view переписываются с использованием 'Имя поля'. Файл метаданных криптуется стандартным мс криптопровайдером, пароль разделяется на несколько кусков, часть из которого есть функция от серийника. Инсталлятор создает читает метаданные, декриптует их,формирует структуру БД путем подстановки 'имя поля' = GUID накатывает структуру на СУБД.

Приложение читает метаданные, декриптует их, путем той же подстановки обращается к данным через реальные имена - GUIDы.

Способ имеет много преимуществ - отвязка метасхемы от сервера БД, можно назначить несколько ХП под разные СУБД, что бы изменить имя, комменты, форматы полей достаточно поменять метаданные
7 сен 04, 17:49    [941115]     Ответить | Цитировать Сообщить модератору
 Re: Как испортить БД ?  [new]
Alex Antonoff
Member

Откуда: Из лесу вестимо
Сообщений: 1251
БД выполнена на ХП, и если брать такой подход на вооружение, это будет мега динамические ХП;)

К тому же я уже лазил в похожей БД - от StarTeam, там таблички метаданных зашифрованы не были, да это бы ничего и не дало, я бы поймал запрос и просмотрел уже в расшифрованном фиде эти метаданные ... Так что это не особо затрудняет работу ... Другое дело, эсли эта метаинформация и не поставляется клиенту, а запросы удит уже на этих дебильных именах ;)
8 сен 04, 07:34    [941772]     Ответить | Цитировать Сообщить модератору
 Re: Как испортить БД ?  [new]
Shultze
Member

Откуда: СПб
Сообщений: 382
Так а я ж тебе о чем и писал, во первых ХП не будут динамическими - вся генерация подставных "сложных" имен делается на этапе инсталляции.
Во вторых профилером ты поймаешь нечто
SELECT AD12453456, BG9857433, BF12387462 FROM SA2437252 WHERE BF12387462 = 'кака какая то'  

И ХП мало того что зашифрованы, так тоже будут представлять собой странные конструкции
8 сен 04, 10:22    [942131]     Ответить | Цитировать Сообщить модератору
 Re: Как испортить БД ?  [new]
Alex Antonoff
Member

Откуда: Из лесу вестимо
Сообщений: 1251
Shultze
Так а я ж тебе о чем и писал, во первых ХП не будут динамическими - вся генерация подставных "сложных" имен делается на этапе инсталляции.

На этапе инстала тоже смысла не имеет, потому что можно будет табличку соответствия вытащить из инсталятора. К тому же тут возникает еще куча интересных моментов. В частности БД предполагается просто аттачить (будет много гигов данных) и т.д.
Shultze

Во вторых профилером ты поймаешь нечто
SELECT AD12453456, BG9857433, BF12387462 FROM SA2437252 WHERE BF12387462 = 'кака какая то'  

С чего вдруг ? будет выхов ХП exec asdfgsdfgwerty36sdfg ...
Shultze

И ХП мало того что зашифрованы, так тоже будут представлять собой странные конструкции

На слово "зашифрованные" я не делаю ставку под управлением Sql-Server, это так, для кучи и ламеров.
А под странными конструкциями что подразумевается ? Я подразумеваю максимально испортить внешний вид ХП. Их у меня более 150 штук и перед тем, как реально можно будет "понять" логику работы, необходимо всех их переварить.
8 сен 04, 11:19    [942438]     Ответить | Цитировать Сообщить модератору
 Re: Как испортить БД ?  [new]
Shultze
Member

Откуда: СПб
Сообщений: 382
Ну как ты будешь переваривать логику работы ХП в которой все таблицы, поля, функции именованы ничего не значащими строками? И потом, речь ведь не идет о том, что бы сделать -невозможным- декомпиляцию базы, а только затруднить ее. Метаданные шифруются - пароль прячется в теле программы, конечно его можно выковырять, но нужно знать что он там есть, как собирается, что есть метаданные и они зашифрованы. Т.е. без трассировки исходника (а это ой как не просто в большом проекте из десятка длл) не обойтись. Защита исходника отдельный вопрос - тут и сжатие, и обфускация, для exe много разработок.
Даже если ты базу просто аттачишь, она предварительно сформирована с использованием метаданных, все поля, таблички, хп преобразованы в "странный" вид, а метаданные просто прилагаются к клиенту.
Я недоступно объясняю что ли?
8 сен 04, 11:47    [942588]     Ответить | Цитировать Сообщить модератору
 Re: Как испортить БД ?  [new]
Trong
Member

Откуда: Novosibirsk
Сообщений: 759
Shultze
Ну как ты будешь переваривать логику работы ХП в которой все таблицы, поля, функции именованы ничего не значащими строками? И потом, речь ведь не идет о том, что бы сделать -невозможным- декомпиляцию базы, а только затруднить ее. Метаданные шифруются - пароль прячется в теле программы, конечно его можно выковырять, но нужно знать что он там есть, как собирается, что есть метаданные и они зашифрованы. Т.е. без трассировки исходника (а это ой как не просто в большом проекте из десятка длл) не обойтись. Защита исходника отдельный вопрос - тут и сжатие, и обфускация, для exe много разработок.
Даже если ты базу просто аттачишь, она предварительно сформирована с использованием метаданных, все поля, таблички, хп преобразованы в "странный" вид, а метаданные просто прилагаются к клиенту.
Я недоступно объясняю что ли?

Угу, и запустив профайлер уже через сутки можно будет представить что и как работает.
8 сен 04, 11:57    [942658]     Ответить | Цитировать Сообщить модератору
 Re: Как испортить БД ?  [new]
Alex Antonoff
Member

Откуда: Из лесу вестимо
Сообщений: 1251
Еще раз повторяю - наличие метаданных очень сильно облегчит процесс вскрытия БД. Использовав то обстоятельство, что ни каких динамических отчетов и прочей ботвы разрабатывать не нужно (т.е. функционал зафиксирован в ХП и напрямую к таблицам обращение не идет) необходимо обойтись без этих метаданных...
8 сен 04, 12:04    [942693]     Ответить | Цитировать Сообщить модератору
 Re: Как испортить БД ?  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5637
шифровать данные, а разшифровывать только в приложении... и не надо будет ничего творить...

для спящего время бодрствования равносильно сну
8 сен 04, 12:09    [942717]     Ответить | Цитировать Сообщить модератору
 Re: Как испортить БД ?  [new]
Shultze
Member

Откуда: СПб
Сообщений: 382
Alex Antonoff
Еще раз повторяю - наличие метаданных очень сильно облегчит процесс вскрытия БД. Использовав то обстоятельство, что ни каких динамических отчетов и прочей ботвы разрабатывать не нужно (т.е. функционал зафиксирован в ХП и напрямую к таблицам обращение не идет) необходимо обойтись без этих метаданных...


Шифруй метаданные :) чем сложнее зашифруешь и спрячешь пароль тем сильнее усложнишь разбор структуры своей БД. Вообще любая защита взламывается при достаточном приложении усилий. так что спор беспредметен, я предложил способ, кто умней - предложите свой, мы обсудим
8 сен 04, 12:49    [942929]     Ответить | Цитировать Сообщить модератору
 Re: Как испортить БД ?  [new]
Alex Antonoff
Member

Откуда: Из лесу вестимо
Сообщений: 1251
Нельзя сломать то, чего нету.
8 сен 04, 13:36    [943211]     Ответить | Цитировать Сообщить модератору
 Re: Как испортить БД ?  [new]
Alex Antonoff
Member

Откуда: Из лесу вестимо
Сообщений: 1251
Алексей2003
шифровать данные, а разшифровывать только в приложении... и не надо будет ничего творить...

для спящего время бодрствования равносильно сну

Если все зашифровать, то больше одного селекта за раз сделать не сможешь. => движок БД плавно перетечет в приложение => резкое увеличение сроков разработки и стоимости + уменьшение скорости работы
8 сен 04, 15:40    [943822]     Ответить | Цитировать Сообщить модератору
 Re: Как испортить БД ?  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
Может с выходом 2005-й защита от просмотра ХП будет более эффективной ?
Будем надеяться... :)
8 сен 04, 17:42    [944595]     Ответить | Цитировать Сообщить модератору
 Re: Как испортить БД ?  [new]
LexusR
Member

Откуда: Novosibirsk
Сообщений: 1887
Alex Antonoff
Приложение мы конечно защитим, но данные больших денег стоят и прилагуху к ним и самому нарисовать можно ...

А причем тогда процедуры и функции если враги будут писать свое приложение??? Считать что первым делом злобные хакеры будут переписывать Вашу бизнес-логику по меньшей мере нескромно :)
а сами данные если они не зашифрованы вытянуть из таблиц не составляет труда и установить связи по ключам- тоже.
Так что если и ставить задачу по сокрытию данных то на уровне собственно данных а не бизнес-логики
9 сен 04, 06:02    [945379]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить