SELinux, AppArmor и др. системы безопасности


Цитата с другой ветки[link1], обсуждение перенесено сюда в отдельно созданную тему.
> Но безопасность в контексте браузера это фантастика, на сегодняшний день.

SELinux по идее должен защищать пользовательское пространство от уязвимостей в приложениях. Правда я пока не освоил эту технику. Может кто из знающих людей покажет пример? Предположим, нужно изолировать браузер Firefox


Вот пример создания политики для гуглохрома:

http://danwalsh.livejournal.com/32759.html

Или пример использования киоск-режима:

http://danwalsh.livejournal.com/11913.html

Но всё вменяемо работает только в Федоре (в нём ведётся официальна разработка), в других дистрах поддержка SELinux не очень хорошая (местами плачевная) и стабильно отлажена только в расчёте на запуск серверов. Многих утилит, фич просто может не быть. Особенно для юзер-приложений и иксов.

А вы уже пробовали как-то работать хотя-бы с готовыми политиками? Про всякие тонкости с "domain transition" внятно себе представляете?

По SELinux практически нет ни манов ни доков, только книжки, разрозненные описания в расчёте на опору поддержки дистростроителями готовых политик (что хорошо делается только в Федоре).

Комментарии
— sentaus (11/04/2010 22:05)   
А может чем-то попроще воспользоваться? Apparmor-ом, например. Политики писать точно сильно проще.

Какие у него есть фундаментальные недостатки относительно SELinux?
Гость (11/04/2010 22:20)   
авторы SELinux считают, что создание модели безопасности на основе путей, а не модификации файловой системы и введения доменов безопасности — неполноценно и демонстрировали, как можно обходить AppArmor. Модель безопасности AppArmor заведомо ущербна и содержит в себе концептуальный изъян.

Но как компромисс в сторону упрощённости в обмен на меньшую безопасность сойдёт.

/comment34744[link2] Былинные чудеса поиска, sentaus. Вы слишком редко участвуете в срачах на pgpru :)
— sentaus (11/04/2010 22:36)   
Вы слишком редко участвуете в срачах на pgpru


Точно, видимо, я тогда это не читал, иначе бы запомнил.

unknown,
демонстрировали, как можно обходить AppArmor

а можно на это ссылочку? Гугль что-то у меня молчит как партизан.
— unknown (11/04/2010 22:49)   
Обсуждали раз[link3], два[link2], три[link4], четыре[link5].

Этот вопрос заслуживает отдельной темы.

Только модель SELinux является формально полной из всех возможных (и за счёт попытки объять необъятное невероятно сложной, многое упирается в разработку средств упрощения работы с готовыми политиками и макроязыком для создания новых), а AppArmor простой за счёт крайней ограниченности, которую разработчики SELinux и независимые эксперты безопасности считают фундаментальным изъяном всей идеи.

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

Есть ещё концепт безопасности от Джоанны Рутковской через всеобщую раздельную виртуализацию : http://www.qubes-os.org/Home.html

Также IMHO намного слабее SELinux (хотя может использоваться совместно — какой-то монстроидально-параноидальный кошмар), завязан на закрытые проприетарные стандарты Intel, но зато искаробочный и рассчитанный на потребности рядового десктопного пользователя.
— unknown (11/04/2010 23:07, исправлен 11/04/2010 23:17)   

Реклама от Новелла[link6], какой сложный и неудобный SELinux.


Статья[link7] с мнениями двух сторон. Поверхностная, технические детали освещены слабо, но как можно проводить эскалацию привилегий в AppArmor показано.


Просто, когда тыкают в ужасный код модулей SЕLinux, не понимают, что он описывает не просто права доступа, но все возможные потенциальные действия компонентов программы, включённых в домены безопасности (например — не положено такой-то проге иметь выход в сеть или положено только определённым образом, порты, сокеты, доступ к ресурсам ядра и др. и сделано это не по путям, метки принадлежности к домену проставлены на уровне ФС, а никто из домена не сможет сбросить контекст для перехода к пользователю в другом домене, если не прописаны переходы доменов, так что даже получив эксплойтом рута за пределы этих политик не выйти).


В сети есть демо-машинки с рутовым доступом по ssh для желающих помучать SELinux, никто вроде не взломал за много лет.

— sentaus (12/04/2010 00:31)   
Спасибо, рекламу от новелля гугль давал сразу – и в основном только её, а вот вторую статью я не находил.

Сейчас нашёл ещё вот это:
http://www.isoc.org/isoc/conferences/ndss/09/pdf/16.pdf
Гость (12/04/2010 01:47)   
Есть ещё концепт безопасности от Джоанны Рутковской
А реально это настроить по аналогии самому на произвольной оупенсурц-ОС, которая поддерживает Xen? Это намного сложнее просто запуска машин в виртуалках Xen + минимальная доводка?
— unknown (12/04/2010 09:33, исправлен 12/04/2010 09:33)   

Скорее малореально, полистайте пэдээфку к работе в конце страницы: http://qubes-os.org/Architecture.html


Много всяких наворотов, чтобы безопасный буфер обмена работал, чтобы это всё не тормозило и т.д.


Ну и концепция виртуализации для защиты раньше оценивалась скептически. Докажет ли Рутковская обратное — неизвестно.

— unknown (12/04/2010 09:47, исправлен 12/04/2010 10:10)   

Для безопасности API в ядре был выбран SELinux, другие альтернативы рассматривались (в том числе AppArmor):
http://lwn.net/Articles/181508/


Вот подробное описание[link8] неполноценности ограничивающих моделей ACL по путям (AppArmor, etc).


Работа, которую привели выше[link9] интересна тем, что на практике показывает, что реально используемые правила AppArmor немного безопаснее SELinux, но там рассматривается доступ, который злоумышленник может получить к дополнительным утилитам только определённым способом и не рассматриваются другие возможные способы.


Судя по количесту багов даже в правилах, поставляемых самими разработчикам SELinux, вполне возможно, что он хорош в теории, а на практике многое в плачевном состоянии.

Гость (12/04/2010 19:29)   
Скорее малореально, полистайте пэдээфку к работе в конце страницы
Спасибо. Я имел в виду, что если можно настроить не патча никакой код – это одно (уровень продвинутого администрирования), а если нужно что-то патчить – то другое (уровень (системного) программиста). Мну не программист, потому второй вариант заведомо отсекается.

Ну и концепция виртуализации для защиты раньше оценивалась скептически. Докажет ли Рутковская обратное — неизвестно.
"Для защиты" – понятие растяжимое: защиты от чего? В идеологии TdR[link12] виртуализация не помогает, но там имелась в виду защита от атак не слабее local root, что как раз актуально для серверных приложений, где почти нет прикладного софта (файерволлы и прочее есть часть ядра ОС). Чаще реалистичней другая угроза: выполнение дырявых приложений в ОС, которая полагается приемлемо защищёной (нет local root дыр). В таком случае как раз виртуализация и помогает, особенно в плане анонимности: дырявое приложение может получить доступ как к параметрам конфигурации системы и железа, так и к файлам других программ, выслав которые по анонимному каналу можно деанонимизировать пользователя, либо, как минимум, слить нежелательную информацию, даже если анонимность не преслудется как самоцель. Для защиты от такого сценария как раз разумно разделить программы на "классы эквивалентности", и выполнять разные программы в разных виртуалках/ОС. В целом задача решается на уровне стандартной настройки виртуализации и/или гипервизора, при этом Рутковская (как я понял), ещё как-то улучшила эту конфигурацию.

Судя по количесту багов даже в правилах, поставляемых самими разработчикам SELinux, вполне возможно, что он хорош в теории, а на практике многое в плачевном состоянии.
Напомнило мне известную цитату:
There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.
Hoare[link13]. Как тонко подмечено! :)
— Avalon (12/04/2010 21:19, исправлен 12/04/2010 21:22)   
А вы уже пробовали как-то работать хотя-бы с готовыми политиками? Про всякие тонкости с "domain transition" внятно себе представляете?

Пробовал, но познания у меня пока поверхностные на уровне SELinux User Guide от Федоры
http://docs.fedoraproject.org
Что такое "domain transition" знаю, про возможные тонкости – нет.
Спасибо за комментарии и ссылки.

Гость (16/04/2010 09:42)   
А кто что может сказать хорошего/плохого про Bastille-linux?
http://bastille-linux.sourceforge.net/
http://www.ibm.com/developerwo.....=105AGX99&S_CMP=GR01[link14]
— unknown (16/04/2010 10:59)   
Это просто диалоговый конфигуратор-"отключатор", удаляющий ненужное из системы. То что опытный админ (продвинутый пользователь) может сделать вручную. И эта штука заведомо будет отставать от новинок в системе.
Гость (16/04/2010 13:04)   
гыгыг
в статье про бастиллу аффтар защищает линукс систему, поднятую под вирт. машиной под физической виндой :)

Вообще так прочел статью – ничего интересного для моей системы в плане ее защиты она не дает, т.к. часть вопросов решена в Debian по-дефолту, остальная часть настроек уже зада мною (да, если бы я знал про эту систему, может быть не делал это руками, но раз уж сделал :)), пара из них мне не нужна.
Но, учитывая, что автор работает в администрации Краснодарского края :), конечно для кубаноидов м.б. полезная система, ибо у них там ну просто очень много тупоголовых. В частности, демонстрирующих работу линукс-системы под вирт. машиной, поднятой под кривой вендой :)))
Гость (05/10/2011 21:35)   
завязан на закрытые проприетарные стандарты Intel
Кто вникал в суть, подскажите: как так получается, что Xen — полностью свободен и открыт, а Qubes, на нём основанный, жизненно требует каких-то "закрытых проприетарных стандартов"? Может, не во всех конфигурациях?
— unknown (06/10/2011 15:53)   
Возможно, действительно не во всех. В описаниях там явно упоминается использование TPM-чипа против атаки "злонамеренной уборщицы" и идёт упор поддержки виртуализации на аппаратном уровне от Intel для ёщё чего-то.
— sentaus (06/10/2011 16:04)   
идёт упор поддержки виртуализации на аппаратном уровне от Intel для ёщё чего-то

От DMA, видимо, если речь идёт о VT-d.
Гость (06/10/2011 17:11)   
как так получается, что Xen — полностью свободен и открыт, а Qubes, на нём основанный, жизненно требует каких-то "закрытых проприетарных стандартов"?
Вообе говоря, почему бы и нет – сделать на основе открытой вещи что-то специализированное. Вот если наоборот – было бы странно...
Гость (06/10/2011 17:15)   
А если уборщицу исключить как угрозу и рассматривать чисто программную изоляцию данных? Просто Xen в минимальной функциональной форме сам по себе ничего такого не требует в применении к Linux'ам, даже аппаратной поддержки. Я понимаю, если бы они винду хотели в domU засунуть.
Гость (06/10/2011 17:16)   
почему бы и нет – сделать на основе открытой вещи что-то специализированное
Сама Рутковска ничего специально не закрывает и не опроприетаривает, насколько я понимаю.
Гость (15/10/2011 05:55)   
unknown, как мы поняли отсюда http://www.pgpru.com/forum/ano.....rbundleipaketnyjjtor[link15] и из рассылки Tor, Вы очень продвинулись в деле юзанья SELinux.
Может быть, напишите на досуге раздел в FAQ по данному вопросу?
— unknown (15/10/2011 20:07)   
Там конечно много полезных вещей. Например запрет пинга не руту, просмотра dmesg и /proc по-умолчанию. Защита хотя бы таких стабильных программ, как ssh, dhcp или gpg.

Но вообще, SELinux всё ещё кривой и ужасный. По крайней мере в исполнении Debian. Приходиться использовать только стандартные политики (выучить и понять весь его синтаксис нет сил), выгружать часть глючных модулей (оставляя часть программ без защиты). Те модули, которые относительно успешно можно запустить хотя бы с глюками, есть возможность дополнять своими политиками в соответствии с тем, что выдаёт audit2allow, что есть неправильно и заведомо опасно (но лучше, чем совсем без них). И после каждого обновления есть шанс получить много геммороя с поиском причин глюков и перенастройкой. Стандартную поставку очень хреново обновляют. Иногда приходиться его полностью отключать (превращение защиты в театр). Но хоть какая-то защита (по принципу — в плане защиты SELinux не делает хуже, он может сделать "лучше, чем ничего" или ничего не сделать).

