LINUX.ORG.RU

Grsecurity и проактивная защита доступа к ФС и к сети

 , , ,


0

4

Можно ли сделать проактивную защиту в связке с grsecurity?

Возьмем, к примеру браузер Firefox. Я хочу его поместить в песочницу и запретить всё, что не разрешено явно, за исключением двух вещей:

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

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

Можно ли такое реализовать? Может, другими инструментами?

Спасибо.



Последнее исправление: Klymedy (всего исправлений: 2)

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

Подобную штуку я видел на базе SELinux

Pinkbyte ★★★★★
()

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

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

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

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

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

Это я могу сделать и в обычной песочнице. Но это не решение проблемы, и вот почему:

1. Браузер — весьма уязвимая часть системы, чтобы ей давать доступ ко всем личным данным.

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

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

Это я могу сделать и в обычной песочнице. Но это не решение проблемы, и вот почему: 1. Браузер — весьма уязвимая часть системы, чтобы ей давать доступ ко всем личным данным.

chmod 0700 /home/you/ и браузер никак не получит доступ к вашим данным.

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

это первый контраргумент диванного теоретика. На самом деле достаточно иметь всего один каталог, скажем /home/share, который всё равно нужно ручками чистить, ибо он очень быстро превращается в помойку. Да и вообще очень удобно иметь такую огороженную помойку. Всё равно данные из интернетов нужно распаковывать/перекодировать и т.д. Как минимум просто переместить на своё место. И делать это из браузера неудобно.

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

Проблема в том, что в песочнице не только единственный браузер, а и email-клиент, IM-клиенты, и другой софт, для которых не раз демонстрировались удаленные 0-day.

Поэтому запуск каждой софтины из-под отдельного пользователя и создание кучи /home/share[softname] — это весьма трудоемко и неудобно.

На самом деле достаточно иметь всего один каталог, скажем /home/share

Именно от этой схемы я и хочу уйти.

Всё равно данные из интернетов нужно распаковывать/перекодировать и т.д.

В моём случае это бывает редко.

Как минимум просто переместить на своё место. И делать это из браузера неудобно.

Я привык сразу сохранять каждый файл в положенное ему место. Это гораздо проще и удобнее, чем каждый раз дополнительно залезать в каталог и сортировать ещё раз (не важно, из-под консоли или GUI). Это просто отвлекает от рабочего процесса.

Так что извини, но именно твой способ я пытаюсь избежать.

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

Проблема в том, что в песочнице не только единственный браузер, а и email-клиент, IM-клиенты, и другой софт, для которых не раз демонстрировались удаленные 0-day.

сделай несколько песочниц, не вижу проблемы.

Поэтому запуск каждой софтины из-под отдельного пользователя и создание кучи /home/share[softname] — это весьма трудоемко и неудобно.

что, ты так часто качаешь фалы IM'ом?

Именно от этой схемы я и хочу уйти.

ну и уйди. Я только не понимаю зачем.

Всё равно данные из интернетов нужно распаковывать/перекодировать и т.д.

В моём случае это бывает редко.

а качаешь ты часто? А что именно?

Я привык сразу сохранять каждый файл в положенное ему место. Это гораздо проще и удобнее, чем каждый раз дополнительно залезать в каталог и сортировать ещё раз (не важно, из-под консоли или GUI). Это просто отвлекает от рабочего процесса.

если ты скачал архив, из которого тебе нужны файлы, то зачем тебе сам архив?

Так что извини, но именно твой способ я пытаюсь избежать.

твоё дело. Я пробовал и то и другое. Набивай сам шишки, я не против.

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

сделай несколько песочниц, не вижу проблемы.

Усложняется обмен файлами между программами.

ну и уйди. Я только не понимаю зачем.

Об этом я писал в моём предыдущем ответе тебе. «Я привык сразу сохранять каждый файл в положенное ему место. Это гораздо проще и удобнее, чем каждый раз дополнительно залезать в каталог и сортировать ещё раз (не важно, из-под консоли или GUI) - это просто отвлекает от рабочего процесса.»

что, ты так часто качаешь фалы IM'ом?

а качаешь ты часто? А что именно?

Да, обычный рабочий процесс. Разного рода документы, от разных клиентов. И не только качаю, но и передаю сам.

если ты скачал архив, из которого тебе нужны файлы, то зачем тебе сам архив?

Файлы имеют цифровую подпись, в том числе, и архивы. Поэтому мне нужно оставлять оригинал.

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

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

Я могу жёстко контролировать обмен данными между приложениями, как раз то, чего ты хотел добиться в первом посте. Ты видимо хочешь это всё автоматизировать, т.е. если браузер хочет записать файл в /a/b/c/, то система задаёт вопрос «можно?», и если да, то разрешает? Такой костыль можно сделать, но ИМХО надёжнее это делать руками, и не доверять автомату.

emulek
()
14 июля 2014 г.

Можно, конечно. У меня на дестктопе по такому принципу и работает firefox. А в логах всё видно, что он делает из неразрешенного.

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

Запускаешь в режиме полного обучения gradm и юзаешь десктоп. Затем генеришь политики и во все subject ставишь параметр 'l' . Далее включаешь grsec в режиме обычного обучения, скормив ему полученные ранее политики и продолжаешь юзаешь десктоп, периодически добавляя в ACL те subjects, которые не уловил gradm (с ключем 'l'). Как система доходит до рабочего состояния, убираешь 'l' из subject firefox, переводя его в режим «ничего нельзя кроме того, что разрешено». Всё остальное работает по принципу «можно всё». Могу посоветовать маунтить флешку в /var/log или отправлять логи на сервер логов. gradm не идеально самообучаем, и не раз придется вырубать машину с ноги. Но останется возможность посмотеть логи в том же dmesg.

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