LINUX.ORG.RU

Фильтр системных вызовов seccomp войдет в релиз Ubuntu 12.04

 , ,


0

2

Разработчики seccomp сообщают, что код их продукта включен в дистрибутив Ubuntu 12.04 Beta 2, и в ближайшее время также появится в Chrome OS.

Seccomp — это набор патчей для ядра, позволяющий программам заранее объявить список системных вызовов, которые будут использоваться. В случае если злоумышленник из-за уязвимости в программе получит возможность выполнить произвольный код, seccomp не позволит ему использовать системные вызовы, которые не были объявлены. Seccomp использует Berkley Packet Filter, что в сочетании с проверкой аргументов и возвращаемых значений позволяет реализовать сложную логику проверки.

Имеется пошаговая инструкция, описывающая процесс написания программ с применением seccomp.

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

★★★★★

Проверено: tazhate ()
Последнее исправление: tazhate (всего исправлений: 2)
Ответ на: комментарий от X10Dead

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

+ 100500

К сожалению, проблемы Linux на десктопе вызваны некоторыми особенностями менталитета и тут мало что можно изменить.

rtvd ★★★★★
()
Ответ на: комментарий от azure

Как я понял это аппармор отрезанный от инфраструктуры. Типа хочу использую, не хочу нет. В этом ПО хочу, а тут не хочу.

Ну и даже если не так, то 5 лет назад все орали есть же Апач нафига нам нджайникс...

demmsnt
()
Ответ на: комментарий от true_admin

Интерпретатор может юзать больше количество сисколов для разных скриптов. per-script сисколы ограничить нельзя.

x4DA ★★★★★
()
Ответ на: комментарий от demmsnt

5 лет назад все орали есть же Апач нафига нам нджайникс...[/ quote]

нджайникс...

нджайникс...

Что, прям так и орали?

Это аппармор без аппармора а с поддержкой на уровне програмы. Кстати, это никак не защищает от вредоносных программ, которые этим механизмом разрешают себе все сисколлы.

azure ★★
()
Ответ на: комментарий от vilisvir

факт

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

thunderamur
()
Ответ на: комментарий от rave

А они типо с системой не СИСколлами общаются что-ли?

Каждому скрипту свои ограничения прописывать?

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

ForwardToMars
()
Ответ на: комментарий от imul

А кнопки Альт и Таб ты на клавиатуре выковырнул и выкинул?

А ими ещё кто-то пользуется? Нажать 10 раз, да ещё и смотреть при этом на экран, куда мы там переключаемся. Фу, блин.

ForwardToMars
()
Ответ на: комментарий от x4DA

E glibc нет проблем. Это вы фигню про интерпретатор несете. Я в том, же духе спросил как быть с glibc? Если я хочу защитить программу, а она использует glibc (интерпретатор). Должен я запретить в glibc все сисколы которые я не хочу чтоб моя программа исполняла? Ведь источником некоторых будет glibc так?

demmsnt
()
Ответ на: комментарий от x4DA

больше количество сисколов для разных скриптов

дык разные профили же! В конце концов вызов seccomp можно обернуть в питон в виде экстеншена или использую ctypes и делай что хочешь...

true_admin ★★★★★
()
Ответ на: комментарий от azure

Кстати, это никак не защищает от вредоносных программ, которые этим механизмом разрешают себе все сисколлы.

Как злворед себе разрешит?

