среда, 30 января 2019 г.

Почему все думают, что современный межсетевой экран - это просто?

Мало кто из современных сетевых специалистов изучает как же на самом деле работает межсетевой экран. Это приводит к странным ситуациями. Часто сталкиваюсь в тендере с тем, что заказчик не понимает разницы между межсетевыми экранами разных типов. Очень часто человек считает, что если включить все что заложено в межсетевом экране, то производительность останется такой же (как?!). Причем людям пофигу какой сложности алгоритм они хотят заставить делать процессор: антивирус с миллионами сигнатур, IPS с тысячами сигнатур, расшифрование SSL для 10000 человек с ключами RSA 2048 бит и AES 256, разбор и выковыривание трафика только из SMTP или еще из POP3 и IMAP или SMB - человеку из отдела закупок кажется, что все это бесплатно делает процессор и ему ничего не стоит делать это на скорости 1 гигабит. Прямо как в притче: "А из этой шкуры сошьете 7 шапок?"

Типовая проблема: сравнение межсетевого экрана который проверяет
  • либо только заголовки пакетов TCP/UDP/ICMP (инспекция 4 уровня OSI ISO)
  • либо полностью весь трафик, включая файлы внутри приложений (инспекция всех уровней модели OSI ISO) 
Когда со мной разговаривает человек с высшим техническим образованием и считает, что скорости должны быть равны, то я задаю простой вопрос:
Проверьте на себе: что вы быстрее прочитаете: заголовок книги или всю книгу? 

Логично, что то же самое и с вычислительной машиной (ЭВМ) - ей тоже, нужно время, чтобы прочитать всю книгу, то есть все содержимое трафика. А там еще простите листики (пакеты) нужно собрать, а эти пакеты еще и приходят в разном порядке (для тех кто хоть раз держал в руках сниффер это ясно). Различие между скоростью одной и той же ЭВМ, которая анализирует только заголовки (L4 Firewall) и весь трафик (L7 firewall) где-то в 10 раз, а бывает и в 100 на сложных для анализа протоколах типа SMB.

Соответственно, если вы хотите устройство L4 на 1Гбит и L7 на 1Гбит, то это будут сильно разные по мощности вычислительные устройства: L7 Firewall должен быть быстрее в 10-100 раз, чтобы прокачать на скорости 1Гбит через себя весь трафик. Понятно, что он дороже стоит. Понятно, что когда в тендер приходит вендор L4 и говорит что он быстрее и дешевле - это все верно на его уровне абстракции. Но вы же понимаете, что чудес не бывает и законы физики нарушить нельзя. Как только вы этого вендора L4 попросите обработать тот же 1Гбит с анализом еще и 5-7 уровня модели OSI ISO, то он станет в 10 раз медленнее. И уже будет 100 Мбит/с. Это конечно же дешевле, чем 1Гбит firewall. Причем должно быть дешевле в 10 раз, а он продал вам всего в 2 раза дешевле. Странно да?
L4 Firewall должен быть в 10 раз дешевле L7 Firewall при одной и той же скорости трафика!

И та же проблема со сравнением числа одовременных сессий - L4 и L7 таблицы состояний занимают в памяти сильно _разное_ число байт. Потому что хранить L4 заголовки - памяти много не нужно. А если вы хотите хранить L7 приложение, внутри которого несколько других L4 TCP сессий, начиная с FTP, где два TCP соединения работает и заканчивая MS Lync, где огромное количество TCP внутри для разных целей, то и буфер вам нужен большей длины. А память не резиновая.
Про это я уже писал тут в деталях Заблуждения о Stateful Inspection: Состояние L4 vs L7