LINUX.ORG.RU

Oracle: пользователь с правами только для чтения может изменять данные через view


0

0

6 апреля был найден очередной баг в Oracle БД. Подвержены все современные версии (9.2.0.0 - 10.2.0.3) на любых платформах. От Oracle на данный момент нет никаких патчей.

>>> Подробности

anonymous

Проверено: ivlad ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

А где эксплоит?

anonymous ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

А 8i не подвержена? Клёво!

Xellos ★★★★★ ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

оракелу это похрену на хостинги их всё равно не ставят

anonymous ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

ну риск то не велик, пользователь не просто read only права должен иметь, но еще и на создание view, а такие права имеют только разработчики, да и то не на продакшене ...

anonymous ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

Чего-то я не понял, дыры в оракле находят очень часто, а в новостях я их не видел или теперь на ЛОРе публикуют багтрак оракла?

Kalashmat ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

всё, блин, тушите свет... сколько лет эта дыра просуществовала! :)

kes ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

Привет из от индийских кодеров :)

А вот в FoxPro такого нет... =)))

anonymous ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

Интересная, но давно известная и не очень то и опасная штука. На "UPDATE VIEW" тоже права надо иметь.

anonymous ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

anonymous-у это уже давно известно, а вся мировая общественность узнала об этом только недавно...

Если есть право "CREATE VIEW", то отдельного права на апдейт собственного VIEW иметь не надо.

anonymous ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

Ну, это да :-) Но кого хрена давать права на create view юзеру, у которого право только на чтение? Да и вообще view создавать должны разработчики на этапе проектирования системы, а не пользователи. Хотя...

anonymous ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

дайте эксплойт!! пойду ломать какой-нибудь банк на благо человесчечста

anonymous ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

Вы все еще сидите на 8i? Тогда мы идем к вам!

oracle уже не поддерживает 8i и патчи к багам больше не выпускает.

MaratIK ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

и правильно.. 8i тормозное старое глюкалово

anonymous ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

Да я так смотрю что 9/10 тоже не поддерживается, по потому как они кинулись исправлять дырки.

anonymous ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

Следом за этой надо написать открытое письмо с негодованием Open Source сообщества относительно того, что Oracle больше не поддерживает свои продукты. Как так, дырка вышла, а латка запоздала?

Кстати, каким макаром эта новость относится к OpenSource, Linux? Когда в Windows обнаруживается дырка, сюда тоже новости постят? А почему? Потому что Windows работает в Linux под VMWare?

anonymous ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

> oracle уже не поддерживает 8i и патчи к багам больше не выпускает

Неправда. В последнем Jan 2006 CPU были исправления для 8.1.7.4. Только, на сколько я помню, там уже только sequrity фиксы.

anonymous ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

> Использую SQLite :)

Поздравляю. Жаль, что мы не можем, т.к. нужна масштабируемость до 1000 пользователей и сотен GB данных. И это не придел.

anonymous ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

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

Вот именно, хотя... Базы бывают разные, очень большие и сложные. Иногда из них умные манагеры (аналитиками кличут) данные выбирают согласно своим жутким запросам, которые придумают. А вот с паролями они могут не особенно дружить. И вьюшки им разрешают создавать. А тут такая проруха ... :-)

sur02111976 ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

> оракелу это похрену на хостинги их всё равно не ставят

ты что сказать хотел-то? какие хостинги?

anonymous ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

А mysql подвержена?

Spinal ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

Нафиг эксплоит, когда все равно все ручками надо делать? ;) Там же, по ссылке, есть целых 2 (ДВА) примера - как эту багу пользовать.

anonymous ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

А что там понимать? Подсоединяешся к базе, создаешь вью, и удаляешь из него все записи. Осталось только найти, кто тебе даст подсоединиться к базе, да еще и права на создание view. :)

alt-x ★★★★★ ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

Не всё так просто. Этот VIEW нужно создать особым способом. Вот каким способом -- это пока непонятно. Поэтому вопрос про эксплоит (пример) пока остаётся открытым.

anonymous ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

Дайте мне эксплойт!! Хочу нашего админа ПОДКОЛОТЬ!! ;)

//goblen

anonymous ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

dbsnmp - эт типа пользователь, который имеетса после установки оракла, так что не надо никакаких пользователей у него пароль такой же как и имя ... ;)

А вот полная строка SQL> create or replace view e as select [...censored...] ;) или вот эта

