от Nick Angelow(7-01-2005)

рейтинг (-60)   [ добре ]  [ зле ]

Printer Friendly Вариант за отпечатване

ЗАЩИТНА СТЕНА

http://www.citforum.ru/internet/securities/firewall.shtml


Защитната стена представлява система или комбинация от системи, позволяваща разделянето на мрежата на две или повече части и реализирането на набор от правила, определящи условията за преминаване на пакетите от едната част на мрежата към другата (фигура 1). Като правило, тази граница се прокарва между локалната мрежа и INTERNET, макар че е възможно да бъде прокарана и вътре в самата локална мрежа. По този начин, защитната стена пропуска през себе си целият трафик и за всеки преминаващ пакет взема решение дали да го пропусне или да го отхвърли. За да може защитната стена да взима тези решения, тя трябва да спазва определен набор от правила. За това, как се описват тези правила и какви параметри се използват при тяхното описание ще стане дума по-долу.

Обикновено, защитните стени функционират върху някаква UNIX платформа – най-често BSDI, SunOS, AIX, IRIX или други, по-рядко – DOS, VMS, WNT, Windows NT. От апаратните платформи се срещат INTEL, Sun SPARC, RS6000, Alpha, HP PA-RISC, семейството RISC процесори R4400-R5000. Освен Ethernet, много защитни стени поддържат FDDI, Token Ring, 100Base-T, 100VG-AnyLan, различни серийни устройства. Изискванията към оперативната памет и обема на твърдия диск зависят от количеството машини в защитавания сегмент от мрежата, но най-често се препоръчват не по-малко от 32 MB RAM и 500 MB HDD.

По правило, в операционната система, под управлението на която ще работи защитната стена се правят изменения, целта на които е повишаване на степента на защита на самата защитна стена. Тези изменения засягат както ядрото на операционната система, така и съответните конфигурационни файлове. На самата защитна стена не се позволява да има други потребителски акаунти (което означава по-малко потенциални „дупки“) освен администраторския. Някои защитни стени могат да работят само в еднопотребителски режим. Много защитни стени имат системи за проверка цялостта на програмния код. При това, контролните суми на програмните кодове се съхраняват в защитени места и се сравняват при пускането на програмата за избягване на подмяната на програмно осигуряване.

Защитните стени могат да се разделят на три типа:

Всичките три типа могат да се срещат едновременно в една защитна стена.

ПАКЕТНИ ФИЛТРИ

Защитните стени с пакетни филтри вземат решение дали да пропуснат или отхвърлят даден пакет на основата на IP адрес, различни флагове или номера на TCP портове от заглавната част на пакета. IP адресът и номерът на порта са информация съответно от мрежовия и транспортен слой, но пакетните филтри използват информация и от приложния1 слой, тъй като всички стандартни услуги в TCP/IP се асоциират с определен номер на порт.

За описване на правилата за преминаване на пакетите се съставят таблици от следния вид:

действие

тип на пакета

адрес на източника

порт на източника

адрес на получателя

порт на получателя

флагове

    • Полето "действие" може да приема стойности „пропусни“ или „отхвърли“;

    • Тип на пакета - TCP, UDP или ICMP;

    • Флагове – флаговете от заглавната част на IP-пакета;

    • Полетата "порт на източника" и "порт на получателя" имат смисъл само за TCP и UDP пакети.

СЪРВЪРИ В ПРИЛОЖНИЯ СЛОЙ

Защитните стени, работещи в приложния слой използват сървър за конкретни услуги – TELNET, FTP и други (proxy server), стартирани на защитната стена и пропускащи през себе си целият трафик, имащ отношение към дадената услуга. По този начин, между клиента и сървъра се образуват две връзки – от клиента до защитната стена и от защитната стена до крайното местоназначение.

Пълният набор от поддържаните сървъри се различава при всяка конкретна защитна стена, но най-често се срещат сървъри за следните услуги:

    • терминали (Telnet, Rlogin);

    • предаване на файлове (FTP);

    • електронна поща (SMTP, POP3);

    • WorldWideWeb (HTTP);

    • Gopher;

    • Wais;

    • X Window System (X11);

    • Принтер;

    • Rsh;

    • Finger;

    • USENET (NNTP) и така нататък.

