Крайне важно понять, что безопасность - это не продукт, который можно купить в магазине и быть уверенным в собственной защищенности. "Безопасность" - особая комбинация как технических, так и административных мер. Административные меры также включают в себя не только бумаги, рекомендации, инструкции, но и людей. Невозможно считать свою сеть "безопасной", если вы не доверяете людям, работающим с этой сетью.
Идеальная безопасность - недостижимый миф, который могут реализовать, в лучшем случае, только несколько профессионалов.
Есть один фактор, который невозможно преодолеть на пути к идеальной безопасности - это человек.
ЧАСТЬ 1. ОСНОВНЫЕ ЦЕЛИ СЕТЕВОЙ БЕЗОПАСНОСТИ
Цели сетевой безопасности могут меняться в зависимости от ситуации, но основных целей обычно три:
- Целостность данных.
- Конфиденциальность данных.
- Доступность данных.
Рассмотрим более подробно каждую из них.
Целостность данных
Одна из основных целей сетевой безопасности - гарантированность того, чтобы данные не были изменены, подменены или уничтожены. Целостность данных должна гарантировать их сохранность как в случае злонамеренных действий, так и случайностей. Обеспечение целостности данных является обычно одной из самых сложных задач сетевой безопасности.
Конфиденциальность данных
Второй главной целью сетевой безопасности является обеспечение конфиденциальности данных. Не все данные можно относить к конфиденциальной информации. Существует достаточно большое количество информации, которая должна быть доступна всем. Но даже в этом случае обеспечение целостности данных, особенно открытых, является основной задачей. К конфиденциальной информации можно отнести следующие данные:
- Личная информация пользователей.
- Учетные записи (имена и пароли).
- Данные о кредитных картах.
- Данные о разработках и различные внутренние документы.
- Бухгалтерская информация.
Доступность данных
Третьей целью безопасности данных является их доступность. Бесполезно говорить о безопасности данных, если пользователь не может работать с ними из-за их недоступности. Вот приблизительный список ресурсов, которые обычно должны быть "доступны" в локальной сети:
- Принтеры.
- Серверы.
- Рабочие станции.
- Данные пользователей.
- Любые критические данные, необходимые для работы.
Рассмотрим угрозы и препятствия, стоящие на пути к безопасности сети. Все их можно разделить на две большие группы: технические угрозы и человеческий фактор.
Технические угрозы:
- Ошибки в программном обеспечении.
- Различные DoS- и DDoS-атаки.
- Компьютерные вирусы, черви, троянские кони.
- Анализаторы протоколов и прослушивающие программы ("снифферы").
- Технические средства съема информации.
Ошибки в программном обеcпечении
Самое узкое место любой сети. Программное обеспечение серверов, рабочих станций, маршрутизаторов и т. д. написано людьми, следовательно, оно практически всегда содержит ошибки. Чем выше сложность подобного ПО, тем больше вероятность обнаружения в нем ошибок и уязвимостей. Большинство из них не представляет никакой опасности, некоторые же могут привести к трагическим последствиям, таким, как получение злоумышленником контроля над сервером, неработоспособность сервера, несанкционированное использование ресурсов (хранение ненужных данных на сервере, использование в качестве плацдарма для атаки и т.п.). Большинство таких уязвимостей устраняется с помощью пакетов обновлений, регулярно выпускаемых производителем ПО. Своевременная установка таких обновлений является необходимым условием безопасности сети.
DoS- и DDoS-атаки
Denial Of Service (отказ в обслуживании) - особый тип атак, направленный на выведение сети или сервера из работоспособного состояния. При DoS-атаках могут использоваться ошибки в программном обеспечении или легитимные операции, но в больших масштабах (например, посылка огромного количества электронной почты). Новый тип атак DDoS (Distributed Denial Of Service) отличается от предыдущего наличием огромного количества компьютеров, расположенных в большой географической зоне. Такие атаки просто перегружают канал трафиком и мешают прохождению, а зачастую и полностью блокируют передачу по нему полезной информации. Особенно актуально это для компаний, занимающихся каким-либо online-бизнесом, например, торговлей через Internet.
Компьютерные вирусы, троянские кони
Вирусы - старая категория опасностей, которая в последнее время в чистом виде практически не встречается. В связи с активным применением сетевых технологий для передачи данных вирусы все более тесно интегрируются с троянскими компонентами и сетевыми червями. В настоящее время компьютерный вирус использует для своего распространения либо электронную почту, либо уязвимости в ПО. А часто и то, и другое. Теперь на первое место вместо деструктивных функций вышли функции удаленного управления, похищения информации и использования зараженной системы в качестве плацдарма для дальнейшего распространения. Все чаще зараженная машина становится активным участником DDoS-атак. Методов борьбы достаточно много, одним из них является все та же своевременная установка обновлений.
Анализаторы протоколов и "снифферы"
В эту группу входят средства перехвата передаваемых по сети данных. Такие средства могут быть как аппаратными, так и программными. Обычно данные передаются по сети в открытом виде, что позволяет злоумышленнику внутри локальной сети перехватить их. Некоторые протоколы работы с сетью (POPS, FTP) не используют шифрование паролей, что позволяет злоумышленнику перехватить их и использовать самому. При передаче данных по глобальным сетям эта проблема встает наиболее остро. По возможности следует ограничить доступ к сети неавторизированным пользователям и случайным людям.
Технические средства съема информации
Сюда можно отнести такие средства, как клавиатурные жучки, различные мини-камеры, звукозаписывающие устройства и т.д. Данная группа используется в повседневной жизни намного реже вышеперечисленных, так как, кроме наличия спецтехники, требует доступа к сети и ее составляющим.
Человеческий фактор:
- Уволенные или недовольные сотрудники.
- Промышленный шпионаж.
- Халатность.
- Низкая квалификация.
Уволенные и недовольные сотрудники
Данная группа людей наиболее опасна, так как многие из работающих сотрудников могут иметь разрешенный доступ к конфиденциальной информации. Особенную группу составляют системные администраторы, зачаcтую недовольные своим материальным положением или несогласные с увольнением, они оставляют "черные ходы" для последующей возможности злонамеренного использования ресурсов, похищения конфиденциальной информации и т. д.
Промышленный шпионаж
Это самая сложная категория. Если ваши данные интересны кому-либо, то этот кто-то найдет способы достать их. Взлом хорошо защищенной сети - не самый простой вариант. Очень может статься, что уборщица "тетя Глаша", моющая под столом и ругающаяся на непонятный ящик с проводами, может оказаться хакером весьма высокого класса.
Халатность
Самая обширная категория злоупотреблений: начиная с не установленных вовремя обновлений, неизмененных настроек "по умолчанию" и заканчивая несанкционированными модемами для выхода в Internet, - в результате чего злоумышленники получают открытый доступ в хорошо защищенную сеть.
Низкая квалификация
Часто низкая квалификация не позволяет пользователю понять, с чем он имеет дело; из-за этого даже хорошие программы защиты становятся настоящей морокой системного администратора, и он вынужден надеяться только на защиту периметра. Большинство пользователей не понимают реальной угрозы от запуска исполняемых файлов и скриптов и считают, что исполняемые файлы -только файлы с расширением "ехе". Низкая квалификация не позволяет также определить, какая информация является действительно конфиденциальной, а какую можно разглашать. В крупных компаниях часто можно позвонить пользователю и, представившись администратором, узнать у него учетные данные для входа в сеть. Выход только один -обучение пользователей, создание соответствующих документов и повышение квалификации.
ЧАСТЬ 2. МЕТОДЫ ЗАЩИТЫ
Согласно статистике потерь, которые несут организации от различных компьютерных преступлений, львиную долю занимают потери от преступлений, совершаемых собственными нечистоплотными сотрудниками. Однако в последнее время наблюдается явная тенденция к увеличению потерь от внешних злоумышленников. В любом случае необходимо обеспечить защиту как от нелояльного персонала, так и от способных проникнуть в вашу сеть хакеров. Только комплексный подход к защите информации может внушить уверенность в ее безопасности.
Однако в связи с ограниченным объемом данной статьи рассмотрим только основные из технических методов защиты сетей и циркулирующей по ним информации, а именно - криптографические алгоритмы и их применение в данной сфере.
Защита данных от внутренних угроз
Для защиты циркулирующей в локальной сети информации можно применить следующие криптографические методы:
- шифрование информации;
- электронную цифровую подпись (ЭЦП).
Шифрование
Шифрование информации помогает защитить ее конфиденциальность, т.е. обеспечивает невозможность несанкционированного ознакомления с ней. Шифрование - это процесс преобразования открытой информации в закрытую, зашифрованную (что называется "зашифрование") и наоборот ("расшифрование"). Это преобразование выполняется по строгим математическим алгоритмам; помимо собственно данных в преобразовании также участвует дополнительный элемент - "ключ". В ГОСТ 28147-89 дается следующее определение ключа: "Конкретное секретное состояние некоторых параметров алгоритма криптографического преобразования, обеспечивающее выбор одного преобразования из совокупности всевозможных для данного алгоритма преобразований". Иными словами, ключ представляет собой уникальный элемент, позволяющий зашифровать информацию так, что получить открытую информацию из зашифрованной можно только определенному пользователю или группе пользователей.
Шифрование можно выразить следующими формулами:
C=Ek1 (M) - зашифрование,
M"=Dk2(C) - расшифрование.
Функция Е выполняет зашифрование информации, функция D – расшифрование. В том случае, если ключ k2 соответствует ключу k1, примененному при зашифровании, удается получить открытую информацию, т.е. получить соответствие М" = М.
При отсутствии же правильного ключа k2 получить исходное сообщение практически невозможно.
По виду соответствия ключей k1 и k2 алгоритмы шифрования разделяются на две категории:
1) Симметричное шифрование: k1 = k2. Для зашифрования и расшифрования информации используется один и тот же ключ. Это означает, что пользователи, обменивающиеся зашифрованной информацией, должны иметь один и тот же ключ. Более безопасный вариант - существует уникальный ключ шифрования для каждой пары пользователей, который неизвестен остальным. Ключ симметричного шифрования должен храниться в секрете: его компрометация (утеря или хищение) повлечет за собой раскрытие всей зашифрованной данным ключом информации.
2) Асимметричное шифрование. Ключ k1- в данном случае называется "открытым", а ключ k2 - "секретным". Открытый ключ вычисляется из секретного различными способами (зависит от конкретного алгоритма шифрования). Обратное же вычисление k2 из k1 является практически невозможным. Смысл асимметричного шифрования состоит в том, что ключ k2 хранится в секрете у его владельца и не должен быть известен никому; ключ k1, наоборот, распространяется всем пользователям, желающим отправлять зашифрованные сообщения владельцу ключа k2; любой из них может зашифровать информацию на ключе k1, расшифровать же ее может только обладатель секретного ключа k2.
Оба ключа: ключ симметричного и секретный ключ асимметричного шифрования должны быть абсолютно случайными - в противном случае злоумышленник теоретически имеет возможность спрогнозировать значение определенного ключа. Поэтому для генерации ключей обычно используют датчики случайных чисел (ДСЧ), лучше всего - аппаратные.
Стоит сказать, что все государственные организации РФ и ряд коммерческих обязаны для защиты данных использовать отечественный алгоритм симметричного шифрования ГОСТ 28147-89. Это сильный криптографический алгоритм, в котором пока еще не найдено недостатков за более чем 12 лет применения.
ЭЦП
ЭЦП позволяет гарантировать целостность и авторство информации (схема 2). Как видно из схемы, ЭЦП также использует криптографические ключи: секретный и открытый. Открытый ключ вычисляется из секретного по достаточно легкой формуле, например: у=ах mod p (где х - секретный ключ, у - открытый ключ, а и р- параметры алгоритма ЭЦП), обратное же вычисление весьма трудоемко и считается неосуществимым за приемлемое время при современных вычислительных мощностях.
Схема 2. Схема применения ЭЦП
Схема распространения ключей ЭЦП аналогична схеме асимметричного шифрования: секретный ключ должен оставаться у его владельца, открытый же распространяется всем пользователям, желающим проверять ЭЦП владельца секретного ключа. Необходимо обеспечивать недоступность своего секретного ключа, ибо злоумышленник легко может подделать ЭЦП любого пользователя, получив доступ к его секретному ключу.
Электронной подписью можно подписать любую информацию. Предварительно информацию обрабатывают функцией хэширования, цель которой - выработка последовательности определенной длины, однозначно отражающей содержимое подписываемой информации. Данная последовательность называется "хэш", основное свойство хэша таково, что исключительно сложно модифицировать информацию так, чтобы ее хэш остался неизменным. Отечественный стандарт хэш-функций ГОСТ Р 34.11-94 предусматривает хэш размером 256 бит.
На основе хэша информации и секретного ключа пользователя вычисляется ЭЦП. Как правило, ЭЦП отправляется вместе с подписанной информацией (ЭЦП файла чаще всего просто помещают в конец файла перед его отправкой куда-либо по сети). Сама ЭЦП, как и хэш, является бинарной последовательностью фиксированного размера. Однако, помимо ЭЦП, к информации обычно добавляется также ряд служебных полей, прежде всего, идентификационная информация о пользователе, поставившем ЭЦП; причем, данные поля участвуют в расчете хэша. При проверке ЭЦП файла в интерактивном режиме результат может выглядеть так:
"Подпись файла "Document.doc" верна: Иванов А.А. 25.02.2003".
Естественно, в случае неверной ЭЦП выводится соответствующая информация, содержащая причину признания ЭЦП неверной. При проверке ЭЦП также вычисляется хэш информации; если он не совпадает с полученным при вычислении ЭЦП (что может означать попытку модификации информации злоумышленником), ЭЦП будет неверна.
Наряду с ГОСТ 28147-89 существует отечественный алгоритм ЭЦП: ГОСТ Р 34.10-94 и его более новый вариант ГОСТ Р 34.10-2001. Государственные организации РФ и ряд коммерческих обязаны использовать один из этих алгоритмов ЭЦП в паре с алгоритмом хэширования ГОСТ Р 34.11 -94.
Существует и более простой способ обеспечения целостности информации - вычисление имитоприставки. Имитоприставка - это криптографическая контрольная сумма информации, вычисляемая с использованием ключа шифрования. Для вычисления имитоприставки используется, в частности, один из режимов работы алгоритма ГОСТ 28147-89, позволяющий получить в качестве имитоприставки 32-битную последовательность из информации любого размера. Аналогично хэшу информации имитоприставку чрезвычайно сложно подделать. Использование имитоприставок более удобно, чем применение ЭЦП: во-первых, 4 байта информации намного проще добавить, например, к пересылаемому по сети IP-пакету, чем большую структуру ЭЦП, во-вторых, вычисление имитоприставки существенно менее ресурсоемкая операция, чем формирование ЭЦП, поскольку в последнем случае используются такие сложные операции, как возведение 512-битного числа в степень, показателем которой является 256-битное число, что требует достаточно много вычислений. Имитоприставку нельзя использовать для контроля авторства сообщения, но этого во многих случаях и не требуется.
Комплексное применение криптографических алгоритмов
Для безопасной передачи по сети каких-либо файлов, их достаточно подписать и зашифровать. На схеме 3 представлена технология специализированного архивирования, обеспечивающая комплексную защиту файлов перед отправкой по сети.
Схема 3. Технология специализированного архивирования
Прежде всего, файлы подписываются секретным ключом отправителя, затем сжимаются для более быстрой передачи. Подписанные и сжатые файлы шифруются на случайном ключе сессии, который нужен только для зашифрования этой порции файлов -ключ берется с датчика случайных чисел, который обязан присутствовать в любом шифраторе. После этого к сформированному таким образом спецархиву добавляется заголовок, содержащий служебную информацию.
Заголовок позволяет расшифровать данные при получении. Для этого он содержит ключ сессии в зашифрованном виде. После зашифрования данных и записи их в архив, ключ сессии, в свою очередь, зашифровывается на ключе парной связи (DH-ключ), который вычисляется динамически из секретного ключа отправителя файлов и открытого ключа получателя по алгоритму Диффи-Хеллмана. Ключи парной связи различны для каждой пары "отправитель-получатель". Тот же самый ключ парной связи может быть вычислен только тем получателем, открытый ключ которого участвовал в вычислении ключа парной связи на стороне отправителя. Получатель для вычисления ключа парной связи использует свой секретный ключ и открытый ключ отправителя. Алгоритм Диффи-Хеллмана позволяет при этом получить тот же ключ, который сформировал отправитель из своего секретного ключа и открытого ключа получателя.
Таким образом, заголовок содержит копии ключа сессии (по количеству получателей), каждая их которых зашифрована на ключе парной связи отправителя для определенного получателя.
После получения архива получатель вычисляет ключ парной связи, затем расшифровывает ключ сессии, и наконец, расшифровывает собственно архив. После расшифрования информация автоматически разжимается. В последнюю очередь проверяется ЭЦП каждого файла.
Защита от внешних угроз
Методов защиты от внешних угроз придумано немало - найдено противодействие практически против всех опасностей, перечисленных в первой части данной статьи. Единственная проблема, которой пока не найдено адекватного решения, - DDoS-атаки. Рассмотрим технологию виртуальных частных сетей (VPN - Virtual Private Network), позволяющую с помощью криптографических методов как защитить информацию, передаваемую через Internet, так и пресечь несанкционированный доступ в локальную сеть снаружи.
Виртуальные частные сети
На наш взгляд, технология VPN является весьма эффективной защитой, ее повсеместное внедрение - только вопрос времени. Доказательством этого является хотя бы внедрение поддержки VPN в последние операционные системы фирмы Microsoft - начиная с Windows 2000.
Суть VPN состоит в следующем (см. схему 4):
- На все компьютеры, имеющие выход в Internet (вместо Internet может быть и любая другая сеть общего пользования), ставится средство, реализующее VPN. Такое средство обычно называют VPN-агентом. VPN-агенты обязательно должны быть установлены на все выходы в глобальную сеть.
- VPN-агенты автоматически зашифровывают всю информацию, передаваемую через них в Internet, а также контролируют целостность информации с помощью имитоприставок.
Схема 4. Технология VPN
Как известно, передаваемая в Internet информация представляет собой множество пакетов протокола IP, на которые она разбивается перед отправкой и может многократно переразбиваться по дороге. VPN-агенты обрабатывают именно IP-пакеты, ниже описана технология их работы.
1. Перед отправкой IP-пакета VPN-агент выполняет следующее:
- Анализируется IP-адрес получателя пакета. В зависимости от адреса и другой информации (см. ниже) выбираются алгоритмы защиты данного пакета (VPN-агенты могут, поддерживать одновременно несколько алгоритмов шифрования и контроля целостности) и криптографические ключи. Пакет может и вовсе быть отброшен, если в настройках VPN-агента такой получатель не значится.
- Вычисляется и добавляется в пакет его имитоприставка.
- Пакет шифруется (целиком, включая заголовок IP-пакета, содержащий служебную информацию).
- Формируется новый заголовок пакета, где вместо адреса получателя указывается адрес его VPN-агента. Это называется инкапсуляцией пакета. При использовании инкапсуляции обмен данными между двумя локальными сетями снаружи представляется как обмен между двумя компьютерами, на которых установлены VPN-агенты. Всякая полезная для внешней атаки информация, например, внутренние IP-адреса сети, в этом случае недоступна.
2. При получении IP-пакета выполняются обратные действия:
- Из заголовка пакета получается информация о VPN-агенте отправителя пакета. Если такой отправитель не входит в число разрешенных в настройках, то пакет отбрасывается. То же самое происходит при приеме пакета с намеренно или случайно поврежденным заголовком.
- Согласно настройкам выбираются криптографические алгоритмы и ключи.
- Пакет расшифровывается, затем проверяется его целостность. Пакеты с нарушенной целостностью также отбрасываются.
- В завершение обработки пакет в его исходном виде отправляется настоящему адресату по локальной сети.
Все перечисленные операции выполняются автоматически, работа VPN-агентов является незаметной для пользователей. Сложной является только настройка VPN-агентов, которая может быть выполнена только очень опытным пользователем. VPN-агент может находиться непосредственно на защищаемом компьютере (что особенно полезно для мобильных пользователей). В этом случае он защищает обмен данными только одного компьютера - на котором установлен.
VPN-агенты создают виртуальные каналы между защищаемыми локальными сетями или компьютерами (к таким каналам обычно применяется термин "туннель", а технология их создания называется "туннелировани-ем"). Вся информация идет по туннелю только в зашифрованном виде. Кстати, пользователи VPN при обращении к компьютерам из удаленных локальных сетей могут и не знать, что эти компьютеры реально находятся, может быть, в другом городе, - разница между удаленными и локальными компьютерами в данном случае состоит только в скорости передачи данных.
Как видно из описания действий VPN-агентов, часть IP-пакетов ими отбрасывается. Действительно, VPN-агенты фильтруют пакеты согласно своим настройкам (совокупность настроек VPN-агента называется "Политикой безопасности"). То есть VPN-агент выполняет два основных действия: создание туннелей и фильтрация пакетов (см.схему 5).
Схема 5. Туннелирование и фильтрация
IP-пакет отбрасывается или направляется в конкретный туннель в зависимости от значений следующих его характеристик:
- IP-адрес источника (для исходящего пакета - адрес конкретного компьютера защищаемой сети).
- IP-адрес назначения.
- Протокол более верхнего уровня, которому принадлежит данный пакет (например, TCP или UDP для транспортного уровня).
- Номер порта, с которого или на который отправлен пакет (например, 1080).
Более подробно технология VPN описана в специальной литературе.