Главная
К библиотеке



Уроки взлома Openhack

Генри Балтазар, Тимоти Дик (eWeek Labs)

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

        Когда мы сообщили об этом первый раз, один из читателей прислал отчаянный вопрос: а есть ли вообще защита от сетевых атак? Что можно ему ответить? Защита возможна, но только в том случае, если организация ясно осознает опасность и постоянно борется с нею. Подчеркиваем: постоянно.
        К интерактивному тестированию систем безопасности eWeek Labs приступил 26 июня, предложив взломать специально созданный для этих целей Web-узел Openhack. Главная цель проекта состояла в том, чтобы глубже оценить опасность хакерских атак и вооружить компании электронного бизнеса необходимыми знаниями о них.
        Оценка потенциальных угроз безопасности — одна из ключевых задач сетевого администратора любой организации. И не случайно вот уже два года подряд наши тестовые узлы успешно взламывает консультант в этой области испанец Луис Мора. Он действует весьма квалифицированно, однако его приемы вполне доступны множеству технически грамотных специалистов, которые могут воспользоваться
Суровые уроки
Вот лишь несколько способов защиты, которые помогли или могли помочь обезопасить Openhack.com.
  • Глубоко эшелонируйте защиту. Сегментируйте узел на отдельные разделы, оснастите каждый из них несколькими независимыми системами безопасности.
  • Устанавливайте брандмауэры даже на внутренних компьютерах (стоит подумать и о том, чтобы снабдить брандмауэром каждую машину).
  • Комбинируйте операционные системы и средства защиты — это сведет к минимуму ущерб от возможного проникновения на узел.
  • Синхронизируйте системные часы серверов, используя для этого протокол Network Time Protocol.
  • Составляйте письменные памятки для всех регулярных операций — это поможет наладить систематическую проверку учетных записей, программного обеспечения и аудита процессов на всех системах.
ими в самых разных целях: от простой шалости до уголовного преступления.
        Мы попросили Мору дать оценку такой опасности. “Я не могу назвать цифр, но уверен, что необходимая для этого квалификация есть у очень многих, — ответил он. — Достаточно знать Perl, понимать принципы работы IP-сетей и обладать богатым воображением. Если вы не будете уделять должного внимания вопросам безопасности, рано или поздно обязательно найдется хакер, который обнаружит бреши и воспользуется ими”.
        “Рано или поздно” — это звучит не слишком весело, но, на наш взгляд, вполне реалистично. Особенно если учесть сложность современных систем информационных технологий и в первую очередь динамических Web-узлов. Об этом свидетельствует и опыт Openhack. Поэтому мы настоятельно рекомендуем априори предполагать наличие брешей в системе безопасности и планировать меры по их своевременному выявлению и устранению.
        А для этого нужна глубоко эшелонированная защита. На своем узле Openhack мы развернули целый комплекс корпоративных приложений и операционных систем, что само по себе создало один из рубежей обороны от хакеров.
        Правда, такое разнообразие увеличивает стоимость системы и усложняет ее обслуживание, но цель оправдывает средства. Если взлом все же произойдет, разнородная вычислительная среда помешает злоумышленнику прогуляться по всему магазину (в некоторых случаях — в полном смысле этого слова).
        В ходе эксперимента хакерам удалось взломать только две системы — сервер электронной коммерции и базу данных. Три другие — сервер электронной почты, сервер доменных имен и Web-сервер, — равно как и брандмауэр, остались в целости и сохранности. Нашим добровольным помощникам не удалось проникнуть даже в их корневые каталоги.
        Воспользовавшись основными технологиями обеспечения безопасности и стандартными средствами, предлагаемыми на рынке, мы смогли не только отразить большинство атак низкого и среднего уровня, но и помешать изощренным хакерам, которые все же проникли в систему, получить доступ к корневому каталогу. Впрочем, опытный хакер может нанести серьезный ущерб узлу, даже не дойдя до этого каталога.
        Взломы были проведены через бреши в “витринном” приложении MiniVend фирмы Akopia и сервере AnswerBook2, хранящем документацию Solaris.
        Akopia уже устранила все слабые места своего продукта, обнаруженные в ходе теста Openhack. Исправленную его версию MiniVend 4.04а можно найти по адресу: www.minivend.com/iri/mvend.html.
        Тем же организациям, которые используют ОС Solaris, мы бы рекомендовали отключить на своих рабочих системах AnswerBook2 или установить AnswerBook2 1.4.2, скачав это приложение с узла www.sun.com/software/ab2. После этого весьма желательно установить “заплаты” 110011-02 (на системах SPARC) или 110012-02 (на системах с процессорами Intel), опубликованные на узле sunsolve. sun.com. Как нам сообщили представители Sun, слабые места AnswerBook2 присущи всем версиям этого сервера документации, начиная по крайней мере с той, что входила в ОС Solaris 2.6.
        Белая книга Sun по вопросам безопасности советует удалять с коммерческих серверов все второстепенные компоненты (в том числе и AnswerBook2), и мы жалеем, что не последовали этой рекомендации на своем узле Openhack.