Използването на сървъри в приложния слой позволява да бъде решена една важна задача – скриването от външните потребители на структурата на локалната мрежа, включваща информация в заглавната част на пакетите или на DNS. Друго предимство е възможността за удостоверяване2 на потребителско ниво. Малко по-подробно за удостоверяването ще бъде казано по-надолу в текста.

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

СЪРВЪРИ В ТРАНСПОРТНИЯ СЛОЙ

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

Правило е, местоназначението да се задава предварително, докато източниците могат да бъдат много (връзки от тип един-много). Използвайки различни портове може да създаваме различни конфигурации.

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

СРАВНИТЕЛНИ ХАРАКТЕРИСТИКИ

По-долу са приведени основните предимства и недостатъци на пакетните филтри и сървърите от приложното ниво спрямо един друг:

Към положителните качества на пакетните филтри може да отнесем следните:

    • относително ниска цена;

    • гъвкавост при определяне на правилата за филтриране;

    • ниска латентност при преминаването на пакетите.

Недостатъците на този тип защитни стени са следните:

    • локалната мрежа се вижда (маршрутизира се) от INTERNET;

    • правилата за филтриране на пакетите са трудни за описване, необходимо е много добро познаване на технологията на TCP и UDP;

    • при нарушаване на работоспособността на защитната стена, всички компютри зад нея стават или напълно незащитени или недостъпни;

    • удостоверяването с IP адрес, може да бъде излъгано с използване на IP-spoofing (атакуващата система се представя за друга, като използва нейния IP адрес);

    • липсва удостоверяване на потребителско ниво.

Към предимствата на сървърите от приложния слой трябва да отнесем следните:

    • локалната мрежа не се вижда от INTERNET;

    • при нарушаване работоспособността на защитната стена, пакетите просто престават да преминават през нея, като не подлагат на заплаха машините зад нея;

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

    • с удостоверяване на потребителско ниво може да бъде реализирана система за ранно предупреждение за нарушители.

Недостатъци на този тип стени са:

    • по-високата в сравнение с пакетните филтри цена;

    • невъзможност за използване на протоколите RPC и UDP;

    • по-ниската производителност в сравнение с пакетните филтри.

ВИРТУАЛНИ МРЕЖИ

Освен всичко описано дотук, някои защитни стени позволяват организирането на виртуални корпоративни мрежи (Virtual Private Network) тоест обединяването на няколко локални мрежи, свързани към INTERNET в една виртуална мрежа. Тя позволява организирането на прозрачно за потребителите свързване на локалните мрежи, запазвайки конфиденциалността и цялостта на предаваната информация с помощта на криптография, като при предаване на информацията през INTERNET се криптират не само данните на потребителя, но и мрежовата информация – мрежови адреси, номера на портове и т. н.

СХЕМИ НА ВКЛЮЧВАНЕ

За включване на защитните стени се използват различни схеми. Тя може да се използва като външен маршрутизатор, използвайки поддържаните типове устройства за свързване към външната мрежа (погледни фигура 1). Понякога се използва схемата, показана на фигура 3, но тя трябва да се използва само в краен случай, тъй като изисква много точно конфигуриране на маршрутизаторите и даже дребни грешки могат да предизвикат големи пробиви в защитата.

Ако защитната стена може да поддържа два Ethernet интерфейса (така наречените dual-homed firewall), то най-често свързването се осъществява през външен маршрутизатор (фигура 4).

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

На фигура 5 е представена друга схема,

при която защитната стена защитава само една от няколкото подмрежи, излизащи от маршрутизатора. В незащитената от защитната стена област се разполагат сървърите, които трябва да бъдат виждани отвън (WWW, FTP etc). Някои защитни стени предлагат да разположат тези сървъри на същата машина, на която се намира самата защитна стена, но това е решение, което не е най-добро от гледна точка на натоварване на машината и сигурност на самата защитна стена.

Съществуват решения (фигура 6), позволяващи организирането за сървърите, които трябва да се виждат отвън, на трета мрежа3 – това позволява осигуряването на контрол върху тях, запазвайки в същото време необходимото ниво на защита на машините от основната мрежа



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

АДМИНИСТРИРАНЕ

