«Дыры» в защите информационных систем обычно возникают из-за стандартных ошибок в их проектировании и эксплуатации, и для проникновения в них нарушители пользуются не менее стандартными методами.

Перечисляя наиболее актуальные угрозы информационной безопасности, специалисты обязательно называют три класса угроз:

  • вирусные эпидемии;
  • DoS-атаки на доступные извне информационные ресурсы компаний;
  • использование сотрудниками компании внутренней информации, включая передачу инсайдерской информации третьим лицам.

Угрозы, связанные с проникновением нарушителей в информационные системы компаний извне, в качестве актуальных сегодня не рассматриваются. Подобная позиция основывается на двух утверждениях: во-первых, периметр вычислительной сети компаний обычно достаточно хорошо защищен; во-вторых, доступ к корпоративным информационным ресурсам не принесет нарушителю материальной выгоды.

Насколько эти утверждения соответствуют действительности? Приведенный во врезке пример массовых атак на торговые сети, получивший широкую известность, дает представление о том, каков может быть масштаб деятельности хакеров, и показывает, что факты взлома обнаруживаются далеко не сразу.

Немного истории

Летом 2007 г. турецкая полиция арестовала украинского хакера Максима Ястремского. На изъятом у него ноутбуке была обнаружена партия предназначавшихся для продажи копий магнитных полос платежных карт  (т.н. «дампов»).  К допросам сразу же подключились специалисты секретной службы США, которые и передали турецким коллегам информацию о хакере. Показания Ястремского привели к раскрытию нескольких уголовных дел, вызвавших широкий общественный резонанс.

В 2003 г. два хакера, Альберт Гонзалес и Кристофер Скотт, организовали массовые атаки на магазины нескольких крупных торговых сетей США. Атаки были организованы следующим образом: хакеры парковались возле магазина и, используя опубликованные к тому времени методы взлома криптографических механизмов WEP, подключались к его беспроводной точке доступа. Через различные уязвимости они получали доступ к операционной системе кассовых терминалов и копировали данные магнитной полосы платежных карт при оплате товара покупателем.

В 2005 г. им удалось таким же образом получить доступ к беспроводным точкам доступа магазинов сети TJX. При анализе инфраструктуры хакерам удалось найти ошибки в сетевой защите процессингового центра TJX, получить контроль над операционной системой одного из серверов и установить на него разработанную Ястремским программу, обеспечивающую перехват сетевого трафика. Программа накапливала данные, извлекала из них данные магнитной полосы платежных карт и копировала их на внешний сервер, специально арендованный для этих целей. Эта схема успешно проработала с марта 2006-го по май 2008 г. и так и не была обнаружена защищающейся стороной. Процессинговый центр получил уведомление об инциденте от секретной службы США, которая к тому времени, опираясь на показания Ястремского, собирала обвинительный материал против Гонзалеса. Точное количество скомпрометированных хакерами карт неизвестно, в материалах уголовного дела фигурирует факт единовременной продажи Гонзалесом партии в 40 млн дампов.

Параллельно с атакой на TJX Ястремский в паре с хакером из Эстонии Александром Суворовым организовал удаленную атаку на сеть ресторанов Dave&Buster’s. Хакерам удалось преодолеть внешний периметр защиты и получить доступ к концентратору, на котором аккумулировался трафик между кассовыми терминалами и процессинговым центром. Операция длилась четыре месяца и закончилась арестом Ястремского. На основании его показаний были предъявлены обвинения и Суворову, который был арестован немецкой полицией в транзитной зоне аэропорта во Франкфурте. Точный объем украденных данных неизвестен.

В ходе расследования атаки на TJX сотрудники секретной службы организовали прослушивание телефонных переговоров и Интернет-трафика Гонзалеса. Из перехваченных данных им стало известно о возможной успешно проведенной атаке против процессингового центра Heartlend Payment Systems и еще двух процессинговых компаний. Как оказалось впоследствии, Гонзалес и двое его сообщников из бывших советских республик проанализировали веб-порталы крупнейших (по версии журнала Fortune) мировых процессинговых компаний, и на трех из них обнаружили уязвимости типа «внедрение операторов SQL». Эксплуатация этих уязвимостей позволила хакерам на всех трех порталах преодолеть периметр защиты и получить контроль над несколькими серверами. В результате был организован перехват трафика, из которого с помощью все того же снифера извлекались данные платежных карт. Полученные данных копировались на арендованные внешние серверы.

