Хеппи энд
Вот и все, что я хотел рассказать о дистрибутивах сегодняшних дней. Подведем итоги. Среди Linux-сборок самый лучший выбор для защищенного хоста – это Gentoo Linux. Если нужно поставить быстро и более-менее качественно сервер и нет знаний или желания самому создавать защиту – Mandrake 10 Official с максимальным уровнем безопасности очень даже неплох. Если ты поклонник демона, твой выбор исключительно OpenBSD – разработчики очень хорошо позаботились о создании секьюрной системы. Для любителей сложных путей – QNX. Ее использование характеризуется отсутствием зависаний сервера, и микроядерная система реального времени гарантирует тебе это.
Мнение эксперта
Антон Карпов, специалист по сетевой безопасности, системный администратор:
Разница между BSD и Linux должна быть понятна каждому: первое есть полноценная ОС, второе – лишь ядро операционной системы. Из-за этого фундаментального различия вариации дистрибуций BSD можно сосчитать по пальцам, тогда как дистрибутивов Linux как собак нерезаных. Что же лучше с точки зрения безопасности? Наверное, имея полное окружение (ядро, userland, демоны, системные утилиты), построить защищенную систему легче, так как проще работать с гармоничным набором исходников, располагающимся в едином дереве (/usr/src) и подгоняемым друг к другу годами. Все же, что можно добавить к ядру Linux, – это патчи, усиливающие его иммунитет. Но помимо этого нужно как минимум озаботиться аудитом многочисленных утилит, необходимых для работы сервера и написанных разными людьми, с разным стилем программирования, подчас с разной идеологией. Поэтому, наверное, security-патчей для ядра Linux огромное количество, однако заслуживающих внимание security-oriented дистрибутивов – много меньше. Максимум, что делают их вендоры, – проводят анализ кода да собирают пакеты компилятором с защитой от переполнения стека. Такие проекты, как privilege separation, system calls enforcement, jail, рождаются либо доводятся до ума именно в BSD-системах (OpenBSD, FreeBSD).
Однако если отойти от классической модели безопасности UNIX в мандатные модели и требовать реализацию MAC, DTE, RBAC, то консервативная BSD здесь безропотно отдает инициативу Linux, в мире которого помимо тех же патчей (SeLinux, RSBAC) существуют целые проекты (Gentoo SeLinux), направленные на построение законченной системы, удовлетворяющей совершенно новому по качеству классу безопасности.
На текущий момент последняя версия QNX – 6.3.
http://www.freebsd.org/ru/index.html – русская версия официального сайта FreeBSD.
OpenBSD представляет собой минимально необходимые компоненты системы, но они предельно стабильны.
Главный плюс Mandrake – простота и доступность.
25 мая 2004 года стал доступен для скачивания десятый релиз Mandrake Linux.
Gentoo Linux взял все лучшее и от BSD – скрипты инициализации и систему портов, и от Linux – простоту и удобство.
Первым стабильным релизом FreeBSD пятой ветки станет FreeBSD 5.3. Дата выхода – 3 октября 2004 года.
Linux потенциально нарушает 283 патента. Линейка BSD пока гораздо спокойней.
Решающую роль в создании безопасного хоста всегда играют знания администратора, а не ОС, используемая на сервере.
Взлом
Атака интеллекта / Обзор удаленных и локальных атак
Обзор удаленных и локальных атак
Грамотный взломщик никогда не ограничивается одной неудавшейся атакой. Он пытается найти конкретный подход к серверу. В большинстве случаев ему это удается. А все потому, что он знаком со большинством видов атак и последовательно перебирает их, пока, наконец, несчастный сервер не подчиниться заветной команде.
Типичная ошибка начинающего взломщика заключается в том, что он настойчиво пытается атаковать сервер одним единственным способом (например, WWW-сканированием). Если у него ничего не выходит, злоумышленник ищет новую жертву. А зря, ведь можно было использовать другой вид нападения и в результате получить какие-нибудь права на машине. Число различных атак, которые можно применить к жертве, недалеко от нуля, поэтому придется в поте лица щупать машину на наличие крупных дырок.
Удаленное нападение
Все атаки начинаются с удаленного сбора информации. Сперва хакер не владеет никакими данными о хосте. Но постепенно запас знаний увеличивается, а в голове сетевого партизана появляются какие-то наметки. Выбрать вид нападения – еще то искусство. Сейчас я расскажу об основных удаленных атаках, а также о том, как их правильно осуществить.
Охота за бажными демонами
Первым и, пожалуй, самым излюбленным методом удаленного нападения является атака с применением эксплоита к уязвимому сервису. Но прежде чем атаковать этот уязвимый сервис, его еще необходимо обнаружить. А это не всегда просто сделать. Препятствия могут быть какими угодно – различного рода программы, защищающие тачку от сканирования портов, умные админы, подменяющие баннеры сервисов, настроенный (или частично настроенный) брандмауэр, который режет незванные пакеты. За мою недолгую сетевую жизнь мне приходилось сталкиваться с разными трудностями, но это еще не говорит о неуязвимости демона.
Есть одна хакерская мудрость: лучшее сканирование – ручное сканирование :). Это частично так – скан вручную избавляет от негативного влияния различных антипортсканеров, установленных админом на сервере. Когда мне хочется найти сервер с уязвимым сервисом cvs и пробить его новым эксплоитом, я никогда не буду сканировать весь диапазон портов на машине. Зачем? Я просто выполню команду «telnet victim.com 2401» и проверю наличие демона на тачке. Затем бесшумно запущу сплоит и получу искомый шелл. Если даже сервис пропатчен, никаких следов я не оставил, посему обвинить меня в деструктивных действиях никому не удастся.
Если принято решение сканировать сервер, делать это лучше с безопасного места. Довольно глупо пользоваться различными программами типа LANGuard несмотря на удобство. Если хочется, чтобы провайдер никогда не узнал о факте сканирования (не его, а уделенного сервера), запускай nmap в невидимом режиме на далеком рутшелле. Впрочем, LANGuard оправдывает себя, будучи запущенном на хакнутой Винде в терминальной сессии :).
Бывает, что версия демона отличается от бажной. Тем не менее, стоит попробовать натравить эксплоит на машину, ибо некоторые особо активные сисадмы обожают подменять баннеры своих сервисов. Я уже писал о том, как отличить поддельный баннер от подлинного (XSpeZ OS4Hack), поэтому повторяться не буду.
Использование эксплоита – классический взлом, но часто сетевому партизану не по зубам хакнуть сервер этим способом (к примеру, из-за фаервола). Тогда приходится прибегать к другим, менее благодарным способам взлома. Например, к сканированию web-скриптов.
Кривой скрипт – ключ к серверу
Поняв, что просканировать порты сервера не удается даже вручную, взломщик может обратить внимание на WWW-зону сервера. В 90% случаев порт 80 жертвы будет открытым, а все потому, что цель данного сервера – занятный web-проект, который вполне может содержать дырявые скрипты.
В наше время встретить статический контент сайта очень сложно, поэтому у злоумышленника больше шансов на успех. Бывает, что первоклассный админ возомнит себя web-мастером и напишет такой скрипт, защита которого оставляет желать лучшего. Этим хакер и воспользуется! Однако он должен уметь быстро отличать бажный скрипт от нормального.