Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
 небольшая дыра в безопасности  [new]
o-o
Guest
просто факт:
виндовые учетки могут попадать на сервер, не будучи отмаплены в виде логинов.
достаточно выполнить
grant connect sql to public

логины не появятся, но весь AD будет проникать на сервер.
------------
почему это плохо.
хотя бы потому, что можно создать еще и юзера напрямую, минуя логин:
create user [HD03\ee26245]

здесь у меня HD03\ee26245 -- виндовая учетка, не отмаплена на сервер ни непосредственно,
ни через какую-либо группу.

такое поведение (я про create user, а не про public) описано в хэлпе ТОЛьКО для Contained Databases:
CREATE USER (Transact-SQL)
но на практике код выполняется успешно на том же 2008-ом, где не было никаких Contained Databases,
единственное условие -- виндовый аккаунт действительно должен существовать.

что получается.
в ситуации, когда имеются админы и db_owner-ы баз по разные стороны баррикады,
что может сделать db_owner:
1. пустить интересующую виндовую учетку в базу:
use db2;
go

create user [HD03\ee26245];

(создание юзера НЕ ДОБАВИТ одноименный логин на сервер)
2. выдать ей все права, да хоть в db_owner-ы записать.
3. открыть вход на сервер через public.

да, для выдачи прав на public нужны админские права.
но это тоже не проблема на сервере, где по ночам ребилдят индексы под учеткой с админскими правами.
просто надо помнить, что и DDL-триггер выполняется с правами того, кто запускает DDL.
овнер без проблем вешает триггер на свою базу и выдает себе чужими руками CONTROL SERVER,
но еще лучше IMPERSONATE на sa.
---
внешне все выглядит невинно, логинов на сервере не прибавилось,
админов тоже.
но диверсия имеется.

картинку-иллюстрацию прилагаю.

К сообщению приложен файл. Размер - 142Kb
19 янв 15, 16:32    [17138901]     Ответить | Цитировать Сообщить модератору
 Re: небольшая дыра в безопасности  [new]
Glory
Member

Откуда:
Сообщений: 104760
o-o
достаточно выполнить
grant connect sql to public


логины не появятся, но весь AD будет проникать на сервер.

И где тут "дыра" ?
Этот код может выполнить любой ?
Если я случайно выполню format c: - это будет дыра windows или нет ?
19 янв 15, 17:00    [17139218]     Ответить | Цитировать Сообщить модератору
 Re: небольшая дыра в безопасности  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Как будто бы логично, даём коннект "кому угодно". А этот "кто угодно" находит соответствие в базе по имени независимо от SID, ведь SID у него "любой".
19 янв 15, 17:01    [17139224]     Ответить | Цитировать Сообщить модератору
 Re: небольшая дыра в безопасности  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
Разговор пошел на второй круг?

З.Ы. По сабжу, имхо, нет никакой дыры. Именно потому, что для "для выдачи прав на public нужны админские права.". Если права админа можно получить для выдачи прав роли public, то их можно получить для вообще чего угодно.

Скорее это какое-то неочевидное поведение, разве что.
19 янв 15, 17:04    [17139257]     Ответить | Цитировать Сообщить модератору
 Re: небольшая дыра в безопасности  [new]
o-o
Guest
Гавриленко Сергей Алексеевич
Разговор пошел на второй круг?

мне показалось единственным возможным решением открытие новой темы.
затруднительно дать решение жалующимся на отсутствие такового в закрытой теме.

но вы все правы, извините за отнятое время.

пользуясь случаем и во избежание повторения ситуации,
ткните носом, плиз, в соответствующее правило поведения на форуме.
не нахожу почему-то пункта "загадки запрещены", к тому же темы-загадки уже были в этой ветке.
или почему была закрыта предыдущая тема?
19 янв 15, 17:15    [17139377]     Ответить | Цитировать Сообщить модератору
 Re: небольшая дыра в безопасности  [new]
Glory
Member

