Страница 1 из 1
Как обойти передачу паролей в открытом виде при backup'е?
Добавлено: 27 июл 2005, 12:26
Res Nullius
Добрый день, уважаемые!
Есть вопрос. Каждый день на сервере БД (Yaffil) идет резервное копирование данных с помощью утилиты GBAK. ПРоцесс запускается по расписанию с помощью командного файла, в котором содержится строка запуска GBAK. В этой строке явно указаны имя пользователя и, что самое неприятное, пароль пользователя, от имени которого быкапится база. Можно ли каким-то образом избежать передачи пароля в открытом виде?
Заранее благодарен за ваши ответы!
Добавлено: 27 июл 2005, 23:58
Klyk
избежать передачи пароля или хранения его в командном файле?
Я так понимаю ты про второе.
напиши мааленький такой .exe, который будет у тебя запускатся по расписанию (каким нить шидулером) и бэкапить базу. Тогда не будет пароль у тебя хранится в файле, который может прочитать кто угодно.
Добавлено: 11 авг 2005, 12:15
Res Nullius
Спасибо за совет!
Эта мысль уже приходила нам в голову.
Следующий вопрос: а можно ли производить backup/restore не под SYSDBA, какие права надо выдать для этого пользователю?
Добавлено: 11 авг 2005, 14:18
hvlad
Res Nullius писал(а):а можно ли производить backup/restore не под SYSDBA
Или SYSDBA, или OWNER
Добавлено: 19 авг 2005, 13:44
Res Nullius
Большое человеческое спасибо всем откликнувшимся!
Добавлено: 27 фев 2006, 16:43
andycat
Klyk писал(а):избежать передачи пароля или хранения его в командном файле?
Я так понимаю ты про второе.
напиши мааленький такой .exe, который будет у тебя запускатся по расписанию (каким нить шидулером) и бэкапить базу. Тогда не будет пароль у тебя хранится в файле, который может прочитать кто угодно.
Приветствую всех! (давно не заходил...)
Сейчас возникла та-же проблема (см.выше) и пример с EXEшником не подходит, т.к. простым дизассемблером найти строку с параметром для архивации password=... достаточно реально, тем более что EXEшник маленький...
есть ли другие варианты скрыть пароль SYSDBA?
Добавлено: 28 фев 2006, 21:59
smu
andycat писал(а):
... т.к. простым дизассемблером найти строку с параметром для архивации password=... достаточно реально, тем более что EXEшник маленький...
есть ли другие варианты скрыть пароль SYSDBA?
Можно усложнить жизнь взломщику. Строки с паролем, 'password', 'user' открытым способом не хранить, а написать простенький алгоритм по расчету. Например
Код: Выделить всё
var c: char; s: string; ...
с := 'p';
s := с + Char(100 + 2) + Char (Byte(c) + 2) + ...;
....
// здесь вставим строку s для вызова GBAK
побольше различных операторов сравнения и т.п. извращения. А затем можно пройтись упаковщиком. Защить данные на 100% не сможите, но усложнить процесс взлома - можно. Для защиты от псевдохакеров, пользующихся только HEX редактором, вполне подойдет
Добавлено: 01 мар 2006, 12:54
Georgi-47
С exe-шником лучше, но тоже не идеал. Есть способ преодоления - пишется небольшая программка с именем gbak.exe и кладется на место оригинального. Программка параметры записывает куда-то или шлет по почте, а для незаметности вызывает потом оригинальный gbak. Можно даже, наверное, потом саму себя как-то стереть исхитриться, а оригинал вернуть на место.
Выход, похоже, в том, чтобы использовать для выполнения backup программу, использующую компоненты, а не вызывающую gbak. В этой программе, желательно, чтобы пароль хранился в зашифрованном виде.
Таких программ есть несколько, да хоть в том же разделе download на ibase.ru.
Правда, не все программы удобны. Вернее, я бы даже сказал - все неудобны. И тут я не могу не посоветовать нашу программу
http://www.ibsafe.com
Правда, по теме она не до конца подходит, для собственно выполнения backup используется gbak.exe, потому что gbak может то, что не могут компоненты - укладывать backup-файл не на ту машину, где работает сервер БД.
Кстати, вот эта проблема с безопасностью - серьезный аргумент, чтобы включить в IBSafe возможность выполнения backup без gbak. Пишите по адресу на сайте, кому это нужно, тогда это попадет в разряд первоочередных планов.
Добавлено: 02 мар 2006, 16:46
andycat
наверное все таки проще написать конкретно для конкретной базы архивирование/восстановление через компоненты и зашифровать пароль.
всем спасибо!