НАУЧИВШИСЬ ДУМАТЬ ТАК ЖЕ, КАК И ПРЕПАРАТОРЫ КОДОВ, ВЫ СМОЖЕТЕ ЭФФЕКТИВНЕЕ ОТРАЖАТЬ ИХ АТАКИ

В ходе предвыборной президентской кампании 2004 г. Джереми Потит смог по достоинству оценить оперативность хакеров. Стоило ему завершить работу по защите Web-сайта и выложить его в Интернете, как уже через 16 минут сервер подвергся первой атаке. Однако ни эта, ни последующие попытки вторжения успеха их организаторам не принесли, поскольку Потит прекрасно знал методы сетевых взломов и предусмотрел надежную защиту от них. Откуда ему известны подобные тонкости, спросите вы? Все очень просто: Потит — самый настоящий хакер. А умение мыслить по-хакерски и владение хакерским инструментарием — это один из наилучших способов защитить свою компанию от атак извне.

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

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

Как отмечает Джордж Курц, автор книги “Hacking Exposed” (“Хакерство как оно есть”), за последние несколько лет цели хакеров коренным образом изменились: “Когда я начинал, часто можно было слышать «А зачем нужен брандмауэр, если стоит фильтр с маршрутизацией пакетов?» Сейчас таких вопросов уже не задают. Появление новых интерактивных приложений, связь серверных баз данных с Web 2.0 сделало системы намного более уязвимыми”. Отметим, что Курц в свое время основал в калифорнийском городе Мишн-Вьехо фирму Foundstone и начал обучать своих клиентов основам хакерства и защиты кодов. Сегодня его фирма входит на правах подразделения в состав McAffee, а сам Курц занимает пост вице-президента корпоративного подразделения этой компании.

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

“Воровские” игрушки

ДЖИМ РАПОЗА

Старая пословица гласит, что ловить вора сподручнее всего другому вору. Не знаю, насколько такое правило действует в настоящем криминальном мире, но когда дело доходит до защиты ресурсов ИТ, оно оправдывается в полной мере.

В большинстве случаев сотрудникам подразделений ИТ и специалистам в области безопасности недостает ни времени, ни знаний, чтобы подняться на уровень закоренелого хакера или опытного специалиста в этой области. Однако научиться думать так же, как они, не слишком-то сложно. Да и дело иметь чаще всего приходится не с ушлыми доками, а с любителями сценарных атак, которые по уровню своих знаний, как правило, ничуть не превосходят хорошо подготовленного специалиста безопасности, а то и уступают ему. Единственное их серьезное преимущество состоит в отличном знании простого хакерского инструментария и умении использовать его для манипулирования технологиями и проникновения через системы базовой защиты. Именно поэтому eWeek Labs советует всем специалистам безопасности обязательно познакомиться и с инструментом, и с методами работы, которые широко применяются типичными воришками. Многие из таких средств, кстати, могут принести немалую пользу компаниям, помочь им обнаружить и устранить потенциально слабые места защищаемой системы. В тестовом центре eWeek, скажем, такой инструментарий позволил нам вскрыть брешь в решении по IP-телефонии. С помощью сетевого сканера Cain & Abel мы смогли подключиться к такой сети и записать ведущиеся в ней разговоры.

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

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

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

Бреши прикладного уровня — явление далеко не новое. Еще в 2002-м именно через них Потит пришел к победе в организованном eWeek состязании OpenHack IV, участникам которого предлагалось взломать тестовый сайт электронной коммерции. Потит тогда сумел проникнуть на сервер через уязвимость приложения базы данных Oracle. Для этого он воспользовался диалоговым окном редактирования пользовательских профилей. В одном из его полей отображается имя пользователя, причем по умолчанию изменить его невозможно. Однако как только система принимает введенные реквизиты и Web-сервер начинает получать данные от браузера, такой запрет напрочь снимается — на этой стадии изменить можно все что угодно.

Под колпаком

Ниже приводится список операционных систем, приложений и сетевых компонентов, которые, по данным The SANS Institute и ФБР, чаще всего подвергаются атакам.

