Как сделать так, чтобы данные о прохождении курса "Основы информационной безопасности при работе на компьютере" появлялись в зачетке. Нужен список полных оценок за каждый тест. |
Использование файерволлов
Цель лекции: предоставить читателю знания о файерволлах.
Если рассматривать файерволл как часть антивирусной защиты (защитного комплекса в целом) то можно сказать, что это программный или аппаратный комплекс для разграничения доступа к локальной или глобальной сети. Необходимость в файерволлах возникла тогда, когда стало ясно, что использование только антивирусных программ не может осуществить полную защиту от всех зловредных программ. Необходимо еще одно программное средство, которое будет помогать антивирусу в остановке вредоносных программ. Это программное средство получило название файерволл, или межсетевой экран, или брандмауэр.
История файерволлов
Файерволл гораздо моложе, чем антивирус. Это доказывают различные хронологические источники. 4 сентября 1997 года компания "Элвис-Плюс" анонсировала завершение бета-тестирования и начало промышленных поставок первого отечественного программного файерволла "Застава". Об англоязычных аналогах первых файерволлов нет четкой информации. Если же обратиться к хронологическому источнику, то упоминание о проекте Netfilter/iptables (межсетевом экране, встроенном в Linux версий 2.4, 2.6) начинается с 1998 года. По более подробной информации Проект netfilter/iptables был основан в 1998. Автором является Расти Расселл (en:Rusty Russell); он же автор проекта-предшественника ipchains. По мере развития проекта, в 1999 г. образовалась команда Netfilter Core Team (сокращено coreteam). Разработанный межсетевой экран получил официальное название netfilter. В марте 2000 г. был включен в ядро Linux 2.3. В августе 2003 руководителем coreteam стал Харальд Вельте (Harald Welte). В 2004 г. Вельте начал и выиграл судебный процесс против компании Sitecom GmbH, которая использовала netfilter в своей продукции, но отказывалась следовать лицензии GNU GPL. До появления iptables для обеспечения возможностей межсетевого экрана в Linux использовались проекты ipchains в Linux 2.2 и ipfwadm в Linux 2.0, в свою очередь основанный на ipfw из системы BSD. Проекты ipchains и ipfwadm изменяли работу стека протоколов ядра Linux, поскольку до появления netfilter в архитектуре ядра не существовало возможностей для подключения дополнительных модулей управления пакетами. Iptables сохранил основную идею ipfwadm — список правил, состоящих из критериев и действия, которое выполняется, если пакет соответствует критериям. В ipchains была представлена новая концепция — возможность создавать новые цепочки правил и переход пакетов между цепочками, а в iptables концепция была расширена до четырёх таблиц, разграничивающих цепочки правил по задачам: фильтрация, NAT и модификация пакетов. Также iptables расширил возможности Linux в области определения состояний, позволяя создавать межсетевые экраны, работающие на сеансовом уровне (информация о Netfilter/iptables представлена http://ru.wikipedia.org/wiki/Netfilter).
Вполне объяснимы такие поздние года появления файерволлов, так как полезность файерволлов даже после их выпуска могли понять немногие пользователи компьютера. Это было сложно, так как для отлова и уничтожения зловредных программ вроде существует антивирус, зачем же еще тогда нужен какой-то файерволл? Компании, которые производили файерволлы, были определенно не в почете. Необходимо было что-то предпринимать. Стали разворачиваться крупные пиар-акции с целью просвещения людей о полезности и нужности файерволлов. Но люди все равно практически не обращали внимание на файерволлы. Даже в настоящее время использование файерволла является чем-то заоблачным для рядового пользователя. Причиной этого стала необходимость тонкой настройки файерволла. А вместе с тем вирусы активно стали использовать отсутствие файерволла на компьютере пользователя. Это вылилось в то, что заражений стало гораздо больше, и потихоньку пользователи, обеспокоенные сохранностью своих персональных данных, стали преодолевать свою лень в настройке файерволла, стали понимать его необходимость в защите своего компьютера. Вместе с этим создатели файерволлов стали больше уделять внимание удобству своих продуктов, их дружелюбности по отношению к пользователю. Все это сыграло в пользу файерволлов, и пользователи стали гораздо активнее их использовать. Впрочем, далеко не все пользователи до сих пор знают, зачем на компьютере должен быть обязательно установлен файерволл. Но вместе с тем правительства разных стран устанавливают файерволлы как системы фильтрации содержимого Интернета. Это делается с целью ограничить доступ к нежелательным ресурсам в Интернете (при этом какие именно ресурсы являются нежелательными, определяет само правительство). Одним из примеров такого файерволла стал проект "Золотой щит", или "Великий китайский файерволл" - система фильтрации содержимого Интернета в КНР. Проект представляет собой систему серверов на интернет-канале между провайдерами и международными сетями передачи информации, которая фильтрует информацию. Ряд западных компаний выполняют требования китайских властей об ограничении доступа к информации. По данным организации "Репортёры без границ", китайская версия поисковой системы Yahoo в результатах поиска не показывает определённую информацию. Сайт Википедии также неоднократно блокировался на территории КНР. Причина блокировки обусловлена, в частности, описанием событий в Китае мая-июня 1989 года. Также системой блокируются сайты ряда религиозных и философских течений, в частности трансгуманистических (информация о "Золотом щите " представлена следующим источником http://ru.wikipedia.org/wiki/%D0%97%D0%BE%D0%BB%D0%BE%D1%82%D0%BE%D0%B9_%D1%89%D0%B8%D1%82). Естественно сам народ той страны, которая ограничивает подобными мерами доступ к информации, не остается рад этому и пытается всячески воспрепятствовать подобным проявлениям со стороны государства.
Механизм работы файерволла
Исходя из определения файерволла, понятно лишь в общих чертах, какие именно функции у файерволла и какой у него принцип работы. Функции файерволла можно понять с помощью нескольких примеров. Например, вирус проникает в компьютер пользователя, но чтобы совершить процесс кражи персональных данных, вирусу необходимо их передать на компьютер злоумышленника. В этом случае файерволл заблокирует сам процесс передачи информации на компьютер злоумышленника. Схематически это можно изобразить следующим образом:
Из рисунка видно, что именно в этом случае делает файерволл. Вирус хочет передать данные на компьютер злоумышленника, а файерволл блокирует передачу данных. При этом он всего лишь не дает вирусу отправить данные, никаких действий с самим вирусом файерволл не предпринимает. Другим примером работы файерволла может служить пример, когда вирус с компьютера злоумышленника пытается попасть на компьютер пользователя, пытаясь "раствориться" в Интернет-трафике. В этом случае файерволл будет выступать защитой от проникновения вируса на компьютер пользователя. Схематически это можно изобразить следующим образом:
Из рисунка видно, что вирус пытается проникнуть в операционную систему пользователя через поток Интернет-трафика. При этом файерволл мешает вирусу и блокирует его проникновение. Проактивная защита антивируса на рисунке показана для наглядности, чтобы читателю было ясно, что вначале файерволл препятствует проникновению вируса, а только потом, если файерволл по каким-либо причинам пропустит вирус, то за работу примется проактивная защита компьютера.
Еще одним примером работы файерволла может быть пример, когда вирус пытается обменяться данными по сети с другим вирусом по локальной сети (например, для координации дальнейших действий). В этом случае файерволл не даст вирусу обменяться данными с другим вирусом. Схематически это можно изобразить следующим образом:
Из рисунка видно, что вирус пытается обменяться данными с другим вирусом на другом компьютере посредством использования локальной сети, а файерволл препятствует этому и не дает обменяться данными между вирусами. В расширенной версии этой схемы файерволл может сообщить о подобной передаче данных администратору локальной сети. Все предыдущие примеры были примерами работы персональных файерволлов (Персональный файерволл – это программа, которая устанавливается непосредственно на компьютер обычного пользователя.). Помимо персональных файерволлов, существуют корпоративные файерволлы (Корпоративный файерволл устанавливаются на шлюз между локальной сетью и Интернетом (или на шлюз между двумя подсетями)). Схематически корпоративный файерволл можно отобразить следующим образом:
На рисунке представлен корпоративный файерволл, который разделяет две локальных сети (одна сеть состоит из компьютеров №1,№2,№3, а вторая из компьютеров №4,№5,№6). При этом файерволл регулирует передачу сетевых пакетов именно между этими двумя сетями. Такой файерволл может являться аппаратным файерволлом, либо центральным файерволлом, который установлен на компьютере сетевого администратора. Внутри же сети корпоративный файерволл не регулирует передачу сетевых пакетов (то есть передача между компьютером №1 и компьютером №2 не регулируется корпоративным файерволлом). Другой пример корпоративного файерволла представлен на рисунке ниже:
На рисунке представлен еще один пример корпоративного файерволла, который разделяет собой локальную сеть предприятия между глобальной сетью Интернет. В этом случае, так же как и в прошлом, корпоративный файерволл не регулирует передачу сетевых пакетов внутри корпоративной сети. Такой файерволл также может являться аппаратным файерволлом, либо центральным файерволлом, который установлен на компьютере сетевого администратора.
С недавнего времени производители файерволлов в свои продукты стали встраивать дополнительную защиту, которая представляет собой некую вариацию резидентного щита у антивируса. Этот дополнительный щит файерволла служит одной цели – обеспечить дополнительную защиту компьютера от зловредных программ. Схематически совокупность всех основных защит операционной системы можно привести на рисунке ниже:
Из рисунка можно увидеть, что вирусу, чтобы проникнуть в операционную систему, необходимо преодолеть основную защиту файерволла, резидентную защита файерволла, а затем еще и резидентную защиту антивируса. Резидентная защита файерволла здесь играет серьезные функции и помогает добавить еще одну стадию фильтрации от нежелательных программ. Причем, у подобных защит с недавнего времени появляется интересная функция – запуск программы в "песочнице" (Sandbox). Такая "песочница" предоставляет своеобразное изолированное место (наподобие карантина), в котором можно запускать программу, не боясь, что она внесет какие-либо изменения в операционную систему. "Песочница" является безопасным местом, где можно запускать программы. Схематически работу песочницы можно изобразить следующим образом:
Из схемы видно, как именно взаимодействует файерволл с программой и "песочницей". Вначале из операционной системы пользователя идет указание о том, что необходимо запустить программу в "песочнице" (причины могут быть разными). Затем файерволл запускает программу и подключает к этой программе "песочницу" как элемент, в котором будет запускаться программа. В "песочнице" содержится эмуляция процессов операционной системы, которая позволяет создать полную имитацию операционной системы. Пока программа работает в песочнице, файерволл внимательно следит за всеми её действиями. Если файерволл посчитает, что программа зловредная (например, она пыталась получить доступ к персональным данным пользователя), то файерволл сообщит об этом пользователю и изолирует программу от применения в настоящей операционной системе. Такая проверка программ является очень эффективной, так как она позволяет определить суть действий программы, не прибегая при этом к тестированию в реальной операционной системе. С развитием "песочниц" создатели зловредных программ задумались, как можно обойти подобные проверки. В результате был обнаружен ряд признаков, которые характерны только для "песочницы", и если зловредная программа их замечает, она отказывается запуститься в "песочнице". Эта практика была взята на вооружение некоторыми добросовестными создателями программного обеспечения, чтобы защитить свои продукты от просмотра извне (это пришлось сделать потому, что многие взломщики лицензионного программного обеспечения пользовались именно "песочницей", чтобы понять механизм работы программы).
Помимо этого файерволл также следит за деятельностью открытых портов компьютера и в случае необходимости может заблокировать их. Такая необходимость может быть вызвана незапланированным доступом извне к компьютеру пользователя. Часто бывает и так, что зловредная программа может попытаться передать свои файлы через какой-либо порт, который редко используется компьютером. В этом случае порт также будет заблокирован, а причина, из-за которой прошла блокировка, будет тщательно рассмотрена. Также с помощью управления портами компьютера файерволл может задать глобальные правила, которые будут влиять на видимость компьютера в сети. Это достаточно эффективная практика защиты от злоумышленников, так как если злоумышленник не будет видеть все открытые порты компьютера, то ему будет значительно труднее проводить свою атаку на компьютер пользователя. Впрочем, злоумышленники всячески пытаются обойти подобные хитрости со стороны создателей файерволлов, а также пытаться писать свои зловредные программы так, чтобы они могли уничтожить сам файерволл. В защиту от этого в файерволлы стали встраивать "протекторы", похожие с теми "протекторами", которые есть у антивирусов. Такая защита пытается обеспечить файерволлу неприкосновенность со стороны внешнего вмешательства. Также как и у антивирусов, эти "протекторы" не всегда бывают достаточно хороши, чтобы отбивать атаки различных вирусов. Так как программный файерволл является, по большей части, уязвим к таким же программным средствам (вирусы являются программным средством атаки компьютера), то стали разрабатываться специальные аппаратные файерволлы. Аппаратный файерволл представляет собой аналог программного файерволла, но в отличие от программного файерволла, аппаратный файерволл "вшит" в прошивку какого-либо аппаратного сетевого устройства, например, маршрутизатора. Схематически работа такого файерволла представлена на рисунке ниже (хотя в большей степени нижепредставленное устройство является программно-аппаратным файерволлом):
Из данной схемы можно увидеть, как именно работает аппаратный файерволл, который установлен в прошивку маршрутизатора. В этом случае данные сети Интернет проходят через маршрутизатор, в частности через его прошивку. Далее происходит обмен данными между прошивкой маршрутизатора и файерволлом (маршрутизатор отправляет все данные сети Интернет файерволлу). Файерволл анализирует трафик, и если Интернет-трафик "чист", то он поступает пользователю в операционную систему. Если же Интернет-трафик оказывается зловреден, то он блокируется файерволлом и, следовательно, не попадает в операционную систему пользователя. Аппаратные файерволлы обеспечивают большую надежность самому файерволлу, так как очевидно, что не каждая зловредная программа сможет атаковать прошивку модема и соответсвенно файерволл, который там находится. Минусы в таком аппаратном файерволле связаны в основном с обновлением самого файерволла, так как он обновляется вместе с прошивкой, а производители не могут обеспечивать новыми прошивками пользователя очень часто. К тому же сбои в таком файерволле достаточно трудно исправимы, так как при этом возникает необходимость полностью менять прошивку маршрутизатора. Также существуют аппаратные файерволлы, которые в буквальном смысле поставляются отдельной физической деталью (в отличие от предыдущего примера, это уже чистокровный аппаратный файерволл). Такие файерволлы поставляются в виде отдельного технического средства, через которое непосредственно проходит весь трафик сети Интернет. Аппаратные файерволлы классически считаются более надежным средством, чем его программные аналоги, но при этом они стоят гораздо больше денег, а настройка и обновление такого файерволла гораздо сложнее. Поэтому аппаратные файерволлы устанавливаются, в основном, в предприятиях, для защиты корпоративных сетей от злоумышленников. В этом случае аппаратным файерволлом занимается специальный человек - администратор сети.
Существует два основных способа создания наборов правил файерволла: ''включающий'' и ''исключающий''. "Исключающий" файерволл позволяет прохождение всего трафика, за исключением трафика, соответствующего набору правил. "Включающий" файерволл действует прямо противоположным образом. Он пропускает только трафик, соответствующий правилам, и блокирует все остальное. "Включающие" файерволлы обычно более безопасны, чем "исключающие", поскольку они существенно уменьшают риск пропуска межсетевым экраном нежелательного трафика. Безопасность может быть дополнительно повышена с использованием ''файерволла с сохранением состояния''. Такой файерволл сохраняет информацию об открытых соединениях и разрешает только трафик через открытые соединения или открытие новых соединений. Недостаток "файерволла с сохранением состояния" в том, что он может быть уязвим для атак DoS (Denial of Service, отказ в обслуживании), если множество новых соединений открывается очень быстро. Большинство межсетевых экранов позволяют комбинировать поведение с сохранением состояния и без сохранения состояния, что оптимально для реальных применений.