Откуда:
Сообщений: 104760
o-o
не нахожу почему-то пункта "загадки запрещены", к тому же темы-загадки уже были в этой ветке.
или почему была закрыта предыдущая тема?

"Форум предназначен для обсуждения вопросов, связанных с СУБД и родственными темами."
А не для игр вида Угадай мелодию по скриншоту
19 янв 15, 17:19    [17139399]     Ответить | Цитировать Сообщить модератору
 Re: небольшая дыра в безопасности  [new]
o-o
Guest
Гавриленко Сергей Алексеевич
Скорее это какое-то неочевидное поведение, разве что.

у меня есть более точное определение.
это "недокументированное поведение".
но использование этого слова в названии темы
привело бы к еще более скоропостижному закрытию темы,
так что еще раз извините и спасибо, что дали возможность высказаться.
благодарю от всей души
19 янв 15, 17:20    [17139404]     Ответить | Цитировать Сообщить модератору
 Re: небольшая дыра в безопасности  [new]
Glory
Member

Откуда:
Сообщений: 104760
o-o
но использование этого слова в названии темы
привело бы к еще более скоропостижному закрытию темы,

Для тупых - в третйи раз
Ваша предыдущая тема была закрыта потому, что вы предлагали всем угадывать результат. А не обсуждать того, как вы достигли этого результата
19 янв 15, 18:01    [17139424]     Ответить | Цитировать Сообщить модератору
 Re: небольшая дыра в безопасности  [new]
Yasha123
Member

Откуда:
Сообщений: 1837
Glory, обманывать некрасиво.
результат там был представлен на картинке и словами описан, "дать доступ на сервер, не используя CREATE LOGIN", отгадать предлагалось, как именно это было достигнуто.
Никого силком отгадывать не тащили, не нравится, проходи мимо, не так ли?
Вы сначала заявили, хоть и неявно, что такого не бывает, а потом, чтобы невозможно было опровергнуть, закрыли тему.
Даже подсудимым предоставляют последнее слово, вы и этого не сделали
19 янв 15, 18:17    [17139480]     Ответить | Цитировать Сообщить модератору
 Re: небольшая дыра в безопасности  [new]
invm
Member

Откуда: Москва
Сообщений: 9406
Дело в другом: посредством выдачи разрешений серверной public, можно дать доступ к серверу учетным записям ОС, которые не являются прямо или косвенно именами входа сиквела. Это и есть дыра.
19 янв 15, 18:44    [17139591]     Ответить | Цитировать Сообщить модератору
 Re: небольшая дыра в безопасности  [new]
o-o
Guest
invm
Дело в другом: посредством выдачи разрешений серверной public, можно дать доступ к серверу учетным записям ОС, которые не являются прямо или косвенно именами входа сиквела. Это и есть дыра.

надо же, нашелся один человек, к-ый различает логин и серверную роль.
или, может быть единственный, кто осмелился написать в заведомо обреченной теме?


Владислав Колосов
Как будто бы логично, даём коннект "кому угодно". А этот "кто угодно" находит соответствие в базе по имени независимо от SID, ведь SID у него "любой".

public <> виндовая группа Everyone.
первое -- серверная роль. а не "имя входа"
а вот второе могло бы стать этом самым "именем входа", если бы была выполнена команда CREATE LOGIN.
19 янв 15, 19:03    [17139663]     Ответить | Цитировать Сообщить модератору
 Re: небольшая дыра в безопасности  [new]
борис абрамович б
Guest
Glory
Вы точно тупой.


Вам следует понимать, что так называть других никто не имеет права.
19 янв 15, 22:12    [17140274]     Ответить | Цитировать Сообщить модератору
 Re: небольшая дыра в безопасности  [new]
Glory
Member

Откуда:
Сообщений: 104760
борис абрамович б
Вам следует понимать, что так называть других никто не имеет права.

Хорошо, буду называть - альтернативного умственного уровня.
19 янв 15, 22:20    [17140289]     Ответить | Цитировать Сообщить модератору
 Re: небольшая дыра в безопасности  [new]
