Узнай своего врага:

Средства и методология Script Kiddie

© Проект Honeynet
http://project.honeynet.org
Последние изменения: 21 июля 2000
© Мяснянкин В.В., перевод на русский язык
16 апреля 2001

Мой командир учил меня, что если я хочу защититься от врага, сначала мне необходимо узнать, что он из себя представляет. Эта военная доктрина в равной степени применима и к миру сетевой безопасности. Так же как военные, Вы пытаетесь организовать защиту некоторых ресурсов. Чтобы успешно справиться с этой задачей, Вы должны точно знать, кто Вам угрожает и как он собирается нападать. В этой статье, первой из данной серии, как раз и обсуждаются средства и методология одного из самых распространенных источников угроз - Script Kiddie. Если Вы или Ваша организация имеете какие-либо ресурсы, связанные с Internet, эта угроза касается Вас непосредственно.

Серия "Узнай своего врага" посвящена изучению тактики и мотивов сообщества черных шляп, а также используемых им средств. Статья "Выслеживаем черную шляпу" акцентирует внимание на вопросах обнаружения угроз, идентификации используемых нападающими средств и какие уязвимости они ищут. Статья "Они получают права root" рассказывает о том, что происходит, когда атака удалась и злоумышленник получил права root. В ней освещены вопросы заметания следов и дальнейших действий злоумышленников. Статья "Проводим следствие" освещает процесс анализа такой атаки. "Мотивы и психология черных шляп", раскрывает мотивы и психологию некоторых членов сообщества черных шляп путем анализа их переговоров. Наконец, "Боевые черви" рассказывает, как автоматизированные программы-черви атакуют уязвимые Windows-системы.

Кто такие Script Kiddie

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

Некоторые из них - продвинутые пользователи, которые разрабатывают свои собственные инструментальные средства и оставляют достаточно хитроумные лазейки. Другие понятия не имеют, что они делают и знают только, как напечатать "go" в командной строке. Независимо от уровня развития, все они используют одну стратегию: найти систему с конкретной уязвимостью и воспользоваться этой уязвимостью для проникновения.

Угроза

Именно случайность выбора цели делает script kiddie такой опасной угрозой. Рано или поздно Ваши системы и сети будут исследованы, Вы не можете избежать этого. Я знаю администраторов, которые были очень удивлены фактом сканирования их систем, о которых никто еще не знал, т.к. они были выставлены в Internet всего два дня назад. Ничего удивительного здесь нет. Наиболее вероятно, их системы были просканированы script kiddie, которые как раз "обнюхивали" этот участок сети.

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

Все это показательный пример, к чему может привести обеспечение безопасности путем игнорирования угрозы (security through obscurity). Вы можете глубоко верить, что никто просто не знает о существовании Ваших систем. Другие полагают, что их системы не содержат ничего интересного, с чего бы кому-то сканировать их? Но script kiddie ищут цель по другому принципу - им нужна незащищенная система, которая станет легкой добычей.

Методология

Методика действий script kiddie очень проста: сканировать Internet в поисках конкретной уязвимости, а после нахождения - использовать ее. Большинство средств, которые они используют, автоматизировано и практически не требует управления. Достаточно просто запустить программу, чтобы через несколько дней получить результаты. Нет двух похожих программ, как нет двух похожих эксплоитов. Однако, большинство упомянутых средств использует одну и ту же стратегию: сначала определить диапазон IP-адресов, подлежащих изучению, затем просканировать его на предмет определенной уязвимости.

Например, предположим, что пользователь имеет в своем распоряжении программу, использующую уязвимость imap в Linux-системах, типа imapd_exploit.c. Сначала он составляет перечень IP-адресов, которые будут сканироваться (то есть, системы, которые находятся в он-лайн и доступны). После того, как список составлен, пользователь захочет определить, какие из этих систем работают под управлением Linux. Сегодня большинство сканеров могут легко определить это по реакции системы на специальным образом сконструированные пакеты, в частности nmap (автор - Fyodor). После этого программа выделяет из этих систем Linux-системы с запущенным imap. Все, что осталось теперь сделать - воспользоваться уязвимостями.

Вы можете возразить, что все эти сканирования слишком "шумны" и привлекают к себе внимание. Однако многие администраторы не осуществляют мониторинг своих систем и даже не предполагают, что их сканируют. Кроме того, многие script kiddie находят уязвимую систему, которую используют затем как плацдарм для дальнейших действий. Теперь они могут сканировать хоть весь Internet целиком, не опасаясь возмездия. Если их действия обнаруживаются, то все претензии предъявляются системному администратору использованной системы, а не черной шляпе.

