• На проекте открылась регистрация только для продавцов. Для обычных пользователей будет открыта позже. Подробнее.
    P.S. Не надо скидывать ссылки на форумы, где у вас ноль сообщений. Подобные заявки будут отклонятся.

*nix OC Статьи пo *nix

ddd

(•̪̀●́)=o/̵͇̿̿/'̿̿ ̿ ̿̿
Команда форума
WebOwner
WebVoice
Статья: 10 мифов о Linux
Автор:
SideX

Источник: www.web-support.ru
Сколько было криков: «Ура! Я себе линукс поставил! Да у меня теперь не винды течные, а ШАПКА стоит! Вы-то ламаки, а я со своим пингвином крут!». Или же: «Да не... это только сисадминам всяким, программистам надобно... хаксорам крутым, а мне как обыкновенному юзеру - на фиг не надо. Да там же сплошная консоль и text-mode, никакого гуя!». «Я бы поставил... да вот софта под Линух совсем нету, да и с драйверами напряги...» Короче, сравнительно молодая OS Linux успела породить массу слухов и небылиц, которые будут тщательно подобраны и опровергнуты в данной статье. Все надуманное - обзову мифами. Их будет 10.

1. Там вообще нет интерфейса - сплошная строка; не хочу обратно в ДОС!

Миф о том, что вся работа происходит в консоли, популярен у людей, едва знакомых с рассматриваемой осью, и у очень продвинутых, знающих все команды и избегающих визуализации, а также у обладателей супердревних компов, где о GUI`е не может быть и речи. Так вот, реальность в том, что при помощи графических оболочек (возьмем наиболее популярные и распространенные) KDE и GNOM`a можно вытворять такую красоту, что самым причесанным виндам в "Талисмане" и не снилось! Посмотреть на это в журнале можно в статье о различных Х-виндах под линукс. Короче, набрав волшебное startx, ты попадаешь в совершенно другой мир "Рабочего стола", недоступный win. И это при достаточно умеренных потребностях в ресурсах (тот же "Талисман" в момент пожирает юзерские 32 мешка ;)). Существует туча тем под Х-windows - как с больших сайтов о *nix, так и на юзерских страничках, написать свою тему вполне реально. Хотя говорить, что визуализация Linux проходит бесследно, без жора ресурсов - лукавство. Если машинка действительно слабая, то порой лучше ограничиться консолью с ее различными псевдографическими приложениями. Более подробно о мифе удовлетворенности пингвина малым - в следующем пункте >:).

2. Поставил Линукс: на "четверке" летает быстрее, чем виндос на P3!
Изначально *nix разрабатывался как серверная ОС. А где серверы, там... 5 винтов на SCSI, 2-4х процессорные матери с детишками, набитыми по 1-2 мега кэшем L2 каждый, с 512 мегами мозгов на всех =). Понятно, что на твою домашнюю систему никто не собирается ставить одновременно почтовый, ftp, telnet, news, etc - демонов, к которым производится по 5 обращений от разных юзеров одновременно %), но сам факт "непотребности в ресурсах" - отсутствует. Т.е. поставить пингвина на 486-ую машину с 8-16 мегами оперативы - реально, но очень гиморно как в плане конфига, так и в дальнейшем пользовании. Были разговоры о том, что даже на слабых машинах Linux прекрасно вытягивает MPEG/DVD видео. Так вот скажу, что видел лично: сие был не фильм "Угнать за 60 секунд", а азбука общения для кривоязыких заик с текстовыми пояснениями :). Хотя порой линух показывает выдающиеся финты при работе с 3D-графикой на маломощных системах. Но лично я знаю лишь парочку профессиональных 3D-дизайнеров, работавших с графикой в *nix. Да и то было на крутом, профессиональном железе. Так что ставить *nix с перспективой его мультимедийного (хех, лет 5-6 назад xtra-популярное слово было =)) и визуального использования - лучше на машину с процом, поддерживающим L2, памятью не менее 32-х метров (_не менее_, т.е. комфорт работы в графике можно почувствовать, начиная с 64-х), винтом на не менее 5400 оборотов (хоть линукс не имеет особой привычки свопить, но и память лишним гимором лучше не грузить). А вообще, понятие "комфорта работы" - чисто субъективное, так что выбирай конкретно под себя.