o-o
Guest
Glory
Вот и проходите мимо со своими загадками.


а мне заранее было неведомо, что никого не заинтересует.
хотелось бы услышать коллективное мнение, прежде чем проходить мимо, или вы здесь один?
а может вы -- глас народа?
мне и сейчас непонятно: действительно неинтересно или никто не хочет связываться.
причем не со мной, а с ВАМИ, уважаемый
19 янв 15, 22:21    [17140291]     Ответить | Цитировать Сообщить модератору
 Re: небольшая дыра в безопасности  [new]
Glory
Member

Откуда:
Сообщений: 104760
o-o
а мне заранее было неведомо, что никого не заинтересует.
хотелось бы услышать коллективное мнение, прежде чем проходить мимо, или вы здесь один?

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

o-o
мне и сейчас непонятно: действительно неинтересно или никто не хочет связываться.

Что интересного в выдаче прав всем ?
Где заявленная "дыра" ? Что именно злоумышленник может выполнить в обход заявленной безопасности ?
19 янв 15, 22:27    [17140305]     Ответить | Цитировать Сообщить модератору
 Re: небольшая дыра в безопасности  [new]
o-o
Guest
закрывайте.
и спасибо за предупреждение, по крайней мере честно
19 янв 15, 22:29    [17140312]     Ответить | Цитировать Сообщить модератору
 Re: небольшая дыра в безопасности  [new]
gang
Member

Откуда:
Сообщений: 1394
o-o
закрывайте.
и спасибо за предупреждение, по крайней мере честно

А чёй-то Вы сливаетесь? По первому посту создается впечатление, что описанная Вами ситуация действительно может потенциально вести к нарушению безопасности. Основное направление "атаки", видимо, выполнение кода пользователем, имеющим dbo отдельной БД, с привилегиями сисадмина сервера через DDL триггеры при выполнении служебных задач. Все дальнейшее это уже использование неправедно полученных привилегий. Частный случай получения доступа к серверу без явного создания логина, представляет интерес только с той точки зрения, что такое поведение кажется нелогичным для некоторых (но не всех) коллег. С точки зрения контроля безопасности, если он есть, выполнение команды grant connect sql to public не менее "ахтунгово", чем sp_addsrvrolemember (или подобных). Так что рационально зерно в посте, ИМХО не совсем там, где Вы акцентировали внимание, но оно явно есть. Но и Глори тоже прав, может не по форме (что не новость), но по сути. Конкретики мало, результат не явный. Приведите конкретный пример со скриптами, последовательностью действий и результатом. В духе: имеем dbo, делаем это, ждем реиндексации, получаем это, теперь можем вот так (например, удаляем учетку старого админа). Тогда может получиться интересный кейс для интересующихся безопасностью.
20 янв 15, 09:26    [17141155]     Ответить | Цитировать Сообщить модератору
 Re: небольшая дыра в безопасности  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Ребята,а вот другого не понимаю. о-о ,как честный парень - всегда приводит репо для своих изысканий, готовит так сказать материал для обсуждений. Чего вы на него накинулись то ? Ему показалась данное интересным и он поделился со всеми с полной выкладкой....
Помоему гораздо более интересно принимать участие в такой теме - чем в тем е класса как написать селект с иннер джойном.
Честног - не понимаю откровенно за что вы на него гоните.
20 янв 15, 10:05    [17141365]     Ответить | Цитировать Сообщить модератору
 Re: небольшая дыра в безопасности  [new]
Glory
Member

Откуда:
Сообщений: 104760
Maxx
Чего вы на него накинулись то ?

Потому что есть 2 темы
https://www.sql.ru/forum/1137529/zagadka - закрытая Угадайка с потоком сознания и текущая.
К _изложению_ текущей темы вопросов нет. Поэтому она до сих пор и открыта. О ценности информации в текущей теме каждый может судить сам
20 янв 15, 10:18    [17141435]     Ответить | Цитировать Сообщить модератору
 Re: небольшая дыра в безопасности  [new]
