При рассмотрении вопросов безопасности первое, что потребуется оценить — это важность того, что вы пытаетесь защитить. Необходимо принимать во внимание две стороны — важность для вас и важность для потенциальных взломщиков. Необходимо принимать во внимание две стороны — важность для вас и важность потенциальных взломщиков.
Очень соблазнительно думать, сто наивысшая степень защиты необходима всегда и везде для всех сайтов, тем не менее, безопасность имеет свою цену. Перед тем как вы решите, какие расходы и усилия оправдывают ваши средства защиты, неплохо было бы определить стоимость вашей информации.
Очевидно, что ценность информации на компьютерах пользователя-любителя, банка и военной организации существенно отличаются. Точно так же есть различия, насколько далеко может зайти атакующий для получения доступа к этой информации. Насколько притягательно для взломщика содержимое вашего компьютера?.
Вероятно, пользователи-любители располагают весьма ограниченным временем, чтобы изучить защиту или поработать над защитой собственных систем. Учитывая, что на компьютерах любителей, как правило, хранится информация, ценность которой не велика для всех, за исключением владельца, то атаки на такие системы будут нечастыми и ограниченными в плане усилий. Однако пользователи подключенные к сети компьютеров должны предпринимать значительные меры предосторожности. Даже если данные на компьютере не предоставляют никакого интереса, этот компьютер может быть использован в качестве анонимной стартовой площадки для атак на другие системы.
Военные компьютеры являются очевидной целью атак, как со стороны индивидуальных пользователей, так и иностранных правительств. Поскольку атакующие правительства могут обладать внушительными ресурсами, благоразумно направить дополнительные инвестиции в персонал и другие ресурсы, чтобы иметь гарантию, что в данном домене предприняты все меры предосторожности.
Привлекательность сайта электронной коммерции для взломщиков находится приблизительно посередине между двумя описанными выше крайностями.
Что подвержено рискам на вашем сайте? Какие существуют внешние угрозы?
Некоторые угрозы мы уже рассматривали раньше. Многие из этих угроз связаны с безопасностью.
В зависимости от особенностей веб-сайта, к угрозам его безопасности могут относиться:
Рассмотрим каждую из этих угроз.
Данные, хранимые на вашем компьютере или передаваемые ему или с него, могут быть конфиденциальными. К ним относится информация, которую разрешено просматривать только определенным людям, например, списки оптовых цен. Это может быть конфиденциальная информация, представленная клиентом, например, пароль, контактная информация или номер кредитной карточки.
Надеемся, что вы не храните на веб-сервере информацию, которая не предназначена для просмотра всеми посетителями сайта. Веб-сервер — неподходящее место для сектетной информации. Если вы собираетесь сохранить на компьютере платежную ведомость или план захвата власти, то благоразумнее не использовать для этого веб-сервер. Веб-сервер по определению является общедоступным компьютером и должен содержать информацию, только что собранную от клиентов.
Для снижения риска раскрытия данных потребуется ограничить число методов получения доступа к информации и количество людей, которые могут получить такой доступ. Этого можно добиться, если во время проектирования постоянно помнить о защите, должным образом конфигурировать сервер и серверные приложения, осторожно программировать и тщательно тестировать, удалять ненужные службы из веб-сервера и требовать от посетителей аутентификации.
Следует тщательно проектировать, настраивать, кодировать и тестировать, чтобы снизить риск успешной незаконной атаки, и что не меее важно, уменьшить вероятность того, что ошибка сделает информацию доступной для случайного прочтения.
Для уменьшения количества потенциально слабых мест удалите ненужные службы с веб-сервера. Каждая служба, запущенная на сервере, обладает своими уязвимыми местами. Во избежание присутствия на сервере известных всем уязвимых мест следует регулярно обновлять каждую из служб. Службы, которые не используются, могут предчтавлять еще большую опастность. Если вы никогда не используете команду rcp, то зачем устанавливать эту службу?
Примечание. Даже если вы используете rcp в данный момент, скорее всего, имеет смысл ее удалить и пользоваться вместо нее улитой scp ("secure copy" —защищенное копирование).
Если в процессе инсталяции будет указано, что компьютер подключен к сети, то программа установки, входящая в состав основных дистрибутивов Linux и Windows, скопирует на ваш компьютер массу ненужных служб, которые должны быть удалены.
Аутентификация означает требование подтверждения своей личности посетителями. Если система знает, от кого поступает запрос, она может решить, разрешен ли доступ к данному лицу. Существует несколько возможных методов аутентификации, но в большинстве случаев применяются только пароли и цифровые подписи. Более подробно эти методы обсуждаются ниже.
Данные подвергаются риску раскрытия также и во время прохождения по сети. Хотя сети на базе протокола TCP/IP обладают массой положительных качеств, которые сделали их стандартом де-факто для объединения различных сетей в Интернет, обеспечение безопасности не входит в их число. Протокол TCP/IP разбивает данные на пакеты и пересылает эти пакеты от одного компьютера к другому, пока они не достигнут пункта назначения. Это означает, что пути следования данных проходят через множество компьютеров.
Чтобы увидеть путь, по которому проходят данные от вашего компьютера до пункта назначения, можно воспользоваться командой traceroute на UNIX-компьютере или tracert на Windows-компьютере. Эта команда выдает адреса компьютеров, через которые проходят данные на пути к хосту назначения. Для достижения хоста в пределах одной страны данные обычно должны пройти через добрый десяток разных компьютеров. Для передачи данных на хосты, находящиеся в других странах, может потребоваться более 20 промежуточных хостов. Если организация владеет большой сложной сетью, данные могут пройти через пять хостов еще до того, как покинут пределы здания.
Для защиты конфиденциальной информации данные можно шифровать перед отправкой и расшифровывать после получения. Веб-серверы часто используют протокол защищенных сокетов SSL, тем самым обеспечивая безопастное взаимодействие для данных, путешествующих между веб-сервером и браузерами. Это достаточно дешевый и не требующий больших усилий способ защиты канала передачи, но поскольку вместо простой отправки и приема данных сервер должен еще их зашифровать и расшифровать, то количество посетителей, которых сервер может обслужить в секунду, существенно снижается.
Потеря данных может обходиться значительно дороже, чем их вскрытие. Если на разработку сайта и сбор данных и заказов от пользователей были затрачены месяцы работы, то во что может обойтись потеря этой информации в денежном выражении, в смысле испорченной репутации и напрасно потраченного времени? Если у вас не было резервных копий данных, придется спешно переписывать сайт и начинать все с самого начала. Вы можете столкнуться с массой недовольных клиентов, а также и мошенников, которые будут утверждать, что заказывали товары, но не получили их.
Вполне возможно, что взломщикам все же удастся проникнуть в систему и отформатировать жесткий диск. Существует высокая вероятность того, что небрежный программист или администратор случайно удалит что-то, и пости не вызывает сомнения, что рано или поздно жесткий диск потерпит аварию. Жесткие диски вращаются со скоростью в несколько тысяч оборотов в минуту, и временами они отказывают. Согласно закону Мерфи, отказавший диск будет содержать наиболее важные данные, для которых дольше всего не выполнялось резервное копирование.
Во избежание потери данных можно предпринять различные меры. Защищайте свои серверы от взломщиков. Стремитесь к тому, чтобы доступ к компьютеру имело как можно меньше людей. Нанимайте только компетентных и добросовестных сотрудников. Приобретайте только качественные жесткие диски. Используйте RAID-массивы, которые содержат несколько дисков. Такие массивы могут работать как один высокопроизводительный и надежный диск.
Независимо от причин, существует только один реальный способ защиты от потери данных — резервное копирование. Резервное копирование — это не высшая математика. Наоборот, это утомительный, скучный и, хочется надеятся, безполезный процесс, однако он жизненно необходим. Удостоверьтесь, что данные регулярно копируются не резервные носители, и протестируйте процедуру резервного копирования, чтобы иметь уверенность в возможности восстановления данных. Убедитесь также, что резервные копии хранятся вдалеке от ваших компьютеров. Хотя мало вероятно, что офис пострадает от пожара или какого-нибудь стихийного бедствия, хранение резервных копий вне офиса — это достаточно дешевая, тем не менее надежная страховка.
Хотя потеря данных может принести большой ущерб, не меньший, а то и больший ущерб причиняет изменение данных. Что произойдет, если кто-то получит доступ к системе и изменит файлы? Хотя полное удаление может быть замечено и исправлено с использованием резервной копии, насколько скоро удастся заменить несанкционированное изменение?
Изменению могут быть подвергнуты данные и выполняемые файлы. Изменение файлов данных может быть обусловлено желанием взломщика "украсить" ваш сайт собственным граффити или получить незаконные привлегии. Замена выполняемых файлов их вредительскими версиями может открыть взломщику, получившему доступ к сайту, своего рода "черный ход" для последующих визитов и получения больших полномочий в системе.
Данные, которые передаются через сеть, можно защитить с помощью цифровой подписи. Это не помешает злоумышленникам изменить данные, но если получатель имеет возможность проверить соответствие подписи при получении файла, он будет знать, был ли файл изменен. Если во избежание несанкционированного просмотра данные шифруются, это также существенно усложнит скрытую модификацию данных на пути их следования.
Защита от изменений в файлах, хранящихся на сервере, требует применения предоставленных операционной системой возможностей контроля доступа к файлам. Воспользуйтесь этими возможностями для защиты системы от несанкционированного доступа. Используя механизм прав доступа к файлам, посетителям можно разрешить использовать систему, но не предоставлять им полный контроль над изменением системных файлов и файлов других пользователей.
Обнаружение изменений является достаточно сложной задачей. Если в какой-то момент становится понятно, что защита взломана, то каким образом выяснить, изменились ли важные файлы? Некоторые файлы, такие как файлы, хранящиеся в базе данных, должны со временем измениться. Множество других файлов должны оставаться неизменными с момента установки. Такие файлы меняются только в случае их сознательного обновления. Модификация файлов — как программ, так и данных — может осуществляться весьма коварно, и хотя программы можно установить повторно, вы не сможете определить, какая из версий данных была "чистой".
Программное обеспечение определения целостности файлов наподобие Tripwire фиксирует информацию о важных файлах, которые находятся в известном безопастном состоянии, возможно, немедленно после установки. Впоследствии эта информация может быть использована для проверки целостности файлов. Коммерческую и условно-бесплатную версию этого приложения можно загрузить из сайта по следующему адресу: http://www.tripwire.com.