Конспект курса БИР

advertisement
Конспект курса БИР
Структура
Тема
Введение в ИБ. Доктрина информационной
безопасности РФ. Угрозы информационной
безопасности и их классификация. Законодательный
уровень обеспечения ИБ в РФ.
Технические спецификации в ИБ. Требования
государственных стандартов. Требования
международных стандартов.
Уязвимости популярных операционных систем и
системного ПО. Проблемы безопасности протоколов
TCP/IP. Методы и средства анализа уязвимостей
серверов и служб. Функции сканеров уязвимостей.
Принципы работы межсетевых экранов. Различия
программных и аппаратных межсетевых экранов.
Программные межсетевые экраны популярных ОС,
особенности настройки.
Аппаратные межсетевые экраны, их особенности.
Возможности и особенности настройки аппаратных
межсетевых экранов фирмы D-Link
Протоколы безопасности
Часов
4
4 (2)
8
8 (4)
4 (2)
4 (2)
2
Модуль 1.
Лекция 1.
1. Введение в ИБ.
Словосочетание "информационная безопасность" в разных контекстах может иметь
различный смысл. Под информационной безопасностью здесь будем понимать
защищенность информации и поддерживающей инфраструктуры от случайных или
преднамеренных воздействий естественного или искусственного характера, которые
могут нанести неприемлемый ущерб субъектам информационных отношений, в том числе
владельцам и пользователям информации и поддерживающей инфраструктуры.
Защита информации – это комплекс мероприятий, направленных на обеспечение
информационной безопасности.
Ежегодно 30 ноября отмечается Международный день защиты информации. Его целью
является напоминание пользователям о необходимости защиты компьютеров и всей
хранимой в них информации. Праздник был учрежден 30 ноября 1988 года. 2 ноября 1988
года была зафиксирована первая массовая эпидемия "червя" Морриса, получившего
название по имени своего создателя - Роберта Морриса, аспиранта факультета
Вычислительной техники Корнелльского университета.
Правильный с методологической точки зрения подход к проблемам информационной
безопасности начинается с выявления субъектов информационных отношений и
интересов этих субъектов, связанных с использованием информационных систем (ИС).
Угрозы информационной безопасности – это оборотная сторона использования
информационных технологий.
Возвращаясь к вопросам терминологии, стоит отметить, что термин "компьютерная
безопасность" (как эквивалент или заменитель ИБ) представляется слишком узким.
Компьютеры – только одна из составляющих информационных систем. Согласно
определению информационной безопасности, она зависит не только от компьютеров, но и
от поддерживающей инфраструктуры, к которой можно отнести системы электро-, водо- и
теплоснабжения, кондиционеры, средства коммуникаций, обслуживающий персонал.
Стоит обратить внимание, что в определении ИБ перед существительным "ущерб" стоит
прилагательное "неприемлемый". Застраховаться от всех видов ущерба невозможно, тем
более невозможно сделать это экономически целесообразным способом, когда стоимость
защитных средств и мероприятий не превышает размер ожидаемого ущерба. Значит, с
чем-то приходится мириться и защищаться следует только от того, с чем смириться никак
нельзя. Иногда таким недопустимым ущербом является нанесение вреда здоровью людей
или состоянию окружающей среды, но чаще порог неприемлемости имеет материальное
(денежное) выражение, а целью защиты информации становится уменьшение размеров
ущерба до допустимых значений.
2. Доктрина информационной безопасности РФ
Доктрина информационной безопасности Российской Федерации была утверждена 9
сентября 2000 года президентом Российской Федерации. В ней под информационной
безопасностью понимается состояние защищенности национальных интересов в
информационной сфере, определяемых совокупностью сбалансированных интересов
личности, общества и государства.
В Доктрине выделяются четыре основные составляющие национальных интересов
Российской Федерации в информационной сфере:
1. Соблюдение конституционных прав и свобод человека и гражданина в области
получения информации и пользования ею, обеспечение духовного обновления
России, сохранение и укрепление нравственных ценностей общества, традиций
патриотизма и гуманизма, культурного и научного потенциала страны.
2. Информационное обеспечение государственной политики Российской Федерации,
связанное с доведением до российской и международной общественности
достоверной информации о государственной политике Российской Федерации, ее
официальной позиции по социально значимым событиям российской и
международной жизни, с обеспечением доступа граждан к открытым
государственным информационным ресурсам.
3. Развитие современных информационных технологий, отечественной индустрии
информации, в том числе индустрии средств информатизации, телекоммуникации
и связи, обеспечение потребностей внутреннего рынка ее продукцией и выход этой
продукции на мировой рынок, а также обеспечение накопления, сохранности и
эффективного использования отечественных информационных ресурсов.
4. Защита информационных ресурсов от несанкционированного доступа, обеспечение
безопасности информационных и телекоммуникационных систем, как уже
развернутых, так и создаваемых на территории России.
Соответственно, по своей общей направленности угрозы информационной
безопасности Российской Федерации подразделяются на следующие виды:
1. угрозы конституционным правам и свободам человека и гражданина в области
духовной жизни и информационной деятельности, индивидуальному, групповому
и общественному сознанию, духовному возрождению России;
2. угрозы информационному обеспечению государственной политики Российской
Федерации;
3. угрозы развитию отечественной индустрии информации, включая индустрию
средств информатизации, телекоммуникации и связи, обеспечению потребностей
внутреннего рынка в ее продукции и выходу этой продукции на мировой рынок, а
также обеспечению накопления, сохранности и эффективного использования
отечественных информационных ресурсов;
4. угрозы безопасности информационных и телекоммуникационных средств и систем,
как уже развернутых, так и создаваемых на территории России.
В соответствии с Доктриной общие методы обеспечения информационной безопасности
Российской Федерации разделяются на правовые, организационно-технические и
экономические.
К правовым методам обеспечения информационной безопасности Российской
Федерации относится разработка нормативных правовых актов, регламентирующих
отношения в информационной сфере, и нормативных методических документов по
вопросам обеспечения информационной безопасности Российской Федерации.
Основными организационно-техническими методами обеспечения информационной
безопасности Российской Федерации являются:
 создание и совершенствование системы обеспечения информационной
безопасности Российской Федерации;
 выявление, изобличение и привлечение к ответственности лиц, совершивших
преступления и другие правонарушения в этой сфере;
 разработка, использование и совершенствование средств защиты информации и
методов контроля эффективности этих средств, развитие защищенных
телекоммуникационных
систем,
повышение
надежности
специального
программного обеспечения;
 создание систем и средств предотвращения несанкционированного доступа к
обрабатываемой информации и специальных воздействий, вызывающих
разрушение, уничтожение, искажение информации, а также изменение штатных
режимов функционирования систем и средств информатизации и связи;
 выявление технических устройств и программ, представляющих опасность для
нормального функционирования информационно-телекоммуникационных систем,
предотвращение перехвата информации по техническим каналам, применение
криптографических средств защиты информации при ее хранении, обработке и
передаче по каналам связи, контроль за выполнением специальных требований по
защите информации;
 сертификация средств защиты информации, лицензирование деятельности в
области защиты государственной тайны, стандартизация способов и средств
защиты информации;
 контроль за действиями персонала в защищенных информационных системах,
подготовка кадров в области обеспечения информационной безопасности
Российской Федерации;
 формирование
системы
мониторинга
показателей
и
характеристик
информационной безопасности Российской Федерации в наиболее важных сферах
жизни и деятельности общества и государства.
Экономические методы обеспечения информационной безопасности Российской
Федерации включают в себя:
 разработку программ обеспечения информационной безопасности Российской
Федерации и определение порядка их финансирования;
 совершенствование системы финансирования работ, связанных с реализацией
правовых и организационно-технических методов защиты информации, создание
системы страхования информационных рисков физических и юридических лиц.
3. Угрозы информационной безопасности и их классификация
Угроза - это потенциальная возможность определенным образом нарушить
информационную безопасность. Попытка реализации угрозы называется атакой, а тот,
кто предпринимает такую попытку, - злоумышленником. Потенциальные
злоумышленники называются источниками угрозы.
Чаще всего угроза является следствием наличия уязвимых мест в защите
информационных систем (таких, например, как возможность доступа посторонних лиц к
критически важному оборудованию или ошибки в программном обеспечении).
Промежуток времени от момента, когда появляется возможность использовать слабое
место, и до момента, когда пробел ликвидируется, называется окном опасности,
ассоциированным с данным уязвимым местом. Пока существует окно опасности,
возможны успешные атаки на ИС. Если речь идет об ошибках в ПО, то окно опасности
"открывается" с появлением средств использования ошибки и ликвидируется при
наложении заплат, ее исправляющих.
Для большинства уязвимых мест окно опасности существует сравнительно долго
(несколько дней, иногда - недель), поскольку за это время должны произойти следующие
события:
 должно стать известно о средствах использования пробела в защите;
 должны быть выпущены соответствующие заплаты;
 заплаты должны быть установлены в защищаемой ИС.
Новые уязвимые места и средства их использования появляются постоянно и это значит,
что почти всегда существуют окна опасности и отслеживание таких окон должно
производиться постоянно, а выпуск и наложение заплат - оперативно.
Угрозы можно классифицировать по нескольким критериям:
 по аспекту информационной безопасности (доступность, целостность,
конфиденциальность), против которого угрозы направлены в первую очередь;
 по компонентам информационных систем, на которые угрозы нацелены (данные,
программы, аппаратура, поддерживающая инфраструктура);
 по
способу
осуществления
(случайные/преднамеренные
действия
природного/техногенного характера);
 по расположению источника угроз (внутри/вне рассматриваемой ИС).
Основные угрозы доступности
Доступность – это возможность за приемлемое время получить требуемую
информационную услугу.
Информационные системы создаются для получения определенных информационных
услуг. Если по тем или иным причинам предоставить эти услуги пользователям
становится невозможно, это наносит ущерб всем субъектам информационных отношений.
Поэтому доступность выделяется как важнейший элемент информационной безопасности.
Особенно ярко ведущая роль доступности проявляется в различных системах управления
– производством, транспортом и т.п. Внешне менее драматичные, но также весьма
неприятные последствия – и материальные, и моральные – может иметь длительная
недоступность информационных услуг, которыми пользуется большое количество людей
(продажа железнодорожных и авиабилетов, банковские услуги и т.п.).
Самыми частыми являются непреднамеренные ошибки штатных пользователей,
операторов, системных администраторов и других лиц, обслуживающих информационные
системы. Иногда такие ошибки и являются собственно угрозами (неправильно введенные
данные или ошибка в программе, вызвавшая крах системы), иногда они создают уязвимые
места, которыми могут воспользоваться злоумышленники (таковы обычно ошибки
администрирования). Самый радикальный способ борьбы с непреднамеренными
ошибками - максимальная автоматизация и строгий контроль.
Другие угрозы доступности можно классифицировать по компонентам ИС, на которые
нацелены угрозы:
 отказ пользователей;
 внутренний отказ информационной системы;
 отказ поддерживающей инфраструктуры.
Обычно применительно к пользователям рассматриваются следующие угрозы:
 нежелание работать с информационной системой (чаще всего проявляется при
необходимости осваивать новые возможности и при расхождении между
запросами пользователей и фактическими возможностями и техническими
характеристиками);
 невозможность работать с системой в силу отсутствия соответствующей
подготовки (недостаток общей компьютерной грамотности, неумение
интерпретировать
диагностические
сообщения,
неумение
работать
с
документацией и т.п.);
невозможность работать с системой в силу отсутствия технической поддержки
(неполнота документации, недостаток справочной информации и т.п.).
Основными источниками внутренних отказов являются:
 отступление (случайное или умышленное) от установленных правил эксплуатации;
 выход системы из штатного режима эксплуатации в силу случайных или
преднамеренных действий пользователей или обслуживающего персонала
(превышение расчетного числа запросов, чрезмерный объем обрабатываемой
информации и т.п.);
 ошибки при конфигурировании системы;
 отказы программного и аппаратного обеспечения;
 разрушение данных;
 разрушение или повреждение аппаратуры.
По отношению к поддерживающей инфраструктуре рекомендуется рассматривать
следующие угрозы:
 нарушение работы (случайное или умышленное) систем связи, электропитания,
водо- и/или теплоснабжения, кондиционирования;
 разрушение или повреждение помещений;
 невозможность или нежелание обслуживающего персонала и/или пользователей
выполнять свои обязанности (гражданские беспорядки, аварии на транспорте,
террористический акт или его угроза, забастовка и т.п.).
Весьма опасны так называемые "обиженные" сотрудники - нынешние и бывшие, так как
потенциально могут нанести вред организации-"обидчику", например:
 испортить оборудование;
 встроить логическую бомбу, которая со временем разрушит программы и/или
данные;
 удалить данные.
Обиженные сотрудники, даже бывшие, знакомы с порядками в организации и способны
нанести немалый ущерб. Необходимо следить за тем, чтобы при увольнении сотрудника
его права доступа (логического и физического) к информационным ресурсам
аннулировались.
Опасны, разумеется, стихийные бедствия и события, воспринимаемые как стихийные
бедствия,- пожары, наводнения, землетрясения, ураганы.
Угрозы доступности могут выглядеть грубо - как повреждение или даже разрушение
оборудования. Такое повреждение может вызываться естественными причинами (чаще
всего - грозами), опасны протечки водопровода и отопительной системы, поломки
кондиционеров в сильную жару. Общеизвестно, что периодически необходимо
производить резервное копирование данных. Однако даже если это предложение
выполняется, резервные носители зачастую хранятся небрежно.
В качестве средства вывода системы из штатного режима эксплуатации может
использоваться агрессивное потребление ресурсов (обычно - полосы пропускания сетей,
вычислительных возможностей процессоров или оперативной памяти). По расположению
источника угрозы такое потребление подразделяется на локальное и удаленное. При
просчетах в конфигурации системы локальная программа способна практически
монополизировать процессор и/или физическую память, сведя скорость выполнения
других программ к нулю или, например, количество подключившихся пользователей
ограничено ресурсами системы. Примером удаленного потребления ресурсов являются
DoS-атаки – атаки на отказ в обслуживании.
Основные угрозы целостности
Целостность - актуальность и непротиворечивость информации, ее защищенность от
разрушения и несанкционированного изменения.
Целостность можно подразделить на статическую (понимаемую как неизменность
информационных объектов) и динамическую (относящуюся к корректному выполнению

сложных действий (транзакций)). Угрозами динамической целостности являются
нарушение атомарности транзакций, переупорядочение, кража, дублирование данных или
внесение дополнительных сообщений (сетевых пакетов и т.п.). Средства контроля
динамической целостности применяются, в частности, при анализе потока финансовых
сообщений. Соответствующие действия в сетевой среде называются активным
прослушиванием. С целью нарушения статической целостности злоумышленник (как
правило, штатный сотрудник) может:
 ввести неверные данные;
 изменить данные.
Например, заголовки электронного письма могут быть подделаны; письмо в целом может
быть фальсифицировано лицом, знающим пароль. Последнее возможно даже тогда, когда
целостность контролируется криптографическими средствами. Здесь имеет место
взаимодействие разных аспектов информационной безопасности: если нарушена
конфиденциальность, может пострадать целостность.
Целостность оказывается важнейшим аспектом ИБ в тех случаях, когда информация
служит "руководством к действию". Рецептура лекарств, набор и характеристики
комплектующих изделий, ход технологического процесса – все это примеры информации,
нарушение целостности которой недопустимо. Неприятно и искажение официальной
информации, будь то текст закона или страница Web-сервера какой-либо
правительственной организации.
Потенциально уязвимы с точки зрения нарушения целостности не только данные, но и
программы. Внедрение вредоносного ПО - пример подобного нарушения.
Основные угрозы конфиденциальности
Конфиденциальность – это защита от несанкционированного доступа к информации.
Конфиденциальную информацию можно разделить на предметную и служебную.
Служебная информация (например, пароли пользователей) не относится к определенной
предметной области, в информационной системе она играет техническую роль, но ее
раскрытие особенно опасно, поскольку оно чревато получением несанкционированного
доступа ко всей информации, в том числе предметной.
Даже если информация хранится в компьютере или предназначена для компьютерного
использования, угрозы ее конфиденциальности могут носить некомпьютерный и вообще
нетехнический характер.
Многим людям приходится выступать в качестве пользователей не одной, а целого ряда
систем (информационных сервисов). Если для доступа к таким системам используются
многоразовые пароли или иная конфиденциальная информация, то эти данные будут
храниться не только в голове, но и в записной книжке или на листках бумаги, которые
пользователь часто оставляет на рабочем столе. Невозможно помнить много разных
паролей; рекомендации по их регулярной смене только усугубляют положение, заставляя
применять несложные схемы чередования или вообще стараться свести дело к двум-трем
легко запоминаемым и угадываемым паролям.
Описанный класс уязвимых мест можно назвать размещением конфиденциальных данных
в среде, где им не обеспечена необходимая защита. В этот класс попадает передача
конфиденциальных данных в открытом виде (в разговоре, в письме, по сети), которая
делает возможным перехват данных. Для атаки могут использоваться разные технические
средства (подслушивание или прослушивание разговоров, пассивное прослушивание сети
и т.п).
Перехват данных - очень серьезная угроза, и если конфиденциальность действительно
является критичной, а данные передаются по многим каналам, их защита может оказаться
весьма сложной и дорогостоящей. Технические средства перехвата хорошо проработаны,
доступны, просты в эксплуатации, а установить их не составляет труда.
Кражи оборудования являются угрозой не только для резервных носителей, но и для
компьютеров, особенно портативных.
Опасной нетехнической угрозой конфиденциальности являются такие методы как
маскарад - выполнение действий под видом лица, обладающего полномочиями для
доступа к данным.
К угрозам, от которых трудно защититься, можно отнести злоупотребление
полномочиями. На многих типах систем привилегированный пользователь (системный
администратор) способен прочитать любой (незашифрованный) файл, получить доступ к
почте любого пользователя и т.д. Другой пример - нанесение ущерба при сервисном
обслуживании. Обычно сервисный инженер получает неограниченный доступ к
оборудованию и имеет возможность действовать в обход программных защитных
механизмов.
Конфиденциальность – самый проработанный у нас в стране аспект информационной
безопасности. К сожалению, практическая реализация мер по обеспечению
конфиденциальности современных информационных систем наталкивается на серьезные
трудности.
4. Объектно-ориентированный подход к информационной безопасности
Объектно-ориентированный подход является основой современной технологии
программирования, испытанным методом борьбы со сложностью систем. Представляется
естественным и необходимым, стремление распространить этот подход и на системы
информационной безопасности. Сложны не только аппаратно-программные системы,
которые необходимо защищать, но и сами средства безопасности.
Сложная система информационной безопасности на верхнем уровне должна состоять из
небольшого
числа
относительно
независимых
компонентов.
Относительная
независимость понимается как минимизация числа связей между компонентами. Затем
декомпозиции подвергаются выделенные на верхнем уровне компоненты, и так далее вниз
до заданного уровня детализации. В результате система оказывается представленной в
виде иерархии с несколькими уровнями абстракции. Объектно-ориентированный подход
использует объектную декомпозицию, то есть поведение системы описывается в терминах
взаимодействия объектов.
Весьма распространенной конкретизацией объектно-ориентированного подхода являются
компонентные объектные среды. Здесь используется два важных понятия: компонент и
контейнер. Компонент можно определить как многократно используемый объект,
допускающий обработку в графическом инструментальном окружении и сохранение в
долговременной памяти. Контейнеры могут включать в себя множество компонентов и
выступать в роли компонентов других контейнеров.
Компонентные объектные среды обладают всеми достоинствами, присущими объектноориентированному подходу:
 инкапсуляция объектных компонентов скрывает сложность реализации, делая
видимым только предоставляемый вовне интерфейс;
 наследование позволяет развивать созданные ранее компоненты, не нарушая
целостность объектной оболочки;
 полиморфизм дает возможность группировать объекты, характеристики которых с
некоторой точки зрения можно считать сходными.
Применяя объектно-ориентированный подход к вопросам информационной безопасности,
можно ввести понятие грани. Фактически три грани уже были введены: это доступность,
целостность и конфиденциальность. Их можно рассматривать относительно независимо, и
считается, что если все они обеспечены, то обеспечена и ИБ в целом (то есть субъектам
информационных отношений не будет нанесен неприемлемый ущерб). Таким образом
цель структурирована. Средства достижения цели можно структурировать по следующим
граням:
 законодательные меры обеспечения информационной безопасности;
 административные меры (приказы и другие действия руководства организаций,
связанных с защищаемыми информационными системами);
процедурные меры (меры безопасности, ориентированные на людей);
программно-технические меры.
Законы и нормативные акты ориентированы на всех субъектов информационных
отношений независимо от их организационной принадлежности (это могут быть как
юридические, так и физические лица) в пределах страны (международные конвенции
имеют даже более широкую область действия).
Административные меры ориентированы на всех субъектов в пределах организации,
процедурные меры – на отдельных людей (или небольшие категории субъектов),
программно-технические меры – на оборудование и программное обеспечение.
При такой трактовке в переходе с уровня на уровень осуществляется наследование
(каждый следующий уровень не отменяет, а дополняет предыдущий), полиморфизм
(субъекты выступают сразу в нескольких ролях - например, как инициаторы
административных мер и как обычные пользователи, обязанные этим мерам подчиняться)
и инкапсуляция (для фиксированной грани в одной совокупности (например,
доступности) грани в другой совокупности должны пробегать все множество возможных
значений от законодательных, административных, процедурных до программнотехнических мер).


Лекция 2.
Законодательный уровень обеспечения ИБ в РФ.
Законодательный уровень является важнейшим для обеспечения информационной
безопасности. Большинство людей не совершают противоправных действий не потому,
что это технически невозможно, а потому, что это осуждается и/или наказывается
обществом, потому, что так поступать не принято.
К законам, связанным с ИБ, относятся: Конституция РФ, Уголовный, Гражданский
Кодексы и Кодекс об административных правонарушениях, а также ряд федеральных
законов РФ.
Основным законом Российской Федерации является Конституция, принятая 12 декабря
1993 года. В соответствии со статьей 24 Конституции, органы государственной власти и
органы местного самоуправления, их должностные лица обязаны обеспечить каждому
возможность ознакомления с документами и материалами, непосредственно
затрагивающими его права и свободы, если иное не предусмотрено законом.
Статья 23 Конституции гарантирует право на личную и семейную тайну, право на тайну
переписки, телефонных переговоров, почтовых, телеграфных и иных сообщений, статья
29 - право свободно искать, получать, передавать, производить и распространять
информацию любым законным способом. Современная интерпретация этих положений
включает обеспечение конфиденциальности данных, в том числе в процессе их передачи
по компьютерным сетям, а также доступ к средствам защиты информации.
Уголовный кодекс Российской Федерации.
Статья 137. Нарушение неприкосновенности частной жизни
1. Незаконное собирание или распространение сведений о частной жизни лица,
составляющих его личную или семейную тайну, без его согласия либо распространение
этих сведений в публичном выступлении, публично демонстрирующемся произведении
или средствах массовой информации - наказываются штрафом в размере до 200 000
рублей или в размере заработной платы или иного дохода осужденного за период до 18
месяцев, либо обязательными работами на срок от 120 до 180 часов, либо
исправительными работами на срок до 1 года, либо арестом на срок до 4 месяцев, либо
лишением свободы на срок до 2 лет с лишением права занимать определенные должности
или заниматься определенной деятельностью на срок до 3 лет.
2. Те же деяния, совершенные лицом с использованием своего служебного положения, наказываются штрафом в размере от 100 000 до 300 000 рублей или в размере заработной
платы или иного дохода осужденного за период от 1 года до 2 лет, либо лишением права
занимать определенные должности или заниматься определенной деятельностью на срок
от 2 до 5 лет, либо арестом на срок от 4 до 6 месяцев, либо лишением свободы на срок от
1 года до 4 лет с лишением права занимать определенные должности или заниматься
определенной деятельностью на срок до 5 лет.
Статья 138. Нарушение тайны переписки, телефонных переговоров, почтовых,
телеграфных или иных сообщений
1. Нарушение тайны переписки, телефонных переговоров, почтовых, телеграфных или
иных сообщений граждан - наказывается штрафом в размере до 80 000 рублей или в
размере заработной платы или иного дохода осужденного за период до 6 месяцев, либо
обязательными работами на срок от 120 до 180 часов, либо исправительными работами на
срок до 1 года.
2. То же деяние, совершенное лицом с использованием своего служебного положения или
специальных технических средств, предназначенных для негласного получения
информации, - наказывается штрафом в размере от 100 000 до 300 000 рублей или в
размере заработной платы или иного дохода осужденного за период от 1 года до 2 лет,
либо лишением права занимать определенные должности или заниматься определенной
деятельностью на срок от 2 до 5 лет, либо обязательными работами на срок от 180 до 2420
часов, либо арестом на срок от 2 до 4 месяцев, либо лишением свободы на срок от 1 года
до 4 лет.
3. Незаконные производство, сбыт или приобретение специальных технических средств,
предназначенных для негласного получения информации, - наказываются штрафом в
размере до 200 000 рублей или в размере заработной платы или иного дохода осужденного
за период до 18 месяцев, либо ограничением свободы на срок до 3 лет, либо лишением
свободы на срок до 3 лет с лишением права занимать определенные должности или
заниматься определенной деятельностью на срок до 3 лет.
Статья 140. Отказ в предоставлении гражданину информации
Неправомерный отказ должностного лица в предоставлении собранных в установленном
порядке документов и материалов, непосредственно затрагивающих права и свободы
гражданина, либо предоставление гражданину неполной или заведомо ложной
информации, если эти деяния причинили вред правам и законным интересам граждан, наказываются штрафом в размере до 200 000 рублей или в размере заработной платы или
иного дохода осужденного за период до 18 месяцев либо лишением права занимать
определенные должности или заниматься определенной деятельностью на срок от 2 до 5
лет.
Статья 146 УК РФ. Нарушение авторских и смежных прав
1. Присвоение авторства (плагиат), если это деяние причинило крупный ущерб автору или
иному правообладателю, - наказывается штрафом в размере до 200 000 рублей или в
размере заработной платы или иного дохода осужденного за период до 18 месяцев, либо
обязательными работами на срок от 180 до 240 часов, либо арестом на срок от 3 до 6
месяцев.
2. Незаконное использование объектов авторского права или смежных прав, а равно
приобретение, хранение, перевозка контрафактных экземпляров произведений или
фонограмм в целях сбыта, совершенные в крупном размере, - наказываются штрафом в
размере до 200 000 рублей или в размере заработной платы или иного дохода осужденного
за период до 18 месяцев, либо обязательными работами на срок от 180 до 240 часов, либо
лишением свободы на срок до 2 лет.
3. Деяния, предусмотренные частью второй настоящей статьи, если они совершены:
б) группой лиц по предварительному сговору или организованной группой;
в) в особо крупном размере;
г) лицом с использованием своего служебного положения, -
наказываются лишением свободы на срок до 6 лет со штрафом в размере до 500 000
рублей или в размере заработной платы или иного дохода осужденного за период до 3 лет
либо без такового.
Примечание. Деяния, предусмотренные настоящей статьей, признаются совершенными в
крупном размере, если стоимость экземпляров произведений или фонограмм либо
стоимость прав на использование объектов авторского права и смежных прав превышают
50 000 рублей, а в особо крупном размере – 250 000 рублей.
Статья 183 УК РФ. Незаконные получение и разглашение сведений, составляющих
коммерческую, налоговую или банковскую тайну
1. Собирание сведений, составляющих коммерческую, налоговую или банковскую тайну,
путем похищения документов, подкупа или угроз, а равно иным незаконным способом наказывается штрафом в размере до 80 000 рублей или в размере заработной платы или
иного дохода осужденного за период от одного до шести месяцев либо лишением свободы
на срок до 2 лет.
2. Незаконные разглашение или использование сведений, составляющих коммерческую,
налоговую или банковскую тайну, без согласия их владельца лицом, которому она была
доверена или стала известна по службе или работе, - наказываются штрафом в размере до
120 000 рублей или в размере заработной платы или иного дохода осужденного за период
до одного года с лишением права занимать определенные должности или заниматься
определенной деятельностью на срок до трех лет либо лишением свободы на срок до 3
лет.
3. Те же деяния, причинившие крупный ущерб или совершенные из корыстной
заинтересованности, - наказываются штрафом в размере до 200 000 рублей или в размере
заработной платы или иного дохода осужденного за период до восемнадцати месяцев с
лишением права занимать определенные должности или заниматься определенной
деятельностью на срок до трех лет либо лишением свободы на срок до 5 лет.
4. Деяния, предусмотренные частями второй или третьей настоящей статьи, повлекшие
тяжкие последствия, - наказываются лишением свободы на срок до 10 лет.
Глава 28 Уголовного кодекса Российской Федерации
Весьма продвинутым в плане информационной безопасности является Уголовный
кодекс Российской Федерации. Глава 28 - "Преступления в сфере компьютерной
информации" - содержит три статьи:
 статья 272. Неправомерный доступ к компьютерной информации;
 статья 273. Создание, использование и распространение вредоносных программ
для ЭВМ;
 статья 274. Нарушение правил эксплуатации ЭВМ, системы ЭВМ или их сети.
Рассмотрим их подробнее.
Статья 272. Неправомерный доступ к компьютерной информации.
1. Неправомерный доступ к охраняемой законом компьютерной информации, то есть
информации на машинном носителе, в электронно-вычислительной машине (ЭВМ),
системе ЭВМ или их сети, если это деяние повлекло уничтожение, блокирование,
модификацию либо копирование информации, нарушение работы ЭВМ, системы ЭВМ
или их сети, - наказывается штрафом в размере до 200 000 рублей или в размере
заработной платы или иного дохода осужденного за период до 18 месяцев, либо
исправительными работами на срок от 6 месяцев до 1 года, либо лишением свободы на
срок до 2 лет.
2. То же деяние, совершенное группой лиц по предварительному сговору или
организованной группой либо лицом с использованием своего служебного положения, а
равно имеющим доступ к ЭВМ, системе ЭВМ или их сети, - наказывается штрафом в
размере от 100 000 до 300 000 рублей или в размере заработной платы или иного дохода
осужденного за период от 1 года до 2 лет, либо исправительными работами на срок от 1
года до 2 лет, либо арестом на срок от 3 до 6 месяцев, либо лишением свободы на срок до
5 лет.
Статья 273. Создание, использование и распространение вредоносных программ для
ЭВМ.
1. Создание программ для ЭВМ или внесение изменений в существующие программы,
заведомо приводящих к несанкционированному уничтожению, блокированию,
модификации либо копированию информации, нарушению работы ЭВМ, системы ЭВМ
или их сети, а равно использование либо распространение таких программ или машинных
носителей с такими программами - наказываются лишением свободы на срок до 3 лет со
штрафом в размере до 200 000 рублей или в размере заработной платы или иного дохода
осужденного за период до 18 месяцев.
2. Те же деяния, повлекшие по неосторожности тяжкие последствия, - наказываются
лишением свободы на срок от 3 до 7 лет.
Статья 274. Нарушение правил эксплуатации ЭВМ, системы ЭВМ или их сети
1. Нарушение правил эксплуатации ЭВМ, системы ЭВМ или их сети лицом, имеющим
доступ к ЭВМ, системе ЭВМ или их сети, повлекшее уничтожение, блокирование или
модификацию охраняемой законом информации ЭВМ, если это деяние причинило
существенный вред, - наказывается лишением права занимать определенные должности
или заниматься определенной деятельностью на срок до 5 лет, либо обязательными
работами на срок от 180 до 240 часов, либо ограничением свободы на срок до 2 лет.
2. То же деяние, повлекшее по неосторожности тяжкие последствия, - наказывается
лишением свободы на срок до 4 лет.
Статья 283 УК РФ. Разглашение государственной тайны.
1. Разглашение сведений, составляющих государственную тайну, лицом, которому она
была доверена или стала известна по службе или работе, если эти сведения стали
достоянием других лиц, при отсутствии признаков государственной измены наказывается арестом на срок от четырех до шести месяцев либо лишением свободы на
срок до 4 лет с лишением права занимать определенные должности или заниматься
определенной деятельностью на срок до трех лет или без такового.
2. То же деяние, повлекшее по неосторожности тяжкие последствия - наказывается
лишением свободы на срок от 3 до 7 лет с лишением права занимать определенные
должности или заниматься определенной деятельностью на срок до трех лет.
Закон «О государственной тайне» от 21 июля 1993 года N 5486-1.
В нем государственная тайна определена как защищаемые государством сведения в
области его военной, внешнеполитической, экономической, разведывательной,
контрразведывательной и оперативно-розыскной деятельности, распространение которых
может нанести ущерб безопасности Российской Федерации. Там же дается определение
средств защиты информации. Согласно данному Закону, это технические,
криптографические, программные и другие средства, предназначенные для защиты
сведений, составляющих государственную тайну; средства, в которых они реализованы, а
также средства контроля эффективности защиты информации.
Закон
устанавливает
три
степени
секретности
сведений,
составляющих
государственную тайну, и соответствующие этим степеням грифы секретности для
носителей указанных сведений: "особой важности", "совершенно секретно" и "секретно".
К органам защиты государственной тайны относятся межведомственная комиссия по
защите государственной тайны, другие уполномоченные органы федеральной
исполнительной власти.
Закон «О коммерческой тайне» №98-ФЗ от 2004 года.
Коммерческая тайна - режим конфиденциальности информации, позволяющий ее
обладателю при существующих или возможных обстоятельствах увеличить доходы,
избежать неоправданных расходов, сохранить положение на рынке товаров, работ, услуг
или получить иную коммерческую выгоду.
Информация, составляющая коммерческую тайну (секрет производства) - сведения
любого характера (производственные, технические, экономические, организационные и
другие), в том числе о результатах интеллектуальной деятельности в научно-технической
сфере, а также сведения о способах осуществления профессиональной деятельности,
которые имеют действительную или потенциальную коммерческую ценность в силу
неизвестности их третьим лицам, к которым у третьих лиц нет свободного доступа на
законном основании и в отношении которых обладателем таких сведений введен режим
коммерческой тайны.
Право на отнесение информации к информации, составляющей коммерческую тайну, и на
определение перечня и состава такой информации принадлежит обладателю такой
информации с учетом положений настоящего Федерального закона.
В статье 10 «Охрана конфиденциальности информации» говорится, что меры по
охране конфиденциальности информации, принимаемые ее обладателем, должны
включать в себя:
1) определение перечня информации, составляющей коммерческую тайну;
2) ограничение доступа к информации, составляющей коммерческую тайну, путем
установления порядка обращения с этой информацией и контроля за соблюдением такого
порядка;
3) учет лиц, получивших доступ к информации, составляющей коммерческую тайну, и
(или) лиц, которым такая информация была предоставлена или передана;
4) регулирование отношений по использованию информации, составляющей
коммерческую тайну, работниками на основании трудовых договоров и контрагентами на
основании гражданско-правовых договоров;
5) нанесение на материальные носители (документы), содержащие информацию,
составляющую коммерческую тайну, грифа "Коммерческая тайна" с указанием
обладателя этой информации (для юридических лиц - полное наименование и место
нахождения, для индивидуальных предпринимателей - фамилия, имя, отчество
гражданина, являющегося индивидуальным предпринимателем, и место жительства).
Режим коммерческой тайны считается установленным после принятия обладателем
информации, составляющей коммерческую тайну, мер, указанных выше.
В статье 11 говорится, что в целях охраны конфиденциальности информации
работодатель обязан:
1) ознакомить под расписку работника, доступ которого к информации, составляющей
коммерческую тайну, необходим для выполнения им своих трудовых обязанностей, с
перечнем информации, составляющей коммерческую тайну, обладателями которой
является работодатель и его контрагенты;
2) ознакомить под расписку работника с установленным работодателем режимом
коммерческой тайны и с мерами ответственности за его нарушение.
Закон “О персональных данных” №152-ФЗ от 2006 года
В законе (статья 3)дается определение персональных данных - любая информация,
относящаяся к определенному или определяемому на основании такой информации
физическому лицу (субъекту персональных данных), в том числе его фамилия, имя,
отчество, год, месяц, дата и место рождения, адрес, семейное, социальное, имущественное
положение, образование, профессия, доходы, другая информация.
В статье 5 говорится о принципах обработки персональных данных. Это:
1) законность целей и способов обработки персональных данных и добросовестность;
2) соответствие целей обработки персональных данных целям, заранее определенным и
заявленным при сборе персональных данных, а также полномочиям оператора;
3) соответствие объема и характера обрабатываемых персональных данных, способов
обработки персональных данных целям обработки персональных данных;
4) достоверность персональных данных, их достаточность для целей обработки,
недопустимость обработки персональных данных, избыточных по отношению к целям,
заявленным при сборе персональных данных;
5) недопустимость объединения созданных для несовместимых между собой целей баз
данных информационных систем персональных данных.
Хранение персональных данных должно осуществляться в форме, позволяющей
определить субъекта персональных данных, не дольше, чем этого требуют цели их
обработки, и они подлежат уничтожению по достижении целей обработки или в случае
утраты необходимости в их достижении.
В статье 6 говорится об условиях обработки персональных данных:
1. Обработка персональных данных может осуществляться оператором с согласия
субъектов персональных данных.
2. Согласия субъекта персональных данных не требуется в следующих случаях:
1) обработка персональных данных осуществляется на основании федерального закона,
устанавливающего ее цель, условия получения персональных данных и круг субъектов,
персональные данные которых подлежат обработке, а также определяющего полномочия
оператора;
2) обработка персональных данных осуществляется в целях исполнения договора, одной
из сторон которого является субъект персональных данных;
3) обработка персональных данных осуществляется для статистических или иных
научных целей при условии обязательного обезличивания персональных данных;
4) обработка персональных данных необходима для защиты жизни, здоровья или иных
жизненно важных интересов субъекта персональных данных, если получение согласия
субъекта персональных данных невозможно;
5) обработка персональных данных необходима для доставки почтовых отправлений
организациями почтовой связи, для осуществления операторами электросвязи расчетов с
пользователями услуг связи за оказанные услуги связи, а также для рассмотрения
претензий пользователей услугами связи;
6) обработка персональных данных осуществляется в целях профессиональной
деятельности журналиста либо в целях научной, литературной или иной творческой
деятельности при условии, что при этом не нарушаются права и свободы субъекта
персональных данных;
7) осуществляется обработка персональных данных, подлежащих опубликованию в
соответствии с федеральными законами, в том числе персональных данных лиц,
замещающих государственные должности, должности государственной гражданской
службы, персональных данных кандидатов на выборные государственные или
муниципальные должности.
В статье 8 говорится об общедоступных источниках персональных данных:
1. В целях информационного обеспечения могут создаваться общедоступные источники
персональных данных (в том числе справочники, адресные книги). В общедоступные
источники персональных данных с письменного согласия субъекта персональных данных
могут включаться его фамилия, имя, отчество, год и место рождения, адрес, абонентский
номер, сведения о профессии и иные персональные данные, предоставленные субъектом
персональных данных.
2. Сведения о субъекте персональных данных могут быть в любое время исключены из
общедоступных источников персональных данных по требованию субъекта персональных
данных либо по решению суда или иных уполномоченных государственных органов.
В статье 10 говорится, что обработка специальных категорий персональных данных,
касающихся расовой, национальной принадлежности, политических взглядов,
религиозных или философских убеждений, состояния здоровья, интимной жизни, не
допускается. Исключение составляют угрозы здоровью субъекту персональных данных,
обработка персональных данных в медико-профилактических целях и в
правоохранительных целях и др. при соблюдении определенных условий.
В статье 14 говорится о праве субъекта персональных данных на доступ к своим
персональным данным (на основании 24 статьи Конституции РФ).
В статье 19 говорится о мерах по обеспечению безопасности персональных данных при
их обработке. В частности, что оператор при обработке персональных данных обязан
принимать необходимые организационные и технические меры, в том числе использовать
шифровальные (криптографические) средства, для защиты персональных данных от
неправомерного или случайного доступа к ним, уничтожения, изменения, блокирования,
копирования, распространения персональных данных, а также от иных неправомерных
действий.
В статье 22 говорится об уведомлении об обработке персональных данных, что оператор
до начала обработки персональных данных обязан уведомить уполномоченный орган по
защите прав субъектов персональных данных о своем намерении осуществлять обработку
персональных данных.
Закон "Об информации, информационных технологиях и о защите информации" от
27 июля 2006 года N 149-ФЗ.
В статье 3 закона говорится о принципах правового регулирования отношений,
возникающих в сфере информации, информационных технологий и защиты информации.
Это:
1) свобода поиска, получения, передачи, производства и распространения информации
любым законным способом;
2) установление ограничений доступа к информации только федеральными законами;
3) открытость информации о деятельности государственных органов и органов местного
самоуправления и свободный доступ к такой информации, кроме случаев, установленных
федеральными законами;
4) обеспечение безопасности Российской Федерации при создании информационных
систем, их эксплуатации и защите содержащейся в них информации;
5) достоверность информации и своевременность ее предоставления;
6) неприкосновенность частной жизни, недопустимость сбора, хранения, использования и
распространения информации о частной жизни лица без его согласия.
В статье 5 информация, в зависимости от категории доступа к ней, подразделяется на
общедоступную информацию, а также на информацию, доступ к которой ограничен
федеральными законами (информация ограниченного доступа). Информация в
зависимости от порядка ее предоставления или распространения подразделяется на:
1) информацию, свободно распространяемую;
2) информацию, предоставляемую по соглашению лиц, участвующих в соответствующих
отношениях;
3) информацию, которая в соответствии с федеральными законами подлежит
предоставлению или распространению;
4) информацию, распространение которой в Российской Федерации ограничивается или
запрещается.
В статье 9 по вопросам ограничения доступа к информации говорится:
1. Обязательным является соблюдение конфиденциальности информации, доступ к
которой ограничен федеральными законами.
2. Защита информации, составляющей государственную тайну, осуществляется в
соответствии с законодательством Российской Федерации о государственной тайне.
3. Федеральными законами устанавливаются условия отнесения информации к сведениям,
составляющим коммерческую тайну, служебную тайну и иную тайну, обязательность
соблюдения конфиденциальности такой информации, а также ответственность за ее
разглашение.
4. Информация, полученная гражданами (физическими лицами) при исполнении ими
профессиональных обязанностей или организациями при осуществлении ими
определенных видов деятельности (профессиональная тайна), подлежит защите в случаях,
если на эти лица федеральными законами возложены обязанности по соблюдению
конфиденциальности такой информации.
В статье 16 говорится о защите информации:
1. Защита информации представляет собой принятие правовых, организационных и
технических мер, направленных на:
1) обеспечение защиты информации от неправомерного доступа, уничтожения,
модифицирования, блокирования, копирования, предоставления, распространения, а
также от иных неправомерных действий в отношении такой информации;
2) соблюдение конфиденциальности информации ограниченного доступа,
3) реализацию права на доступ к информации.
Закон вводит понятие информационной системы и их подразделение на государственные,
муниципальные и иные.
Закон "О лицензировании отдельных видов деятельности" от 8 августа 2001 года N
128-ФЗ
Статья 17 Закона устанавливает перечень видов деятельности, на осуществление которых
требуются лицензии. С точки зрения предмета ИБ интересны следующие виды:
 распространение шифровальных (криптографических) средств;
 техническое обслуживание шифровальных (криптографических) средств;
 предоставление услуг в области шифрования информации;
 разработка и производство шифровальных (криптографических) средств,
защищенных с использованием шифровальных (криптографических) средств
информационных систем, телекоммуникационных систем;
 выявление электронных устройств, предназначенных для негласного получения
информации, в помещениях и технических средствах (за исключением случая, если
указанная деятельность осуществляется для обеспечения собственных нужд
юридического лица или индивидуального предпринимателя);
 разработка и (или) производство средств защиты конфиденциальной информации;
 техническая защита конфиденциальной информации;
 разработка, производство, реализация и приобретение в целях продажи
специальных технических средств, предназначенных для негласного получения
информации, индивидуальными предпринимателями и юридическими лицами,
осуществляющими предпринимательскую деятельность;
 изготовление экземпляров аудиовизуальных произведений, программ для ЭВМ, баз
данных и фонограмм на любых видах носителей (за исключением случаев, если
указанная деятельность самостоятельно осуществляется лицами, обладающими
правами на использование указанных объектов авторских и смежных прав в силу
федерального закона или договора).
Необходимо учитывать, что, согласно статье 1, действие данного Закона не
распространяется на следующие виды деятельности:
 деятельность, связанная с защитой государственной тайны;
 деятельность в области связи;
 образовательная деятельность.
Срок действия лицензии не может быть менее 5 лет.
Основные лицензирующие органы и их функции
Основными лицензирующими органами в области защиты информации являются
Федеральная служба охраны (ранее Федеральное агентство правительственной связи и
информации - ФАПСИ) и Федеральная служба по техническому и экспортному контролю
– ФСТЭК (ранее Гостехкомиссия при Президенте РФ). ФАПСИ ведает всем, что связано с
криптографией, ФСТЭК лицензирует деятельность по защите конфиденциальной
информации (Положение о сертификации средств защиты информации по требованиям
безопасности информации). Все эти вопросы регламентированы соответствующими
указами Президента и постановлениями Правительства РФ.
Гражданский кодекс Российской Федерации
За обеспечение защиты авторских и смежных прав отвечает 4 глава гражданского кодекса
РФ, вступившая в действие с 01.01.208 года.
Статья 1225. Охраняемые результаты интеллектуальной деятельности и средства
индивидуализации
1. Результатами интеллектуальной деятельности и приравненными к ним средствами
индивидуализации юридических лиц, товаров, работ, услуг и предприятий, которым
предоставляется правовая охрана (интеллектуальной собственностью), являются:
2) программы для ЭВМ;
3) базы данных.
Статья 1236. Виды лицензионных договоров
1. Лицензионный договор может предусматривать:
1) предоставление лицензиату права использования результата интеллектуальной
деятельности или средства индивидуализации с сохранением за лицензиаром права
выдачи лицензий другим лицам (простая (неисключительная) лицензия);
2) предоставление лицензиату права использования результата интеллектуальной
деятельности или средства индивидуализации без сохранения за лицензиаром права
выдачи лицензий другим лицам (исключительная лицензия).
Статья 1259. Объекты авторских прав
К объектам авторских прав также относятся программы для ЭВМ, которые охраняются
как литературные произведения.
Статья 1261. Программы для ЭВМ
Авторские права на все виды программ для ЭВМ (в том числе на операционные системы и
программные комплексы), которые могут быть выражены на любом языке и в любой
форме, включая исходный текст и объектный код, охраняются так же, как авторские права
на произведения литературы. Программой для ЭВМ является представленная в
объективной форме совокупность данных и команд, предназначенных для
функционирования ЭВМ и других компьютерных устройств в целях получения
определенного результата, включая подготовительные материалы, полученные в ходе
разработки программы для ЭВМ, и порождаемые ею аудиовизуальные отображения.
Статья 1273.Свободное воспроизведение произведения в личных целях
Допускается без согласия автора или иного правообладателя и без выплаты
вознаграждения воспроизведение гражданином исключительно в личных целях
правомерно обнародованного произведения, за исключением:
3) воспроизведения программ для ЭВМ, кроме случаев, предусмотренных статьей 1280
настоящего Кодекса;
Статья 1280. Свободное воспроизведение программ для ЭВМ и баз данных.
Декомпилирование программ для ЭВМ
1. Лицо, правомерно владеющее экземпляром программы для ЭВМ или экземпляром базы
данных (пользователь), вправе без разрешения автора или иного правообладателя и без
выплаты дополнительного вознаграждения:
1) внести в программу для ЭВМ или базу данных изменения исключительно в целях их
функционирования на технических средствах пользователя и осуществлять действия,
необходимые для функционирования таких программы или базы данных в соответствии с
их назначением, в том числе запись и хранение в памяти ЭВМ (одной ЭВМ или одного
пользователя сети), а также осуществить исправление явных ошибок, если иное не
предусмотрено договором с правообладателем;
2) изготовить копию программы для ЭВМ или базы данных при условии, что эта копия
предназначена только для архивных целей или для замены правомерно приобретенного
экземпляра в случаях, когда такой экземпляр утерян, уничтожен или стал непригоден для
использования. При этом копия программы для ЭВМ или базы данных не может быть
использована в иных целях, чем цели, указанные в подпункте 1 настоящего пункта, и
должна быть уничтожена, если владение экземпляром таких программы или базы данных
перестало быть правомерным.
2. Лицо, правомерно владеющее экземпляром программы для ЭВМ, вправе без согласия
правообладателя и без выплаты дополнительного вознаграждения изучать, исследовать
или испытывать функционирование такой программы в целях определения идей и
принципов, лежащих в основе любого элемента программы для ЭВМ, путем
осуществления действий, предусмотренных подпунктом 1 пункта 1 настоящей статьи.
3. Лицо, правомерно владеющее экземпляром программы для ЭВМ, вправе без согласия
правообладателя и без выплаты дополнительного вознаграждения воспроизвести и
преобразовать объектный код в исходный текст (декомпилировать программу для ЭВМ)
или поручить иным лицам осуществить эти действия, если они необходимы для
достижения способности к взаимодействию независимо разработанной этим лицом
программы для ЭВМ с другими программами, которые могут взаимодействовать с
декомпилируемой программой, при соблюдении следующих условий:
1) информация, необходимая для достижения способности к взаимодействию, ранее не
была доступна этому лицу из других источников;
2) указанные действия осуществляются в отношении только тех частей декомпилируемой
программы для ЭВМ, которые необходимы для достижения способности к
взаимодействию;
3) информация, полученная в результате декомпилирования, может использоваться лишь
для достижения способности к взаимодействию независимо разработанной программы
для ЭВМ с другими программами, не может передаваться иным лицам, за исключением
случаев, когда это необходимо для достижения способности к взаимодействию
независимо разработанной программы для ЭВМ с другими программами, а также не
может использоваться для разработки программы для ЭВМ, по своему виду существенно
схожей с декомпилируемой программой для ЭВМ, или для осуществления другого
действия, нарушающего исключительное право на программу для ЭВМ.
4. Применение положений, предусмотренных настоящей статьей, не должно наносить
неоправданный ущерб нормальному использованию программы для ЭВМ или базы
данных и не должно ущемлять необоснованным образом законные интересы автора или
иного правообладателя.
Статья 1286. Лицензионный договор о предоставлении права использования
произведения
3. Заключение лицензионных договоров о предоставлении права использования
программы для ЭВМ или базы данных допускается путем заключения каждым
пользователем с соответствующим правообладателем договора присоединения, условия
которого изложены на приобретаемом экземпляре таких программы или базы данных
либо на упаковке этого экземпляра. Начало использования таких программы или базы
данных пользователем, как оно определяется этими условиями, означает его согласие на
заключение договора.
Статья 1301. Ответственность за нарушение исключительного права на
произведение
В случаях нарушения исключительного права на произведение автор или иной
правообладатель наряду с использованием других применимых способов защиты и мер
ответственности, установленных настоящим Кодексом (статьи 1250, 1252 и 1253), вправе
в соответствии с пунктом 3 статьи 1252 настоящего Кодекса требовать по своему выбору
от нарушителя вместо возмещения убытков выплаты компенсации:
в размере от 10 000 рублей до 5 000 000 рублей, определяемом по усмотрению суда;
в двукратном размере стоимости экземпляров произведения или в двукратном размере
стоимости права использования произведения, определяемой исходя из цены, которая при
сравнимых обстоятельствах обычно взимается за правомерное использование
произведения.
Кроме этого в 4 главе ГК рассматриваются права изготовителя базы данных.
Кодекс об административных правонарушениях Российской Федерации (КоАП РФ)
Статья 5.39. Отказ в предоставлении гражданину информации
Неправомерный отказ в предоставлении гражданину собранных в установленном порядке
документов, материалов, непосредственно затрагивающих права и свободы гражданина,
либо несвоевременное предоставление таких документов и материалов, непредоставление
иной информации в случаях, предусмотренных законом, либо предоставление гражданину
неполной или заведомо недостоверной информации - влечет наложение
административного штрафа на должностных лиц в размере от 500 до 1 000 рублей.
Статья 7.12. «Нарушение авторских и смежных прав, изобретательских и патентных
прав» предусматривает ответственность:
наложение административного штрафа на граждан в размере от 1 500 до 2 000 рублей с
конфискацией; на должностных лиц - от 10 000 до 20 000 рублей с конфискацией; на
юридических лиц - от 30 000 до 40 000 рублей с конфискацией контрафактных
экземпляров произведений и фонограмм, а также материалов и оборудования,
используемых для их воспроизведения, и иных орудий совершения административного
правонарушения.
Статья 13.11. Нарушение установленного законом порядка сбора, хранения,
использования или распространения информации о гражданах (персональных
данных)
Нарушение установленного законом порядка сбора, хранения, использования или
распространения информации о гражданах (персональных данных) - влечет
предупреждение или наложение административного штрафа на граждан в размере от 300
до 500 рублей; на должностных лиц - от 500 до 1 000 рублей; на юридических лиц - от 5
000 до 10 000 рублей.
Статья 13.12. Нарушение правил защиты информации
1. Нарушение условий, предусмотренных лицензией на осуществление деятельности в
области защиты информации (за исключением информации, составляющей
государственную тайну), - влечет наложение административного штрафа на граждан в
размере от 300 до 500 рублей; на должностных лиц - от 500 до 1 000 рублей; на
юридических лиц - от 5 000 до 10 000 рублей.
2. Использование несертифицированных информационных систем, баз и банков данных, а
также несертифицированных средств защиты информации, если они подлежат
обязательной сертификации (за исключением средств защиты информации, составляющей
государственную тайну), - влечет наложение административного штрафа на граждан в
размере от 500 до 1 000 рублей с конфискацией несертифицированных средств защиты
информации или без таковой; на должностных лиц - от 1 000 до 2 000 рублей; на
юридических лиц - от 10 000 до 20 000 рублей с конфискацией несертифицированных
средств защиты информации или без таковой.
3. Нарушение условий, предусмотренных лицензией на проведение работ, связанных с
использованием и защитой информации, составляющей государственную тайну,
созданием средств, предназначенных для защиты информации, составляющей
государственную тайну, осуществлением мероприятий и (или) оказанием услуг по защите
информации,
составляющей
государственную
тайну,
влечет
наложение
административного штрафа на должностных лиц в размере от 2 000 до 3 000 рублей; на
юридических лиц - от 15 000 до 20 000 рублей.
4. Использование несертифицированных средств, предназначенных для защиты
информации,
составляющей
государственную
тайну,
влечет
наложение
административного штрафа на должностных лиц в размере от 3 000 до 4 000 рублей; на
юридических лиц - от 20 000 до 30 000 рублей с конфискацией несертифицированных
средств, предназначенных для защиты информации, составляющей государственную
тайну, или без таковой.
5. Грубое нарушение условий, предусмотренных лицензией на осуществление
деятельности в области защиты информации (за исключением информации,
составляющей государственную тайну), - влечет наложение административного штрафа
на лиц, осуществляющих предпринимательскую деятельность без образования
юридического лица, в размере от 1 000 до 1 500 рублей или административное
приостановление деятельности на срок до девяноста суток; на должностных лиц - от 1 000
до 1 500 рублей; на юридических лиц - от 10 000 до 15 000 рублей или административное
приостановление деятельности на срок до девяноста суток.
Статья 13.13. Незаконная деятельность в области защиты информации
1. Занятие видами деятельности в области защиты информации (за исключением
информации, составляющей государственную тайну) без получения в установленном
порядке специального разрешения (лицензии), если такое разрешение (такая лицензия) в
соответствии с федеральным законом обязательно (обязательна), - влечет наложение
административного штрафа на граждан в размере от 500 до 1 000 рублей с конфискацией
средств защиты информации или без таковой; на должностных лиц - от 2 000 до 3 000
рублей с конфискацией средств защиты информации или без таковой; на юридических
лиц - от 10 000 до 20 000 рублей с конфискацией средств защиты информации или без
таковой.
2. Занятие видами деятельности, связанной с использованием и защитой информации,
составляющей государственную тайну, созданием средств, предназначенных для защиты
информации, составляющей государственную тайну, осуществлением мероприятий и
(или) оказанием услуг по защите информации, составляющей государственную тайну, без
лицензии, - влечет наложение административного штрафа на должностных лиц в размере
от 4 000 до 5 000 рублей; на юридических лиц - от 30 000 до 40 000 рублей с
конфискацией созданных без лицензии средств защиты информации, составляющей
государственную тайну, или без таковой.
Статья 13.14. Разглашение информации с ограниченным доступом
Разглашение информации, доступ к которой ограничен федеральным законом (за
исключением случаев, если разглашение такой информации влечет уголовную
ответственность), лицом, получившим доступ к такой информации в связи с исполнением
служебных или профессиональных обязанностей, за исключением случаев,
предусмотренных частью 1 статьи 14.33 настоящего Кодекса, - влечет наложение
административного штрафа на граждан в размере от 500 до одной 1 000 рублей; на
должностных лиц - от 4 000 до 5 000 рублей.
Модуль 2.
Лекция 3.
Технические спецификации в ИБ. Требования международных стандартов.
Требования государственных стандартов.
Бывают оценочные стандарты, направленные на классификацию информационных
систем и средств защиты по требованиям безопасности и технические спецификации,
регламентирующие различные аспекты реализации средств защиты.
"Оранжевая книга" как оценочный стандарт
Исторически первым оценочным стандартом, получившим широкое распространение и
оказавшим огромное влияние на базу стандартизации ИБ во многих странах, стал
стандарт Министерства обороны США "Критерии оценки доверенных компьютерных
систем". Данный труд, называемый чаще всего по цвету обложки "Оранжевой книгой",
был впервые опубликован в августе 1983 года. Из его названия следует, что речь идет не о
безопасных, а о доверенных системах, то есть системах, которым можно оказать
определенную степень доверия.
"Оранжевая книга" дает понятие безопасной системы, которая "управляет, с помощью
соответствующих средств доступом к информации, так что только должным образом
авторизованные лица или процессы, действующие от их имени, получают право читать,
записывать, создавать и удалять информацию". Очевидно, что абсолютно безопасных
систем не существует, поэтому есть смысл оценивать лишь степень доверия, которое
можно оказать той или иной системе.
В "Оранжевой книге" доверенная система определяется как "система, использующая
достаточные аппаратные и программные средства, чтобы обеспечить одновременную
обработку информации разной степени секретности группой пользователей без
нарушения прав доступа".
В рассматриваемых Критериях безопасность и доверие оцениваются исключительно с
точки зрения управления доступом к данным, что является одним из средств обеспечения
конфиденциальности и целостности (статической). Вопросы доступности "Оранжевая
книга" не затрагивает.
Степень доверия оценивается по двум основным критериям:
1. Политика безопасности - набор законов, правил и норм поведения,
определяющих, как организация обрабатывает, защищает и распространяет
информацию. В частности, правила определяют, в каких случаях пользователь
может оперировать конкретными наборами данных. Чем выше степень доверия
системе, тем строже и многообразнее должна быть политика безопасности. В
зависимости от сформулированной политики можно выбирать конкретные
механизмы обеспечения безопасности. Политика безопасности - это активный
аспект защиты, включающий в себя анализ возможных угроз и выбор мер
противодействия.
2. Уровень гарантированности - мера доверия, которая может быть оказана
архитектуре и реализации ИС. Доверие безопасности может проистекать как из
анализа результатов тестирования, так и из проверки (формальной или нет) общего
замысла и реализации системы в целом и отдельных ее компонентов. Уровень
гарантированности показывает, насколько корректны механизмы, отвечающие за
реализацию политики безопасности. Это пассивный аспект защиты.
Из пассивных аспектов защиты в "Оранжевой книге" рассматривается два вида
гарантированности - операционная и технологическая.
Операционная гарантированность относится к архитектурным и реализационным
аспектам системы, технологическая - к методам построения и сопровождения.
Операционная гарантированность включает в себя проверку следующих элементов:
 архитектура системы;
 целостность системы;
 проверка тайных каналов передачи информации;
 доверенное администрирование;
 доверенное восстановление после сбоев.
Операционная гарантированность - это способ убедиться в том, что архитектура системы
и ее реализация действительно реализуют избранную политику безопасности.
Технологическая гарантированность охватывает весь жизненный цикл ИС, то есть
периоды проектирования, реализации, тестирования, продажи и сопровождения. Все
перечисленные действия должны выполняться в соответствии с жесткими стандартами,
чтобы исключить утечку информации и нелегальные "закладки".
Важным средством обеспечения безопасности является механизм протоколирования.
Доверенная система должна фиксировать все события, касающиеся безопасности. Ведение
протоколов должно дополняться аудитом, то есть анализом регистрационной
информации.
Доверенная вычислительная база - это совокупность защитных механизмов ИС
(включая аппаратное и программное обеспечение), отвечающих за проведение в жизнь
политики безопасности. Качество вычислительной базы определяется исключительно ее
реализацией и корректностью исходных данных, которые вводит системный
администратор. Концепция доверенной вычислительной базы является центральной при
оценке степени доверия безопасности.
Основное назначение доверенной вычислительной базы - выполнять функции монитора
обращений, то есть контролировать допустимость выполнения субъектами (активными
сущностями ИС, действующими от имени пользователей) определенных операций над
объектами (пассивными сущностями). Монитор проверяет каждое обращение
пользователя к программам или данным на предмет согласованности с набором действий,
допустимых для пользователя.
Монитор обращений должен обладать тремя качествами:
1. Изолированность. Необходимо предупредить возможность отслеживания работы
монитора.
2. Полнота. Монитор должен вызываться при каждом обращении, не должно быть
способов обойти его.
3. Верифицируемость. Монитор должен быть компактным, чтобы его можно было
проанализировать и протестировать.
Реализация монитора обращений называется ядром безопасности. Ядро безопасности это основа, на которой строятся все защитные механизмы. Помимо перечисленных выше
свойств монитора обращений, ядро должно гарантировать собственную неизменность.
Границу доверенной вычислительной базы называют периметром безопасности. Как уже
указывалось, компоненты, лежащие вне периметра безопасности, вообще говоря, могут не
быть доверенными. С развитием распределенных систем понятию "периметр
безопасности" все чаще придают другой смысл, имея в виду границу владений
определенной организации. То, что находится внутри владений, считается доверенным, а
то, что вне, - нет.
Механизмы безопасности
Согласно "Оранжевой книге", политика безопасности должна обязательно включать в
себя следующие элементы:
 произвольное управление доступом;
 безопасность повторного использования объектов;
 метки безопасности;
 принудительное управление доступом.
Произвольное управление доступом (называемое иногда дискреционным) - это метод
разграничения доступа к объектам, основанный на учете личности субъекта или группы, в
которую субъект входит. Произвольность управления состоит в том, что некоторое лицо
(обычно владелец объекта) может по своему усмотрению предоставлять другим субъектам
или отбирать у них права доступа к объекту.
Безопасность повторного использования объектов - важное дополнение средств
управления доступом, предохраняющее от случайного или преднамеренного извлечения
конфиденциальной информации из "мусора". Безопасность повторного использования
должна гарантироваться для областей оперативной памяти (в частности, для буферов с
образами экрана, расшифрованными паролями и т.п.), для дисковых блоков и магнитных
носителей в целом.
Метки безопасности состоят из двух частей - уровня секретности и списка категорий.
Уровни секретности образуют упорядоченное множество, категории - неупорядоченное.
Назначение последних - описать предметную область, к которой относятся данные. Для
реализации принудительного управления доступом с субъектами и объектами
ассоциируются метки безопасности. Метка субъекта описывает его благонадежность,
метка объекта - степень конфиденциальности содержащейся в нем информации.
Принудительное (или мандатное) управление доступом (зависит от воли субъектов)
основано на сопоставлении меток безопасности субъекта и объекта. После того, как
зафиксированы
метки
безопасности
субъектов
и
объектов,
оказываются
зафиксированными и права доступа.
Субъект может читать информацию из объекта, если уровень секретности субъекта не
ниже, чем у объекта, а все категории, перечисленные в метке безопасности объекта,
присутствуют в метке субъекта. В таком случае говорят, что метка субъекта доминирует
над меткой объекта.
Субъект может записывать информацию в объект, если метка безопасности объекта
доминирует над меткой субъекта. В частности, "конфиденциальный" субъект может
записывать данные в секретные файлы, но не может - в несекретные.
Если понимать политику безопасности как правила разграничения доступа, то механизм
подотчетности является дополнением подобной политики. Цель подотчетности - в
каждый момент времени знать, кто работает в системе и что делает. Средства
подотчетности делятся на три категории:
 идентификация и аутентификация;
 предоставление доверенного пути;
 анализ регистрационной информации.
Обычный способ идентификации - ввод имени пользователя при входе в систему.
Стандартное средство проверки подлинности (аутентификации) пользователя - пароль.
Доверенный путь связывает пользователя непосредственно с доверенной вычислительной
базой, минуя другие, потенциально опасные компоненты ИС. Цель предоставления
доверенного пути - дать пользователю возможность убедиться в подлинности
обслуживающей его системы.
"Оранжевая книга" предусматривает наличие средств выборочного протоколирования, как
в отношении пользователей, так и в отношении событий.
Классы безопасности
"Оранжевая книга" Министерства обороны США открыла путь к ранжированию
информационных систем по степени доверия безопасности.
В "Оранжевой книге" определяется четыре уровня доверия - D, C, B и A:
 уровень C - произвольное управление доступом;
 уровень B - принудительное управление доступом;
 уровень A - верифицируемая безопасность.
Уровень D предназначен для систем, признанных неудовлетворительными. По мере
перехода от уровня C к A к системам предъявляются все более жесткие требования.
Уровни C и B подразделяются на классы (C1, C2, B1, B2, B3) с постепенным возрастанием
степени доверия.
Всего имеется шесть классов безопасности - C1, C2, B1, B2, B3, A1. Чтобы в результате
процедуры сертификации систему можно было отнести к некоторому классу, ее политика
безопасности и уровень гарантированности должны удовлетворять заданным
требованиям.
Например, требования к ИС согласно классу C1:
 доверенная вычислительная база должна управлять доступом именованных
пользователей к именованным объектам;
 пользователи должны идентифицировать себя, прежде чем выполнять какие-либо
иные действия, контролируемые доверенной вычислительной базой. Для
аутентификации должен использоваться какой-либо защитный механизм, например
пароли. Аутентификационная информация должна быть защищена от
несанкционированного доступа;
 доверенная вычислительная база должна поддерживать область для собственного
выполнения, защищенную от внешних воздействий (в частности, от изменения
команд и/или данных) и от попыток слежения за ходом работы;
должны быть в наличии аппаратные и/или программные средства, позволяющие
периодически проверять корректность функционирования аппаратных и
микропрограммных компонентов доверенной вычислительной базы;
 защитные механизмы должны быть протестированы на предмет соответствия их
поведения системной документации. Тестирование должно подтвердить, что у
неавторизованного пользователя нет очевидных способов обойти или разрушить
средства защиты доверенной вычислительной базы;
 должны быть описаны подход к безопасности, используемый производителем, и
применение этого подхода при реализации доверенной вычислительной базы.
Публикация "Оранжевой книги" стала событием в области информационной
безопасности. Появился общепризнанный понятийный базис, без которого даже
обсуждение проблем ИБ было бы затруднительным.
Рекомендации X.800 Сетевые сервисы безопасности
Техническая спецификация X.800 появилась несколько позднее "Оранжевой книги", но
весьма полно и глубоко трактует вопросы информационной безопасности распределенных
систем. В ней можно выделить специфические сетевые функции (сервисы) безопасности,
а также необходимые для их реализации защитные механизмы.
Выделяют следующие сервисы безопасности и исполняемые ими роли:
1. Аутентификация. Данный сервис обеспечивает проверку подлинности партнеров по
общению и проверку подлинности источника данных. Аутентификация партнеров по
общению используется при установлении соединения и, быть может, периодически во
время сеанса. Она служит для предотвращения таких угроз, как маскарад и повтор
предыдущего сеанса связи. Аутентификация бывает односторонней (обычно клиент
доказывает свою подлинность серверу) и двусторонней (взаимной).
2. Управление доступом. Обеспечивает защиту от несанкционированного использования
ресурсов, доступных по сети.
3. Конфиденциальность данных. Обеспечивает защиту от несанкционированного
получения информации. Отдельно стоит упомянуть конфиденциальность трафика (это
защита информации, которую можно получить, анализируя сетевые потоки данных).
4. Целостность данных подразделяется на подвиды в зависимости от того, какой тип
общения используют партнеры - с установлением соединения или без него, защищаются
ли все данные или только отдельные поля, обеспечивается ли восстановление в случае
нарушения целостности.
5. Неотказуемость (невозможность отказаться от совершенных действий) обеспечивает
два вида услуг: неотказуемость с подтверждением подлинности источника данных и
неотказуемость с подтверждением доставки. Побочным продуктом неотказуемости
является аутентификация источника данных.
Сетевые механизмы безопасности
Для реализации сервисов (функций) безопасности могут использоваться следующие
механизмы и их комбинации:
1. шифрование;
2. электронная цифровая подпись;
3. механизмы управления доступом. Могут располагаться на любой из участвующих в
общении сторон или в промежуточной точке;
4. механизмы контроля целостности данных. В рекомендациях X.800 различаются два
аспекта целостности: целостность отдельного сообщения или поля информации и
целостность потока сообщений или полей информации. Для проверки целостности потока
сообщений (то есть для защиты от кражи, переупорядочивания, дублирования и вставки
сообщений) используются порядковые номера, временные штампы, криптографическое
связывание или иные аналогичные приемы;
5. механизмы аутентификации. Согласно рекомендациям X.800, аутентификация может
достигаться за счет использования паролей, личных карточек или иных устройств

аналогичного назначения, криптографических методов, устройств измерения и анализа
биометрических характеристик;
6. механизмы дополнения трафика (выработка и поддержание правил, задающих
характеристики дополняющих сообщений - частоту отправки, размер и т.п.);
7. механизмы управления маршрутизацией. Маршруты могут выбираться статически
или динамически. Оконечная система, зафиксировав неоднократные атаки на
определенном маршруте, может отказаться от его использования. На выбор маршрута
способна повлиять метка безопасности, ассоциированная с передаваемыми данными;
8. механизмы нотаризации. Служат для заверения таких коммуникационных
характеристик, как целостность, время, личности отправителя и получателей. Заверение
обеспечивается надежной третьей стороной, обладающей достаточной информацией.
Обычно нотаризация опирается на механизм электронной подписи.
2. Требования международных стандартов.
Стандарт ISO/IEC 15408 "Критерии оценки безопасности информационных
технологий"
Этот международный стандарт стал итогом почти десятилетней работы специалистов
нескольких стран, он вобрал в себя опыт существовавших к тому времени документов
национального и межнационального масштаба. По историческим причинам данный
стандарт часто называют "Общими критериями" (или даже ОК).
"Общие критерии" на самом деле являются метастандартом, определяющим инструменты
оценки безопасности ИС и порядок их использования. В отличие от "Оранжевой книги",
ОК не содержат предопределенных "классов безопасности". Такие классы можно строить,
исходя из требований безопасности, существующих для конкретной организации и/или
конкретной информационной системы.
С программистской точки зрения ОК можно считать набором библиотек, помогающих
писать содержательные "программы" - задания по безопасности, типовые профили
защиты и т.п. Как и "Оранжевая книга", ОК содержат два основных вида требований
безопасности:
 функциональные, соответствующие активному аспекту защиты, предъявляемые к
функциям безопасности и реализующим их механизмам;
 требования доверия, соответствующие пассивному аспекту, предъявляемые к
технологии и процессу разработки и эксплуатации.
Требования безопасности предъявляются, а их выполнение проверяется для
определенного
объекта
оценки
аппаратно-программного
продукта
или
информационной системы.
Очень важно, что безопасность в ОК рассматривается не статично, а в привязке к
жизненному циклу объекта оценки. Выделяются следующие этапы:
 определение назначения, условий применения, целей и требований безопасности;
 проектирование и разработка;
 испытания, оценка и сертификация;
 внедрение и эксплуатация.
В ОК объект оценки рассматривается в контексте среды безопасности, которая
характеризуется определенными условиями и угрозами.
В свою очередь, угрозы характеризуются следующими параметрами:
 источник угрозы;
 метод воздействия;
 уязвимые места, которые могут быть использованы;
 ресурсы (активы), которые могут пострадать.
Уязвимые места могут возникать из-за недостатка в:
 требованиях безопасности;
 проектировании;
 эксплуатации.
Слабые места по возможности следует устранить, минимизировать или хотя бы
постараться ограничить возможный ущерб от их преднамеренного использования или
случайной активизации.
С точки зрения технологии программирования в ОК использован устаревший
библиотечный (не объектный) подход. Чтобы структурировать пространство требований,
в "Общих критериях" введена иерархия класс-семейство-компонент-элемент:
1. Классы определяют наиболее общую, "предметную" группировку требований
(например, функциональные требования подотчетности).
2. Семейства в пределах класса различаются по строгости и другим нюансам
требований.
3. Компонент - минимальный набор требований, фигурирующий как целое.
4. Элемент - неделимое требование.
Как и между библиотечными функциями, между компонентами ОК могут существовать
зависимости. Они возникают, когда компонент сам по себе недостаточен для достижения
цели безопасности. Вообще говоря, не все комбинации компонентов имеют смысл, и
понятие зависимости в какой-то степени компенсирует недостаточную выразительность
библиотечной организации, хотя и не заменяет объединение функций в содержательные
объектные интерфейсы. С помощью библиотек могут формироваться два вида
нормативных документов: профиль защиты и задание по безопасности.
Профиль защиты (ПЗ) представляет собой типовой набор требований, которым должны
удовлетворять продукты и/или системы определенного класса (например, операционные
системы на компьютерах в правительственных организациях).
Задание по безопасности содержит совокупность требований к конкретной разработке,
выполнение которых обеспечивает достижение поставленных целей безопасности.
В ОК нет готовых классов защиты. Сформировать классификацию в терминах "Общих
критериев" - значит определить несколько иерархически упорядоченных профилей
защиты, в максимально возможной степени использующих стандартные функциональные
требования и требования доверия безопасности.
Выделение некоторого подмножества из всего множества профилей защиты во многом
носит субъективный характер. По целому ряду соображений (одним из которых является
желание
придерживаться
объектно-ориентированного
подхода)
целесообразно
сформировать сначала отправную точку классификации, выделив базовый (минимальный)
ПЗ, а дополнительные требования компоновать в функциональные пакеты.
Функциональный пакет - это неоднократно используемая совокупность компонентов,
объединенных для достижения определенных целей безопасности. "Общие критерии" не
регламентируют структуру пакетов, процедуры верификации, регистрации и т.п., отводя
им роль технологического средства формирования ПЗ.
Базовый профиль защиты должен включать требования к основным (обязательным в
любом случае) возможностям. Производные профили получаются из базового путем
добавления необходимых пакетов расширения.
Функциональные требования
Функциональные требования сгруппированы на основе выполняемой ими роли или
обслуживаемой цели безопасности. Всего в "Общих критериях" представлено 11
функциональных классов, 66 семейств, 135 компонентов. Перечислим классы
функциональных требований ОК:
1. идентификация и аутентификация;
2. защита данных пользователя;
3. защита функций безопасности (требования относятся к целостности и контролю
данных сервисов безопасности и реализующих их механизмов);
4. управление безопасностью (требования этого класса относятся к управлению
атрибутами и параметрами безопасности);
5. аудит безопасности (выявление, регистрация, хранение, анализ данных,
затрагивающих безопасность объекта оценки, реагирование на возможное
нарушение безопасности);
6. доступ к объекту оценки;
7. приватность (защита пользователя от раскрытия и несанкционированного
использования его идентификационных данных);
8. использование ресурсов (требования к доступности информации);
9. криптографическая поддержка (управление ключами);
10. связь (аутентификация сторон, участвующих в обмене данными);
11. доверенный маршрут/канал (для связи с сервисами безопасности).
Например, класс "Приватность" содержит 4 семейства функциональных требований:
1. Анонимность. Позволяет выполнять действия без раскрытия идентификатора
пользователя другим пользователям, субъектам и/или объектам. Анонимность
может быть полной или выборочной. В последнем случае она может относиться не
ко всем операциям и/или не ко всем пользователям (например, у уполномоченного
пользователя может оставаться возможность выяснения идентификаторов
пользователей).
2. Псевдонимность. Напоминает анонимность, но при применении псевдонима
поддерживается ссылка на идентификатор пользователя для обеспечения
подотчетности или для других целей.
3. Невозможность
ассоциации.
Семейство
обеспечивает
возможность
неоднократного использования информационных сервисов, но не позволяет
ассоциировать случаи использования между собой и приписать их одному лицу.
Невозможность ассоциации защищает от построения профилей поведения
пользователей (и, следовательно, от получения информации на основе подобных
профилей).
4. Скрытность. Требования данного семейства направлены на то, чтобы можно было
использовать информационный сервис с сокрытием факта использования. Для
реализации скрытности может применяться, например, широковещательное
распространение информации, без указания конкретного адресата. Годятся для
реализации скрытности и методы стеганографии, когда скрывается не только
содержание сообщения (как в криптографии), но и сам факт его отправки.
Класс "Использование ресурсов", содержащий требования доступности, включает три
семейства:
1. Отказоустойчивость. Требования этого семейства направлены на сохранение
доступности информационных сервисов даже в случае сбоя или отказа. В ОК
различаются активная и пассивная отказоустойчивость. Активный механизм
содержит специальные функции, которые активизируются в случае сбоя.
Пассивная отказоустойчивость подразумевает наличие избыточности с
возможностью нейтрализации ошибок.
2. Обслуживание по приоритетам. Выполнение этих требований позволяет
управлять использованием ресурсов так, что низкоприоритетные операции не
могут помешать высокоприоритетным.
3. Распределение ресурсов. Требования направлены на защиту (путем применения
механизма квот) от несанкционированной монополизации ресурсов.
"Общие критерии" - продуманный и полный документ с точки зрения функциональных
требований, однако в нем есть и некоторые недостатки, главный из которых - отсутствие
объектного подхода. Функциональные требования не сгруппированы в осмысленные
наборы (объектные интерфейсы), к которым могло бы применяться наследование. В
"Общих критериях" отсутствуют архитектурные требования, что является естественным
следствием избранного подхода "снизу вверх".
Требования доверия безопасности
Установление доверия безопасности, согласно "Общим критериям", основывается на
активном исследовании объекта оценки.
Форма представления требований доверия, в принципе, та же, что и для функциональных
требований. Специфика состоит в том, что каждый элемент требований доверия
принадлежит одному из трех типов:
1. действия разработчиков;
2. представление и содержание свидетельств;
3. действия оценщиков.
Всего в ОК 10 классов, 44 семейства, 93 компонента требований доверия безопасности.
Перечислим классы:
1. разработка (требования для поэтапной детализации функций безопасности от
краткой спецификации до реализации);
2. поддержка жизненного цикла (требования к модели жизненного цикла, включая
порядок устранения недостатков и защиту среды разработки);
3. тестирование;
4. оценка уязвимостей (включая оценку стойкости функций безопасности);
5. поставка и эксплуатация;
6. управление конфигурацией;
7. руководства (требования к эксплуатационной документации);
8. поддержка доверия (для поддержки этапов жизненного цикла после
сертификации);
9. оценка профиля защиты;
10. оценка задания по безопасности.
Применительно к требованиям доверия в "Общих критериях" введены так называемые
оценочные уровни доверия (семь), содержащие осмысленные комбинации компонентов:
1. Предусматривает анализ функциональной спецификации, спецификации
интерфейсов, эксплуатационной документации, а также независимое тестирование.
Уровень применим, когда угрозы не рассматриваются как серьезные.
2. В дополнение к первому уровню, предусматривает наличие проекта верхнего
уровня объекта оценки, выборочное независимое тестирование, анализ стойкости
функций безопасности, поиск разработчиком явных уязвимых мест.
3. Ведется контроль среды разработки и управление конфигурацией объекта оценки.
4. Добавляются полная спецификация интерфейсов, проекты нижнего уровня, анализ
подмножества реализации, применение неформальной модели политики
безопасности, независимый анализ уязвимых мест, автоматизация управления
конфигурацией. Вероятно, это самый высокий уровень, которого можно достичь
при существующей технологии программирования и приемлемых затратах.
5. Предусматривает применение формальной модели политики безопасности,
полуформальных функциональной спецификации и проекта верхнего уровня с
демонстрацией соответствия между ними. Необходимо проведение анализа
скрытых каналов разработчиками и оценщиками.
6. Реализация должна быть представлена в структурированном виде. Анализ
соответствия распространяется на проект нижнего уровня.
7. Предусматривает формальную верификацию проекта объекта оценки. Он
применим к ситуациям чрезвычайно высокого риска.
3. Требования государственных стандартов.
Руководящие документы Гостехкомиссии России
Гостехкомиссия России ведет активную нормотворческую деятельность, выпуская
Руководящие документы (РД), играющие роль национальных оценочных стандартов в
области информационной безопасности. В качестве стратегического направления
Гостехкомиссия России выбрала ориентацию на "Общие критерии.
Список нормативных документов ФСТЭК РФ:
1. РД. Концепция защиты средств вычислительной техники и автоматизированных
систем от несанкционированного доступа к информации.
2. РД. Защита от несанкционированного доступа к информации. Термины и
определения.
3. РД. Средства вычислительной техники. Защита от несанкционированного доступа
к информации. Показатели защищенности от несанкционированного доступа к
информации.
4. РД. Автоматизированные системы. Защита от несанкционированного доступа к
информации. Классификация автоматизированных систем и требования по защите
информации.
5. РД. Временное положение по организации разработки, изготовления и
эксплуатации программных и технических средств защиты информации от
несанкционированного доступа в автоматизированных системах и средствах
вычислительной техники.
6. РД. Средства вычислительной техники. Межсетевые экраны. Защита от
несанкционированного
доступа.
Показатели
защищенности
от
несанкционированного доступа к информации.
7. РД. Защита информации. Специальные защитные знаки. Классификация и общие
требования
8. РД. Средства защиты информации. Защита информации в контрольно-кассовых
машинах и автоматизированных кассовых системах. Классификация контрольнокассовых машин, автоматизированных кассовых систем и требования по защите
информации. Сборник руководящих документов по защите информации от
несанкционированного доступа.
9. РД. Защита от несанкционированного доступа к информации. Часть 1.
Программное обеспечение средств защиты информации. Классификация по
уровню контроля отсутствия недекларированных возможностей
10. РД. Безопасность информационных технологий. Критерии оценки безопасности
информационных технологий. (Часть 1, Часть 2, Часть3).
11. РД. Безопасность информационных технологий. Положение по разработке
профилей защиты и заданий по безопасности
12. РД. Безопасность информационных технологий. Руководство по регистрации
профилей защиты
13. РД. Безопасность информационных технологий. Руководство по формированию
семейств профилей защиты.
14. Руководство по разработке профилей защиты и заданий по безопасности.
15. Рекомендации по обеспечению безопасности персональных данных при их
обработке в информационных системах персональных данных.
16. Основные мероприятия по организации и техническому обеспечению безопасности
персональных данных, обрабатываемых в информационных системах
персональных данных.
17. Методика определения актуальных угроз безопасности персональных данных при
их обработке в информационных системах персональных данных.
18. Базовая модель угроз безопасности персональных данных при их обработке в
информационных системах персональных данных(выписка).
19. ГОСТ Р 50739-95. Средства вычислительной техники. Защита от
несанкционированного доступа к информации. Общие технические требования.
20. ГОСТ Р 50922-96. Защита информации. Основные термины и определения.
21. ГОСТ Р 51188-98. Защита информации. Испытания программных средств на
наличие компьютерных вирусов. Типовое руководство.
22. ГОСТ Р 51275-99. Защита информации. Объект информатизации. Факторы,
воздействующие на информацию. Общие положения.
23. ГОСТ Р ИСО 7498-1-99. Информационная технология. Взаимосвязь открытых
систем. Базовая эталонная модель. Часть 1. Базовая модель.
24. ГОСТ Р ИСО 7498-2-99. Информационная технология. Взаимосвязь открытых
систем. Базовая эталонная модель. Часть 2. Архитектура защиты информации.
25. ГОСТ Р ИСО/МЭК 15408-1-2002. Методы и средства обеспечения безопасности.
Критерии оценки безопасности информационных технологий. Часть 1. Ведение и
общая модель.
26. ГОСТ Р ИСО/МЭК 15408-2-2002. Методы и средства обеспечения безопасности.
Критерии оценки безопасности информационных технологий. Часть 2.
Функциональные требования безопасности.
27. ГОСТ Р ИСО/МЭК 15408-3-2002. Методы и средства обеспечения безопасности.
Критерии оценки безопасности информационных технологий. Часть 3. Требования
доверия к безопасности.
28. ГОСТ Р ИСО/МЭК 17799-2005. Информационная технология. Практические
правила управления информационной безопасностью.
29. ГОСТ Р ИСО/МЭК ТО 18044. Информационная технология. Методы обеспечения
безопасности. Руководство по менеджменту безопасностью информации.
30. ГОСТ Р ИСО ТО 13569. Финансовые услуги. Рекомендации по информационной
безопасности.
31. ГОСТ Р ИСО/МЭК 15408 «Информационная технология. Методы и средства
обеспечения безопасности. Критерии оценки безопасности информационных
технологий» Части 1, 2, 3.
32. ГОСТ Р ИСО/МЭК 18045 «Информационная технология. Методы и средства
обеспечения безопасности. Методология оценки безопасности информационных
технологий».
33. ГОСТ Р ИСО/МЭК ТО 19791 «Информационная технология. Методы и средства
обеспечения безопасности. Оценка безопасности автоматизированных систем».
34. ГОСТ Р ИСО/МЭК ТО 15446 «Информационная технология. Методы и средства
обеспечения безопасности. Руководство по разработке профилей защиты и заданий
по безопасности».
35. ГОСТ Р ИСО/МЭК 27006 «Информационная технология. Методы и средства
обеспечения безопасности. Требования к органам, осуществляющим аудит и
сертификацию систем менеджмента информационной безопасности».
36. ГОСТ Р ИСО/МЭК 18028-1 «Информационная технология. Методы и средства
обеспечения безопасности. Сетевая безопасность информационных технологий.
Часть 1. Менеджмент сетевой безопасности».
37. ГОСТ Р ИСО/МЭК ТО 24762 «Защита информации. Рекомендации по услугам
восстановления после чрезвычайных ситуаций функций и механизмов
безопасности информационных и телекоммуникационных технологий. Общие
положения».
38. ГОСТ Р ИСО/МЭК ТО 18044 «Информационная технология. Методы обеспечения
безопасности. Руководство по менеджменту безопасностью информации».
Рассмотрим
подробнее
два
Руководящих
документа
Классификация
автоматизированных
систем
(АС)
по
уровню
защищенности
от
несанкционированного доступа (НСД) и аналогичная Классификация межсетевых
экранов (МЭ).
Согласно первому из них, устанавливается девять классов защищенности АС от НСД к
информации. Каждый класс характеризуется определенной минимальной совокупностью
требований по защите.
Классы подразделяются на три группы, отличающиеся особенностями обработки
информации в АС. В пределах каждой группы соблюдается иерархия требований по
защите в зависимости от ценности (конфиденциальности) информации и, следовательно,
иерархия классов защищенности АС.
Третья группа классифицирует АС, в которых работает один пользователь, имеющий
доступ ко всей информации АС, размещенной на носителях одного уровня
конфиденциальности. Группа содержит два класса - 3Б и 3А.
Вторая группа классифицирует АС, в которых пользователи имеют одинаковые права
доступа (полномочия) ко всей информации АС, обрабатываемой и (или) хранящейся на
носителях различного уровня конфиденциальности.
Группа содержит два класса - 2Б и 2А.
Первая группа классифицирует многопользовательские АС, в которых одновременно
обрабатывается и (или) хранится информация разных уровней конфиденциальности и не
все пользователи имеют право доступа ко всей информации АС. Группа содержит пять
классов - 1Д, 1Г, 1В, 1Б и 1А.
Сведем в таблицу требования ко всем девяти классам защищенности АС.
Таблица 1 Требования к защищенности автоматизированных систем
Подсистемы и требования
Классы
3Б
3А
2Б 2А 1Д 1Г 1В 1Б 1А
1. Подсистема управления доступом 1.1. Идентификация,
проверка подлинности и контроль доступа субъектов: в +
+ + + + + + +
систему;
к терминалам, ЭВМ, узлам сети ЭВМ, каналам связи,
- - + - + + +
внешним устройствам ЭВМ;
к программам;
- - + - + + +
к томам, каталогам, файлам, записям, полям записей.
- - + - + + +
1.2. Управление потоками информации
- - + - - + +
2. Подсистема регистрации и учета 2.1. Регистрация и
учет: входа/выхода субъектов доступа в/из системы (узла +
+ + + + + + +
сети);
выдачи печатных (графических) выходных документов; + - + - + + +
запуска/завершения программ и процессов (заданий,
- - + - + + +
задач);
доступа программ субъектов доступа к терминалам,
ЭВМ, узлам сети ЭВМ, каналам связи, внешним
- - + - + + +
устройствам ЭВМ, программам, томам, каталогам,
файлам, записям, полям записей;
изменения полномочий субъектов доступа;
- - - - - + +
создаваемых защищаемых объектов доступа.
- - + - - + +
2.2. Учет носителей информации.
+
+ + + + + + +
2.3. Очистка (обнуление, обезличивание) освобождаемых
областей оперативной памяти ЭВМ и внешних
+ - + - + + +
накопителей.
2.4. Сигнализация попыток нарушения защиты.
- - - - - + +
3. Криптографическая подсистема 3.1. Шифрование
- - + - - - +
конфиденциальной информации.
3.2. Шифрование информации, принадлежащей
различным субъектам доступа (группам субъектов) на
- - - - - - разных ключах.
3.3. Использование аттестованных (сертифицированных)
- - + - - - +
криптографических средств.
4. Подсистема обеспечения целостности 4.1. Обеспечение +
+ + + + + + +
целостности программных средств и обрабатываемой
информации.
4.2. Физическая охрана средств вычислительной техники
+
+ + + + + + +
и носителей информации.
4.3. Наличие администратора (службы защиты)
- - + - - + +
информации в АС.
4.4. Периодическое тестирование СЗИ НСД.
+
+ + + + + + +
4.5. Наличие средств восстановления СЗИ НСД.
+
+ + + + + + +
4.6. Использование сертифицированных средств защиты. + - + - - + +
Здесь СЗИ НСД - система защиты информации от несанкционированного доступа.
По существу - это минимум требований, которым необходимо следовать, чтобы
обеспечить конфиденциальность информации. Целостность представлена отдельной
подсистемой (номер 4), но непосредственно к интересующему нас предмету имеет
отношение только пункт 4.1 - Обеспечение целостности программных средств и
обрабатываемой информации.. Доступность (точнее, восстановление) предусмотрено
только для самих средств защиты.
Другой РД Гостехкомиссии России - Классификация межсетевых экранов
представляется принципиально важным, поскольку в нем идет речь не о целостном
продукте или системе, а об отдельном сервисе безопасности, обеспечивающем межсетевое
разграничение доступа.
Основным критерием классификации МЭ служит протокольный уровень (в соответствии с
эталонной семиуровневой моделью), на котором осуществляется фильтрация
информации. Чем выше уровень, тем больше информации на нем доступно и,
следовательно, тем более тонкую и надежную фильтрацию можно реализовать.
Модуль 3.
Лекция 4.
Уязвимости популярных операционных систем и системного ПО. Проблемы
безопасности протоколов TCP/IP. Методы и средства анализа уязвимостей серверов
и служб. Функции сканеров уязвимостей.
1. Уязвимости популярных операционных систем и системного ПО.
Несовершенство операционных систем и программного обеспечения — едва ли не главная
причина колоссального ущерба, нанесенного мировой экономике компьютерными
злоумышленниками. Большинство хакерских атак становится возможными из-за наличия
уязвимостей в существующих ОС и ПО. В Сети появляется все больше вредоносного
кода, который использует их для проникновения в компьютеры, выполнения
запрограммированных действий и дальнейшего своего распространения.
Статистика показывает, что количество уязвимостей растет год от года. С одной стороны,
это связано с тем, что год от года растет количество ПО, а с другой, с тем, что сейчас
уязвимости ищутся намеренно, как хакерами, так и компаниями производителями ПО и
ОС. Первые преследуют криминальные цели — использовать «дыру» для получения
доступа к чужим информационным ресурсам, вторые — чтобы не испортить свою
репутацию и обезопасить информационные ресурсы своих клиентов.
Сегодня уже никого не удивишь тем, что одним из основных элементов безопасности
является операционная система компьютера, так как, по большому счету, именно она
аккумулирует в себе подавляющую часть используемых механизмов защиты. Поэтому
именно эффективность механизмов защиты ОС определяет уровень безопасности
корпоративной сети и информационной системы предприятия в целом.
Основополагающие посылы защиты информации
Текущее состояние защищенности системы может иметь одно из двух состояний:
полностью защищена, либо полностью незащищена. Переход системы из одного
состояние в другое осуществляется при обнаружении хотя бы одной уязвимости защиты,
возвращение в исходное состояние — при устранении известной уязвимости. Другими
словами, рассуждения о степени защищенности ОС неуместны — любая обнаруженная в
системе уязвимость делает ее полностью незащищенной.
Рисунок 1. Диаграмма состояний защищенности ОС.
Под уязвимостью системы защиты понимается такое ее свойство (недостаток), которое
может быть использовано злоумышленником для осуществления несанкционированного
доступа (НСД) к информации. При этом любая уязвимость системы защиты несет в себе
угрозу осуществления злоумышленником НСД к информации, посредством реализации
атаки на уязвимость в системе защиты. Таким образом, уязвимость системы защиты —
это признак системы, а наличие (отсутствие) известных уязвимостей (известных, так как
уязвимости в любой системе защиты присутствуют всегда) является характеристикой
защищенности (текущего состояния защищенности) системы.
Как следствие, характеристикой защищенности системы следует считать не только
реализованный в ней набор механизмов защиты, который должен быть достаточным для
условий применения системы, но и продолжительность устранения известной уязвимости
разработчиком системы. Причем каждый механизм защиты должен быть реализован
корректно, как с точки зрения идеологической продуманности решения, так и с точки
зрения ошибок программирования при реализации. Недостаточность и некорректность
реализации механизмов защиты — две основные причины уязвимости системы.
Считая, что обнаружение каналов НСД к информации (уязвимостей) — (или в
терминологии теории надежности — отказов системы защиты), и процесс их устранения
являются пуассоновскими потоками (соответственно, с интенсивностями λ и μ), можно
оценить с использованием простейшей формулы:
Ρ=1-λ/μ
Уязвимости устраняются по мере их обнаружения, иначе нельзя обеспечить высокую
интенсивность исправлений. Надежность системы защиты — вероятность того, что в
любой момент времени система защищена (определяется тем условием, что число не
устраненных уязвимостей равно 0)
Таблица 2. Вероятность защищенности системы
Интенсивность отказов 1 в год 2 в год 5 в год 10 в год
Восстановление 1 нед.
0,98
0,96
0.93
0,81
2 нед.
0,96
0,92
0,81
0,62
1 мес.
0.92
0,85
0,62
0,23
2 мес.
0,85
0,69
0,24
—
3 мес.
0,77
0,54
—
—
0,39
—
—
4 мес. 0,69
Рассмотрим, например, значение 0,98 (лучшее значение надежности системы защиты в
таблице). Оно достигается в том случае, если в среднем обнаруживается одна уязвимость
в год при среднем времени ее восстановления разработчиком, составляющим одну
неделю. При этом вероятность того, что в любой момент времени система защищена,
равна 0,98, т.е. в любой момент времени с вероятностью 0,02 систему защиты можно
считать отказавшей. Для современных систем это практически идеальная ситуация.
Сегодня во многих современных системных средствах за год находится отнюдь не одна
уязвимость, а продолжительность устранения уязвимости разработчиком может
составлять несколько месяцев.
Используя данный подход, можно оценить защищенность современных ОС, с учетом
того, что средняя задержка появления исправлений — один-два месяца. Обнаружение
лишь 5 уязвимостей в год уже является достаточным для вывода о незащищенности
системы.
Таким образом, безопасность ОС характеризуется не только достаточностью и
корректностью реализации механизмов защиты, но и ошибками программирования,
приводящими к уязвимостям, а также способностью разработчика системы быстро и
качественно устранять подобные ошибки.
Статистика уязвимостей ОС семейства Windows
Используя статистику успешных атак, представленную в существующих каталогах, их
можно сгруппировать на основании используемых уязвимостей. Объединение по
различным признакам позволяет получить следующую классификацию атак:
- получение имени и пароля ОС или БД (7%). В эту группу входят уязвимости
позволяющие узнать из файлов и реестра имена и пароли пользователей системы, включая
имя и пароль администратора;
- получение имени и пароля других служб и приложений (13%). Такие уязвимости
позволяют сделать тоже, что и в первой группе, но с учетом того, что несистемные имена
и пароли могут совпадать с системными;
- крах системы (7%). Уязвимости, приводящие к аварийному завершению работы
системы в результате ошибки в ядре. Типичная настройка ОС Windows генерирует файл
дампа памяти, в котором могут содержаться имена и пароли пользователей в том или
ином виде;
- использование некорректных настроек безопасности реестра (8%). Позволяет
беспрепятственно читать и записывать информацию из/в реестр ОС. Поскольку реестр —
это системная БД ОС, которой также пользуются и другие приложения, получив к нему
полный доступ можно получить полный доступ и к ОС;
- использование некорректных настроек файловой системы (4%). Для ОС Windows
применяются файловые системы FAT и NTFS. Есть различные версии этих файловых
систем. Одни абсолютно не защищены (FAT), другие развиваются и включают все
большее количество возможностей по защите (NTFS). Разрешения на чтение и запись в
файловой системе позволяет узнавать конфиденциальную информацию и менять
конфигурации ОС и приложений;
- подмена адреса программы (4%), становится возможной, если получен доступ к реестру
или файловой системе (см. предыдущие пункты). Замена стандартных программ с
известными именами на вредоносные, возможно скрытые программы, позволяет
незаметно внедряться в систему, расширяя права до прав системы или администратора;
- получение доступа к временным файлам (2%) (доступ к общим папкам неразделяемым
ОС), Позволяет получить имена и пароли пользователей из временных файлов;
- использование ошибок программирования (4%). Уязвимости, в результате наличия
которых некорректно изменяются настройки безопасности после изменения состояния
ОС, например переход в ждущий режим или запуск заставки. Некорректные настройки
позволяют злоумышленнику расширить свои права в ОС;
- использование ошибки каталога «..» (4%) (две точки). Полное имя файла включает в
себя имена вложенных каталогов. Часто в конфигурациях безопасности явно указываются
каталоги, к которым разрешен или запрещен доступ. Системный каталог «..» означает
ссылку на родительский каталог данного каталога. Указав в пути к файлу системный
каталог «..», из-за этого типа уязвимостей, можно получить доступ к файлам, изначально
не подлежащим доступу. Кроме этого, уязвимость позволяет подменять одни файлы
другими, включая исполняемые;
- перехват информации пользователя (1%). Позволяет получить имена и пароли,
вводимые пользователем с клавиатуры или прочитать конфиденциальную информацию
так же вводимую пользователем;
- определение имени пользователя (3%) (information leak). Часто удаленные атаки,
совершаемые злоумышленниками, имеют своей целью сбор первичной информации об
атакуемой системе, а ряд уязвимостей позволяет удаленно получать список пользователей
системы или имя текущего пользователя. Это позволяет более осмысленно искать
недостающие пароли;
- дезинформация пользователя (9%). Эти уязвимости позволяют совершать с системой
вредоносные манипуляции, о которых система или приложения либо не сообщают
пользователю, либо явно дезинформируют его в результате программных ошибок;
- поиск и подбор пароля. Стандартная функция для пользователя становится уязвимостью
при получении доступа к компьютеру злоумышленником. Одним из основных действий,
совершаемых с использованием возможности запуска произвольной программы, является
поиск и подбор паролей пользователей. В эту группу не включаем запуск программ-тестов
безопасности (exploit), которые необходимы для реализации уязвимостей. Эту группу
также можно назвать «запуск вспомогательных программ». Ниже рассматриваются
уязвимости требующие возможности запуска программ-тестов (exploit) без которых
нельзя получить доступ к интерфейсам, недоступным через графический интерфейс и
командную строку — например, подключение к именованным каналам, генерация
нестандартных сетевых пакетов для служб различных протоколов. Все ручные операции и
часть программ-тестов должны быть выполнены локально остальные с использованием
сети локально или удаленно. Место запуска в нашей классификации характеризует
необходимые или начальные условия для совершения атаки;
- удаление и перезапись (3%). Уязвимости этой группы позволяют удалять следы
пребывания в системе злоумышленника, позволяя некорректно стирать и перезаписывать
системные журналы событий;
— отождествление прав с правами системы (26%) (priveledge escalation/elevation,
protection bypass, buffer overflow). Ошибки компонентов системного ПО связанные с
передачей или расширением прав приводят к выполнению произвольного кода с
привилегиями системы или администратора.
Рисунок 2. Уязвимости ОС Windows.
Принципиальный интерес вызывает динамика изменения процентного соотношения
уязвимостей. Во-первых, если уязвимости известны, то они должны устраняться
разработчиком. Одна и та же уязвимость не должна из года в год присутствовать в
системе. Если же подобные уязвимости присутствуют, возникает вопрос, почему они не
устраняются разработчиками системы?
Ключевой причиной является противоречие, в которое вступают архитектурные
принципы реализации ОС и сервисы, предоставляемые разработчикам приложений.
Например, в ОС Windows системные пользователи имеют практически неограниченные
права доступа к ресурсам (аналогичную ситуацию имеем для ОС семейства Unix,
применительно к пользователю «Root»). В части архитектурного построения системы —
это вполне обоснованное решение. Противоречие же состоит в том, что разработчикам
приложений предоставляется возможность запуска приложения под этими учетными
записями. Это приводит к тому, что ошибка программирования в приложении может
привести к несанкционированному получению системных прав, как следствие, к
возможности полного управления компьютером. В частности, эти уязвимости
используются атаками «на переполнение буферов приложений», «некорректного
олицетворение прав» и др. Любая атака, позволяющая получить управление приложением
в этом случае приводит к преодолению системы защиты. Ошибка в приложении, в
котором априори не должно присутствовать механизмов защиты, приводит к
преодолению защиты ОС. Таким образом, за безопасность ОС в общем случае отвечают
не только разработчики ОС, но и разработчики приложений.
С учетом всего сказанного, наиболее критичными являются именно уязвимости,
основанные на архитектурных недостатках ОС. Дело в том, что устранение подобных
уязвимостей весьма проблематично для разработчиков ОС, как следствие, подобные
уязвимости «переносятся» ими в последующие версии системы, что делает их уязвимыми,
несмотря на расширение функциональных возможностей реализуемых в них механизмов
защиты.
Одним из способов решения данной проблемы являются средства добавочной защиты,
которые усиливают встроенные в ОС механизмы и устраняют многие существующие
уязвимости, основанные, в первую очередь, на архитектурных недостатках ОС.
2. Проблемы безопасности протоколов TCP/IP.
Прежде чем перейти к разбору конкретных приемов, классифицируем действия
злоумышленника — атаки, направленные против какого-либо узла (или, возможно, целой
сети). Злоумышленник ставит перед собой определенную цель:
 перехват (и, возможно, модификация) данных, передаваемых через сеть от одного
узла другому;
 имперсонация (обезличивание, spoofing) (узел злоумышленника выдает себя за
другой узел, чтобы воспользоваться какими-либо привилегиями имитируемого
узла);
 несанкционированное подключение к сети;
 несанкционированная передача данных (обход правил фильтрации IP-трафика в
сетях, защищенных брандмауэрами);
 принуждение узла к передаче данных на завышенной скорости;
 приведение узла в состояние, когда он не может нормально функционировать,
передавать и принимать данные (так называемый DoS — denial of service, отказ в
обслуживании).
1. Методы и инструменты
Для достижения своих целей злоумышленник использует:
1. прослушивание сети (sniffing);
2. сканирование сети;
3. генерация пакетов.
1.1. Прослушивание сети
Прослушивание сети Ethernet является тривиальной задачей: для этого необходимо
перевести сетевой интерфейс в режим прослушивания. Легко доступны программы, не
только записывающие весь трафик в сегменте Ethernet, но и выполняющие его отбор по
установленным критериям, например, программа tcpdump.
Среди других сетевых технологий подвержены прослушиванию сети FDDI и радиосети
(например Radio Еthernet). Несколько сложнее для злоумышленника извлечь трафик из
телефонных выделенных и коммутируемых линий — главным образом, из-за сложности
физического доступа и подключения к таким линиям. Однако следует помнить, что
злоумышленник может оккупировать промежуточный маршрутизатор и таким образом
получить доступ ко всему транзитному трафику, независимо от используемых технологий
на уровне доступа к сети.
Ограничить область прослушивания в сети Ethernet можно разбиением сети на сегменты с
помощью коммутаторов. В этом случае злоумышленник, не прибегая к активным
действиям, может перехватить только кадры, получаемые или отправляемые узлами
сегмента, к которому он подключен. Единственным способом борьбы с прослушиванием
сегмента Ethernet является шифрование данных.
Злоумышленник, прослушивающий сеть, может быть обнаружен с помощью
дополнительного ПО, например, утилиты AntiSniff, которая выявляет в сети узлы, чьи
интерфейсы переведены в режим прослушивания. AntiSniff выполняет три вида тестов
узлов сегмента Ethernet. Тесты основаны на анализе реакции сетевых интерфейсов.
1.2. Сканирование сети
Сканирование сети имеет своей целью выявление подключенных к сети компьютеров и
определение работающих на них сетевых сервисов (открытых портов TCP или UDP).
Первая задача выполняется посылкой ICMP-сообщений Echo с помощью программы ping
с последовательным перебором адресов узлов в сети. Если отправить Echo-сообщение по
широковещательному адресу, то на него ответят все компьютеры, поддерживающие
обработку таких сообщений.
Администратор сети может обнаружить попытки сканирования путем анализа трафика в
сети и отслеживания Echo-сообщений, за короткий промежуток времени посылаемых
последовательно по всем адресам сети.
Программа traceroute поможет в определении топологии сети и обнаружении
маршрутизаторов.
Для определения того, какие UDP- или TCP-приложения запущены на обнаруженных
компьютерах, используются программы-сканеры, например, программа nmap. Поскольку
номера портов всех основных сервисов Интернета стандартизованы, то, определив,
например, что порт 25/TCP открыт, можно сделать вывод о том, что данный хост является
сервером электронной почты, и т. д. Полученную информацию злоумышленник может
использовать для развертывания атаки на уровне приложения.
Сканирование TCP-портов хоста производится несколькими способами. Наиболее
простой способ — установление TCP-соединения с тестируемым портом с помощью
функции connect. Если соединение удалось установить, значит, порт открыт и к нему
подсоединено серверное приложение. Достоинством этого способа является возможность
выполнения сканирования любым пользователем, и даже без специального программного
обеспечения: стандартная программа telnet позволяет указать произвольный номер порта
для установления соединения. Существенный недостаток — возможность отслеживания и
регистрации такого сканирования: при анализе системного журнала сканируемого хоста
будут обнаружены многочисленные открытые и сразу же прерванные соединения, в
результате чего могут быть приняты меры по повышению уровня безопасности.
Сканирование в режиме половинного открытия (half-open scanning) и сканирование с
помощью FIN-сегментов дают злоумышленнику больше шансов остаться
незамеченными.
Программа tcplogd может зарегистрировать попытки сканирования в различных режимах.
Для определения открытых портов UDP злоумышленник может отправить на
тестируемый порт UDP-сообщение.
Программа-сканер может также определить операционную систему сканируемого узла по
тому, как узел реагирует на сконструированные специальным образом, нестандартные
пакеты: например, TCP-сегменты с бессмысленными сочетаниями флагов или ICMPсообщения некоторых типов, и др.
Для определения адресов работающих в сети компьютеров и запущенных на них UDPили TCP-сервисов злоумышленник, непосредственно подключенный к сегменту сети,
может использовать простое прослушивание. Такая форма сканирования сети является
более скрытной, чем рассылка тестирующих датаграмм.
1.3. Генерация пакетов
Под генерацией пакетов понимается создание и отправка специально сконструированных
датаграмм или кадров, позволяющих злоумышленнику выполнить ту или иную атаку.
Особо выделим здесь фальсификацию пакетов, то есть создание IP-датаграмм или кадров
уровня доступа к сети, направленных якобы от другого узла (spoofing).
Генерация датаграмм или кадров произвольного формата и содержания производится не
менее просто, чем прослушивание сети Ethernet. На многочисленных сайтах Интернета
злоумышленник может найти уже готовые программы, генерирующие пакеты
целенаправленно для выполнения какой-либо атаки или сканирования сети. Применение
таких программ часто не требует от злоумышленника ни квалификации программиста, ни
понимания принципов работы сети, что делает многие из описанных атак, особенно атаки
типа «отказ в обслуживании», широко доступными для исполнения.
2. Перехват данных
Простейшей формой перехвата данных является прослушивание сети. В этом случае
злоумышленник может получить массу полезной информации: имена пользователей и
пароли (многие приложения передают их в открытом виде), адреса компьютеров в сети, в
том числе адреса серверов и запущенные на них приложения, адрес маршрутизатора,
собственно передаваемые данные, которые могут быть конфиденциальными (например,
тексты электронных писем) и т. п.
Однако, если сеть разбита на сегменты с помощью коммутаторов, то злоумышленник
может перехватить только кадры, получаемые или отправляемые узлами сегмента, к
которому он подключен. Простое прослушивание также не позволяет злоумышленнику
модифицировать передаваемые между двумя другими узлами данные. Для решения этих
задач злоумышленник должен перейти к активным действиям, чтобы внедрить себя в
тракт передачи данных в качестве промежуточного узла. (Такие атаки в англоязычной
литературе называют man-in-the-middle attack.)
2.1. Ложные ARP-ответы
Для перехвата трафика между узлами А и В, расположенными в одной IP-сети,
злоумышленник использует протокол ARP. Он рассылает сфальсифицированные ARPсообщения так, что каждый из атакуемых узлов считает MAC-адрес злоумышленника
адресом своего собеседника (рис. 3).
Для обнаружения ARP-атак администратор должен вести базу данных соответствия MACи IP-адресов всех узлов сети и использовать программу arpwatch, которая прослушивает
сеть и уведомляет администратора о замеченных нарушениях. Если сеть разделена на
сегменты коммутаторами, то администратор должен настроить их таким образом, чтобы в
сегмент, где находится станция администратора, перенаправлялись кадры из всех
сегментов сети вне зависимости от того, кому они предназначены.
Использование статических ARP-таблиц, по крайней мере — на ключевых узлах
(серверах, маршрутизаторах), защитит их от ARP-атаки, правда, за счет накладных
расходов на поддержку этих таблиц в актуальном состоянии.
Пользователю на атакуемом хосте, не снабженном статической ARP-таблицей, крайне
сложно заметить, что он подвергся ARP-атаке, поскольку представляется маловероятным,
что пользователь помнит MAC-адреса других узлов своей сети и периодически проверяет
ARP-таблицу своего компьютера.
Рисунок 3. Схема ARP-атаки
2.2. Навязывание ложного маршрутизатора
Для перехвата трафика, направленного от некоторого узла А в другую сеть,
злоумышленник может навязать хосту свой адрес в качестве адреса маршрутизатора,
которому должны быть переданы отправляемые узлом А данные. В этом случае узел А
будет направлять трафик на узел злоумышленника, который после анализа и, возможно,
модификации данных, отправит их далее настоящему маршрутизатору.
Ложное сообщение ICMP Redirect
Рисунок 4. Навязывание ложного маршрутизатора с помощью ICMP Redirect
Как правило, навязывание ложного маршрутизатора выполняется с помощью
фальсифицированных ICMP-сообщений Redirect, так как документ RFC-1122 требует,
чтобы хосты обязательно обрабатывали такие сообщения. В подложном сообщении
злоумышленник объявляет свой собственный адрес в качестве адреса маршрутизатора
(рис. 4). Для устранения возможности описываемой атаки необходимо отключить на хосте
обработку сообщений Redirect, однако не все операционные системы могут поддерживать
такое отключение.
На атакуемом узле сообщение Redirect отобразится в виде появившейся строки в таблице
маршрутов, направляющей данные для хоста В через узел Х. Кроме того, программа
traceroute скорее всего покажет дополнительный промежуточный узел на пути к В.
Атака при конфигурировании хоста
В некоторых случаях навязывание ложного маршрутизатора может быть произведено с
помощью ICMP-сообщения Router Advertisement или через протокол DHCP.
Атака на протоколы маршрутизации
Если злоумышленник хочет перехватить трафик между узлами сети Р и узлами сети Q, и
при этом не находится ни в одной из сетей P или Q, но расположен на пути между ними,
он может попытаться ввести в заблуждение маршрутизаторы. Маршрутизаторы не
реагируют на сообщения ICMP Redirect, поэтому для успешной атаки необходимо, чтобы
они использовали какой-либо протокол маршрутизации. В этом случае злоумышленник
может сформировать подложные сообщения протокола маршрутизации с целью
переключения требуемых маршрутов на себя. Например (рис. 5) узел Х, приняв
широковещательные RIP-сообщения, рассылаемые узлами А (вектор P=3) и В (вектор
Q=2), отправляет сообщение с вектором Q=1 на индивидуальный адрес маршрутизатора
А, а сообщение P=2 — на индивидуальный адрес В. Аутентификация TCP-сегментов с
помощью алгоритма MD5 поможет изсключить данную атаку.
Рис. 5. Навязывание ложного RIP-маршрутизатора X для перехвата трафика между сетями
PиQ
3. Имперсонация
Предположим, что узел А обменивается IP-датаграммами с узлом В, при этом узлы
идентифицируют друг друга по IP-адресам, указываемым в датаграммах. Предположим
далее, что узел В имеет особые привилегии при взаимодействии с А: то есть А
предоставляет В некоторый сервис, недоступный для других хостов Интернета.
Злоумышленник на узле Х, желающий получить такой сервис, должен имитировать узел В
— такие действия называются имперсонацией узла В узлом Х.
Если говорить о сервисах, то имеются в виду приложения UDP или TCP, то есть речь идет
об имперсонации UDP-сообщений или TCP-соединений (соответственно, UDP-spoofing и
TCP-spoofing). Часто одновременно с имперсонацией злоумышленник предпринимает
атаки типа «отказ в обслуживании» против узла В для исключения последнего из процесса
сетевого взаимодействия.
Хосты А, В и Х могут располагаться друг относительно друга различным образом, от
этого зависит, какие методы имперсонации применит злоумышленник. В некоторых
случаях злоумышленник не может перехватить данные, передаваемые из А в В, однако,
ничто не мешает ему отправлять в адрес А сфальсифицированные датаграммы от имени
В, но ответные пакеты А будет отправлять узлу В, минуя злоумышленника. Важным
обстоятельством в этих условиях является то, имеет ли узел Х возможность подслушивать
эти ответные пакеты, или же злоумышленник вынужден работать вслепую.
Имперсонация с помощью десинхронизации является сравнительно простой и очень
эффективной атакой. Она позволяет злоумышленнику установить полный контроль над
TCP-соединением без использования ложных сообщений ARP, ICMP или протоколов
маршрутизации, без атак типа «отказ в обслуживании», которые могут быть обнаружены
администратором сети или атакуемого узла. Обнаружить такие атаки можно, прослушивая
сеть на предмет ACK-штормов. В общем случае только шифрование данных или
аутентификация сегментов могут гарантировать защиту от имперсонации.
3.1. Имперсонация без обратной связи
Рис. 6. Имперсонация без обратной связи
Самый сложный случай: перехват и прослушивание данных, отправляемых из А в В
невозможны(рис. 6). Узел Х находится в сети, не имеющей никакого отношения к узлам А
и В и не лежащей между ними (А и В могут находиться как в одной, так и в разных сетях).
Имперсонация без обратной связи имеет смысл лишь тогда, когда злоумышленнику для
достижения своей цели достаточно только передать данные на узел А от имени узла В, и
последующий ответ узла А уже не имеет значения.
3.2. Десинхронизация TCP-соединения
Злоумышленник Х, находящийся в одном сегменте сети с узлами А и В или на пути
между А и В, может произвести десинхронизацию TCP-соединения между А и В для
установления полного контроля над соединением, то есть, злоумышленник получит
возможность действовать как от имени А, так и от имени В. Для обозначения
имперсонации, выполняемой таким методом, в англоязычной литературе используется
термин TCP hijacking.
В десинхронизированном состоянии любая попытка обмена данными вызывает только
ACK-шторм, а сами сегменты с данными участниками соединения уничтожаются. В это
время злоумышленник берет на себя функции посредника.
Ранняя десинхронизация
В этом варианте злоумышленник, прослушивая сеть, обнаруживает момент установления
соединения между А и В, от имени А сбрасывает соединение RST-сегментом и тут же
открывает его заново, но уже с новыми номерами ISN.
Десинхронизация нулевыми данными
В данном варианте злоумышленник, дожидаясь момента, когда соединение находится в
неактивном состоянии (данные не передаются), посылает узлу А от имени В и узлу В от
имени А фальсифицированные сегменты с данными, вызывая тем самым
десинхронизацию. Посылаемые данные должны быть «нулевыми» — то есть приложениеполучатель должно их молча игнорировать и не посылать никаких данных в ответ. Этот
метод десинхронизации подходит для Telnet-соединений, которые, во-первых, часто
находятся в неактивном состоянии, а во-вторых, в протоколе Telnet имеется команда «нет
операции» (IAC NOP). Сегмент, содержащий произвольное число таких команд (IAC NOP
IAC NOP …), будет принят приложением и полностью проигнорирован.
Кроме того, в начале Telnet-сеанса производится аутентификация пользователя. Разумно
(с точки зрения злоумышленника) произвести десинхронизацию после того, как введен
пароль, а не в самом начале соединения. Использование одноразовых паролей в этом
случае пользователю не поможет.
4. Несанкционированное подключение к сети
Для незаконного подключения к сети злоумышленник должен иметь физическую
возможность такого подключения. В крупных корпоративных и особенно
университетских сетях такая возможность часто имеется. Следующим шагом для
злоумышленника является конфигурирование параметров стека TCP/IP его компьютера.
Прослушивая сеть (сегмент сети) злоумышленник может определить, какие IP-адреса
имеют узлы сети, с помощью ICMP Echo-запросов (программа ping) определить, какие
адреса не используются (или компьютеры выключены), найти IP-адрес маршрутизатора
по умолчанию. После этого злоумышленник может присвоить себе неиспользуемый
адрес.
Если в сети имеется сервер DHCP, который предоставляет IP-адреса всем желающим, то
он полностью сконфигурирует узел злоумышленника без всяких усилий со стороны
последнего. Это событие будет зарегистрировано в журнале сервера.
Для предотвращения несанкционированного подключения к сети администратор должен
использовать статическую ARP-таблицу на маршрутизаторе (и ключевых хостахсерверах) и программу arpwatch. Статическая ARP-таблица не позволит злоумышленнику
получить ни одну датаграмму от узла, который ее использует, поскольку MAC-адрес
злоумышленника, естественно, не значится в таблице. Программа arpwatch уведомит
администратора о появлении узла с неизвестным MAC-адресом.
Однако, если злоумышленник, определив IP- и MAC-адреса какого-либо компьютера в
своей сети, дождется его выключения (или проведет против него атаку «отказ в
обслуживании», приводящую к неспособности атакуемого хоста работать в сети), а потом
присвоит себе его MAC- и IP-адреса, то обнаружить такого злоумышленника будет
невозможно и все его действия будут приписаны атакованному хосту.
5. Несанкционированный обмен данными
С целью обеспечения безопасности внутренней (корпоративной) сети на шлюзе могут
использоваться фильтры, препятствующие прохождению определенных типов датаграмм.
Датаграммы могут фильтроваться по IP-адресам отправителя или получателя, по
протоколу (поле Protocol IP-датаграммы), по номеру порта TCP или UDP, по другим
параметрам, а также по комбинации этих параметров. Злоумышленник может
использовать следующие два приема для проникновения через некоторые фильтры.
Туннелирование
Предположим, злоумышленник хочет отправить данные с узла Х узлу А, находящемуся за
пределами его сети, однако правила фильтрации на маршрутизаторе запрещают отправку
датаграмм узлу А (рис.7). В то же время разрешена отправка датаграмм узлу В, также
находящемуся за пределами охраняемой сети.
Рис.7. Туннелирование сквозь фильтрующий маршрутизатор
Злоумышленник использует узел В как ретранслятор датаграмм, направленных в А. Для
этого он создает датаграмму, направленную из Х в В, в поле Protocol которой помещается
значение 4 («IP»), а в качестве данных эта датаграмма несет другую IP-датаграмму,
направленную из Х в А. Фильтрующий маршрутизатор пропускает сформированную
датаграмму, поскольку она адресована разрешенному узлу В, а IP-модуль узла В
извлекает из нее вложенную датаграмму. Видя, что вложенная датаграмма адресована не
ему, узел В отправляет ее по назначению, то есть узлу А (рис.5). Описанная операция
называется туннелированием.
Адрес отправителя датаграммы скрыть нельзя, поэтому, если маршрутизатор не
пропускает также датаграммы, идущие из А, то есть осуществляет фильтрацию по адресу
отравителя, то обмануть его вышеописанным способом невозможно. В этом случае
злоумышленник имеет только одностороннюю связь с узлом А.
Туннелирование может использоваться и в обратном направлении, то есть, для
проникновения из Интернета внутрь охраняемой сети. При этом узел Х находится в
Интернете, а узлы А и В — в охраняемой сети и узлу В разрешено получение датаграмм
из внешних сетей.
Для защиты от туннелирования следует запретить маршрутизатору транслировать во
внешнюю сеть датаграммы с полем Protocol=4 и датаграммы с опциями.
Атака крошечными фрагментами (Tiny Fragment Attack)
В случае, когда на вход фильтрующего маршрутизатора поступает фрагментированная
датаграмма, маршрутизатор производит досмотр только первого фрагмента датаграммы
(первый фрагмент определяется по значению поля IP-заголовка Fragment Offset=0). Если
первый фрагмент не удовлетворяет условиям пропуска, он уничтожается. Остальные
фрагменты можно безболезненно пропустить, не затрачивая на них вычислительные
ресурсы фильтра, поскольку без первого фрагмента датаграмма все равно не может быть
собрана на узле назначения.
Рис.8. Фрагментированный TCP-сегмент
Данный прием проникновения сквозь фильтр называется «Tiny Fragment Attack» (RFC1858). Использование его в других случаях (для обхода других условий фильтрации) не
имеет смысла, так как все остальные «интересные» поля в заголовке TCP и других
протоколов находятся в первых 8 октетах заголовка и, следовательно, не могут быть
перемещены во второй фрагмент.
6. Принуждение к ускоренной передаче данных
Механизм реагирования на заторы сети (congestion control), реализуемый протоколом TCP
(RFC-2581), позволяет злоумышленнику-получателю данных принудить отправителя
высылать данные с многократно увеличенной скоростью. В результате злоумышленник
отбирает для своих нужд ресурсы сервера-отправителя и компьютерной сети, замедляя
или блокируя соединения прочих участников сетевого взаимодействия. Атаки
выполняются путем специально организованной посылки злоумышленником
подтверждений приема данных (ACK-сегментов).
Расщепление подтверждений
Узел В, вместо того, чтобы ответить одним подтверждением о получении всего сегмента
(ACK SN=1001), высылает несколько подтверждений с возрастающими номерами ACK
SN (например, 300, 600 и, наконец, 1001), как бы подтверждая получение сегмента по
частям. Узел В, выслав три подтверждения вместо одного, вынуждает узел А увеличить
значение cwnd до 4 и отправить 4 сегмента вместо двух.
Типичный размер поля данных сегмента — 1460 октетов. Наиболее агрессивное
поведение получателя (1460 подтверждений на каждый сегмент) теоретически приведет к
тому, что уже после третьего шага узел В может получить 2,9 Гбайт данных и создать
заторы в сети.
Ложные дубликаты подтверждений
Если узел В будет отвечать серией сфабрикованных подтверждений ACK SN, фактически
узел А будет отправлять данные со скоростью, с которой В генерирует дубликаты
подтверждений.
Преждевременные подтверждения
Еще одна разновидность атаки строится на том, что получатель может заранее высылать
подтверждения еще не принятых им, находящихся в пути сегментов, заставляя
отправителя поверить, что данные уже доставлены, результатом чего будет увеличение
cwnd и преждевременная отправка новых данных.
В отличие от двух предыдущих атак атака преждевременными подтверждениями
разрушает механизм обеспечения надежности передачи данных: если какой-либо из
сегментов с данными, отправленный из А в В, потеряется в пути, повторной передачи
этого сегмента не будет, поскольку он был уже заранее подтвержден получателем. Однако
прикладные протоколы HTTP и FTP, с помощью которых и передается большинство
данных в Интернете, предоставляют возможность запрашивать у сервера не весь файл, а
его определенные части (большинство серверов поддерживают эту возможность).
Поэтому, применив описанную атаку и получив основной объем данных с HTTP- или
FTP-сервера на завышенной скорости, злоумышленник может впоследствии с помощью
запросов на частичную передачу «залатать дыры», образовавшиеся из-за потерянных
сегментов.
Описанные атаки особенно эффективны при передаче сравнительно небольших объемов
данных (файлов), когда весь файл может быть передан за одно время обращения.
Скорость загрузки файла увеличивается в несколько раз. Работа конкурирующих TCPсоединений (имеющихся в том же коммуникационном канале) практически блокируется,
поскольку из-за резко возросшей интенсивности трафика другие соединения
диагностируют состояние затора и принимают соответствующие меры по уменьшению
скорости передачи данных, фактически освобождая канал для злоумышленника.
В заключение можно сказать о достаточно простом способе ускоренного получения
файлов от отправителя по протоколам HTTP и FTP. Для этого получатель использует
программу, способную получать файл по частям (сервер также должен поддерживать
соответствующие расширения протоколов HTTP и FTP); пример такой программы для ОС
Windows — Flashget. Для загрузки файла с сервера программа одновременно открывает
несколько соединений, каждое из которых запрашивает свой фрагмент файла. Фрагменты
впоследствии будут состыкованы на локальном диске получателя.
Предположим, что в коммуникационном канале одновременно передают данные 10 TCPсоединений. В результате работы алгоритмов реагирования на заторы они примерно
поровну делят между собой полосу пропускания канала, и каждое получает 1/10 его часть.
Но если программа загрузки файла открывает не одно, а, например, 5 соединений, то
общее число соединений равно 14, из них получением частей одного файла занято 5
соединений, то есть, на получение файла отведено 5/14 = 36% канала, а не 10%, как было
раньше.
7. Отказ в обслуживании
Атаки типа «отказ в обслуживании» (DoS, denial of service) являются наиболее
распространенными и простыми в исполнении. Целью атаки является приведение
атакуемого узла или сети в такое состояние, когда передача данных другому узлу (или
передача данных вообще) становится невозможна или крайне затруднена. Вследствие
этого пользователи сетевых приложений, работающих на атакуемом узле, не могут быть
обслужены — отсюда название этого типа атак. Атаки DoS используются как в комплексе
с другими (имперсонация), так и сами по себе.
DoS-атаки можно условно поделить на три группы:
 атаки
большим
числом
формально
корректных,
но,
возможно,
сфальсифицированных пакетов, направленные на истощение ресурсов узла или
сети;
 атаки специально сконструированными пакетами, вызывающие общий сбой
системы из-за ошибок в программах;
 атаки
сфальсифицированными
пакетами, вызывающими
изменения
в
конфигурации или состоянии системы, что приводит к невозможности передачи
данных, сбросу соединения или резкому снижению его эффективности.
7.1. Истощение ресурсов узла или сети
Smurf
Атака smurf состоит в генерации шквала ICMP Echo-ответов, направленных на атакуемый
узел. Для создания шквала злоумышленник направляет несколько сфальсифицированных
Echo-запросов от имени жертвы на широковещательные адреса нескольких сетей, которые
выступят в роли усилителей. Потенциально большое число узлов, находящихся в сетяхусилителях и поддерживающих обработку широковещательных Echo-запросов,
одновременно отправляет ответы на атакуемый узел. В результате атаки сеть, в которой
находится жертва, сам атакуемый узел, а также и сети-усилители могут быть временно
заблокированы шквалом ответных сообщений.
Для атакуемого узла и его сети не существует адекватных способов защиты от этой атаки.
SYN flood и Naptha
Распространенная атака SYN flood (она же Neptune) состоит в посылке злоумышленником
SYN-сегментов TCP на атакуемый узел в количестве большем, чем тот может обработать
одновременно (это число невелико — обычно несколько десятков).
При получении каждого SYN-сегмента модуль TCP создает блок TCB, то есть выделяет
определенные ресурсы для обслуживания будущего соединения, и отправляет свой SYNсегмент. Ответа на него он никогда не получит. (Чтобы замести следы и не затруднять
себя игнорированием ответных SYN-сегментов, злоумышленник будет посылать свои
SYN-сегменты от имени несуществующего отправителя или нескольких случайно
выбранных несуществующих отправителей.) Через несколько минут модуль TCP
ликвидирует так и не открытое соединение, но если одновременно злоумышленник
сгенерирует большое число SYN-сегментов, то он заполнит все ресурсы, выделенные для
обслуживания открываемых соединений, и модуль TCP не сможет обрабатывать новые
SYN-сегменты, пока не освободится от запросов злоумышленника. Постоянно посылая
новые запросы, злоумышленник может продолжительно удерживать жертву в
блокированном состоянии. Чтобы снять воздействие атаки, злоумышленник посылает
серию сегментов с флагом RST, которые ликвидируют полуоткрытые соединения и
освобождают ресурсы атакуемого узла.
Целью атаки является приведение узла (сервера) в состояние, когда он не может
принимать запросы на открытие соединений.
Полной защиты от описанных атак не существует. Чтобы уменьшить подверженность
узла атаке администратор должен использовать программное обеспечение, позволяющее
установить максимальное число открываемых соединений, а также список разрешенных
клиентов (если это возможно). Только необходимые порты должны быть открыты
(находиться в состоянии LISTEN), остальные сервисы следует отключить. Операционная
система должна иметь устойчивость к атакам Naptha — при проведении атаки не должно
возникать отказа в обслуживании пользователей и сервисов, не имеющих отношения к
атакуемым.
Должен также проводиться анализ трафика в сети для выявления начавшейся атаки,
признаком чего является большое число однотипных сегментов, и блокирование
сегментов злоумышленника фильтром на маршрутизаторе. Маршрутизаторы Cisco
предлагают механизм TCP Intercept, который служит посредником между внешним TCPклиентом и TCP-сервером, находящимся в защищаемой сети. При получении SYNсегмента из Интернета маршрутизатор не ретранслирует его во внутреннюю сеть, а сам
отвечает на этот сегмент от имени сервера. Если соединение с клиентом устанавливается,
то маршрутизатор устанавливает соединение с сервером от имени клиента и при
дальнейшей передаче сегментов в этом соединении действует как прозрачный посредник,
о котором ни клиент, ни сервер не подозревают. Если ответ от клиента за определенное
время так и не поступил, то оригинальный SYN-сегмент не будет передан получателю.
Если SYN-сегменты начинают поступать в большом количестве и на большой скорости,
то маршрутизатор переходит в «агрессивный» режим: время ожидания ответа от клиента
резко сокращается, а каждый вновь прибывающий SYN-сегмент приводит к исключению
из очереди одного из ранее полученных SYN-сегментов. При снижении интенсивности
потока запросов на соединения маршрутизатор возвращается в обычный, «дежурный»
режим.
Отметим, что применение TCP Intercept фактически переносит нагрузку по борьбе с SYNатакой с атакуемого хоста на маршрутизатор, который лучше подготовлен для этой
борьбы.
UDP flood
Атака состоит в затоплении атакуемой сети шквалом UDP-сообщений. Для генерации
шквала злоумышленник использует сервисы UDP, посылающие сообщение в ответ на
любое сообщение.
Использование промежуточных систем для реализации атак, связанных с генерацией
направленного шквала пакетов (типа smurf), оказалось весьма плодотворной идеей для
злоумышленников. Такие атаки называются распределенными (Distributed DoS, DDoS).
Для их реализации злоумышленниками создаются программы-демоны, захватывающие
промежуточные системы и впоследствии координирующие создание направленных на
атакуемый узел шквалов пакетов (ICMP Echo, UDP, TCP SYN). Захват систем
производится путем использования ошибок в программах различных сетевых сервисов.
Ложные DHCP-клиенты
Атака состоит в создании злоумышленником большого числа сфальсифицированных
запросов от различных несуществующих DHCP-клиентов. Если DHCP-сервер выделяет
адреса динамически из некоторого пула, то все адресные ресурсы могут быть истрачены
на фиктивных клиентов, вследствие чего легитимные хосты не смогут
сконфигурироваться и лишатся доступа в сеть.
Для защиты от этой атаки администратору следует поддерживать на DHCP-сервере
таблицу соответствия MAC- и IP-адресов (если это возможно); сервер должен выдавать
IP-адреса в соответствии с этой таблицей.
7.2. Сбой системы
DoS-атаки этой группы не связаны с какими-либо проблемами протоколов стека TCP/IP, а
используют ошибки в их программной реализации. Эти ошибки сравнительно просто
исправить. С другой стороны нет никаких гарантий того, что не будут обнаружены новые
ошибки. Для защиты от подобных атак необходимо использовать последние версии
операционных систем и следить за обновлениями к ним. Примеры таких атак:
1. Ping of death (атака состоит в посылке на атакуемый узел фрагментированной
датаграммы, размер которой после сборки превысит 65 535 октетов),
2. Teardrop (атака использует ошибку, возникающую при подсчете длины фрагмента во
время сборки датаграммы),
3. Land (атака состоит в посылке на атакуемый узел SYN-сегмента TCP, у которого IPадрес и порт отправителя совпадают с адресом и портом получателя),
4. Nuke (атака состояла в посылке на атакуемый TCP-порт срочных данных
(задействовано поле Urgent Pointer) и поражала через порт 139 Windows-системы, в
которых в прикладном процессе не была предусмотрена возможность приема срочных
данных, что приводило к краху системы).
7.3. Изменение конфигурации или состояния узла
Перенаправление трафика на несуществующий узел
В п.2 были рассмотрены различные методы перехвата трафика злоумышленником. Любой
из этих методов может быть использован также и для перенаправления посылаемых
атакуемым узлом (или целой сетью) данных «в никуда», результатом чего будет потеря
связи жертвы с выбранными злоумышленником узлами или сетями.
В дополнение стоит отметить, что при использовании в сети любого протокола
маршрутизации злоумышленник может генерировать сфальсифицированные сообщения
протокола, содержащие некорректные или предельные значения некоторых полей
(порядковых номеров, возраста записи, метрики), что приведет к нарушениям в системе
маршрутизации.
Навязывание длинной сетевой маски
Если хост получает маску для своей сети через ICMP-сообщение Address Mask Reply, то,
сформировав ложное сообщение с длинной маской (например, 255.255.255.252),
злоумышленник существенно ограничит способность атакуемого хоста к соединениям
(коннективность). Если в «суженной» злоумышленником сети не окажется
маршрутизатора по умолчанию, то жертва сможет посылать данные только узлам,
попадающим под навязанную маску. В настоящее время хосты динамически
конфигурируются с помощью протокола DHCP. Тем не менее, следует проверить, как
система отреагирует на получение ICMP Address Mask Reply.
Десинхронизация TCP-соединения
Десинхронизация TCP-соединения была рассмотрена в п.3. Очевидно, что если после
выполнения десинхронизации злоумышленник не будет функционировать в качестве
посредника, то передача данных по атакованному TCP-соединению будет невозможна.
Сброс TCP-соединения
Если узел А установил соединение с узлом В, то злоумышленник может принудить узел А
преждевременно закрыть это соединение. Для этого злоумышленник может послать узлу
А от имени В сфальсифицированный RST-сегмент или ICMP-сообщение Destination
Unreachable.
Принуждение к передаче данных на заниженной скорости
Злоумышленник может несколькими способами вынудить модуль TCP узла А снизить
скорость передачи данных узлу В в TCP-соединении.
3. Методы и средства анализа уязвимостей серверов и служб.
Выявление уязвимостей компьютерных сетей
Системы обнаружения атак
Существует три этапа осуществления атаки. Первый, подготовительный, этап заключается
в поиске предпосылок для осуществления той или иной атаки. На этом этапе ищутся
уязвимости, использование которых приводит к реализации атаки, т.е. ко второму этапу.
На третьем этапе завершается атака, "заметаются" следы и т.д. При этом первый и третий
этапы сами по себе могут являться атаками. Например, поиск нарушителем уязвимостей
при помощи сканеров безопасности, например, SATAN считается атакой.
Существующие механизмы защиты, реализованные в межсетевых экранах, серверах
аутентификации, системах разграничения доступа и т.д. работают только на втором этапе.
Т.е. по существу они являются средствами блокирующими, а не упреждающими атаки. В
абсолютном большинстве случаев они защищают от атак, которые уже находятся в
процессе осуществления. И даже если они смогли предотвратить ту или иную атаку, то
намного более эффективным было бы упреждение атак, т.е. устранение самих
предпосылок реализации вторжений. Комплексная система обеспечения информационной
безопасности должна работать на всех трех этапах осуществления атаки. И обеспечение
адекватной защиты на третьем, завершающем, этапе не менее важно, чем на первых двух.
Ведь только в этом случае можно реально оценить ущерб от "успешной" атаки, а также
разработать меры по устранению дальнейших попыток реализовать аналогичную атаку.
Обнаруживать, блокировать и предотвращать атаки можно несколькими путями. Первый,
и самый распространенный, способ - это обнаружение уже реализуемых атак. Этот способ
применяется в "классических" системах обнаружения атак (например, RealSecure
компании Internet Security Systems), межсетевых экранах и т.п. Однако, "недостаток"
средств данного класса в том, что атаки могут быть реализованы повторно. Второй путь предотвратить атаки еще до их реализации. Осуществляется это путем поиска
уязвимостей, которые могут быть использованы для реализации атаки. И, наконец, третий
путь - обнаружение уже совершенных атак и предотвращение их повторного
осуществления. Таким образом, системы обнаружения атак могут быть
классифицированы по этапам осуществления атаки (рис.9.):



Системы, функционирующие на первом этапе осуществления атак и позволяющие
обнаружить уязвимости информационной системы, используемые нарушителем
для реализации атаки. Иначе средства этой категории называются системами
анализа защищенности (security assessment systems) или сканерами безопасности
(security scanners). Обычно системы анализа защищенности не принято относить к
классу средств обнаружения атак, однако, если следовать описанным выше этапам
осуществления атаки, то такое отнесение вполне логично.
Системы, функционирующие на втором этапе осуществления атаки и позволяющие
обнаружить атаки в процессе их реализации, т.е. в режиме реального (или близкого
к реальному) времени. Именно эти средства и принято считать системами
обнаружения атак в классическом понимании. Помимо этого можно выделить
такой класс средств обнаружения атак как обманные системы.
Системы, функционирующие на третьем этапе осуществления атаки и
позволяющие обнаружить уже совершенные атаки. Эти системы делятся на два
класса - системы контроля целостности, обнаруживающие изменения
контролируемых ресурсов, и системы анализа журналов регистрации.
Рисунок 9. Классификация систем обнаружения атак по этапу осуществления атаки
Помимо этого, существует еще одна распространенная классификация систем
обнаружения нарушения политики безопасности - по принципу реализации: host-based,
т.е. обнаруживающие атаки, направленные на конкретный узел сети, и network-based,
направленные на всю сеть или сегмент сети. Обычно на этом дальнейшая классификация
останавливается. Однако системы класса host-based можно разделить еще на три
подуровня:
 Application IDS (Intrusion Detection System), обнаруживающие атаки на конкретные
приложения;
 OS IDS, обнаруживающие атаки на операционные системы;
 DBMS IDS, обнаруживающие атаки на системы управления базами данных.
Выделение обнаружения атак на системы управления базами данных (СУБД) в отдельную
категорию связано с тем, что современные СУБД уже вышли из разряда обычных
приложений и по многим своим характеристикам, в т.ч. и по сложности, приближаются к
операционным системам. Таким образом, классификация систем обнаружения атак по
уровню реализации выглядит следующим образом (рис.10):
Можно заметить, что это деление соответствует уровням информационной системы
предприятия.
Рисунок 10. Классификация систем обнаружения атак по принципу реализации
Системы контроля целостности
Системы контроля целостности работают по замкнутому циклу, обрабатывая файлы,
системные объекты и атрибуты системных объектов с целью получения контрольных
сумм; затем они сравнивают их с предыдущими контрольными суммами, отыскивая
изменения. Когда изменение обнаружено, система посылает сообщение администратору,
фиксируя время, соответствующее вероятному времени изменения. Если вновь вернуться
к этапам реализации атаки, то системы этого класса функционируют на третьем этапе, т.е.
они могут однозначно сказать, происходила атака (точнее изменение контролируемого
объекта) или нет.
Обманные системы
Обычно, когда речь заходит об обмане в области информационной безопасности, то здесь
используются методы, которые применяют злоумышленники, т.е. лазейки для обхода
используемых средств защиты, будь то кража паролей и работа от имени авторизованного
пользователя или несанкционированное использование модемов. Обман может сослужить
хорошую службу не только для злоумышленников, но и для защиты корпоративных
ресурсов. Существует множество различных вариантов использования обмана в благих
целях:
1. Сокрытие
2. Камуфляж
3. Дезинформация
В той или иной мере эти механизмы используются в практике работ отделов
безопасности. Однако, как правило, эти механизмы используются не для
информационной, а для иных областей обеспечения безопасности (физическая,
экономическая и т.д.).
В области информационной безопасности наибольшее распространение получил первый
метод - сокрытие. Ярким примером использования этого метода в целях обеспечения
информационной безопасности можно назвать сокрытие сетевой топологии при помощи
межсетевого экрана. Примером камуфляжа является следующий пример: каждая
операционная система обладает присущим только ей представлением механизма
идентификации пользователя, отличающимся цветом и типом шрифта, которым выдается
приглашение, текстом приглашения и местом его расположения. И, наконец, в качестве
примера дезинформации можно назвать использование заголовков (banner), которые бы
давали понять злоумышленнику, что атакуемая им система якобы уязвима.
Работа систем 2 и 3 их реализующих заключается в том, что эти системы эмулируют те
или иные известные уязвимости, которых в реальности не существует. Использование
средств (deception systems), реализующих камуфляж и дезинформацию, приводит к
следующему:
1. Увеличение числа выполняемых нарушителем операций и действий. Так как заранее
определить является ли обнаруженная нарушителем уязвимость истинной или нет,
злоумышленнику приходится выполнять много дополнительных действий, чтобы
выяснить это. И даже дополнительные действия не всегда помогают в этом. Например,
попытка запустить программу подбора паролей (например, Crack для Unix или
L0phtCrack(LC) для Windows) на сфальсифицированный и несуществующий в реальности
файл, приведет к бесполезной трате времени без какого-либо видимого результата.
Нападающий будет думать, что он не смог подобрать пароли, в то время как на самом
деле программа "взлома" была просто обманута.
2. Получение возможности отследить нападающих. За тот период времени, когда
нападающие пытаются проверить все обнаруженные уязвимости, в т.ч. и фиктивные,
администраторы безопасности могут проследить весь путь до нарушителя или
нарушителей и предпринять соответствующие меры.
Например, в информационной системе используются от 5 до 10 зарезервированных
портов (с номерами от 1 до 1024). К ним можно отнести порты, отвечающие за
функционирование сервисов HTTP, FTP, SMTP, NNTP, NetBIOS, Echo, Telnet и т.д. Если
обманные системы (например, RealSecure компании ISS) эмулируют использование еще
100 и более портов, то работа нападающего резко увеличивается и злоумышленник
обнаружит не 5-10, а 100 открытых портов. При этом мало обнаружить открытый порт,
надо еще попытаться использовать уязвимости, связанные с этим портом. И даже если
нападающий автоматизирует эту работу путем использования соответствующих
программных средств (Nmap, SATAN и т.д.), то число выполняемых им операций все
равно существенно увеличивается, что приводит к быстрому снижению
производительности его работы.
Средства анализа защищенности
Обнаружением уязвимостей занимаются системы анализа защищенности - сканеры
безопасности или системы поиска уязвимостей. Они проводят всесторонние исследования
заданных систем с целью обнаружения уязвимостей, которые могут привести к
нарушениям политики безопасности. Результаты, полученные от средств анализа
защищенности, представляют "мгновенный снимок" состояния защиты системы в данный
момент времени. Несмотря на то, что эти системы не могут обнаруживать атаку в
процессе ее развития, они могут определить потенциальную возможность реализации
атак.
Технология анализа защищенности является действенным методом реализации политики
сетевой безопасности прежде, чем осуществится попытка ее нарушения снаружи или
изнутри организации.
Одним из вариантов классификации уязвимостей может служить классификация,
отражающая этапы жизненного цикла информационной системы (Таблица 1).
Таблица 3. Категории уязвимостей
Этапы жизненного цикла ИС Категории уязвимостей ИС
Проектирование ИС
Уязвимости проектирования
Реализация ИС
Уязвимости реализации
Эксплуатация ИС
Уязвимости конфигурации
Наиболее опасны уязвимости проектирования, которые обнаруживаются и устраняются с
большим трудом. В этом случае, уязвимость свойственна проекту или алгоритму и,
следовательно, даже совершенная его реализация (что в принципе невозможно) не избавит
от заложенной в нем уязвимости. Например, уязвимость стека протоколов TCP/IP.
Смысл уязвимостей второй категории (уязвимости реализации) заключается в появлении
ошибки на этапе реализации в программном или аппаратном обеспечении корректного с
точки зрения безопасности проекта или алгоритма. Обнаруживаются и устраняются
такого рода уязвимости относительно легко - путем обновления исполняемого кода или
изменения исходного текста уязвимого ПО.
Последняя причина возникновения уязвимостей - ошибки конфигурации программного
или аппаратного обеспечения. К их числу можно отнести, например, доступный, но не
используемый на узле сервис Telnet, использование "слабых" паролей или паролей менее
6 символов, учетные записи (accounts) и пароли, остановленные по умолчанию (например,
SYSADM или DBSNMP в СУБД Oracle), и т.д. Обнаружить и исправить такие уязвимости
проще всего.
Системы анализа защищенности могут быть классифицированы по типам
обнаруживаемых ими уязвимостей (Рис.11), описанных выше.
Рисунок 11. Системы анализа защищенности
Системы анализа защищенности второго и третьего классов получили наибольшее
распространение среди конечных пользователей. Существует несколько дополнительных
классификаций этих систем. Например, системы анализа исходного текста и
исполняемого кода тестируемого программно-аппаратного обеспечения и т.д. Первые
также применяются обычно при сертификации программного обеспечения по
требованиям безопасности. В большинстве случаев программное обеспечение
поставляется в организации без исходных текстов. Кроме того, анализ исходных текстов
требует высокой квалификации от обслуживающего их персонала. Отсутствие
эффективных систем анализа исходных текстов не позволяет проводить такой анализ на
качественном уровне. Именно поэтому большой интерес вызывают системы поиска
уязвимостей в исполняемом коде, самым распространенным подклассом которых
являются системы имитации атак, которые моделируют различные несанкционированные
воздействия на компоненты информационной системы. Именно эти системы получили
широкую известность во всем мире ввиду своей относительной простоты и дешевизны.
Посредством таких имитаторов обнаруживаются уязвимости еще до того, как они будут
использованы нарушителями для реализации атак. К числу систем данного класса можно
отнести SATAN, Internet Scanner, Cisco Secure Scanner и т.д.
Системы имитации атак с одинаковым успехом обнаруживают не только уязвимости
реализации, но и уязвимости эксплуатации. Функционировать системы анализа
защищенности, в частности системы поиска уязвимостей реализации и эксплуатации,
могут на всех уровнях информационной инфраструктуры любой компании, то есть на
уровне сети, операционной системы, СУБД и прикладного программного обеспечения.
Наибольшее распространение получили средства анализа защищенности сетевых сервисов
и протоколов. Связано это, в первую очередь, с универсальностью используемых
протоколов. Изученность и повсеместное использование таких стеков протоколов, как
TCP/IP и т.п. позволяют с высокой степенью эффективности проверять защищенность
корпоративной сети, работающей в данном сетевом окружении, независимо от того, какое
программное обеспечение функционирует на более высоких уровнях. Примером такой
системы является Internet Scanner компании ISS. Вторыми по распространенности
являются средства анализа защищенности операционных систем. Связано это также с
универсальностью и распространенностью некоторых операционных систем (например,
UNIX и Windows). Однако, из-за того, что каждый производитель вносит в операционную
систему свои изменения (ярким примером является множество разновидностей ОС UNIX),
средства анализа защищенности ОС анализируют в первую очередь параметры,
характерные для всего семейства одной ОС. И лишь для некоторых систем анализируются
специфичные для нее параметры. Примером такой системы является System Scanner
компании ISS.
При проведении анализа защищенности реализуются две стратегии. Первая - пассивная, реализуемая на уровне операционной системы, СУБД и приложений, при которой
осуществляется анализ конфигурационных файлов и системного реестра на наличие
неправильных параметров, файлов паролей на наличие легко угадываемых паролей, а
также других системных объектов на нарушения политики безопасности. Вторая
стратегия, - активная, - осуществляемая в большинстве случаев на сетевом уровне,
позволяющая воспроизводить наиболее распространенные сценарии атак, и анализировать
реакции системы на эти сценарии.
Однако не стоит думать, что при помощи средств анализа защищенности можно
тестировать только возможность несанкционированного доступа в корпоративную сеть из
сетей открытого доступа (например, Internet). Эти средства с не меньшим успехом могут
быть использованы для анализа некоторых сегментов или узлов внутренней сети
организации. Системы анализа защищенности могут быть использованы:
 для оценки уровня безопасности организации;
 для контроля эффективности настройки сетевого, системного и прикладного
программно-аппаратного обеспечения;
 внешними аудиторскими и консалтинговыми компаниями, осуществляющими
информационные обследования сетей заказчиков;
 для тестирования и сертификации того или иного программно-аппаратного
обеспечения.
Таблица 4. Средства анализа защищенности.
Название
Производитель Категория
Примечание
Первая система, получившая
Internet Security На уровне
сертификат ГТК. По системе
Internet Scanner
Systems
сети
существует авторизованное обучение
в России.
Internet Security
По системе существует
System Scanner
На уровне ОС
Systems
авторизованное обучение в России.
Internet Security На уровне
По системе существует
Database Scanner
Systems
СУБД
авторизованное обучение в России.
Cisco Secure
На уровне
Cisco Systems
Scanner
сети
Network
На уровне
CyberCop Scanner
Associates
сети
WebTrends
WebTrends
На уровне
Security Analyzer Corporation
сети
Enterprise
Security Manager Symantec
На уровне ОС
На уровне
SFProtect
Hewlett Packard сети, ОС,
СУБД
Свободно
На уровне
Nessus
Система имеет сертификат ГТК.
распространяется сети
Поскольку постоянно появляются новые уязвимости, то для их эффективного
обнаружения необходимо постоянно обновлять базу данных системы анализа
защищенности. В идеале разрыв между появлением информации об уязвимости в
различных "хакерских" источниках и появлением сигнатуры в базе данных системы
обнаружения должен отсутствовать. Но как бы часто не обновлялась база данных
уязвимостей, существует временной промежуток между сообщением о новой уязвимости
и появлением проверки для нее.
Существует два основных механизма, при помощи которых сканер проверяет наличие
уязвимости - сканирование (scan) и зондирование (probe).
Сканирование - механизм пассивного анализа, с помощью которого сканер пытается
определить наличие уязвимости без фактического подтверждения ее наличия - по
косвенным признакам. Этот метод является наиболее быстрым и простым для реализации.
В терминах компании ISS данный метод получил название "логический вывод" (inference).
Согласно компании Cisco этот процесс идентифицирует открытые порты, найденные на
каждом сетевом устройстве, и собирает связанные с портами заголовки (banner),
найденные при сканировании каждого порта. Каждый полученный заголовок
сравнивается с таблицей правил определения сетевых устройств, операционных систем и
потенциальных уязвимостей. На основе проведенного сравнения делается вывод о
наличии или отсутствии уязвимости.
Зондирование - механизм активного анализа, который позволяет убедиться, присутствует
или нет на анализируемом узле уязвимость. Зондирование выполняется путем имитации
атаки, использующей проверяемую уязвимость. Этот метод более медленный, чем
"сканирование", но почти всегда гораздо более точный, чем он. В терминах компании ISS
данный метод получил название "подтверждение" (verification). Согласно компании Cisco
этот процесс использует информацию, полученную в процессе сканирования
("логического вывода"), для детального анализа каждого сетевого устройства. Этот
процесс также использует известные методы реализации атак для того, чтобы полностью
подтвердить предполагаемые уязвимости и обнаружить другие уязвимости, которые не
могут быть обнаружены пассивными методами, например подверженность атакам типа
"отказ в обслуживании" ("denial of service").
На практике указанные механизмы реализуются следующими несколькими методами.
"Проверка заголовков" (banner check)
Указанный механизм представляет собой ряд проверок типа "сканирование" и позволяет
делать вывод об уязвимости, опираясь на информацию в заголовке ответа на запрос
сканера. Типичный пример такой проверки - анализ заголовков программы Sendmail или
FTP-сервера, позволяющий узнать их версию и на основе этой информации сделать вывод
о наличии в них уязвимости. Однако не стоит забывать, что администратор может
изменить текст заголовков, возвращаемых на внешние запросы.
"Активные зондирующие проверки" (active probing check)
Также относятся к механизму "сканирования". Однако они основаны на сравнении
"цифрового слепка" (fingerprint) фрагмента программного обеспечения со слепком
известной уязвимости. Аналогичным образом поступают антивирусные системы,
сравнивая фрагменты сканируемого программного обеспечения с сигнатурами вирусов,
хранящимися в специализированной базе данных. Разновидностью этого метода являются
проверки контрольных сумм или даты сканируемого программного обеспечения, которые
реализуются в сканерах, работающих на уровне операционной системы.
Специализированная база данных (в терминах компании Cisco - база данных по сетевой
безопасности) содержит информацию об уязвимостях и способах их использовании
(атаках). Эти данные дополняются сведениями о мерах их устранения, позволяющих
снизить риск безопасности в случае их обнаружения. Зачастую эта база данных
используется и системой анализа защищенности и системой обнаружения атак. По
крайней мере, так поступают компании Cisco и ISS.
Этот метод также достаточно быстр, но реализуется труднее, чем "проверка заголовков".
"Имитация атак" (exploit check)
Некоторые уязвимости не обнаруживают себя, пока их не "подтолкнут". Для этого против
подозрительного сервиса или узла запускаются реальные атаки. Проверки методом
"exploit check" позволяет имитировать реальные атаки, тем самым с большей
эффективностью (но меньшей скоростью) обнаруживая уязвимости на сканируемых
узлах. Имитация атак является более надежным способом анализа защищенности, чем
проверки заголовков, и обычно более надежны, чем активные зондирующие проверки.
Однако существуют случаи, когда имитация атак не всегда может быть реализована.
Такие случаи можно разделить на две категории: ситуации, в которых тест приводит к
"отказу в обслуживании" анализируемого узла или сети, и ситуации, при которых
уязвимость в принципе не годна для реализации атаки на сеть.
Многие проблемы защиты не могут быть выявлены без блокирования или нарушения
функционирования сервиса или компьютера в процессе сканирования. В некоторых
случаях нежелательно использовать имитацию атак (например, для анализа
защищенности важных серверов), т.к. это может привести к большим затратам
(материальным и временным) на восстановление работоспособности выведенных из строя
элементов корпоративной сети. В этих случаях желательно применить другие проверки,
например, активное зондирование или проверки заголовков.
Однако, есть некоторые уязвимости, которые просто не могут быть протестированы без
возможного выведения из строя сервиса или компьютера. В этом случае такие проверки
выключены и пользователь может сам включить их. Например, в Internet Scanner такого
рода проверки выделены в отдельную категорию "Denial of service" ("Отказ в
обслуживании").
Этапы сканирования
Практически любой сканер проводит анализ защищенности в несколько этапов:
1. Сбор информации о сети. На данном этапе идентифицируются все активные
устройства в сети и определяются запущенные на них сервисы и демоны. В случае
использования систем анализа защищенности на уровне операционной системы
данный этап пропускается, поскольку на каждом анализируемом узле установлены
соответствующие агенты системного сканера.
2. Обнаружение потенциальных уязвимостей. Сканер использует описанную выше
базу данных для сравнения собранных данных с известными уязвимостями при
помощи проверки заголовков или активных зондирующих проверок. В некоторых
системах все уязвимости ранжируются по степени риска. Например, в Internet
Scanner уязвимости делятся на три степени риска: высокая (High), средняя
(Medium) и низкая (Low).
3. Подтверждение выбранных уязвимостей. Сканер использует специальные методы
и моделирует (имитирует) определенные атаки для подтверждения факта наличия
уязвимостей на выбранных узлах сети.
4. Генерация отчетов.
5. Автоматическое устранение уязвимостей. Этот этап очень редко реализуется в
сетевых сканерах, но широко применяется в системных сканерах (например,
System Scanner). При этом данная возможность может реализовываться поразному. Например, в System Scanner создается специальный сценарий (fix script),
который администратор может запустить для устранения уязвимости.
Одновременно с созданием этого сценария, создается и второй сценарий,
отменяющий произведенные изменения. Это необходимо в том случае, если после
устранения проблемы, нормальное функционирование узла быдет нарушено.
В любом случае у администратора, осуществляющего поиск уязвимостей, есть несколько
вариантов использования системы анализа защищенности:
 · Запуск сканирования только с проверками на потенциальные уязвимости (этапы
1,2 и 4). Это дает предварительное ознакомление с системами в сети. Этот метод
является гораздо менее разрушительным по сравнению с другими и также является
самым быстрым.
 · Запуск сканирования с проверками на потенциальные и подтвержденные
уязвимости. Этот метод может вызвать нарушение работы узлов сети во время
реализации проверок типа "exploit check".
Запуск сканирования с пользовательскими правилами для нахождения конкретной
проблемы.
 Комбинации вышеперечисленного.
Подсистема генерации отчетов - немаловажный элемент системы анализа защищенности.
Без нее трудно составить мнение о том, каков уровень защищенности сегментов
корпоративной сети. На основе созданных отчетов администратор безопасности строит
всю свою дальнейшую деятельность - изменяет политику безопасности, устраняет
обнаруженные уязвимости, реконфигурирует средства защиты, готовит отчеты
руководству и т.д. При этом хорошая подсистема генерации отчетов должна обладать
следующими свойствами:
 Наличие в отчетах, как текстовой информации, так и графических данных.
 Наличие в отчетах информации об обнаруженной уязвимости, вариантах ложного
обнаружения, наличие рекомендаций по устранению обнаруженных проблем,
ссылках на сервера производителей, дополнительной информации. Во многих
случаях отчеты также содержат ссылки на FTP- или Web-сервера, содержащие
patch'и и hotfix'ы, устраняющие обнаруженные уязвимости.
 Возможность выборки из всей собранной информации только нужных данных по
заданным критериям (интервал времени, название уязвимости, степень риска,
операционная система, тип уязвимости и т.д.).
 Возможность сортировки данных в создаваемых отчетах по различным параметрам
(по имени, по дате, по степени риска и т.д.).
 Возможность создания отчетов для различных категорий специалистов. Как
минимум можно выделить три таких категории: руководство компании,
руководство среднего звена и технические специалисты. В отчетах первой
категории не содержится никакой технической информации об обнаруженных
уязвимостях или атаках. Они содержат описание общего состояния защищенности
корпоративной сети. Отчеты второй категории могут содержать более подробную
техническую информацию, например, описание обнаруженных уязвимостей или
атак, но без указания мер по их устранению. К данной категории также относятся
так называемые сравнительные отчеты (trend analysis), которые показывают
тенденции в изменении уровня защищенности заданных узлов корпоративной сети.
К последней категории отчетов можно отнести технические отчеты, содержащие не
только подробное описание каждой из обнаруженных проблем, но и рекомендации
по их устранению, а также ссылки на дополнительные источники информации.
Такие категории отчетов приняты, например, в Internet Scanner и Cisco Secure
Scanner.
 Поддержка различных форматов создаваемых отчетов.
Особенности применения
Если сканер не находит уязвимостей на тестируемом узле это не значит, что их нет.
Просто это зависит не только от сканера, но и от его окружения. Например, для ОС
Windows характерен такой случай: сканер пытается дистанционно проанализировать
системный реестр, однако в случае запрета на анализируемом узле удаленного доступа к
реестру, сканер никаких уязвимостей не обнаружит. Различные реализации одного итого
же сервиса по-разному реагируют на системы анализа защищенности. Очень часто на
практике можно увидеть, что сканер показывает уязвимости, которых на анализируемом
узле нет. Это относится к сетевым сканерам, которые проводят дистанционный анализ
узлов сети. Удаленно определить, существует ли в действительности уязвимость или нет,
практически невозможно. В этом случае можно порекомендовать использовать систему
анализа защищенности на уровне операционной системы, агенты которой
устанавливаются на каждый контролируемый узел и проводят все проверки локально.
Для решения этой проблемы некоторые компании-производители пошли по пути
предоставления своим пользователям нескольких систем анализа защищенности,

работающих на всех указанных выше уровнях, - сетевом, системном и уровне
приложений. Совокупность этих систем позволяет с высокой степенью эффективности
обнаружить практически все известные уязвимости. Например, компания Internet Security
Systems предлагает семейство SAFEsuite, состоящее из четырех сканеров: Internet Scanner,
System Scanner, Security Manager и Database Scanner.
Компания Cisco, предлагающая только систему анализа защищенности на уровне сети
пошла другим путем для устранения проблемы ложного срабатывания. Она делит все
уязвимости на два класса:
 Потенциальные - вытекающие из проверок заголовков и т.н. активных
"подталкиваний" (nudge) анализируемого сервиса или узла. Потенциальная
уязвимость возможно существует в системе, но активные зондирующие проверки
не подтверждают этого.
 Подтвержденные - выявленные и существующие на анализируемом хосте.
Проверки на потенциальную уязвимость проводятся через коллекцию заголовков и
использование "несильных подталкиваний". "Подталкивание" используется для сервисов,
не возвращающих заголовки, но реагирующих на простые команды, например, посылка
команды HEAD для получения версии HTTP-сервера.
В некоторых случаях имеются уязвимости, с трудом обнаруживаемые или совсем не
обнаруживаемые через сеть. Например, проверка "слабости" паролей, используемых
пользователями и другими учетными записями. В случае использования сетевого сканера
вам потребуется затратить очень много времени на удаленную проверку каждой учетной
записи. В то же время, аналогичная проверка, осуществляемая на локальном узле,
проводится на несколько порядков быстрее. Другим примером может служить проверка
файловой системы сканируемого узла. Во многих случаях ее нельзя осуществить
дистанционно.
Достоинства сканирования на уровне ОС кроются в прямом доступе к низкоуровневым
возможностям ОС хоста, конкретным сервисам и деталям конфигурации. Тогда как сканер
сетевого уровня имитирует ситуацию, которую мог бы иметь внешний злоумышленник,
сканер системного уровня может рассматривать систему со стороны пользователя, уже
имеющего доступ к анализируемой системе и имеющего в ней учетную запись. Это
является наиболее важным отличием, поскольку сетевой сканер по определению не может
предоставить эффективного анализа возможных рисков деятельности пользователя.
Многие сканеры используют более чем один метод проверки одной и той же уязвимости
или класса уязвимостей. Однако в случае большого числа проверок использование
нескольких методов поиска одной уязвимости привносит свои проблемы. Связано это со
скоростью проведения сканирования.
Не все проверки, разработанные в лабораторных условиях, функционируют так, как
должны. Даже, несмотря на то, что эти проверки тестируются, прежде чем будут внесены
в окончательную версию сканера. На это могут влиять некоторые факторы:
 Особенности конфигурации пользовательской системы.
 Способ, которым был скомпилирован анализируемый демон или сервис.
 Ошибки удаленной системы.
В таких случаях автоматическая проверка может пропустить уязвимость, которая легко
обнаруживается вручную и которая может быть широко распространена во многих
системах. Проверка заголовка в совокупности с активным зондированием в таком случае
может помочь определить подозрительную ситуацию, сервис или узел. И хотя уязвимость
не обнаружена, это не значит, что ее не существует.
Меры безопасности при использовании протоколов TCP/IP
1.Фильтрация на маршрутизаторе
Фильтры на маршрутизаторе, соединяющем сеть предприятия с Интернетом,
применяются для запрета пропуска датаграмм, которые могут быть использованы для атак
как на сеть организации из Интернета, так и на внешние сети злоумышленником,
находящимся внутри организации.
Следует отметить, что более безопасным и управляемым решением, чем фильтрация того
или иного TCP-трафика следующего от или к компьютеру пользователя, является работа
пользователей через прокси-серверы. Прокси-сервер берет на себя функции
предоставления пользователю требуемого сервиса и сам связывается с необходимыми
хостами Интернета. Хост пользователя взаимодействует только с прокси-сервером и не
нуждается в коннективности с Интернетом. Таким образом, фильтрующий маршрутизатор
разрешает прохождение TCP-сегментов определенного типа только от или к проксисерверу. Преимущества этого решения следующие:
· Прокси-сервер находится под контролем администратора предприятия, что позволяет
реализовывать различные политики для дифференцированного управления доступом
пользователей к сервисам и ресурсам Интернета, фильтрации передаваемых данных
(защита от вирусов, цензура и т.п.), кэширования (там, где это применимо).
· С точки зрения Интернета от имени всех пользовательских хостов предприятия
действует один прокси-сервер, то есть имеется только один потенциальный объект для
атаки из Интернета, а безопасность одного прокси-сервера, легче обеспечить, чем
безопасность множества пользовательских компьютеров.
2.Анализ сетевого трафика
Анализ сетевого трафика проводится для обнаружения атак, предпринятых
злоумышленниками, находящимися как в сети организации, так и в Интернете.
3.Защита маршрутизатора
Мероприятия по защите маршрутизатора проводятся с целью предотвращения атак,
направленных на нарушение схемы маршрутизации датаграмм или на захват
маршрутизатора злоумышленником.
4.Защита хоста
Мероприятия по защите хоста проводятся для предотвращения атак, цель которых —
перехват данных, отказ в обслуживании, или проникновение злоумышленника в
операционную систему.
5.Превентивное сканирование
Администратор сети должен знать и использовать методы и инструменты
злоумышленника и проводить превентивное сканирование сети организации для
обнаружения слабых мест в безопасности до того, как это сделает злоумышленник. Для
этой цели имеется также специальное программное обеспечение — сканеры безопасности.
Общие меры по повышению безопасности сети
1. Оперативная установка исправлений для программ (Patching). Системные
администраторы должны защищать самые важные свои системы, оперативно
устанавливая исправления для программ на них. Тем не менее, установить исправления
для программ на всех хостах в сети трудно, так как исправления могут появляться
достаточно часто. В этом случае надо обязательно вносить исправления в программы на
самых важных хостах.
2. Обнаружение вирусов и троянских коней. Для максимальной эффективности они
должны быть установлены на всех компьютерах в сети. На установку антивирусных
программ на всех компьютерах и регулярное обновление антивирусных баз в них может
уходить достаточно много времени - но иначе это средство не будет эффективным.
Пользователей следует учить, как им самим делать эти обновления, но при этом нельзя
полностью полагаться на них. Помимо обычной антивирусной программы на каждом
компьютере мы необходимо сканирование приложений к электронным письмам на
почтовом сервере. Таким образом можно обнаружить большинство вирусов до того, как
они достигнут машин пользователей.
3. Межсетевые экраны Межсетевые экраны - самое важное средство защиты сети
организации. Они контролируют сетевой трафик, входящий в сеть и выходящий из нее.
Межсетевой экран может блокировать передачу в сеть какого-либо вида трафика или
выполнять те или иные проверки другого вида трафика. Хорошо сконфигуированный
межсетевой экран в состоянии остановить большинство известных компьютерных атак.
4. Вскрыватели паролей (Password Crackers) Хакеры часто используют малоизвестные
уязвимые места в компьютерах для того, чтобы украсть файлы с зашифрованными
паролями. Затем они используют специальные программы для вскрытия паролей, которые
могут обнаружить слабые пароли в этих зашифрованных файлах. Хотя это средство
используются злоумышленниками, оно будет также полезно и системным
администраторам, чтобы своевременно обнаружить слабые пароли.
5. Шифрование. Атакующие часто проникают в сети с помощью прослушивания
сетевого трафика в наиболее важных местах и выделения из него имен пользователей и их
паролей. Поэтому соединения с удаленными машинами, защищаемые с помощью пароля,
должны быть зашифрованы. Это особенно важно в тех случаях, если соединение
осуществляется по Интернет или с важным сервером. Имеется ряд коммерческих и
бесплатных программ для шифрования трафика TCP/IP (наиболее известен SSH).
6. Сканеры уязвимых мест. Это программы, которые сканируют сеть в поисках
компьютеров, уязвимых к определенным видам атак. Сканеры имеют большую базу
данных уязвимых мест, которую они используют при проверке того или иного
компьютера на наличие у него уязвимых мест.
7. Грамотное конфигурирование компьютеров в отношении безопасности.
8. Средства для поиска подключенных модемов. Для поиска подключенных модемов
атакующие могут использовать программы обзвонки большого числа телефонных
номеров. Так как пользователи обычно конфигурируют свои компьютеры сами, они часто
оказываются плохо защищенными и дают атакующему еще одну возможность для
организации атаки на сеть. Системные администраторы должны регулярно использовать
программы для проверки телефонных номеров своих пользователей и обнаружения
сконфигурированных подобным образом компьютеров.
9. Рекомендации по безопасности (security advisories) Рекомендации по безопасности это предупреждения, публикуемые группами по борьбе с компьютерными
преступлениями и производителями программ о недавно обнаруженных уязвимых местах.
Рекомендации обычно описывают самые серьезные угрозы, возникающие из-за этих
уязвимых мест и поэтому являются занимающими мало времени на чтение, но очень
полезными. Они описывают угрозу и дают довольно конкретные советы о том, что нужно
сделать для устранения данного уязвимого места. Двумя самыми полезными являются
рекомендации, которые публикует группа по борьбе с компьютерными преступлениями
CIAC и CERT.
10. Средства обнаружения атак (Intrusion Detection) Системы обнаружения атак
оперативно обнаруживают компьютерные атаки. Они могут быть установлены за
межсетевым экраном, чтобы обнаруживать атаки, организуемые изнутри сети. Или они
могут быть установлены перед межсетевым экраном, чтобы обнаруживать атаки на
межсетевой экран. Средства этого типа могут иметь разнообразные возможности.
11. Средства выявления топологии сети и сканеры портов. Эти программы позволяют
составить полную картину того, как устроена ваша сеть и какие компьютеры в ней
работают, а также выявить все сервисы, которые работают на каждой машине.
Атакующие используют эти средства для выявления уязвимых компьютеров и программ
на них. Системные администраторы должны использовать эти средства для наблюдения за
тем, какие программы и на каких компьютерах работают в их сети. С их помощью можно
обнаружить неправильно сконфигурированные программы на компьютерах и установить
исправления на них.
12. Инструкции по действию в критических ситуациях. В каждой сети, независимо от
того, насколько она безопасна, происходят какие-либо события, связанные с
безопасностью (может быть даже ложные тревоги). Сотрудники организации должны
заранее знать, что нужно делать в том или ином случае.
13. Политики безопасности. Организации должны написать политику безопасности, в
которой определялся бы ожидаемый уровень защиты, который должен быть везде
единообразно реализован. Самым важным аспектом политики является выработка единых
требований к тому, какой трафик должен пропускаться через межсетевые экраны сети.
Также политика должна определять как и какие средства защиты (например, средства
обнаружения атак или сканеры уязвимых мест) должны использоваться в сети. Для
достижения единого уровня безопасности политика должна определять стандартные
безопасные конфигурации для различных типов компьютеров.
14. Тестирование межсетевых экранов и WWW-серверов на устойчивость к
попыткам их блокирования. Атаки на блокирование компьютера распространены в
Интернет. Атакующие постоянно выводят из строя WWW-сайты, перегружают
компьютеры или переполняют сети бессмысленными пакетами. Сети, заботящиеся о
безопасности, могут организовать атаки против себя сами, чтобы определить, какой ущерб
может быть нанесен им.
Модуль 4.
Лекция Х.
Принципы работы межсетевых экранов. Различия программных и аппаратных
межсетевых экранов. Программные межсетевые экраны популярных ОС,
особенности настройки. Аппаратные межсетевые экраны, их особенности.
Возможности и особенности настройки аппаратных межсетевых экранов фирмы DLink
1. Экранирование и межсетевые экраны. Основные понятия.
По материалам РД. (Средства вычислительной техники. Межсетевые экраны. Защита от
несанкционированного доступа. Показатели защищенности от несанкционированного
доступа к информации) межсетевой экран (МЭ) представляет собой локальное
(однокомпонентное)
или
функционально-распределенное
средство
(комплекс),
реализующее контроль за информацией, поступающей в АС и/или выходящей из АС, и
обеспечивает защиту АС посредством фильтрации информации, то есть ее анализа по
совокупности критериев и принятия решения о ее распространении в (из) АС.
Мы будем использовать понятия межсетевой экран (МЭ), брандмауэр, firewall, шлюз с
установленным дополнительным программным обеспечением firewall, как эквивалентные.
Формальная постановка задачи экранирования, состоит в следующем. Пусть имеется два
множества информационных систем. Экран – это средство разграничения доступа
клиентов из одного множества к серверам из другого множества. Экран осуществляет
свои функции, контролируя все информационные потоки между двумя множествами
систем (рис.12а). Контроль потоков состоит в их фильтрации, возможно, с выполнением
некоторых преобразований.
Рис.12а. Экран как средство разграничения доступа.
На следующем уровне детализации экран (полупроницаемую мембрану) удобно
представлять как последовательность фильтров. Каждый из фильтров, проанализировав
данные, может задержать (не пропустить) их, а может и сразу "перебросить" за экран.
Кроме того, допускается преобразование данных, передача порции данных на следующий
фильтр для продолжения анализа или обработка данных от имени адресата и возврат
результата отправителю (рис.12б).
Рис.12б. Экран как последовательность фильтров
Помимо функций разграничения доступа, экраны осуществляют протоколирование
обмена информацией.
Межсетевой экран располагается между защищаемой (внутренней) сетью и внешней
средой (внешними сетями или другими сегментами корпоративной сети). В первом случае
говорят о внешнем МЭ, во втором – о внутреннем. Межсетевой экран – идеальное место
для встраивания средств активного аудита. МЭ способен реализовать сколь угодно
мощную реакцию на подозрительную активность, вплоть до разрыва связи с внешней
средой.
На межсетевой экран целесообразно возложить идентификацию/аутентификацию
внешних пользователей, нуждающихся в доступе к корпоративным ресурсам (с
поддержкой концепции единого входа в сеть).
В силу принципов эшелонированности обороны для защиты внешних подключений
обычно используется двухкомпонентное экранирование (рис.13). Первичная фильтрация
(например, пакетов с определенными IP-адресами, включенными в "черный список")
осуществляется граничным маршрутизатором, за которым располагается так
называемая демилитаризованная зона (сеть с умеренным доверием безопасности, куда
выносятся внешние информационные сервисы организации – Web, электронная почта и
т.п.) и основной МЭ, защищающий внутреннюю часть корпоративной сети.
Рис.13. Двухкомпонентное экранирование с демилитаризованной зоной.
Теоретически
межсетевой
экран
(особенно
внутренний)
должен
быть
многопротокольным, однако на практике доминирование семейства протоколов TCP/IP
столь велико, что поддержка других протоколов представляется излишеством, вредным
для безопасности (чем сложнее сервис, тем он более уязвим).
Внешний, и внутренний межсетевой экран может стать узким местом, поскольку объем
сетевого трафика имеет тенденцию быстрого роста. Один из подходов к решению этой
проблемы предполагает разбиение МЭ на несколько аппаратных частей и организацию
специализированных серверов-посредников. Основной межсетевой экран может
проводить грубую классификацию входящего трафика по видам и передоверять
фильтрацию соответствующим посредникам (например, посреднику, анализирующему
HTTP-трафик). Исходящий трафик сначала обрабатывается сервером-посредником,
который может выполнять и функционально полезные действия, такие как кэширование
страниц внешних Web-серверов, что снижает нагрузку на сеть вообще и основной МЭ в
частности.
Ситуации, когда корпоративная сеть содержит лишь один внешний канал, являются
скорее исключением, чем правилом. Чаще корпоративная сеть состоит из нескольких
территориально разнесенных сегментов, каждый из которых подключен к Internet. В этом
случае каждое подключение должно защищаться своим экраном. Можно считать, что
корпоративный внешний межсетевой экран является составным (распределенным), и
требуется решать задачу согласованного администрирования всех компонентов.
Существуют также персональные МЭ, предназначенные для защиты отдельных
компьютеров. Главное отличие персонального межсетевого экрана от распределенного наличие функции централизованного управления. Если персональные межсетевые экраны
управляются только с того компьютера, на котором они установлены, и идеально
подходят для домашнего применения, то распределенные межсетевые экраны могут
управляться централизованно, с единой консоли управления. Такие отличия позволили
некоторым производителям выпускать свои решения в двух версиях - персональной (для
домашних пользователей) и распределенной (для корпоративных пользователей).
Принципы работы межсетевых экранов
Существует два основных способа создания наборов правил межсетевого экрана:
''включающий'' и ''исключающий''. Исключающий межсетевой экран позволяет
прохождение всего трафика, за исключением трафика, соответствующего набору правил.
Включающий межсетевой экран действует прямо противоположным образом. Он
пропускает только трафик, соответствующий правилам и блокирует все остальное.
Включающие межсетевые экраны обычно более безопасны, чем исключающие, поскольку
они существенно уменьшают риск пропуска межсетевым экраном нежелательного
трафика.
Безопасность может быть дополнительно повышена с использованием ''межсетевого
экрана с сохранением состояния''. Такой межсетевой экран сохраняет информацию об
открытых соединениях и разрешает только трафик через открытые соединения или
открытие новых соединений. Недостаток межсетевого экрана с сохранением состояния в
том, что он может быть уязвим для атак DoS (Denial of Service, отказ в обслуживании),
если множество новых соединений открывается очень быстро. Большинство межсетевых
экранов позволяют комбинировать поведение с сохранением состояния и без сохранения
состояния, что оптимально для реальных применений.
Классификация межсетевых экранов
При рассмотрении любого вопроса, касающегося сетевых технологий, основой служит
семиуровневая эталонная модель ISO/OSI. Межсетевые экраны также целесообразно
классифицировать по уровню фильтрации:
 канальному,
 сетевому,
 транспортному,
 прикладному.
Соответственно, можно говорить об:
 экранирующих концентраторах (мостах, коммутаторах) (уровень 2),
 маршрутизаторах (уровень 3),
 о транспортном экранировании (уровень 4)
 о прикладных экранах (уровень 7).
Существуют также комплексные экраны, анализирующие информацию на нескольких
уровнях. Таким образом, МЭ можно разделить на три типа:
 пакетные фильтры (packet filter)
 сервера прикладного уровня (application gateways)
 сервера уровня соединения (circuit gateways)
Фильтрация информационных потоков осуществляется межсетевыми экранами на основе
набора правил, являющихся выражением сетевых аспектов политики безопасности
организации. В этих правилах, помимо информации, содержащейся в фильтруемых
потоках, могут фигурировать данные, полученные из окружения, например, текущее
время, количество активных соединений, порт, через который поступил сетевой запрос, и
т.д. Таким образом, в межсетевых экранах используется мощный логический подход к
разграничению доступа.
Возможности межсетевого экрана непосредственно определяются тем, какая информация
может использоваться в правилах фильтрации и какова может быть мощность наборов
правил. Вообще говоря, чем выше уровень в модели ISO/OSI, на котором функционирует
МЭ, тем более содержательная информация ему доступна и, следовательно, тем тоньше и
надежнее он может быть сконфигурирован.
Пакетные фильтры
Экранирующие маршрутизаторы (и концентраторы) имеют дело с отдельными пакетами
данных, поэтому их называют пакетными фильтрами. Дополнительной возможностью
пакетных фильтров являются: модификация некоторых полей в заголовках пакетов,
трансляция адресов и номеров портов, протоколирование и ведение статистики,
немедленное уведомление администратора о появлении пакетов, которые блокируются
фильтром. Конструктивной особенностью простых фильтров пакетов является отсутствие
памяти состояния соединения, т.е. они не являются в полном смысле протокольными
автоматами. Простая фильтрация пакетов действует только на сетевом уровне. В качестве
данных из заголовков IP-пакетов для фильтрации могут использоваться (в порядке
убывания значимости):
 IP-адрес компьютера-источника,
 IP- адрес компьютера-приемника,
 тип протокола транспортного уровня,
 порт источника TCP/UDP,
 порт приемника TCP/UDP,
 дополнительные параметры TCP/UDP,
 длина IP-пакета,
 дополнительные параметры IP-пакета.
Параметрами окружающей среды, которые могут использоваться для фильтрации,
являются:
 интерфейс контроля,
 направление передачи пакета,
 текущее время.
Фильтрация на основе IP-адресов источника и приемника является минимальным
требованием к МЭ с возможностью простой фильтрации пакетов. Задание только этих
данных в критериях фильтрации позволяет запретить установление связи между
определенными компьютерами, что позволяет сделать достижимыми из глобальной сети
только те компьютеры организации, которые предоставляют службы внешним
пользователям или пользуются службами внешней сети. Следует отметить, что
фильтрацию на основе цифровых адресов, указанных в заголовках IP-пакетов, могут
осуществлять все маршрутизаторы.
Однако злоумышленник может подменить свой адрес (из внешней сети) адресом
внутренней сети, таким образом, делая невозможной надежную фильтрацию на основе
только цифровых адресов, если необходимо запретить доступ к отдельным компьютерам
извне, разрешив к ним доступ для внутренних пользователей. Поэтому очень
необходимым параметром фильтрации является направление пакета: входящий во
внутреннюю сеть или исходящий из нее.
Текущее время может использоваться для запрещения доступа к некоторым ресурсам
организации в нерабочее время и выходные дни. Кроме того, возможно запрещение
доступа внешних пользователей в часы наибольшей загрузки локальной сети. Длина IPпакета может использоваться для блокирования слишком длинных пакетов, получение
которых компьютером-приемником может привести к выведению последнего из строя
("зависанию" или перезагрузке).
Тип протокола транспортного уровня (TCP, UDP или ICMP) используется для более
качественной фильтрации - можно блокировать весь ICMP-трафик, заблокировав тем
самым атаки маршрутизации источника и ей аналогичные. Типы TCP и UDP совместно с
номерами портов источника и приемника используются для блокирования доступа к
отдельным службам на отдельных компьютерах. Следует отметить, что эффективную
защиту службы можно организовать, только если данная служба имеет конкретный
фиксированный порт, в противном случае приходиться полностью блокировать доступ к
компьютеру, что зачастую неприемлемо.
Используя дополнительные параметры IP-пакета и TCP/UDP-заголовка, можно, например,
запретить фрагментацию и сделать соответствующие атаки неэффективными. Некоторые
пакетные фильтры предоставляют возможность изменения указанных параметров с той же
целью.
Важной дополнительной возможностью МЭ на основе простой фильтрации пакетов
является трансляция сетевых адресов и портов (network address & port translation) или
изменение реальных адресов компьютеров внутренней сети на вымышленные
(виртуальные), причем несколько (или все) реальных внутренних адресов могут
транслироваться в один сетевой адрес (с изменением номеров портов). Кроме аспектов,
связанных с аспектами защиты, данная возможность может использоваться в случае, если
количество компьютеров, подключенных к сети Интернет, в организации больше, чем
количество сетевых адресов, официально выделенных данной организации.
Политика фильтрации задается с помощью упорядоченного набора правил. Каждое
правило состоит из условия срабатывания правила и, собственно, действия. Комплексное
действие правила состоит из действия по разрешению или блокированию пакета (с
уведомлением об этом отправителя пакета или без него), действия по трансляции адреса и
номера порта, действия по изменению дополнительных параметров TCP/UDP/IPзаголовка, действия по учету пакета (ведение статистики) и действия по возможному
немедленному информированию администратора безопасности. Если подходящее правило
не было найдено, то используется политика по умолчанию - либо разрешено все, что не
запрещено, либо запрещено все, что не разрешено.
Для описания правил прохождения пакетов составляются таблицы типа:
Действие тип пакета адрес источн. порт источн. адрес назнач. порт назнач. флаги
Поле "действие" может принимать значения пропустить или отбросить.
Тип пакета - TCP, UDP или ICMP.
Флаги - флаги из заголовка IP-пакета.
Поля "порт источника" и "порт назначения" имеют смысл только для TCP и UDP пакетов.
К положительным качествам простой пакетной фильтрации (по сравнению с другими
методами фильтрации) следует отнести:
 относительно невысокая стоимость;
 гибкость в определении правил фильтрации;
 максимальная пропускная способность.
Недостатки у простой фильтрации пакетов следующие:
 локальная сеть видна (маршрутизируется) из сети Интернет;
 не учитывается содержимое IP-пакетов;
 правила фильтрации пакетов трудны в описании;
 при нарушении работоспособности МЭ все компьютеры за ним становятся
полностью незащищенными либо недоступными;
 аутентификацию с использованием IP-адреса (внешней сети) можно обмануть
подменой адреса;
 отсутствует аутентификация на пользовательском уровне.
Сервера уровня соединения
Сервер уровня соединения представляет из себя транслятор TCP соединения.
Пользователь образует соединение с определенным портом на брандмауэре, после чего
последний производит соединение с местом назначения по другую сторону от
брандмауэра. Во время сеанса этот транслятор копирует байты в обоих направлениях,
действуя как посредник. Посредничество заключается в том, что связь между двумя
компьютерами физически осуществляется через систему-посредника и реально состоит из
двух TCP-соединений.
Следует отметить, что компьютер-инициатор не передает МЭ имя компьютера-адресата его IP-адрес и номер TCP-порта фиксированы для конкретного МЭ и известны. Из этого
замечания следует, что, во-первых, связь через МЭ осуществляется от многих к одному, а,
во-вторых, МЭ уровня соединения используются только для организации безопасного
соединения от внешних компьютеров (удаленных рабочих станций) к внутреннему
компьютеру (серверу поддержки локальной сети или информационному серверу). Тем не
менее, возможен случай, когда компьютеров-адресатов будет несколько. При этом МЭ,
поддерживающий этот случай, перед установлением связи с адресатом должен выбрать
конкретный компьютер из нескольких идентичных.
Под безопасностью связи подразумевается то, что после установления связи факт ее
существования уже запротоколирован и проведена аутентификация компьютера-
инициатора связи. Протоколирование факта означает не только возможность в
дальнейшем выследить злоумышленника, но и возможность обнаружения атаки в
реальном масштабе времени. Под аутентификацией компьютера-инициатора
понимаются действия, предпринимаемые МЭ при проверке допустимости связи.
Проверка допустимости связи выполняется МЭ непосредственно после запроса на
соединение компьютером-инициатором и может основываться на данных из пакетазапроса на соединение, данных окружающей среды и статистических данных. В качестве
данных пакета-запроса на соединение могут использоваться:
 IP-адрес компьютера-инициатора,
 начальный номер (SYN) пакета TCP-соединения,
 дополнительные параметры TCP-соединения.
Возможными используемыми данными окружающей среды являются:
 ответ DNS-сервера на запрос о символьном имени компьютера-инициатора,
 сетевой интерфейс контроля,
 текущее время запроса соединения,
 текущее количество соединений с компьютером-адресатом (от компьютераинициатора, от сети компьютера-инициатора, общее число и т.п.) через МЭ.
Наиболее важными из перечисленных выше являются IP-адрес компьютера-инициатора и
ответ DNS-сервера, содержащий символьное имя (если таковое имеется) компьютераинициатора, и текущее время запроса соединения. Следует отметить, что при передаче
данных соединения возможен контроль некоторых параметров в целях улучшения защиты
и качества соединения:
 длительность соединения,
 скорость передачи данных,
 текущие параметры окна TCP-соединения, и
 большое количество ошибок передачи данных.
Контролирование этих параметров позволяет правильно распределить пропускную
способность канала связи между несколькими соединениями, тем самым, ограничив
максимально возможную загрузку линий связи трафиком злоумышленника, а также
позволяет вовремя обнаружить деятельность злоумышленника и закрыть (т.е. завершить
по инициативе посредника) данное соединение (с протоколированием причины и
уведомлением об этом администратора).
Метод задания политики фильтрации и принцип функционирования части устройства,
реализующей определение допустимости соединения аналогичен вышеописанному.
К преимуществам МЭ уровня соединения следует отнести следующие:
 локальная сеть может быть сделана невидимой из глобальной сети;
 наличие (элементарной) аутентификации компьютера-инициатора соединения по
его символьному имени;
 использование политики "запрещено все, что не разрешено";
 способность гибкого регулирования (ограничения) пропускной способности;
 возможность эффективного противостояния атакам с неправильной фрагментацией
пакетов соединения;
 возможность противостояния атакам с использованием протокола ICMP;
 возможность использования статистической информации о соединениях для
определения неоднократных попыток соединения злоумышленником и
автоматического блокирования его действий.
Недостатками МЭ этого типа являются:
 отсутствие аутентификации пользователя;
 нет защиты целостности и конфиденциальности передаваемых данных;
 возможность подмены злоумышленником IP-адреса компьютера-инициатора;

возможность подмены во время связи аутентифицированного компьютераинициатора;
 невозможность использования протокола UDP.
Сервера прикладного уровня
МЭ прикладного уровня осуществляет посреднические услуги по передаче данных и
команд прикладного уровня двумя компьютерами в сети. Посредничество заключается в
том, что связь между двумя компьютерами физически осуществляется через системупосредника и реально состоит из двух соединений прикладного уровня. В общих чертах
принцип работы МЭ прикладного уровня такой же как и у МЭ уровня соединения, однако,
функционирование происходит на более высоком уровне и существует возможность
поддержки специальных протоколов безопасности (SSH, SSL, S/MIME, SOCKS и др.).
Прежде всего, необходимо отметить, что в отличие от МЭ уровня соединения,
ориентированного на единственный протокол TCP, МЭ прикладного уровня существует
много - под каждый протокол прикладного (и сеансового) уровня. Каждый МЭ допускает
и защищает только тот протокол, который он поддерживает (тем самым реализуется
политика "запрещено все, что не разрешено"). Наиболее популярные поддерживаемые МЭ
протоколы можно разделить на следующие группы:
 гипертекстовые протоколы - HTTP, SHTTP, HTTPS, Gopher;
 протокол пересылки файлов - FTP;
 почтовые протоколы - SMTP, POP3, IMAP, NNTP;
 протоколы удаленного доступа - Telnet, rlogin, rsh, rexec, RPC, XWindow;
 протокол сетевой файловой системы - NFS, NetBEUI;
 протокол службы имен - DNS;
 "безопасные" протоколы сеансового уровня - SSH, SSL, S/MIME, SOCKS.
Так как МЭ функционирует на прикладном уровне, то у него существуют большие
возможности по фильтрации прикладных команд и данных. Например, для протокола FTP
возможно запрещение команды "put" - команды записи файла на сервер. Возможна
организация разграничения доступа к объектам сервера дополнительно к возможностям
самого сервера по разграничению доступа.
Если МЭ поддерживает "безопасный" протокол, то возможно поддержание
конфиденциальности и целостности передаваемых через внешнюю сеть данных путем
шифрования данных и вычисления криптографических контрольных сумм (т.е.
туннелируя трафик прикладного уровня). В этом случае компьютер-инициатор тоже
должен поддерживать тот же самый "безопасный" протокол (удаленная защищенная
рабочая станция) либо необходим еще один МЭ прикладного уровня, поддерживающий
тот же самый "безопасный" протокол (виртуальная частная сеть - VPN).
Способ реализации схемы усиленной аутентификации компьютера-инициатора и
пользователя зависит от используемого протокола, поддержка МЭ (и компьютероминициатором) "безопасного" протокола позволяют не только увеличить надежность
аутентификации, но и унифицировать процесс аутентификации.
Следует также отметить, что компьютер-инициатор в начале сеанса связи передает МЭ
имя компьютера-адресата и запрашиваемого сервиса (в общем случае - URL), т.е. связь с
через МЭ может осуществляется от многих ко многим. Способ передачи этого имени
зависит от используемого протокола. Здесь же может передаваться и имя пользователя, с
правами которого будет осуществляться доступ. В схеме передачи данных между двумя
соединениями вместо простого копирования используется техника высокоуровневой
фильтрации, трансляции и кэширования данных (протокольный автомат).
К преимуществам МЭ прикладного уровня (по сравнению с другими методами
фильтрации) следует отнести следующие:
 возможность усиленной аутентификации компьютера-инициатора и пользователя;
 возможность защиты от подмены во время связи аутентифицированного
компьютера-инициатора;

защита на уровне приложений позволяет осуществлять большое количество
дополнительных проверок, снижая тем самым вероятность атаки с использованием
"дыр" в конкретном программном обеспечении;
 возможна защита целостности и конфиденциальности передаваемых данных и
команд;
 фильтрация пересылаемых команд и данных;
 большая гибкость в протоколировании передаваемых команд и данных;
 возможность кэширования данных.
Основным недостатком МЭ этого типа является необходимость в существовании
нескольких МЭ для разных сервисов.
Пакетная фильтрация инспекционного типа
Пакетная фильтрация инспекционного типа (packet state-full inspection) - способность
некоторых МЭ по блокированию (уничтожению) и изменению пакетов, проходящих через
МЭ, по заданному критерию на основе данных, содержащихся в этих пакетах, данных
контекстов соединений транспортного, сеансового и прикладного уровней, текущих
параметров окружающей среды и статистических данных.
Технология фильтрации пакетов инспекционного (или экспертного) типа сочетает в себе
элементы всех трех описанных выше технологий. Как и простая фильтрация пакетов,
фильтрация инспекционного типа работает на сетевом уровне модели OSI, фильтруя
входящие и исходящие пакеты на основе проверки IP-адресов и номеров портов и т.п.
Фильтры пакетов инспекционного типа также выполняют функции посредника уровня
соединения, определяя, относятся ли пакеты к соответствующему сеансу связи. И,
наконец, фильтры инспекционного типа берут на себя функции многих посредников
прикладного уровня (одновременно), оценивая и модифицируя содержимое каждого
пакета в соответствии с политикой безопасности, выработанной в конкретной
организации.
Как и посредник прикладного уровня, фильтр пакетов инспекционного типа может быть
сконфигурирован для блокирования пакетов, содержащих определенные команды,
например команду "put" службы FTP. Однако, в отличие от посредников прикладного
уровня, при анализе данных прикладного уровня такой фильтр не нарушает модели
клиент-сервер взаимодействия в сети - фильтр инспекционного типа допускает прямые
соединения между компьютером-инициатором соединения и компьютером-адресатом.
Для обеспечения защиты такие фильтры перехватывают и анализируют каждый пакет на
прикладном уровне модели OSI. Вместо применения связанных с приложениями
программ-посредников, фильтр пакетов инспекционного типа использует специальные
алгоритмы распознавания и обработки данных на уровне приложений.
Обладая всеми преимуществами трех вышерассмотренных типов фильтров и
минимальным количеством недостатков, МЭ с функцией фильтрации пакетов
инспекционного типа обеспечивают один из самых высоких на сегодняшний день уровней
защиты локальных сетей.
Схемы подключения МЭ
Брандмауэр может использоваться в качестве внешнего роутера, используя
поддерживаемые типы устройств для подключения к внешней сети (см. рис. 14).
Рисунок 14. Подключение через брандмауэр.
Иногда используется схема, изображенная на рис 15, однако пользоваться ей следует
только в крайнем случае, поскольку требуется очень аккуратная настройка роутеров и
небольшие ошибки могут образовать серьезные дыры в защите.
Рисунок 15. Подключение через брандмауэр.
Если брандмауэр может поддерживать два Ethernet интерфейса, то чаще всего
подключение осуществляется через внешний маршрутизатор (см рис. 15).
Рисунок 16. Подключение через брандмауэр.
При этом между внешним роутером и брандмауэром имеется только один путь, по
которому идет весь трафик. Обычно роутер настраивается таким образом, что брандмауэр
является единственной видимой снаружи машиной. Эта схема является наиболее
предпочтительной с точки зрения безопасности и надежности защиты. Другая схема
представлена на рис. 16.
Рисунок 17. Подключение через брандмауэр.
При этом брандмауэром защищается только одна подсеть из нескольких выходящих из
роутера. В незащищаемой брандмауэром области часто располагают серверы, которые
должны быть видимы снаружи (WWW, FTP и т.д.). Некоторые брандмауэры предлагают
разместить эти сервера на нем самом - решение, далеко не лучшее с точки зрения загрузки
машины и безопасности самого брандмауэра
Существуют решения (см рис. 17),которые позволяют организовать для серверов, которые
должны быть видимы снаружи, третью сеть; это позволяет обеспечить контроль за
доступом к ним, сохраняя в то же время необходимый уровень защиты машин в основной
сети. При этом достаточно много внимания уделяется тому, чтобы пользователи
внутренней сети не могли случайно или умышленно открыть дыру в локальную сеть через
эти сервера. Для повышения уровня защищенности возможно использовать в одной сети
несколько брандмауэров, стоящих друг за другом.
Рисунок 18. Подключение через брандмауэр.
Дополнительные возможности МЭ
Можно отметить следующие дополнительные возможности межсетевых экранов:
 антивирусный контроль "на лету";
 контроль информационного наполнения (верификация Java-апплетов, выявление
ключевых слов в электронных сообщениях и т.п.);
 выполнение функций ПО промежуточного слоя;
 наличие сервисных утилит работы с правилами;
 встраиваемые системы сбора статистики и предупреждений об атаке.
Эффективный межсетевой экран должен обладать механизмом защиты от опасного
содержимого, которое можно получить из Internet. К такому содержимому можно отнести
апплеты Java и управляющие элементы ActiveX, код ShockWave и сценарии JavaScript,
Jscript и VBScript. С помощью этих, с одной стороны незаменимых и удобных технологий,
можно выполнить большое число несанкционированных действий на компьютере.
Начиная от внедрения вирусов и установки троянских коней и заканчивая кражей или
удалением всей информации. Также персональные межсетевые экраны должны защищать
от cookies, которые могут раскрыть конфиденциальную информацию о владельце
компьютера.
Вопросы безопасности применения МЭ
Наиболее очевидным недостатком МЭ является большая вероятность того, что он может
заблокировать некоторые необходимые пользователю службы, такие как Telnet, FTP,
XWindow, NFS и т.д. Некоторые объекты могут обладать топологией, не предназначенной
для использования МЭ, или использовать службы (сервисы) таким образом, что его
использование потребовало бы полной реорганизации локальной сети.
МЭ не защищают системы локальной сети от проникновения через "люки" (backdoors).
Например, если на систему, защищенную МЭ. все же разрешается неограниченный
модемный доступ, злоумышленник может с успехом обойти МЭ. Связь через протоколы
PPP (Point-to-Point) и SLIP (Serial Line IP) в рамках защищенной подсети является, по
существу, еще одним сетевым соединением и потенциальным каналом нападения.
Межсетевые экраны не могут защитить ресурсы корпоративной сети в случае
неконтролируемого использования в ней модемов. Доступ в сеть через модем по
протоколам SLIP или PPP в обход межсетевого экрана делает сеть практически
незащищенной. Для решения этой задачи необходимо строго контролировать все
имеющиеся в корпоративной сети модемы и программное обеспечение удаленного
доступа. Для этих целей возможно применение как организационных, так и технических
мер. Например, использование систем разграничения доступа, в т.ч. и к COM-портам
(например, Secret Net) или систем анализа защищенности (например, Internet Scanner и
System Scanner). Правильно разработанная политика безопасности обеспечит
дополнительный уровень защиты корпоративной сети, установит ответственность за
нарушение правил работы в Internet и т.п. Кроме того, должным образом сформированная
политика безопасности позволит снизить вероятность несанкционированного
использования модемов и иных устройств и программ для осуществления удаленного
доступа.
МЭ, как правило, не обеспечивает защиту от внутренних угроз. С одной стороны, МЭ
можно разработать так, чтобы предотвратить получение конфиденциальной информации
злоумышленниками из внешней сети, однако, МЭ не запрещает пользователям
внутренней сети копировать информацию на магнитные носители или выводить ее на
печатающее устройство. Таким образом, было бы ошибкой полагать, что наличие МЭ
обеспечивает защиту от внутренних атак или вообще атак, для которых не требуется
использование МЭ. Межсетевой экран просматривает трафик на границах между
внутренней сетью и сетью Internet. Если трафик, использующий "бреши" в защите,
никогда не проходит через межсетевой экран, то МЭ и не находит никаких проблем.
Существует также и возможность "общего риска" - в МЭ все средства безопасности
сосредоточены в одном месте, а не распределены между системами сети. Компрометация
МЭ ведет к нарушению безопасности для других, менее защищенных систем.
Межсетевой экран фильтрует трафик и принимает решения о пропуске или блокировании
сетевых пакетов, опираясь на информацию об используемом протоколе. Как правило,
правила предусматривают соответствующую проверку с целью определения того,
разрешен или нет конкретный протокол. Например, если на МЭ разрешен 25 и 80 порты,
то тем самым разрешается пропуск во внутреннюю сеть почтового (SMTP) и Web (HTTP)
трафика. Именно этот принцип обработки и используется квалифицированными
злоумышленниками. Вся несанкционированная деятельность осуществляется в рамках
разрешенного протокола, создавая тем самым в нем туннель, по которому злоумышленник
и реализует атаку. Самый простой пример, демонстрирующий применение туннелей Internet-черви и макровирусы, заносимые в корпоративную сеть в виде вложений в
сообщения электронной почты. Если межсетевой экран разрешает прохождение SMTPтрафика, то во внутреннюю сеть может попасть и "вирусная инфекция".
Подмена адреса - это способ сокрытия реального адреса злоумышленника. Однако он
может использоваться и для обхода защитных механизмов межсетевого экрана. Такой
простейший способ, как замена адреса источника сетевых пакетов на адрес из
защищаемой сети, уже не может ввести в заблуждение современные межсетевые экраны.
Все они используют различные способы защиты от такой подмены. Однако сам принцип
подмены адреса остается по-прежнему актуальным. Например, злоумышленник может
подменить свой реальный адрес на адрес узла, у которого установлены доверенные
отношения с атакуемой системой и реализовать атаку типа "отказ в обслуживании" на нее.
В заключение стоит отметить, что межсетевые экраны являются необходимым, но явно
недостаточным средством обеспечения информационной безопасности. Они
обеспечивают лишь первую линию обороны.
2. Различия программных и аппаратных межсетевых экранов.
Аппаратные брандмауэры - это внешние устройства, которые представляют собой
буферное устройство между компьютером и соединением с Интернетом. Большинство
аппаратных брандмауэров созданы для кабельных или цифровых соединений.
Аппаратные персональные брандмауэры - это замкнутые устройства, которые
взаимодействуют с компьютером с помощью Web-браузера. Кроме Web-браузера,
дополнительного программного обеспечения не требуется. Свойства аппаратных
брандмауэров варьируются в зависимости от поставщика. Набор доступных свойств также
варьируется в зависимости от цены. При минимальных запросах можно купить
аппаратный брандмауэр, поддерживающий одиночное соединение пользователя ПК.
Ненамного дороже стоит аппаратный брандмауэр, который выполняет еще одну функцию
как сетевой концентратор/коммутатор, который может поддерживать небольшую
локальную сеть.
Аппаратные брандмауэры соединяются с кабельным или цифровым модемом с помощью
сетевого соединения Ethernet. Аппаратный брандмауэр, имеющий более одного порта,
позволяет соединить с ним остальные компьютеры и создать локальную сеть.
После установки можно поддерживать связь с персональным брандмауэром с помощью
IP-адресов, присвоенных им себе самостоятельно, через Web-браузер. К примеру,
персональный брандмауэр Linksys присвоил себе IP-адрес 192.168.1.1. Чтобы начать его
конфигурирование, достаточно запустить свой браузер и напечатать http://192,168.1.1 в
поле URL (строке "Адрес") и нажать Enter. Потребуется ввести пароль, который можно
затем изменить, чтобы не допустить возможности того, что кто-нибудь еще будет
способен изменить конфигурацию брандмауэра. Все управление с этого момента будет
происходить с помощью соединения с браузером.
На рынке представлен ряд персональных аппаратных брандмауэров. Большинство из них
имеют общий набор характеристик. Эти характеристики включают:
 Кабельно-цифровой маршрутизатор - встроенное программное обеспечение,
которое прокладывает маршрут исходящего сетевого трафика (такого, как
электронная почта, загрузка файлов и т. д.) в Интернете и получает и передает
сетевой трафик Интернета, посланный на компьютер. Трафик Интернета, не
адресованный специально вашему компьютеру, автоматически игнорируется.
 Сервер DHCP - протокол динамической конфигурации сетевого узла. Он позволяет
аппаратному брандмауэру работать также в качестве сервера DHCP. Серверы
DHCP динамически присваивают IP-адреса компьютерам, объединенным в
локальную сеть.
 Клиент DHCP - позволяет брандмауэру принимать динамические IP-адреса,
предоставленные провайдером для того, чтобы компьютер, который он
обслуживает, мог установить соединение.
 Интернет-брандмауэр - программа, которая защищает компьютер или локальную
сеть от нападения злоумышленников при подключении к Интернету.
 Многопортовый концентратор - дополнительные порты для оборудования,
встроенные в аппаратный брандмауэр, которые позволяют подключать более чем
один компьютер и совместно пользоваться соединением с Интернетом.
 Конфигурирование с помощью браузера - способность конфигурировать ваш
брандмауэр с использованием вашего Web-браузера.
Программные брандмауэры - это программы, установленные на компьютере, которые
находятся на жестком диске и загружаются в память, когда компьютер начинает работать.
В отличие от аппаратных брандмауэров, программные брандмауэры созданы для работы с
текущей аппаратной конфигурацией и так же эффективны для коммутируемых
соединений, как для кабельных и цифровых соединений. После установки каждый
программный брандмауэр конфигурируется с помощью своего собственного
специализированного интерфейса.
В отличие от аппаратных брандмауэров, программные брандмауэры созданы для защиты
отдельного устройства и не предоставляют возможности создания локальных сетей.
Программные брандмауэры дешевле, чем аппаратные. Некоторые отличные программные
брандмауэры даже бесплатны для индивидуальных пользователей. Например,
персональный
брандмауэр
ZoneAlarm
бесплатен,
хотя
существует
также
профессиональная
версия
программы,
предоставляющая
дополнительные
свойства, которая не бесплатна.
3. Программные межсетевые экраны популярных ОС, особенности настройки.
Среди многочисленных свойств ОС Windows есть встроенный брандмауэр, который
корпорация Microsoft назвала Брандмауэр Интернет-соединения.
Мастер домашних сетей Microsoft автоматически установит и сконфигурирует как
соединение компьютера с Интернетом, так и его персональный брандмауэр. Компания
Microsoft утверждает, что этот брандмауэр будет блокировать незатребованные
соединения с Интернетом. Кроме того, если есть небольшая домашняя сеть, можно
использовать персональный брандмауэр для ее защиты.
Программные брандмауэры созданы для работы с определенными операционными
системами. Программные брандмауэры предоставляют простые в эксплуатации мастера
настройки, которые проведут сквозь процессы установки и конфигурирования. Каждый
программный брандмауэр предоставляет свой собственный набор заранее определенных
служб безопасности, которые позволяют вам устанавливать различные уровни
безопасности. Например, брандмауэр BlacklCE Defender предоставляет четыре
предварительно настроенные службы безопасности:
доверительная (Trusting) - пропускает- весь входящий трафик, существенно
перегружающий брандмауэр;
предусмотрительная (Cautious) - блокирует весь незатребованный Интернет- трафик,
который пытается получить доступ к ресурсам сети или операционной системы;
боязливая (Nervous) - блокирует весь незатребованный,. Интернет-трафик, за
исключением определенных типов;
параноидальная (Paranoid) - блокирует весь незатребованный Интернет-трафик.
Правомерно ожидать от программного брандмауэра примерно такого же уровня защиты,
как и от аппаратного. Основное различие между двумя видами брандмауэров - это то, что
аппаратные брандмауэры защищают компьютер, пытаясь блокировать любое нападение,
атакующее из любого места, тогда как программный брандмауэр в силу того, что он
установлен на самом компьютере, может защищать компьютер от атак, которые уже
достигли компьютера. Программные брандмауэры потребляют компьютерные ресурсы,
включая пространство на диске и память, и поэтому (даже когда они успешно выполняют
свои функции) все же немного влияют на производительность компьютера.
Аппаратные требования различных программных брандмауэров могут значительно
различаться. Аппаратные брандмауэры, с другой стороны, не требуют установки
программного обеспечения на компьютере, который защищают. Их единственное
требование - это наличие Ethernet-соединения.
Рассмотрим детально брандмауэры ОС Linux.
Во все ядра Linux, начиная с 2.0, встроено средство для фильтрации сетевых пакетов. В
версии 2.0 это ipfwadm, в 2.2 - ipchains, а в 2.4 и 2.6 - iptables. Мы будем рассматривать
последний вариант, как наиболее современный.
Принцип фильтрации заключается в следующем: когда через ядро проходит пакет, он
проверяется на совпадение с одним или несколькими правилами. При этом в зависимости
от этих правил он может быть пропущен (ACCEPT), отброшен (DROP) или отклонен
(REJECT). Кроме того, он может быть отправлен на проверку в следующую цепочку
правил. Здесь же можно указать, что факт прохождения пакета, подходящего под
определенное правило, должен быть отмечен в syslog. Правила могут включать в себя
проверку адреса/порта источника/получателя, протокола, флагов TCP.
Порядок прохождения таблиц и цепочек
Рассмотрим порядок прохождения таблиц и цепочек в каждой таблице. Эта информация
будет очень важна для построения наборов правил, особенно когда в наборы правил будут
включаться такие действия как DNAT, SNAT и конечно же TOS.
3.1. Общие положения
Когда пакет приходит на брандмауэр, то он сперва попадает на сетевое устройство,
перехватывается соответствующим драйвером и далее передается в ядро. Далее пакет
проходит ряд таблиц и затем передается либо локальному приложению, либо
переправляется на другую машину. Порядок следования пакета приводится ниже:
Таблица 3-1. Порядок движения транзитных пакетов
Шаг
Таблица Цепочка
Примечание
1
Кабель (т.е. Интернет)
2
Сетевой интерфейс (например, eth0)
3
mangle
PREROUTING
Обычно
эта
цепочка
используется
для
Шаг
Таблица Цепочка
Примечание
внесения изменений в заголовок пакета,
например для изменения битов TOS и пр..
4
nat
PREROUTING
Эта цепочка используется для трансляции
сетевых адресов (Destination Network Address
Translation).
Source
Network
Address
Translation выполняется позднее, в другой
цепочке. Любого рода фильтрация в этой
цепочке может производиться только в
исключительных случаях
Принятие
решения
о
дальнейшей
маршрутизации, т.е. в этой точке решается
куда
пойдет
пакет
-локальному
приложению или на другой узел сети.
5
6
mangle
FORWARD
Далее пакет попадает в цепочку FORWARD
таблицы
mangle,
которая
должна
использоваться только в исключительных
случаях,
когда
необходимо
внести
некоторые изменения в заголовок пакета
между двумя точками принятия решения о
маршрутизации.
7
Filter
FORWARD
В цепочку FORWARD попадают только те
пакеты, которые идут на другой хост Вся
фильтрация транзитного трафика должна
выполняться здесь. Не забывайте, что через
эту цепочку проходит траффик в обоих
направлениях, обязательно учитывайте это
обстоятельство при написании правил
фильтрации.
8
mangle
POSTROUTING
Эта цепочка предназначена для внесения
изменений в заголовок пакета уже после
того как принято последнее решение о
маршрутизации.
9
nat
POSTROUTING
Эта цепочка предназначена в первую
очередь для Source Network Address
Translation. Не используйте ее для
фильтрации
без
особой
на
то
необходимости. Здесь же выполняется и
маскарадинг (Masquerading).
10
Выходной сетевой интерфейс (например,
eth1).
11
Кабель (пусть будет LAN).
Как вы можете видеть, пакет проходит несколько этапов, прежде чем он будет передан
далее. На каждом из них пакет может быть остановлен, будь то цепочка iptables или что
либо еще, но нас главным образом интересует iptables. Заметьте, что нет каких либо
цепочек, специфичных для отдельных интерфейсов или чего либо подобного. Цепочку
FORWARD проходят ВСЕ пакеты, которые движутся через наш брандмауэр/ роутер. Не
используйте цепочку INPUT для фильтрации транзитных пакетов, они туда просто не
попадают! Через эту цепочку движутся только те пакеты, которые предназначены
данному хосту!
А теперь рассмотрим порядок движения пакета, предназначенного локальному
процессу/приложению:
Таблица 3-2. Для локального приложения
Шаг
Таблица Цепочка
Примечание
1
Кабель (т.е. Интернет)
Входной сетевой интерфейс (например, eth0)
2
3
mangle
PREROUTING
Обычно
используется
для
внесения
изменений в заголовок пакета, например для
установки битов TOS и пр.
4
nat
PREROUTING
Преобразование
адресов
(Destination
Network Address Translation). Фильтрация
пакетов здесь допускается только в
исключительных случаях.
Принятие решения о маршрутизации.
5
6
mangle
INPUT
Пакет попадает в цепочку INPUT таблицы
mangle. Здесь внесятся изменения в
заголовок пакета перед тем как он будет
передан локальному приложению.
7
filter
INPUT
Здесь производится фильтрация входящего
трафика. Помните, что все входящие пакеты,
адресованные нам, проходят через эту
цепочку, независимо от того с какого
интерфейса они поступили.
Локальный
процесс/приложение
(т.е.,
программа-сервер или программа-клиент)
Важно помнить, что на этот раз пакеты идут через цепочку INPUT, а не через FORWARD.
И в заключение мы рассмотрим порядок движения пакетов, созданных локальными
процессами.
Таблица 3-3. От локальных процессов
Шаг
Таблица Цепочка
Примечание
1
Локальный процесс (т.е., программа-сервер
или программа-клиент).
8
Принятие решения о маршрутизации. Здесь
решается куда пойдет пакет дальше -- на
какой адрес, через какой сетевой интерфейс
и пр.
2
3
mangle
OUTPUT
Здесь производится внесение изменений в
заголовок пакета. Выполнение фильтрации в
этой цепочке может иметь негативные
последствия.
4
nat
OUTPUT
Эта цепочка используется для трансляции
сетевых адресов (NAT) в пакетах,
исходящих
от
локальных
процессов
брандмауэра.
5
Filter
OUTPUT
Здесь фильтруется исходящий траффик.
Шаг
Таблица Цепочка
Примечание
6
mangle
POSTROUTING
Цепочка POSTROUTING таблицы mangle в
основном используется для правил, которые
должны вносить изменения в заголовок
пакета перед тем, как он покинет
брандмауэр, но уже после принятия решения
о маршрутизации. В эту цепочку попадают
все пакеты, как транзитные, так и созданные
локальными процессами брандмауэра.
7
nat
POSTROUTING
Здесь выполняется Source Network Address
Translation. Не следует в этой цепочке
производить фильтрацию пакетов во
избежание
нежелательных
побочных
эффектов.
Однако
и
здесь
можно
останавливать пакеты, применяя политику
по-умолчанию DROP.
8
Сетевой интерфейс (например, eth0)
9
Кабель (т.е., Internet)
Теперь мы знаем, что есть три различных варианта прохождения пакетов. Рисунок ниже
более наглядно демонстрирует это:
Этот рисунок дает довольно ясное представление о порядке прохождения пакетов через
различные цепочки. В первой точке принятия решения о маршрутизации (routing decision)
все пакеты, предназначенные данному хосту направляются в цепочку INPUT, остальные в цепочку FORWARD.
Обратите внимание также на тот факт, что пакеты, с адресом назначения на брандмауэр,
могут претерпеть изменение сетевого адреса назначения (DNAT) в цепочке PREROUTING
таблицы nat и соответственно дальнейшая маршрутизация в первой точке будет
выполняться в зависимости от произведенных изменений. Запомните -- все пакеты
проходят через таблицы и цепочки по тому или иному маршруту. Даже если выполняется
DNAT в ту же сеть, откуда пакет пришел, то он все равно продолжит движение по
цепочкам.


3.2. Таблица Mangle
Как уже упоминалось выше, эта таблица предназначена, главным образом для внесения
изменений в заголовки пакетов (mangle - искажать, изменять. прим. перев.). Т.е. в этой
таблице вы можете устанавливать биты TOS (Type Of Service) и т.д.
В этой таблице допускается выполнять только нижеперечисленные действия:
TOS
TTL




MARK
Действие TOS выполняет установку битов поля Type of Service в пакете. Это поле
используется для назначения сетевой политики обслуживания пакета, т.е. задает
желаемый вариант маршрутизации. Однако, следует заметить, что данное свойство в
действительности используется на незначительном количестве маршрутизаторов в
Интернете. Другими словами, не следует изменять состояние этого поля для пакетов,
уходящих в Интернет, потому что на роутерах, которые таки обслуживают это поле,
может быть принято неправильное решение при выборе маршрута.
Действие TTL используется для установки значения поля TTL (Time To Live) пакета. Есть
одно неплохое применение этому действию. Мы можем присваивать определенное
значение этому полю, чтобы скрыть наш брандмауэр от чересчур любопытных
провайдеров (Internet Service Providers). Дело в том, что отдельные провайдеры очень не
любят когда одно подключение разделяется несколькими компьютерами. и тогда они
начинают проверять значение TTL приходящих пакетов и используют его как один из
критериев определения того, один компьютер "сидит" на подключении или несколько.
Действие MARK устанавливает специальную метку на пакет, которая затем может быть
проверена другими правилами в iptables или другими программами, например iproute2. С
помощью "меток" можно управлять маршрутизацией пакетов, ограничивать траффик и
т.п.
3.3. Таблица Nat
Эта таблица используется для выполнения преобразований сетевых адресов NAT (Network
Address Translation). Как уже упоминалось ранее, только первый пакет из потока проходит
через цепочки этой таблицы, трансляция адресов или маскировка применяются ко всем
последующим пакетам в потоке автоматически. Для этой таблицы характерны действия:
DNAT
SNAT
MASQUERADE
Действие DNAT (Destination Network Address Translation) производит преобразование
адресов назначения в заголовках пакетов. Другими словами, этим действием производится
перенаправление пакетов на другие адреса, отличные от указанных в заголовках пакетов.
SNAT (Source Network Address Translation) используется для изменения исходных адресов
пакетов. С помощью этого действия можно скрыть структуру локальной сети, а заодно и
разделить единственный внешний IP адрес между компьютерами локальной сети для
выхода в Интернет. В этом случае брандмауэр, с помощью SNAT, автоматически
производит прямое и обратное преобразование адресов, тем самым давая возможность
выполнять подключение к серверам в Интернете с компьютеров в локальной сети.
Маскировка (MASQUERADE) применяется в тех же целях, что и SNAT, но в отличие от
последней, MASQUERADE дает более сильную нагрузку на систему. Происходит это
потому, что каждый раз, когда требуется выполнение этого действия - производится
запрос IP адреса для указанного в действии сетевого интерфейса, в то время как для SNAT
IP адрес указывается непосредственно. Однако, благодаря такому отличию,
MASQUERADE может работать в случаях с динамическим IP адресом, т.е. когда вы
подключаетесь к Интернет, скажем через PPP, SLIP или DHCP.
3.4. Таблица Filter
Как следует из названия, в этой таблице должны содержаться наборы правил для
выполнения фильтрации пакетов. Пакеты могут пропускаться далее, либо отвергаться
(действия ACCEPT и DROP соответственно), в зависимости от их содержимого. Конечно
же, мы можем отфильтровывать пакеты и в других таблицах, но эта таблица существует
именно для нужд фильтрации. В этой таблице допускается использование большинства из
существующих действий, однако ряд действий, которые мы рассмотрели выше в этой
главе, должны выполняться только в присущих им таблицах.
Механизм определения состояний
Механизм определения состояния (state machine) является отдельной частью iptables и в
действительности не должен бы так называться, поскольку фактически является
механизмом трассировки соединений. Однако значительному количеству людей он
известен именно как "механизм определения состояния" (state machine). Трассировщик
соединений создан для того, чтобы netfilter мог постоянно иметь информацию о состоянии
каждого конкретного соединения. Наличие трассировщика позволяет создавать более
надежные наборы правил по сравнению с брандмауэрами, которые не имеют поддержки
такого механизма.
В пределах iptables, соединение может иметь одно из 4-х базовых состояний: NEW,
ESTABLISHED, RELATED и INVALID. Позднее мы остановимся на каждом из них
более подробно. Для управления прохождением пакетов, основываясь на их состоянии,
используется критерий --state.
Трассировка соединений производится специальным кодом в пространстве ядра -трассировщиком (conntrack). Код трассировщика может быть скомпилирован как
подгружаемый модуль ядра, так и статически связан с ядром. В большинстве случаев нам
потребна более специфичная информация о соединении, чем та, которую поставляет
трассировщик по-умолчанию. Поэтому трассировщик включает в себя обработчики
различных протоколов, например TCP, UDP или ICMP. Собранная ими информация затем
используется для идентификации и определения текущего состояния соединения.
Например соединение по протоколу UDP однозначно идентифицируется по IP-адресам и
портам источника и приемника.
Трассировка соединений производится в цепочке PREROUTING, исключая случаи, когда
пакеты создаются локальными процессами на брандмауэре, в этом случае трассировка
производится в цепочке OUTPUT. Это означает, что iptables производит все вычисления,
связанные с определением состояния, в пределах этих цепочек. Когда локальный процесс
на брандмауэре отправляет первый пакет из потока, то в цепочке OUTPUT ему
присваивается состояние NEW, а когда возвращается пакет ответа, то состояние
соединения в цепочке PREROUTING изменяется на ESTABLISHED, и так далее. Если же
соединение устанавливается извне, то состояние NEW присваивается первому пакету из
потока в цепочке PREROUTING. Таким образом, определение состояния пакетов
производится в пределах цепочек PREROUTING и OUTPUT таблицы nat.
4.2. Таблица трассировщика
Кратко рассмотрим таблицу трассировщика, которую можно найти в файле
/proc/net/ip_conntrack. Здесь содержится список всех активных соединений. Если модуль
ip_conntrack загружен, то команда cat /proc/net/ip_conntrak должна вывести нечто,
подобное:
tcp 6 117 SYN_SENT src=192.168.1.6 dst=192.168.1.9 sport=32775 \
dport=22 [UNREPLIED] src=192.168.1.9 dst=192.168.1.6 sport=22 \
dport=32775 use=2
В этом примере содержится вся информация, которая известна трассировщику, по
конкретному соединению. Первое, что можно увидеть - это название протокола, в данном
случае - tcp. Далее следует некоторое число в обычном десятичном представлении. После
него следует число, определяющее "время жизни" записи в таблице (т.е. количество
секунд, через которое информация о соединении будет удалена из таблицы). Для нашего
случая, запись в таблице будет храниться еще 117 секунд, если конечно через это
соединение более не проследует ни одного пакета. При прохождении каждого
последующего пакета через данное соединение, это значение будет устанавливаться в
значение по-умолчанию для заданного состояния. Это число уменьшается на 1 каждую
секунду. Далее следует фактическое состояние соединения. Для нашего примера
состояние имеет значение SYN_SENT. Внутреннее представление состояния несколько
отличается от внешнего. Значение SYN_SENT говорит о том, что через данное
соединение проследовал единственный пакет TCP SYN. Далее расположены адреса
отправителя и получателя, порт отправителя и получателя. Здесь же видно ключевое
слово [UNREPLIED], которое сообщает о том, что ответного трафика через это
соединение еще не было. И наконец приводится дополнительная информация по
ожидаемому пакету, это IP адреса отправителя/получателя (те же самые, только
поменявшиеся местами, поскольку ожидается ответный пакет), то же касается и портов.
После получения пакета ответа трассировщик снимет флаг [UNREPLIED] и заменит его
флагом [ASSURED]. Этот флаг сообщает о том, что соединение установлено уверенно и
эта запись не будет стерта по достижении максимально возможного количества
трассируемых соединений. Максимальное количество записей, которое может
содержаться в таблице зависит от значения по-умолчанию, которое может быть
установлено вызовом функции ipsysctl в последних версиях ядра. Для объема ОЗУ 128 Мб
это значение соответствует 8192 записям, для 256 Мб - 16376. Вы можете посмотреть и
изменить это значение установкой переменной /proc/sys/net/ipv4/ip_conntrack_max.
4.3. Состояния в пространстве пользователя
Как вы уже наверняка заметили, в пространстве ядра, в зависимости от типа протокола,
пакеты могут иметь несколько различных состояний. Однако, вне ядра пакеты могут
иметь только 4 состояния. В основном состояние пакета используется критерием --state.
Допустимыми являются состояния NEW, ESTABLISHED, RELATED и INVALID. В
таблице, приводимой ниже, рассмтриваются каждое из возможных состояний.
Таблица 4-1. Перечень состояний в пространстве пользователя
Состояние
Описание
NEW
Признак NEW сообщает о том, что пакет является первым для данного
соединения. Это означает, что это первый пакет в данном соединении,
который увидел модуль трассировщика. Например если получен SYN
пакет являющийся первым пакетом для данного соединения, то он
получит статус NEW. Однако, пакет может и не быть SYN пакетом и тем
не менее получить статус NEW. Это может породить определенные
проблемы в отдельных случаях, но может оказаться и весьма полезным,
например когда желательно "подхватить" соединения, "потерянные"
другими брандмауэрами или в случаях, когда таймаут соединения уже
истек, но само соединение не было закрыто.
RELATED
Состояние RELATED одно из самых "хитрых". Соединение получает
статус RELATED если оно связано с другим соединением, имеющим
признак ESTABLISHED. Это означает, что соединение получает признак
RELATED тогда, когда оно инициировано из уже установленного
соединения, имеющего признак ESTABLISHED. Хорошим примером
соединения, которое может рассматриваться как RELATED, является
соединение FTP-data, которое является связанным с портом FTP control, а
так же DCC соединение, запущенное из IRC. Обратите внимание на то,
что большинство протоколов TCP и некоторые из протоколов UDP
весьма сложны и передают информацию о соединении через область
данных TCP или UDP пакетов и поэтому требуют наличия специальных
вспомогательных модулей для корректной работы.
ESTABLISHED Состояние ESTABLISHED говорит о том, что это не первый пакет в
соединении. Схема установки состояния ESTABLISHED достаточна
Состояние
Описание
проста для понимания. Единственное требование, предъявляемое к
соединению, заключается в том, что для перехода в состояние
ESTABLISHED необходимо чтобы узел сети передал пакет и получил на
него ответ от другого узла (хоста). После получения ответа состояние
соединения NEW или RELATEDбудет изаменено на ESTABLISHED.
Признак INVALID говорит о том, что пакет не может быть
идентифицирован и поэтому не может иметь определенного статуса. Это
может происходить по разным причинам, например при нехватке памяти
или при получении ICMP-сообщения об ошибке, которое не
соответствует какому либо известному соединению. Наверное
наилучшим вариантом было бы применение действия DROP к таким
пакетам.
Эти четыре состояния могут использоваться в критерии --state. Механизм определения
состояния позволяет строить чрезвычайно мощную и эффективную защиту. Раньше
приходилось открывать все порты выше 1024, чтобы пропустить обратный трафик в
локальную сеть, теперь же, при наличии механизма определения состояния,
необходимость в этом отпала, поскольку появилась возможность "открывать" доступ
только для обратного (ответного) трафика, пресекая попытки установления соединений
извне.
INVALID
4.4. TCP соединения
В этом и в последующих разделах мы поближе рассмотрим признаки состояний и порядок
их обработки каждым из трех базовых протоколов TCP, UDP и ICMP, а так же коснемся
случая, когда протокол соединения не может быть классифицирован на принадлежность к
трем, вышеуказанным, протоколам. Начнем рассмотрение с протокола TCP, поскольку он
имеет множество интереснейших особенностей в отношении механизма определения
состояния в iptables.
TCP соединение всегда устанавливается передачей трех пакетов, которые
инициализируют и устанавливают соединение, через которое в дальнейшем будут
передаваться данные. Сессия начинается с передачи SYN пакета, в ответ на который
передается SYN/ACK пакет и подтверждает установление соединения пакет ACK. После
этого соединение считается установленным и готовым к передаче данных. Может
возникнуть вопрос: "А как же трассируется соединение?". В действительности все
довольно просто.
Для всех типов соединений, трассировка проходит практически одинаково. Взгляните на
рисунок ниже, где показаны все стадии установления соединения. Как видите,
трассировщик, с точки зрения пользователя, фактически не следит за ходом установления
соединения. Просто, как только трассировщик "увидел" первый (SYN) пакет, то
присваивает ему статус NEW. Как только через трассировщика проходит второй пакет
(SYN/ACK), то соединению присваивается статус ESTABLISHED. Почму именно второй
пакет? Сейчас разберемся. Строя свой набор правил, вы можете позволить покидать
локальную сеть пакетам со статусом NEW и ESTABLISHED, а во входящем трафике
пропускать пакеты только со статусом ESTABLISHED и все будет работать прекрасно. И
наоборот, если бы трассировщик продолжал считать соединение как NEW, то фактически
вам никогда не удалось бы установить соединение с "внешним миром", либо пришлось бы
позволить прохождение NEW пакетов в локальную сеть. С точки зрения ядра все
выглядит более сложным, поскольку в пространстве ядра TCP соединения имеют ряд
промежуточных состояний, недоступных в пространстве пользователя. В общих чертах
они соответствуют спецификации RFC 793 - Transmission Control Protocol.
С точки зрения пользователя все выглядит достаточно просто, однако если посмотреть с
точки зрения ядра, то все выглядит несколько сложнее. Рассмотрим порядок изменения
состояния соединения в таблице /proc/net/ip_conntrack. После передачи первого пакета
SYN.
tcp
6 117 SYN_SENT src=192.168.1.5 dst=192.168.1.35 sport=1031 \
dport=23 [UNREPLIED] src=192.168.1.35 dst=192.168.1.5 sport=23 \
dport=1031 use=1
Как видите, запись в таблице отражает точное состояние соединения -- был отмечен факт
передачи пакета SYN (флаг SYN_SENT), на который ответа пока не было (флаг
[UNREPLIED]). После получения пакета-ответа, соединение переводится в следующее
внутреннее состояние:
tcp
6 57 SYN_RECV src=192.168.1.5 dst=192.168.1.35 sport=1031 \
dport=23 src=192.168.1.35 dst=192.168.1.5 sport=23 dport=1031 \
use=1
Теперь запись сообщает о том, что обратно прошел пакет SYN/ACK. На этот раз
соединение переводится в состояние SYN_RECV. Это состояние говорит о том, что пакет
SYN был благополучно доставлен получателю и в ответ на него пришел пакетподтверждение (SYN/ACK). Кроме того, механизм определения состояния "увидев"
пакеты, следующие в обеих направлениях, снимает флаг [UNREPLIED]. И наконец после
передачи заключительного ACK-пакета, в процедуре установления соединения
tcp
6 431999 ESTABLISHED src=192.168.1.5 dst=192.168.1.35 \
sport=1031 dport=23 src=192.168.1.35 dst=192.168.1.5 \
sport=23 dport=1031 use=1
соединение переходит в состояние ESTABLISHED (установленное). После приема
нескольких пакетов через это соединение, к нему добавится флаг [ASSURED] (уверенное).
При закрытии, TCP соединение проходит через следующие состояния.
Как видно из рисунка, соединение не закрывается до тех пор пока не будет передан
последний пакет ACK. Обратите внимание -- эта картинка описывает нормальный процесс
закрытия соединения. Кроме того, если соединение отвергается, то оно может быть
закрыто передачей пакета RST (сброс). В этом случае соединение будет закрыто по
истечение предопределенного времени.
При закрытии, соединение переводится в состояние TIME_WAIT, продолжительность
которого по-умолчанию соответствует 2 минутам, в течение которого еще возможно
прохождение пакетов через брандмауэр. Это является своего рода "буферным временем",
которое дает возможность пройти пакетам, "увязшим" на том или ином маршрутизаторе
(роутере).
Если соединение закрывается по получении пакета RST, то оно переводится в состояние
CLOSE. Время ожидания до фактического закрытия соединения по-умолчанию
устанавливается равным 10 секунд. Подтверждение на пакеты RST не передается и
соединение закрывается сразу же. Кроме того имеется ряд других внутренних состояний.
В таблице ниже приводится список возможных внутренних состояний соединения и
соответствующие им размеры таймаутов.
Таблица 4-2. Internal states
Состояние
Время ожидания
NONE
30 минут
ESTABLISHED 5 дней
SYN_SENT
2 минуты
SYN_RECV
60 секунд
FIN_WAIT
2 минуты
TIME_WAIT
2 минуты
Состояние
Время ожидания
CLOSE
10 секунд
CLOSE_WAIT 12 часов
LAST_ACK
30 секунд
LISTEN>
2 минуты
Эти значения могут несколько изменяться от версии к версии ядра, кроме того, они могут
быть
изменены
через
интерфейс
файловой
системы
/proc
(переменные
proc/sys/net/ipv4/netfilter/ip_ct_tcp_*). Значения устанавливаются в сотых долях секунды,
так что число 3000 означает 30 секунд.
4.5. UDP соединения
По сути своей, UDP соединения не имеют признака состояния. Этому имеется несколько
причин, основная из них состоит в том, что этот протокол не предусматривает
установления и закрытия соединения, но самый большой недостаток -- отсутствие
информации об очередности поступления пакетов. Приняв две датаграммы UDP,
невозможно сказать точно в каком порядке они были отправлены. Однако, даже в этой
ситуации все еще возможно определить состояние соединения. Ниже приводится рисунок
того, как выглядит установление соединения с точки зрения трассировщика.
Из рисунка видно, что состояние UDP соединения определяется почти так же как и
состояние TCP соединения, с точки зрения из пользовательского пространства. Изнутри
же это выглядит несколько иначе, хотя во многом похоже. Для начала посмотрим на
запись, появившуюся после передачи первого пакета UDP.
udp
17 20 src=192.168.1.2 dst=192.168.1.5 sport=137 dport=1025 \
[UNREPLIED] src=192.168.1.5 dst=192.168.1.2 sport=1025 \
dport=137 use=1
Первое, что мы видим -- это название протокола (udp) и его номер (см. /etc/protocols прим.
перев.). Третье значение -- оставшееся "время жизни" записи в секундах. Далее следуют
характеристики пакета, прошедшего через брандмауэр -- это адреса и порты отправителя
и получателя. Здесь же видно, что это первый пакет в сессии (флаг [UNREPLIED]). И
завершают запись адреса и порты отправителя и получателя ожидаемого пакета. Таймаут
такой записи по умолчанию составляет 30 секунд.
udp
17 170 src=192.168.1.2 dst=192.168.1.5 sport=137 \
dport=1025 src=192.168.1.5 dst=192.168.1.2 sport=1025 \
dport=137 use=1
После того как сервер "увидел" ответ на первый пакет, соединение считается
ESTABLISHED (установленным), единственное отличие от предыдущей записи состоит в
отсутствии флага [UNRREPLIED] и, кроме того, таймаут для записи стал равным 180
секундам. После этого может только добавиться флаг [ASSURED] (уверенное
соединение), который был описан выше. Флаг [ASSURED] устанавливается только после
прохождения некоторого количества пакетов через соединение.
udp
17 175 src=192.168.1.5 dst=195.22.79.2 sport=1025 \
dport=53 src=195.22.79.2 dst=192.168.1.5 sport=53 \
dport=1025 [ASSURED] use=1
Теперь соединение стало "уверенным". Запись в таблице выглядит практически так же как
и в предыдущем примере, за исключением флага [ASSURED]. Если в течение 180 секунд
через соединение не пройдет хотя бы один пакет, то запись будет удалена из таблицы. Это
достаточно маленький промежуток времени, но его вполне достаточно для большинства
применений. "Время жизни" отсчитывается от момента прохождения последнего пакета и
при появлении нового, время переустанавливается в свое начальное значение, это
справедливо и для всех остальных типов внутренних состояний.
4.6. ICMP соединения
ICMP пакеты используются только для передачи управляющих сообщений и не
организуют постоянного соединения. Однако, существует 4 типа ICMP пакетов, которые
вызывают передачу ответа, поэтому они могут иметь два состояния: NEW и
ESTABLISHED. К этим пакетам относятся ICMP Echo Request/Echo Reply, ICMP
Timestamp Request/Timestamp Reply, ICMP Information Request/Information Reply и ICMP
Address Mask Request/Address Mask Reply. Из них -- ICMP Timestamp Request/Timestamp
Reply и ICMP Information Request/Information Reply считаются устаревшими и поэтому, в
большинстве случаев, могут быть безболезненно сброшены (DROP). Взгляните на
рисунок ниже.
Как видно из этого рисунка, сервер выполняет Echo Request (эхо-запрос) к клиенту,
который (запрос) распознается брандмауэром как NEW. На этот запрос клиент отвечает
пакетом Echo Reply, и теперь пакет распознается как имеющий состояние
ESTABLISHED. После прохождения первого пакета (Echo Request) в ip_conntrack
появляется запись:
icmp 1 25 src=192.168.1.6 dst=192.168.1.10 type=8 code=0 \
id=33029 [UNREPLIED] src=192.168.1.10 dst=192.168.1.6 \
type=0 code=0 id=33029 use=1
Эта запись несколько отличается от записей, свойственных протоколам TCP и UDP, хотя
точно так же присутствуют и название протокола и время таймаута и адреса передатчика
и приемника, но далее появляются три новых поля - type, code и id. Поле type содержит
тип ICMP, поле code - код ICMP. И последнее поле id содержит идентификатор пакета.
Каждый ICMP-пакет имеет свой идентификатор. Когда приемник, в ответ на ICMP-запрос
посылает ответ, он подставляет в пакет ответа этот идентификатор, благодаря чему,
передатчик может корректно распознать в ответ на какой запрос пришел ответ.
Следующее поле -- флаг [UNREPLIED], который встречался нам ранее. Он означает, что
прибыл первый пакет в соединении. Завершается запись характеристиками ожидаемого
пакета ответа. Сюда включаются адреса отправителя и получателя. Что касается типа и
кода ICMP пакета, то они соответствуют правильным значениям ожидаемого пакета ICMP
Echo Reply. Идентификатор пакета-ответа тот же, что и в пакете запроса.
Пакет ответа распознается уже как ESTABLISHED. Однако, мы знаем, что после
передачи пакета ответа, через это соединение уже ничего не ожидается, поэтому после
прохождения ответа через netfilter, запись в таблице трассировщика уничтожается.
В любом случае запрос рассматривается как NEW, а ответ как ESTABLISHED.
ICMP запросы имеют таймаут, по-умолчанию, 30 секунд. Этого времени, в большинстве
случаев,
вполне
достаточно.
Время
таймаута
можно
изменить
в
/proc/sys/net/ipv4/netfilter/ip_ct_icmp_timeout. ( Напоминаю, что переменные типа
/proc/sys/net/ipv4/netfilter/ip_ct_* становятся доступны только после установки "заплаты"
tcp-window-tracking из patch-o-matic прим. перев.).
Значительная часть ICMP используется для передачи сообщений о том, что происходит с
тем или иным UDP или TCP соединением. Всвязи с этим они очень часто распознаются
как связанные (RELATED) с существующим соединением. Простым примером могут
служить сообщения ICMP Host Unreachable или ICMP Network Unreachable. Они всегда
порождаются при попытке соединиться с узлом сети когда этот узел или сеть недоступны,
в этом случае последний маршрутизатор вернет соответствующий ICMP пакет, который
будет распознан как RELATED. На рисунке ниже показано как это происходит.
В этом примере некоторому узлу передается запрос на соединение (SYN пакет). Он
приобретает статус NEW на брандмауэре. Однако, в этот момент времени, сеть
оказывается недоступной, поэтому роутер возвращает пакет ICMP Network Unreachable.
Трассировщик соединений распознает этот пакет как RELATED, благодаря уже
имеющейся записи в таблице, так что пакет благополучно будет передан клиенту,
который затем оборвет неудачное соединение. Тем временем, брандмауэр уничтожит
запись в таблице, поскольку для данного соединения было получено сообщение об
ошибке.
То же самое происходит и с UDP соединениями -- если обнаруживаются подобные
проблемы. Все сообщения ICMP, передаваемые в ответ на UDP соединение,
рассматриваются как RELATED. Взгляните на следующий рисунок.
Датаграмма UDP передается на сервер. Соединению присваивается статус NEW. Однако
доступ к сети запрещен (брандмауэром или роутером), поэтому обратно возвращается
сообщение ICMP Network Prohibited. Брандмауэр распознает это сообщение как связанное
с открытым UDP соединением, присваивает ему статус RELATED и передает клиенту.
После чего запись в таблице трассировщика уничтожается, а клиент благополучно
обрывает соединение.
4.7. Поведение по-умолчанию
В некоторых случаях механизм определения состояния не может распознать протокол
обмена и, соответственно, не может выбрать стратегию обработки этого соединения. В
этом случае он переходит к заданному по-умолчанию поведению. Поведение поумолчанию используется, например при обслуживании протоколов NETBLT, MUX и EGP.
Поведение по-молчанию во многом схоже с трассировкой UDP соединений. Первому
пакету присваивается статус NEW, а всем последующим - статус ESTABLISHED.
При использовании поведения по-умолчанию, для всех пакетов используется одно и то же
значение
таймаута,
которое
можно
изменить
в
/proc/sys/net/ipv4/netfilter/ip_ct_generic_timeout. По-умолчанию это значение равно 600
секундам, или 10 минутам В зависимости от типа трафика, это время может меняться,
особенно когда соединение устанавливается по спутниковому каналу.
4.8. Трассировка комплексных протоколов
Имеется ряд комплексных протоколов, корректная трассировка которых более сложна.
Прмером могут служить протоколы ICQ, IRC и FTP. Каждый из этих протоколов несет
дополнительную информацию о соединении в области данных пакета. Соответственно
корректная трассировка таких соединений требует подключения дополнительных
вспомогательных модулей.
В качестве первого примера рассмотрим протокол FTP. Протокол FTP сначала открывает
одиночное соединение, которое называется "сеансом управления FTP" (FTP control
session). При выполнении команд в пределах этого сеанса, для передачи сопутствующих
данных открываются дополнительные порты. Эти соединения могут быть активными или
пассивными. При создании активного соединения клент передает FTP серверу номер
порта и IP адрес для соединения. Затем клент открывает порт, сервер подключает к
заданному порту клиента свой порт с номером 20 (известный как FTP-Data) и передает
данные через установленное соединение.
Проблема состоит в том, что брандмауэр ничего не знает об этих дополнительных
подключениях, поскольку вся информация о них передается через область данных пакета.
Из-за этого брандмауэр не позволит серверу соединиться с указанным портом клиента.
Решение проблемы состоит в добавлении специального вспомогательного модуля
трассировки, который отслеживает, специфичную для данного протокола, информацию в
области данных пакетов, передаваемых в рамках сеанса управления. При создании такого
соединения, вспомогательный модуль корректно воспримет передаваемую информацию и
создаст соответствующую запись в таблице трассировщика со статусом RELATED,
благодаря чему соединение будет установлено. Рисунок ниже поясняет порядок
выполнения подобного соединения.
Пассивный FTP действует противоположным образом. Клиент посылает запрос серверу
на получение данных, а сервер возвращает клиенту IP адрес и номер порта для
подключения. Клиент подключает свой 20-й порт (FTP-data) к указанному порту сервера
и получает запрошенные данные. Если ваш FTP сервер находится за брандмауэром, то вам
потребуется этот вспомогательный модуль для того, чтобы сервер смог обслуживать
клиентов из Интернет. То же самое касается случая, когда вы хотите ограничить своих
пользователей только возможностью подключения к HTTP и FTP серверам в Интернет и
закрыть все остальные порты. Рисунок ниже показывает как выполняется пассивное
соединение FTP.
Действия и переходы
Действия и переходы сообщают правилу, что необходимо выполнить, если пакет
соответствует заданному критерию. Чаще всего употребляются действия ACCEPT и
DROP. Однако, давайте кратко рассмотрим понятие переходов.
Описание переходов в правилах выглядит точно так же как и описание действий, т.е.
ставится ключ -j и указывается название цепочки правил, на которую выполняется
переход. На переходы накладывается ряд ограничений, первое - цепочка, на которую
выполняется переход, должна находиться в той же таблице, что и цепочка, из которой
этот переход выполняется, второе - цепочка , являющаяся целью перехода должна быть
создана до того как на нее будут выполняться переходы. Если к пакету во вложенной
цепочке будет применено действие ACCEPT, то автоматически пакет будет считаться
принятым и в вызывающей цепочке и уже не будет продолжать движение по
вызывающим цепочкам. Однако пакет пойдет по другим цепочкам в других таблицах.
Действие - это предопределенная команда, описывающая действие, которое необходимо
выполнить, если пакет совпал с заданным критерием. Например, можно применить
действие DROP или ACCEPT к пакету, в зависимости от наших нужд. Существует и ряд
других действий, которые описываются ниже в этом разделе. В результате выполнения
одних действий, пакет прекращает свое прохождение по цепочке, например DROP и
ACCEPT, в результате других, после выполнения неких операций, продолжает проверку,
например, LOG, в результате работы третьих даже видоизменяется, например DNAT и
SNAT, TTL и TOS, но так же продолжает продвижение по цепочке.
6.5.1. Действие ACCEPT
Данная операция не имеет дополнительных ключей. Если над пакетом выполняется
действие ACCEPT, то пакет прекращает движение по цепочке (и всем вызвавшим
цепочкам, если текущая цепочка была вложенной) и считается ПРИНЯТЫМ (то бишь
пропускается), тем не менее, пакет продолжит движение по цепочкам в других таблицах и
может быть отвергнут там. Действие задается с помощью ключа -j ACCEPT.
6.5.2. Действие DNAT
DNAT (Destination Network Address Translation) используется для преобразования адреса
места назначения в IP заголовке пакета. Если пакет подпадает под критерий правила,
выполняющего DNAT, то этот пакет, и все последующие пакеты из этого же потока,
будут подвергнуты преобразованию адреса назначения и переданы на требуемое
устройство, хост или сеть. Данное действие может, к примеру, успешно использоваться
для предоставления доступа к вашему web-серверу, находящемуся в локальной сети, и не
имеющему реального IP адреса. Для этого вы строите правило, которое перехватывает
пакеты, идущие на HTTP порт брандмауэра и выполняя DNAT передаете их на локальный
адрес web-сервера. Для этого действия так же можно указать диапазон адресов, тогда
выбор адреса назначения для каждого нового потока будет производиться случайнам
образом.
Действие DNAT может выполняться только в цепочках PREROUTING и OUTPUT
таблицы nat, и во вложенных под-цепочках. Важно запомнить, что вложенные
подцепочки, реализующие DNAT не должны вызываться из других цепочек, кроме
PREROUTING и OUTPUT.
Таблица 6-16. Действие DNAT
Ключ
--to-destination
Пример
iptables -t nat -A PREROUTING -p tcp -d 15.45.23.67 --dport 80 -j DNAT -to-destination 192.168.1.1-192.168.1.10
Описание
Ключ --to-destination указывает, какой IP адрес должен быть подставлен в
качестве адреса места назначения. В выше приведенном примере во всех
пакетах, пришедших на адрес 15.45.23.67, адрес назначения будет изменен на
один из диапазона от 192.168.1.1 до 192.168.1.10. Как уже указывалось выше,
все пакеты из одного потока будут направляться на один и тот же адрес, а
для каждого нового потока будет выбираться один из адресов в указанном
диапазоне случайным образом. Можно также определить единственный IP
адрес. Можно дополнительно указать порт или диапазон портов, на который
(которые) будет перенаправлен траффик. Для этого после ip адреса через
двоеточие укажите порт, например --to-destination 192.168.1.1:80, а указание
диапазона портов выглядит так: --to-destination 192.168.1.1:80-100. Как вы
можете видеть, синтаксис действий DNAT и SNAT во многом схож. Не
забывайте, что указание портов допускается только при работе с протоколом
TCP или UDP, при наличии опции --protocol в критерии.
Действие DNAT достаточно сложно в использовании и требует дополнительного
пояснения. Рассмотрим простой пример. У нас есть WEB сервер и мы хотим разрешить
доступ к нему из Интернет. Мы имеем только один реальный IP адрес, а WEB-сервер
расположен в локальной сети. Реальный IP адрес $INET_IP назначен брандмауэру, HTTP
сервер имеет локальный адрес $HTTP_IP и, наконец брандмауэр имеет локальный алрес
$LAN_IP. Для начала добавим простое правило в цепочку PREROUTING таблицы nat:
iptables -t nat -A PREROUTING --dst $INET_IP -p tcp --dport 80 -j DNAT \
--to-destination $HTTP_IP
1.
2.
3.
4.
5.
В соответствии с этим правилом, все пакеты, поступающие на 80-й порт адреса $INET_IP
перенаправляются на наш внутренний WEB-сервер. Если теперь обратиться к WEBсерверу из Интернет, то все будет работать прекрасно. Но что же произойдет, если
попробовать соединиться с ним из локальной сети? Соединение просто не установится.
Давайте посмотрим как маршрутизируются пакеты, идущие из Интернет на наш WEBсервер. Для простоты изложения примем адрес клиента в Интернет равным $EXT_BOX.
Пакет покидает клиентский узел с адресом $EXT_BOX и направляется на
$INET_IP
Пакет приходит на наш брандмауэр.
Брандмауэр, в соответствии с вышеприведенным правилом, подменяет адрес
назначения и передает его дальше, в другие цепочки.
Пакет передается на $HTTP_IP.
Пакет поступает на HTTP сервер и сервер передает ответ через брандмауэр, если в
таблице маршрутизации он обозначен как шлюз для $EXT_BOX. Как правило, он
назначается шлюзом по-умолчанию для HTTP сервера.
6.
7.
1.
2.
3.
4.
5.
6.
Брандмауэр производит обратную подстановку адреса в пакете, теперь все
выглядит так, как будто бы пакет был сформирован на брандмауэре.
Пакет передается клиенту $EXT_BOX.
А теперь посмотрим, что произойдет, если запрос посылается с узла, расположенного в
той же локальной сети. Для простоты изложения примем адрес клиента в локальной сети
равным $LAN_BOX.
Пакет покидает $LAN_BOX.
Поступает на брандмауэр.
Производится подстановка адреса назначения, однако адрес отправителя не
подменяется, т.е. исходный адрес остается в пакете без изменения.
Пакет покидает брандмауэр и отправляется на HTTP сервер.
HTTP сервер, готовясь к отправке ответа, обнаруживает, что клиент находится в
локальной сети (поскольку пакет запроса содержал оригинальный IP адрес, который
теперь превратился в адрес назначения) и поэтому отправляет пакет непосредственно на
$LAN_BOX.
Пакет поступает на $LAN_BOX. Клиент "путается", поскольку ответ пришел не с
того узла, на который отправлялся запрос. Поэтому клиент "сбрасывает" пакет ответа и
продолжает ждать "настоящий" ответ.
Проблема решается довольно просто с помощью SNAT. Ниже приводится правило,
которое выполняет эту функцию. Это правило вынуждает HTTP сервер передавать ответы
на наш брандмауэр, которые затем будут переданы клиенту.
iptables -t nat -A POSTROUTING -p tcp --dst $HTTP_IP --dport 80 -j SNAT \
--to-source $LAN_IP
Запомните, цепочка POSTROUTING обрабатывается самой последней и к этому моменту
пакет уже прошел процедуру преобразования DNAT, поэтому критерий строится на базе
адреса назначения $HTTP_IP.
Если вы думаете, что на этом можно остановиться, то вы ошибаетесь! Представим себе
ситуацию, когда в качестве клиента выступает сам брандмауэр. Тогда, к сожалению,
пакеты будут передаваться на локальный порт с номером 80 самого брандмауэра, а не на
$HTTP_IP. Чтобы разрешить и эту проблему, добавим правило:
iptables -t nat -A OUTPUT --dst $INET_IP -p tcp --dport 80 -j DNAT \
--to-destination $HTTP_IP
Теперь никаких проблем, с доступом к нашему WEB-серверу, уже не должно возникать.
6.5.3. Действие DROP
Данное действие просто "сбрасывает" пакет и iptables "забывает" о его существовании.
"Сброшенные" пакеты прекращают свое движение полностью, т.е. они не передаются в
другие таблицы, как это происходит в случае с действием ACCEPT. Следует помнить, что
данное действие может иметь негативные последствия, поскольку может оставлять
незакрытые "мертвые" сокеты как на стороне сервера, так и на стороне клиента,
наилучшим способом защиты будет использование действия REJECT особенно при
защите от сканирования портов.
6.5.4. Действие LOG
LOG -- действие, которое служит для журналирования отдельных пакетов и событий. В
журнал могут заноситься заголовки IP пакетов и другая интересующая вас информация.
Информация из журнала может быть затем прочитана с помощью dmesg или syslogd либо
с помощью других программ. Превосходное средство для отладки ваших правил. Неплохо
было бы на период отладки правил вместо действия DROP использовать действие LOG,
чтобы до конца убедиться, что ваш брандмауэр работает безупречно. Обратите ваше
внимание так же на действие ULOG, которое наверняка заинтересует вас своими
возможностями, поскольку позволяет выполнять запись журналируемой информации не в
системный журнал, а в базу данных MySQL и т.п..
Действие LOG имеет пять ключей, которые перечислены ниже.
Таблица 6-17. Ключи действия LOG
Ключ
--log-level
Пример
iptables -A FORWARD -p tcp -j LOG --log-level debug
Описание
Используется для задания уровня журналирования (log level). Полный список
уровней вы найдете в руководстве (man) по syslog.conf. Обычно, можно
задать следующие уровни: debug, info, notice, warning, warn, err, error, crit,
alert, emerg и panic. Ключевое слово error означает то же самое, что и err,
warn - warning и panic - emerg. Важно: в последних трех парах слов не
следует использовать error, warn и panic. Приоритет определяет различия в
том как будут заноситься сообщения в журнал. Все сообщения заносятся в
журнал средствами ядра. Если вы установите строку kern.=info
/var/log/iptables в файле syslog.conf, то все ваши сообщения из iptables,
использующие уровень info, будут заноситься в файл /var/log/iptables Однако,
в этот файл попадут и другие сообщения, поступающие из других подсистем,
которые используют уровень info. За дополнительной информацией по syslog
и syslog.conf я рекомендую обращаться к manpages и HOWTO.
Ключ
--log-prefix
Пример
iptables -A INPUT -p tcp -j LOG --log-prefix "INPUT packets"
Ключ задает текст (префикс), которым будут предваряться все сообщения
iptables. Сообщения со специфичным префиксом затем легко можно найти, к
примеру, с помощью grep. Префикс может содержать до 29 символов,
включая и пробелы.
Описание
Ключ
--log-tcp-sequence
Пример
iptables -A INPUT -p tcp -j LOG --log-tcp-sequence
Этот ключ позволяет заносить в журнал номер TCP Sequence пакета. Номер
TCP Sequence идентифицирует каждый пакет в потоке и определяет порядок
"сборки" потока. Этот ключ потенциально опасен для безопасности системы,
если системный журнал разрешает доступ "НА ЧТЕНИЕ" всем
пользователям. Как и любой другой журнал, содержащий сообщения от
iptables.
Описание
Ключ
--log-tcp-options
Пример
iptables -A FORWARD -p tcp -j LOG --log-tcp-options
Описание
Этот ключ позволяет заносить в системный журнал различные сведения из
заголовка TCP пакета. Такая возможность может быть полезна при отладке.
Этот ключ не имеет дополнительных параметров, как и большинство ключей
действия LOG.
Ключ
--log-ip-options
Пример
iptables -A FORWARD -p tcp -j LOG --log-ip-options
Этот ключ позволяет заносить в системный журнал различные сведения из
заголовка IP пакета. Во многом схож с ключом --log-tcp-options, но работает
только с IP заголовком.
Описание
6.5.5. Действие MARK
Используется для установки меток для определенных пакетов. Это действие может
выполняться только в пределах таблицы mangle. Установка меток обычно используется
для нужд маршрутизации пакетов по различным маршрутам, для ограничения трафика и
т.п.. За дополнительной информацией вы можете обратиться к Linux Advanced Routing and
Traffic Control HOW-TO. Не забывайте, что "метка" пакета существует только в период
времени пока пакет не покинул брандмауэр, т.е. метка не передается по сети. Если
необходимо как-то пометить пакеты, чтобы использовать маркировку на другой машине,
то можете попробовать манипулировать битами поля TOS.
Таблица 6-18. Ключи действия MARK
Ключ
--set-mark
Пример
iptables -t mangle -A PREROUTING -p tcp --dport 22 -j MARK --set-mark 2
Описание
Ключ --set-mark устанавливает метку на пакет. После ключа --set-mark
должно следовать целое беззнаковое число.
6.5.6. Действие MASQUERADE
Маскарадинг (MASQUERADE) в основе своей представляет то же самое, что и SNAT
только не имеет ключа --to-source. Причиной тому то, что маскарадинг может работать,
например, с dialup подключением или DHCP, т.е. в тех случаях, когда IP адрес
присваивается устройству динамически. Если у вас имеется динамическое подключение,
то нужно использовать маскарадинг, если же у вас статическое IP подключение, то
бесспорно лучшим выходом будет использование действия SNAT.
Маскарадинг подразумевает получение IP адреса от заданного сетевого интерфейса,
вместо прямого его указания, как это делается с помощью ключа --to-source в действии
SNAT. Действие MASQUERADE имеет хорошее свойство - "забывать" соединения при
остановке сетевого интерфейса. В случае же SNAT, в этой ситуации, в таблице
трассировщика остаются данные о потерянных соединениях, и эти данные могут
сохраняться до суток, поглощая ценную память. Эффект "забывчивости" связан с тем, что
при остановке сетевого интерфейса с динамическим IP адресом, есть вероятность на
следующем запуске получить другой IP адрес, но в этом случае любые соединения все
равно будут потеряны, и было бы глупо хранить трассировочную информацию.
Как вы уже поняли, действие MASQUERADE может быть использовано вместо SNAT,
даже если вы имеете постоянный IP адрес, однако, невзирая на положительные черты,
маскарадинг не следует считать предпочтительным в этом случае, поскольку он дает
большую нагрузку на систему.
Действие MASQUERADE допускается указывать только в цепочке POSTROUTING
таблицы nat, так же как и действие SNAT. MASQUERADE имеет ключ, описываемый
ниже, использование которого необязательно.
Таблица 6-19. Действие MASQUERADE
Ключ
--to-ports
Пример
iptables -t nat -A POSTROUTING -p TCP -j MASQUERADE --to-ports
1024-31000
Описание
Ключ --to-ports используется для указания порта источника или диапазона
портов исходящего пакета. Можно указать один порт, например: --to-ports
1025, или диапазон портов как здесь: --to-ports 1024-3000. Этот ключ можно
использовать только в правилах, где критерий содержит явное указание на
протокол TCP или UDP с помощью ключа --protocol.
6.5.7. Действие MIRROR
Действие MIRROR может использоваться вами только для экспериментов и в
демонстрационных целях, поскольку это действие может привести к "зацикливанию"
пакета и в результате к "Отказу от обслуживания". В результате действия MIRROR в
пакете, поля source и destination меняются местами (invert the source and destination fields) и
пакет отправляется в сеть. Использование этой команды может иметь весьма забавный
результат, наверное, со стороны довольно потешно наблюдать, как какой нибудь
кульхацкер пытается "взломать" свой собственный компьютер!
Данное действие допускается использовать только в цепочках INPUT, FORWARD и
PREROUTING, и в цепочках, вызываемых из этих трех. Пакеты, отправляемые в сеть
действием MIRROR больше не подвергаются фильтрации, трассировке или NAT, избегая
тем самым "зацикливания" и других неприятностей. Однако это не означает, что проблем
с этим действием нет. Давайте, к примеру, представим, что на хосте, использующем
действие MIRROR фабрикуется пакет, с TTL равным 255, на этот же самый хост и пакет
подпадает под критерий "зеркалирующего" правила. Пакет "отражается" на этот же хост, а
поскольку между "приемником" и "передатчиком" только 1 хоп (hop) то пакет будет
прыгать туда и обратно 255 раз. Неплохо для крякера, ведь, при величине пакета 1500
байт, мы потеряем до 380 Кбайт трафика!
6.5.8. Действие QUEUE
ействие QUEUE ставит пакет в очередь на обработку пользовательскому процессу. Оно
может быть использовано для нужд учета, проксирования или дополнительной
фильтрации пакетов.
6.5.9. Действие REDIRECT
Выполняет перенаправление пакетов и потоков на другой порт той же самой машины. К
примеру, можно пакеты, поступающие на HTTP порт перенаправить на порт HTTP proxy.
Действие REDIRECT очень удобно для выполнения "прозрачного" проксирования
(transparent proxying), когда машины в локальной сети даже не подозревают о
существовании прокси.
REDIRECT может использоваться только в цепочках PREROUTING и OUTPUT таблицы
nat. И конечно же это действие можно выполнять в подцепочках, вызываемых и
вышеуказанных. Для действия REDIRECT предусмотрен только один ключ.
Таблица 6-20. Действие REDIRECT
Ключ
--to-ports
Пример
Описание
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports
8080
Ключ --to-ports определяет порт или диапазон портов назначения. Без
указания ключа --to-ports, перенаправления не происходит, т.е. пакет идет на
тот порт, куда и был назначен. В примере, приведенном выше, --to-ports
8080 указан один порт назначения. Если нужно указать диапазон портов, то
мы должны написать нечто подобное --to-ports 8080-8090. Этот ключ можно
использовать только в правилах, где критерий содержит явное указание на
протокол TCP или UDP с помощью ключа --protocol.
6.5.10. Действие REJECT
REJECT используется, как правило, в тех же самых ситуациях, что и DROP, но в отличие
от DROP, команда REJECT выдает сообщение об ошибке на хост, передавший пакет.
Действие REJECT на сегодняшний день может использоваться только в цепочках INPUT,
FORWARD и OUTPUT (и во вложенных в них цепочках). Пока существует только
единственный ключ, управляющий поведением команды REJECT.
Таблица 6-21. Действие REJECT
Ключ
--reject-with
Пример
iptables -A FORWARD -p TCP --dport 22 -j REJECT --reject-with tcp-reset
Описание
Указывает, какое сообщение необходимо передать в ответ, если пакет совпал
с заданным критерием. При применении действия REJECT к пакету, сначала
на хост-отправитель будет отослан указанный ответ, а затем пакет будет
"сброшен". Допускается использовать следующие типы ответов: icmp-netunreachable,
icmp-host-unreachable,
icmp-port-unreachable,
icmp-protounreachable, icmp-net-prohibited и icmp-host-prohibited. По-умолчанию
передается сообщение port-unreachable. Все вышеуказанные типы ответов
являются ICMP error messages. Дополнительную информацию по типам
ICMP сообщений вы можете получить в приложении Типы ICMP. В
заключение укажем еще один тип ответа - tcp-reset, который используется
только для протокола TCP. Если указано значение tcp-reset, то действие
REJECT передаст в ответ пакет TCP RST, пакеты TCP RST используются
для закрытия TCP соединений. За дополнительной информацией
обращайтесь к RFC 793 - Transmission Control Protocol. (Список типов ICMP
ответов и их алиасов вы сможете получить введя команду iptables -j
REJECT -h прим. перев.).
6.5.11. Действие RETURN
Действие RETURN прекращает движение пакета по текущей цепочке правил и
производит возврат в вызывающую цепочку, если текущая цепочка была вложенной, или,
если текущая цепочка лежит на самом верхнем уровне (например INPUT), то к пакету
будет применена политика по-умолчанию. Обычно, в качестве политики по-умолчанию
назначают действия ACCEPT или DROP .
Для примера, допустим, что пакет идет по цепочке INPUT и встречает правило, которое
производит переход во вложенную цепочку - --jump EXAMPLE_CHAIN. Далее, в
цепочке EXAMPLE_CHAIN пакет встречает правило, которое выполняет действие --jump
RETURN. Тогда произойдет возврат пакета в цепочку INPUT. Другой пример, пусть пакет
встречает правило, которое выполняет действие --jump RETURN в цепочке INPUT. Тогда
к пакету будет применена политика по-умолчанию цепочки INPUT.
6.5.12. Действие SNAT
SNAT используется для преобразования сетевых адресов (Source Network Address
Translation), т.е. изменение исходящего IP адреса в IP заголовке пакета. Например, это
действие можно использовать для предоставления выхода в Интернет другим
компьютерам из локальной сети, имея лишь один уникальный IP адрес. Для этого.
необходимо включить пересылку пакетов (forwarding) в ядре и затем создать правила,
которые будут транслировать исходящие IP адреса нашей локальной сети в реальный
внешний адрес. В результате, внешний мир ничего не будет знать о нашей локальной
сети, он будет считать, что запросы пришли с нашего брандмауэра.
SNAT допускается выполнять только в таблице nat, в цепочке POSTROUTING. Другими
словами, только здесь допускается преобразование исходящих адресов. Если первый
пакет в соединении подвергся преобразованию исходящего адреса, то все последующие
пакеты, из этого же соединения, будут преобразованы автоматически и не пойдут через
эту цепочку правил.
Таблица 6-22. Действие SNAT
Ключ
--to-source
Пример
Описание
iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source
194.236.50.155-194.236.50.160:1024-32000
Ключ --to-source используется для указания адреса, присваемового пакету.
Все просто, вы указываете IP адрес, который будет подставлен в заголовок
пакета в качестве исходящего. Если вы собираетесь перераспределять
нагрузку между несколькими брандмауэрами, то можно указать диапазон
адресов, где начальный и конечный адреса диапазона разделяются дефисом,
например: 194.236.50.155-194.236.50.160. Тогда, конкретный IP адрес будет
выбираться из диапазона случайным образом для каждого нового потока.
Дополнительно можно указать диапазон портов, которые будут
использоваться только для нужд SNAT. Все исходящие порты будут после
этого перекартироваться в заданный диапазон. iptables старается, повозможности, избегать перекартирования портов, однако не всегда это
возможно, и тогда производится перекартирование . Если диапазон портов не
задан, то исходные порты ниже 512 перекартируются в диапазоне 0-511,
порты в диапазоне 512-1023 перекартируются в диапазоне 512-1023, и,
наконец порты из диапазона 1024-65535 перекартируются в диапазоне 102465535. Что касается портов назначения, то они не подвергаются
перекартированию.
6.5.13. Действие TOS
Команда TOS используется для установки битов в поле Type of Service IP заголовка. Поле
TOS содержит 8 бит, которые используются для маршрутизации пакетов. Это один из
нескольких полей, используемых iproute2. Так же важно помнить, что данное поле может
обрабатываться различными маршрутизаторами с целью выбора маршрута движения
пакета. Как уже указывалось выше, это поле, в отличие от MARK, сохраняет свое
значение при движении по сети, а поэтому может использоваться вами для
маршрутизации пакета. На сегодняшний день, большинство маршрутизаторов в
Интернете никак не обрабатывают это поле, однако есть и такие, которые смотрят на него.
Если вы используете это поле в своих нуждах, то подобные маршрутизаторы могут
принять неверное решение при выборе маршрута, поэтому, лучше всего использовать это
поле для своих нужд только в пределах вашей WAN или LAN.
Команда TOS имеет только один ключ, который описан ниже.
Таблица 6-23. Действие TOS
Ключ
--set-tos
Пример
iptables -t mangle -A PREROUTING -p TCP --dport 22 -j TOS --set-tos 0x10
Описание
Ключ --set-tos определяет числовое значение в десятичном или
шестнадцатиричном виде. Поскольку поле TOS является 8-битным, то вы
можете указать число в диапазоне от 0 до 255 (0x00 - 0xFF). Однако,
большинство значений этого поля никак не используются. Вполне возможно,
что в будущих реализациях TCP/IP числовые значения могут быть изменены,
поэтому, во-избежание ошибок, лучше использовать мнемонические
обозначения: Minimize-Delay (16 или 0x10), Maximize-Throughput (8 или
0x08), Maximize-Reliability (4 или 0x04), Minimize-Cost (2 или 0x02) или
Normal-Service (0 или 0x00). По-умолчанию большинство пакетов имеют
признак Normal-Service, или 0. Список мнемоник вы сможете получить,
выполнив команду iptables -j TOS -h.
6.5.14. Действие TTL
Действие TTL используется для изменения содержимого поля Time To Live в IP
заголовке. Один из вариантов применения этого действия - это устанавливать значение
поля Time To Live ВО ВСЕХ исходящих пакетах в одно и то же значение. Для чего это?!
Есть некоторые провайдеры, которые очень не любят, когда одним подключением
пользуется несколько компьютеров, если мы начинаем устанавливать на все пакеты одно
и то же значение TTL, то тем самым мы лишаем провайдера одного из критериев
определения того, что подключение к Интернету разделяется несколькими компьютерами.
Для примера можно привести число TTL = 64, которое является стандартным для ядра
Linux.
Действие TTL можно указывать только в таблице mangle и нигде больше. Для данного
действия предусмотрено 3 ключа, описываемых ниже.
Таблица 6-24. Действие TTL
Ключ
--ttl-set
Пример
iptables -t mangle -A PREROUTING -i eth0 -j TTL --ttl-set 64
Описание
Устанавливает поле TTL в заданное значение. Оптимальным считается
значение около 64. Это не слишком много, но и не слишком мало Не
задавайте слишком большое значение, это может иметь неприятные
последствия для вашей сети. Представьте себе, что пакет "зацикливается"
между двумя неправильно сконфигурированными роутерами, тогда, при
больших значениях TTL, есть риск "потерять" значительную долю
пропускной способности канала.
Ключ
--ttl-dec
Пример
iptables -t mangle -A PREROUTING -i eth0 -j TTL --ttl-dec 1
Уменьшает значение поля TTL на заданное число. Например, пусть
входящий пакет имеет значение TTL равное 53 и мы выполняем команду -ttl-dec 3, тогда пакет покинет наш хост с полем TTL равным 49. Не
забывайте, что сетевой код автоматически уменьшит значение TTL на 1,
поэтому, фактически мы получаем 53 - 3 - 1 = 49.
Описание
Ключ
--ttl-inc
Пример
iptables -t mangle -A PREROUTING -i eth0 -j TTL --ttl-inc 1
Описание
Увеличивает значение поля TTL на заданное число. Возьмем предыдущий
пример, пусть к нам поступает пакет с TTL = 53, тогда, после выполнения
команды --ttl-inc 4, на выходе с нашего хоста, пакет будет иметь TTL = 56, не
забывайте об автоматическом уменьшении поля TTL сетевым кодом ядра,
т.е. фактически мы получаем выражение 53 + 4 - 1 = 56. Увеличение поля
TTL может использоваться для того, чтобы сделать наш брандмауэр менее
"заметным" для трассировщиков (traceroutes). Программы трассировки любят
за ценную информацию при поиске проблемных участков сети, и ненавидят
за это же, поскольку эта информация может использоваться крякерами в
неблаговидных целях. Пример использования вы можете найти в сценарии
Ttl-inc.txt.
6.5.15. Действие ULOG
Действие ULOG предоставляет возможность журналирования пакетов в пользовательское
пространство. Оно заменяет традиционное действие LOG, базирующееся на системном
журнале. При использовании этого действия, пакет, через сокеты netlink, передается
специальному демону который может выполнять очень детальное журналирование в
различных форматах (обычный текстовый файл, база данных MySQL и пр.) и к тому же
поддерживает возможность добавления надстроек (плагинов) для формирования
различных выходных форматов и обработки сетевых протоколов. Пользовательскую часть
ULOGD вы можете получить на домашней странице ULOGD project page.
Таблица 6-25. Действие ULOG
Ключ
--ulog-nlgroup
Пример
iptables -A INPUT -p TCP --dport 22 -j ULOG --ulog-nlgroup 2
Описание
Ключ --ulog-nlgroup сообщает ULOG в какую группу netlink должен быть
передан пакет. Всего существует 32 группы (от 1 до 32). Если вы желаете
передать пакет в 5-ю группу, то можно просто указать --ulog-nlgroup 5. Поумолчанию используется 1-я группа.
Ключ
--ulog-prefix
Пример
iptables -A INPUT -p TCP --dport 22 -j ULOG --ulog-prefix "SSH connection
attempt: "
Ключ --ulog-prefix имеет тот же смысл, что и аналогичная опция в действии
LOG. Длина строки префикса не должна превышать 32 символа.
Описание
Ключ
--ulog-cprange
Пример
iptables -A INPUT -p TCP --dport 22 -j ULOG --ulog-cprange 100
Описание
Ключ --ulog-cprange определяет, какую долю пакета, в байтах, надо
передавать демону ULOG. Если указать число 100, как показано в примере,
то демону будет передано только 100 байт из пакета, это означает, что
демону будет передан заголовок пакета и некоторая часть области данных
пакета. Если указать 0, то будет передан весь пакет, независимо от его
размера. Значение по-умолчанию равно 0.
Ключ
--ulog-qthreshold
Пример
iptables -A INPUT -p TCP --dport 22 -j ULOG --ulog-qthreshold 10
Ключ --ulog-qthreshold устанавливает величину буфера в области ядра.
Например, если задать величину буфера равной 10, как в примере, то ядро
будет накапливать журналируемые пакеты во внутреннем буфере и
передавать в пользовательское пространство группами по 10 пакетов. Поумолчанию размер буфера равен 1 из-за сохранения обратной совместимости
с ранними версиями ulogd, которые не могли принимать группы пакетов.
Описание
Пример.
Изначально существуют 3 цепочки, через которые пакеты входят на фильтрацию. INPUT для входящих пакетов, OUTPUT для исходящих и FORWARD для проходящих через
данную машину к другой. По мере движения пакета по цепочке выполняется сравнение с
критериями и по результатам сравнения принимается решение о действии. Часть пакетов
отбрасывается (на разных этапах по разным причинам), часть (опять же лишь подходящие
под определенные правила) успешно выходит из фильтра. Оставшиеся (не подошедшие
ни под одно правило) следуют действию по умолчанию для этой цепочки. Обычно таким
действием делают DROP или REJECT, чтобы пропускать лишь пакеты, подошедшие под
вполне определенные правила. В отличие от действия DROP в случае REJECT
отправителю отсылается ICMP пакет с сообщением об ошибке. Это создает
дополнительный трафик, но в соответствующих случаях приводит к тому, что
отправитель перестает посылать нам пакеты (DROP выглядит для отправителя как
таймаут, т.е. пакеты просто уходят и не приходит никакого подтверждения, а при REJECT
он может посчитать, что наш компьютер недоступен или не существует).
Пример файла rc.firewall с типичным набором правил:
#!/bin/sh
#Все сбросили
iptables -F
iptables -X COUNT
#---------------------------------#Правила по умолчаниию
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
#---------------------------------# разрешаем доступ к внутренней петле
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#считаем все входящие пакеты ($$$)
#Создаем цепочку счетчиков
iptables -N COUNT
iptables -A INPUT -i eth0 -j COUNT
#---------------------------------# Разрешаем ходить пакетам icmp
iptables -A INPUT -p ICMP -j ACCEPT
iptables -A OUTPUT -p ICMP -j ACCEPT
#---------------------------------#Разрешаем соединения "запрошенные" с нашего компьютера.
Избавляет от некоторых видов атак
iptables -A INPUT -p TCP -m state --state ESTABLISHED,RELATED -j
ACCEPT
iptables -A INPUT -p UDP -m state --state ESTABLISHED,RELATED -j
ACCEPT
#Разрешаем пользовательские порты
iptables -A OUTPUT -p TCP --sport 32768:65535 -j ACCEPT
iptables -A OUTPUT -p UDP --sport 32768:65535 -j ACCEPT
#---------------------------------#Разрешаем порты SMB для доступа Windows-машин к нашему серверу
# Smb Данныые
iptables -A INPUT -i eth1 -p TCP --dport 137:139 -j ACCEPT
iptables -A INPUT -i eth1 -p UDP --dport 137:139 -j ACCEPT
iptables -A OUTPUT -o eth1 -p TCP --sport 137:139 -j ACCEPT
iptables -A OUTPUT -o eth1 -p UDP --sport 137:139 -j ACCEPT
#Smb служба имен
iptables -A INPUT -i eth1 -p UDP --sport 137 --dport 32768:65535
-j ACCEPT
#---------------------------------#Разрешаем видеть нас как ВЕБ-сервер
iptables -A INPUT -p TCP --dport 80 -j ACCEPT
iptables -A OUTPUT -p TCP --sport 80 -j ACCEPT
#---------------------------------#Разрешаем видеть нас и как FTP -сервер
iptables -A INPUT -p TCP --dport 20:21 -j ACCEPT
iptables -A OUTPUT -p TCP --sport 20:21 -j ACCEPT
#---------------------------------#Разрешаем изнутри забирать почту по протоколу POP3
#iptables -A INPUT -i eth1 -p TCP --dport 110 -j ACCEPT
iptables -A OUTPUT -o eth1 -p TCP --sport 110 -j ACCEPT
#---------------------------------#Разрешаем обмен почтой по протоколу smtp
iptables -A INPUT -p TCP --dport smtp -j ACCEPT
iptables -A OUTPUT -p TCP --sport smtp -j ACCEPT
#---------------------------------#Разрешаем DNS обмен
iptables -A INPUT -p UDP --dport domain -j ACCEPT
iptables -A OUTPUT -p UDP --sport domain -j ACCEPT
#---------------------------------#Разрешаем доступ изнутри к прокси на порт 8080
iptables -A INPUT -i eth1 -p TCP --dport 8080 -j ACCEPT
iptables -A INPUT -i eth1 -p UDP --dport 8080 -j ACCEPT
iptables -A OUTPUT -o eth1 -p TCP --sport 8080 -j ACCEPT
iptables -A OUTPUT -o eth1 -p UDP --sport 8080 -j ACCEPT
#---------------------------------#Секция счетчиков
iptables -A COUNT
# Сколько всего пакетов
iptables -A COUNT -p icmp # Сколько ICMP пакетов
iptables -A COUNT -p tcp --dport smtp # Сколько приняли спама по
почте
iptables -A COUNT -j RETURN
Утилиты.
Для изменения используемого набора правил используется утилита iptables. Все правила
хранятся в памяти ядра и при перезагрузке сбрасываются. По этой причине необходимо
создать файл конфигурации, из которого правила фильтрации будут считываться при
загрузке машины. Обычно это /etc/rc.d/rc.firewall. Это обычный скрипт оболочки, который
вызывает /sbin/iptables с определенными параметрами, соответствующими составленным
правилам. Поэтому в большинстве дистрибутивов для изменения конфигурации iptables
необходимо отредактировать указанный файл и запустить его (этот файл, как правило,
автоматически выполняется при загрузке машины). После чего можно посмотреть
обновленную таблицу правил командой iptables -L.
Формат командной строки утилиты iptables:
iptables [-t table] command [match] [target/jump]
Перечислим несколько правил формирования командной строки:
 Каждая строка, которую вы вставляете в ту или иную цепочку, должна содержать
отдельное правило.
 Нигде не утверждается, что описание действия (target/jump) должно стоять последним
в строке, мы, однако, будем придерживаться именно такой нотации для
удобочитаемости.
 по умолчанию предполагается использование таблицы filter , иначе требуется указать
имя таблицы [-t ].
 за именем таблицы, должна стоять команда. Если спецификатора таблицы нет, то
команда всегда должна стоять первой. Команда определяет действие iptables,
например: вставить правило, или добавить правило в конец цепочки, или удалить
правило и т.п.
 match задает критерии проверки.
 target указывает действие, которое должно быть выполнено при условии выполнения
критериев в правиле.
В состав пакета iptables входят две очень удобные утилиты, особенно если вам
приходится иметь дело с большими наборами правил. Называются они iptables-save и
iptables-restore. Первая из них сохраняет, а вторая восстанавливает наборы правил в/из
файла. По своему формату файл с набором правил похож на обычные файлы сценариев
командной оболочки (shell), в чем вы сможете убедиться чуть ниже.
Один из плюсов использования утилит iptables-save и iptables-restore состоит в высокой
скорости загрузки и сохранения больших наборов правил. Главный недостаток, связанный
с установкой наборов правил из сценариев командной оболочки состоит в том, что
команда iptables копирует набор правил из пространства ядра в пространство
пользователя, вставляет, добавляет или изменяет правило и, наконец, весь набор правил
копируется обратно в пространство ядра. Эта последовательность действий выполняется
для каждого правила, которое вставляется или изменяется в наборе правил.
Эта проблема легко решается с помощью iptables-save и iptables-restore Утилита iptablessave записывает набор правил в обычный текстовый файл в особом формате. Утилита
iptables-restore загружает набор правил из файла. Главное преимущество этих утилит
состоит в том, что они производят сохранение/восстановление всего набора правил за
одно обращение. iptables-save "в один присест" получает из пространства ядра и
записывает в файл весь набор правил, а iptables-restore загружает из файла и
переписывает за одно обращение в пространство ядра набор правил для каждой таблицы.
Или другими словами -- вместо того, чтобы обращаться огромное число раз к ядру для
того чтобы получить набор правил, а затем опять записать его в пространство ядра не
меньшее число раз, можно просто сохранить набор правил в файл, а затем загружать его
из файла, при этом число перемещений наборов в ядро будет зависеть только от числа
используемых таблиц.
ptables-save
Утилита iptables-save, как я уже упоминал, предназначена для сохранения текущего
набора правил в файл, который затем может быть использован утилитой iptables-restore.
Эта команда очень проста в использовании и имеет всего два аргумента.
iptables-save [-c] [-t table]
Первый аргумент -c (допустимо использовать более длинный вариант --counters)
заставляет iptables-save сохранить знчения счетчиков байт и пакетов. Это делает
возможным рестарт брандмауэра без потери счетчиков, которые могут использоваться для
подсчета статистики. По-умолчанию, при запуске без ключа -с, сохранение счетчиков не
производится.
С помощью ключа -t (более длинный вариант --table) можно указать имя таблицы для
сохранения. Если ключ -t не задан, то сохраняются все таблицы.
Строки, начинающиеся с символа #, являются комментариями. Описания цепочек
записываются в формате :<chain-name> <chain-policy> [<packet-counter>:<byte-counter>],
где <chain-name> -- это название цепочки (например PREROUTING), <chain-policy> -политика по-умолчанию (например ACCEPT). Завершают описание цепочки значения
счетчиков пакетов и байт, те самые счетчики, которые вы получите в результате
выполнения команды iptables -L -v. Описание каждой таблицы завершает ключевое слово
COMMIT, которое означает, что в этой точке набор правил для данной таблицы будет
передан в пространство ядра.
Утилита iptables-restore используется для восстановления (загрузки) набора правил,
который ранее был сохранен утилитой iptables-save. Набор правил утилита получает со
стандартного ввода и не может загружать его из файла напрямую. Команда имеет
следующий синтаксис:
iptables-restore [-c] [-n]
Ключ -c (более длинный вариант --counters) заставляет восстанавливать значения
счетчиков.
Указание ключа -n (более длинный вариант --noflush) сообщает iptables-restore о том, что
правила должны быть добавлены к имеющимся. По-умолчанию утилита iptables-restore
(без ключа -n) очистит содержимое таблиц и цепочек перед загрузкой нового набора
правил.
Для загрузки набора правил утилитой iptables-restore из файла можно предложить
несколько вариантов, но наиболее употребимый:
cat /etc/iptables-save | iptables-restore -c
В результате выполнения этой команды содержимое файла /etc/iptables-save будет
прочитано утилитой cat и перенаправленно на стандартный ввод утилиты iptables-restore.
Можно было бы привести еще целый ряд команд, с помощью которых можно
организовать загрузку набора правил из файла, но это выходит за рамки темы, поэтому
оставлю читателю возможность самому найти более удобный для него вариант.
4. Возможности и особенности настройки аппаратных межсетевых экранов фирмы
D-Link
См. файл Firewalls_DFL800-2500.pps
5. Протоколы безопасности
Протоколы безопасности
Протоколами безопасности на транспортном уровне являются Secure Socket Layer (SSL) и
Secure Shell Protocol (SSH), которые обеспечивают безопасную передачу данных между
клиентом и сервером. Оба протокола разработаны рабочей группой IETF по безопасности
транспортного уровня (Transport Layer Security — TLS). Безопасный протокол передачи
гипертекста (S-HTTP) предоставляет надежный механизм web-транзакций. Средство
SOCKS является рамочной структурой, позволяющей приложениям клиент/сервер в
доменах TCP и UDP удобно и безопасно пользоваться услугами межсетевого экрана.
Протокол безопасности IP (IPSec) представляет собой набор стандартов поддержки
целостности и конфиденциальности данных на сетевом уровне (в сетях IP). X.509 — это
стандарт безопасности и аутентификации, который поддерживает структуры безопасности
электронного информационного транспорта. Он определяет структуру данных цифрового
сертификата и решает вопросы обращения общих ключей. Х.509 является важнейшим
компонентом инфраструктуры общих ключей (PKI).
SSL
SSL — это открытый протокол, разработанный компанией Netscape. SSL определяет
механизм поддержки безопасности данных на уровне между протоколами приложений
(такими как Hypertext Transfer Protocol [HTTP], Telnet, Network News Transfer Protocol
[NNTP] или File Transfer Protocol [FTP]) и протоколом TCP/IP. Он поддерживает
шифрование данных, аутентификацию серверов, целостность сообщений и (в качестве
опции) аутентификацию клиентов в канале TCP/IP. SSL был представлен рабочей группе
по безопасности консорциума W3 (W3C) для утверждения в качестве стандартного
средства безопасности Web-браузеров и серверов в сети Интернет.
Основная цель протокола SSL состоит в том, чтобы обеспечить защищенность и
надежность связи между двумя подключенными друг к другу приложениями. Этот
протокол состоит из двух уровней. Нижний уровень, который располагается поверх
надежного транспортного протокола (например, TCP), называется SSL Record Protocol.
SSL Record Protocol используется для встраивания различных протоколов высокого
уровня. Один из таких встроенных протоколов, SSL Handshake Protocol, позволяет серверу
и клиенту аутентифицировать друг друга и согласовывать алгоритм шифрования и
криптографические ключи, прежде чем протокол приложения произведет обмен первыми
битами данных. Одно из преимуществ SSL состоит в том, что он независим от протоколов
приложений. Протокол высокого уровня может совершенно прозрачно располагаться
поверх протокола SSL. Протокол SSL поддерживает безопасность связи, придавая ей
следующие свойства:
• Защищенность связи. После первоначального квитирования связи применяются средства
шифрования и определяется секретный ключ. Для шифрования данных используются
средства симметричной криптографии (например, DES).
• Участник сеанса связи может быть аутентифицирован средствами асимметричной
криптографии (например, RSA, DSS).
• Надежность связи. Транспортные средства проводят проверку целостности сообщений с
помощью зашифрованного кода целостности (MAC). Для вычисления кодов MAC
используются безопасные хэш-функции (SHA, MD5).
Протокол SSL принят только в рамках HTTP. Другие протоколы доказали свою
способность работать с SSL, но используют ее не часто.
SSH
Протокол Secure Shell (SSH) предназначен для защиты удаленного доступа и других
сетевых услуг в незащищенной сети. Он поддерживает безопасный удаленный вход в
сеть, безопасную передачу файлов и безопасную эстафетную передачу сообщений по
протоколам TCP/IP. SSH может автоматически шифровать, аутентифицировать и сжимать
передаваемые данные. В настоящее время SSH достаточно хорошо защищен от
криптоанализа и протокольных атак. Он довольно хорошо работает при отсутствии
глобальной системы управления ключами и инфраструктуры сертификатов и при
необходимости может поддерживать инфраструктуры сертификатов, которые существуют
в настоящий момент (например, DNSSEC, простую инфраструктуру общих ключей
[SPKI], X.509).
Протокол SSH состоит из трех основных компонентов:
1. Протокол транспортного уровня (SSH-TRANS) обеспечивает аутентификацию
сервера, конфиденциальность и целостность соединения. Также может
дополнительно обеспечивать сжатие данных. Протокол транспортного уровня
обычно выполняется поверх соединения TCP, но может использоваться и поверх
любого другого надежного соединения.
2. Протокол аутентификации пользователя (SSH-USERAUTH) аутентифицирует
клиента для сервера. Он выполняется поверх протокола транспортного уровня.
3. Протокол соединения (SSH-CONN), мультиплексирует несколько логических
каналов в один зашифрованный туннель. Протокол выполняется поверх протокола
аутентификации пользователя.
Все сообщения шифруются с помощью IDEA или одного из нескольких других
шифровальных средств (тройного DES с тремя ключами, DES, RC4-128, Blowfish). Обмен
ключами шифрования происходит с помощью RSA, а данные, использованные при этом
обмене, уничтожаются каждый час (ключи нигде не сохраняются). Каждый центральный
компьютер имеет ключ RSA, который используется для аутентификации центрального
компьютера при использовании специальной технологии аутентификации RSA. Для
защиты от подслушивания (спуфинга) сети IP используется шифрование; для защиты от
DNS и спуфинга маршрутизации используется аутентификация с помощью общих
ключей. Кроме того, ключи RSA используются для аутентификации центральных
компьютеров.
Каждый сервер должен иметь ключ хоста. Серверы могут иметь несколько ключей хоста,
используемых различными алгоритмами. Несколько серверов могут разделять один ключ
хоста. Каждый сервер должен иметь, по крайней мере, один ключ для каждого
обязательного алгоритма открытого ключа.
С помощью ключа сервера при обмене ключа можно проверить, действительно ли клиент
общается с нужным сервером. Для того, чтобы это было возможно, клиент должен
предварительно знать об открытом ключе сервера.
Могут использоваться две различные модели:
1. Клиент имеет локальную базу данных, связывающую каждое имя сервера с
соответствующим открытым ключом. Этот метод не требует централизованной
административной инфраструктуры и трехсторонней координации. В то же время,
такую базу данных тяжело поддерживать при большом количестве клиентов и
серверов, с которыми они должны взаимодействовать.
2. Взаимосвязь имя сервера – ключ проверяется некоторым доверенным
сертификационным органом – СА. Клиент знает только ключ корневого CA и
может проверить достоверность всех ключей серверов, сертифицированных этими
СА.
Недостатком протоколов безопасности, действующих на уровне сессий, является их
зависимость от инструкций протокола транспортного уровня. В случае SSL это означает,
что атака на TCP может быстро прервать сессию SSL и потребовать формирования новой
сессии, в то время как TCP будет считать, что все идет нормально.
S-HTTP
S-HTTP представляет собой безопасный протокол связи, ориентированный на сообщения
и разработанный для использования в сочетании с HTTP. Он предназначен для
совместной работы с моделью сообщений HTTP и легкой интеграции с приложениями
HTTP. Этот протокол предоставляет клиенту и серверу одинаковые возможности (он
одинаково относится к их запросам и ответам, а также к предпочтениям обеих сторон).
При этом сохраняется модель транзакций и эксплуатационные характеристики HTTP.
Клиенты и серверы S-HTTP допускают использование нескольких стандартных форматов
криптографических сообщений. Клиенты, поддерживающие S-HTTP, могут устанавливать
связь с серверами S-HTTP и наоборот, эти серверы могут связываться с клиентами SHTTP, хотя в процессе подобных транзакций функции безопасности S-HTTP
использоваться скорее всего не будут. S-HTTP не требует от клиента сертификатов общих
ключей (или самих общих ключей), потому что этот протокол поддерживает только
операции с симметричными шифровальными ключами. Хотя S-HTTP может пользоваться
преимуществами глобальных сертификационных инфраструктур, для его работы такие
структуры не обязательны.
Протокол S-HTTP поддерживает безопасные сквозные (end-to-end) транзакции, что
выгодно отличает его от базовых механизмов аутентификации HTTP, которые требуют,
чтобы клиент попытался получить доступ и получил отказ, и лишь затем включают
механизм безопасности. Клиенты могут быть настроены таким образом, чтобы любая их
транзакция автоматически защищалась (обычно с помощью специальной метки в
заголовке сообщения). Такая настройка, к примеру, часто используется для передачи
заполненных бланков.
S-HTTP поддерживает высокий уровень гибкости криптографических алгоритмов,
режимов и параметров. Для того, чтобы клиенты и серверы смогли выбрать единый
режим транзакции (так, например, им нужно решить, будет ли запрос только шифроваться
или только подписываться или и шифроваться, и подписываться одновременно; такое же
решение нужно принять и для ответов), используется механизм согласования опций,
криптографических алгоритмов (RSA или DSS для подписи, DES для шифрования и т.д.),
и выбора сертификатов. S-HTTP поддерживает криптографию общих ключей и функцию
цифровой подписи и обеспечивает конфиденциальность данных.
SOCKS
SOCKS разработан для того, чтобы дать возможность приложениям клиент/сервер в
доменах TCP и UDP удобно и безопасно пользоваться услугами межсетевого экрана. Он
дает пользователям возможность преодолевать межсетевой экран организации и получать
доступ к ресурсам, расположенным в сети Интернет. SOCKS является «посредником
уровня приложений»: он взаимодействует с общими сетевыми средствами (например,
Telnet и браузер Netscape) и с помощью центрального сервера (прокси-сервера) от имени
компьютера устанавливает связь с другими центральными компьютерами.
SOCKS версия 4 решает вопрос незащищенного пересечения межсетевых экранов
приложениями клиент/сервер, основанными на протоколе TCP, включая Telnet, FTP и
популярные информационные протоколы, такие как HTTP, Wide Area Information Server
(WAIS) и GOPHER. SOCKS версия 5, RFC 1928, является дальнейшим расширением
четвертой версии SOCKS. Он включает в себя UDP, расширяет общую рамочную структуру, придавая ей возможность использования мощных обобщенных схем аутентификации,
и расширяет систему адресации, включая в нее имя домена и адреса IP v6.
В настоящее время предлагается создать механизм управления входящими и исходящими
многоадресными сообщениями IP, которые проходят через межсетевой экран. Это
достигается определением расширений для существующего протокола SOCKS V.5, что
создает основу для аутентифицированного перехода межсетевого экрана одноадресным
пользовательским трафиком TCP и UDP. Однако ввиду того, что поддержка UDP в
текущей версии SOCKS V.5 имеет проблемы с масштабируемостью и другие недостатки
(и их обязательно нужно разрешить, прежде чем переходить к многоадресной передаче),
расширения определяются двояко: как базовые расширения UDP и как многоадресные
расширения UDP.
Функционирование SOCKS заключается в замене стандартных сетевых системных
вызовов в приложении их специальными версиями. Эти новые системные вызовы
устанавливают связь с прокси-сервером SOCKS (который конфигурируется самим
пользователем в приложении или системным файлом конфигурации), подключаясь к
хорошо известному порту (обычно это порт 1080/ТСР). После установления связи с
сервером SOCKS приложение отправляет серверу имя машины и номер порта, к которому
хочет подключиться пользователь. Сервер SOCKS реально устанавливает связь с
удаленным центральным компьютером, а затем прозрачно передает данные между
приложением и удаленной машиной.
Трудность с использованием SOCKS состоит в том, что кто-то должен проводить работу
по замене сетевых системных вызовов версиями SOCKS (этот процесс обычно называется
«SOCKS-ификацией» приложения). Большинство обычных сетевых приложений (Telnet,
FTP, finger, whois) уже SOCKS-ифицированы, и многие производители включают
поддержку SOCKS в свои коммерческие приложения.
IPSec
Безопасный протокол IP (IPSec) представляет собой набор стандартов, используемых для
защиты данных и для аутентификации на уровне IP. Текущие стандарты IPSec включают
независимые от алгоритмов базовые спецификации, которые являются стандартными
RFC.
IPsec предназначен для безопасного взаимодействия на основе криптографии для IPv4 и
IPv6. Набор сервисов безопасности включает управление доступом, целостность
соединения, аутентификацию исходных данных, защиту от replay-атак (целостность
последовательности), конфиденциальность (шифрование) и конфиденциальный поток
трафика. Эти сервисы предоставляются на уровне IP, обеспечивая защиту для IP и/или
протоколов более высокого уровня.
IPsec поддерживает две формы целостности: целостность соединения и частичную
целостность последовательности. Целостность соединения является сервисом
безопасности, который определяет модификацию конкретной IP датаграммы,
безотносительно последовательности датаграмм в потоке трафика. Частичная целостность
последовательности является anti-reply сервисом, с помощью которого определяется
получение дубликатов IP датаграм.
IPsec обеспечивает сервисы безопасности на IP-уровне, выбирая нужные протоколы
безопасности, определяя алгоритмы, используемые сервисами, и предоставляя все
криптографические ключи требуемым сервисам. IPsec может использоваться для защиты
одного или нескольких «путей» между парой хостов, между парой шлюзов безопасности
или между шлюзом безопасности и хостом.
Как работает IPsec
IPsec использует два протокола для обеспечения безопасности трафика – Authentication
Header (AH) и Encapsulating Security Payload (ESP).


Authentication Header (AH) обеспечивает целостность соединения, аутентификацию
исходных данных и дополнительно может обеспечивать anti-replay сервис.
Encapsulating Security Payload (ESP) протокол может обеспечивать
конфиденциальность (шифрование) трафика. ESP также может обеспечивать
целостность соединения, аутентификацию исходных данных и дополнительно antireplay сервис. Целостность обеспечивается только для протоколов более высокого
уровня. Хотя бы один из этих сервисов должен быть задействован при
использовании ESP.
Эти протоколы могут применяться как по отдельности так и в комбинации друг с другом
для обеспечения необходимого набора сервисов безопасности в IPv4 и IPv6. Каждый
протокол поддерживает два режима использования: режим транспорта и режим
туннелирования.
IPsec позволяет системному администратору управлять детализацией, с которой
предоставляется сервис безопасности. Например, можно создать единственный
зашифрованный туннель между двумя безопасными шлюзами, или для каждого ТСР
соединения может быть создан зашифрованный туннель между парой хостов. IPsec
позволяет указывать следующие параметры:



Какие сервисы используются и в какой комбинации.
Необходимый уровень детализации применяемой защиты.
Алгоритмы, используемые для обеспечения безопасности на основе криптографии.
Протокол IPSec включает криптографические методы, удовлетворяющие потребности
управления ключами на сетевом уровне безопасности. Протокол управления ключами
Ассоциации безопасности Интернет (Internet Security Association Key Management Protocol
— ISAKMP) создает рамочную структуру для управления ключами в сети Интернет и
предоставляет конкретную протокольную поддержку для согласования атрибутов
безопасности. Само по себе это не создает ключей сессии, однако эта процедура может
использоваться с разными протоколами, создающими такие ключи.
Протокол определения ключей Oakley Key Determination Protocol пользуется гибридным
методом Диффи-Хеллмана, чтобы создать ключи сессии Интернет для центральных
компьютеров и маршрутизаторов. Протокол Oakley решает важную задачу обеспечения
полной безопасности эстафетной передачи данных. Он основан на криптографических
методах. Полная защита эстафетной передачи означает, что если хотя бы один ключ
раскрыт, раскрыты будут только те данные, которые зашифрованы этим ключом. Что же
касается данных, зашифрованных последующими ключами, они останутся в полной
безопасности.
Протоколы ISAKMP и Oakley были совмещены в рамках гибридного протокола IKE —
Internet Key Exchange. Протокол IKE, включающий ISAKMP и Oakley, использует
рамочную структуру ISAKMP для поддержки подмножества режимов обмена ключами
Oakley. Новый протокол обмена ключами обеспечивает (в виде опции) полную защиту
эстафетной передачи данных, полную защиту ассоциаций, согласования атрибутов, а
также поддерживает методы аутентификации, допускающие отказ от авторства и не допускающие такого отказа. Этот протокол может, к примеру, использоваться для создания
виртуальных частных сетей (VPN) и для того, чтобы предоставить пользователям,
находящимся в удаленных точках (и пользующимся динамически распределяемыми
адресами IP), доступ к защищенной сети.
Стандарт IPSec позволит поддержать на уровне IP потоки безопасных и аутентичных
данных между взаимодействующими устройствами, включая центральные компьютеры,
межсетевые экраны (сетевые фильтры) различных типов и маршрутизаторы. Прежде, чем
пройти межсетевой экран предприятия, весь трафик, идущий от удаленного
маршрутизатора, должен быть аутентифицирован. Маршрутизатор и межсетевой экран
должны согласовать «ассоциацию безопасности» (SA), то есть прийти к согласию
относительно политики в области безопасности. Понятие «Безопасные Ассоциации»
(Security Association – SA) является фундаментальным в IPsec. SA включает:
• алгоритм шифрования;
• алгоритм аутентификации;
• общий ключ сессии;
• срок действия ключа.
SA есть совокупность параметров соединения, которые дают возможность сервисам
обеспечивать безопасный трафик. SA определяет использование AH или ESP. Если к
потоку трафика применяются оба протокола, AH и ESP, то создаются две SA. При
двунаправленном соединении между двумя хостами или между двумя шлюзами
безопасности требуется два SA (по одному на каждое направление).
SA однозначно определяется тройкой, состоящей из Security Parameter Index (SPI), IP
Destination Address (адресом назначения) и идентификатора протокола безопасности (AH
или ESP). В принципе адрес назначения может быть единственным адресом,
широковещательным (broadcast) адресом или групповым (multicast) адресом. Однако
механизм управления SA в настоящее время определяется только для единственной SA.
Следовательно, SA будут описаны в контексте point-to-point соединения, даже если
концепция также применяется в случае point-to-multipoint.
Определены два режима SA: режим транспорта и режим туннелирования. Транспортный
режим SA обеспечивает безопасную связь между двумя хостами. В IPv4 заголовок
протокола безопасности транспортного режима появляется сразу после IP заголовка и
всех опций и перед любыми протоколами более высокого уровня (ТСР или UDP). В
случае ESP транспортный режим SA обеспечивает сервисы безопасности только для
протоколов более высокого уровня, но не для IP-заголовка. В случае AH защита также
распространяется на отдельные части IP-заголовка.
Другим режимом SA является режим туннелирования. Если хотя бы одним из концов
соединения является шлюз безопасности, то SA обязательно должна выполняться в
туннелирующем режиме. SA между двумя шлюзами безопасности всегда находится в
туннелирующем режиме, так же, как и SA между хостом и шлюзом безопасности.
Заметим, что когда трафик предназначен для шлюза безопасности, например, в случае
SNMP-команд, шлюз безопасности рассматривается как хост, и допустим транспортный
режим. Два хоста могут при желании так же устанавливать туннелирующий режим.
B туннелирующем режиме SA существует «внешний» IP заголовок, который определяет
пункт назначения IPsec, и «внутренний» IP заголовок, который определяет конечный
пункт назначения для пакета. Заголовок протокола безопасности расположен после
внешнего IP заголовка и перед внутренним IP заголовком. Если AH используется в
туннелирующем режиме, части внешнего IP заголовка являются защищенными, как и весь
туннелируемый IP пакет, т.е. все внутренние заголовки защищены, как и все протоколы
более высокого уровня. Если применяется ESP, зашита обеспечивается только для
туннелируемого пакета, а не для внешнего IP-заголовка.
Итак:
1. Хост может поддерживать оба режима, как транспортный, так и туннелирующий.
2. Шлюз безопасности может использовать только туннелирующий режим. Если он
поддерживает транспортный режим, то этот режим должен использоваться только
тогда, когда безопасный шлюз является хостом, например, для управления сетью.
Существуют две БД: БД Политики Безопасности (SPD) и БД Безопасной Ассоциации
(SAD). Первая описывает политики, которые определяют характер обработки всего IP
трафика. Вторая БД содержит параметры, которые связаны с каждой активной безопасной
ассоциацией. Каждый сетевой интерфейс, для которого необходима обработка IPsec,
требует определения баз данных для входящего и исходящего трафика.
БД политики безопасности (SPD)
SPD должна рассматриваться при обработке всего трафика (входящего и исходящего),
включая не-IPsec трафик. Для того чтобы это поддерживать, SPD требует различных
записей для входящего и выходящего трафика. Можно считать, что это отдельные SPD
(входящая и выходящая). Кроме того, отдельная SPD должна существовать для каждого
IPsec-интерфейса.
SPD должна распознавать трафик, который разрешен защитой IPsec, и трафик, которому
разрешено проходить IPsec без обработки. Для любой выходящей или входящей
датаграммы существует три возможных способа обработки: отбросить датаграмму,
обойти IPsec или применить IPsec. Первый вариант означает, что трафик не разрешен для
хоста, не может пересекать шлюз безопасности или не может быть доставлен на уровень
приложения. Второй вариант означает, что трафику разрешено проходить без
дополнительной IPsec защиты. Третий вариант означает, что к трафику применяется IPsec
защита и для такого трафика SPD должна специфицировать применяемые сервисы
безопасности, применяемые протоколы, используемые алгоритмы и т.д.
Каждая реализация IPsec должна иметь программный интерфейс, который позволяет
системному администратору управлять SPD. SPD должна определять, какие действия
должны быть выполнены в том или ином случае. Таким образом, программный интерфейс
должен позволять специфицировать обработку, применяемую к любому пакету,
входящему или выходящему из системы. Интерфейс управления для SPD должен
допускать создание последовательности записей, и должна поддерживаться
упорядоченность этих записей. Возможно использование символа «*» в различных полях.
SPD содержит упорядоченный список записей политики. Каждая запись политики
является ключом для одного или более селекторов, которые определяют множество IP
трафика, соответствующего данной записи политики. Это определяет детализированность
политики и создаваемых SA. Каждая запись включает индикатор, показывающий, что
трафик, соответствующий данной политике, должен быть пропущен, отброшен или
обработан IPsec. Если применяется обработка IPsec, запись содержит описание SA (или
узла SA), список применяемых протоколов, режимов и алгоритмов, включая любые
дополнительные требования. Например, запись может указывать, что трафик защищается
ESP в транспортном режиме, используя 3DES-CBC с явным IV, и вложен в AH в
туннелирующем режиме с помощью НМАС /SHA-1.
База данных Безопасной Ассоциации (SAD)
В IPsec существует База Данных Безопасных Ассоциаций, в которой каждая запись
определяет параметры, связанные с конкретной SA. Соответственно, каждая SA имеет
запись в SAD. Для выходящей обработки записи ссылаются на записи в SPD. Для
входящей обработки каждая запись в SAD индексируется IP адресом назначения, типом
протокола IPsec и SPI.
Ассоциация SA является однонаправленной, поэтому для двусторонней связи нужно
устанавливать две SA, по одной для каждого направления. Как правило, в обоих случаях
политика остается той же самой, но существует возможность и для асимметричной
политики в разных направлениях. Согласование SA проводится через ISAKMP. Кроме
того, SA могут определяться вручную. На рисунке 1 показан процесс согласования через
ISAKMP, который происходит, когда на маршрутизатор поступает пакет, предназначенный для межсетевого экрана предприятия.
Рис.1. Согласование SA через ISAKMP.
После согласования SA принимается решение о том, следует ли использовать средства
аутентификации, конфиденциальности и целостности данных или ограничиться только
аутентификацией. Если использоваться будут только средства аутентификации, текущий
стандарт предполагает применение хэш-функции, а точнее алгоритма не ниже MD5 с 128разрядными ключами. Заголовок пакета и данные пропускаются через хэш-функцию, и
результаты этого вычисления вводятся в специальное поле заголовка АН, как показано на
рисунке 2.
Новый пакет с аутентификационным заголовком, расположенным между заголовком IP и
данными, отправляется через маршрутизатор в пункт назначения. Когда этот пакет
попадает на межсетевой экран, который проверяет его аутентичность, вычисляя хэш с
помощью хэш-функции, указанной в SA, обе стороны должны использовать одни и те же
хэш-функции. Как показано на рисунке 3, межсетевой экран сравнивает вычисленный им
хэш с параметрами, указанными в соответствующем поле АН. Если эти величины
совпадают, аутентичность и целостность данных считается доказанной (если пакет
передан из удаленной точки и при передаче не был искажен ни один бит).
Рис.2. Создание нового аутентификационного заголовка IP.
Рис.3. проверка аутентичности и целостности данных.
Если стороны пожелают использовать средства поддержки конфиденциальности, SA
указывает, что весь трафик, поступающий из удаленного маршрутизатора на межсетевой
экран предприятия, должен аутентифицироваться и шифроваться. В противном случае
межсетевой экран его не пропустит. ESP поддерживает аутентификацию, целостность и
конфиденциальность данных и работает в двух режимах: туннельном и транспортном, как
показано на рисунках 4 и 5.
Рис.4. Туннельный режим ESP.
Рис.5. Транспортный режим ESP.
В туннельном режиме вся датаграмма IP, заголовок IP и данные встраиваются в заголовок
ESP. В транспортном режиме шифруются только данные, а заголовок IP передается в
незашифрованном виде. Современные стандарты требуют использования DES в режиме
цепочки зашифрованных блоков (СВС).
Преимущества поддержки безопасности на сетевом уровне с помощью IPSec включают:
§ поддержку совершенно немодифицированных конечных систем, хотя в этом случае
шифрование нельзя назвать в полном смысле слова сквозным (end-to-end);
§ частичную поддержку виртуальных частных сетей (VPN) в незащищенных сетях;
§ поддержку транспортных протоколов, иных, чем TCP (например, UDP);
§ защиту заголовков транспортного уровня от перехвата и, следовательно, более
надежную защиту от анализа трафика;
§ при использовании АН и средств обнаружения повторяющихся операций
обеспечивается защита от атак типа «отказ от обслуживания», основанных на
«затоплении» систем ненужной информацией (например, от атак TCP SYN).
Х.509
Многие протоколы и приложения, которые пользуются услугами Интернет, применяют в
целях безопасности технологию общих ключей. Для безопасного управления общими
ключами в среде широкораспределенных пользователей или систем им необходим PKI.
Стандарт Х.509 определяет форматы данных и процедуры распределения общих ключей с
помощью сертификатов с цифровыми подписями, которые проставляются
сертификационными органами (СА). RFC 1422 создает основу для PKI на базе Х.509, что
позволяет удовлетворить потребности электронной почты с повышенным уровнем
защищенности, передаваемой через Интернет (РЕМ). В действующих стандартах
определен сертификат Х.509 версии 3 и список отзыва сертификатов (CRL) версии 2.
Для технологии общих ключей необходимо, чтобы пользователь общего ключа был
уверен, что этот ключ принадлежит именно тому удаленному субъекту (пользователю или
системе), который будет использовать средства шифрования или цифровой подписи.
Такую уверенность дают сертификаты общих ключей, то есть структуры данных, которые
связывают величины общих ключей с субъектами. Эта связь достигается цифровой
подписью доверенного СА под каждым сертификатом. Сертификат имеет ограниченный
срок действия, указанный в его подписанном содержании. Поскольку пользователь
сертификата может самостоятельно проверить его подпись и срок действия, сертификаты
могут распространяться через незащищенные каналы связи и серверные системы, а также
храниться в кэш-памяти незащищенных пользовательских систем. Содержание
сертификата должно быть одинаковым в пределах всего PKI. В настоящее время в этой
области предлагается общий стандарт для Интернет с использованием формата Х.509 v3
(рис.6).
Рис.6. Формат сертификата X.509 v3.
Каждый сертификат состоит из трех основных полей: текста сертификата, алгоритма
подписи и самой подписи. В тексте сертификата указывается номер версии, серийный
номер, имена эмитента и субъекта, общий ключ для субъекта, срок действия (дата и время
начала и окончания действия сертификата). Иногда в этом тексте содержится
дополнительная опционная информация, которую помещают в уникальные поля,
связывающие пользователей или общие ключи с дополнительными атрибутами. Алгоритм
подписи — это алгоритм, который использует СА для подписи сертификата. Подпись
создается пропусканием текста сертификата через одностороннюю хэш-функцию.
Величина, получаемая на выходе хэш-функции, зашифровывается частным ключом СА.
Результат этого шифрования и является цифровой подписью (рис.7).
Рис.7. Создание цифровой подписи для сертификата X.509 v3.
При выдаче сертификата подразумевается, что он будет действовать в течение всего
указанного срока. Однако могут возникнуть обстоятельства, требующие досрочного
прекращения действия сертификата. Эти обстоятельства могут быть связаны с
изменением имени, изменением ассоциации между субъектом и СА (если, например,
сотрудник уходит из организации), а также с раскрытием или угрозой раскрытия
соответствующего частного ключа. В этих случаях СА должен отозвать сертификат.
CRL представляет собой список отозванных сертификатов с указанием времени. Он
подписывается СА и свободно распространяется через общедоступный репозиторий. В
списке CRL каждый отозванный сертификат опознается по своему серийному номеру.
Когда у какой-то системы возникает необходимость в использовании сертификата
(например, для проверки цифровой подписи удаленного пользователя), эта система не
только проверяет подпись сертификата и срок действия, но и просматривает последний из
доступных списков CRL, проверяя, не отозван ли этот сертификат. Значение термина
«последний из доступных» зависит от местной политики в области безопасности, но
обычно здесь имеется в виду самый последний список CRL. СА составляет новые списки
CRL на регулярной основе с определенной периодичностью (например, каждый час,
каждый день или каждую неделю). Отозванные сертификаты немедленно вносятся в
список CRL. Записи об отозванных сертификатах удаляются из списка в момент
истечения официального срока действия сертификатов.
На рисунке 8 показан пример связи между системами и единым СА при помощи
цифровых сертификатов.
Рис.8. Передача цифрового сертификата.
Оба маршрутизатора и СА имеют свои пары общих/частных ключей. Вначале СА должен
передать обоим маршрутизаторам по защищенным каналам сертификат Х.509 v3. Кроме
того, оба маршрутизатора должны получить по защищенным каналам копию общего
ключа СА. После этого, если маршрутизатор 1 имеет трафик для отправки
маршрутизатору 2 и хочет передать этот трафик аутентичным и конфиденциальным
способом, он должен предпринять следующие шаги:
1. Маршрутизатор 1 направляет запрос в СА для получения общего ключа
маршрутизатора 2.
2. СА отправляет ему сертификат маршрутизатора 2, подписанный своим частным
ключом.
3. Маршрутизатор 1 проверяет подпись общим ключом СА и убеждается в аутентичности
общего ключа маршрутизатора 2.
4. Маршрутизатор 2 направляет запрос в СА для получения общего ключа
маршрутизатора 1.
5. СА отправляет ему сертификат маршрутизатора 1, подписанный своим частным
ключом.
6. Маршрутизатор 2 проверяет подпись общим ключом СА и убеждается в аутентичности
общего ключа маршрутизатора 1.
Теперь, когда оба маршрутизатора обменялись своими общими ключами, они могут
пользоваться средствами шифрования и с помощью общих ключей отправлять друг другу
аутентичные конфиденциальные данные. Для получения общего секретного ключа
обычно используется метод Диффи-Хеллмана, поскольку общий секретный ключ, как
правило, применяется для шифрования больших объемов данных.
Технологии удаленного доступа к виртуальным частным сетям
Виртуальные частные сети с удаленным доступом (Virtual Private Dialup Networks —
VPDN) позволяют крупным компаниям расширять свои частные сети, используя линии
удаленной связи. Новые технологии снимают проблему высокой стоимости
междугородней или международной связи и проблему низкой защищенности общих
телефонных линий и каналов Интернет, через которые удаленный пользователь получает
доступ к корпоративной сети. Новые технологии предоставляют удаленным офисам и
пользователям безопасный доступ к инфраструктуре предприятия через местное
подключение к сети Интернет. В настоящее время для этого используются три протокола:
протокол эстафетной передачи на втором уровне (Layer 2 Forwarding — L2F), сквозной
туннельный протокол (Point-to-Point Tunneling Protocol — РРТР) и туннельный протокол
второго уровня (Layer 2 Tunneling Protocol — L2TP).
L2F
Протокол эстафетной передачи на втором уровне (Layer 2 Forwarding — L2F) был
разработан компанией Cisco Systems. Он обеспечивает туннелирование протоколов
канального уровня (то есть фреймов High-Level Data Link Control [HDLC], async HDLC
или Serial Line Internet Protocol [SLIP]) с использованием протоколов более высокого
уровня, например, IP. С помощью таких туннелей можно разделить местоположение
сервера удаленного доступа, к которому подключается пользователь, используя местные
коммутируемые линии связи, и точки, где происходит непосредственная обработка
протокола удаленного доступа (SLIP, PPP), и пользователь получает доступ в сеть. Эти
туннели дают возможность использовать приложения, требующие удаленного доступа с
частными адресами IP, IPX и AppleTalk через протокол SLIP/PPP по существующей
инфраструктуре Интернет. Поддержка таких многопротокольных приложений
виртуального удаленного доступа очень выгодна конечным пользователям и независимым
поставщикам услуг, поскольку позволяет разделить на всех расходы на средства доступа и
базовую инфраструктуру и дает возможность осуществлять доступ через местные линии
связи. Кроме того, такой подход защищает инвестиции, сделанные в существующие
приложения, работающие не по протоколу IP, предоставляя защищенный доступ к ним и в
то же время поддерживая инфраструктуру доступа к Интернет.
РРТР
Сквозной туннельный протокол Point-to-Point Tunneling Protocol (РРТР) создан
корпорацией Microsoft. Он никак не меняет протокол РРР, но предоставляет для него
новое транспортное средство. В рамках этого протокола определяется архитектура
клиент/сервер, предназначенная для разделения функций, которые существуют в текущих
NAS, и для поддержки виртуальных частных сетей (VPN). Сервер сети РРТР (PNS)
должен работать под управлением операционной системы общего назначения, а клиент,
который называется концентратором доступа к РРТР (РАС), работает на платформе
удаленного доступа. РРТР определяет протокол управления вызовами, который позволяет
серверу управлять удаленным коммутируемым доступом через телефонные сети общего
пользования (PSTN) или цифровые каналы ISDN или инициализировать исходящие
коммутируемые соединения. РРТР использует механизм общей маршрутной
инкапсуляции (GRE) для передачи пакетов РРР, обеспечивая при этом контроль потоков и
сетевых заторов. Безопасность данных в РРТР может обеспечиваться при помощи
протокола IPSec.
L2TP
Протоколы L2F и РРТР имеют сходную функциональность. Компании Cisco и Microsoft
согласились вместе (в рамках IETF) разработать единый стандартный протокол, который
получил название туннельного протокола второго уровня (Layer 2 Tunneling Protocol —
L2TP).
Download