o-o
Guest
gang,
я не сливаюсь, у меня вообще девиз "не дождетесь"
просто никто интереса не проявил, зачем было дальше настаивать?

да, у меня проблемы с изложением, сейчас постараюсь по сути, а если не закроют, объясню, откуда вылезла "тема-загадка".
описанная мной ситуация не сказка, а имеет место быть.
показалось уместным о ней рассказать, мало ли еще у кого то же самое.

у нас ситуация -- "административный бардак", в базах почему-то все или db_datareader-ы, или db_owner-ы.
я db_owner.
триггер пришлось повесить давно, ибо пакостят, надо же хоть отслеживать, кто.
ну а в один прекрасный день меня осенило: может, и на сервере у них то же самое: или ты сисадмин, или никто.
что жалко что-ли в триггере в попытаться себе выдать права?
только CONTROL SERVER оказалось не очень хорошая идея, т.к. у нас все логины-группы, выдать пришлось группе, ну и понятно,
что остальным открылась интересная картинка в Object Explorer-е.
теперь живу с IMPERSONATE на sa.
я не чтобы гадить, это был академический интерес + дефолтный трэйс теперь смотрю.
а еще у них есть процедура мониторинга, проверяет серверные роли.
ну я и говорю себе: правильно, не надо было лезть в сисадмины, могли бы и засечь.

про паблик выяснилось тоже случайно, сейчас напишу отдельно, а то длинно уже.
и тут меня второй раз осеняет: они со своим мониторингом может еще максимум логины контролируют,
а я могу сделать "незаметно". в порядке издевательства. но мне это не надо.
а сама картинка показалась забавной. представляю наших ДБА в поисках, как же это все проникают,
если бы им вдруг нажаловались.
они же явно не ходят дальше папки с логинами, а там бы было все чисто
20 янв 15, 10:57    [17141620]     Ответить | Цитировать Сообщить модератору
 Re: небольшая дыра в безопасности  [new]
Glory
Member

Откуда:
Сообщений: 104760
o-o
у нас ситуация -- "административный бардак", в базах почему-то все или db_datareader-ы, или db_owner-ы.
я db_owner.

Ну так и называйте тему "административный бардак", а не "дыра в безопасности ".

o-o
а сама картинка показалась забавной. представляю наших ДБА в поисках, как же это все проникают,
если бы им вдруг нажаловались.
они же явно не ходят дальше папки с логинами, а там бы было все чисто

Детский сад какой-то
20 янв 15, 11:03    [17141658]     Ответить | Цитировать Сообщить модератору
 Re: небольшая дыра в безопасности  [new]
o-o
Guest
откуда все пошло.
одной тете в базе надо было выдать права, но у нас правило не выдавать индивидуальным учеткам,
а только группам. выдаю причем не я, а начальница, а у ней свои понятия.
попросила бы тетю посмотреть, что та видит в логинах, узнала бы ее виндовые группы,
но нет, она(начальница) полезла смотреть в аутлуке (вот вам анекдот, или не поверите,
а я могу картинкой показать их переписку, мне совсем несмешно).
и выдает права этой группе, что в аутлуке видит.
все выдалось, создался юзер-группа, все ок, а тетя не попадает, куда надо, все равно.
я ей смотрю xp_logininfo, пользуясь своим impersonate, и вижу, у ней вообще-то две другие группы, куда она входит, а этой группы нет.
более того, той группы нет даже в логинах, а права в базе ей выдались, разве не забавно?

хорошо, думаю, может та группа, что не логин, может она подгруппа в другой, к-ая логин?
у меня с АД плохо, но я же могу проверить на своем локальном сервере.
иду на свой, маплю ту группу, и мне надо проверить, как тетя попадает на мой сервер, может xp_logininfo, покажер группу-отца?
выполняю
exec xp_logininfo 'HD03\s104036', 'all'
мне в ответ ПУСТО.
я недоумеваю, проверяю ей
execute as login = 'HD03\s104036'
select * from sys.fn_my_permissions(null, 'server');
revert;