“Обоюдоострый меч”

        Сопоставив достоинства и опасность ПО с открытым кодом, создатель MiniVend Майк Хейнс (Оксфорд, шт. Огайо) назвал его “обоюдоострым мечом”. “Результаты проекта Openhack оказались хуже, чем я ожидал, но они наглядно продемонстрировали, каким образом открытость источника может помочь в обнаружении брешей в системе безопасности, — заявил он. — Конечно, мне нужно было бы заняться этим раньше”.
        В приложениях, код которых недоступен пользователю, найти слабые места защиты намного труднее, но это вовсе не означает, что их там нет. И свидетельством тому — успешный взлом AnswerBook2, проведенный Морой.
        Из результатов теста Openhack мы извлекли и еще один урок: при создании сложных систем очень легко упустить из виду самые простые вещи, особенно там, где не ожидаешь никаких проблем. Скажем, Мора сумел получить доступ к файлам базы данных только из-за того, что мы не сменили стандартный пароль на сервере Oracle8i.



Атаки на всех уровнях

        Наибольший ущерб узлу Openhack нанесли взломы на уровне приложений, однако это вовсе не значит, что не возникало проблем из-за попыток проникнуть сюда на более низких уровнях и атак типа “отказ в обслуживании”. За первые несколько дней эксперимента на наш узел обрушился буквально шквал подобных нападок, и суммарный трафик порой даже превышал пропускную способность нашего 10 Мбит/с канала связи с внешним миром.
        Прямо скажем: надежных средств и методов для предотвращения распределенных атак типа “отказ в обслуживании” не существует, однако их негативные последствия можно свести к минимуму. Для этого организациям следует наладить оперативное взаимодействие между всеми своими менеджерами информационных технологий.
        “Высокую безопасность обеспечит только разнородная, хорошо скоординированная и защищенная система, но даже в ней можно что-то просмотреть, — уверен Мора. — Говорят, что абсолютно безопасным можно считать лишь тот компьютер, который обесточен, замкнут в сейфе и погребен в недрах пустыни”. Начало этого эксперимента см. в PC Week/ RE № 31, 2000 г., с. 16.

