Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FrDesign дает несанкционированный доступ к данным в базе IB / 10 сообщений из 10, страница 1 из 1
21.10.2003, 19:03
    #32300442
Умляут
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FrDesign дает несанкционированный доступ к данным в базе IB
Hello, world!

Преамбула:

Есть некая база - "морда" ДЕЛЬФИна, тело - IB (база "серийная", структура таблиц доступна многим).
Есть юзвери базы, имеющие различный доступ к неким ее возможностям согласно своим логинам/паролям.
Есть FastReport`овские отчеты, лежащие на скрытой шаре read-only (даже не на сервере IB), путь к которой прописан в самой БД в админской ее части и запускаемые ИЗ БАЗЫ (ну типа сделал выборку документов на экран, открыл пункт "Отчеты", выбрал из списка репортов нужный - и получил FrView с нужными данными - дальше хошь на принтер, хошь в файл).
Соответственно, предполагалось, что другого легального способа получить из базы данные для юзверя не существовало...

Амбула:

Юзверь (легальный юзверь базы) берет FrDesign (весчь недефицитная), запускает его, тот по алиасу из BDE на машине юзверя коннектится к базе и запрашивает у юзверя логин/пасс (в базу). Тот называет себя и FrDesign открывается. Далее юзер создает новый репорт, в котором прописывает (Select бла-бла From бла-бла-бла Where бла), а затем нажимает кнопку Preview - и на экране искомая выборка!!!

Вопрос - что в данной ситуации можно сделать, чтобы закрыть backdoor?


Whith best!
...
Рейтинг: 0 / 0
21.10.2003, 19:25
    #32300481
Gold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FrDesign дает несанкционированный доступ к данным в базе IB
автор писал:тот по алиасу из BDE на машине юзверя коннектится к базе и запрашивает у юзверя логин/пасс (в базу). Тот называет себя и FrDesign открывается

Давно я не работал с БДЕ, правду сказать, но как это он себя называет, что-то я не понял нефига...
...
Рейтинг: 0 / 0
21.10.2003, 19:40
    #32300499
Умляут
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FrDesign дает несанкционированный доступ к данным в базе IB
Hi!

Ну FrDesign спрашивает у юзверя - "ты хто?" Тот пишет свое имя и пасс, FrDesign предъявляет их базе, она проверяет, что в ее юзверях такой числится, и дает команду FrDesign`у открыться и отдаться юзверю...