Лекотата на администриране е един от ключовите аспекти в създаването на ефективна и надеждна система за защита. Грешките при определянето на правилата за достъп могат да доведат до образуване на „дупка“, през която системата да бъде пробита. Затова в повечето защитни стени са реализирани сервизни програми, улесняващи въвеждането, отстраняването и прегледа на наборите от правила. Наличието на такива програми позволява да се извършват и проверки за синтактични или логически грешки при въвеждането или редакцията на правилата. Обикновено, тези програми позволяват преглеждането на информацията, групирана по някакви критерии – например всичко, което се отнася до конкретен потребител или услуга.

СИСТЕМИ ЗА СЪБИРАНЕ НА СТАТИСТИКА И ПРЕДУПРЕЖДЕНИЕ ЗА АТАКИ

Още един важен компонент на защитната стена е системата за събиране на статистика и предупреждение за атака. Информацията за всички събития – откази, входящи и изходящи връзки, брой на предадени байтове, използвани услуги, продължителност на свързване и др., се натрупват във дневниците за статистика. Много защитни стени позволяват гъвкаво да се определят подлежащите на протоколиране събития, описване действията на защитната стена при атаки или опити за непозволен достъп – това може да бъде съобщено на конзолата, да бъде изпратена електронна поща до администратора на системата и др. Незабавното показване на съобщение за опит за пробив на екрана на конзолата или изпращане на писмо до администратора, може да помогне, ако опитът за проникване е бил успешен и атакуващият вече е в системата. В състава на много защитни стени влизат генератори на отчети, използвани за обработка на събраните статистически данни. Те позволяват да се събере статистика за използваните ресурси от конкретни потребители, за използваните услуги, откази, източници, от които са провеждани опити за непозволен достъп и др.

УДОСТОВЕРЯВАНЕ

Удостоверяването (authentication) е един от най-важните компоненти на защитната стена. Преди на потребителя да бъде дадено правото да използва една или друга услуга, трябва да се убедим, че той действително е този, за когото се представя (предполагаме, че тази услуга е позволена за използване от потребителя. Процесът на определяне кои услуги са позволени, се нарича упълномощаване (authorisation). То обикновено се разглежда в контекста на удостоверяването – веднага след като потребителя бъде идентифициран успешно, се определят позволените му услуги). При получаване на заявка за използване на някаква услуга от името на някакъв потребител, защитната стена проверява какъв метод за удостоверяване е определен за този потребител и предава управлението на сървъра за удостоверяване. След получаване на положителен отговор, защитната стена образува поисканата от потребителя връзка.

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

Една от схемите за удостоверяване използва стандартните пароли в UNIX, но тя е най-уязвима от гледна точка на сигурността – паролата може да бъде прехваната и използвана от чужди хора.

Най-често се използват схеми с еднократни пароли. Даже и да бъдат прехванати, тези пароли ще бъдат безполезни при следващата регистрация, а получаването на следващата парола от вече прехванатата е извънредно трудна задача. За генериране на еднократни пароли се използват както програмни, така и апаратни генератори – последните представляват устройства, монтирани в свободен слот на компютъра. За пускане на такова устройство в действие е необходимо потребителят да знае съответната парола. Редица защитни стени поддържат Kerberos – един от най-разпространените методи4 за удостоверяване. Някои схеми изискват промени в клиентското програмно осигуряване – стъпка, която не винаги е приемлива. Като правило, комерсиалните защитни стени поддържат няколко различни схеми, даващи на администратора възможност за избор на най-приемливата за неговите условия.


превод: Николай Ангелов

художник и редактор: Николай Попов

1 мрежовият, транспортният и приложният слой са части от модела OSI, който представлява общ комуникационен модел по отношение на различните нива на комуникация със седем слойна структура

2 в дадения случай удостоверяването е процес на потвърждаване дали потребителя наистина е този, за който се представя

3 често наричана DMZ – демилитаризирана зона

4 тук авторите малко объркват термините – kerberos не е метод, а протокол за удостоверяване. тези, които искат да научат повече за него, могат да започнат от „Kerberos FAQ, v2.0



<< За авторското право ... | NT vs UNIX от гледна точка на сигурността >>