create view del_view as [censored] ^^^^^^^^^ select * from del_view; очень даже сгодилась бы ;)

murick ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

А, я это пропустил. А что тупой селект из таблицы не прокатывает? Тогда это - интересный баг. Удивительно, что его нашли.

alt-x ★★★★★ ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

суть не в селекте, а в UPDATE INSERT DELETE ;) всё он селектит, а вот "via a specially crafted view" get RW privileges то хз чё там за вью.

murick ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

alt-x, ты извини меня, но тебе уже три раза сказали, что запрос во view должен быть особый, а не любой. А какой -- это пока непонятно.

Самое интересное, что cудя из представленного отчёта, какое-то время эксплоит был опубликован на Metalink'e (support-сайт Оракла). И только после того, когда им сказали, что мол нехорошо такое в открытом виде публиковать, они убрали это.

anonymous ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

Нормальный админ лочит всех этих dbsnmp. Судя по всему также требуется наличие SELECT ANY DICTIONARY. Нормальный админ никому таких привелегий в жизни не даст на продакшен БД. Сосите лапу...

anonymous ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

ну так чо делать-то?? гоблен

anonymous ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

> требуется наличие SELECT ANY DICTIONARY. Нормальный админ никому таких
> привелегий в жизни не даст на продакшен БД. Сосите лапу...

"SELECT ANY DICTIONARY" не требуется. Требуется только CREATE VIEW, SELECT, ну и логин в базу.

Проблема в том, что у многих конечных пользователь есть все эти права.

anonymous ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

А вот и эксплоит:

create view del_view as
select a.id from tableowner.t1 a
left outer join tableowner.t1 b
on b.id=a.id;

Уже попробовал, всё работает!

anonymous ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

в серъезной базе, допустим банка, это всё не пройдет. пароли лежат в файле на фс, + все подобные действия неприменно упадут в аудит

anonymous ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

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

А про пароли и фс я вообще не понял...

anonymous ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

>в серъезной базе, допустим банка, это всё не пройдет. пароли лежат в файле на фс, + все подобные действия неприменно упадут в аудит

да только, как правило, в этом файле пароли лежат открытым текстом в 99% случаев. А от аудита типа "dhcp192-1-1-1.coolbank.ru created view" - толка тоже мало. Впрочем, при прямых руках админов и программеров, эта дырка вообще никакой опасности не представляет.

alt-x ★★★★★ ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

Там же предложено решение. Прошерстить роли и отобрать create view :)

Lumi ★★★★★ ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

Запрос, который отображает пользователей с правом "CREATE VIEW":

-- # Select schemas with VIEW
select distinct owner from all_objects where object_type='VIEW'
union
-- # Users with 'CREATE VIEW' in role
select distinct grantee from sys.dba_role_privs
where granted_role in (select grantee from sys.dba_sys_privs where privilege = 'CREATE VIEW')
union
-- # Users with 'CREATE VIEW' privilege
select grantee from sys.dba_sys_privs where privilege = 'CREATE VIEW'
and grantee not in (select role from sys.dba_roles)
-- # Minus system users
minus
select username from sys.dba_users where username in ('SYSTEM','SYS','WMSYS','OUTLN','DBSNMP')
/

anonymous ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

>> Использую SQLite :) >Поздравляю. Жаль, что мы не можем, т.к. нужна масштабируемость до >1000 пользователей и сотен GB данных. И это не придел.

На обычном писюке у вас такого не получится, следовательно, должно быть крутое железо. А далее - ставим туда на выбор TERRADATA, IBM DB2, а может быть и PostgreSQL/EnterpriseDB (не зря дефолтом идет с SUN-техникой). И не надоговорить, что постгрес не потянет - я уверен, что вы с ним не работали.

anonymous ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

> И не надоговорить, что постгрес не потянет - я уверен, что вы с ним не работали.

Поверте, работали и даже оценили. Но всё же это ещё новинка в мире корпаративных вендоров. Многие приложения уже заточены под Оракл и ничего тут не поделаешь. Работать нужно сегодня, а не ждать, когда это всё заработает под Постгресом.

Да и если быть объективным, то ой как много Пострес проигрывает по функциональности Ораклу. Достаточно посмотреть список фич, которые поддерживаются в Enterprise версии. Так что, просто взять и перенести всю инфраструктуру БД в EnterpriseDB не получится.

anonymous ()

Re: Oracle: пользователь с правами только для чтения может изменять данные через view

а на mysql много банков работает? я бы такой открыл гобол

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.