Результаты таких сканов часто архивируются и используются позднее для других целей. Например, пользователь сформировал базу данных об открытых портах на доступных Linux-системах. Он сделал это чтобы воспользоваться текущей уязвимостью imap. Однако, давайте предположим, что месяц спустя в Linux найдут новую уязвимость, в другом сервисе, работающем на другом порту. Вместо того, чтобы снова тратить время на формирование новой базы (это самая затратная по времени часть), пользователь может просто просмотреть свой архив и атаковать уязвимые системы. Script kiddie могут также совместно использовать такие базы или даже покупать их друг у друга. Подтверждающие этот тезис примеры Вы можете найти в статье "Мотивы и психология черных шляп". После этого script kiddie могут нападать на системы даже без предварительного сканирования. Поэтому сам факт, что Ваши системы не сканировали в последнее время еще не является гарантией безопасности.

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

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

Описанная методология поиска уязвимых систем может быть использована в различных целях. Недавно появились новые виды атак типа "отказ в обслуживании" (Denial of Service - DoS), так называемые DDoS (Distributed Denial of Service attacks - распределенные атаки отказа в обслуживании). Эти атаки осуществляются одним пользователем, контролирующим сотни, если не тысячи, скомпрометированных систем по всему миру, которые дистанционно координируются для проведения DDoS-атаки на жертву или группу жертв. Поскольку задействовано большое количество систем, чрезвычайно трудно противостоять таким атакам и идентифицировать их источник. Для получения контроля над таким большим количеством систем также используется тактика script kiddie. Уязвимые системы выбираются случайным образом и используются в дальнейшем в качестве стартовых площадок для DDoS-атак. Чем больше систем взято под контроль, тем более мощную DDoS-атаку можно провести. Одним из примеров такой атаки является "stacheldraht". Более подробно узнать о распределенных атаках отказа в обслуживании и защите от них можно на сайте Пола Фергюсона (Paul Ferguson) Denialinfo

Инструментальные средства

Применяемые средства чрезвычайно просты в использовании. Большая часть из них узкоспециализирована, с небольшим количеством опций. Сначала используются средства для построения списков IP-адресов. Эти средства сканируют Internet случайным образом. Например, одно из них имеет всего одну опцию: A, B или C. Буква означает класс сети, подлежащей сканированию. После чего программа случайным образом выбирает какую IP-сетть сканировать. Другие программы используют доменные имена (типичный пример - z0ne). Программа формирует базу IP-адресов путем запроса пересылки зоны домена и всех его поддоменов. Пользователь может построить базу, содержащую более 2 миллионов IP-адресов путем тотального сканирования доменов .com или .edu. После этого отобранные адреса сканируются другой программой для определения версии операционной системы, демона named и запущенных в системе сервисов. Как только уязвимость системы идентифицирована, черная шляпа наносит удар. Подробнее узнать как это происходит можно в статье "Проводим следствие".

Как защититься от этой угрозы

Приведенные ниже советы помогут Вам защититься от этой угрозы. Для начала, помните, что script kiddie ищут легкую добычу путем использования известных уязвимостей. Удостоверитесь, что в Ваших системах и сетях нет этих уязвимостей. Отличными источниками информации на эту тему являются www.cert.org и www.ciac.org. Также очень хорошим источником является список рассылки bugtraq (архивы находятся на securityfocus.com). Другой способ защитить себя - запускать в системе только действительно необходимые сервисы. Если Вам не нужен конкретный сервис - не запускайте его. Если необходимость в нем есть, убедитесь, что используется программное обеспечение последней версии. Примеры безопасной настройки систем приведены в работах "Armoring Solaris", "Armoring Linux" и "Armoring NT".

Как уже говорилось в разделе об используемых средствах, для формирования списка потенциальных жертв часто используются сервера DNS. Ограничьте список систем, которые могут получать списки зоны (zone transfers) от Ваших серверов DNS. Регистрируйте любые неавторизованные попытки получить списки зоны и расследуйте их. Я настойчиво рекомендую перейти на самую последнюю версию BIND (программное обеспечение DNS), которую Вы можете найти по адресу www.isc.org/bind.html. Наконец, отслеживайте попытки изучения Ваших систем. Идентифицировав такую попытку, Вы сможете отследить источник, оценить угрозу и адекватно на нее прореагировать.

Заключение

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



Honeynet project