Надеюсь, что в будущем им можно будет пользоваться нормально. А так, поделиться в плане некривых и верных решений пока нечем.
Гость (17/10/2011 23:34)   
А что можно сказать про аналогичные решения усиления безопасности для платформы FreeBSD? Они существуют? они стабильны и эффективны или дело еще хуже чем с SELinux?
Гость (18/10/2011 00:19)   
что можно сказать про аналогичные решения усиления безопасности для платформы FreeBSD?
/comment34765[link16]
Гость (20/10/2011 01:20)   
Но хоть какая-то защита (по принципу — в плане защиты SELinux не делает хуже, он может сделать "лучше, чем ничего" или ничего не сделать).

Все эти замечания справедливы только в одном случае, когда отсутствует 0-day в ядре, т.е. будь-то мандатный контроль доступа и/или ролевой, он может дополнить заплатанное PAX/grsecurity ядро. Найти уязвимость наверное можно и в песочнице SELinux, а последняя представляет из себя модуль безопасности ядра, здесь[link17] об этом есть немного.
Гость (03/06/2012 20:20, исправлен 04/06/2012 10:16)   

Продолжение обсуждения от /comment52970[link18]


чтобы и не глючил, и лишнее не позволялось

А что ему может позволяться? Боитесь, что потрёт файлы чужих программ, или тех, с которыми работает? Если среда враждебная до такой степени исключительности, а данные настолько критичны, запускайте его от отдельного юзера, где больше ничего нет, предварительно дав ему копию файла для чтения. Если боитесь local root, запустите виртуалке, где ничего кроме него нет. И даже это, пожалуй, будет сделать намного проще и надёжней, чем самопальные правила для SELinux, собранные на коленке.

Гость (03/06/2012 20:44)   
Почему вы так уповаете на надёжность виртуалок? На форуме это обсуждалось[link12] уже.
Гость (03/06/2012 21:35)   

Ну обсуждалось, и что? Да, я когда-то обсуждал это с unknown'ом, теперь вы ссылаетесь в споре со мной на мой же пост, lol. Итог этих обсуждений я озвучивал в /comment38612[link19]. Раз уж на то пошло, обратите внимание и на критику SeLinux:

В итоге толку от обоих может быть мало — один плохо настраивается и толком не работает, другой добавляет столь мало безопасности, что иногда больше создаёт её иллюзию. [link20]

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

Судя по количесту багов даже в правилах, поставляемых самими разработчикам SELinux, вполне возможно, что он хорош в теории, а на практике многое в плачевном состоянии. [link21]

Всё зависит от степени параноидальности настроек. Но по большому счёту, да эти security-панцири не панацея, а не более чем костыль. [link22]

Сложность — в создании правил компактного описания разрешений/запретов из-за сложности самого ядра. [link23]

Были и другие посты, суть которых сводилась к тому, что SELinux настолько сложен, что обычным пользователям (даже достаточно опытным) он попросту не под силу. Скорее, это уровень коммитеров в ядро, причём хорошо понимающих, как разные системы ОС/ядра взаимосвязаны между собой.

Если говорить на языке ИБ, векторы атаки для анонимов и для TdR совершенно разные. Что касается основного детища TdR, OpenBSD, в ней на local root сквозь пальцы смотрят, да и цитата
Only two remote holes in the default install, in a heck of a long time! [link24]
говорит о том же. Виртулаки — не панацеи, но довольно эффективны в качестве средства изоляции враждебного окружения как от сети, так и от знания реальных параметров железа. У разработчиков же OpenBSD анонимность, шифрование дисков и тому подобные вещи имеют низкий приоритет: «им нечего скрывать» на их рутерах, и уже тем более они не рассматривают получение к ним физического доступа атакующим.
Гость (03/06/2012 22:32)   
spinore, ну вы бы тогда подписывались что ли. Или я должен детектировать вас, хотя вы даже не потрудились имя в поле вписать? К чему упрёк?
Хотя, здесь похоже кроме вас с SATtva, да unknown и нет никого.
И я дал ссылку на цитату и дальнейшее обсуждение скорее, там в посте кроме неё ничего нет.

Что касается основного детища TdR, OpenBSD, в ней на local root сквозь пальцы смотрят
Смелое заявление. Подкрепите словами Тео? Цитата про remote holes ни о чём не говорит.

Насчёт сложности SELinux. Вы конечно же в курсе, что оно по дефолту включено в федоре? Пользователи, судя по всему, жалуются всё меньше и меньше (субъективно, конечно). Имеются подробные доки и кое-какие гуи-утилиты.
А вообще, я и не говорил, что оно простое. Но у меня больше доверия к нативной системе защиты, чем к сделанным совсем для других целей инструментам. Впрочем, в качестве quick&dirty решения — согласен, годится.
— unknown (03/06/2012 22:44)   
По поводу SELinux, там есть медленные улучшения для рядового пользователя.

Набор стандартных модулей, согласованных с вашим дистрибутивом, отлично будет защищать сервисы, которые с ним же и поставляются (CUPS, VPN, ssh). Можно подправить правила и для системного Tor (но не TBB). Это то, как SELinux работал всегда, будучи ориентированным на серверы. Для десктопа есть немного готовых модулей для программ (gnupg, mplayer).

Чтобы не мучиться с составлением с нуля модуля для программ, можно отдельного анонимного пользователя дополнительно запускать с готовой SELinux ролью user_u, прописать, чтобы при логине эта роль автоматически накладывалась и назначались соотв. SELinux-права в хомдире. Пользователь с этой ролью может не бояться эксплойтов, которые повышают свои привилигии до рута (если не будет эксплойтов против самого SELinux или его конкретных настроек). Во-первых получить права рута сложнее: чтение и работа с некоторыми системными файлами для пользователя с такой ролью ограничены, нет возможности запускать суидные файлы, пользоваться пингом, su, sg, sudo и любой программой, меняющей UID/GID. Во-вторых, если рут даже получен, то он выглядит очень забавно (как не рут) — он практически ничего не может, т.к. находится в том же пользовательском SELinux-контексте.

В новых версиях SELinux ещё больше интересных возможностей и утилит (в плане взаимодействия с сетевыми возможностями как напрямую так и посредством iptables, совместное использование с виртуалками и "квазивиртуалками" – LXC), но вся разработка ведётся на Fedora Linux, а в другие дистрибутивы всё переходит очень медленно.

Кстати, в одной из рассылок натыкался на давний вопрос, "почему нет файрволла, работающего на уровне приложений?". Ответ от разработчиков примерно в таком же духе, что "без соответствующего контекста безопасности, накладываемого на приложение, любой локальный файрволл будет бесполезен".
Гость (03/06/2012 23:32)   

Конечно, как и в курсе того, что при этом было много ругани на тему «SeLinux работает только в дефолтной поставке, а при малейшем изменении настроек под себя (ну среднестатистическому пользователю федоры зачем анонимность? А вам она может понадобиться) получается что-то такое[link25]». В итоге SeLinux превратился в средство «работает, если ничего не трогать и не менять» (по словам пользователей той же федоры — за что купил, за то и продаю).


В нативной системе защиты вектор угроз, как правило, настолько отличается от ваших, что сам вопрос доверия теряет смысл: они строят защиту от одного, а вам нужна защита от другого. Кого будет волновать утечка серийников железа, MAC-адресов сетевых? Даже разработчики целевых решений для анонимности порой прокалываются[link26] так, что должно быть совсем стыдно. Я считаю, что если вы понимаете что и как работает (а это не так сложно, как кажется) в плане анонимности, вы сделаете свою систему более безопасной, чем искаробочное решение. К тому же про правила SeLinux, защищающие от утечек информации о железе и самой ОС, на которой целевой софт работает, я не слышал. Когда будет стандартизированное решение (пока Qubes самое близкое к тому), тогда можно будет говорить о его выборе.

Гость (03/06/2012 23:47)   

