Брандмауер (FireWall)

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук

Брандмауер

Брандмауер - це система або комбінація систем, що дозволяють розділити мережу на дві або більше частин і реалізувати набір правил, що визначають умови проходження пакетів з однієї частини в іншу (див. рис.1). Як правило, ця межа проводиться між локальною мережею підприємства та INTERNET, хоча її можна провести і всередині локальної мережі підприємства. Брандмауер таким чином пропускає через себе весь трафік. Для кожного пакету, що проходить брандмауер приймає рішення пропускати його або відкинути. Для того щоб брандмауер міг приймати ці рішення, йому необхідно визначити набір правил. Про те, як ці правила описуються і які параметри використовуються при їх описі мова піде нижче.

Pic1.jpg

Як правило, брандмауери функціонують на який-небудь 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Мб ОЗУ і 500 Мб на жорсткому диску.

Як правило, до операційної системи, під управлінням якої працює брандмауер вносяться зміни, мета яких - підвищення захисту самого брандмауера. Ці зміни зачіпають як ядро ОС, так і відповідні файли конфігурації. На самому брандмауері не дозволяється мати рахунків користувачів (а значить і потенційних дірок), лише рахунок адміністратора. Деякі брандмауери працюють тільки в одно-користувацькому режимі. Багато брандмауерів мають систему перевірки цілісності програмних кодів. При цьому контрольні суми програмних кодів зберігаються в захищеному місці і порівнюються при старті програми, щоб уникнути підміни програмного забезпечення.

Функції

Фаєрвол може бути у вигляді окремого приладу (так званий маршрутизатор або роутер), або програмного забезпечення, що встановлюється на персональний комп'ютер чи проксі-сервер. Простий та дешевий фаєрвол може не мати такої гнучкої системи налаштувань правил фільтрації пакетів та трансляції адрес вхідного та вихідного трафіку (функція редиректу).

В залежності від активних з'єднань, що відслідковуються, фаєрволи розділяють на:

  • stateless (проста фільтрація), які не відслідковують поточні з'єднання (наприклад TCP), а фільтрують потік даних виключно на основі статичних правил;
  • stateful (фільтрація з урахуванням контексту), з відслідковуванням поточних з'єднань та пропуском тільки таких пакетів, що задовольняють логіці й алгоритмам роботи відповідних протоколів та програм. Такі типи фаєрволів дозволяють ефективніше боротися з різноманітними DoS-атаками та вразливістю деяких протоколів мереж.

Типи фаєрволів

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

  • Фаєрвол мережного рівня представлений екрануючим маршрутизатором. Він контролює лише дані мережевого і транспортного рівнів (див.Модель OSI) службової інформації пакетів. Мінусом таких маршрутизаторів є те, що ще п'ять рівнів залишаються неконтрольованими. Нарешті, адміністратори, які працюють з екрануючими маршрутизаторами, повинні пам'ятати, що у більшості приладів, що здійснюють фільтрацію пакетів, відсутні механізми аудиту та подачі сигналу тривоги. Іншими словами, маршрутизатори можуть піддаватися атакам і відбивати велику їх кількість, а адміністратори навіть не будуть проінформовані.
  • Фаєрвол прикладного рівня також відомий як проксі-сервер (сервер-посередник).Фаєрволи прикладного рівня встановлюють певний фізичний поділ між локальною мережею і Internet,тому вони відповідають найвищим вимогам безпеки. Проте, оскільки програма повинна аналізувати пакети і приймати рішення щодо контролю доступу до них, фаєрволи прикладного рівня неминуче зменшують продуктивність мережі, тому в якості сервера-посередника використовуються більш швидкі комп'ютери.
  • Фаєрвол рівня з'єднання схожий на фаєрвол прикладного рівня тим, що обидва вони являються серверами-посередниками. Відмінність полягає в тому, що фаєрволи прикладного рівня вимагають спеціального програмного забезпечення для кожної мережевої служби на зразок FTP або HTTP. Натомість, фаєрволи рівня з’єднання обслуговують велику кількість протоколів.

Всі брандмауери можна розділити на три типи:

• пакетні фільтри (packet filter)

• сервера прикладного рівня (application gateways)

• сервера рівня з'єднання (circuit gateways)

Усі типи можуть одночасно зустрітися в одному брандмауері.

Пакетні фільтри

Брандмауери з пакетними фільтрами приймають рішення про те, пропускати пакет або відкинути, переглядаючи IP-адреси, прапори або номер TCP портів в заголовку цього пакету. IP-адресу та номер порту - це інформація мережевого і транспортного рівнів відповідно, але пакетні фільтри використовують і інформацію прикладного рівня, тому що всі стандартні сервіси в TCP / IP асоціюються з певним номером порту.

Для опису правил проходження пакетів складаються таблиці типу:

Дія тип пакету адреса джер. порт джер. адреса признач. порт признач. прапори

Поле "дія" може приймати значення пропустити або відкинути.

