Все брандмауэры имеют правила (или политики). Наиболее распространенное правило брандмауэра по умолчанию следующее: разрешать все выходы, но запрещать любые неопределенные входящие подключения, которые ранее не были созданы исходящим подключением. Самые безопасные брандмауэры также ограничивают любой ранее неопределенный исходящий трафик. К сожалению, когда применяются чрезмерно строгие правила, это часто приводит к слишком серьезному прерыванию работы или управления, и поэтому большинство разработчиков используют наиболее распространенное правило по умолчанию.
Брандмауэры можно размещать на уровне сети или непосредственно на узлах компьютеров.
Традиционно большинство брандмауэров расположены как сетевые устройства между двумя или более сегментами сети. Изменилось только то, что количество управляемых сегментов увеличилось до такой степени, что некоторые брандмауэры могут управлять десятками сегментов одновременно. Современные новые программно-определяемые сети (SDN) содержат некоторые компоненты пересылки пакетов, которые могут напрямую отследить их происхождение до традиционных брандмауэров.
Многие люди считают, что даже защищенной брандмауэром сети нельзя доверять. Чесвик сказал, что внутри периметра сетевого брандмауэра находится «мягкий центр». Он также говорил, что мы должны убедиться, что все наши хосты (узлы) надежно настроены и защищены, чтобы уберечь себя от вещей, которые проходят через периметр сетевого брандмауэра.
Брандмауэры в узлах могут с этим помочь. Обычно они работают на уровне сети и пакетов, но часто имеют дополнительные возможности, поскольку интегрированы с хостом и его операционной системой. Например, брандмауэр Windows можно легко настроить как для отдельных служб, так и для пользователей и групп. Windows поставляется со встроенными почти ста правилами брандмауэра, которые включены операционной системой, даже если вы отключите управляемое пользователем программное приложение.
Многие специалисты по ИБ полагают, что каждый хост должен быть в состоянии только связаться с другими четко определенными хостами, следуя, по существу, очень безопасным, строгим правилам брандмауэра, которые определяют точно, какой трафик существует между хостами. Этот вид ультрагранулированного управления считается святым Граалем брандмауэров. К сожалению, сложность и управление такими межсетевыми экранами делает маловероятным их широкое масштабирование, выходящее за рамки некоторых небольших сверхбезопасных сценариев.
Расширенные брандмауэры существуют уже несколько десятилетий и обычно ссылаются на функции, которые традиционный брандмауэр для фильтрации пакетов не предлагает. Традиционный брандмауэр может блокировать по протоколу (по имени или номеру), но расширенный блокирует почти любой подробный индивидуальный компонент протокола (иногда называемый «глубокой проверкой пакетов»). Или может объединить несколько пакетов для идентификации определенных атак. Традиционный брандмауэр отбрасывает определенное количество пакетов, но только продвинутый вариант покажет, что вы находитесь под атакой отказа в обслуживании. Брандмауэры-приложения могут просматривать прикладные уровни сети и обнаруживать угрозу или предотвращать ее попадание на хост. Например, расширенный брандмауэр может удалить последовательность переполнения буфера из веб-сервера. Они настолько распространены, что большинство брандмауэров до некоторой степени расширены.
Брандмауэры предотвращают вредоносные атаки, происходящие из несанкционированного сетевого трафика. Традиционно удаленные атаки переполнения буфера на уязвимые серверы были угрозой номер один, с которой брандмауэры справлялись. Но со временем серверы стали более надежными (в основном благодаря тому, что их базовые операционные системы стали более безопасными по умолчанию), а брандмауэры усложнили злоумышленникам успешное использование этих типов атак. Соответственно, немногие современные атаки будут предотвращены брандмауэром из-за их реализации. Например, если конечного пользователя можно обманом заставить запустить троянскую программу, приходящую по электронной почте, брандмауэр мало что может сделать, чтобы предотвратить последующую злонамеренность. Тем не менее, поскольку брандмауэры легкодоступны (часто бесплатны и реализуются по умолчанию) и могут остановить определенные типы атак, большинство людей считают, что они должны быть активированы на каждой сети и вычислительном устройстве. Вы можете выбрать, активировать его или нет. В любом случае, этот выбор, по существу, указывает на большой успех брандмауэров.
В главе 18 представлен профиль одного из первых создателей брандмауэров, Уильяма Чесвика.
Как уже говорилось в предыдущей главе, Уильям Чесвик – один из создателей современного брандмауэра. Он взял на себя управление первым документированным брандмауэром, изобрел сетевой брандмауэр, и, если вы используете слово «прокси» в своей работе в сфере ИБ, вам следует его поблагодарить. У Чесвика более десятка патентов. Кроме того, в соавторстве со Стивеном Белловиным, в 1994 году он выпустил первую книгу о брандмауэрах Firewalls and Internet Security: Repelling the Wily Hacker (https://www.amazon.com/Firewalls-Internet-Security-RepellingHacker/dp/020163466X). Я работал с брандмауэрами и до прочтения этой книги, но она помогла мне узнать многое из того, что мне известно о брандмауэрах сейчас. Она стоит на моей книжной полке вот уже более двадцати лет.
Его знаменитая статья An Evening with Berferd in which a Cracker Is Lured, Endured, and Studied (http://www.cheswick.com/ches/papers/berferd.pdf) познакомила многих из нас с ханипотами. Благодаря Чесвику термин jail стал прямым командным словом в системе FreeBSD, а chroot jail – один из самых простых и популярных способов изоляции отдельных подсистем в Unix и Linux. Немногие люди оказали такое же большое влияние на границы ИБ. Он также один из самых оптимистичных экспертов в области ИБ, с которыми я встречался. При этом Уильям понимает, что многое еще нужно исправить.
Я спросил Чесвика, как он попал в Лабораторию Белла, где работает специалистом по ИБ. Он рассказал: «В 1968 году я был химиком, но увидел первые компьютеры и подумал, что в будущем они станут популярными, поэтому заинтересовался ими. В конце концов этот интерес победил химию. Я попал в консалтинговую компанию SET. Мы осуществляли техническую работу для других компаний. За девять лет работы я познакомился с некоторыми людьми из Лаборатории Белла. Они мне понравились, как и само место. Я был бы счастлив, даже если меня взяли бы туда уборщиком. В конце 1987 года я прошел собеседование. Люди, которые его проводили, были гигантами в этой области: например, Деннис Ричи (создатель языка программирования C) и Кен Томпсон (соавтор Unix вместе с Ричи). Я был счастлив просто поговорить с ними и не расстроился бы, даже если бы меня не взяли, но почему-то я им приглянулся и вскоре стал членом их команды. В один из первых дней я подошел к Дэйву Пресотто [создателю первого файервола] и вызвался взять на себя брандмауэр. Он согласился».
По моей просьбе Чесвик, создатель брандмауэра цепного уровня, объяснил, что это такое: «Он буквально воссоздает трафик, шаг за шагом, между двумя или более шагами брандмауэра. Каждый пакет реконструируется и изменяется, чтобы выглядеть так, как если бы каждый исходящий пакет шел от брандмауэра. Для всех за пределами брандмауэра он выглядит как инициатор трафика. Прежде любой посторонний видел, что пакеты исходят от компьютеров. Сегодня каждый брандмауэр делает это по умолчанию».
Я спросил Чесвика, как он познакомился со своим будущим соавтором Стивеном Белловином. «Стивен уже работал в Лаборатории Белла до моего прихода. Дэйв Пресотто учил меня в классе TCP/IP, который Стивен также посещал. Мы подружились и постоянно говорили о брандмауэрах и различных угрозах. В конце концов мы создали “пакетный телескоп” (ранний анализатор пакетов). Мы получили большую сеть класса А в Лаборатории, и у нее было так много IP-адресов, что мы не могли с ними справиться. Подсети в такой большой сети не очень хорошо работали в то время. Поэтому я анонсировал “12 network” в Интернете, чтобы посмотреть, что произойдет. Довольно скоро мы стали получать 25 Мб данных ежедневно. Многое кончилось гибелью трафиков в зараженных компьютерах. Но это немалому нас научило. Стивен писал об этом в своей статье There Be Dragons (https://academiccommons.columbia.edu/catalog/ac:126916). В итоге мы сделали первый DNS-прокси, опираясь на то, что узнали. Так и появилась наша книга. Она вышла в нужное время, потому что до этого о брандмауэрах не писали книг, а они тем временем стали очень популярны. Мы продали много копий и неплохо заработали».
Я спросил Чесвика о его патентах. Я сам работал над получением нескольких и знаю, как трудно их получить. Он поделился: «У меня было бы гораздо больше патентов, если бы я знал, что то, что мы делаем, можно запатентовать. Раньше все казалось “очевидным” (“очевидный” – это юридический термин, который означает “непатентоспособен”), по крайней мере, так я думал. То, что мы делали, казалось очевидным – здравым смыслом – для меня и 12 парней, с которыми мы это обсуждали. Меня даже посещали патентные юристы и спрашивали, можно ли патентовать то, над чем я работал в то время. Я сказал нет, потому что это очевидно. Если бы я тогда промолчал, у меня было бы гораздо больше патентов. Годы спустя кто-то другой получил патент на то, о чем мы думали и что делали задолго до него. У меня даже есть несколько патентов и авторских прав, которые часто игнорируются, например на мои интернет-карты (http://cheswick.com/ches/map/). Они были поистине революционны для того времени. Мы даже основали картографическую компанию Lumeta. Теперь я вижу, что мои интернет-карты все на месте, а я почти никогда не указан в источниках. Недавно я был на конференции, и спикер выложил одну из моих интернет-карт, конечно, некредитированную, и около половины аудитории посмотрели на меня, потому что знали, кому она принадлежит. Другой пример – DNS-прокси. На него у меня есть патент, но существует много DNS-прокси, и никто не обращает внимания на авторство».
Я спросил Чесвика, что его больше всего беспокоит в сфере ИБ: «Старый материал, который продолжает работать. Почти ничего нового. Может быть, Stuxnet, но прежние задумки все равно остаются в строю. Как минимум с 1979 года нам известно, что пароли бесполезны, так почему мы все еще их используем? В настоящее время я работаю над некоторыми новыми идеями пароля и аутентификации. Или взять недавние DDoS-атаки DYN (http://dyn.com/blog/dyn-analysis-summary-offriday-october-21-attack/). Это случилось из-за всех тех корневых паролей, заготовленных в прошивке устройств IoT. Я бы поставил студенту неудовлетворительную оценку за ввод жестко закодированных паролей».
Тем не менее Чесвик считает, что информационная безопасность значительно улучшится. Он сказал: «Я много выступаю по всему миру, и одна из моих речей называется “Интернет-безопасность: я думаю, что мы победим” (https://cacr.iu.edu/events/2016/bill-cheswickcomp-sec-we-can-win.php). Мы находимся на стадии модели T информационной безопасности. Сейчас мы не пытаемся это исправить, но будем работать над этим. Мы наблюдаем рыночный провал, но рынок с ним справится. В будущем у нас появится значительно лучшая интернет-безопасность. Многие не верят, когда я говорю об этом, но поверят позже. Другие отрасли промышленности имели те же проблемы на раннем этапе, но росли и улучшались. Интернет сделает то же самое».
Я спросил его, что будет одним из основных улучшений. Он рассказал: «Я удивлен, что нам все еще разрешено запускать произвольное программное обеспечение на компьютерах. Даже с антивирусной проверкой это выглядит как запуск проверки на бродяг в вашей ванной комнате. Операционные системы должны позволять выполнять только проверенный код, и мы к этому близки. ОС уже начинают лидировать в этом направлении».
Я спросил, почему его не беспокоит, что улучшение информационной безопасности занимает так много времени. «Есть много проблем, но один из главных вопросов – это поддержка. Это можно сравнить с моделью города. У всех городов есть проблемы, связанные с наследием прошлого развития, которые люди просто не могут игнорировать».
Я спросил Чесвика, о чем он думает в последнее время. Он сказал: «Одна из самых больших проблем заключается в том, как вы измеряете безопасность в ПО. Как выглядит точная система показателей? Один из простых примеров – измерение общего числа сетевых служб, каждая из которых – потенциальный вектор атаки, и их сокращение означает уменьшение риска. Но это слишком упрощенно. Другой несложной мерой могло бы стать измерение количества “демонов”, работающих с setuid root [это означает, что программа намеренно продвигается для запуска в качестве наиболее привилегированного контекста учетной записи безопасности]. Опять же, меньше, конечно, было бы лучше. Но и это слишком упрощенно. Еще один способ измерить безопасность, скажем, операционной системы или программного обеспечения – это стоимость эксплойта нулевого дня, который можно купить на открытом рынке. Журнал Forbes написал об этом статью в 2012 году (http://www.forbes.com/sites/andygreenberg/2012/03/23/shopping-for-zero-daysan-price-list-for-hackers-secret-software-exploits/#43f3035e6033). Стоимость эксплойта будет фактором того, насколько трудно взломать программу или операционную систему и насколько она популярна для взлома. Например, полный эксплойт ОС стоит 500 000 долларов, но взлом часто скомпрометированной программы составляет всего 50 000 долларов. Большая цена указывает, что вендор лучше справляется с безопасностью.
Каждый, как я уже говорил, хочет измерить уровень безопасности. Людям нужно число. Они хотят показать, что в прошлом году их уровень составлял 27 условных единиц, а в этом повысился до 63, и безопасность явно улучшилась. Более реалистичное измерение – определение всех возможных измерений и присвоение им веса, а затем объединение их в большую метрику. Этого хочет любой управляющий. Я много думал об этом в последнее время. В наши дни становится все труднее и труднее проникать в новое ПО. Даже жалобы ФБР на то, что они не могут что-то взломать, – хороший знак. Безопасность становится все крепче и крепче».