Міжмережевий екран

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

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

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

Деякі мережеві екрани також дозволяють здійснювати трансляцію адрес - динамічну заміну внутрішньомережевих адрес або портів на зовнішні, що використовуються за межами ЛОМ.

Інші назви

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

Файрволл, файрвол, файервол, фаєрвол - утворено транслітерацією англійського терміна firewall, еквівалентного терміну міжмережевий екран, в даний час не є офіційним запозиченим словом в російській мові немає.

Різновиди мережевих екранів

Мережеві екрани підрозділяються на різні типи залежно від таких характеристик:

  • Чи забезпечує екран з'єднання між одним вузлом і мережею або між двома або більше різними мережами;
  • Чи відбувається контроль потоку даних на мережевому рівні або більш високих рівнях моделі OSI;
  • Відстежуються чи стану активних сполук чи ні.

Залежно від охоплення контрольованих потоків даних мережеві екрани поділяються на:

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

Вироджений випадок - використання традиційного мережевого екрану сервером, для обмеження доступу до власних ресурсів.

Залежно від рівня, на якому відбувається контроль доступу, існує поділ на мережеві екрани, що працюють на:

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

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

  • Stateless (проста фільтрація), які не відслідковують поточні з'єднання (наприклад, TCP), а фільтрують потік даних виключно на основі статичних правил;
  • Stateful packet inspection (SPI) (фільтрація з урахуванням контексту), з відслідковуванням поточних з'єднань та пропуском тільки таких пакетів, які задовольняють логіці й алгоритмам роботи відповідних протоколів і додатків. Такі типи мережних екранів дозволяють ефективніше боротися з різними видами DoS-атак та уразливими місцями деяких мережевих протоколів. Крім того, вони забезпечують функціонування таких протоколів, як H.323, SIP, FTP і т. п., які використовують складні схеми передачі даних між адресатами, що погано піддаються опису статичними правилами, і, найчастіше, несумісних зі стандартними мережевими екранами.

Функції мережевих екранів

• Фільтрація пакетів. Це одна з трьох загальновідомих функцій мережевого екрану. У цьому випадку виконуються зовсім прості функції (фактично як у спеціалізованого маршрутизатора), які полягають у перегляді заголовка кожного пакету та перевірки ІР адреси та порта на правильність. Наприклад, пакет, який передається в Інтернет, але має локальну адресу призначення, блокується. Ця функція присутня у всіх сучасних мережевих екранах і відрізняється високою швидкодією та відсутністю необхідності діалогу з користувачем.

• Проксі сервер. Це друга загальновідома функція. Різниця між проксі сервером та фільтрацією пакетів полягає в тому, що проксі сервер вимагає, щоб всі сеанси зв’язку встановлювались через нього, а не напряму. Отримавши дані, проксі сервер відсилає їх далі від свого імені, а отримавши відповідь, пересилає її потрібному комп’ютеру внутрішньої мережі. Як можна здогадатись, продуктивність не є такою ж високою, як при фільтрації пакетів, але достатньою, оскільки відбувається тільки заміна заголовка пакета. Головною перевагою проксі сервера є те, що він приховує справжні адреси ваших комп’ютерів, замінюючи їх на свою. Це унеможливлює атаку на конкретний комп’ютер в підмережі.

• Проксі сервер програм. Це третя функція. Цей різновид проксі сервера відрізняється “розумінням” протоколів програм, що ведуть передачу даних. Хороший приклад такого сервера –поштовий сервер. Проксі сервер програм може проводити ідентифікацію користувачів, а не тільки покладатись на ІР адресу, в деяких випадках можливе виявлення передавання вірусів та іншого шкідливого коду. Це все звичайно потребує набагато більших обчислювальних потужностей, а також в більшості випадків вимагає значного перенастроювання робочих станцій, через що втрачається прозорість роботи мережевого екрану.

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

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

• Керування. Для персональних мережевих екранів основна характеристика – зручність їхнього налаштування. Керування міжмережними екранами здебільшого відбувається дистанційно (використовуючи HTML інтерфейс чи інший), що потребує впевненості в надійності авторизації та каналу зв’язку.

