ПредишенСледващото

Въпреки че всички уловени Pokémon, аз отпочинали. Дошло е време да се възобнови дейността на Мейси и днес се вгледаме в изолирана пясък за стартиране на приложения. Със сигурност най-малко веднъж в живота, че трябваше да се справят с не причиняват приложения на потребителското доверие и скриптове, които биха могли да навредят на системата. Или искате да стартирате браузъра, в най-изолираната среда, така че ако се счупи системата ви не е застрашено. Днес такива задачи, приети за решаване с помощта на вездесъщия докер, но има и много много по-лесен и удобен инструмент за бързо стартиране на приложения в пясъчника.

Заявленията се движат изолирани програми пясък

Дълго преди идеята за Docker е роден в съзнанието на своите създатели, се оказа, LXC проект (Linux Контейнери). Тя се основава на всички едни и същи технологии дивизия Пространствата от имена на (Linux пространства от имена) и просто да се даде възможност за създаването на минималистичен затворена среда за изпълнение (пясък, контейнер) за стартиране на услугата или опасни приложения. LXC обаче не е толкова лесен за нови потребители и не са имали чипове като докер пластове на файловата система, възможност за бързо изпомпване и пуснете готови приложения и конфигурационен файл за среди автоматични монтажни.

Много по-рано се появи в затвора технология FreeBSD, което ви позволява да се създаде пясък като Chroot, но с акцент върху по-дълбоко ниво на изолация. За дълго време, затвора е гордостта на FreeBSD, а дори и служи като прототип за Solaris Зони технология. Днес, обаче, не може да се осигури ниво на гъвкавост и ресурси, които предлагат LXC и докер, така че цялата затвора беше в кулоарите на историята. Днес пясък в Linux може да се създаде по много различни начини. Това вече е споменато LXC и Docker със своите именни пространства, механизъм Seccomp, Chrome използва за изолиране на разделите и плъгини, е SELinux технология / AppArmor за фина настройка на достъп до приложението за каквото и да било. В тази статия ще разгледаме най-удобния за средния потребител с инструментите, които са най-подходящи за ежедневни задачи като:

  • тичам ненадеждни приложения, които могат да навредят на системата;
  • изолация браузър, имейл клиент и други приложения за тяхното хакване не доведе до изтичане на данни;
  • изстрелване на "еднократна употреба" приложения, които не оставят следи в системата.

1 Пясък MBOX

Да започнем с един от най-прост пясъчника. Mbox - не съвсем стандартен инструмент изолация, тя не се ограничат правомощията на работещото приложение, не е в съответствие с виртуализация на стека на мрежа и не разполага с никакви настройки. Единствената задача на Mbox - за да сте сигурни, че приложението не може да пише на файловата система. За да направите това, той създава специална виртуална файлова система, която пренасочва всички I / O искания. В резултат на това под контрола на Mbox приложение работи, сякаш нищо не се е случило, но в хода на работата си вие получавате възможност да кандидатстват или да отхвърли тези или други промени във виртуалната файлова система в Реал файловата система.

Най-добре е тази концепция показва пример за официалната страница MBOX:

Arch Linux MBOX Наличната в AUR, така че инсталирате още по-лесно:

Това е всичко. Сега можете да стартирате всички изпълними файлове, без да се притеснявате, че ще бъде оставен на задната врата на файловата система. Ако дадено заявление трябва да ограничите достъпа до определени части на файловата система, можете да използвате профили. Това е обикновен текстов файл, който съдържа списък на разрешените и забранени за директории за достъп. Например, следния профил откаже достъп на приложението до дома си директория (

), Но оставя възможността да работи с файлове в текущата директория () .:

За да стартирате приложението със специфичен профил, достатъчно, за да го отбележите, чрез опцията -p:

Друга полезна опция е - -н. Тя напълно забранява достъпа на приложението до Интернет.

Сравнение на

Принцип на действие MBOX

2 Нека се изолират стартиране приложения, използващи FIREJAIL

Излишно е да казвам, просто забрана за достъп до файла - това е твърде малък, за да се създаде един наистина изолирани пясъчници. Malware или че хакер може да е нищо, за да се регистрирате в системата, а просто отнесе си Bitcoin-чантата и база данни KeePass, или да използвате уязвимост заявление на пароли, за да се получи достъп до корен и излизане от пясъчника. В допълнение, Mbox не е приятелски с графичен софтуер, и като цяло не е подходящ за много сложни приложения, които могат да бъдат написани на диска много временни файлове и непрекъснато актуализиране на техните бази данни.

За щастие, ние имаме Firejail. много по-гъвкава и мощна изолация инструмент, който не само контролира достъпа до файловата система, както и напълно откъснати от основната система за приложение се използва механизмът за имена на Linux. Работещи в Firejail заявление пясък има достъп само до предварително определени файлове и функции на системата. Например, можете да забраните достъпа на приложението до всички файлове, с изключение на собствената си довереник, отворете някои файлове само за четене или запис само, забрани за повишаване на техните права, за да корен, да се забрани се свърже с някои пристанища, забрани опасни системни функции, като например execv.