3. Я же маньяк железа - как мне с Linux дружить, если там драйверов-то нету?!!

Избаловались же вы, товарищи! Люди, поюзав Win c ее тотальным Plug`n`Play`ем, - обленились вконец. И забыли те времена, когда под свежекупленную звуковуху драйвер искался по всем московским ббскам и пиратским дискам "1000 и 1 драйвер". И находился-то не всегда. Итак, говорите, что под Линукс драйверов железа нет? Есть. Другое дело, что не всегда можно найти официальный/референсовый драйвер под рассматриваемую систему. А самопальных драйверов - немерено. Как распространяемых отдельно от устанавливаемой ОС, так и в комплекте таковой. Убедиться в этом я смог, устанавливая FreeBSD (я помню, что мы говорим про Linux, но набор drv в той и другой системах - схожий) на ноутбук: в комплекте с 4.0 шел нехилый набор драйваков под достаточно редкую версию моей Cyber-видео карточки. Там было даже обеспечение для тех вариаций карточки, что официально не поддерживаются производителем и для коих не имеется официальных драйверов под винды вообще ;). Естественно, никакого "Плуг`н`Плэя" нету: приходится выбирать необходимую железку из списка. Но, зная названия необходимого hardware, - отыскать несложно. А если в списках не значится, то без особых проблем можно нарыть в Инете на сайтах, посвященных Linux, в конфах, эхах, мэйл листах, у людей в LUG`ах. Реальный гимор, как показывает практика, возникает с SCSI-адаптерами, поддержкой в видеокартах финтов, потребных в гамесах, ряда USB-девайсов и, ясный пень, soft modem`ов >:). Хотя, имхо, USB пока не столь популярен (увы), SCSI-девайсов тоже не так много, а отстойные софт-модемы не стоит покупать изначально. Короче, если есть Инет, то найти необходимые drv под Линь - не станет большой трудностью.

4. Если поставишь Linux - тебя никогда не хакнут!

Достаточно грубо сформулированный миф, ибо вокруг "Да все вы ламаки, а я в Линуксе" очень распространен и принимает разные формы, две из которых вынесены в разные пункты. Так что там насчет неломаемой ОС? ;) Да то, что если взять статистику (например, attrition.org) по взломанным системам, с учетом установленной там системы, получится, что самые хакаемые станции находятся под руководством Windows NT и Linux. Это к тому, что как серверная OS - Linux не является признанным бастионом безопасности на фоне более стабильного Solaris`a, Free/Open/Net BSD. А как пользовательская - пожалуй, тоже. Возможно, Линух станет стеной на защиту от ряда D.O.S атак, вроде oob; igmp; багов из серии con/con, etc. Но без грамотной настройки файрвола не защитит от никем не отмененных грубых ICMP-атак. Понятно, что, даже впарив тебе троянца "Позови соседа", недоброжелатели ничего не поимеют (гы-гы, они поимеют все с помощью password.c ;), да от бомбежек любимым войдозером последствий не будет... В общем, иммунитет Linux к нападкам кул-хацкеров находится не на столь высоком уровне. Крипто? Стандартными средствами вряд ли можно шифровать что-либо серьезное, потому что существует более стабильный GNU/PGP (заметим, что у последних имеются как *nix, так и win-версии). Также не стоит забывать про постоянные баги в новых kernel`ах, и переполнение буфера в ряде популярных продуктов (я лично поимел неслабый гимор в Linux при пользовании дырявым BitchX irc-клиентом). А про кривые mount`ы и безрукое конфигурирование samba`ы я вообще молчу. Понятно, что, погиморроившись, можно сделать из Linux вполне безопасную систему, но лишь погиморроившись, а не проехав на постоянном Plug`n`Play`е >:).

5. У меня 98-ые стоят, потому что под них до фига прог, в отличие от Линуха!