Операционные системы и приложения ядра

Internet Explorer

Библиотеки Windows

Microsoft Office

Слабые места в сервисах Windows

Mac OS X

Бреши в конфигурации Unix

Межплатформенные приложения

Web-приложения

СУБД

Приложения P2P для совместной работы с файлами

Системы мгновенных сообщений

Мультимедийные проигрыватели

Серверы доменной службы имен (DNS)

Программные средства резервного копирования

Серверы управления безопасностью, предприятием и каталогами

Сетевые устройства

VoIP-серверы и IP-телефоны

Сетевые и другие аппаратные компоненты, распространенные ошибки конфигурации

Политика безопасности и персонал

Слишком обширные права пользователей и самостоятельно установленное ими оборудование

Пользователи (фишинг, в том числе и целенаправленный)

Источник: SANS.

Примечание: список постоянно обновляется, здесь приведены данные по состоянию на ноябрь 2006 г.

Потит тогда ввел в это поле имя “A. Smith”, а затем стал ждать, как паук муху. Когда же некто вошел в систему под этим именем, хакер мгновенно выскочил из засады и получил доступ ко всем данным пользователя A Smith. Увы... Многие разработчики приложений думают совсем не так, как Потит на состязании OpenHack.

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

Обманувшись раз...

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

Бреши зачастую возникают из-за того, что в сообщения об ошибках включаются данные, которые позволяют проникнуть в систему. Широко используют хакеры также SQL-запросы, межсайтовые сценарии XSS, управление доступом в приложениях J2EE (Java 2 Platform, Enterprise Edition — платформа Java 2, корпоративный вариант). Особенно полюбились им SQL-запросы. Хорошо организованная атака такого рода позволяет извлекать информацию из всех таблиц базы данных. А если злоумышленнику удастся включить в пользовательский запрос еще и команду на редактирование, ему не составит труда даже манипулировать хранящимися здесь данными.

Выше мы привели лишь несколько типовых ошибок относительно безопасности приложений из первой десятки, представленной на сайте открытого проекта защиты Web-приложений по адресу www.owasp.org/index.php/OWASPTop_Ten_Project. Здесь же можно узнать, какую информацию не стоит включать в сообщения об ошибках, чтобы не помогать хакерам. Чего стоит, например, такое сообщение: “Microsoft OLE DB Provider for SQL Server error ‘80040e14’ Column ‘newsTBL.NEWS_ID’ is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause. G:\WEBSITES\WWW.SAMPLECOMPANY.COM/internal/dbSys.inc, line 241” (Ошибка 80040е14 модуля Microsoft OLE DB Provider for SQL. Столбец ‘newsTBL.NEWS_ID’ выбрать невозможно, так как он не содержит агрегатной функции и оператора GROUP BY)! Только из этого единственного сообщения злоумышленник узнает, что приложение поддерживает связь с базой данных посредством OLE DB, что для хранения базы данных используется SQL Server, что в базу данных можно послать команду SQL и что в ней присутствует столбец под названием newsTBL.

Кошмарные перспективы

Настоящим подарком для хакеров-коммерсантов стало в последнее время бурное развитие технологии руткитов. “В нашу исследовательскую лабораторию McAffee Avert Labs порой поступают такие руткиты, в существование которых просто трудно поверить, — признается Курц. — Попадаются и совершенно новые разработки, и обновленные повторы пройденного, и скрытые ловушки информации для финансовых мошенников”. Если раньше девизом хакеров было “Хочу найти брешь!”, то теперь на его место пришел другой: “Хочу найти брешь в приложении, автоматизировать ее, внедрить такую личинку в жертву, чтобы загружать страницы и заражать клиентов, чтобы те шли в мою сеть”.

Специалисты в области безопасности внимательно следят сейчас за “милитаризацией” двух новых технологий руткитов, которые вполне могут в один прекрасный день стать мощным каналом подпитки мошенников. Речь идет о виртуальных руткитах и зловредных гипервизорах. “Хорошо известно, что злоумышленники изыскивают все новые способы, позволяющие как можно дольше продержаться незамеченным в чужой системе, — говорит Джо Телафичи, вице-президент подразделения McAffee Avert Operations. — Чем больше времени они проводят там, тем больше жертв попадает в их сеть”.