Ну как же, remote считают (причём даже их — только в умолчальной установке ОС), а local — нет. Уже это — прозрачный намёк. Скорее, отношение к local root у всех такое, не только у OpenBSD'шников: считается, что
  1. Безопасность критична только на серверах (десктопы пока не ломают, т.к. нет чёрного рынка малваре под Linux-десктопы в силу его малой распространённости — экономически невыгодно разрабатывать зловреды).
  2. Доступ к шеллу имеют только доверенные лица, потому ломать они ничего не будут (на хостингах доступ либо в виртуалку, либо на dedicated server — ни то, ни другое не является ОС'ью, из которой ведётся админское управление всем хостингом). И даже если они захотят что-то ломать, они вряд ли надёжно сотрут логи, к тому же они обычно неанонимны. А раз так, опасность получить по шапке их должна остановить.
  3. Зловредная прикладная программа, эксплуатирующая дыру вида local root — фантастика (с чем трудно не согласиться), и, опять же, считается, что такая программа имеет куда больший риск появиться на десктопе, чем не на сервере (далее см. пункт 1).
  4. К времени на закрытие local root дыры относятся намного более спокойно, чем к закрытию remote-дыры. Боюсь наврать, но, кажется, могли исправлять несколько дней в некоторых open source ОС.

Наверное, можно найти и конкретные цитаты, но сходу не вспоминается ничего такого.
Гость (03/06/2012 23:52)   

И как у него насчёт прав к просмотру конфигурации системы и типа железа, настроек сети? Если есть два разных юзера (например, один анонимный, а другой нет), оба с правами user_u, могут ли они потенциально определить (не ограничиваем их в средствах), что запущены физически на одной и той же ОС/железе?
Гость (04/06/2012 00:52)   
spinore, заканчивайте троллить и приводить цитаты из темы Юмор. Я прекрасно понимаю смысл анонимных постов, я конкретно отвечал вам на
теперь вы ссылаетесь в споре со мной на мой же пост, lol

Кого будет волновать утечка серийников железа, MAC-адресов сетевых?
Мы же начали вроде с того, что приложение запускается из-под отдельного пользователя, которому запрещён доступ в сеть? И тем более каких-то условий анонимности заявлено не было. Это вы уже о чём-то о своём, батенька, пошли.
Про утечки SELinux vs виртуалка согласен. Но виртуалки помимо спорной защищённости приносят и другие неудобства: дополнительные затраты ресурсов, оверхэд, время на разворачивание.

remote-дырки считают, потому что они наиболее опасны.
К времени на закрытие local root дыры относятся намного более спокойно, чем к закрытию remote-дыры
Спасибо, Капитан Очевидность! Но не забивают же? Серьёзная уязвимость, фиксят быстро, чего вам не хватает?

Домысливая за разработчиков в духе spinore можно в итоге придти к:
  1. десктопы не популярны, не приносят дохода, да и *nix это серверная ОС вообще
  2. исходя из п.1 разработчики смотрят сквозь пальцы (sic!) на все десктоп-ориентированные дыры
  3. исходя из п.1 и п.2 *nix нисколько не претендуют в качестве безопасной ОС
Подытоживая всё вышесказонное: Linux и BSD на десктопе не нужны. Windows лучшая ОС, т.к. она делается для десктопов.
Гость (04/06/2012 01:48)   

Да, нить разговора и контекст потерялся. С другой стороны, если не беспокоиться об анонимности, то непонятно откуда взялось требование про «запрещён доступ в сеть» (выдумать такие условия можно, но да ладно).


Если речь идёт про настоящую паравиртуализацию (Xen), то основные затраты — время на разворачивание. Оверхед, пишут, действительно есть, но он отрицательный:

With NetBSD 5, which greatly improves disk I/O and network I/O performance over NetBSD 4, some guest Operating Systems running under Xen are known to operate faster than when installed natively on the same hardware without NetBSD and Xen behind the scenes. [link33]

Гость (04/06/2012 02:28)   
Гость (04/06/2012 21:58)   
Умный человек единственным авторитетом признаёт логику [а не авторитет]: ему не так важно КТО говорит (сосед, друг, доктор наук, президент) и КАК (лично, по телефону, по телевизору) говорит, но принципиально важно ЧТО говорится.
Это так, пока предмет разговора прост и обозрим (для слушателя), а реальные предметы чаще всего не таковы, поэтому и становиться важно КТО говорит – его порядочность и компетентность в обсуждаемом вопросе, поскольку иначе не хватит времени на вникание в любую малознакомую тему для проверки сказанного. Количество переходит в качество.
Гость (10/06/2012 02:20)   
Гость (10/06/2012 10:22)   
жесткая полемика с кучей цитат.. страшно становится.
а если я задам вопрос о проекте JanusVM здесь, это будет по теме?
— SATtva (10/06/2012 10:25)   
Не будет. Почему не задать его непосредственно в теме[link40] по JanusVM?
Гость (10/06/2012 10:51)   
спасибо. там тема мертвая и видимо никому не интересная, т.к. кто специалист в Unix, тот сам себе такое сделает. а у простых пользователей стало быть не популярен.
Гость (10/06/2012 19:41)   
— neverward (06/07/2012 07:53)   
в SE вынесена часть логики в конфигурацию. Это тоже не очень хорошо, так как в итоге всё зависит от качества конфигов каждой софтины, но гораздо лучше чем вообще ничего. Apparmor кроме этой же проблемы имеет меньшую изоляцию. Также на практике забывают маленький нюанс. Атака на сервер может быть произведена в виде перегрузки системных ресурсов(для этого хватит минимума прав), что вызовет увеличение числа ошибок работы с устройствами, что в свою очередь не сказывается на безопасности положительным образом или просто вызовет останов части или всех сервисов этого сервера, что в реальном мире вызывает не только остановку сервера, но и может опять же негативно сказаться на его безопасности из-за человеческого фактора во время попыток системных администраторов, находящихся под сильным давлением менеджеров, восстановить работоспособность системы в кратчайшие сроки. На практике атаки на отказ в обслуживании отнюдь не редкость и SE никак не решает проблему с защитой от таких атак.

Полное отделение операционной системы от реального железа – вот логичный путь дальнейшего развития изоляции. По сути опять получается инкарнация старого спора микроядерная архитектура vs монолитное ядро, только теперь каждая программа(в общем смысле слова, файрволл, firefox итд, в зависимости от задач), которой желательна полная изоляция от железа работает на собственной ОС и фактически уже не способна видеть другие изолированные программы и влиять на них через реальное железо. Раньше просто не было ресурсов для таких мероприятий. При этом идею SE отвергать не нужно ибо оно работает на ring0, а гипервизор работает на ring-1 и ничем не мешает работе SE или AppArmor
Гость (06/07/2012 08:39)   

Разве? Ну системные квоты же есть. Их можно заранее постестировать на эффективных fork-бомбах типа этой[link42].


Это какой-то дешёвый гипервизор, раз он в ring 1:

Under Hyper-V hypervisor virtualization a program known as a hypervisor runs directly on the hardware of the host system in ring 0. The task of this hypervisor is to handle tasks such CPU and memory resource allocation for the virtual machines in addition to providing interfaces for higher level administration and monitoring tools.

Clearly, if the hypervisor is going to occupy ring 0 of the CPU, the kernels for any guest operating systems running on the system must run in less privileged CPU rings. Unfortunately, most operating system kernels are written explicitly to run in ring 0 for the simple reason that they need to perform tasks that are only available in that ring, such as the ability to execute privileged CPU instructions and directly manipulate memory. One solution to this problem is to modify the guest operating systems, replacing any privileged operations that will only run in ring 0 of the CPU with calls to the hypervisor (known as hypercalls). The hypervisor in turn performs the task on behalf of the guest system.

Опять Linux со своим kvm портит понимание пользователям, что такое настоящий (Type 1) гипервизор с паравиртуализацией?
Гость (06/07/2012 08:45)   
P.S.: Цитата взята с этой[link43] ссылки, забыл вставить.
— neverward (06/07/2012 10:23, исправлен 06/07/2012 10:36)   
Это какой-то дешёвый гипервизор, раз он в ring 1

1 != -1
правда ring -1 у amd вроде только


Разве? Ну системные квоты же есть. Их можно заранее постестировать на эффективных fork-бомбах типа

если атаковать скажем по нагруженному запросу сервер( для удобства пусть будет запрос к БД), то либо БД займёт все ресурсы если на неё квот нет, либо она будет очень плохо работать когда ресурсы есть. Даже двухуровневые квоты не спасают, это основная проблема серверов openvz

Гость (06/07/2012 10:54)   
Как же тогда хостинги живут в такой агрессивной среде? Любой клиент виртуалки может повесить весь хостинг?

В контексте анонимности никто не запрещает сделать физически разные диски для разных гостевых ОС. Этим проблема с БД решается. Да и если пользователь находится за компьютером, вряд ли он не заметит перегрузки по ресурсам, причём такой, которая сразу на обеих гостевых ОС (где работают разные программы и решаются разные задачи).

Квота на CPU и память тоже выделяется Xen'ом (и даже динамически регулируема на лету — сколько из баллона надуешь[link44], столько и будет).
— neverward (09/07/2012 17:38)   
Как же тогда хостинги живут в такой агрессивной среде? Любой клиент виртуалки может повесить весь хостинг?

в openVZ или Jail таки да, один клиент может грохнуть всех других. Может также не запустится что нибудь, что требует 10 мб при свободных 200мб. Есть ещё много других радостей от прокачанного chroot.

Если речь вести о паравиртуализации, то там всё лучше, можно сказать всё по честному, но без hvm всё равно поломается что нибудь вроде SElinux, ну и windows нельзя будет запустить, что уже говорит о том, что гостевая ОС должна быть подготовлена специальным образом, т.е. не что хочешь, то и ставишь. hvm позволяет запустить почти что угодно в качестве гостевой ОС
Гость (09/07/2012 18:05)   

Ну, наверное, на хостинге считают дыры в гипервизорах исключительным явлением? А без этого всё равно никуда не уехать. SELinux — это скорее защита внутри ОС от опасностей, исходящих из самой ОС, а не от соседних гостевых ОС. Хотя unknown писал, что и к виртуалкам его прикручивают.


Да, это понятно. Но для домашнего использования самое важное упущение не это, а то, что проброс PCI-устройств без хардварной поддержки (HVM) не заработает.
— neverward (10/07/2012 11:36)   
Ну, наверное, на хостинге считают дыры в гипервизорах исключительным явлением?
например у амазона около 0.5 млн физических серверов[link45]. Если в гипервизоре будет дырка, то все 0.5 млн серверов можно смело считать скомпрометированными. Думаю прилагаются большие финансовые усилия в обеспечении изоляции виритуальных машин друг от друга.
Хотя unknown писал, что и к виртуалкам его прикручивают.

Да, но не понятно где выполняется SE, в ring3 что ли?

а, это понятно. Но для домашнего использования самое важное упущение не это, а то, что проброс PCI-устройств без хардварной поддержки (HVM) не заработает.

Да, совсем забыл, игры не запустить будет.
— unknown (10/07/2012 11:55)   
А насколько сложно на практике поддерживать виртуализированную ОС в актуальном состоянии со всеми апдейтами и пр.?

Сложность не только первоначальной установки/настройки, но и регулярного обновления/обслуживания используется как один из аргументов в пользу AppArmor/SELinux/etc.

Если в системе есть какие-то стабильные сервисы, которые надо защищать в первую очередь (к сожалению, tor не очень стабилен, но проблемы с ним в SELinux разрулить оказалось несложно), то можно их обновлять, и если применять на пользовательской машине параллельные иксы или квазивиртуализацию LXC, то достаточно делать стандартным образом каждый раз только одно обновление для общей системы.

Если же есть масса раздельных, тщательно изолированных друг от друга виртуалок, да и ещё запутанных слоями-каскадами, то поддержание всей этой структуры в актуальном состоянии кажется сложным.
— neverward (10/07/2012 13:32, исправлен 10/07/2012 13:36)   

Для удобства рассматриваем XEN HVM.

А насколько сложно на практике поддерживать виртуализированную ОС в актуальном состоянии со всеми апдейтами и пр.?

Точно также, как обычную ОС на выделенном сервере

Сложность не только первоначальной установки/настройки, но и регулярного обновления/обслуживания используется как один из аргументов в пользу AppArmor/SELinux/etc.

AppArmor и SE не заметят такой виртуализации. Настройка гостевой ОС не требуется почти никогда( конечно ОС внезапно могут понадобиться какие нибудь железки, которые XEN не виртуализирует. Тогда будет плохо )

Если в системе есть какие-то стабильные сервисы, которые надо защищать в первую очередь (к сожалению, tor не очень стабилен, но проблемы с ним в SELinux разрулить оказалось несложно), то можно их обновлять, и если применять на пользовательской машине параллельные иксы или квазивиртуализацию LXC, то достаточно делать стандартным образом каждый раз только одно обновление для общей системы.

В данном вопросе ситуация с hvm равнозначна ситуации с несколькими физическими серверами. Т.е. если tor у нас на отдельной машине, то хватит одного обновления.


Если же есть масса раздельных, тщательно изолированных друг от друга виртуалок, да и ещё запутанных слоями-каскадами, то поддержание всей этой структуры в актуальном состоянии кажется сложным.

есть xenconsole и вообще у всех гостевых ОС есть устройство терминал и сетевая карта, которые может дёргать хост. Вопрос в том как передать правильные обновления гостевым ОС. Можно настроить NAT, чтобы гостевые системы могли обновляться. Тут конечно вопрос насколько надёжен NAT и система обновления, но это от виртуализации не зависит. Хоть на реально изолированных серверах будет тот же вопрос.

Гость (10/07/2012 23:46)   

Кто о чём :) Я имел в виду, что звука на будет, например. Точнее, мне трудно представить, как прозрачно туннелировать весь звук из domU в dom0. Аналогов xennet и xbd для звуковой я не видел. Может быть, в Linux они есть?


Чем-то оно даже проще: новую сборку можно заранее собрать в каком-то domU и протестировать, а потом централизованно накатить её на все остальные домены.


Это что-то типа
# xm dmesg
?


В NetBSD по умолчанию у гостевых ОС нет ни доступа к терминалу, ни к сетевой карте. Доступ — из-под виртуального сетевого интерфейса, бриджа. Если вы решили потом, пользуясь hvm, дать полный доступ к сетевой карте или какой-то tty-консоли — это уже на свой страх и риск.
— neverward (11/07/2012 15:29)   
Я имел в виду, что звука на будет, например
звук можно настроить, у линуксов сейчас звуковая подсистема позволяет передавать прозрачно звук по сети на другой компьютер.
Это что-то типа

xm console domUname[link46]
В NetBSD по умолчанию у гостевых ОС нет ни доступа к терминалу, ни к сетевой карте
Как нет, при создании domu виртуальная карта у гостя точно появляется, и виртуальное последовательное устройство тоже должно появляться( правда последнее перепиливали несколько раз, потому гарантировать нельзя )
Гость (02/12/2012 05:18)   
SELinux не может быть использован для блокирования проблемы, так как он делегирует qemu отправку ioctl для дисков, без привязки к отдельным разделам.
Это правда[link47], что SeLinux никак не помогает от подобных уязвимостей?
— unknown (02/12/2012 12:26)   
По поводу модулей для виртуалок.

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

В предыдущем абзаце получился стандартный образец отговорки, характерный для всех случаев, когда нечего конкретно сказать про SELinux ;-) Может кто-то разбирал подробнее.
Гость (02/08/2013 22:18)   
arch-spec-0.3.pdf[link48]:

1.2. Why new OS?

Authors of this document do not believe that, at any time in the foreseeable future, we would be able to patch all the bugs in the software we use, as well as detect all the malicious software. Consequently we need a different approach to build secure systems.

