Как и другие организации большого размера, корпорация Microsoft для выполнения своих повседневных рабочих задач использует самые разнообразные бизнес-приложения, которые функционируют в непростых производственных и правовых условиях. Не менее сложной является и ИТ-инфраструктура, обеспечивающая выполнение этих задач. В результате проблема обеспечения безопасности приложений затрагивает множество различных областей, в том числе:
Организационная структура подразделения
Служба информационных технологий в корпорации Microsoft подразделяется на функциональные отделы, часть которых занимается непосредственно информационными технологиями (в частности, подразделение информационных технологий), в то время как другие несут ответственность за работу отдельных организационных структур, например отдела кадров, финансового, юридического отделов и многих других. Подразделение информационных технологий отвечает за согласованность работы и взаимодействие всех ИТ-отделов (включая отдел безопасности), занимающихся созданием приложений.
Такая концентрация служб в интрасети способствовала рационализации документооборота, однако одновременно она привела к созданию большого количества разнообразных приложений и баз данных, содержащих важные бизнес-данные, а также конфиденциальные сведения сотрудников. К концу 2002 года имелось уже свыше 1000 таких приложений и программных средств. Обеспечение их безопасности и было возложено на подразделение информационных технологий.
Первая из них заключается в проведении в рамках корпорации Microsoft совместного тестирования и развертывания бета-версий отдельных продуктов в вычислительной среде реально действующей организации. В этой работе принимают участие группы разработчиков тех или иных конкретных продуктов. Вторая функция состоит в повышении оперативности деятельности организационных структур Microsoft путем создания и поддержания в рабочем состоянии вычислительной среды, позволяющей сотрудникам, партнерам и клиентам корпорации во всем мире работать более рационально и эффективно.
Программа MOF представляет собой набор советов, рекомендаций, общих принципов, примеров и моделей. В рамках MOF предоставляются стандарты по достижению необходимого уровня надежности, доступности, поддержки и управляемости ИТ-решений. Эти правила и рекомендации собраны с помощью специалистов консультационной службы Microsoft Consulting Services, подразделения информационных технологий корпорации Microsoft, сотрудников библиотеки инфраструктуры информационных технологий (Information Technology Infrastructure Library), а также бизнес-партнеров корпорации Microsoft.
Однако эта точка зрения уже не соответствует реальности, поскольку цена упущений в профилактической защите ИТ-инфраструктуры организации и ее данных часто намного выше, чем инвестиции, необходимые для обеспечения их безопасности. К сожалению, значительная доля попыток несанкционированного доступа к секретным или конфиденциальным данным чаще всего выполняется злоумышленниками, уже преодолевшими корпоративный брандмауэр.
Уязвимые места в системе безопасности могут оказать существенное влияние на производительность и доступность приложений и сети, что может снизить эффективность работы конечных пользователей во всей организации. ИТ-инфраструктура, приложения и отделы связей с общественностью, которым приходится сталкиваться с такими уязвимыми местами, также подвергаются существенным нагрузкам, что приводит к еще большему увеличению ресурсов, необходимых для устранения последствий вторжения.
Подразделение информационных технологий одновременно применяет несколько методов снижения риска при внедрении новых внутренних приложений в корпоративную сеть Microsoft:
Вначале, согласно программе ASAP, требуется провести оценку уровня безопасности всех приложений, находящихся в стадии разработки. Глубина анализа определяется ожидаемым уровнем риска для безопасности приложения. Решение наиболее острых проблем гарантирует, что находящиеся в стадии разработки приложения отвечают поставленным требованиям, и обеспечивает основу для соответствия стандартам во всех группах разработки приложений до того, как эти стандарты будут использоваться при разработке новых приложений.
Программа ASAP включает несколько возможных контрольных точек в производственном цикле разработки программного обеспечения. На высшем уровне предусматриваются следующие контрольные точки:
Ограниченные оценки используются для уровня сети, операционной системы и таких технологий Microsoft BackOffice, как базы данных и веб-серверы. Выполняется поиск таких уязвимых мест, как неиспользуемые открытые порты маршрутизаторов, разрешения на доступ к файлам, неиспользуемые службы, незащищенные пароли и ненужные учетные записи.
Всесторонние оценки включают все проверки процесса ограниченной оценки плюс исследование исходного кода приложения и используемых им данных.
В поиск уязвимых мест входят проверки веб-страниц, для посещения которых не требуется авторизация; сеансов, в которых не может быть предотвращено заимствование прав или атака с помощью воспроизведения файлов cookie; сообщений об ошибках, раскрывающих конфиденциальную информацию (например, имена серверов или пользователей); данных, которые содержатся в одном из каких-либо приложений и могут использоваться для вторжения в другое приложение.
Рис. 1. Отделы, задействованные в программе ASAP.
Рис. 2. Структура процесса обеспечения безопасности приложения.
Процесс поддержки и публикации политики и инструкций проиллюстрирован на рис. 3.
Рис. 3. Процесс соблюдения и публикации политики и инструкций.
Все приложения, для которых с точки зрения Microsoft необходима оценка угроз, проходят три отдельные проверки безопасности: одну – после проектирования, одну – после тестирования и еще одну – после развертывания в организации. В идеальном случае оценка должна выполняться еще до начала этапа проектирования, если уже известны технические детали, необходимые для ее выполнения. Это обеспечивает более точное планирование контроля проекта.
Опыт, полученный при реагировании на инцидент нарушения безопасности, отражается в политиках и инструкциях по проведению контроля, с тем чтобы исключить в будущем такие инциденты.
Чтобы минимизировать риск нарушения безопасности, необходимо реализовать детальную стратегию защиты среды, в которой выполняются приложения, от внутренних и внешних угроз. Данная стратегия, получившая название всесторонняя защита (defense in depth или security in depth), предполагает выстраивание уровней контрмер вокруг уязвимых областей. Она предусматривает внедрение мер защиты на каждом уровне инфраструктуры приложений, от внешних маршрутизаторов до места физического размещения ресурсов, включая все промежуточные пункты. Реализация нескольких уровней безопасности позволяет исключить зависимость приложений и ресурсов от отдельного сбоя.
Контрмеры, используемые для обеспечения безопасности, могут иметь множество форм: письменное изложение правил соблюдения безопасности, параметры настройки инфраструктуры, мониторинг приложений и обнаружение атак.
Топология сети организации должна быть проанализирована с точки зрения сетевой безопасности:
Ненужные расширения файлов не следует назначать на веб-серверах, поскольку это может привести к атакам с применением неизвестных уязвимостей3.
помогает администраторам и лицам, ответственным за решение проблем в области безопасности, анализировать предпринятые атаки и решать другие задачи. Он также защищает пользователей от возможных подозрений, связанных с незаконным использованием компьютеров или преступлениями в области информационных технологий.
Сбой в любой точке приложения не должен приводить к нарушению безопасности. Все переменные управления, относящиеся к безопасности, должны приводиться к наиболее безопасному состоянию при инициализации, а при ненормальном завершении приложения должен выполняться нормальный выход с удалением всех не подлежащих разглашению данных и блокировкой кода сеанса. Это позволяет предотвратить использование ошибки злонамеренным пользователем или программой.
Выполняя оценку безопасности внутренних приложений, подразделение информационных технологий обычно получает представление о проблемах, относящихся к разработке.Заранее устранив выявленные таким образом проблемы, разработчики могут повысить безопасность своих продуктов и содержащихся в них данных.
Следует считать входящие данные недействительными, пока не будет доказано обратное, даже если приложение предполагает, что все запросы действительны. Чем быстрее приложение распознает недопустимый запрос, тем меньше опасность ущерба от выполнения злонамеренного кода. Злоумышленники учитывают то, что медленное распознавание недопустимых запросов в системе влияет на обработку законных запросов, снижая производительность сервера. Это наиболее распространенный пример проведения атак с отказом в обслуживании.
Длительные и ресурсоемкие операции требуют такого же уровня безопасности, как и личные данные. Перед выполнением длинного SQL-запроса или операции, требующей значительных вычислительных ресурсов, необходимо сначала подтвердить законность запроса. Проверка подлинности веб-страницы, с которой поступает запрос, не только предотвращает расходование ресурсов сервера приложений злонамеренными пользователями, но и позволяет отслеживать события в журналах аудита, благодаря чему администраторы могут определить конкретного нарушителя.
Опыт, полученный подразделением информационных технологий, говорит о том, что шифрование файлов cookie должно быть обязательным во всех случаях. Файлы cookie никогда не должны применяться для хранения данных о привилегиях или разрешениях пользователей, поскольку это может привести к несанкционированному воспроизведению (replay attack) или неправомочному имитированию пользователя (unauthorized impersonation).
Контроль доступа не должен основываться на последовательном увеличении значения кода, представленного в виде простого текста. Для устранения этой уязвимости необходимо выполнять проверку подлинности пользователя и проверку его разрешений. Альтернативным способом является шифрование последовательного ключа и отправка полученного непоследовательного значения клиенту.
Веб-страницы интернета должны выполнять проверку учетных сведений. Это предотвращает возможность непосредственного подключения злоумышленников к веб-страницам, поскольку их подлинность не будет подтверждена.
Использование простого текста в протоколе HTTP (Hypertext Transfer Protocol) позволяет злоумышленникам применять в локальной сети средства прослушивания для анализа и сбора секретной информации, включая файлы cookie и значения форм. Обычная проверка подлинности не защищает даже учетные данные пользователя (включая пароль).
Поскольку сценарии JavaScript и вспомогательные веб-файлы доступны всем пользователям, существует возможность раскрытия конструкции приложения. Клиентские сценарии всегда доступны пользователю, в то время как серверные вспомогательные веб-файлы обычно защищены от несанкционированного доступа.
Соблюдение политик в отношении паролей требуется во всех случаях. Уровень риска, связанный с использованием ненадежных паролей, оценивается как высокий. Угадывание пароля – распространенный и нередко эффективный способ незаконного доступа к системам. Преодолев брандмауэр и попав на целевой компьютер, злоумышленники могут применить широко доступные средства эксплуатации уязвимостей для получения доступа в корневой каталог или прав администратора.
Безопасность на основе ролей позволяет задавать параметры безопасности вплоть до уровней пользователя и метода; это означает, что с ее помощью можно определить, какие пользователи имеют права доступа к тем или иным ресурсам. Если для пользователя применяется роль, присвоенная запрашиваемому методу или ресурсу, то запрос будет выполнен успешно; в противном случае запрос выполнен не будет.
Подразделение информационных технологий настоятельно рекомендует не изменять параметры безопасности приложения. Приложение, использующее безопасность на основе ролей, может содержать код, зависящий от проверки принадлежности к роли. Изменение параметров безопасности может привести к тому, что такое приложение не запустится, будет выполняться неправильно или останется без защиты.
В ходе этого процесса подразделение информационных технологий получило богатый опыт. В частности, им были выработаны следующие правила:
1 Программное обеспечение, которое является ключевым компонентом существующего приложения (как, например, веб-служба, компонент COM+, служба Microsoft .NET, реплицированная база данных отчетности или пакетное задание), не рассматривается независимо от приложения, к которому этот компонент принадлежит.
2 Нередко в системах обнаружения атак более 90% всех событий приходится на ложные срабатывания. Хотя журналы могут быть переполнены сообщениями о незначимых с точки зрения безопасности событиях, группы, отвечающие за безопасность, все-таки должны внимательно просматривать эти журналы для выявления реальных вторжений.
3 Атака с применением неизвестной уязвимости (zero-day exploit) – это атака, использующая обнаруженную злоумышленником уязвимость, о который или еще не известно производителю, или для устранения которой еще не было выпущено исправление.
4 ACL (Access Control List) – список контроля доступа. Используется сетевой операционной системой для определения прав доступа к общим сетевым ресурсам.
5SNMP (Simple Network Management Protocol) – простой протокол сетевого управления. Применяется для диагностирования работоспособности различных локальных вычислительных сетей.
6 MIB (Management Information Base) – база управляющей информации. Корпоративная база данных, содержащая информацию о контролируемых и управляемых параметрах сетевых устройств.
7 В л о ж е н и е п р о г р а м м н о г о к о д а (code injection) – технология, часто применяемая для получения незаконного доступа к данным или привилегиям. Изменение строки пользовательского ввода обычно выполняется путем добавления специальных символов и другого текста, распознаваемого обработчиками сценариев и базами данных и выполняемого ими в качестве сценария.
8 К о д с е а н с а – это уникальный идентификатор, определяющий пользователя и связывающий его с запросами, передававшимися на сервер в течение последнего времени. Код сеанса выполняет роль постоянного подтверждения подлинности. При отсутствии более надежных методов проверки подлинности (например, обычной или встроенной в Windows проверки подлинности) любой человек, располагающий кодом сеанса, может олицетворять соответствующего пользователя в веб-приложении до истечения срока действия сеанса. Срок действия сеанса обычно истекает после 5–20 минут бездействия.
© Информационное общество, 2003, вып. 6, сс. 49-62.