Сотрудники секретной службы уведомили о возможном инциденте руководство Heartlend Payment Systems, которое инициировало внутреннее расследование, однако найти подтверждение инцидента специалистам компании не удалось. Подтвердить проникновение удалось только в результате повторной экспертизы, проведенной после ареста Гонзалеса и получения признательных показаний. В результате проведенной хакерами операции только из Heartlend Payment Systems были скопированы данные 130 млн карт.

Отсканированные экземпляры обвинительных заключений по всем трем уголовным делам опубликованы на сайте министерства юстиции США. Из 16 фигурантов находятся под следствием или осуждены пятеро, еще двое были освобождены от ответственности. Личности остальных девяти фигурантов, в том числе нескольких непосредственных исполнителей хакерских атак, до сих пор не установлены.

В России информация о подобных инцидентах не столь доступна, но это не означает, что такие атаки отсутствуют. Как правило, целью нарушителей становятся рабочие места, с которых производятся платежи с помощью систем «клиент-банк». Причем если раньше нарушителям было достаточно только скопировать закрытые криптографические ключи, которыми подписываются платежные поручения, то в последнее время, в связи с переходом на аппаратные ключевые носители, нарушителям приходится получать полный контроль над этими рабочими местами, отправляя поддельные платежные поручения непосредственно с них.

Как правило, причиной подобных инцидентов становятся стандартные ошибки в проектировании и эксплуатации информационных систем, и нарушитель пользуется для проникновения не менее стандартными методами, эксплуатирующими подобные ошибки. Эти ошибки и основанные на них методы взлома мы и рассмотрим.

Уязвимости веб-приложений

Уязвимости веб-приложений — наиболее распространенный сегодня способ проникновения в информационные системы компаний и реализации атак на клиентов этих компаний. По результатам исследования [1], проведенного экспертами компании Positive Technologies, в 2008 г. практически каждый корпоративный веб-портал содержал уязвимости уровней Urgent или Critical, позволяющие нарушителю получить контроль над  порталом и/или использовать его для атак на внутренние информационные ресурсы компании либо рабочие места посетителей портала (рис.1).

1.jpg

Рис. 1. Распространенность уязвимостей различных категорий

Один из распространенных методов атаки — внедрение операторов SQL. Эта техника позволяет нарушителю передавать веб-приложению на исполнение произвольные (пусть и с некоторыми ограничениями) конструкции языка SQL. При этом используется распространенная ошибка разработки веб-приложений, при которой SQL-запросы к СУБД формируются на основании передаваемых пользователем параметров без дополнительной семантической проверки получившегося запроса. Это позволяет нарушителю, передавая не предусмотренные разработчиком приложения параметры, изменять семантику формируемых SQL-запросов, например, дополняя запросы собственными операторами или изменяя логические выражения в параметрах выборки. Самостоятельно формируя значение параметра id, нарушитель может передавать веб-приложению собственные SQL-запросы. Подобная техника позволяет нарушителю решать широкий круг задач: от изменения контента веб-приложения до получения контроля над ним.

Аналогичная ошибка, допускаемая разработчиками Web-приложений, состоит в том, что принимаемый от пользователя параметр передается в качестве аргумента при вызове из кода веб-приложения команд операционной системы. Такая ошибка классифицируется как “выполнение команд операционной системы” и позволяет нарушителю навязывать серверу исполнение собственных команд.

Еще одна часто встречающаяся ошибка – предсказуемый идентификатор сессии. Идентификация сессии – стандартный механизм авторизации пользователей, используемый в веб-приложениях. После успешной аутентификации пользователя приложение присваивает его сессии уникальный идентификатор, который передается серверу в каждом последующем запросе этого пользователя и используется для подтверждения его аутентичности. Надежность такого механизма основана на двух предпосылках: что нарушитель не может перехватить идентификатор сессии и что длина идентификатора не позволяет нарушителю в приемлемые сроки выполнить перебор возможных вариантов.

Наибольшая эффективность данного механизма достигается тогда, когда каждый следующий генерируемый приложением идентификатор является элементом равномерно распределенной случайной последовательности. Однако в реализации механизмов генерации идентификаторов сессии встречаются ошибки, сильно сужающие область перебора. При этом у нарушителя, имеющего в своем распоряжении один идентификатор, появляется возможность поиска идентификаторов сессий остальных пользователей, активно использующих приложение в момент атаки.