Obviously building a new OS can be a very time consuming task. Thats why, with Qubes OS, we reuse as much ready-to-use building blocks as possible, in particular the Xen hypervisor. This in turn implies the use of virtualization technology, which is used for two primary reasons: offering excellent security isolation properties, as well as the ability to reuse the large amount of software, including most of the applications and drivers written for mainstream OSes, like Linux or Windows.

UserFaq[link49]:

But still, all the other Qubes security mechanisms, such as AppVM separation, work as usual, and you still end up with a significantly secure OS, much more secure then Windows, Mac, or Linux, even if you don't have VT-d'''

Unknown, вглядитесь внимательно[link50] в глаза[link51] этой женщины. Как вы думаете, стоит ли ей верить[link52]? Уже три года прошло с тех пор, как вы вынесли[link20] тему на обсуждение.

Оформление интернет-страничек с публикациями у неё интересное, оригинальное[link53].

P.S. Навеяно комментом[link54]
Везде сейчас понавтыкали, что же ставить, debian?
Гость (02/08/2013 22:21)   

Хотел сказать «Появилось ли что-то новое в плане мнения открытого сообщества по поводу её подхода?».
— unknown (03/08/2013 14:41, исправлен 03/08/2013 14:49)   

Наивный подход к виртуалкам ведёт к ресурсоёмкости и затратности: при обновлениях системы нужно обновить каждую виртуалку. Как у неё это там автоматизировано — не знаю. Переходить на другую параллельно загружаемую ось для безопасной работы — это надоедливый дуалбут.


Что ещё неприятно с виртуалками — всевозможные /dev/(u)random для сильного противника в них превращаются в тыкву. Даже если подключить доверяемый аппаратный ГПСЧ, то нужен специальный демон-брокер энтропии, который корректно транслирует энтропию внутрь каждой виртуалки. Никто всерьёз это не воспринимает и не использует.


Интереснее подход с псевдовиртуалками (LXC). Сами по себе они не дают безопасности (рут в LXC = рут в системе и выход из псевдовиртуалки). Но для LXC уже сейчас есть специальные правила SELinux, которые исключают такую возможность, делая их допустимо безопасными. Стоит отметить, что проблема анонимности за счёт профилирования железа при этом не решается.


В будущем LXC планируется допилить до безопасного состояния, чтобы даже SELinux был не нужен. Это имеет не только перспективы для безопасности, но и коммерческого применения (хостинги на однотипных версиях ОС). И всяко больше шансов интеграции с обычной ОС.

Гость (06/08/2013 21:55)   

Можно сделать одну систему, которая будет снапшотом для остальных, и все гостевые системы клонировать с этого доверенного снапшота (одного или нескольких).


Qubes поддерживает установку собственных гостевых ОС в Qubes штатным образом. По сути Qubes играет роль обычного гипервизора типа Xen, только с примесью юзерофилии. Я не разбирался глубоко, но там есть инструкции, как поставить любую гостевую ОС, натыкался даже на инструкции по установке Minix NetBSD в Qubes.


С этим не поспоришь, в этом надо быть аккуратным.


А мужики-то не знают! Да ладно?! Я вам написал короткий комментарий[link55] на эту тему.

Местное wiki — это пипец. Чуть больше 140 символов 8-ми страниц — и всё, коммент (да и любой документ вики) начинает обрезаться, форматирование — портиться. Из-за этого какие-то жалкие 15 страниц экранных разворотов приходится разбивать на несколько комментариев, неудобно. Кто такие драконовские лимиты на максимальных объём текста поставил?


Вы сами всё сказали.


Как я понял из ваших постов, SELinux для анонимности (не путать с безопасностью), который бы позволял прятать от пользователя какую бы то ни было информацию о системе и железе, вообще не развивают. А раз так, фингерпринтинг таких систем всегда будет висеть дамокловым мечом.

LXC при чтении вызывает стойкие ассоциации с LHC.

Как я понял, основная идея Рутковской (да и не только её, сейчас так многие рассуждают) в том, что индустрия софта показала, что безопасных программ у нас не будет в наличии никогда. И именно с этим придётся смириться и жить. Надеяться, что для всех неидеальных программ будет один идеальный SELinux, который магически решит все их проблемы, несколько наивно. В конце концов, SELinux — это тоже программы, в них самих могут быть баги. Альтернатива — осознать проблему и сразу строить архитектуру безопасности/анонимности/ещё чего-нибудь (подставить нужное) так, чтобы бажность программ нейтрализовывались другими программами более высокого уровня.* Во всяком случае, нормально настроить такую архитектуру несоизмеримо проще, чем детально разобраться с SELinux'ом.** Более того, при апдейтах всё будет продолжать работать как и ранее — это не SELinux, где небольшое изменение ядра может порушить все SELinux-костыли, которые были до этого настроены. Да и вообще гипервизор как-то слабо зависит от внутренностей ОС. Какие-то такие мысли.


*ACL, разделение доступа, разделение осей, гипервизоры, физически выделенные машины и т.д., зависит от задачи.
**На свете есть хоть один человек, который идеально знает ядро Linux, и потому у него не вызывает каких-либо проблем настройка SELinux под любую задачу? Вы писали, что, например, всё Debian-коммунити, вместе взятое, так и не осилило базовые патчи SELinux под последний релиз.
— unknown (07/08/2013 11:24)   
Можно сделать одну систему, которая будет снапшотом для остальных, и все гостевые системы клонировать с этого доверенного снапшота (одного или нескольких).

И так после каждого apt-get update; apt-get upgrade? Для всех n-цати анонимных профилей?

Получается, что:
  1. Нужно повторять процедуру клонирования снэпшотов при каждом обновлении пакетов в системе, что бывает довольно часто при обновлениях безопасности. Вот включил комп, увидел, что надо обновиться и всё готово одной командой. А с виртуалками — это будет каждый раз морока. Скриптование не поможет: см. ниже.
  2. В каждом склонированном снэпшоте может потребоваться применить разный профиль настроек. После клонирования их придёться накатывать заново. Скорее всего с разбором вручную. Эта проблема есть даже без виртуалок в TBB, поскольку он не идёт пакетом, его приходиться распаковывать и заново настраивать в разных анонимных профилях. Хватит гемора хотя бы только с ним, а не со всеми пакетами системы. А настройки могут быть разными. Где-то нельзя иметь закладок и сохранённых документов, а где-то наоборот — некритично и желательно для удобства. Ладно, когда это только один TBB. А когда много пакетов? При первом же признаке нехватки времени и усталости самого продвинутого пользователя — лень победит паранойю. Должен быть компромисс в сторону средней степени удобства. По принципу: хотя бы один раз помучаться с настройками, а затем всё работает.
  3. В разных профилях могут быть не только одинаковые пакеты с разными настройками, но и может быть разный набор пакетов с разными настройками. Где-то нужен, например, GIMP или LaTeX, или Office, или ещё чего, и в каждом профиле свои настройки. Как это расклонировать, сохранять и накатывать настройки каждый раз?
  4. Ресурсоёмкость. Даже один TBB в последних версиях тормозит на слабых ноутах. А если запустить несколько параллельно, да ещё в виртуалках, чтобы пока один чего-то качает, в другом смотреть другие сайты, не пересекаясь профилями? Плюс масса тяжеловесных повторяющихся пакетов для каждой виртуалки тупо занимает место.

Надеяться, что для всех неидеальных программ будет один идеальный SELinux, который магически решит все их проблемы, несколько наивно.

Никто не надеется. Есть несколько векторов SELinux-защиты: отдельные программы, системные демоны и ограниченный пользователь (это неполный список).

С программами и демонами понятно. Для многих из них правил просто нет и они незащищены. Для других правила настолько глючат, что не допиливаются даже вручную. Для третьих вроде оно работает, но насколько это только видимость защиты — понять сложно.

С пользовательской ролью интереснее. Недоверенным пользователям (это все пользователи, которые ходят в сеть) по желанию присваивается роль с низкими привилегиями. Если они получат рута (что само по себе намного усложняется), он будет бесполезен. У него только UID=0, а SELinux-роль как у простого пользователя. Фактически — это не рут, чужих файлов и процессов он поиметь не может. У таких пользователей не работает sudo, ping, dmesg, ifconfig, доступ к /proc, запуск демонов из-под пользователя и много чего ещё. Это может спасти в случае уязвимости в TBB, но в особо хитрых случаях может быть и обойдено. Даёт ли это профилирование? В случае оптимального компромисса: если эксплойта нет — пользователь не отпрофилирован, если есть эксплойт — то он отпрофилирован, но только как невосприимчивый к этому эксплойту. Неплохой вариант компромисса. Хуже конечно, если эксплойт сможет обойти SELinux.

На свете есть хоть один человек, который идеально знает ядро Linux, и потому у него не вызывает каких-либо проблем настройка SELinux под любую задачу? Вы писали, что, например, всё Debian-коммунити, вместе взятое, так и не осилило базовые патчи SELinux под последний релиз.

Там не только и не столько в ядре дело, но и во внутреннем синтаксисе SELinux. Не столько из-за ядра всё отваливается, сколько из-за всяких новых фич udev и пр.

В конце концов, SELinux — это тоже программы, в них самих могут быть баги.

Хуже то, что коммунити там никакое. В крайнем случае пишут модули и подкручивают правила на метаязыке, но исходный код кроме самого АНБ и его контракторов, похоже, вообще никто не пилит и не аудитит.
Гость (07/08/2013 12:52)   

На самом деле, архитектуру надо серьёзно продумывать, но общие мысли таковы:
  1. В нулевом доме нет ничего, кроме firewall'а и разруливания сети. Это сугубо административная система. Там даже иксы не факт, что должны быть (видеокарту можно пробросить в дом U?).
  2. В домах U сидит всё: и анонимные профили и неанонимные. Не думаю, что под каждую софтину нужно выделять свой дом, скорее нужно расклассифицировать софт и задачи по группам, и каждой группе назначить свой дом. Как мне представляется, n-цать домов не наберётся, но, как минимум, нужны следующие дома:
    1. Дом без электрификации в тайге сети. Т.е. просто дом, в который можно прийти и поработать, где сеть не нужна. Ремонтировать обновлять его можно редко.
    2. Абсолютно анонимный дом. Обновления будут сравнительно частыми.
    3. Абсолютно неанонимный дом. Да, такое тоже бывает нужным.
    4. Частино анонимный дом.
    5. <ещё какие-то задачи>
  3. Дома могут быть со снапшотами и без.
    1. Дом без сети можно вообще не обновлять.
    2. С абсолютно анонимным домом всё так, да: к нему хранится персональная чистая копия, по сути — вспомогательный дом. Чистую копию время от времени обновляем. Перед началом работы в доме его состояние каждый раз клонируется из чистой копии, т.е. из снапшота. Сохранение любой информации внутри дома возможно только на дополнительный виртуальный диск, информация из которого вычищается по окончании работы и перемещается в тот дом, который с сетью не работает вообще. Если для сеанса работы нужна какая-то уже имеющаяся информация, она предварительно вносится на виртуальный диск. Если такая информация нужна постоянно, её можно сделать частью снапшота (чистой копии). Можно реализовать и патчами к чистой копии, это зависит от задачи. Обычно требуется набор каких-то файлов. Заскриптовать команду cp -Rv не трудно.
    3. Абсолютно неанонимный дом можно обновлять как обычную ОС в реальном времени. Снапшота не будет, чистой копии тоже. Точнее, чистые копии должны быть для профилей конкретных пользователей, работающих в этом доме. Этого достаточно.
    4. Частично анонимный дом можно сделать по образцу B с какими-то поблажками. Или по образцу C с какими-то усилениями.
  4. Пусть D делается так же, как B, тогда можно оценить сверху число нужных машин: A — 1, B — 2, C — 1, D — 2. Итого имеем 6 домов, из которых 2 вспомогательных. Число разных ОС: B, C и D должны иметь разные ОС; опционально для С и D можно использовать одну ОС, в крайнем случае. Остальные могут иметь ОС, совпадающие с какой-то (например, какая разница, что в A, если доступ в сеть дом А не имеет?). Итак, регулярно нужно обновлять где-то 3 разных ОС, из которых только 2 через вспомогательные чистые копии, а одну — напрямую без заморочек.
  5. Там, где нужно клонирование снэпшотов или конкретных профилей, увы, этого не избежать, зато это даёт небывалую гибкость и защиту. Надо приучить себя к амнезии, т.е. не копить мусор. Всё, что важно, после работы переносить в статичную БД, остальное сносить. Всё браузерное, что работает с интернетом, должно иметь амнезию либо на уровне всего дома, либо на уровне конкретного пользователя.


