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

Что такое Firewall? Эта программная или аппаратная защита компьютера от атаки по сети. Мы будем рассматривать программную реализацию защиты и увидим, как она работает.

Программный сетевой экран - это правила, по которым можно пропускать или не пропускать определенные пакеты через сетевую карту, модем или другое устройство связи. Как же это происходит? Все очень просто, только для начала надо вспомнить сетевую модель 05/(это семь заповедей для любого хакера и программиста сетевых приложений). На рис. 5.1 слева показаны четыре уровня из модели Microsoft, а справа - семь справочных уровней.

5.1. Сетевой экран

Рис. 5.1. Сетевая модель OSI

Каждый пакет при отправке формируется на уровне приложения и опускается до уровня сетевого интерфейса. При этом каждый уровень добавляет к пакету свой заголовок. На приемнике происходит обратный процесс, и пакет поднимается до уровня приложения (от сетевой карты до программы).

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

Схема поступления пакета на компьютер представлена на рис. 5.2.

5.1. Сетевой экран

Рис. 5.2. Получение пакета

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

Если осуществить проверку после разбора (на уровне приложения), то от такой защиты не будет никакой пользы.

В Windows 9х для программиста не имелось возможностей для работы ниже уровня приложений. Из-за этого приходилось прилагать много усилий, чтобы написать "снифферы" или сетевые экраны. Но, начиная с Windows 2000, появились отличные функции для создания правил, по которым можно запретить доступ к компьютеру с определенным адресом (группой адресов) или на отдельный порт своей машины.

Необходимые функции спрятаны в сервисе маршрутизации и удаленного доступа, где есть целый раздел Packet Filtering (фильтрация пакетов). Те, кто владеет английскийским языком, могут почитать про фильтрацию на сайте Microsoft:

http://msdn. microsoft.com/libra ry/default.asp?url=
/libra ry/en-us/rras/rras/packet_filtering_reference.asp

Информации здесь не очень много, но можно найти что-то полезное и интересное.

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

Программирование фильтрации пакетов включает в себя следующие три этапа:

1. Создание нового интерфейса, который будет использоваться для добавления или удаления фильтров к адаптеру. В данном случае слово "интерфейс" относится к фильтрам и не связано с сетевым интерфейсом.

2. Установление правил интерфейса, по которым будет контролироваться доступ.

3. Связывание интерфейса с IP-адресом.

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

Сетевая практика || Оглавление || 5.1.1. Функции фильтрации пакетов


Delphi в шутку и всерьез: что умеют хакеры



Новости за месяц

  • Декабрь
    2021
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31