Тодд Клиндт (todd@sharepoint911.com) – консультант по SharePoint, имеет звание SharePoint MVP
Безопасность — дело серьезное. Мы все нуждаемся в защите. В детстве, испугавшись чего-то, мы с головой забирались под одеяло; правда, с возрастом наши представления о средствах обеспечения безопасности меняются. Наши серверы SharePoint тоже необходимо защищать. .
Полезные уроки
Всякий раз, когда мне приходится говорить о безопасности, я вспоминаю рекомендации, полученные мною на занятиях в армии. Там, правда, речь шла о физической безопасности, но принципы, изложенные инструкторами, в полной мере применимы и к продуктам SharePoint.
Первый урок состоит в том, что организация механизмов безопасности не обязательно должна сводиться к построению непреодолимых защитных барьеров. Достаточно принять меры по укреплению линии обороны. Если вы закроете двери дома на замок, это не лишит злоумышленников возможности проникнуть в ваше жилище, но создаст определенные затруднения. Аналогично обстоят дела и с защитой компонентов SharePoint. Не стоит отказываться от того или иного средства защиты лишь по той причине, что оно не дает стопроцентной гарантии предотвращения атаки. Чем лучше защищен ваш сервер SharePoint, тем выше вероятность того, что хакер не станет связываться с вами и отправится на поиски более легкой добычи.
Второй усвоенный мною урок, касающийся обеспечения безопасности, состоит в том, что за безопасность всегда приходится платить тем или иным удобством. Если ваша входная дверь на запоре, вы сможете попасть домой, лишь достав ключ и повернув его в замке. Конечно, это не совсем удобно — куда удобнее просто толкнуть дверь и войти. Но ясно, что, проигрывая в удобстве, вы выигрываете в безопасности. Я часто представляю концепцию безопасности в виде линии, один конец которой обозначен как «удобство», а второй — как «безопасность». Любой ситуации соответствует та или иная точка на этой линии. Вы можете предусмотреть для своей системы настолько жесткую систему защиты, что этой системой будет трудно пользоваться (например, установить, что пользовательские пароли должны состоять из 14 или более знаков, включающих знаки нижнего и верхнего регистров, цифры и специальные символы — и обязать пользователей ежедневно менять пароли). Многим доводилось работать в организациях, где заведены аналогичные порядки. Конечно, подобные пароли непросто «раскалывать», но, с другой стороны, работать с ними настолько неудобно, что сотрудники или отказываются использовать данную службу, или начинают просто записывать пароли. Есть и другая крайность: применять настолько незамысловатые пароли, что они вообще не обеспечивают никакой защиты. Так что мой вам совет: рассматривая вопрос о защищенности фермы SharePoint-продуктов и читая статьи по проблемам безопасности, оценивайте каждое решение и определяйте его место на шкале «удобство – безопасность».
Безопасность на уровне учетных записей
Одна из первых мер укрепления защиты фермы SharePoint от потенциальных атак хакеров состоит в том, чтобы установить и настроить ферму по принципу предоставления минимальных прав. Наделите каждую функцию, выполняемую компонентами SharePoint, собственной учетной записью. После этого предоставьте каждой такой записи только те разрешения, которые потребуются для выполнения ее задачи — и не более того. В итоге в случае взлома этой записи хакер получит доступ лишь к небольшой доле ресурсов. А для начала прочтите в моем блоге статью об учетных записях служб SharePoint (http://www.toddklindt.com/ServiceAccounts). Если вы начнете работу в таком порядке, ваши процессы будут должным образом изолированы друг от друга, и если те или иные учетные записи окажутся скомпрометированы, ущерб от атаки можно будет ограничить. К примеру, если хакер взломает вашу учетную запись sp_serviceapps, в его распоряжении окажется лишь ограниченное число разрешений, и злоумышленник, скорее всего, не сможет взять под контроль всю систему.
Этот метод сопряжен с определенными сложностями (использовать одну учетную запись для решения всех задач намного удобнее), но с его помощью вы сможете сформировать надежные границы безопасности. Главное неудобство при работе по принципу предоставления минимальных прав состоит в том, что вам придется держать в уме все эти ненавистные пароли. Если вы будете действовать в соответствии с инструкциями, которые изложены в упомянутом мною блоге, с самого начала вам придется иметь дело с девятью учетными записями и, соответственно, девятью паролями. Придумать девять паролей (если они не слеплены по шаблону вроде pass@word1, pass@word2 и т.д.) — дело не такое уж простое, а ведь вам придется еще и менять их. Разумеется, регулярное обновление паролей учетной записи службы — раз в три или раз в шесть месяцев — еще один эффективный способ повышения уровня защиты фермы SharePoint. К сожалению, я неважный консультант по вопросам генерации паролей, зато могу дать несколько советов по организации процесса обновления. В другой статье того же блога (http://www.toddklindt.com/ChangeSP2010Passwords) я подробно рассказываю о каждой учетной записи и разъясняю, как обновлять все используемые пароли с минимальным временем простоя.
Пока мы не покончили с темой учетных записей, хочу высказать еще одно соображение по поводу того, как повысить уровень защиты системы: не регистрируйтесь в ней с учетной записью Farm, когда предполагаете решать административные задачи общего характера. Все мы подвержены этой дурной привычке, а ведь она облегчает задачу хакеров, атакующих фермы SharePoint. Выполняя рутинные задачи администрирования, мы рискуем запустить все приблудившиеся вредоносные коды, использующие уязвимые места системы. Когда вы запускаете такие коды в качестве обычного пользователя, это уже плохо, но если вы делаете это, войдя в систему как пользователь с более высоким уровнем привилегий в SharePoint, положение усугубляется. Кроме того, при этом затрудняется проверка системы. Вместо этого каждый администратор сервера SharePoint должен иметь привилегированную учетную запись, которую можно использовать при выполнении различных задач на ферме. К сожалению, в SharePoint имеется множество «закутков», для работы в которых администратор должен иметь разрешения, прописанные в учетной записи. Исчерпывающие инструкции на сей счет содержатся в моем блоге (http://www.toddklindt.com/StopUsingSPFarm).
Безопасность на уровне системы
Платформа SharePoint может продемонстрировать свои магические возможности лишь при участии широкого круга «действующих лиц», включая Windows, Microsoft IIS, SQL Server и Active Directory (AD). Каждое из этих действующих лиц играет важную роль, но если безопасность любого из них будет поставлена под угрозу, в масштабах фермы SharePoint может разразиться настоящая катастрофа. Поэтому обеспечение безопасности упомянутых компонентов тоже входит в круг обязанностей квалифицированного администратора SharePoint.
Но тот, кто полагает, что для этого достаточно запустить центр обновления Windows Update — и можно приступать к решению других вопросов, к сожалению, заблуждается. Windows Update — важный механизм обновления серверов, однако применять его к серверам SharePoint нужно с осторожностью. Этот центр обновляет не только систему Windows; в ряде случаев он может обновлять SharePoint. Так, модуль коррекции MS12-050, недавно выпущенный для системы безопасности SharePoint, незаметно устанавливается в системе по каналам Windows Update. Он устранил важную брешь в системе безопасности, но появление этого модуля стало полной неожиданностью для многих администраторов SharePoint. Они не знали, что их серверы SharePoint подверглись обновлению. Более того: они не знали даже, что для завершения установки этого исправления им нужно было запустить мастер конфигурации Configuration Wizard. В версии SharePoint 2010 эта проблема решается довольно эффективно, но здесь могут возникать проблемы со стабильностью, а возможность установки модулей коррекции вручную исключается до тех пор, пока Configuration Wizard не выполнил свою задачу. Так что после выпуска упомянутой программы коррекции в мире появилось множество надежно защищенных, но весьма неудобных в эксплуатации ферм SharePoint.
Если вы хотите, чтобы ваша инфраструктура SharePoint была не только защищенной, но и работоспособной, вам, конечно, нужно задействовать центр обновления Windows. Однако, кроме того, следует со вниманием относиться к анализу каждого обновления. К примеру, перед установкой модуля коррекции для SQL Server необходимо проверить, не приведет ли эта процедура к нарушениям в работе SharePoint. Установка пакетов обновлений — важная мера усиления защиты сервера, но применять ее следует с соблюдением мер предосторожности. В частности, полезно организовать тестовую среду. Понятно, что тестовая среда никогда не будет точной копией среды производственной, но следует позаботиться об их максимальном сходстве: применяйте одну и ту же версию Windows, одну и ту же версию SharePoint, а в процессе настройки тестовой среды при всякой возможности используйте те же настройки, что применяются в вашей производственной среде.
Разработчики SharePoint выпускают накопительные пакеты обновлений раз в два месяца. Эти пакеты, как правило, предназначены для исправления ошибок и не обязательно имеют отношение к обеспечению безопасности. Устанавливайте эти модули лишь в тех случаях, когда они устраняют бреши в системе защиты или решают ту или иную проблему, возникающую при эксплуатации SharePoint. Не устанавливайте модули коррекции лишь по той причине, что они поступили или потому, что хотите произвести впечатление на своих коллег оперативностью в обновлении фермы SharePoint. Эти модули не проходят столь жесткого тестирования, на которое вы, возможно, рассчитываете. Известны случаи, когда накопительные пакеты обновлений оказывались настолько «сырыми», что их приходилось отзывать. Думаю, ни у кого нет сомнения в том, что сервер, неспособный обслуживать страницы, находится в полной безопасности, но все мы, пожалуй, согласимся, что такое решение проблемы нельзя считать удовлетворительным.
Еще один способ повышения уровня защиты сервера SharePoint состоит в блокировке портов, не используемых платформой. Тем самым мы уменьшаем вероятность того, что злоумышленники смогут взломать ваш сервер с помощью первой попавшейся вредоносной программы, использующей уязвимости системы. В приведенной таблице представлены некоторые порты, часто используемые серверами SharePoint для приема запросов Интернет-клиентов.
В состав пакетов Windows 2008 и Windows 2008 R2 входит мастер настройки безопасности Security Configuration Wizard (SCW). С его помощью можно заблокировать компоненты сервера SharePoint, имеющие выход на Windows. Ссылку на SCW вы найдете в разделе Administrative Tools или в диспетчере Server Manager. Мастер настройки безопасности поможет определить, какие роли выполняет ваш сервер в настоящее время и какие порты он при этом использует. Программу SCW нужно запускать по завершении установки и настройки SharePoint. Выполнив свою задачу, SCW представит вам профиль безопасности, который вы сможете применить к своему серверу. Это относительно простой способ блокировки сервера, но будьте осторожны: вы можете отключить его, что называется, насовсем. Удостоверьтесь, что вы имеете четкое представление о том, как отменяется любое изменение, внесенное мастером SCW. Кроме того, имейте в виду, что если вы запустите эту программу на производственном сервере в рабочие часы, вполне возможно, что у двери офиса вас будут поджидать пользователи с монтировками. Запускать SCW лучше всего в периоды запланированного простоя.
Если вы решите воздержаться от использования мастера SCW, проследите за тем, чтобы соответствующие входящие и исходящие порты сервера SharePoint были открыты. Лично я обычно не закрываю порты до тех пор, пока не буду уверен, что компоненты SharePoint функционируют корректно. Такой подход облегчает поиск неполадок. Если, скажем, все элементы системы работали нормально до того момента, когда я заблокировал порты, я делаю вывод, что причина сбоев по-видимому как-то связана с блокировкой. Если же я первым делом заблокировал все порты и теперь не могу запустить приложение Managed Metadata Service, мне будет не так просто определить, что все дело в некорректном функционировании порта 32843 сервера приложений, который не устанавливает соединений с внешними веб-интерфейсами. Известно, что неполадки, имеющие отношение к безопасности, обнаруживаются с трудом. Сообщения об ошибках в системах безопасности составляются таким образом, чтобы в руки злоумышленников не попали слишком подробные сведения; поэтому и хорошим администраторам перепадает не так уж много информации.
Если вы хотите повысить уровень защищенности сети хотя бы на одну ступень, установите между серверами и конечными пользователями обратный прокси-сервер. В результате хакеры не смогут обследовать серверы SharePoint напрямую на предмет обнаружения уязвимых мест, и вы получите дополнительный уровень защиты. Кроме того, ваши обратные прокси-серверы (или другие сетевые устройства) смогут также осуществлять более сложные операции сканирования по поступающим запросам для выявления среди последних вредоносных запросов. Такая тактика может показаться перестраховкой (как если бы вы надели брюки с ремнем и вдобавок нацепили подтяжки), но она поможет вам повысить защищенность среды SharePoint и, может быть, несколько уменьшит расходование вычислительных ресурсов серверами SharePoint. Обратные прокси-серверы также могут разрывать SSL-соединения или осуществлять балансировку нагрузки, избавляя серверы SharePoint от необходимости решения этих задач. Упомянутые серверы будут иметь больше ресурсов для занятий своим любимым делом — отображением страниц SharePoint.
Антивирусные программы
Любое описание мер по обеспечению безопасности серверов Windows не будет полным без упоминания о средствах антивирусной защиты. В контексте разговора о платформе SharePoint нам придется поднимать эту тему дважды — один раз применительно к серверу, а второй — применительно к содержимому SharePoint. Как вы сможете убедиться, в каждом случае применяемые меры имеют свой особый смысл.
Начнем с системных антивирусных программ. Речь идет об антивирусных средствах, которые мы с удовольствием используем на наших компьютерах с Windows и серверах. Этими средствами обычно управляют на уровне предприятия, и их следует устанавливать на всех серверах SharePoint. Однако в случаях, когда вы на серверах SharePoint применяете антивирусные программы для файловых систем, важно исключать из процедуры проверки определенные каталоги SharePoint. При проверке этих каталогов SharePoint может потерять способность быстро считывать и записывать файлы, а, кроме того, возможны ложные срабатывания. Полный список каталогов, в которых не следует проводить антивирусные проверки, содержится в подготовленной специалистами Microsoft статье «Certain Folders Maybe Have to be Excluded from Antivirus Scanning when You Use a File-Level Antivirus Program in SharePoint» (http://support.microsoft.com/kb/952167). Этот список весьма обширен. Антивирусные средства должны выполняться на ваших серверах — но так, чтобы они не мешали продуктам SharePoint выполнять свои задачи.
Вторая категория антивирусных программ — это антивирусные средства с функциями доступа к SharePoint; вы можете запускать их на серверах SharePoint с целью сканирования документов, загружаемых в Интернет или выгружаемых из него. В комплект поставки SharePoint антивирусные средства не входят, но эти продукты комплектуются средствами интеграции с решениями независимых поставщиков, которые могут затем сканировать файлы в процессе их выгрузки, в процессе загрузки или в обоих случаях. Упомянутые решения также могут периодически проверять файлы, хранящиеся на ферме (эта возможность предусмотрена на тот случай, если новые определения вирусов обнаружат инфицированные файлы, не выявленные ранее). Некоторые антивирусные средства от независимых поставщиков позволяют осуществлять проверку с помощью нескольких модулей.
Рассматриваемые программные средства обеспечивают защиту, но они защищают не серверы SharePoint, а только настольные системы, осуществляющие загрузку документов. Организация нескольких линий обороны не приносит ничего, кроме пользы, и описанный тип антивирусных проверок представляет собой еще один пример защиты с помощью комбинации «ремень плюс подтяжки». В идеальном мире антивирусное программное обеспечение конечных пользователей вылавливало бы все инфицированные файлы, загруженные пользователями из ресурсов SharePoint, но все мы знаем, что такое решение не дает стопроцентной гарантии. Определения вирусов нередко попадают в память настольных систем лишь по прошествии длительного времени. Более того, может случиться, что вы лишитесь контроля над настольными системами, на которых к тому же вообще не будет установлено никаких антивирусных средств. Кто-то скажет, что отслеживание таких ситуаций вообще не входит в круг задач администратора SharePoint. Так-то оно так, но имейте в виду, что если система домашнего пользователя будет заражена в результате загрузки PDF-документа с вашей фермы SharePoint, это станет ударом по репутации именно вашего сайта.
Если вы хотите, чтобы вас считали ответственным администратором SharePoint, рассмотрите возможность проверки на вирусы документов, хранящихся на вашей ферме. Эти проверки будут потреблять часть ресурсов сервера; примите это во внимание, когда будете рассчитывать необходимые ресурсы для серверов и планировать тактику антивирусной защиты. Конечно, путь на вашу ферму для всяких «ползучих тварей» должен быть закрыт — но не за счет снижения общей производительности. Как и при использовании прочих средств защиты, вам нужно найти оптимальное сочетание безопасности и удобства.
Безопасность по всем фронтам
Безопасность — тема обширная. Она применима ко многим аспектам функционирования SharePoint. В данной статье мы рассмотрели ряд способов повышения уровня защищенности серверов SharePoint с помощью таких средств, как блокировка портов, совершенствование безопасности учетных записей служб и проверки средствами антивирусных программ. Дополнительные детали можно найти в статье Microsoft «Plan Security Hardening (SharePoint Foundation 2010)» по адресу http://technet.microsoft.com/en-us/library/cc288143.aspx. Надеюсь, изложенные выше приемы станут частью вашего арсенала средств защиты и помогут вам обеспечить безопасное функционирование серверов SharePoint.