Не совсем так всё же. По возможности все нужные статические настройки софта вносятся в саму чистую копию, в снапшот. Далее команды сноса текущего дома rm -R и восстановления его из копии rdiff-backup -v5 -r now /снапшот /дом выполняются за секунды, поэтому большой проблемы не вижу. Да, есть вопрос дисциплины, надо себя приучить помнить, что любые изменения надо вносить в снэпшот или в него и в текущую версию сразу.


После каждого обновления TBB — да, безусловно. Кстати, чистой копии с TBB можно давать поработать в сети, чтобы она обросла свежей статистикой и сменила при необходимости guard'ы. По каким-либо сайтам из-под неё ходить, конечно, не надо.


При правильной инфраструктуре это как раз не страшно. Не обновили вы сейчас, не сделали амнезию в этой конкретной сесиии — не страшно. Главное — что есть готовая инфраструктура, и в любой момент времени позже вы можете навести порядок в системе, сделав всё, как надо. Когда же инфраструктуры нет вообще, сделать нельзя ничего. Если у вас утекли серийники, что мы можете сделать? Менять железо либо устанавливать гипервизор с набором осей, где и то и то — затратные действия, а если гипервизор с домами есть, достаточно обновить лишь проблемый дом. Если вы подозреваете взлом системы, что можно сделать, если система одна? Полностью переустанавливать, затрагивая вообще всё и все данные, останавливая всю работу со всем. Если же у вас подозрения по поводу конкретных жильцов конкретного дома, вы решаете эту проблему только с ним, а остальное продолжает работать, как работало даже без перезагрузки. Ну разве не удобно? Хостинги бы давно померли, если б все работали в одной ОС.


Так и я о том же: один раз помучаться с настройками для установки гипервизора и базовых домов, после чего можно менять системы, вносить обновления, и всё это не будет так накладно. То, что я предлагаю, не противоречит тому, что хотите вы. Вам никто не запрещает, если есть недостаток времени, держать временно один дом U с SELinux'ом и той его внутренней инфраструктурой, к которой вы привыкли. Но если вы хотите что-то поменять, какие-то программы или задачи переселить в другой дом, гипервизор у вас уже есть. Если же его нету, устанавливать его и настраивать (да ещё и с пробросом PCI-устройств) — занятие не для слабонервных.


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


В наш век место дешевеет быстрее, чем растут реальные потребности в нём. Терабайтный HDD лёгок и умещается в полладони. Куда вам больше? Для лишних домов можно использовать внешние диски.


Запрет доступа к программам хорош, когда те суидны. Если же не суидны, то вопрос надо ставить не о доступе к готовым программам, а о доступе к определённым библиотечным вызовам. Например, dmesg не суиден. Кто такому пользователю запретит написать собственный dmesg, скомпилить его сорсы и запустить? Конечно, все запреты должны быть фичами ядра, а не правами доступа к исполнимым несуидным файлам (к слову, так же можно обойти и запрет просмотра списков процессов, если какой-то умный админ убрал права с ps).
— SATtva (07/08/2013 13:31)   
Запрет доступа к программам хорош, когда те суидны. Если же не суидны, то вопрос надо ставить не о доступе к готовым программам, а о доступе к определённым библиотечным вызовам.

Насколько я понимаю, ограничения пользовательских привилегий в SELinux основаны на фильтрации системных вызовов.

Например, dmesg не суиден. Кто такому пользователю запретит написать собственный dmesg, скомпилить его сорсы и запустить?

Ядро.
— unknown (07/08/2013 14:37)   
Верно. Свои программы написать можно, но они также не будут работать, поскольку SELinux им не выдаст соответствующих capabilities. В этом, кстати, существенное отличие SELinux от AppArmor и других ACL-решений.
Гость (09/08/2013 11:10)   
Согласен с обоими ораторами. Коммент про права к файлам и про «у таких пользователей не работает» был сделан только для большей ясности, чтобы публика не обольщалась таким закручиванием гаек, если что.
— тестерТьюринга (19/08/2013 11:25)   
Ранее сообщали, что ядро не получается пересобрать полностью компилятором clang-llvm, из-ка кода по большей части связанного с криптографией(SELinux, IPSec, eCrypt). Потом появилась инфа, что пересобранное ядро удалось запустить. SELinux переписали или ядро запустили обходными путями?
— unknown (19/08/2013 12:57)   
SELinux не связан с криптографией, как и часть ещё чего-то, что мешало собрать ядро на clang. Но собирались рабочие ядра без этих фич, если они кому-то не нужны. Как там с этим сейчас — не в курсе.
— тестерТьюринга (20/08/2013 21:28)   
http://www.nsa.gov/research/selinux/contrib.shtml
Network Associates Laboratories (NAI Labs) – это та компания, где Ф.Циммерманн был Senior Fellow и она специализировалась на криптографии?
— SATtva (21/08/2013 08:49)   
Всё не так: NAI (ныне McAfee) не специализировалась на криптографии, Циммерманн не был акционером. Учите историю[link56].
— тестерТьюринга (21/08/2013 09:32, исправлен 21/08/2013 09:37)   
Циммерманн не был акционером

А кто утверждал, что он был акционером? Вы о чем-то о своём…

— SATtva (21/08/2013 09:48)   
А при чём тут senior fellow в Вашем посте?
— тестерТьюринга (21/08/2013 10:25)   
Учите историю ;)
http://en.wikipedia.org/wiki/Phil_Zimmermann
That company was acquired by Network Associates (NAI) in December 1997, and Zimmermann stayed on for three years as a Senior Fellow.

— unknown (21/08/2013 10:53)   
Похоже, ссылка старая. SELinux уже давно разрабатывает преимущественно компания Tresys Technology[link57].
— тестерТьюринга (21/08/2013 12:16)   
Вообще, к чему я веду, вопрос в том, имеет ли SElinux недокументированные возможности(backdoor, проще говоря). Их наличие без криптографии выглядело бы непрофессионально. Я далек от мысли, что руководство АНБ построило разработчиков и зачитало приказ – писать шпионскую программу. Такой код мог появиться на любой стадии разработки, но, вероятнее всего, когда она находилась под полным контролем АНБ. Само АНБ указало ключевого внедренца как NAI Labs (не McAfee или ещё как-то), история покупок/продаж/перепродаж которой какая-то мутная – по одним wiki-страницам, с ещё как-то проверяемой информацией, лично мне ничего не понятно. Очень походит на фирмы-однодневки в экономике, но это мое субъективное впечатление.
Гость (21/08/2013 13:34)   
Если учитывать менталитет спецслужб, доверять их программным продуктам категорически нельзя. Их сознание отформатировано так, чтобы использовать абсолютно любую лазейку для сбора информации и вторжения в частную жизнь. Это для нас подобные действия преступны, а для них это – спецоперация, которая рассматривается как ступень в карьерной лестнице. Скорее всего сделаны оценки – сложность кода такова, что ни у кого без таких ресурсов как у АНБ не будет возможности в нём до конца разобраться. Экплойты можно замаскировать в виде багов, и случае их маловероятного обнаружения репутация selinuxa не пострадает. Все риски и возможные издержки подсчитаны, нужные люди находятся под влиянием. Возможно что selinux в редакции gnu (не для внутреннего использования АНБ) – это проект для компрометации свободного ПО, внедрение глобального трояна в неподконтрольные средства коммуникации. Лучше отдать предпочтение другим продуктам типа grsecurity, которые к тому же проще в настройке.
— unknown (21/08/2013 15:24, исправлен 21/08/2013 15:26)   

Он по умолчанию почти везде отключен и реально крайне мало где используется. Стоило тратить столько сил на попытки с помощью него что-то протроянить или скомпрометировать. Выбрали бы что-нибудь более популярное.


Microsoft, Google, IBM, Intel[link58] написали куда больше кода в Linux-ядро, чем подрядчики АНБ. А типа никому неподконтрольные энтузиасты-одиночки[link59], на которых якобы держится Open Source — аж 16% кода. Linux — это больше продукт крупных коммерческих, подконтрольных корпораций.

— тестерТьюринга (21/08/2013 20:04)   
Red Hat – крупная корпорация. Кстати(не кстати), тоже подрядчик АНБ, получается. Fedora давно использует SElinux по умолчанию. Когда долгое время вкладываешься в изучение и применение дистра, то перейти на другой продукт не легкая психологическая задача. Даже если на том же дистре с другой системой безопасности. Весь дистрибутив скомпрометирован.
Гость (22/08/2013 02:06)   

тестерТьюринга, ставь ФСБ BSD.
— unknown (22/08/2013 09:56, исправлен 22/08/2013 09:58)   

Во первых, всегда можно выключить. И оно не сработает.
Во вторых, эксплойт или закладка в SELinux должна сделать минимум три вещи:


  1. Дать выполнить произвольный код.
  2. Получить привилегии рута.
  3. Обойти защиту SELinux, опять же тремя, как минимум путями: полным отключением SELinux; повышением привилегии из под связанного до несвязанного (unconfined) пользователя; возможностью сделать что-то вредное даже будучи в связанном (confined) состоянии.

Технически, если первые два пункта решаются обычным набором эксплойтов, то третий пункт означает просто такую же ситуацию, как и отсутствие SELinux. Если включенный SELinux даёт возможность осуществить все три пункта так, что при выключенном такой возможности нет, то это очень заметно и злонамеренно выглядит. Наконец, с третьим пунктом и всеми его тремя подпунктами тоже довольно сложно и ограниченно. Явный переход confined → unconfined нигде не предусмотрен, ухитриться сделать безобидно выглядящую ошибку для него, да ещё связанную со всеми тремя пунктами — сложно.


Понятно, что злонамеренность АНБ может помножить всё на бесконечность, но хотелось бы технические соображения по этому поводу. Иначе, из таких же соображений можно всё отпараноить: GnuPG финансируется немецкими властями, Tor (и значительная часть исследований в области Crypto) — американскими. А шифрпанки и энтузиасты, когда дело касается безопасности, часто пишут такой код, что никаких троянов не надо. Реально, только если есть продукт смешанного открытого коммунити.

— тестерТьюринга (22/08/2013 09:58, исправлен 22/08/2013 10:04)   
… IBM, … написали куда больше кода в Linux-ядро, чем подрядчики АНБ. А типа никому неподконтрольные энтузиасты-одиночки, на которых якобы держится Open Source — аж 16% кода. Linux — это больше продукт крупных коммерческих, подконтрольных корпораций.

Для данной темы, это оффтоп, поэтому вкратце.


Компании под одним названием с энтузиастом-одиночкой Ф.Циммерманном и без него – две разные компании. Становиться ли энтузиасту-одиночке юридическим лицом – это вообще формальность.
Многодесятилетнего ресурса железячных компаний, как IBM, хватает, чтобы успешно вести патентные войны. Их достижения на софтверном рынке сомнительны. Зачем поддерживать опенсорсный Linux, когда есть своя OC(?)


тестерТьюринга, ставь BSD.

Пока заинтересовали исследовательские операционки. Такие, как http://www.coyotos.org/history/index.html

Our research goal is to produce the first open source system with an ``open proofs'' trail and the tools necessary to allow a third party to independently verify our results.

— тестерТьюринга (22/08/2013 10:12)   
ухитриться сделать безобидно выглядящую ошибку

Конкурс http://underhanded.xcott.com/
да ещё связанную со всеми тремя пунктами — сложно.