Хех, стандартная отмаза людей, не способных/ленящихся поставить *nix. Понятно, что официального релиза ICQ под *nix - не было и вряд ли будет. Что любимый The Bat! существует только в win-версии, а Midnight commander вряд ли заменит Far или Wincmd... Но ведь то, что под Linux нету хорошего софта, - наглая ложь. Софт есть, просто он другой. Чтобы убедиться в этом, достаточно заглянуть на мой любимый сайт о Linux софте - www.linuxberg.com . Куча софта под консоль, X11, KDE, GNOM. А одних асек-то сколько... Столько, что не все вошли в обзор ICQ под Linux в Х#7 00. Есть где развернуться. Здесь меньше вариаций из серии "улучшенный интерфейс и повышение качества визуализации", т.е. если прога становится массово известной, то это значит, что в ней имеется нечто действительно новое/нужное. Если приглядеться к сотне вариаций почтовых клиентов под win, выделится лишь 10 более-менее разных/нужных, в то время как из 20 под Линукс - уже 10 будут нести что-то интересное. Итого, девизом пользовательского софта под *nix могла бы быть любимое лысым дедушкой - "Меньше, да лучше". Другое дело - профессиональный софт, используемый, например, в издательском деле: win`дозный софт для верстки, дизайна, работы с видео и фото, порой разнообразнее *nix`овского (а то и вообще присутствует лишь в win-версиях). Но чтобы укомплектовать домашнюю машину "джентльменским" набором - вполне достаточно существующей подборки Linux-софта.

6. Как же я буду работать с Linux, если мне и винды нужны одновременно???

Года два назад я пользовался именно этой отмазкой, когда рьяно защищал свою НТю от гнусных провокаций корефанов, предлагавших поставить шапку. Хотя я и раньше точно знал, что на одной тачке свободно уживаются 2 и более ОС. Именно пользуясь этим мифом, я отложил установку Linux в собственную тачку на полгода... В то время как LILO (LILO boot) позволяет свободно выбрать: загружаться в DOS (а дальше уже в НТ/98/ и прочие win) или Linux. На одной из моих машин уживаются без особых проблем - FreeBSD 4.0 и NT 4.0, а на другой - Redhat 6.02, 98-ые и 2000-ые (NT 5.0). Просто разные ОС можно выбрать из списка или прогрузить нажатием на hotkey-клавишу. Отконфигурить загрузчик в Linux (тот же LILO хотя бы) не сложнее, чем прописать инфу в win`овких boot-файлах.

7. Кроме понтов "у меня ваще шапка стоит!", реальному хакеру не нужен Linux!

Один мой знакомый пытался поставить Слак. Не разобравшись в том, где живет "точка монтирования" и чем отличается Ext2fs от FAT32, он стал прогонять отстой по теме, что не поставил себе пингвина исключительно потому, что супер-пуперс хакерам эта ось на фиг не нужна! Понятно, что в большинстве случаев крики о ненужности линукса от ни разу его не ставившего - пустое и обсуждения недостойное дело >:). Лучше припомнить, сколько ценного хакерского софта прописано исключительно под *nix или компилируется/используется с большим комфортом в этой ОС. Ты когда-нибудь видел сканер WUFTPD 2.6.0, QPOP 2.53 под винды? Да и большинство win-реализаций военных эксплойтов, вроде smurf.c/land.c/портсканер scan.c, на порядок хуже их оригинальных *nix-релизов. Я и не говорю про преимущество юниксовых компиляторов, вроде gcc, перед виновыми... Если есть какие-то сомнения - просмотри постинги Bugtraq`a с инфой о вышедших эксплойтах и убедись.

8. Все хакеры пользуются Linux, а сраные ламосы - WINDOWS! Ламосы MUST DIE!