Ограничения са дефинирани в профила на приложение, които могат общо десетки noroot видове линии, seccomp, белия

/.mozilla. Въпреки това, лично, вие сте принудени да не ги пиша - Firejail вече включва 95 профили за различни приложения. Всичко, което остава да се направи - просто инсталирате инструмента и стартирайте програмата:

Всичко вече е стартирал Firefox в изолирана пясък и има достъп само до директорията си, няколко свързани довереник (KeePass, например) и не разполага с достъп до опасни системни функции и пристанища, с изключение на 80, 443 и 53.

Сравнение на
Демонстрация на работата Firejail

Освен това, можете да започнете Firefox в напълно стерилна среда без достъп до файлове и конфигурации за основната система:

Можете да създадете няколко от тях пясък и да ги използвате, за да се обърне различни обекти (тук USER - това е вашето потребителско име):

Тези команди ще стартират три отделни прозорец на браузъра в пясъчника. Първо ще се използва за работа и един за онлайн банкиране, а третият за останалата част, не е свързана с първите две. Компромис с един от пясъчника няма да доведе до компрометиране на другите.

Ако е необходимо, можете дори да се ограничи честотната лента за движение в приложение за пясък. Например, командата ще ограничи ширина входящ канал 80 КБ / сек, и ширината на изходящия - 20:

Всички профили Firejail приложения се съхраняват в директорията / и т.н. / firejail. Ако трябва да създадете профил за приложение, което не се поддържа Firejail. просто да копирате този профил са подобни на тези на заявлението и да го промените. Профил формат е интуитивен. Въпреки това, за системата за филтриране на повиквания, трябва да разбера кои използват приложението и след това се добавят в профила. Как да се направи това, е описан в официалната документация.

Сравнение на
Профил за приложение в Firejail

приложения изолационна система 3 пясък.

Ако сред Firejail профили 95 не разполага с необходимите приложения, както и идеята да се напише профилите не е много доволен от вас, таксуването - това е ваш избор. Този тип пясък е технически доста по-различно от двете описани вече инструменти (SELinux правила го употреби вместо seccomp и Namespaces), но е по средата от гледна точка на функционалност.

Тази команда чете файл / и т.н. / ако съществува, извлича името на потребителя и да го пише във файл / ПТУ / потребители. Възползвайте се от нея не, но тя напълно демонстрира принципи Sandbox работи. Виртуалната среда се стартира само отбор нарязани, и файл / и т.н. / PASSWD се предава на него с помощта на външна команда. Изводът, от друга страна, се осъществява с помощта на конвенционално пренасочване на стандартния изход.

Сравнение на

Sandbox красота е, че го използвате е доста лесно да се разшири на разположение възможностите за кандидатстване. Например, можете да създадете временен дом директория и директорията / ПТУ, предаването на екипа само един флаг за него:

След приключване на работата, тези директории ще бъдат унищожени, което е много удобно, когато работи ненадежден софтуер. Но какво, ако е необходимо собствената директория да се поддържа между започва (добре, да кажем, за да тестват софтуера, работа с множество файлове)? Това е достатъчно, за да се създаде директория, която ще бъде дом за пясъчника, и да добавите още един вариант:

Но това не е всичко. Sandbox има вграден в политиката за сигурност да тече браузъри. Всичко, което трябва да се направи - изпълнете следната команда:

И тъй като вие вече трябва да са разбрали, можете да използвате различни домашни директории за да управлява различни сесии на браузъра или да използвате "еднократна употреба" домашна директория за туризъм в преследва на порока. Друга полезна знаме, което заслужава да се спомене, - -w, с негова помощ, можете да определите размера на прозореца за графичен софтуер. Той със сигурност ще дойде по-удобно, като динамично промените размера на прозореца не може да бъде (това е техническо ограничение Xephyr).

Като цяло, Sandbox - много удобен инструмент, единственият проблем е, - за подкрепа дистрибуции. В действителност, с изваждането от кутията за Sandbox работи само в Fedora, въз основа на неговата RHEL / CentOS и евентуално други дистрибуции активирани по подразбиране SELinux.

Сравнете пясъчници ЗАКЛЮЧЕНИЕ

Стартирайте софтуера в тестова среда е съвсем проста и много инструменти, можете да използвате за това. В тази статия, ние погледна три от тях.

  • Mbox е различен в лекота и е идеален, когато трябва да контролира това, което, което подава молбата трябва да има достъп.
  • Firejail за създаване на сложни конфигурации и тичам почти стотици различни приложения, но не е много полезно, ако е необходимо молбата не е в списъка на поддържа.
  • Sandbox - един чудесен инструмент за провеждане на всякакъв вид софтуер, но е достъпно единствено за потребителите и Fedora-базирани дистрибуции него.

Кои от тези инструменти, за да изберете - зависи от вас. В следващата статия, ние ще ви се рови в тънкостите на изпълнението на пясъчника и да създадете свои ръце.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!