Вот положим есть дырка в мозилле. Зловред пользуясь ей попытался сохранить себя не в /tmp который ноэкзек, а в /home/user А Мозилле разрешена записть только в /tmp/* и /home/user/downloads/*

У него чтонибудь выйдет? Ок записал он в downloads и пользуясь другой дыркой пытается сделать exec. А мозилле exec разрешен только на каталог с плагинами... А писать в этот каталог ей нельзя.

demmsnt
()
Ответ на: комментарий от ForwardToMars

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

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

demmsnt
()
Ответ на: комментарий от r2d2

опять 25. На основе чего принимается решение блокировать сискол или нет? На основе бинаря который его делает? БИНАРЯ? еще разщ спрашиваю - на основе чего принимается решение блокировать сискол или нет?

Мне повторять до вашего просветления?

demmsnt
()
Ответ на: комментарий от ForwardToMars

во-первых, NP-полная, вроде

во-вторых, не NP-полная, NP - это non-polynomial, в нашем же случае скорее всего линейная сложность, и уж точно не более чем полиномиальная. не говоря уже о возможности кеширования

MyTrooName ★★★★★
()
Ответ на: комментарий от true_admin

закоментить одну строчку в программе и всё.

без пересборки. правда судя по хауту, здесь это невозможно.

AVL2 ★★★★★
()
Ответ на: комментарий от demmsnt

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

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

по поводу вашего предыдущего поста, ограничивается процесс, запущенный данным бинарем (+все порожденные им), а не конкретный бинарник

надеюсь, хотя бы один из этих ответов отвечает именно на тот вопрос, который вы имели ввиду, а не только на тот, который мне показался )

MyTrooName ★★★★★
()
Ответ на: комментарий от bloodredfrog

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

cdshines ★★★★★
()
Ответ на: полезность? от JackYF

в популярном случае уязвимости в сетевом демоне у программы есть write(), read(), open(), connect(), close(). Этого вполне достаточно для DoS и кражи данных.

1. Бывают еще уязвимости в ядре. Если набор syscall'ов ограничен, то вероятность успешной атаки на ядро и повышения привилегий от текущего (псевдо-)пользователя (возможно, в контейнере), т.е. после первой успешной атаки на какой-либо демон, до root (на хост-системе) становится ниже. Кстати, даже грубое ограничение по ABI (например, из 32-битного процесса сохранить доступ только к 32-битным syscall'ам, при том что ядро может быть x86_64) этот риск тоже чуть-чуть снижает.

2. Набор syscall'ов у privsep child'а может и не содержать такие вещи как open(), socket() и connect().

solardiz
()
Ответ на: комментарий от cdshines

Но как могут надоесть новости о том, что какая-то компания постоянно пилит (в какую сторону - другой вопрос) какой-то дистрибутив?

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

bloodredfrog ★★
()
Ответ на: комментарий от MyTrooName

минус: selinux она все равно не заменит

Такой задачи и не ставилось. Это разные вещи, которые могут работать как по отдельности, так и вместе. В отличие от SELinux, seccomp2 предполагается включать прямо из кода защищаемых программ - таких как Chrome/Chromium, vsftpd, OpenSSH - в upstream версиях этих программ, без какой-либо внешней policy.

solardiz
()
Ответ на: комментарий от demmsnt

Как злворед себе разрешит?

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

Файрфокс пока в разряды зловредов не попал.

azure ★★
()

Насколько я понял, они написали свой аналог miniSELinux, да и как всегда кривой.

Gunnerua
()
Ответ на: комментарий от geekless

SELinux поддерживается в атрибутах файлов. Но по дефолту стоит AppArmor.

LongLiveUbuntu ★★★★★
()
Ответ на: комментарий от MyTrooName

надеюсь, хотя бы один из этих ответов отвечает именно на тот вопрос, который вы имели ввиду, а не только на тот, который мне показался )

Именно и если это Django под исполнением python то к нему применены ДРУГИЕ профили чем к Гаджиму.

Я поражаюсь как народ тупо талдычит что мол интерпретаторы тут пролетают.

anonymous
()
Ответ на: комментарий от azure

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

Приехали. Это кто собрался защищать меня от того что я сам у себя запустил. Я могу комп кувалдой расфигачить

anonymous
()
Ответ на: комментарий от anonymous

повторяю.

защита НЕ от троянов. защита от возоможных дыр безопасности в доверенных приложениях.

MyTrooName ★★★★★
()

даёшь over9000 механизмов безопасности, одмены будут рады

anonymous
()
Ответ на: комментарий от demmsnt

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

Как и любая аналогия - немного похоже. Но лишь немного. Из кражи квест никто не пытается сделать (только в фильмах)

ForwardToMars
()
Ответ на: комментарий от MyTrooName

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

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

А сделать сложность перебора экспоненциальной - как раз полезно для таких защит. Ибо для линейной можно будет перебрать все вызовы и проверить, что сработает (что пропустили и не учли).

ForwardToMars
()

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

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

как считаете?

MyTrooName ★★★★★
()
Ответ на: комментарий от MyTrooName

доо. софт во времена доса (когда не было отдельного для каждого процесса) писался качественнее

anonymous
()
Ответ на: комментарий от anonymous

*когда не было своего адресного пространства

anonymous
()
Ответ на: комментарий от anonymous

но вы же не будете пользоваться досом, даже поддерживай он все гигабайты ram?

anonymous
()
Ответ на: комментарий от ForwardToMars

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

замечание было на основе этого предложения. Возможно, там нужно сделать s/поднятию/обходу/ ? Тогда оно вроде лучше впишется в оставшуюся часть поста.

MyTrooName ★★★★★
()
Ответ на: комментарий от anonymous

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

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

да, и у систем с общим адресным пространством тоже есть своя область применения.

MyTrooName ★★★★★
()
Ответ на: комментарий от anonymous

софт во времена доса писался качественнее

на самом деле, пока не вижу противоречия. софт мог быть качественнее, а мог не быть. Но окружение, в котором он работает, сводит любое качество на нет

MyTrooName ★★★★★
()
Ответ на: комментарий от MyTrooName

при условии, что качество не 100%, конечно. а вот 99% или 99.9% - уже разницы не будет видно.

MyTrooName ★★★★★
()
Ответ на: комментарий от ForwardToMars

Там окна группируются и нажимать надо намного меньше и не только таб. А насчёт смотреть в экран... Интересно, куда ты смотришь кроме экрана?

imul ★★★★★
()
Ответ на: комментарий от demmsnt

Меня бесполезно спрашивать. Я абсолютно уверен, что сабж говно.

r2d2
()
Ответ на: комментарий от MyTrooName

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

И суппортер пипец как крут, чтобы прогнать программу на всех возможных режимах и конфигах. Apache, MySQL, Nodejs... Удачи придуркам.

r2d2
()
Ответ на: комментарий от MyTrooName

Возможно, там нужно сделать s/поднятию/обходу/ ?

Злоумышленнику нужно «поднять себе права» или «обойти ограничения». Поднять права - это тоже самое, что «получить права» на совершение каких-то действий (деструктивных, например). «квест по обходу прав» - это бессмыслица какая-то.

ForwardToMars
()
Ответ на: комментарий от imul

А насчёт смотреть в экран... Интересно, куда ты смотришь кроме экрана?

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

А ещё на клаву смотреть можно. Регулярно на неё смотрю.

ForwardToMars
()
Ответ на: комментарий от r2d2

с селинуксом как-то так и есть на данный момент. с аппармором, наверняка, тоже.

$ eix sec-policy/selinux-
...
Found 234 matches.
$ eix sec-policy/selinux- | grep Homepage | grep http://www.gentoo.org/proj/en/hardened/selinux/ | wc
    217     434   16058

итого, 217 из 234 поддерживаются именно дистрибутивом. и ничего, не перенапрягаются.

MyTrooName ★★★★★
()
Ответ на: комментарий от ForwardToMars

Зачем головой вертеть туда-сюда? Периферическое зрение не работает? Соболезную. И да, оффтопим же.

imul ★★★★★
()
Ответ на: комментарий от MyTrooName

В дженте они уже готовые, или надо сидеть и настраивать, попутно читая логи на предмет того, что отвалилось после очередного инсталла?

imul ★★★★★
()
Ответ на: комментарий от anonymous

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

azure ★★
()
Ответ на: комментарий от imul

не пробовал, но, скорее всего, да

Gentoo SELinux Project Description:

This project manages SELinux support in Gentoo. This includes providing kernels with SELinux support, providing patches to userland utilities, writing strong Gentoo-specific default profiles, and maintaining a good default set of policies.

MyTrooName ★★★★★
()
Ответ на: комментарий от imul

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

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