Мля... :-(((((

Whith best...
...
Рейтинг: 0 / 0
21.10.2003, 20:52
    #32300539
Gold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FrDesign дает несанкционированный доступ к данным в базе IB
Так зная пароль можно и другими прогами цепляться к базе, IBExpert-ом к примеру. У меня вот 2-х этапная регистрация - на 1-м этапе пользователь БД выбирается, а на втором из спец. таблицы вегребается список операторов и происходит переподключение под ролью, которая соответствует этому оператору. роли свои они не знают, а пользователь без роли имеет права читать только некоторые таблицы. Сисок операторов же зашифрован - пускай читают.
...
Рейтинг: 0 / 0
22.10.2003, 10:04
    #32300798
Умляут
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FrDesign дает несанкционированный доступ к данным в базе IB
Hi, Gold!

Дык засада в другом - в базе (оболочке) не предусмотрено никакой защиты от запуска репорта, не прописанного в списке репортов базы (в одной из таблиц)...
Речь не идет о защите от "внешнего" вторжения: логин/пасс на IB-сервер (сиречь SYSDBA/********) - тайна сия великая есть. Трабл в том, что, несмотря на все профили прав юзверей базы, оный юзверь легко получает _любую_ инфу из _любых_ таблиц, запустив генератор репортов под своим аакаунтом в базу...

Вчера уже созванивался с разработчиками базы, буду трясти их, бо средствами IB или OS решить эту проблему пока не представляется возможным...

Whith best...
...
Рейтинг: 0 / 0
23.10.2003, 10:08
    #32302518
Виктор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FrDesign дает несанкционированный доступ к данным в базе IB
Так, чего-то я не понял, наверное.
Предположим, юзер запустил FrDesign, подключился в БД, и он может либо открыть существующие шаблоны отчетов либо создать новый.
Ты говоришь, что сейчас в базе (оболочке) не предусмотрено никакой защиты от запуска репорта, не прописанного в списке репортов базы (в одной из таблиц) . Если разработчики всё-таки сделают проверку (а вот как?) на то, репорт с каким названием запущен, то что мешает злобному юзеру открыть уже существующий шаблон и в нем поменять запрос? Имя отчета останется прежним, прописаным в списке репортов базы, и юзер всё увидит.

Далее, какова цель построения этой защиты? Если у юзера есть легальное имя и пароль, и он может из проги подключиться к БД, то с таким же успехом он может запустить IBExpert и вытянуть данные, к которым из проги нет доступа. Вот ты говоришь, что Речь не идет о защите от "внешнего" вторжения: логин/пасс на IB-сервер (сиречь SYSDBA/********) - тайна сия великая есть . Ну нет смысла делать защиту от захода конкретной программой (в данном случае генератором отчетов). Ну закроете вы доступ из этого генератора, принесет юзер на дискетке IBExpert и запустит его. Закроете доступ IBExpert'у, юзер принесет isql и им залезет в базу. А всё почему - у него есть имя и пароль, а в базе нет защиты.

Так что копать надо в другую сторону. Я в оракле для этого использовал такую вещь, как Детальный Контроль доступа - это возможность во время работы динамически присоединить предикат (предложения where) как к одному, так и ко всем запросам к таблице или представлению. Можно вычислить, кто выполняет запрос, откуда запрос выполняется, когда началось выполнение запроса, и сформировать предикат, соответствующий этим критериям. При использовании Контекстов Приложения можно незаметно через окружение (например, через роль, назначенную пользователю приложения) добавить дополнительную информацию, и получить доступ к ней через процедуру или предикат. И не важно, откуда и из под чего юзер зашел. Например, юзер пишет select * from documents , а система реально выполнит запрос select * from documents where id_doc_type=1 .
...
Рейтинг: 0 / 0
23.10.2003, 15:19
    #32303158
Малиновский Владимир
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FrDesign дает несанкционированный доступ к данным в базе IB
UTweaks от
microlab.mastak.ru/
+ плагин "Злой админ".
...
Рейтинг: 0 / 0
23.10.2003, 19:17
    #32303634
Умляут
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FrDesign дает несанкционированный доступ к данным в базе IB
Hi, Виктор!

>Так, чего-то я не понял, наверное.
>Предположим, юзер запустил FrDesign, подключился в БД, и он может либо >открыть существующие шаблоны отчетов либо создать новый.

Так точно.

>Ты говоришь, что сейчас в базе (оболочке) не предусмотрено никакой >защиты от запуска репорта, не прописанного в списке репортов базы (в >одной из таблиц). Если разработчики всё-таки сделают проверку (а вот >как?) на то, репорт с каким названием запущен, то что мешает злобному >юзеру открыть уже существующий шаблон и в нем поменять запрос? Имя >отчета останется прежним, прописаным в списке репортов базы, и юзер всё >увидит.

>Далее, какова цель построения этой защиты? Если у юзера есть легальное >имя и пароль, и он может из проги подключиться к БД, то с таким же успехом >он может запустить IBExpert и вытянуть данные, к которым из проги нет >доступа.

Стоп! Вот тут твоя ошибка! Експерт (равно как и isql, ODBC-драйвер Екселя или Аксесса) подключится к IB-серверу и получит любые данные ТОЛЬКО при условии коннекта под аккаунтом SYSDBA/****** к самому IB -серверу: любые попытки предъявить ему (IB-серверу) аккаунт юзера базы PUPKIN/12345
будут посланы в эротур.

>Вот ты говоришь, что Речь не идет о защите от "внешнего" вторжения: >логин/пасс на IB-сервер (сиречь SYSDBA/********) - тайна сия великая >есть. Ну нет смысла делать защиту от захода конкретной программой (в >данном случае генератором отчетов). Ну закроете вы доступ из этого >генератора, принесет юзер на дискетке IBExpert и запустит его. Закроете >доступ IBExpert'у, юзер принесет isql и им залезет в базу. А всё почему - у >него есть имя и пароль, а в базе нет защиты.

См. ответ на предыдущий абзац. Не подцепится он к базе напрямую...

Что делает прога Х (дельфовая оболочка Базы)? Она при запуске своего ехе-шника X.exe коннектится к IB-серверу по пути из алиаса в BDE (например, host:c:\data\mybase.gdb ). У IB-сервера прописаны два юзера IB: один - это всеми нами любимый SYSDBA с пассом *******, другой - X-CLIENT с пассом masterkey.
Прога X сама предъявляет IB-серверу логин X-CLIENT и пасс masterkey (зашитые у нее в пузе разработчиками), после чего получает доступ read-only к таблице Users базы mybase.gdb и показывает юзеру, запустившему ее, окошко Login/Password - юзер пишет в нем PUPKIN / 12345.
Эти данные летят на IB-сервер, который, найдя в таблице Users юзера PUPKIN с пассом 12345, дает добро проге Х на установление полноценного коннекта с Базой, после чего прога Х радостно открывается перед юзером.
Юзер может ходить только по тем пунктам, которые Visible в соответствии с его профилем прав. Репорты, положенные юзеру, запускаются, соответственно, из тех мест, что юзер видит, а неположенные - из тех мест, что юзер не видит.
А теперь фокус-покус: запускаем FrDesigner! Он в точности повторяет _весь_ путь и вот перед нами генератор репортов FastReport, подсоединенный к Базе так-же как и X.exe - от имени PUPKIN/12345. Теперь мы открываем любой репорт, переделываем его (ну или генерим с нуля) так, чтобы в нем был запрос на выборку неких данных из Базы (например, по документам, лежащим в Invisible для PUPKIN области. И делаем превью. Оп! Данные на экране!!

>Так что копать надо в другую сторону. Я в оракле для этого использовал >такую вещь, как Детальный Контроль доступа - это возможность во время работы динамически присоединить предикат (предложения where) как к одному, так и ко всем запросам к таблице или представлению.
=skip=
> И не важно, откуда и из под чего юзер зашел. Например, юзер пишет select >* from documents, а система реально выполнит запрос select * from >documents where id_doc_type=1.

Угу, молодец! (без иронии)...
Я связался с разработчиками проги X, рассказал им эту ботву, а они... прислали мне новую версию FrDesign, которая для работы должна коннектиться к IB-серверу под его админским SYSDBA/******, а все попытки подсунуть PUPKIN/12345 отметались с негодованием... !!! Да еще напутствовали - "ты теперь ТАК кури!"(с)Кин-Дза-Дза.
Я им - вы чего ето делаете, какая мне разница - ходить МНЕ секурным репортером или несекурным? А если мою юзер полезет несекурным?
(Только не будем про необходимость "давить" юзверей - у них есть право работать в базе, а так-же есть квалификация для получения и запуска FrDesign`a, а самое главное - у некоторых, в ранге нач.отделов/замов - есть потенция получать эти данные для последующей статобработки своими силами. Административно воздействовать на них я мог-бы, но, во-первых, это будет скандал неслабого калибра, во-вторых, это не гарантия, что никто втихаря не продолжит такие изыски...)...

А еще меня умилила реплика разработчиков проги Х - мол, мы сейчас несможем ничего сделать, т.к. все силы брошены на перевод Базы под Firebird... Вот тут мне стало совсем "хорошо"...

Мля!

With best...
...
Рейтинг: 0 / 0
24.10.2003, 03:41
    #32303787
Виктор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FrDesign дает несанкционированный доступ к данным в базе IB
Ну ясно теперь:-)
Надо было сразу сказать про то, что программа ходит в базу под одним стандартным именем, а уже юзер идентифицируется в самой программе. Думаю, это уже не твой головняк, а разработчиков, пусть думают. Лично я бы отказался от такой системы безопасности, а сделал каждого юзера реальным юзером сервера, права на доступ раздал бы через роли. Проходили мы уже такое, потом намучились с похожими backdoor'ами :-(
А вот если в тексте проге поискать какой-нить чудесный параметр типа password, user_name, что-нить найдет? А то вдруг разработчики его явно в компененте прописали?
А если юзер сделает в этом репортере селект из таблицы users, он получит список юзернеймов и пассвордов ? Или они шифруются?
А что хоть за прога такая?
...
Рейтинг: 0 / 0
24.10.2003, 12:15
    #32304137
Умляут
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FrDesign дает несанкционированный доступ к данным в базе IB
Hi, Victor!

>Ну ясно теперь:-)
Надо было сразу сказать про то, что программа ходит в базу под одним стандартным именем, а уже юзер идентифицируется в самой программе. Думаю, это уже не твой головняк, а разработчиков, пусть думают.

Ну я уже выше описывал их реакцию... мол, "лэтом приходи, лэтом"...

>Лично я бы отказался от такой системы безопасности, а сделал каждого юзера реальным юзером сервера, права на доступ раздал бы через роли. Проходили мы уже такое, потом намучились с похожими backdoor'ами :-(

Я пока не вполне уверен, как это все увяжется с унутренними Grant`ами...
Поэкспериментирую "на кошках", может что и выйдет...

>А вот если в тексте проге поискать какой-нить чудесный параметр типа password, user_name, что-нить найдет? А то вдруг разработчики его явно в компененте прописали?

Я бегло смотрел - нет там етого...

>А если юзер сделает в этом репортере селект из таблицы users, он получит список юзернеймов и пассвордов ? Или они шифруются?

Юзернеймы получит, а пассы шифруются... Только прикол в том, что если он в репортере пропишет не SELECT бла-бла-бла FROM Finance WHERE тра-та-та, а UPDATE USERLIST
SET US_PASS = ''
WHERE US_NAME = 'ROOT'

то после этого он сможет зайти в Базу уже штатной прогой Х как ROOT с пустым аккаунтом... :(((

>А что хоть за прога такая?

Это финансово-торговая система класса 1С...

Не-е-еее, я уже решил, что буду справляться пока без помощи разработчиков... Достукались мои голубчики - будут работать c IB через терминальный сервер - уж на нем я сам решу, что запускать, а что нет (строго говоря,на нем репортера не будет в принципе)... Коннект с остальных компов к IB-серверу будет невозможен...


With best...
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FrDesign дает несанкционированный доступ к данным в базе IB / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]