Защита собственными силами

Недавно Дейв Эйтел, основатель и главный технолог фирмы Immunity, которая занимается разработкой программных средств безопасности и предлагает консультации в этой области, задался вопросом: а в чем, собственно, разница между организованной преступной онлайн-группой и коммерческой компанией, проверяющей свою систему на устойчивость к взломам? И вот что он выяснил: “У компаний большой бюджет, специализированная инфраструктура, опытный и хорошо подготовленный персонал. Так почему же многие из них ведут себя подобно хилым новичкам? Дело в том, что большие деньги и масштабность задач зачастую создают благодатную почву для ожирения и безделья”. Именно так написал он в своем блоге (seclists.org/dailydave/2007/q2/0073.html).

На основе своего богатого опыта он предложил “Шесть правил выхода за пределы своей весовой категории” — своего рода руководство по превращению небольшой группы экспертов безопасности в поджарую и экономную хакероподобную структуру, сходную с организованной преступной онлайн-группировкой.

Правило № 1. Не пользоваться тем, что не удалось отладить сразу.

“Сплошь и рядом случается так, что какой-то программный инструмент не работает, и это — вина его пользователя, — считает Эйтел. — Не стоит сбрасывать со счетов проблемы в сети между вами и целью. Даже если сеть защищена системой предупреждения взломов, можно заставить эксплойт сработать, но тому, кто никогда не написал ни одного эксплойта, сделать этого не удастся”.

Правило № 2. Не отделять исследования от реальных атак.

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

Правило № 3. Иметь “группу быстрого реагирования”, способную за 8 часов или меньше устранить несложную или критичную по времени брешь.

“Для разных задач нужны разные исследователи, — говорит Эйтел. — Лично я предпочитаю работать в «команде быстрого реагирования», а не в медленной аналитической, хотя нужны и та и другая”.

Правило № 4. Сосредоточиться на уже имеющихся технологиях.

“Исследовательские деньги лучше направлять на то, что уже развернуто, — рекомендует Эйтел. — Только здесь риски можно устранять оперативно”.

Правило № 5. Наладить техническое сотрудничество с другими специалистами, умеющими создавать эксплойты.

Станьте частью исследовательского сообщества, членов которого нетрудно отыскать на конференциях, в списках рассылки и каналах RIC (Real-time Interface Coprocessor — интерфейс сотрудничества в реальном времени).

Правило № 6. Единая команда — единая задача.

Люди обычно предпочитают работать в одной среде — либо только под Windows, либо только под Linux. Однако такой путь не ведет к успеху. Нужны специалисты, способные охватить сразу всю картину.

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

Да здравствуют бреши!

Томас Птачек, руководитель, исследователь и основатель компании Matasano, специализирующейся на защите вычислительных систем, считает, что разработчики приложений и системные архитекторы обязаны тщательнейшим образом оценивать надежность создаваемых средств защиты. И, естественно, проверять на наличие брешей базовый код, на котором они строят свои разработки. Ведь именно так поступают хакеры. “В подобных приложениях буквально все нужно разложить по полочкам”, — советует он.

Проделав такую операцию с Windows Vista, например, видишь, что Microsoft резко повысила защищенность своей новейшей ОС. Из ее 64-разрядной версии, скажем, исключены многие полюбившиеся хакерам инструментальные утилиты. Теперь здесь `стало гораздо сложнее использовать потенциально опасные функции, рассчитывая на то, что точка входа постоянно находится в одном и том же месте. Не позволяет Vista и вставлять в ядро Windows коды для отслеживания вызова функций из разных программ. А появившийся в новой ОС модуль UAC (User Account Control — контроль над учетными записями пользователей) перенаправляет некоторые файлы и ключи реестра в “песочницу”. Даже если зловредная программа и внесет в них какие-то изменения, они исчезнут сразу же после остановки процесса либо, по меньшей мере, не затронут других пользователей.

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

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