мне выдают только VIEW ANY DATABASE.
все, разгадка.
тетя НЕ попадает на мой сервер, коннекта у ней нет, зато она априори сидит в паблике.
осталось выдать CONNECT SQL.

ну и теперь что, написать, а "вы видели недокументированное поведение?"
что все виндовые учетки есть в паблике и что виндовой учетке можно выдать права в базе, даже если ее нет в виде логина?
ни через группу, ни индивидуально, нет и все.
и что можно сделать для виндовой учетки CREATE USER [HD03\s104036], если ее тоже нет как логина ни в каком виде?
да Глори нервно реагирует на такое, я в курсе дел, на собственной шкуре проверено,
мне и пришло в голову оформить загадкой.
а вышло еще хуже.
научите правильно оформлять, я только спасибо скажу.

раскрою тайну названия второй темы.
опасаясь реакции на "недокументированность" пишу юзеру форума с многолетним опытом,
правда только в виде read-only user, ибо не выносит хамства.
прошу нейтральное название для темы. и да, тему называю по совету, а не из головы.
и все равно сразу наезды: где дыра, что за бардак, все по второму разу.
20 янв 15, 11:24    [17141803]     Ответить | Цитировать Сообщить модератору
 Re: небольшая дыра в безопасности  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
o-o
public <> виндовая группа Everyone.
первое -- серверная роль. а не "имя входа"
а вот второе могло бы стать этом самым "именем входа", если бы была выполнена команда CREATE LOGIN.


Это ортогональная точка зрения :) Представьте, что Вы сервер. И Вам говорят - разреши коннектиться роли PUBLIC.
Вы думаете - "а кто такой паблик"? "Э, так ведь это кто угодно, любой секьюрити контекст, хоть Пупкин, хоть Everyone. Любой кто пытается подключиться".
Ок, если мы дает доступ по любому контексту, а давайте-ка посмотрим, к какой базе он хочет выполнить запрос! О! А в базе Пупкин у нас есть, пустим его к базе.
20 янв 15, 11:25    [17141812]     Ответить | Цитировать Сообщить модератору
 Re: небольшая дыра в безопасности  [new]
o-o
Guest
Glory
Детский сад какой-то

ожидаемо.
но что имеем, то имеем.
я еще всего не рассказываю, все равно не поверите.

а еще у меня есть пренепреятнейшее свойство, ненавижу, когда мне не верят.
я и ту тему начинаю словами "из области абсурда, но все же".
покажу картинкой, а дальше как хотите.
я говорю, в мире бывает всякое.
не надо думать, что "DBA" это титул, к-ый надо заслужить.
иногда он перепадает...короче, на картинке все

К сообщению приложен файл. Размер - 132Kb
20 янв 15, 11:32    [17141877]     Ответить | Цитировать Сообщить модератору
 Re: небольшая дыра в безопасности  [new]
o-o
Guest
Владислав Колосов
o-o
public <> виндовая группа Everyone.
первое -- серверная роль. а не "имя входа"
а вот второе могло бы стать этом самым "именем входа", если бы была выполнена команда CREATE LOGIN.


Это ортогональная точка зрения :) Представьте, что Вы сервер. И Вам говорят - разреши коннектиться роли PUBLIC.
Вы думаете - "а кто такой паблик"? "Э, так ведь это кто угодно, любой секьюрити контекст, хоть Пупкин, хоть Everyone. Любой кто пытается подключиться".
Ок, если мы дает доступ по любому контексту, а давайте-ка посмотрим, к какой базе он хочет выполнить запрос! О! А в базе Пупкин у нас есть, пустим его к базе.

почитайте, что такое роль.
найдите отличие от "имени входа"
с меня на сегодня борьбы хватит.
подсказка: роль лишь объединяет имеющиеся логины.
а не пускает на сервер кого угодно.
наличие всего AD в паблике не есть нормальный, явный, документированный факт
20 янв 15, 11:37    [17141923]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить