Автор Тема: Една ламерска идея за сигурност в нета  (Прочетена 3093 пъти)

flatko

  • Напреднали
  • *****
  • Публикации: 13
    • Профил
Здравейте!
Не съм Линукс-специалист, но го ползвам като основна ОС от доста време и предлагам една гениално проста защита от евентуални дупки в сигурността.

Когато се заговори за вируси под Линукс, всички почват да говорят за permissions и изтъкват, че - видиш ли - дори и да успее да се стартира някак, вирусът ще порази САМО домашната папка. Упс! Ами там всички си държим данните, които не искаме да загубим и това е май по-важно от самата система (която за 20 минути можем да инсталираме отново).

Не трябва ли да се пропагандира отделен user за Интернет-приложения, който да няма права дори за четене от основния ни потребител? Това и аз мога да направя, и то с графични инструменти, и после да си преправя launcher-ите на Интернетските програми да се стартират под името на другия юзер? Чиста работа!

Искам да чуя мненията на хората, които само с това се занимават, на прав път ли съм, или няма смисъл от това?
Активен

ludsic

  • Напреднали
  • *****
  • Публикации: 71
    • Профил
Здравей,

Проблема на линуксите като цяло не са вирусите, но все пак ...
За да си направиш такъв юзър, първо трябва да махнеш правата от файловете на other групата. Ако проблема ти е само за /home не е проблем, но ако става въпрос за цялата система не е никак лесно. Пробвах и се убедих в това. А ако става въпрос само за /home е доста лесно, правиш user с различна група от users, махаш правата от other на всички файлове в /home и си готов. Не е нужно да си пускаш Мозилата (примерно) с друг user.

Поздрави.

PS: командата, с която се махат правата на other групата от домашната ти папка, примерно test е:

Код
GeSHi (Bash):
  1. chmod -R o=-rwx /home/test

Едно пояснение : написал съм буквата "о", а не нула.
« Последна редакция: Sep 08, 2009, 02:24 от ludsic »
Активен

B4 02 B2 4C CD 21 B2 61 CD 21 B2 6D CD 21 B2 65 CD 21 B2 72 CD 21 B4 4C B0 00 CD 21 00 00 00 00

foxb

  • Напреднали
  • *****
  • Публикации: 175
    • Профил
    • WWW
Обикновенно вирусите използват някаква дупка в сигурността за да увеличат привилегията на процеса под който са стартирани (т.е. да получат root права).

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

Колкото до въпроса то в домашната папка обикновенно няма изпълними файлове -> вируса не се интересува от нея (но това не пречи да свърши други поразии).

Истинския проблем е, когато се стартира браузър с root акаунта.

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
SELinux би трябвало да осигурява възможност за решаване на голяма част от тези проблеми. Примерно представи си че ползваш бъглив браузър, отвориш някакъв сайт със зъл iframe, който пък зарежда зъл експлойт и кара браузъра примерно да отвори reverse shell към злата хакерска машина, ако имаше свястно направено policy, където е казано: браузъра не може да оригинира конекции към определени портове, не може да exec-ва шелове и т.н. тогава такива проблеми ще бъдат избегнати до голяма степен.

За жалост обаче обикновено се ползва targeted, a не strict policy, където пуснатите от потребителя неща в повечето случаи не се confine-ват. Отделно, нямам идея дори и с strict policy-то, по дефолт такива неща дали са дефинирани. По принцип, интегрирането на MAC неща в една десктоп система така че да се confine-ват потребителите е много проблемна работа - има огромен брой приложения, които правят различни работи и при различни обстоятелства. Проблеми биха възникнали ужасно много, още повече че доста програми въобще не са писани с идеята за някои операции да се проверява дали се връща -EPERM и почват да се държат странно. Би било един малък ад да се сътвори работеща дистрибуция, където тези неща са добре интегрирани, изтествани и подържани.

Което е малко жалко.
Активен

"Knowledge is power" - France is Bacon

flatko

  • Напреднали
  • *****
  • Публикации: 13
    • Профил
Е, да, за root правата е ясно - придобие ли ги някой зъл вирус: rm -rf / и с мен е свършено...
Но има нещо друго - възможно ли е при отваряне на някой сайт, мозилата чрез java примерно, да се докопа до изпълнение на rm -rf $HOME ? Ако да, то не й трябват root права, за да ми затрие около 20-ина аудио-проекта и още много инфо.
За този случай имах предвид да ползвам мозилата от друг юзър, който не може да пише в моята home папка.
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Въобще не разбирам от джава, но доколкото знам аплетите си вървят в някакъв сандбокс и не могат да пипат каквото си искат, особено по файловите системи. За да го правят, трябва да има някакъв бъг в jre-то предполагам. Отделно, браузърите питат преди да заредят аплета, така че няма шанс някой да се изпълни без разрешение (да де, ок, би трябвало да го правят). Мисля, че вероятността това, което описваш да се случи е доста ниска.

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

"Knowledge is power" - France is Bacon

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
SELinux би трябвало да осигурява възможност за решаване на голяма част от тези проблеми. Примерно представи си че ползваш бъглив браузър, отвориш някакъв сайт със зъл iframe, който пък зарежда зъл експлойт и кара браузъра примерно да отвори reverse shell към злата хакерска машина, ако имаше свястно направено policy, където е казано: браузъра не може да оригинира конекции към определени портове, не може да exec-ва шелове и т.н. тогава такива проблеми ще бъдат избегнати до голяма степен.

Един цитат от описанието на един експлойт, кодът на който разучавам тия дни
Цитат
This exploit makes use of the SELinux and the mmap_min_addr problem to exploit this vulnerability
Много хубав експлойт - дава root достъп на всеки потребител без да иска парола. Само дето на някои от пробваните машини не се задейства, пък уж са с уязвими ядра. Но на тези, на които се задейства... тръпки да те побият.
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Ахъм, знам за това, в случаят селинукс прави системата по-уязвима, защото е още един вектор на атака (освен pulseaudio и/или директно мап-ване на паметта ако стойността на онова е 0). Това обаче е частен случай и по никакъв начин не означава, че селинукс е безсмислено начинание. После, това скоро ще бъде оправено така или иначе.

Обаче за confine-ване на десктопи както казах става ужасно сложно. Да разгледаме 2 случая: уеб сървър и уеб браузър.

Уеб сървъра (нека е апач) има сравнително малък списък с изисквания: трябва да може да отваря и да слухти на 80-ти порт, да може да си чете documentroot-a, конфигурациите, /var/run/..., директорията с апач модулите, евентуално ако ползва PHP има повече изисквания - да може да пипа в директорията със сесийните файлове, да чете от директорията с пхп библиотеките и в общи линии тези неща могат да се опишат лесно.

Уеб браузъра е съвсем различна бира. Първо там не можеш да кажеш: искам да може да се връзва само на 80-ти порт и на 52/udp. Защото може да ползваш прокси, можеш да отваряш уеб услуга на друг порт, можеш да отваряш фтп услуга примерно (а там е ужас).

Трябва да можеш да си четеш директорията дето се пазят временни файлове, кукита, плъгини и т.н. Обаче какво става ако потребителя реши да запише някой документ някъде? Ще има проблеми. 

Друг случай: отваряш един pdf файл и искаш да го видиш направо с kpdf например, защо браузъра да има право да го изпълнява? Какво трябва да може да изпълнява и какво да не може, зависи от ужасно много неща.

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

Та уеб сървъри успешно се confine-ват и правилата за това са част от  targeted политиките, които идват с дистрибуциите, подържащи селинукс (дебиан или редхат например). Обаче за браузъри....става доста грубо. Не че не може, но това е решение за конкретен случай. Ще е ужасно сложно да се направи нещо, което да е работещо в масовия случай без прекалено много проблеми.


А иначе стандартните механизми са ужасно груби. ОК, ще си направиш друг потребител, с него ще ровиш из интернет, но това не е решение, поради ред причини.
« Последна редакция: Sep 08, 2009, 18:09 от gat3way »
Активен

"Knowledge is power" - France is Bacon

v_badev

  • Напреднали
  • *****
  • Публикации: 1355
    • Профил
flatko, произволен JavaScript не може да ти затрие домашната папка, освен ако няма голяма дупка в сигурността на браузера.
От друга страна е достатъчно е да си инсталираш лошо разширение за Firefox за да се сдобиеш с вирус. Разширенията нямат никакви ограничения и могат да правят всичко което може и Firefox. Преди време се беше оказало че във Виетнамският езиков пакет има троянец линк.

@gat3way ако аплета е подписан и ти се съгласиш да се стартирар той може да прави каквото си иска. За тест си зареди страницата за тестово подписване на Агенцията по вписванията. Не е задължително сертификата да е на някой голям доставчик като Verisign. Като гледам даже техният е изтекъл.
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Бля, това вече става отговорност на подписалия аплета. Нямам никаква идея каква отговорност носят и какви са политиките по този въпрос, но ако някой подписва аплети, които правят глупости и браузъра има идея за това CA, това ми изглежда като огромен проблем и тези хора би следвало да си го отнесат. Макар че нямам идея какво точно би се случило, както казах, нямам идея как стоят нещата с джава аплетите.
Активен

"Knowledge is power" - France is Bacon

flatko

  • Напреднали
  • *****
  • Публикации: 13
    • Профил
Back Up
« Отговор #10 -: Sep 09, 2009, 02:18 »
v_badev, наистина трябва в най-скоро време да си направя бекъп на работните проекти, все го отлагам, щото ме мързи.
По всичко личи, че съм в заблуждение и това, което си мислех, е напълно излишно. Няма значи никакъв смисъл да правя отделни потребители, а да гледам какво стартирам и да инсталирам extension-и на Лиско само от официалния сайт.
Мерси на всички, и като гледам темата стана доста по-широчка и научих доста неща. Лека нощ.
 
Активен

v_badev

  • Напреднали
  • *****
  • Публикации: 1355
    • Профил
Re: Една ламерска идея за сигурност в нета
« Отговор #11 -: Sep 09, 2009, 09:59 »
gat3way, не случайно дадох пример с този аплет. Той е подписан със сертификат на b-trust който за Java е непознат. В случая няма голяма ралика дали ще е подписан от реално съществуващо CA, което не е познато на SUN или от мен.
Активен