Да :)
Гость (22/08/2013 22:57)   
ухитриться сделать безобидно выглядящую ошибку для него, да ещё связанную со всеми тремя пунктами — сложно.

Вполне вероятно, что для решения таких задач создана научная база. А сложно или нет – понятие относительное, зависит от возможностей.

GnuPG финансируется немецкими властями, Tor (и значительная часть исследований в области Crypto) — американскими.

Размеры этих проектов несопоставимы с selinux, а разработчики не связаны обязательствами неразглашения. Т.е. код намного проще для проверки, а риск утечки компрометирующей информации значительно выше. Да и понятие "власть" в данном случае расплывчато, какой-нибудь фонд раздающий гранты из бюджета – это тоже власть что ли?
Гость (23/08/2013 00:40)   

Стр. 13 зде[link60] упомянутой pdf'ки:

3.3. Securing the hypervisor

Formal security proofs?

It would be nice if it was possible to formally prove correctness of the hypervisor code. Unfortunately this doesnt seem to be feasible for software that interacts with commodity PC hardware (x86 architecture). Particularly in order to prove correctness of the hypervisor, it seems like one would first need to have complete models of all the hardware that the hypervisor can interact with, including e.g. the CPU and the chipset (MCH), which seems highly nontrivial to create.

For instance, the recently published paper on formally proving the correctness of well known seL4 microkernel,7 explicitly states that only the ARM port (and only for non-SMP systems) has been proven, while the x86 port is still left to be formally verified in the future. More over, the paper states that e.g. the memory management has been pushed of out of the microkernel to the usermode process, and that this process has not be contained within the proof. They admit, however, that this process is part of the TCB, and so eventually would have to also be proved. One can easily imagine that in case of a general purpose OS, based on such a microkernel, there would be more usermode processes that would also be part of the TCB and hence would have to be formally proved, e.g. the filesystem server.

In case of the x86 hardware, one would also assure that the drivers cannot program devices to issue malicious DMA transactions that could potentially compromise the microkernel or other parts of the system. This would require the microkernel to support programming of the IOMMU/VT-d, as otherwise one would need to prove correctness of every single driver, which is unfeasible in reality. However, addition of IOMMU/VT-d support to the seL4 microkernel might likely result in rendering the formal proving much more difficult.

Additionally certain peculiarities of the x86 platform, like the SMM mode, might also be difficult to account for8.

Thus, we dont expect any bare-metal hypervisor or microkernel for commodity x86 PC hardware to be formally proved secure anytime in the near future. Consequently other, more pragmatic, approaches are needed in order to secure the hypervisor. The best approach we can think of is the manual audit of the hypervisor code and to keep the hypervisor as small and simple as possible. Additionally one might apply some anti-exploitation mechanisms, like e.g. non-executable memory.

In the future, when formally proved hypervisors become a reality, there is no reason why Qubes should not switch to such a hypervisor. Particularly, the rest of the architecture proposed in this document (secure GU, secure storage domain, etc) would still be required even if the system used formally verified hypervisor.
— unknown (23/08/2013 09:45)   
АНБ формально почти устранилось от разработки SELinux, передав его разным компаниям. Рассылки и исходники больше не хостятся у него на серверах, а лежат у Трезиса. На странице агентства только историческая справка о начале разработки и нет никаких актуальных материалов.

Это, разумеется, никак не успокаивает паранойю, т.к. несколько официальных разработчиков от АНБ остались в проекте, да и формальная смена вывески ничего не значит в плане возможного контроля. Другой вопрос, что альтернативные "независимые" проекты также могут разрабатываться подконтрольными компаниями.
— тестерТьюринга (23/08/2013 10:12)   
Microsoft в своих подпроектах Singularity внедряет формальную систему для доказательства корректности программ на уровне языка.
http://research.microsoft.com/apps/pubs/?id=122884

Это устраняет широкий круг уязвимостей, но, понятно, что проблема не перестает быть сложной.
Гость (23/08/2013 12:10)   

Вспоминается странная история становления Microsoft, которую на начальных этапах IBM почему-то поддерживала в ущерб себе. Есть мнение, что об этом её очень попросили...
— тестерТьюринга (23/08/2013 13:07)   
Да, ксати о M$: http://www.heise.de/tp/artikel/5/5263/1.html
Wine – самая надежная Винда? :D
Гость (25/08/2013 21:48)   

Описание в английской статье какое-то сумбурное. Непонятно, о чем конкретно идёт речь. IMHO, это обычные спекуляции, "жареные новости".

NSA backdoor в криптографии если и был, то ровно один раз — в стандарте DUAL_EC_DBRG[link61], который впервые применен в Windows 7. Это стандарт на ГПСЧ, принятый NIST. Там случайные числа генерируются хитрой эллиптикой, и доказано, что теоретически может существовать секретная эллиптическая кривая, позволяющая полностью скомпрометировать этот генератор (есть ли такая кривая в их константах — вопрос, но опасения имеются). Стандарт пропихнули с подачи NSA без обсуждения, в win7 он есть в числе прочих стандартных алгоритмов. Вероятность, что всё случайно так вышло, и никакой секретной кривой у них в загашниках нет, стремится к нулю не велика. IMHO, сама идея генерировать случайные числа, используя ассиммитричное крипто, порочна на корню и должна вызывать подозрение.
— unknown (25/08/2013 23:15)   
Да ну? BBS[link62] вполне себе классичен.
— тестерТьюринга (26/08/2013 10:11, исправлен 26/08/2013 10:13)   

В меру своих познаний в этом вопросе тоже пытался его провентилировать. Узнал только то, что инженер по имени Nicko van Someren сейчас работает на good.com. До этого был сооснователем nCipher. Одно ли это лицо – мне не известно. В любом случае есть первоисточники, которые могут что-то прокомментировать. (если не боятся оказаться в транзитной зоне аэропорта, разумеется)


p.s. странное дело, страницы в истории браузера за пару дней перестали открываться в полном объеме. Брал: _http://www.nigma.ru/index.php?startpos=10&s=Thales+Someren&srt=1&gl=1&yh=1&ms=1&rm=1&av=1&nm=1&k=ISjT&rg=t%3D%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B1%D1%83%D1%80%D0%B3_c%3D%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F_&rg_view=%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B1%D1%83%D1%80%D0%B3%D0%B5 (14.)

— тестерТьюринга (29/08/2013 18:52)   
unknown:
Понятно, что злонамеренность АНБ может помножить всё на бесконечность, но хотелось бы технические соображения по этому поводу.

Искать криптографические примитивы?
3.0 COVERT CHANNEL IDENTIFICATION[link63]
— unknown (29/08/2013 21:08)   
Какое отношение имеет код SELinux к криптографическим примитивам? В статье речь идёт о TCB PRIMITIVE.
— тестерТьюринга (30/08/2013 09:03)   
unknown:
Какое отношение имеет код SELinux к криптографическим примитивам?

Сложно сказать. Фактов нету. Возможно, никакого. На данный момент отсутствие информации о недокументированных возможностях, связанных с криптографией, SElinux и отсутствие таковых вообще – для меня равнозначно. Мало вероятно, что в реализованном тайном канале данные будут гонять в открытом виде, а количество кода, предназначенных для таких целей, ограничено(?) SElinux-ом. Не?
— unknown (30/08/2013 10:02, исправлен 30/08/2013 10:04)   

Код SELinux открыт. Использование крипто по умолчанию не предусмотрено. Если оно есть в неположенном месте, его наличие выявляется элементарно. Необязательно даже разбираться в коде, достаточно его просканировать на предмет наличия крипто и вызовы всех внешних функций. Любая криптография будет торчать, как заячьи уши.


Другое дело, что есть экспериментальные наработки по скрещиванию SELinux с IPSEC (которые у пользователя в большинстве случаев будут отключены, а механизм какого-нибудь троянского включения и отправки будет заметен в коде), но опять же, если какая-то функция, которая не требует использования крипто, будет в коде лезть за криптофункциями, то это будет заметно элементарно. Закладки так тупо не делаются. Можно поспекулировать как их предположительно могут внедрить, один вариант я уже привёл. Могут буть и другие, но не столь примитивные.

— тестерТьюринга (30/08/2013 11:44)   
Ок. Техническая часть обнадеживает мои скромные познания…

Будем считать, что SElinux не имеет недокументированных возможностей. Т.к. АНБ, являясь государственной конторой, может себе позволить реализовать и использовать "законный" тайный канал. SElinux как система безопасности не будет иметь возможностей для его отключения. Теперь вопрос в том, как реализован этот "законный тайный канал", чтобы подобрать альтернативную систему защиты для его надежного отключения.
— unknown (30/08/2013 12:49)   
Да всё проще и сложнее одновременно.

SELinux, как и любая система — несовершенна. А любое несовершенство можно скрывать, тайно усиливать вместо исправления и использовать по своему назначению.

Во-первых, тайный канал могут создавать сами клиентские приложения — уязвимые браузеры, демоны могут модулироваться трафиком извне, запустить комманды, которые будут модулировать или трафик, или потребление ресурсов, или время исполнения, что может создать побочный канал, сливающий информацию наружу или другому процессу, который не так хорошо изолирован (в сложной системе это неизбежно). От этого не защитит ни SELinux, ни виртуалка. Таким путём слить можно немного, но какой-нибудь ключ шифрования, или параметры состояния шифра, по которым можно раскрыть ключ.

Во-вторых, несовершенство приводит к тому, что не все правила и принципы их построения охватывают все векторы атак. О чём могут преднамеренно умалчивать разработчики, если они знают больше и хотят это скрыть.

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

Основной принцип — различить злонамеренную разработку от качественной м.б. невозможно. Можно поручить разработку "честным, но неопытным", даже независимым программерам, а анализ "более квалифицированным".

Команда экспертов, сосредоточенная на поиске эксплойтов под Tor, GnuPG, OpnSSL, что-угодно, да ещё имеющая своих инсайдеров в этих открытых проектах (чтобы лучше разбираться в теме и знать, какие вопросы и как решаются в проекте изнутри) может даже не размещать туда никаких закладок, а просто более грамотно анализировать код, чем рядовые исследователи, которые иногда этим занимаются лишь от случая к случаю и поверхностно.

Т.е. достаточно быть на шаг впереди, как по затратам на выявление, объёму проделанной работы, количеству привлечённых экспертов, так и по уровню квалификации чтобы пополнять арсенал эксплойтов и опережать открытое сообщество практически в любом сложном софтовом проекте.

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

Его может и не быть. Есть просто гонка интеллектуальных усилий в поиске эксплойтов, использование инсайдерской информации и наличие инсайдеров в проекте, которые сами находят баги, консультируясь с экспертами, но не закрывают их, пока кто-то не заметит со стороны.
Гость (02/09/2013 02:28)   
unknown уже написал, но тоже выскажусь. Зачем добавлять в selinux криптографию, когда она уже есть практически в любой системе. Достаточно осуществить взлом системы через любое сетевое приложение (пользуясь припрятанным "багом"), а потом воспользоваться например ssh.

Да и вообще какой смысл анб делиться мощным средством безопасности с открытым сообществом, которое у него как кость в горле? Те, чья профессия – красть информацию, вдруг озаботились её сохранностью. Это противоречит здравому смыслу – как вор озаботился вашим благосостоянием.
Гость (02/09/2013 03:16)   

«О том, почему конкуренция исследовательских программ (по взлому и по защите) является выигрышной стратегией. Разные части одного ведомства могут плодотворно работать друг против друга».[link64]
— тестерТьюринга (02/09/2013 06:35)   


Потому что "любая криптография будет торчать, как заячьи уши" :) Их трепыхание будет привлекать с себе внимание. Криптографические функции, реализованные внутри большого проекта не так заметны. Это в плане дискуссии.

Я же пока остаюсь при том мнении, что АНБ нет необходимости *шифроваться*. Если почитать цветные книги, это становится очевиднее.
— unknown (02/09/2013 12:23)   