Можливості реалізації мережевого екрану в Windows

Netuser.gif

Netkernel.gif

Розглянемо можливі варіанти реалізації фільтрації мережевого трафіку. Для цього можна використати два принципово різні підходи: фільтрація на рівні прикладних програм та фільтрація на рівні ядра.

Фільтрація на рівні прикладних програм

Такий спосіб фільтрації накладає певні обмеження, так як не забезпечує обов’язкового перегляду всієї інформації, що передається мережевою підсистемою, оскільки програма, при потребі, може напряму звертатися до інтерфейсу TDI, оминаючи Windows Sockets. Але у зв’язку з простотою реалізації цей метод варто розглянути.

• Winsock Layered Service Provider (LSP). Цей метод полягає у перехопленні викликів прикладних програм функцій з бібліотеки сокетів. Крім цього, він дозволяє ідентифікувати процес, який ініціалізував виклик. LSP можна використати для реалізації таких задач як QOS (Quality Of Service), шифрування потоків даних тощо. Але цей метод зовсім не підходить для захисту від вірусів і їм подібного, оскільки TCPIP.sys можна викликати оминаючи Windows Sockets, використовуючи TDI. Також цей спосіб зовсім не підходить для фільтрації пакетів на маршрутизаторі, оскільки вона виконується драйвером протоколу, а деколи не доходить і до нього.

• Windows 2000 Packet Filtering Interface. Цей метод можна використовувати тільки в операційних системах Windows класу сервер версії 2000 або вище. Він полягає у встановленні прикладною програмою набору фільтрів (ІР адреса та порт), на основі яких операційна система здійснює фільтрацію пакетів.

• Заміна Winsock DLL. Як можна зрозуміти з назви, цей спосіб полягає у заміні бібліотеки winsock.dll на свою. Враховуючи сучасні можливості фільтрації пакетів в Windows, цим методом слід користуватись в останню чергу, оскільки використання своєї бібліотеки може призвести до нестабільності системи.

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

Фільтрація на рівні ядра

Фільтрація на рівні ядра перш за все означає написання драйвера з подальшим введенням в нього необхідної функціональності, відповідно до вибраного способу реалізації фільтрації. • Kernel-mode sockets filter. Цю технологію можна використовувати для Windows NT/2000/XP. Вона полягає у перехопленні всіх викликів з msafd.dll (найнижча з user-mode бібліотек Windows Sockets) до модуля ядра afd.sys (TDI-клієнт, kernel-частина зі складу Windows Sockets). Цей метод заслуговує на увагу, але його можливості не набагато ширші від LSP.

• TDI-filter. Цю технологію можна використовувати у всіх 32 розрядних версіях Windows, хоча конкретні реалізації відрізняються. А полягає цей метод у написанні драйвера, який розташується безпосередньо над драйвером ТСР/ІР, таким чином фільтруючи всі дані, що передаються від нього вищим рівням. Це досить відомий спосіб фільтрації і використовується у ряді комерційних мережевих екранів. Однак його можна використовувати тільки для персональних мережевих екранів (з вищезгаданих причин).

• NDIS Intermediate Driver. Microsoft передбачила цей клас драйверів якраз для потреб подібних нашим. Однак їх функціональність в операційних системах Windows 98/Me/NT залишає бажати кращого, а в Windows 95 вони взагалі відсутні. Крім цього, ці драйвери дуже незручні в інсталяції для кінцевого користувача.

• Windows 2000 Filter-Hook Driver. Цей метод можна використовувати в операційних системах Windows 2000 і вище. Полягає він у написанні драйвера, який реєструє callback функцію для фільтрації пакетів.

• NDIS Hooking Filter Driver. Якщо коротко, то цей метод зводиться до перехоплення деякої підмножини функцій бібліотеки NDIS. В подальшому за допомогою цих функцій можна відслідковувати реєстрацію всіх протоколів, встановлених в операційній системі, і відкриття ними мережевих інтерфейсів. Серед переваг даного методу слід також згадати легкість інсталяції та прозору роботу з Dial-Up інтерфейсами.