Тип пакета - TCP, UDP чи ICMP.

Прапори - прапори із заголовка IP-пакета.

Поля "порт джерела" і "порт призначення" мають сенс тільки для TCP і UDP пакетів.

Сервера прикладного рівня

Брандмауери з серверами прикладного рівня використовують сервера конкретних сервісів - TELNET, FTP і т.д. (proxy server), що запускаються на брандмауері і пропускають через себе весь трафік, що відноситься до даного сервісу. Таким чином, між клієнтом і сервером утворюються два з'єднання: від клієнта до брандмауера і від брандмауера до місця призначення.

Повний набір підтримуваних серверів розрізняється для кожного конкретного брандмауера, однак найчастіше зустрічаються сервера для наступних сервісів:

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

• передача файлів (Ftp)

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

• WWW (HTTP)

• Gopher

• Wais

• X Window System (X11)

• Принтер

• Rsh

• Finger

• новини (NNTP) і т.д.

Використання серверів прикладного рівня дозволяє вирішити важливе завдання - приховати від зовнішніх користувачів структуру локальної мережі, включаючи інформацію в заголовках поштових пакетів або служби доменних імен (DNS). Іншим позитивним моментом є можливість аутентифікації на користувацькому рівні (аутентифікація - процес підтвердження ідентичності якому-небудь в даному випадку це процес підтвердження, чи справді користувач є тим, за кого він себе видає). Трохи докладніше про аутентифікацію буде сказано нижче.

При описі правил доступу використовуються такі параметри як: назва сервісу, ім'я користувача, допустимий часовий діапазон використання сервісу, комп'ютери, з яких можна користуватися сервісом, схеми аутентифікації. Сервера протоколів прикладного рівня дозволяють забезпечити найбільш високий рівень захисту - взаємодія із зовнішнім світом реалізується через невелику кількість прикладних програм, повністю контролюючих весь вхідний і вихідний трафік.

Сервера рівня з'єднання

Сервер рівня з'єднання являє собою транслятор TCP з'єднання. Користувач утворює з'єднання з певним портом на брандмауері, після чого останній виробляє з'єднання з місцем призначення по інший бік від брандмауера. Під час сеансу цей транслятор копіює байти в обох напрямках, діючи як дріт.

