Защита от хакеров корпоративных сетей
Шрифт:
1. Закон № 1: Если злоумышленник смог убедить вас запустить его программу на вашем компьютере, то компьютер уже не ваш.
2. Закон № 2: Если злоумышленник может изменить операционную систему на вашем компьютере, то компьютер уже не ваш.
3. Закон № 3: Если злоумышленник имеет неограниченный физический доступ к вашему компьютеру, то компьютер уже не ваш.
4. Закон № 4: Если вы позволяете злоумышленнику загружать программы на ваш Web-сайт, то Web-сайт уже не ваш.
5. Закон № 5: Слабые пароли сводят на нет хорошую систему безопасности.
6. Закон № 6: Компьютерная система защищена настолько, насколько заслуживает доверия обслуживающий ее администратор.
7. Закон № 7: Безопасность зашифрованных данных определяется безопасностью ключа их расшифровки.
8. Закон № 8:
9. Закон № 9: Абсолютная анонимность практически недостижима ни в реальной жизни, ни в Web-пространстве.
10. Закон № 10: Технология – не панацея.
Полный список (с разъяснениями смысла каждого правила) может быть найден на сайте www.microsoft.com/technet/columns/security/10imlaws.asp. Этот список приведен для иллюстрации подхода к теме с точки зрения администратора безопасности. По большей части читатель найдет, что приведенные законы – обратная сторона исследуемых авторами законов безопасности.
Перед применением законов для обнаружения потенциальных проблем следует сформулировать их рабочее определение. В следующих разделах рассмотрены законы безопасности и их значение для обеспечения безопасности вычислительных сетей и систем.
Закон 1. Невозможно обеспечить безопасность клиентской части
В первом законе безопасности следует определить пару понятий. Что именно имеется в виду, когда говорят о клиентской части (client-side)? Рассматривая сетевое (клиент-серверное) окружение, авторы определили бы клиента как приложение, которое инициирует запрос на обслуживание или соединение, а сервер – как приложение, которое или ожидает запрос на обслуживание и установление связи, или способно выполнять эти запросы. Термин «клиентская часть» применительно к вычислительным сетям используется для обозначения компьютера, за которым работает пользователь и при помощи которого пользователь (или злоумышленник) получает контроль над системой. В сформулированном законе отличие в использовании термина «клиентская часть» заключается в том, что он применяется без связи с какой-либо сетью или сервером, то есть авторы говорят о безопасности клиентской части даже в случае одного компьютера с частью программного обеспечения на дискете. Главное состоит в том, что подчеркивается мысль о возможности получения контроля пользователей (или злоумышленников) над собственными компьютерами и их способности сделать с ними все, что они захотят.
После определения термина клиентской части выясним, что понимается под ее безопасностью. Безопасность клиентской части – это некоторый механизм безопасности, работающий исключительно у клиента. В одних случаях его реализация допускает привлечение сервера, как в традиционной архитектуре клиент-сервер. В других – это может быть частью программного обеспечения, которое выполняется на компьютере клиента в интересах предотвращения действий пользователя, нежелательных с точки зрения безопасности.
Основная проблема безопасности клиентской части состоит в том, что человек, физически сидящий за клиентским компьютером, имеет абсолютный контроль над ним. Закон № 3 Скотта Кулпа (Scott Culp) иллюстрирует это более упрощенным способом: Если у злоумышленника неограниченный физический доступ к вашему компьютеру, то компьютер уже не ваш. Для полного понимания тонких моментов этого вопроса требуются дополнительные разъяснения. Вы не сможете разработать механизм безопасности клиентской части, который пользователи не смогли бы, если они этого захотят, преодолеть. В лучшем случае вы сможете усложнить им эту задачу. Проблема состоит в том, что поскольку большинство программного обеспечения и аппаратных средств ЭВМ – результат массового производства, то один профессионал, разгадавший, как обойти механизм безопасности, может, вообще говоря, рассказать кому-либо об этом или часто пользоваться результатами своего решения. Посмотрите на пакет программ, в котором предусмотрено ограничение его использования тем или иным способом. Какие инструменты нападающий имеет в его или ее распоряжении? Он или она могут использовать
А если программное обеспечение обнаружит, что оно было модифицировано? Тогда удалите часть кода, которая обнаруживает модификацию. Что, если программное обеспечение скрывает информацию где-нибудь в компьютере? Контролирующие механизмы немедленно найдут это изменение. Имеется ли защита аппаратных средств ЭВМ от преступного использования? Нет. Если нарушитель может потратить неограниченное время и ресурсы, атакуя аппаратные средства вашего компьютера, то любое средство защиты в конечном счете признает себя побежденным. Это особенно справедливо для аппаратуры массового производства. Поэтому в общем случае следует полагать, что безопасность клиентской части невозможно обеспечить.
Примечание
Этот закон используется в главах 5 и 14.
Закон 2. Нельзя организовать надежный обмен ключами шифрования без совместно используемой порции информации
Для человека, знакомого с криптографией, этот закон может показаться очевидным. Тем не менее закон является уникальным вызовом защите данных и процедур обмена информацией. Основная проблема обмена зашифрованными данными заключается в надежности ключей сеансов обмена. Обмен ключами между клиентом и сервером обязателен и происходит до обмена данными (для дополнительной информации см. главу 6).
Для иллюстрации этого давайте рассмотрим процесс установления зашифрованной связи через Интернет. Пусть как на вашем компьютере, как и на компьютере, с которым вы, как предполагается, соединяетесь, установлена ныне модная программа CryptoX. Вы вводите известный вам IP-адрес другого компьютера и ударяете на клавишу Connect (установить соединение). Программное обеспечение сообщает вам об установке соединения и обмене ключами. Теперь вам доступна надежная связь с 1024-битным шифрованием. Следует ли вам верить этому? Да, следует. Ведь за простым интерфейсом работы этой программы скрывается сложная криптоинфраструктура, обеспечивающая описанный процесс соединения (позднее в этой главе будет объяснено, что это означает). К сожалению, похитить IP-связь не только не невозможно, но даже не слишком трудно (см. главу 11).
Проблема состоит в том, как узнать, с каким компьютером вы обменялись ключами. Вы могли установить соединение именно с тем компьютером, с которым вы и хотели осуществить обмен, так и со злоумышленником, ожидающим ваших действий по установке соединения, для того чтобы попытаться подменить IP-адрес компьютера, с которым вы соединяетесь, на свой. Единственный способ удостовериться в факте соединения с требуемым компьютером состоит в наличии на обоих компьютерах порции информации, которая позволила бы удостовериться в идентичности друг друга. Как это осуществить? Сразу приходит на ум пара методов. Во-первых, можно воспользоваться открытыми ключами, распространяемыми сертификационными центрами в Интернете. Во-вторых, можно использовать разделяемый секретный ключ или средства аутентификации протокола защищенных сокетов SSL, гарантирующего безопасную передачу данных по сети в результате комбинирования криптографической системы с открытым ключом и блочного шифрования данных. Конечно, все перечисленное является разделяемыми порциями информации, необходимой для проверки отправителя информации.
Отсюда следует необходимость решения задачи управления ключами, поэтому исследуем некоторые аспекты этого процесса, ответив на следующие вопросы. Как переслать ключи туда, где они необходимы? Защищен ли маршрут распространения ключей от злоумышленника, готового к атаке типа «злоумышленник посередине» (man-in-the-middle – MITM)? Какие затраты ресурсов необходимы и насколько оправдано их использование по отношению к ценности защищаемой информации? Участвует ли доверенное лицо в обмене ключей? Может ли оно быть атаковано? Какие методы используются для обмена ключей и насколько они уязвимы?