Миф, противоположный предыдущему. Вот уж, мама дорогая, сложился нелепый стереотип... в понимании "настоящих" хакеров :). Если уж делать опровержение сказанного, то стоит начать с самих хакеров - точнее с того, какие ОС у них в фаворе. Так вот, правда в том, что в узких кругах рассматриваемых ребят Linux имеет тот же авторитет, как Windows 98 перед Windows NT 4.0/5.0: облегченная игрушка для детей. Т.е. Linux, по сути, не является хакерской ОС на фоне FreeBSD, OpenBSD, NetBSD, Солярки, etc. Была даже известная карикатура, где черт OpenBSD пялит пингвина или разрывает его своим злобным трезубцем в другой интерпретации =). Если у человека стоит win вместо *nix`a - это не значит, что он лам, как и не значит обратное: существует масса людей, повязанных с виндой рабочим софтом, специфическим железом, объективно не потребных в Linux`e. А если человек и поставил Линух - это говорит лишь о том, что он внимательно прочитал факин мануаль ;). Существует огромное количество юзеров, которые криво маунтят, устанавливают левые сервисы и проги, неумело настраивают ipchains`ы, в результате чего попадаются как дети >:). Ну не поднимается рука противопоставить их "ламерам", искусно пользующимся виндами... Как говорится у админов: "Главное не что админится, а кем и как!".

9. Nafig mne Linux: tam netu russkih bukv! :(((

Очень популярная байка! Ужасы рассказывают про e-mail клиенты, в которых русские буквы шифруются, IRC, где дрякозяблы пляшут, текстовые редакторы с зюзюками... Действительно, нерусифицированные оригинальные Linux`ы в большинстве случаев не поддерживают кириллицу по дефолту и требуют ручной, и не очень, русификации. Но русифицирование консоли, X-windows, офисного софта, IRC/e-mail клиентов достаточно просто. И имеется 1001 одна дока howto по этому вопросу (даже Х писал об этом неоднократно). А для тех, кого ломает учить русскому пингвина ручками, предусмотрено несколько локализованных "русских" дистрибов - Black Cat, Linux Mandrake Russian edition, русифицированный "Star office" и т.д. Установив такого пингвинчика, тебе не придется кричать в чате: Pishite po eng! Ja ne vizhu russkih bukv!!! :).