Ошибки в веб-приложениях не всегда используются нарушителем для атак именно на это приложение. Зачастую цель взлома — рабочие места пользователей этого приложения, и чаще всего для этого используются уязвимости, приводящие к возможности межсайтового исполнения сценариев (XSS). Предпосылкой для их появления становится все та же ошибка программирования, при которой отображаемый контент формируется на основании параметров, передаваемых в HTTP-запросе, без семантической проверки этих параметров. Межсайтовое выполнение сценариев возможно тогда, когда значение передаваемого параметра непосредственно включается в тело формируемой веб-сервером HTML-страницы.

Уязвимости XSS разделяют на постоянные (persistent) и отраженные (reflected). Постоянная XSS позволяет нарушителю внедрять свой код в долговременный контент веб-приложения (например, в сообщения на форумах или в комментарии к новостям). Внедренный с ее помощью код будет исполнен в браузере каждого из посетителей измененной страницы. Отраженная XSS встречается значительно чаще и характерна для приложений, однократно отображающих значение переданного параметра в сгенерированной на основании пользовательского запроса странице (например, для поисковых систем, когда в результатах поиска отображается введенный пользователем запрос).

Уязвимости XSS широко и разнообразно используются при атаках на рабочие места пользователей с использованием методов социальной инженерии.

Уязвимости инфраструктуры

Проблемы парольной защиты

Разработчики бизнес-приложений часто допускают одновременно две ошибки:

  • не предусматривают ограничения на минимальную сложность задаваемого пользователем пароля;
  • не предусматривают механизмов противодействия автоматическому перебору паролей (ввода CAPTCHA, блокировку учетной записи после определенного числа неуспешных попыток аутентификации и т.п.).

Как показывают результаты исследования, проведенного компанией Positive Technologies [2], если применять средства, ограничивающие минимальную длину пароля, российские пользователи склонны выбирать пароли, являющиеся сочетанием клавиш, расположенных рядом на клавиатуре. При этом почти 9% пользователей используют один из 10 наиболее распространенных паролей (табл. 1). Кстати, подобные пароли, хотя и в меньшей степени, характерны и для механизмов аутентификации операционных систем и приложений, в которых предусмотрены средства контроля сложности задаваемых паролей.

Таблица 1. Топ-10 наиболее часто встречающихся паролей

Пароль Частота встречаемости
1234567 3,36%
12345678 1,65%
123456 1,02%
<пустая строка> 0,72%
12345 0,47%
7654321 0,31%
qweasd 0,27%
123 0,25%
qwerty 0,25%
123456789 0,23%
Итого 8,53%

При такой частоте встречаемости паролей успех нарушителя при подборе учетных записей определяется двумя факторами: количеством пользователей в информационной системе и наличием перечня актуальных имен пользователей (или возможности подбора имен).

Как правило, на поздних этапах проникновения нарушитель уже имеет список актуальных имен пользователей, полученных в результате доступа к каталогу Active Directory, таблицам баз данных, документам на рабочих местах пользователей или корпоративной электронной почте. Но и на начальных этапах у нарушителя зачастую есть возможность эффективного перебора имен.

Еще одной серьезной проблемой является использование стандартных паролей, устанавливаемых по умолчанию. При установке программного обеспечения создаются так называемые технологические учетные записи, которые служат для первого входа пользователя в систему или для взаимодействия программных компонентов между собой. Такие учетные записи стандартны для определенной версии программного обеспечения, их состав может меняться от версии к версии, а их количество для отдельного семейства программ может достигать десятков и сотен (к примеру, для СУБД Oracle различных версий известно до 1000 стандартных сочетаний имени и паролей «технологических» пользователей). Как правило, после установки системы администраторы забывают изменить заданные по умолчанию пароли или заблокировать ненужные учетные записи.

Кроме онлайновых методов подбора пароля, нарушителю доступны и другие методы. Например, из соображений безопасности в информационных системах хранятся не пароли пользователей,  а результаты вычисления хэш функции от этих паролей. Необратимость хэш-функции обеспечивает невозможность восстановления пароля, однако это верно только для паролей достаточной сложности.

Согласно результатам того же исследования (табл. 2), большая часть пользователей использует пароли длиной до восьми символов включительно. В настоящее время в рамках нескольких открытых проектов [3] проводится расчет значений хэш-функции для паролей различной длины в различных алфавитах. Готовые таблицы значений хэш-функции, находящиеся в открытом доступе, обеспечивают высокий процент восстановления паролей такой длины, причем восстановление одного пароля занимает несколько минут.