Як правило, пункт призначення задається заздалегідь, в той час як джерел може бути багато (з'єднання типу один - багато). Використовуючи різні порти, можна створювати різні конфігурації. Такий тип сервера дозволяє створювати транслятор для будь-якого визначеного користувачем сервісу, що базується на TCP, здійснювати контроль доступу до цього сервісу, збір статистики щодо його використання.

Порівняльні характеристики

Нижче наведені основні переваги і недоліки пакетних фільтрів і серверів прикладного рівня відносно один одного.

До позитивних якостей пакетних фільтрів слід віднести наступні:

• відносно невисока вартість

• гнучкість у визначенні правил фільтрації

• невелика затримка при проходженні пакетів

Недоліки у даного типу брандмауерів наступні:

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

• правила фільтрації пакетів важкі в описі, потрібні дуже хороші знання технологій TCP і UDP

• при порушенні працездатності брандмауера всі комп'ютери за ним стають повністю незахищеними або недоступними

• аутентифікацію з використанням IP-адреси можна обдурити використанням IP-спуфінга (атакуюча система видає себе за іншу, використовуючи її IP-адреса)

• відсутність аутентифікації на користувацькому рівні

До переваг серверів прикладного рівня слід віднести наступні:

• локальна мережа невидима з INTERNET

• при порушенні працездатності брандмауера пакети перестають проходити через брандмауер, тим самим не виникає загрози для захищеності ним машин

• захист на рівні додатків дозволяє здійснювати велику кількість додаткових перевірок, знижуючи тим самим можливість злому з використанням дір у програмному забезпеченні

• аутентифікація на призначеному для користувача рівні може бути реалізована системою негайного попередження про спробу злому.

Недоліками цього типу є:

• вища, ніж для пакетних фільтрів вартість;

• неможливість використання протоколів RPC і UDP;

• продуктивність нижче, ніж для пакетних фільтрів.

Віртуальні мережі

Ряд брандмауерів дозволяє також організовувати віртуальні корпоративні мережі (Virtual Private Network), тобто об'єднати декількох локальних мереж, включених в INTERNET в одну віртуальну мережу. VPN дозволяють організувати прозоре для користувачів підключення локальних мереж, зберігаючи секретність і цілісність інформації, що передається за допомогою шифрування. При цьому при передачі по INTERNET шифруються не тільки дані користувача, але і мережева інформація - мережеві адреси, номери портів і т.д.

Схеми підключення

Для підключення брандмауерів використовуються різні схеми. Брандмауер може використовуватися як зовнішній роутер, використовуючи підтримувані типи пристроїв для підключення до зовнішньої мережі (див. рис. 1). Іноді використовується схема, зображена на рис 2, однак нею слід користуватися тільки в крайньому випадку, оскільки потрібно дуже обережна настройка роутерів і невеликі помилки можуть утворити серйозні діри в захисті.

Pic2.jpg

Якщо брандмауер може підтримувати два інтерфейсу Ethernet (так званий dual-homed брандмауер), то найчастіше підключення здійснюється через зовнішній маршрутизатор (див рис. 3).

Pic3.jpg

При цьому між зовнішнім роутером і брандмауером є тільки один шлях, яким іде весь трафік. Зазвичай роутер налаштовується таким чином, що брандмауер є єдиною видимою зовні машиною. Ця схема є найкращою з точки зору безпеки і надійності захисту. Інша схема представлена на рис. 4.

Pic4.jpg

При цьому брандмауером захищається тільки одна під мережа з декількох вихідних з роутера. У незахищеній брандмауером області часто мають у своєму розпорядженні сервери, які повинні бути видимі зовні (WWW, FTP і т.д.). Деякі брандмауери пропонують розмістити ці сервери на цьому самому - рішенні, далеко не краще з точки зору завантаження машини та безпеки самого брандмауера

Існують рішення (див рис. 5), які дозволяють організувати для серверів, які повинні бути видимі зовні, третю мережу; це дозволяє забезпечити контроль за доступом до них, зберігаючи в той же час необхідний рівень захисту машин в основній мережі.

Pic5.jpg

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

Адміністрування

Легкість адміністрування є одним з ключових аспектів у створенні ефективної і надійної системи захисту. Помилки при визначенні правил доступу можуть утворити дірку, через яку може бути зламана система. Тому в більшості брандмауерів реалізовані сервісні утиліти, що полегшують введення, видалення, перегляд списку правил. Наявність цих утиліт дозволяє також проводити перевірки на синтаксичні або логічні помилки при введенні або редагування правил. Як правило, ці утиліти дозволяють переглядати інформацію, згруповану по якимось критеріям - наприклад, все що відноситься до конкретного користувача або сервісу.

Системи збору статистики та попередження про атаку

Ще одним важливим компонентом брандмауера є система збору статистики і попередження про атаку. Інформація про всі події - відмовах, вхідних, вихідних з'єднаннях, кількість переданих байт, використовуваних сервісах, часу з'єднання і т.д. - накопичується у файлах статистики. Багато брандмауерів дозволяють гнучко визначати підлягають протоколюванню події, описати дії брандмауера при атаках або спробах несанкціонованого доступу - це може бути повідомлення на консоль, поштове послання адміністратору системи і т.д. Негайне виведення повідомлення про спробу злому на екран консолі або адміністратора може допомогти, якщо спроба виявилася успішною і атакуючий вже проник в систему. До складу багатьох брандмауерів входять генератори звітів, які слугують для обробки статистики. Вони дозволяють зібрати статистику по використанню ресурсів конкретними користувачами, з використанням сервісів, відмов, джерел, з яких проводилися спроби несанкціонованого доступу і т.д.

Аутентифікація

Аутентифікація є одним з найважливіших компонентів брандмауерів. Перш ніж користувачеві буде надано право скористатися тим чи іншим сервісом, необхідно переконатися, що він дійсно той, за кого він себе видає (передбачається, що цей сервіс для даного користувача дозволений: процес визначення, які сервіси дозволені називається авторизацією. Авторизація звичайно розглядається в контексті аутентифікації - як тільки користувач аутентифікований, для нього визначаються дозволені йому сервіси). При отриманні запиту на використання сервісу від імені будь-якого користувача, брандмауер перевіряє, який спосіб аутентифікації визначений для даного користувача і передає управління сервером аутентифікації. Після отримання позитивної відповіді від сервера аутентифікації брандмауер утворює запитуване користувачем з'єднання.

Як правило, використовується принцип, що отримав назву "що він знає" - тобто користувач знає якесь секретне слово, яке він посилає серверу аутентифікації у відповідь на його запит.

Однією зі схем аутентифікації є використання стандартних UNIX паролів. Ця схема є найбільш вразливою з точки зору безпеки - пароль може бути перехоплений і використаний іншою особою.

Найчастіше використовуються схеми з використанням одноразових паролів. Навіть будучи перехоплених, цей пароль буде марний при наступній реєстрації, а отримати такий пароль з попереднього є вкрай важким завданням. Для генерації одноразових паролів використовуються як програмні, так і апаратні генератори - останні являють собою пристрої, що вставляються в слот комп'ютера. Знання секретного слова необхідно користувачу для приведення цього пристрою в дію. Ряд брандмауерів підтримують Kerberos - одна з найбільш поширених методів аутентифікації. Деякі схеми вимагають зміни клієнтського програмного забезпечення - крок, який далеко не завжди прийнятний. Як правило, всі комерційні брандмауери підтримують декілька різних схем, дозволяючи адміністратору зробити вибір найбільш прийнятною для своїх умов.

Спеціалізовані пристрої

Персональні фаєрволи

Програмне забезпечення