10. Линух слишком сложен для меня!
I`m too chicken to install linux :(.

Бытует мнение, что система сложна до чертиков (чертиков BSD, очевидно ;)) как в настройке, так и в дальнейшем пользовании. Так вот: могу утверждать, что для человека, проработавшего не менее двух лет в другой ОС, не будет проблемой пересесть на крепкие плечи пингвина Тукса =). Сложности при первых шагах возникают, в основном, в трех-четырех метафизических состояниях: загрузка-установка Linux, попадание/навигация в text-mode вместо привычных окошек, русификация и проблемы с настройкой dial-up`a. Если морально подготовить себя к этим и другим проблемам (которые, в основном, подробно разрешены в горячо любимых FAQ`ах), то можно смело ставить на закачку кернел и сопутствующие или вставлять одноглазого в ненасытный CD-ROM :). P.S. Название данной статьи не оригинально: на сайте дистрибутива Linux Black Cat (www.blackcatlinux.com) имеется точно такая же директория. Разность лишь в том, что тамошние мифы разрушаются исключительно с лозунгом "Ставь! Ставь! Ставь скорее наш Линукс!". Я же хотел показать проблему не столь однобоко, открыв также слабые стороны пингвина, развеяв миф о его крутости и недоступности (ишь, мессия нашелся, учить он нас тут правде будет! =)). Помни, что это не более чем обычный клон *nix, просто другая ОС, а вовсе не религия, как это пытаются подать юзеру. Ну все, удачи, пойду помолюсь :)
 

SrDEN

IPv6
Команда форума
WebVoice
Статья: Top 10 ошибок конфигурации *nix
Автор: Крис Касперски ака мЫщъх
Источник: www.xakep.ru


Установить Linux/BSD - не проблема, инсталлятор все сделает за нас, а вот правильно настроить систему, чтобы ее тут же успешно не атаковали хакеры, удается далеко не каждому. Проанализировав ситуацию, мыщъх отобрал десяток наиболее распространенных ошибок, допускаемых не только начинающими, но и матерыми юниксоидами.

Все видели логотип на главной странице OpenBSD? «Всего лишь две удаленных уязвимости в конфигурации по умолчанию за десять лет промышленной эксплуатации». Означает ли это, что, установив OpenBSD на свою машину, мы можем ничего не опасаться? Нет и еще раз нет!

Несмотря на то что в xBSD и особенно в Linux имеется достаточное количество дыр, под которые написано множество эксплойтов, большинство атак совершается не через них (хотя и через них тоже), а «благодаря» грубым ошибкам конфигурации, допущенным администратором. Это справедливо как для серверов, так и для рабочих станций, однако серверы имеют свою специфику: здесь доминируют дыры в PHP/Perl-скриптах, SQL-injecting и т.д. Об этом уже неоднократно говорилось на страницах нашего журнала, так что оставим серверы в покое (о них есть кому позаботиться) и сосредоточимся на рабочих станциях обычных пользователей, которые обучаются методом тыка и совершенно не знакомы с тактикой ведения боя против хакеров.

1. Использование одинаковых паролей
Как ни печально, но большинство пользователей, выбрав себе пароль, используют его везде, где только можно: на вход в систему, для доступа к почтовому ящику, при регистрации на различных форумах и других сетевых ресурсах, забывая о том, что во всех этих случаях пароли передаются в открытом виде и могут быть выловлены любым снифером или путем отправки фальшивого ответа от имени DNS-сервера, перенаправляющего жертву на узел злоумышленника (подробнее об этом рассказывается в пункте 4). Также не стоит забывать о том, что хакер может заманить жертву на свою страничку, под тем или иным предлогом требующую регистрации (например, для записи в гостевой книге), или предложить бесплатный почтовый сервис.

С другой стороны, удержать в голове целую кучу паролей практически невозможно, особенно если они не вводятся с клавиатуры каждый раз, а автоматически подставляются программой. Но за это удобство приходится платить, и через некоторое время пароли начисто забываются. Что делать? Как быть? Записывать пароли? Так ведь это не выход. Если листок со списком паролей спрятать в секретном месте, то при выходе в сеть с чужой машины он все равно не поможет, а хранить пароли в записной книжке слишком рискованно. Мир не без любопытствующих товарищей! Никому доверять нельзя, а бумаге - тем более.

Некоторые используют довольно хитрый трюк: слегка видоизменяют пароли или включают в пароль имя ресурса. Например, используем в качестве базового пароля «rfn3g1k-h», добавляя к нему 1nb0x при регистрации почтового ящика на inbox.ru или 030n при создании аккаунта в интернет-магазине www.ozon.ru.

2. Установка открытого proxy
Proxy-серверы на рабочих станциях встречаются намного чаще, чем можно подумать. Во-первых, с кэшированием web-страничек они справляются лучше, чем браузеры. К тому же, при использовании нескольких браузеров (равно как и браузеров, запускаемых из-под разных пользователей) каждый из них ведет свой кэш, что не только нецелесообразно, но и неэкономично! При отключении в настройках браузеров использования локального кэша (кстати говоря, работа Горящего Лиса после этого заметно ускоряется) proxy позволяет взять кэширование на себя. Во-вторых, proxy может решить проблему совместного доступа в интернет для всех членов семьи и виртуальных машин (типа VM Ware). В-третьих, многие устанавливают proxy-сервер просто «на всякий случай», даже не разобравшись, что это за штука и нужна ли она им или нет.

При этом по умолчанию proxy-сервер обычно доступен всем желающим, и такие желающие находятся достаточно быстро ;). Какой резон в использовании чужого proxy? Начнем с того, что большинство интернет-провайдеров либо вообще не тарифицируют внутрисетевой трафик, либо продают его значительнее дешевле, чем внешний. Таким образом, отыскав свободный proxy внутри сети провайдера, хакер кидает жертву на бабки. Или, что еще хуже, совершает через него атаку, оставляя в логах чужой IP.

Некоторые переводят proxy на нестандартные порты, надеясь, что «там» хакеры их не найдут. Наивные! Ведь хакеры ищут не вручную, а через сканеры. Другие предпочитают закрывать доступ на proxy паролем, что в смысле защищенности выглядит блестящим решением, но, к сожалению, на сегодняшний день далеко не все прикладные программы поддерживают функцию авторизации. Для отсечения всех «левых» хакеров достаточно использовать привязку к внутренним сетевым интерфейсам и IP-адресам. Это достаточно надежный способ защиты, хотя и существует ряд атак, позволяющих его обойти.

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

# vi /etc/pf.conf

ext_if = "fxp0"
int_if = "fxp1"

table <clients> { 192.168.1.2/32, 192.168.1.3/32, 192.168.1.9/32 }
table <no_cache> { 192.168.1.0/24, 192.168.2.0/24 }

nat on $ext_if inet from <clients> to any -> $ext_if
rdr on $int_if inet proto tcp from <clients> to ! <no_cache> \
port www -> 127.0.0.1 port 3128

3. Включение поддержки IPv6
Поддержка IPv6 в BSD и Linux появилась не вчера и даже не позавчера, между тем IPv6-стек все еще остается сырым и подверженным целому спектру атак: от отказа в обслуживании до захвата управления машиной, причем реально в нашей стране IPv6 никому не нужен. Сегодня с ним можно разве что поиграться, да и то, в основном, на серверах, а не на рабочих станциях. Пройдет немало лет, прежде чем протокол IPv6 окажется востребованным, но и тогда останется возможность работы через древний IPv4. Так что нет никаких оснований держать IPv6 на своей машине, подвергая ее ненужному и совершенно неоправданному риску хакерской атаки.

Выбор протокола IPv6 осуществляется на стадии установки, и в дальнейшем отказаться от него без перекомпиляции ядра не так-то просто, однако существует более простой путь — заблокировать весь IPv6-трафик на брандмауэре. Для этого на xBSD-системах в правила файрвола достаточно добавить следующую строчку:

# vi /etc/pf.conf

block quick inet6 all

4. DNS на UDP
DNS-протокол, по умолчанию работающий с использованием UDP, небезопасен, и хакер может перенаправить нас на свой узел, просто отправив фейковый ответ от имени DNS-сервера. Чтобы этого не произошло, необходимо общаться с DNS-сервером только по TCP-протоколу. Это чуть медленнее, зато намного надежнее, поскольку, в отличие от UDP, TCP работает с установкой соединения, включающей в себя операцию «рукопожатия», то есть просто так отправить TCP-пакет с поддельным IP-адресом в заголовке нельзя, как минимум требуется угадать идентификатор последовательности, чтобы подделать все остальные пакеты.

Проще всего это сделать путем блокировки всего UDP-трафика на 53 порту, однако если DNS-сервер провайдера не поддерживает работу через TCP (как, например, djbdns), то мы не сможем разрешать доменные имена вообще, что очень нехорошо. А почему бы не установить свой собственный локальный DNS-сервер? Как показывает практика, DNS-серверы большинства провайдеров тормозят со страшной силой и гораздо выгоднее обращаться к корневым DNS-серверам, это, к тому же, еще и безопаснее. BIND входит в поставку практически любого дистрибутива (смотри man named) и уже содержит все необходимое, в том числе и адреса корневых DNS-серверов, прописанные в конфигурационных файлах. Для большей надежности рекомендуется задействовать цифровую подпись, установив параметр auth-nxdomain конфигурационного файла named.conf в значение yes.

5. Запуск подозрительных программ под root'ом
Считается, что вирусов под Linux/BSD не существует. Это неверно. Вирусы есть, просто они не получили большого распространения в силу низкой распространенности самих Linux/BSD, а также того факта, что нормальные люди сидят не под root'ом, а под простым пользователем, не имеющим права модификации уже установленных исполняемых файлов. Тем не менее, если запустить вирус под root'ом, он сможет такого натворить... Причем это относится не только к запуску, но и к компиляции! А точнее к сборке исходных текстов утилитой make, обрабатывающей Makefile, который может включать в себя команды операционной системы, предоставляющие хакеру неограниченную власть над машиной.

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

6. Использование Горящего Лиса
Лис считался надежным браузером лишь до тех пор, пока на него никто не обращал внимания, но теперь по количеству обнаруженных дыр он вплотную приближается к печально известному IE. И хотя массовых атак на Лиса пока отмечено не было, это не значит, что можно и дальше спокойно бродить с ним по Сети. Беспечная жизнь закончилась. Лис уже отхватил солидную долю рынка, что делает его весьма соблазнительной мишенью для хакеров. Даже оперативная установка самых свежих заплаток не гарантирует безопасности!

К счастью, помимо Лиса, есть и другие браузеры, например, Konqueror, интегрированный в KDE, а также текстовой браузер Lynx (входящий в большинство дистрибутивов по умолчанию), которым очень любит пользоваться мыщъх.

7. Использование готового ядра без перекомпиляции
Большинство эксплойтов, использующих дыры в ядрах Linux и BSD, содержат в себе жестко прошитые (hardcoded) адреса машинных команд, изменяющиеся от версии к версии и, естественно, при перекомпиляции.

Ядро из коробки довольно предсказуемо, и атакующий может без труда установить, какой именно байт передаваемых данных затирает адрес возврата и чем его необходимо заменить, чтобы передать управление на shell-код. В большинстве случаев его заменяют адресом машинной инструкции jmp esp. А если выполнение в стеке запрещено, то выделяют блок памяти посредством вызова malloc() с последующей установкой атрибутов исполнения через функцию mprotect() и копирования shell-кода на новое место обитания функцией memcpy(). Естественно, адреса всех этих функций атакующий должен знать заранее, иначе у него ничего не получится. Уязвимая программа выбросит исключение, которое будет отловлено ядром, и если программист не предусмотрел специальной обработки критических ситуаций, программа завершится в аварийном режиме. То есть дальше банального DOS'а хакер не продвинется.

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

8. Неудаленный map-файл
Файл System.map (обычно располагающийся в каталоге /boot) включает в себя символьную информацию о глобальных переменных и функциях, экспортируемых ядром, и широко используется руткитами, которые прячут от глаз администратора враждебные файлы, процессы и сетевые соединения. И хотя достаточно многие руткиты могут находить необходимые им функции и без System.map'a, его удаление существенно уменьшает вероятность успешного проведения атаки. В «мирных целях» System.map нужен разве что отладчикам, да некоторым низкоуровневым программам. На всякий случай, чтобы потом не перекомпилировать ядро (а System.map создается именно при перекомпиляции ядра), скопируй его в надежное место (например, на внешний носитель) или просто переименуй во что-то менее «напряженное».

9. Отсутствующие директории в lib
Порядок поиска динамических библиотек задается системной переменной LD_LIBRARY_PATH, значение которой берется из конфигурационного файла /etc/ld.so.config, перечисляющего директории с динамическими библиотеками. В корректно установленной системе право создания новых файлов в этих директориях имеет только root. Это логично, поскольку в противном случае любой желающий смог бы добавить свою зловредную библиотеку в вышестоящую директорию, да так, чтобы она загружалась вместо оригинала. Некоторые инсталляторы (например, установщик Knoppix'а) прописывают в файле /etc/ld.so.config пути к несуществующим директориям. Казалось бы, ну что тут такого? Мелочь... На самом деле, это огромная дыра в безопасности, поскольку для создания директорий иметь права root'а совершенно не обязательно, и в них можно размещать библиотеки-спутники, работающие по принципу вирусов-спутников, известных еще со времен MS-DOS. Открой файл /etc/ld.so.config и удали из него все несуществующие пути, если таковые там присутствуют.

10. Игнорирование битов NX/XD
Долгое время x86-процессоры поддерживали только два атрибута защиты на уровне страниц: атрибут доступности и атрибут записи. Атрибут исполнения кода поддерживался только на уровне селекторов, и практически все *nix-подобные системы размещали стек, код, данные и кучу в едином адресном пространстве, доступном для исполнения.

Несмотря на то что функция mprotect() поддерживает четыре атрибута защиты: PROT_NONE, PROT_READ, PROT_WRITE и PROT_EXEC, на аппаратном уровне атрибут PROT_EXEC является синонимом атрибута PROT_READ, то есть если страницу можно прочитать, то с тем же успехом ее можно и исполнять. Этой дырой воспользовались хакеры, размещая исполняемый код в стеке, и хотя было предложено множество защитных комплексов, размещающих стек в неисполняемой области памяти, все они были глючными и ненадежными.

Настоящая революция наступила только с появлением в процессорах Intel и AMD новых атрибутов защиты в каталогах страниц, называемых NX (Not eXecutable) и XD (eXecutable Disabled). Последние версии Linux/BSD поддерживают эти биты в том или ином виде, но поскольку ряд честных программ (и прежде всего, runtime-компиляторов, транслирующих код «на лету» прямо в память) нуждается в исполняемом стеке, по умолчанию защита выключена во всех системах, кроме OpenBSD.

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