Таблица 2. Частота встречаемости паролей разной длины

Длина Частота встречаемости Вероятность компрометации
0 0,71% 100%
1 0,26% 99,29%
2 0,39% 99,03%
3 1,37% 98,64%
4 2,03% 97,27%
5 4,86% 95,24%
6 27,22% 90,38%
7 21,75% 63,16%
8 25,22% 41,41%
9 6,50% 16,19%
10 4,42% 9,69%
11 2,83% 5,27%
12 1,33% 2,44%
13 0,40% 1,11%
14 0,34% 0,71%

Благодаря этому источниками паролей пользователей для нарушителя могут служить:

  • конфигурационные файлы сетевого оборудования;
  • файлы /etc/shadow операционных систем Unix;
  • резервные копии операционных систем;
  • сетевой трафик;
  • системные таблицы СУБД, в том числе доступные с помощью уязвимостей веб-приложений, и т.п.

Недостатки сетевой инфраструктуры

Ошибки в сетевой архитектуре упрощают нарушителю выполнение ряда атак. К наиболее распространенным можно отнести:

  • проблемы сегментирования локальной вычислительной сети и межсетевого экранирования;
  • использование сетевых протоколов, позволяющих нарушителю собирать информацию о сетевых устройствах или навязывать сетевым устройствам собственные настройки сетевого взаимодействия;
  • использование незащищенных или недостаточно защищенных протоколов прикладного уровня.

При правильной организации локальной вычислительной сети рекомендуется выделять разделять ее на сегменты разного функционального назначения и обеспечивать фильтрацию трафика на границах сегментов. Эти рекомендации зачастую не выполняются.

Распространенной ошибкой является предоставление доступа из сети Интернет к узлам, размещенным в пользовательском или серверном сегментах ЛВС. Это позволяет нарушителю, получив контроль над одним из приложений, серверов или рабочих станций, беспрепятственно атаковать остальные узлы ЛВС. Кроме того, нередко предоставляется доступ из Интернета к управляющим интерфейсам приложений, серверов и сетевого оборудования.

При подключении серверов и рабочих мест к коммутаторам ЛВС зачастую не принимаются меры противодействия сетевым атакам со стороны внутренних узлов ЛВС (от атаки типа «отравление кэша ARP» до эксплуатации уязвимостей в сетевых сервисах), а также не выполняются настройки протоколов управления, направленные на скрытие топологии сети от рядового пользователя. Это позволяет нарушителю, получив контроль над одним из внутренних узлов, исследовать сеть, выявлять соседние устройства и организовывать атаки на них.

При развертывании сетевых сервисов вместо защищенных вариантов протоколов прикладного уровня для передачи чувствительной информации используются их аналоги без криптографии или со слабой криптографической защитой – NTLM вместо Kerberos, POP3 вместо IMAP, SNMP v.2 вместо v.2c или V.3, а также SMTP, FTP и HTTP без поддержки SSL/TLS. Это позволяет нарушителю перехватывать чувствительную информацию, в том числе новые учетные записи.

Уязвимости беспроводных сетей

В беспроводных сетях допускается несколько типичных ошибок, среди которых отметим две. Это защита беспроводного трафика с использованием протокола WEP и возможность подключения ноутбуков пользователей к произвольным точкам беспроводного доступа.

Протокол WEP использует слабые методы криптографической защиты, что позволяет нарушителю сравнительно легко восстановить криптографические ключи, применяемые при взаимодействии устройств. Это позволяет нарушителю подключаться к беспроводной сети и организовывать атаки, находясь внутри периметра защиты. Последствия такой атаки очевидны.

Использование сотрудниками компании ноутбуков создает для нарушителя дополнительный вектор проникновения. Соединяясь с посторонней точкой доступа, пользователь попадает в среду, созданную владельцем этой точки доступа. При этом совершенно не исключено, что точка доступа, в свою очередь, контролируется злоумышленником. Кроме того, владелец точки доступа, если он не является оператором связи, не имеет перед пользователем никаких обязательств по обеспечению тайны связи.

Как правило, в отношении мобильных устройств применяются те же меры защиты, что и для стационарных рабочих мест (особенно в части управления уязвимостями и установки патчей). Выбор этих мер ориентирован в первую очередь на работу внутри внешнего периметра защиты, которые является первым рубежом защиты, отводя ряд угроз. При подключении к сторонней точке доступа этот рубеж отсутствует, о чем администраторы, настраивающие функции безопасности операционной системы и индивидуальные средства защиты, часто забывают.