Openhack: защищён, но уязвим Подробности взлома позволяют изнутри взглянуть на бреши в системе безопасности
Тимоти Дик
На рассвете 15 июля торжествующий Луис Мора отправил на электронный адрес eWeek послание с доказательствами взлома базы данных Openhack.
Его письмо начиналось словами: “Разрешения на доступ удалены с половины файловой системы. Неплохо для начала, но этого мало”.
Согласны.
А затем Мора увлекательно описал, как ему удалось преодолеть развернутые нами рубежи защиты Openhack. Ниже представлен краткий расказ о проделанной работе. Описание взлома в том виде, в каком его прислал сам Мора, можно найти по адресу www.eweek.com/links.
Первый шаг
Исследования узла Openhack Мора начал с Web-сервера, доступного всему внешнему миру. Прежде всего он проверил с помощью утилиты telnet порты 80 и 443, обслуживающие доступ по протоколам НТТР и SSL соответственно. Таким образом Мора ознакомился с НТТР-заголовками всех наших серверов Apache, из которых узнал о том, какие версии серверного ПО мы используем и какие модули Apache загружены. Кроме того, заметив различия во временных метках, он пришел к выводу, что серверы НТТР и SSL установлены на различных серверах.
Наиболее удобной точкой проникновения на сайт Мора счел “витринное” приложение MiniVend фирмы Akopia. В своем послании он пишет: “Бегло взглянув на каталоги bin/ и lib/ этого приложения с помощью утилиты grep, я нашел ряд ничем не ограниченных вызовов open()... Достаточно оказалось модифицировать второй аргумент вызова — и можно было выполнять любые команды”.
Мора загрузил и проанализировал код MiniVend, в котором обнаружил три уязвимых места. Первые две бреши, правда, так и не открыли ему доступ к операционной системе, однако функция eval_it_file с лихвой окупила затраченные усилия. Она считывает имя файла в качестве входного параметра, однако Мора нашел ей другое применение: воспользовавшись подстановкой формы HTML, он сумел заменить переменную имени файла на системную команду. В функции eval_it_file не предусмотрено никаких ограничений в этой области, поэтому Мора получил возможность исполнять команды на нашем сервере электронной коммерции как пользователь MiniVend.
Таким способом ему удалось изменить базовую страницу электронной коммерции, застолбив себе место на нашем сервере. Непосредственно редактировать страницы он не мог, поскольку после первого взлома MiniVend, проведенного Александром Лазичем, они были переданы в корневое владение (root ownership). Правда, мы забыли провести такую же операцию в отношении самого каталога со страницами, что позволило Море переименовать его, а затем создать под тем же именем новый страничный каталог.
“Красивый и чистый взлом, ставший возможным только из-за того, что кто-то не обратил внимания на принадлежность каталога”, — написал он в своем письме.
В ход идут новые средства
На следующем этапе Мора установил и начал применять некоторые бесплатно загружаемые сетевые утилиты (в первую очередь средство отображения портов Nmap и инструментарий командной строки telnet под названием netcat). Кроме того, он написал комплект программ на языке Perl, предназначенных для изучения деталей установления безопасного канала (SSL handshake) SSL и кода “обертки” НТТР-wrapper, что упростило пересылку команд на сервер.
Поскольку мы запретили передачу FTP-трафика через брандмауэр, Мора был вынужден прибегнуть к весьма сложному процессу для загрузки на сервер своего инструментария. Сначала он заархивировал файлы, затем с помощью утилиты uuencode превратил их в текст, который и загрузил в каталог /var/tmp как длинное HTTP-сообщение.
Работа Мора была затруднена тем, что мы предельно ограничили количество общих утилит оболочки наподобие echo и chmod, однако взломщика это не смутило — вместо них он воспользовался имеющимися или собственными функциями Perl такого же назначения. Запретить их применение невозможно, так как MiniVend без этого языка работать не в состоянии. Чтобы записать в файл “there” строку “this”, Мора не стал вызывать утилиту echo, а использовал программу Perl “open(X,’>there’);print X ‘this’;close(X);”.
Как только это было сделано, перед Мора сразу же открылся простой путь к серверу электронной коммерции “с черного хода”. Теперь взломщик сосредоточил внимание на сервере базы данных, который работал под управлением Solaris. Здесь его целью стал сервер документации Solaris AnswerBook2, где Мора обнаружил и сумел объединить две несвязанные между собой бреши. Так ему удалось создать административную учетную запись AnswerBook2, а затем с помощью системного вызова, параметры которого не проверялись как следует, передать команды в операционную систему.
“Должен признаться, что с обнаружением этих брешей мне просто повезло, — пишет Мора. — Я никогда раньше не слышал о слабых местах AnswerBook2, но все же решил поискать их”.
Теперь взломщик приступил к поиску файлов базы данных, для чего вновь применил утилиту grep. Объем информационных файлов составлял десятки мегабайт, поэтому 33,6 кбит/с подключение Мора то и дело “брало тайм-ауты”.
В конце концов он вернулся к MiniVend и написал на языке Perl небольшую программу подключения к СУБД путем Oracle-регистрации в MiniVend. В СУБД он обнаружил учетную запись администратора mdsys, защищенную стандартным паролем. Это позволило Море зарегистрироваться как пользователю mdsys, после чего перед ним открылся доступ ко всей базе данных Oracle.
Приводим эту программу на Perl: “use DBI;\$dbh=DBI?>connect(‘orcl’,’mdsys’,’mdsys’,
’Oracle’);\$x=\$dbh->prepare(q{SELECT*FROM EWEEK.SECRET});\$x?>execute;print\”@{\$x?>
{NAME}}\”;while(@row=\$x?>fetchrow_array)
{print\”@row\n\”;}”. Именно эти строки принесли Море наш главный приз, ибо позволили прочесть секретную таблицу Openhack: “75 [percent] of all users choose bad passwords” (75% всех пользователей выбирают негодные пароли).
И в полчетвертого утра Мора завершил свой труд, написав последние слова: “Теперь можно немножко поспать :)”.

С техническим директором eWeek Labs на Западном побережье США Тимоти Диком можно связаться по адресу:
timothy_dyck@ziffdavis.com.

Материал с сайта http://www.zdnet.ru

Hosted by uCoz