В ядре есть cryptoAPI.
— тестерТьюринга (02/09/2013 13:07, исправлен 02/09/2013 13:08)   

За формулировками теряется что-то важное. Не пойму что…
http://ru.wikipedia.org/wiki/Скрытый_канал

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

Стеганографию мы относим к криптографии? Если да, тогда она(стеганография) в скрытых каналах реализуема через cryptoAPI ядра?

— unknown (02/09/2013 15:17)   
Можно подумать, что там уже всё встроено именно так, как вы пытаетесь себе представить, хотя такие вещи скорее всего делаются совсем по другому. Почему сокрытие бэкдоров и уязвимостей должно быть завязаны именно на криптографию и стеганографию, там где её конструктивно не должно быть? с чего такое убеждение? Потому что это такие особо страшные и непонятные штуки что-ли?
В открытом коде такую закладку найти наоборот гораздо проще, какой бы ни был его объём. Принципа заячьих ушей объём кода здесь никак не отменяет.

Следует разделять организацию утечек в чёрном ящике и открытом, хотя и большом и малопонятном коде.

Немного кривая метафорическая аналогия.
Если в городе можно спрятать что-то в доме иди дереве, то если в городе растут деревья, возможен вариант тайника и в них. А если в лесу нет домов, то какой бы большой он ни был, но его можно обойти и наткнуться на дом, который сразу заметен, как посторонний объект, то где лучше спрятать тайник — в доме или дереве?
Гость (13/09/2013 01:00)   
Из интервью Рутковской:

за последние несколько лет только один раз было публично сообщено об использовании уязвимости в Xen с целью взлома: это был код, написанный NSA (управление национальной безопасности) с целью реализации расширений, направленных на безопасность (какая ирония!).

http://www.thg.ru/software/joa.....ka_interview-01.html[link65]

Т.е. в Xen была лишь одна уязвимость и она создана анб. И тоже в расширении безопасности (аналогия с selinux). Как вообще можно всерьёз рассматривать в качестве средства безопасности ПО написанное в спецслужбе? unknown тут как-то писал, что для любого серьёзного проекта необходима репутация, одного лишь открытого кода мало, и от анонимов добавления не принимаются. Репутация анб как профессиональных жуликов хорошо известна, но тем не менее их продукты и стандарты почему-то широко используются и пропагандируются.
Гость (13/09/2013 05:31)   

На другой странице[link66] там же:

Однако, мы прекрасно понимаем, что Qubes никогда не станет системой для домашнего использования. Установить её правильно будет слишком сложной задачей для обычных пользователей.

А дальше идёт фейспалм:

Мне, например, нравится продукция Apple. Однако, для безопасности данных я готова использовать другой ноутбук, не Mac.

THG.ru: А используешь ли ты Qubes в качестве основной системы? Или в паре ещё с какой-то ОС?
Джоанна: Да, я использую Qubes в качестве основной системы. Я полностью перешла на неё в марте 2010 года

Основной разрботчик ОС перешёл на использование этой ОС. Давно так не ржал. :)

Сейчас я использую Sony Vaio Z в качестве основного ноутбука, на нём установлен Qubes. Этот компьютер имеет некоторые преимущества перед MacBook

Для разных задач вроде чтения новостей, составления списков покупок, ведения ежедневника, фото, слайдов и так далее я использую iPad 2

Ужас. Я даже не знаю, что из этих трёх вещей хуже и более зловредно: Sony Vaio, MacBook или iPad. Они все друг друга стоят.

Имеем случай ещё одного разработчика одной разработчицы, которой «нечего скрывать».
Гость (13/09/2013 05:48)   

Это был непростой для меня квест, всё-таки уже 4 года прошло, но я с ним справился. Вот оригинал[link67]:

Негласное правило обычно таково — лучше не очень хороший, но стабильный код от проверенного и известного человека или организации, чем очень хороший, но неизвестно от кого. При любом раскладе анонимам дают только второстепенную роль, а ведут проект люди с именем и репутацией.

Но там речь шла немного о другом — об «анонимы vs известные разработчики». АНБ как раз известный разработчик, это не аноним в изначальном смысле этого слова. И если у анонимов репутация условно нулевая, то у АНБ она отрицательная.
Гость (13/09/2013 05:59)   
Правда жизни в том, что если АНБ захочет вставить бэкдор в код, она продвинет своих людей в коммитеры и разработчики, которые не будут афишировать свою принадлежность АНБ (фактически это работа под прикрытием). Поскольку те разработчики будут хоть и злонамеренными, но грамотными, посторонняя публика вычислит их далеко не сразу. И в разных программных проектах АНБ может использовать разных своих виртуалов, чтобы не палить контору. Обладая госресурсом, такому разработчику могут написать даже правдоподобное CV, чтобы не было вопросов, откуда он вдруг с неба такой взялся. Другой вариант — вербовка известных в коммунити людей с репутацией и именем по аналогии с тем, как они пролезли в коммерческие зарубежные фирмы.
— тестерТьюринга (13/09/2013 07:33)   
Извиняюсь, если новость уже обсуждалась в другой ветке — не нашел куда приткнуть.
Torvalds shoots down call to yank 'backdoored' Intel RdRand in Linux crypto[link68]
Гость (13/09/2013 09:11)   

Новость — нет, но сам RdRand — да [1][link69], [2][link70]. Высказаные ранее опасения точь-в-точь те же, что и по вашей ссылке.
— unknown (13/09/2013 17:11)   
I am so glad I resisted pressure from Intel engineers to let /dev/random rely only on the RDRAND instruction... Relying solely on the hardware random number generator which is using an implementation sealed inside a chip which is impossible to audit is a BAD idea.

Если не бойкотировать Intel, то тогда уж можно было бы и вовсе сделать поддержку отдельным модулем, который все могли бы просто не загружать по желанию. Так, например, SELinux по умолчанию отключен в большинстве дистров.
— SATtva (13/09/2013 19:11)   
Основной разрботчик ОС перешёл на использование этой ОС. Давно так не ржал. :)

Учитывая, что система носит экспериментальных характер, ирония не совсем оправдана.
Гость (13/09/2013 19:38)   
Ужас. Я даже не знаю, что из этих трёх вещей хуже и более зловредно: Sony Vaio, MacBook или iPad. Они все друг друга стоят.

Вероятно даже сам железо печатает в гараже.
Гость (13/09/2013 19:39)   
Linus скорее всего тоже не сразу перешёл на свою разработку, сидел в досе каком нибудь ковырял её....
Гость (13/09/2013 19:44)   
фейспалм

аплодисменты зала!
— тестерТьюринга (13/09/2013 20:51)   

Недавно[link71] SElinux появился на Android 4.3 Пока тоже *отключен* в режиме Permissive.

http://lib.ru/LINUXGUIDE/torvalds_jast_for_fun.txt
Linus:
У меня был компилятор и интерпретатор языка Форт, с которыми я и возился. Форт — это очень странный язык; сейчас им уже никто не пользуется. Эта игрушка, рассчитанная на определенную рыночную нишу, в 80-е годы довольно широко использовалась для разных целей, но по-настоящему популярной так и не стала, потому что оказалась слишком сложной для непрофессионалов.

По-моему, проще не бывает :)
— unknown (13/09/2013 21:37)   

Подразумевается тэг [ирония]? Permissive mode — это значит, что фактически он включен, только работает вхолостую.
Гость (13/09/2013 23:36)   

Степень анального огораживания у Sony такова, что лучше вам об этом не знать. Электронщики про неё рассказывают такое, что потом не уснёшь, поэтому ирония ни к чему.


Папа, давай остановимся и купим шоколадное мороженое! Хочу мороженое!
Нет, дочка. Придется подождать. Вот остановимся пописать — тогда купим мороженое.
Попробую объяснить на примерах. Самый очевидный пример — секс.

Просто у меня большие передние зубы — посмотришь на мои детские фотографии, и на ум невольно приходят бобры.

финские мужчины самые плодовитые в Европе.

тестерТьюринга, откуда у вас такие тексты?!


Язык неплох, в своей нише до сих пор используется, и до сих пор его изучают те, кому они нужен.
Гость (14/09/2013 00:42)   
Гость (13/09/2013 05:59) Справедливо для любых проектов. и что с этим делать?
— тестерТьюринга (14/09/2013 09:24)   

Когда SElinux в режиме Enforcing мешает новичку что-то сделать, то после команды setenforce 0 они обычно пишут: "всё, я его вырубил".

Это не у меня. Это у либру.
Гость (15/09/2013 15:21)   

Вопрос риторический? Тогда риторический же и ответ: ничему и никому не доверять, всё перепроверять.
— unknown (15/09/2013 19:18)   
Всё самостоятельно проверить невозможно даже "топовым специалистам". Какие-то оптимизации и упрощения в выборе стратегии построения доверия будут неизбежны.
Гость (16/09/2013 01:48)   
По поводу "что делать". Распространять идеи и создавать сообщество. Своё "ванильное" ядро из которого вычистить selinix, intel и прочий вредоносный софт от жуликов. Репозиторий открытого кода с цифровыми подписями. Каждый кто замечен в обмане должен быть изгнан из мира свободного ПО. Нужен сайт с базой данных по вредителям и описанием их злодеяний. Понятно что Торвальдс уже скурвился и находится под влиянием "органов", раз считает нормальным включение в ядро закладок от интела, пусть даже нейтрализованных. Должна быть принципиальная позиция – свободное ПО и закладки, даже отключаемые, несовместимы. Тогда спецслужбам будет труднее вербовать коллаборационистов, а Сноуденов станет больше.
— unknown (16/09/2013 02:29, исправлен 16/09/2013 02:31)   

Жулики — первые, кто легко меняет вывеску.



Самые критичные уязвимости выглядят случайными ошибками. Чем больше разработчик делает, тем больше у него шансов фатально накосячить при прочих равных. Получится, что изгонять надо всех.



Тролли, провокаторы, любители ложных доносов и профессиональные чёрные пиарщики найдут, чем его наполнить, чтобы развалить сообщество.


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

Гость (17/09/2013 01:17)   
Речь не о мире во всём мире, а о войне (информационной) с невидимым фронтом. Враг не идентифицирован большинством, и в этом его сила. Нужна тенденция, которая удорожит реализацию его планов и значит снизит эффектиность деятельности. Смена вывески потребует денег, которых в результате не хватит на очередной проект или "спецоперацию". Часть сексотов не получится вербовать по идейным соображениям, а это дополнительные расходы на подкуп безидейных. Раскрытие шпиона внедряющего закладки – это тоже убытки, т.к. нужно будет выращивать нового. Для предотвращения утечек от новых Сноуденов, нужно усиливать секретность, что приведит к снижению производительности "работы". И так далее. Если вы не согласы с этими доводами, напишите что лично вы предлагаете.
— unknown (17/09/2013 13:05, исправлен 17/09/2013 13:07)   

Можно предложить для начала не ставить технологии на какую-либо сторону в информационных войнах идеологий. Идеологии соблюдать только нейтрально-технократические — свобода доступа к информации, для развития софта и пр. Каким там внешним целям это служит — разработчикам это оставить в стороне и не ввязываться.

Гость (17/09/2013 21:36)   
Понятно, вы хотите оставить всё как есть.
— SATtva (17/09/2013 22:14)   
Гость, сами начните хоть что-нибудь делать. Глядишь, и другие подтянутся.
— тестерТьюринга (13/10/2013 16:17)   
Пара примеров давно закрытых багов из ./security/selinux/hooks.c[link72], fs/cifs/cifsencrypt.c[link73] Смотрю на них с точки зрения того, какова вероятность не случайного их появления. Правильно ли я понял cifsencrypt, что через HMACMD5Context[link74] была возможность атаки на HMAC-MD5?
— unknown (13/10/2013 17:28)   
Это вроде просто утечка памяти со значениями соответствующих HMAC.
— тестерТьюринга (13/10/2013 18:32)   

Если знать адрес переменной pctxt в памяти, то будет доступ к остаточной информации на месте заполняемой struct HMACMD5Context. А вот достаточно ли этой информации для атаки – вопрос.
Гость (14/10/2013 15:06)   