Уязвимости и ошибки конфигурации программного обеспечения

Одна из самых серьезных проблем в обеспечении информационной безопасности российских компаний — несвоевременная установка обновлений безопасности или отказ от их установки. Причины тому называют разные. Например, в случае установки обновлений на серверы, находящиеся в промышленной эксплуатации, обслуживающий персонал нередко опасается того, что программное обеспечение в результате будет работать нестабильно. Установка обновлений на рабочие места пользователей затрудняется большим количеством используемых программ и невозможностью своевременно отслеживать выпуск обновлений.

Сканирование внутренних узлов ЛВС большинства российских компаний показывает примерно одинаковую картину (рис. 2).

Распределение уязвимостей

2.jpg

Уязвимые службы

3.jpg

Рис. 2. Пример результатов сканирования контроллера домена

Аналогичную картину можно наблюдать при анализе конфигурации программного обеспечения. Для безопасной работы Windows XP необходимо настроить свыше 200 параметров; из них около 60% настраиваются автоматически при инсталляции операционной системы, а остальные параметры требуют дополнительной настройки. Как правило, анализ конфигурации показывает, что подобная настройка не выполняется, что приводит к появлению на рабочих станциях типичных ошибок конфигурации:

  • использование протокола NTLM;
  • сохранение паролей (точнее, значений хэш-функции) LanManager;
  • автозапуск с отчуждаемых носителей и т.п.

Подобные ошибки активно используются для проникновения в информационные системы. Возможность атаки на уязвимые сетевые сервисы появляется после преодоления внешнего периметра с использованием одного из перечисленных в предыдущих разделах недостатков. Однако в последние несколько лет нарушители предпочитают атаковать рабочие места пользователей, используя уязвимости клиентского программного обеспечения и недостаточную осведомленность пользователей в вопросах информационной безопасности.

Заключение

Итак, успешное проникновение в корпоративную вычислительную сеть — это, как правило, результат допущенных защищающейся стороной ошибок.

Наиболее эффективны с точки зрения приближения к цели методы атаки, позволяющие нарушителю получить учетные записи пользователей. Успех подобной атаки дает ему самый широкий спектр дополнительных возможностей, начиная с доступа к информационным системам от имени этого пользователя, с предоставленными ему правами и с использованием штатных средств доступа. Появляется и возможность ознакомления с документами и почтовыми сообщениями пользователя, откуда нарушитель может почерпнуть полезную информацию об информационных ресурсах, организации работы с ними, а также дополнительную информацию о сотрудниках компании, которую можно использовать для организации атак с применением методов социальной инженерии.

В представлении ИТ-специалистов наиболее опасны уязвимости сетевых сервисов — однако это не так. Как правило, нарушителю удается добиться поставленной цели еще до того, как у него появится техническая возможность поиска и эксплуатации уязвимостей программного обеспечения целевого сервера. Значительно быстрее приводит к цели использование ошибок в архитектуре информационных систем и настройках программного обеспечения.

Серьезную опасность представляют атаки на рабочие места пользователей с использованием методов социальной инженерии. В то же время хотелось бы отметить, что первопричина успешной атаки — не низкая осведомленность пользователей, а наличие на рабочем месте уязвимостей и ошибок конфигурации, возможность использовать которые нарушитель получает в результате действий пользователя. В связи с этим необходимо еще отметить, что в публикациях по организационным аспектам обеспечения информационной безопасности несколько переоценивается важность мероприятий по повышению осведомленности. Как показывает практика, грамотно организованная «приманка» не вызывает подозрений даже у квалифицированных специалистов по информационной безопасности.

Артем СЫЧЕВ, к.т.н., доцент, начальник управления информационной безопасности ОАО «Россельхозбанк»
Дмитрий КУЗНЕЦОВ, руководитель отдела консалтинга, компания Positive Technologies

 


[1] Отчет «Статистика уязвимости Web-приложений за 2008 год», Д. Евтеев, 2009 ( http://www.ptsecurity.ru/download/Статистика уязвимости Web-приложений 2008.pdf).

[2] « Анализ проблем парольной защиты в российских компаниях», Д. Евтеев, 2009 ( http://www.ptsecurity.ru/download/PT-Metrics-Passwords-2009.pdf).

[3] Например, http://www.freerainbowtables.com/