Это – элемент идеологии :)


А это к тому же и дискриминация!


Такое потакание технократической безответственности и безнравственности быть может и было допустимо лет сто назад, но при современном уровне научно-техническоно развития вероятно ведёт уже к глобальной кастрофе. И, вероятно, объясняет уже случавшиеся.
Гость (14/10/2013 18:34)   
В науке все что можно сделать, будет сделано. Не теми, так другими. Кто занимается излишним морализаторством и политизацией, упускает возможности и неизбежно оказывается в отстающих.
Не можешь победить – возглавь, кое где это поняли, поэтому США сейчас сверхдержава, у них делаются все технологии изменяющие мир и мир вынужден их бесконечно догонять. А высокоморальный и идеологичный СССР не существует.
Гость (14/10/2013 19:25)   
[Батя разрешил разок офтопнуть]

В лженауке все что можно сделать, будет сделано. Не другими, так теми, кто занимается лишним, упускает возможности и неизбежно оказывается в отстающих*.
Не можешь возглавить – победи, кое где это не поняли, поэтому сейчас двигаются в тупик, у них делаются все бусы и бутафории изменяющие мир и мир вынужден их бесконечно потреблять. А высокоаморальный и идеологически циничный СССР не существует теперь даже на бумаге.

*У Кэти Топурии есть замечательная пестня, там такие строки: красота — среди бегущих первых нет и отстающих, бег на месте общепримеряющий!

[/Батя сказал на сегодня харош]
— sentaus (14/10/2013 19:40)   
*У Кэти Топурии есть замечательная пестня, там такие строки: красота — среди бегущих первых нет и отстающих, бег на месте общепримеряющий!


(facepalm.jpg)
Гость (15/10/2013 00:22)   
*У Кэти Топурии
?? это шутка такая?
— тестерТьюринга (05/02/2014 13:37)   

На Cryptome когда-то был репорт, который уже не сохранился(что странно). Но отыскался в вэб-архиве[link75]. Там же есть ссылка на любопытный ReplaceNsaKey.zip

Пока не знаю, с какого бока к етому подступиться. Ну и происхождение етого не известно. :)
Гость (18/04/2014 00:09)   
Об этом сервисе, призванном защищать систему от утечек (и возможно, нападений) ходит много мнений – от сложности настройки до мнения как о троянском коне, заботливо всунутом АНБ в Linux в сладкой обертке.
Вот, сегодня опят наткнулся на очередной возглас недовольного параноика:

Адриан Аникушин | 2013-08-05 в 20:16:46
SELinux – Долой SELinux! Это дыра для контроля моих данных якобы позволяющая гибкое обращение к файловой системе программ.. Происки Микрософт и ЦРУ! Долой SELinux! Нет империализации моего оборудования!Вы что не видите!!!! Гавно!

http://guruadmin.ru/page/4-met.....-selinux#comment-966[link76]

У меня этот SELinux на десктопе включен по той простой причине, что GEdit, как ни странно, начинает вести себя неадекватно по отношении к обрабатываемым файлам.

А вы, уважаемые эксперты, как считаете – стоит ли использовать SElinux, или ну ее нафиг, это троянскую лошадку? (если действительно она такой и есть).
— SATtva (18/04/2014 08:43)   
Вот, сегодня опят наткнулся на очередной возглас недовольного параноика

It was written on the internet, it must be true.
Гость (19/04/2014 02:35)   

Ответы по этому поводу уже давно озвучены[link77].
— Фантом (22/07/2014 11:52)   
Вообщем, получается, что по сути все дистрибутивы скомпрометированы.
Неужели среди всего этого громадья не осталось действительно что-то стоящее?
Может кто поделится, есть ли такая система, где хотя бы минимум по-запихано, которые не очень критичны? Пусть сложная и неудобная, неважно. Запустил, свистнул, и выбросил.
— cypherpunks (14/08/2015 19:26, исправлен 14/08/2015 19:29)   

https://www.pgpru.com/comment38599

Для безопасности API в ядре был выбран SELinux, другие альтернативы рассматривались (в том числе AppArmor):
http://lwn.net/Articles/181508/

Вот подробное описание неполноценности ограничивающих моделей ACL по путям (AppArmor, etc).


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

Увидел мнение в сети:


The only thing SELinux has over apparmor is greater flexibility (for example
policies involving restricting pipes and IPC signals). When it comes to simple
filesystem-based permission or denial, apparmor and selinux are the same. And
actually apparmor may be slightly more secure due to it being simpler and not
having so many features. So when the intention is to just prevent tor browser
from accessing files it does not need (like /sys) then apparmor is totally
sufficient.

With the apparmor enabled they cannot read your dmesg (/var/log access is
blocked of course). And so is /dev/log. Even if tor browser did have a vuln, and
a root exploit was discovered, then apparmor would STILL prevent dmesg access.
And they cannot see the pci devices either. Those are present in /sys which is
heavily restricted by apparmor.



Это правда? Tails полагается на apparmor[link78]

— Aminгч (22/10/2015 22:13)   
Основная проблема SELinux – совершенно адовая сложность написания политик.
Да, базовая идея там относительно проста.
Но поскольку работает это на очень низком уровне – по сути, как фильтр системных вызовов в ядре,
то политика селинукса должа описывать каждое телодвижение защищаемого сервиса в каждой возможной позе.

Получается такая ситуация:

* Если у вас федора и на ней стоит стандартный демон типа бинда, апача или мускула,
и при этом все файлы лежат на своих исходных местах, используются только стандартные порты,
то можно поставить Enforcing-режим без проблем – всё будет работать как и раньше.

Небольшие отклонения – типа использования нестандартных портов или размещения файлов
в другой части ФС решаются относительно просто через semanage.

* Для программ пользовательского окружения эта задача красиво не решена до сих пор -
число взаимосвязей между приложениями огромно, и хотя в той же федоре можно заметить в метках
селинука в /home первые шаги в этом направлении, до полноценной изоляции каждого приложения далеко.

* Промежуточный вариант – SELinux Sandbox – периодически ломается.
В частности, в Fedora 21 сломали звук внутри selinux sandbox.
Также я не нашел красивого способа, позволяющего внутрь строго заданной песочницы прокинуть
ровно одно заданное устройство из /dev


И чем сложнее защищаемый сервис, тем более объемной требуется описывающая его рамки политика.
— pgprubot (25/10/2015 22:34)   

У нас есть специалисты и по этим вопросам © [1][link79], [2][link80].

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

Ссылки
[link1] https://www.pgpru.com/comment38549

[link2] https://www.pgpru.com/comment34744

[link3] https://www.pgpru.com/novosti/2007/vrassylkeopenbsdproshloobsuzhdenieselinux

[link4] https://www.pgpru.com/comment25761

[link5] https://www.pgpru.com/comment32254

[link6] http://www.novell.com/linux/security/apparmor/selinux_comparison.html

[link7] http://www.linux-magazine.com/issue/69/AppArmor_vs_SELinux.pdf

[link8] http://securityblog.org/brindle/2006/04/19/security-anti-pattern-path-based-access-control/

[link9] https://www.pgpru.com/comment38583

[link10] http://selinux-mac.blogspot.com/

[link11] http://sapunidze.blogspot.com/2009/06/selinux-1-selinux.html

[link12] https://www.pgpru.com/comment32246

[link13] http://en.wikiquote.org/wiki/C._A._R._Hoare

[link14] http://www.ibm.com/developerworks/ru/library/l-bastille/index.html?S_TACT=105AGX99&S_CMP=GR01

[link15] http://www.pgpru.com/forum/anonimnostjvinternet/torbrowserbundleipaketnyjjtor

[link16] https://www.pgpru.com/comment34765

[link17] http://danwalsh.livejournal.com/45194.html

[link18] https://www.pgpru.com/comment52970

[link19] https://www.pgpru.com/comment38612

[link20] https://www.pgpru.com/comment38574

[link21] https://www.pgpru.com/comment38599

[link22] https://www.pgpru.com/comment21230

[link23] https://www.pgpru.com/comment32257

[link24] http://www.openbsd.org

[link25] https://www.pgpru.com/comment48294

[link26] https://www.pgpru.com/comment43202

[link27] https://www.pgpru.com/comment52971

[link28] https://www.pgpru.com/comment39243

[link29] https://www.pgpru.com/comment43968

[link30] https://www.pgpru.com/comment44596

[link31] https://www.pgpru.com/comment51089

[link32] https://www.pgpru.com/comment50980

[link33] https://en.wikipedia.org/wiki/NetBSD

[link34] https://www.linux.org.ru/news/linux-general/789284

[link35] https://www.pgpru.com/comment9814

[link36] http://openbsd.org/security.html

[link37] http://www.openbsd.org/errata45.html#002_pf

[link38] http://www.linux.org.ru/news/security/3639847

[link39] http://openbsd.org/errata.html

[link40] https://www.pgpru.com/forum/anonimnostjvinternet/janusvm

[link41] https://www.pgpru.com/comment53178

[link42] https://www.linux.org.ru/forum/talks/1398974?cid=1399115

[link43] http://www.virtuatopia.com/index.php/An_Overview_of_the_Hyper-V_Architecture

[link44] http://blog.xen.org/index.php/2008/08/27/xen-33-feature-memory-overcommit/

[link45] http://huanliu.wordpress.com/2012/03/13/amazon-data-center-size/

[link46] http://www.dedoimedo.com/computers/xen-console.html

[link47] http://www.opennet.ru/opennews/art.shtml?num=32703

[link48] http://files.qubes-os.org/files/doc/arch-spec-0.3.pdf

[link49] http://qubes-os.org/trac/wiki/UserFaq

[link50] http://www.blogger.com/profile/07657268181166351141

[link51] http://invisiblethingslab.com/itl/About.html

[link52] https://www.pgpru.com/comment38597

[link53] http://invisiblethingslab.com/itl/Resources.html

[link54] https://www.pgpru.com/comment67748

[link55] https://www.pgpru.com/comment68173

[link56] https://en.wikipedia.org/wiki/Pretty_Good_Privacy#Network_Associates_acquisition

[link57] http://oss.tresys.com/projects

[link58] https://www.linux.com/learn/tutorials/560928-counting-contributions-who-wrote-linux-32

[link59] http://arstechnica.com/business/2012/04/linux-kernel-in-2011-15-million-total-lines-of-code-and-microsoft-is-a-top-contributor/

[link60] https://www.pgpru.com/comment67915

[link61] https://www.pgpru.com/comment51160

[link62] https://en.wikipedia.org/wiki/Blum_Blum_Shub

[link63] http://www.fas.org/irp/nsa/rainbow/tg030.htm

[link64] https://www.pgpru.com/biblioteka/osnovy/fondpoleznyhpostov/raznoe#fppA3

[link65] http://www.thg.ru/software/joanna_rutkowska_interview/joanna_rutkowska_interview-01.html

[link66] http://www.thg.ru/software/joanna_rutkowska_interview/joanna_rutkowska_interview-02.html

[link67] https://www.pgpru.com/comment34715

[link68] http://www.theregister.co.uk/2013/09/10/torvalds_on_rrrand_nsa_gchq/

[link69] https://www.pgpru.com/comment59253

[link70] https://www.pgpru.com/comment50109

[link71] http://www.securelist.com/ru/blog?print_mode=1&weblogid=207768920

[link72] http://linuxtesting.ru/results/report?num=L0004

[link73] http://linuxtesting.ru/results/report?num=L0002

[link74] http://fxr.watson.org/fxr/source/fs/cifs/md5.h?v=linux-2.6#L16

[link75] http://www.inggross.de/archiv/www.cryptonym.com/msft-nsa.html

[link76] http://guruadmin.ru/page/4-metoda-otkljuchenija-selinux#comment-966

[link77] https://www.pgpru.com/comment69101

[link78] https://tails.boum.org/contribute/design/application_isolation/

[link79] https://www.pgpru.com/comment79837

[link80] https://www.pgpru.com/comment79842