Thursday, April 29, 1999

Hack basics. Основы хэкинга

   The article contains a review of basic techniques used by hackers, from open source processing, social engineering, to cybernetic phantom creation and temporary files search.

"Работаю изо всех сил,
чтобы сделать вашу жизнь сущим адом."
Майк Эллисон (Stormbringer)
из группы Phalcon/Skism. Нью-Йорк.
   Вот так. Не больше и не меньше. Я привел девиз известного американского хакера как эпиграф для статьи, чтобы еще раз напомнить о проблеме защиты данных и информации, неприкосновенности частной жизни. В статье я приведу развернутое описание основных методов, которые используют "кибер-сталкеры" для ведения "боевых" действий. Не претендую на полное или точное изложение – это просто обзор, а не руководство к действию. Как говорится, "за одного битого двух небитых дают" и иногда в противостоянии хакера и админа (человека отвечающего за функционирование сети и ее безопасность) побеждает админ. В Японии для защиты от ниндзя привлекали ниндзя, так даже в России для защиты банковских и корпоративных сетей солидных финансово-промышленных групп нанимают хакеров. В "Совершенно секретно" не раз поднимался вопрос об использовании электронных средств слежения и перехвата, хакеров криминальными структурами России. Оснащенность организованной преступности вызывает тревогу у правоохранительных структур. Тем более, что для работы привлекаются бывшие, далеко не самые худшие, сотрудники тех же правоохранительных и силовых ведомств и срабатывает "эффект янычара", когда отвергнутые системой люди начинают мстить своим бывшим коллегам. Например, тамбовская группировка, успешно подминающая Санкт-Петербург, наняла математиков и программистов, лучших выпускников ЛГУ(СПбГУ), для обеспечения своих мероприятий. Про Беларусь не вспоминаю, прокомментирую как в сказках "Тысячи и одной ночи": "Спите люди, в Багдаде все спокойно…" Кевин Митник еще долго бы делал свое дело, если бы не остановил его правительственный хакер Шимомура.

Обработка открытых источников

   По разным оценкам до 75% информации лежит в так называемых "открытых источниках". Другими словами, нет необходимости взламывать что-либо или совершать незаконное проникновение. Достаточно основательно поработать с интернетными базами данных, посидеть в библиотеке и просмотреть подшивку газет, поработать с каталогами предприятий и продукции. Можно купить компакт-диски с базами данных по телефонам и тому подобным и "рассшарить" нужный объект в считанные минуты. Приведу всего лишь несколько примеров.

   В арсенале уважающего себя хакера будет использование справочников домашних телефонов, справочников предприятий для установления адреса, телефона, фамилии, названия предприятия по частичным сведениям, для установления соседей, сослуживцев, для работы с ближайшим окружением "объекта", или последующей "социальной инженерии". Сюда же можно отнести использование баз данных о предприятиях и их учредителях, о налогоплательщиках для выяснения каких-либо сведений об объекте и его окружении, деловых партнерах. Можно успешно использовать и географические карты, особенно в программном исполнении для установления адреса, корректировки сведений по частично имеющейся информации. Call-book (книга с позывными в радио-эфире) содержит почтовые адреса и фамилии с инициалами и может применятся для корректировки сведений по позывному в эфире. Сюда же можно отнести базы данных сети Fido для установления личности, адреса по Fido-адресу, nick-у (кличке). На "диком западе" в широком ходу использование интернетных баз данных для поиска электронных почтовых ящиков, телефонов, адресов по частичным сведениям. Сюда можно отнести следующие общедоступные службы: Four11, Yahoo's People Search, Internet Address Finder. По каждой из этих служб нужно вести отдельный разговор. ICQ Main Search Engine позволяет достигнуть порой потрясающих результатов, многие пользователи в разделе "Info" оставляют слишком много избыточных сведений. Не сделать запрос в поисковые службы Internet (Infospace, Lycos, Rambler и т.п.) для поиска сведений об объекте, используемом "софте" не сделает только ленивый. В "сетке" широко представлены также службы вроде IP Lookup – дающие информацию о точном географическом местоположении и организации, на которую адрес зарегистрирован. Порой "вываливает" адрес с номером дома. Есть службы, выдающие даже широту и долготу провайдера. На непосвященных действует просто ошеломляюще! Сюда же относится и использование роботов-пауков, позволяющих вести поиск данных в режиме автопилота.

Социальная инженерия (психологические техники)

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

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

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

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

Лингвистические методы

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

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

Шифрование и тайнопись

   Элитные хакеры имеют основательные познания в криптографии и компьютерной тайнописи. Шифрование используется для "возведения стен вокруг их священной земли". Так называется узкий круг посвященных или группировка, куда многим путь заказан. Если пароли есть даже в Microsoft Office и архиваторах :), значит постоянно встает задача расшифровки документов, файлов с паролями, взлом криптозащищенных программ и систем разграничения доступа. Кратко классифицирую основные виды криптоатак:
  1. Прямой перебор паролей и перебор по словарю;
  2. Подбор пароля, связанного с личностью "объекта", легко угадываемым паролем;
  3. Наличие слабых ключей у распространенных алгоритмов;
  4. Блокировка пароля подменой его на пробелы, подмена криптоалгоритма;
  5. Построение таблиц отклика;
  6. Вероятностный анализ для построения марковских цепей;
  7. Логарифмическое дифференцирование с итерационным уточнением ключа;
  8. Вычитание нескольких шифрпоследовательностей, закрытых одним ключом для получения разности открытых текстов;
  9. Дифференциальный анализ ошибок, DFA (Differential Fault Analysis);
  10. Построение коллизий (разные открытые тексты имеют одинаковую шифрпоследовательность);
  11. Атаки по открытому тексту.
   Для закрытия сообщений и переговоров применяется шифровка содержимого почтовых отправлений, сокрытие файлов с шифровкой в графических и звуковых файлах, с целью сокрытия самого факта передачи сообщения (стеганография), IP PGP телефония, телефонные переговоры с одновременным криптозакрытием, криптозакрытые чаты и чат-программы.

   Стоит вскользь упомянуть использование специфичного жаргона (hack-speak) как обязательной атрибутики обособленной молодежной или преступной среды.

Взлом телефонных линий (Phone breaking, "фрикинг")

   Этот вид угроз может коснуться любого человека, даже не имевшего ни какого отношения к компьютерам. Телефонная сеть – это самая большая компьютерная сеть на планете и телефонное пиратство находит широкое применение в компьютерном подполье. Взлом телефонных систем носит название фрикинга. Сначала все может начаться со сканирования телефонных номеров для получения реакции отклика модема, для определения линий организации, задействованных для модемной связи. Для получения контроля над линией используется включение компенсаторов падения напряжения при соединении для блокировки счетчика времени телефонного разговора, т.н. "черный блок". Более продвинутые фрикеры строят "синие блоки", (посылка в линию тональных сигналов) для получения управления над АТС и проведения бесплатных междугородних и международных телефонных переговоров. Из-за устаревшего оборудования используемого в СНГ широко в ходу пиратское подключение к телефонным линиям, использующим радиоканал. Сюда относится пиратство в сотовых и транковых системах, подключение к линии использующей радиотелефон. Пресловутый Кевин Митник широко использовал захват телефонных сетей для проведения своих операций и сокрытия своего местоположения, когда на него охотилось ФБР.

Определение типа системы

   Для разведки боем нужно определить тип системы, с которой предстоит работать: (BBS, Unix, E-mail, WINDOS, VMS и т.п.). Это делаются по первоначальному отклику системы на попытку входа. Имеет значение характер интерфейса, текст, использованный при диалоге, наличие гостевого входа, чувствительность системы к регистру клавиатуры, количество попыток входа с некорректными данными. Также есть утилиты определяющие тип операционки, ее версию. Достаточно помянуть объект navigator в JavaScript. Вставленный в html-документ ява-скрипт, обращающийся к свойствам объекта navigator выдаст тип операционной системы, ее версию, используемый браузер и т.п.

DoS (Denial of Service)

   Подобные виды атак бывают как нацеленные на конкретную операционную систему, так и действующие на всю сеть в целом. Результатом является выведение из строя программного обеспечения компьютера или обрыв сетевого соединения. Как правило, выражается это, в том, что появляется внезапное зависание, Windows-система падает в "голубой экран смерти" BSoD (Blue Screen of Death). Скрытый смысл этих атак в получении контроля над компьютером. Они полезны лишь для мести, запугивания или для причинения вреда, но бесполезны в большинстве хакерских операций. Применяются в основном новичками для того чтобы доказать свою "крутость" или чтобы выкинуть из сети зарвавшегося человека.

   Приведу краткую классификацию, с признаками применения:
  1. Winnuke/nuke (Windows 95/NT/3.11) – "голубой экран" и сообщение о "virtual device driver error". Разрываются сетевые соединения, система, как правило, не зависает.
  2. Land (Windows 95/NT/3.11, другие) - полный крах системы.
  3. Teardrop (Windows 95/NT/3.11, Linux) - крах системы или перезагрузка.
  4. Newtear/bonk/boink (Windows 95/NT4) – "голубой экран" и полный останов системы.
  5. Ssping/jolt/ping of death (Windows 95/NT, другие) – "замораживание системы", перезагрузка только выключением питания или по Reset.
  6. Smb (Windows NT4) - на обработке "Server Message Block logon" запроса происходит сбой по памяти с выдачей ошибок вида STOP 0x0000000A. Система зависает или перезагружается.
  7. Click - Разрыв соединений с сервером с сообщениями "Connection reset by peer", "Connection refused", "Operation timed out" или "Host unreachable", в зависимости от того, кто был атакован (сервер или клиент). Стек TCP/IP остается в порядке, модем не разрывает связь.
  8. Ping flood (модемные соединения) - Лампочки модема начинают "сходить с ума", интернет приложения начинают "тормозить" и, примерно в течение минуты происходит обрыв связи.
  9. Smurf (ISP, IRC server) - Никаких явных признаков, кроме массового рассоединения с сервером. В данном случае производится ping flood либо провайдера, либо IRC сервера.

Работа с FTP

   Этот старый и широко применяемый протокол используется для скачивания (download) файлов с целью похищения информации, для похищения файлов с паролями с целью дальнейшей их расшифровки или получения файлов, хранящих конфигурации системы. Применяется и обратная функция FTP: закачивание (upload) на атакуемый компьютер файлов с измененной структурой для модификации работы программно-аппаратного обеспечения, забрасывания "троянских коней", файлов, содержащих автоматический рекордер (keystroke recorder) нажатий клавиатуры и т.п., измененных файлов, содержащих вирусы для дестабилизации работы системы в целом.

Работа с открытыми портами

   Любая компьютерная система, связанная через сеть с внешним миром, предполагает наличие программных сервисов или в терминологии TCP/IP портов. Сканнеры открытых портов (PortScanners, PortListeners) применяются хакерами для определения уязвимых мест в системе, поиска ошибок в конфигурировании программного обеспечении, поиска доступных ресурсов, подбора паролей. Сюда же можно отнести и Telnet (сетевая утилита), которая используется в для получения доступа и взлома системы. "Сити-банк", например, был взломан в основном с помощью Telnet-а.

Sniffer и Man-In-The-Middle

   "Нюхач" и "человек-посредник" (дословный перевод названий этих хакерских техник) применятся для перехвата пакетов в сети, с возможной последующей их модификацией. Это делается для перехвата имен пользователей, их реального IP-адреса, для перехвата скрытых сообщений в "чатах". Эти же техники полезны для перехвата паролей, исходящих сообщений, электронной почты и т.п. Если sniffer – это простой перехват в сети, то Man-In-The-Middle более продвинутая техника, предполагающая нужную модификацию перехваченных сетевых пакетов. Я намеренно не привожу развернутое описание, просто привожу расшифровку терминов.

Trojan Horses, VIRII ("троянские кони", вирусы)

   История вирусов начинается с "демонов". Демон (daemon – Disk and Execution Monitor) – это термин из Unix, означающий программу явно не исполняемую пользователем. Еще одна веха была положена 2 ноября 1988 года, когда на компьютере Массачусетского Технологического института был запущен "червь". Это программа, используя ошибки в сетевых протоколах, сама себя воспроизводила, подбирала "слабые" пароли и распространилась в сети. Вирусы – это еще один класс программ, способных к маскировке, самовоспроизведению и проводящих деструктивные действия. Не стану много распространятся о вирусах, тема широко освещенная, упомяну лишь два малоизвестных момента. Вирусы могут быть узко нацеленными, созданными для поражения конкретной компьютерной системы, которая идентифицируется по уникальному номеру карты Ethernet, дате BIOS или другим уникальным ключам, которых в реестре Windows более чем достаточно. Есть не только вирусы-диверсанты, но и вирусы-шпионы, разработанные под конкретную систему, для похищения определенной информации, например паролей и учетных записей.

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

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

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

WWW

   В техниках работы с "мировой паутиной" применяется трекинг (отслеживание) посещений веб-сервера. Также ведется исследование веб-сервера на наличие свободно доступных мест, которые админу должно было скрыть для публичного посещения, поиск скриптов и CGI, т.к. большинство веб-мастеров используют готовые скрипты при разработке. Сюда же относится поиск директорий сайта с файлами учетных записей, файлов с паролями, временных файлов и директорий с CGI, которые часто имеют распространенные названия вроде: /admin, /log, /administration, /webmaster/, /cgi-bin, /accounts, /add, /maintenance, /temp или /trans.

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

IRC, Chat-ы

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

ICQ

   Широкая распространенность (более 30 миллионов пользователей) и незащищенность делает "аську" подарком для хакера. Про уязвимость ICQ я писал ранее, дам краткий перечень "ахилессовых пят":
  1. Bombers, killers и flooders, программы, атакующие по UIN (User Identification Number), забивающие ICQ потоком сообщений, выводящими ICQ из строя;
  2. Spoofers, snoofers, программы позволяющие посылать сообщения с различных UIN;
  3. ICQ Auto Authorize, программы позволяющие добавлять пользователей в свой контактный список, без их разрешения;
  4. ICQ hijacks, программы позволяющие перехватывать сообщения текущего сеанса в режиме реального времени, изменять пароль UIN, без ведома пользователя;
  5. Sniffers, программы позволяющие определять скрытый IP пользователя, подмаску сети;
  6. Mail-bombers, программы, позволяющие атаковать различные e-mail эккаунты, используя ICQ.

Кибернетический фантом

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

E-Mail

   В техниках атак на электронную почту есть как банальная фальсификация почтовых сообщений, запуск Java и Visual Basic скриптов в окне браузера при открытии почтового ящика.

   Производится запуск вирусов и "троянцев" через файлы распространяемые через attachment.

   В заголовке почтового сообщения отыскивается: реальный IP адрес отправителя, название программы-отправителя, ее версия, версия операционной системы. Большое место занимает использование Finger для расшифровки учетных записей почтового ящика. Встречается и обычное сетевое хулиганство, когда с помощью программ-бомберов почтовый ящик забивается ерундой или навязчивыми посланиями, делающим невозможным работу с электронной почтой. Часты случаи съема корреспонденции или "угона" почтовых ящиков.

Временные и резервные файлы

   При некорректной работе пользователя, не удалившего временные файлы, при сбоях в работе программного обеспечения, остаются временные или резервные файлы. Основные маски у них *.bak, *.tmp, *.~??, *.old. Большинство программ метит свои документы и исполнимые файлы. При просмотре viewer-ом легко определяется принадлежность файла. Эти техники применяются для вскрытия содержимого предыдущих копий документов, информации, конфигурации системы. Для этого просматривается содержимое каталога, на которого ссылается переменные окружения Temp, Tmp, просматривается содержимого временных файлов, запускаются утилиты типа Undelete для восстановления недавно удаленных файлов. Исследуются сектора диска утилитами типа DiskEdit для поиска не затертой информации, просматриваются документы MS Office для поиска оставшейся при "быстром сохранении" предыдущей копии документа и т.п.

Ну, и что существенно поменялось со времени этой публикации?
Вместо ICQ, исследуют другие мессенджеры - Viber Analyzer

Sunday, April 4, 1999

Weak passwords

The article examines typical (25-30 per cent) users' mistakes encountered while making self-choice of passwords. Some users resort to so-called "social-oriented" passwords related to their personalities, which allows the intruder to gain easy access.
В этой статье речь не пойдет о слабостях криптоалгоритмов, используемых операционными системами и распространенными пакетами обработки документов, о математических методах вскрытия. Мне хотелось бы осветить проблему того, что пользователи выбирают так называемые легкоугадываемые пароли, давая взломщику легкий путь для входа в систему.

"Слабые" пароли

   В своей работе хакеры, вовсю практикуют методы "социальной инженерии", т.е. знание психологии для поиска слабых мест, так называемую "обработку открытых источников" для установления реквизитов организации или пользователя, которые подвергается атаке.
   Для подбора пароля используется факт, что пользователь не желает утруждать себя излишним изобретательством при генерации пароля или не желает сильно напрягать память для его запоминания. У Эдисона на столе стояла надпись: "Человек прибегает к любым уловкам, только бы не работать головой".
   В 25% случаев пользователь вместо пароля вводит:
  • cвое имя,
  • название своей организации,
  • свои инициалы,
  • год рождения,
  • номер служебного или домашнего телефона,
  • номер своей автомашины,
  • дублирует символы своей учетной записи (другими словами имени пользователя при входе в систему),
  • славянское имя латинскими буквами.
   Имеющие хобби, вводят пароли из интересующей их области:
  • названия вокальных групп,
  • пород собак или кличек собак,
  • географические названия,
  • гастрономические блюда,
  • имена объектов сексуального пристрастия,
  • то же слово, продублированное дважды,
  • то же слово, записанное справо-налево,
  • русские слова набираются на латинском регистре и наоборот,
  • используют несколько рядом расположенных клавиш на клавиатуре,
  • используют одинаковый пароль в нескольких системах.
   Этими же предположениями пользуются хакеры для "разведки боем". Анекдотом стал случай проверки пентагоновских серверов, где военные в трети случаев при запросе пароля так и набирали: "пароль". Простое комбинирование вышеперечисленных пунктов не дает должного эффекта. Тем не менее, пароли неискушенных пользователей базируются на осмысленном слове и простом правиле его преобразования: прибавить цифру, прибавить год, через букву перевести в верхний регистр, приписать записанное наоборот слово и т.п. В продвинутых программах для подбора паролей эти правила могут быть программируемыми и задаваться самим хакером.
   Вторая распространенная ошибка состоит в том, что пользователи используют распространенные слова родного языка, или иностранного, которым они овладели. Здесь хакерами применяется атака "перебором по словарю" Самый большой словарь русского языка включает в себя около 200 тысяч слов. Ясно, что даже средний Pentium сделает подобный перебор в "режиме реального времени". Во-вторых, словарный запас, к примеру, Пушкина составлял 12 тысяч, и у средне образованного человека он того же порядка, даже если сюда включить молодежный жаргон, неологизмы последнего времени. В неродном, иностранном языке эта цифра может быть в несколько раз меньше. По Сети ползают файлы с названием: "200 самых распространенных паролей", "1000 самых распространенных паролей" и т.п. Не стану приводить подобные таблицы в статье для экономии места.
   Третья ошибка в том, что для генерации пароля сужается набор символов (только верхний регистр или только латинские буквы и цифры и т.п.) или пароль берется малой длины. Если предположить, что ваша программа для закрытия использует "абсолютно криптостойкий алгоритм", (архиваторы и MS Office подобными не являются) для взломщика остается последний способ атака "прямым перебором".
   Здесь стойкость ключа определяется двумя критериями, во-первых, размером множества символов использующихся для пароля, другими словами количеством возможных символов (верхний предел: вся кодовая таблица = 256-32, служебные не используются), пароль составленный из букв и цифр будет "крепче", чем пароль состоящий только из букв. Во-вторых, длина ключа должна быть максимальной, как минимум рекомендовано 12 символов.
   Подводя итоги, приведу правила генерации "сильных паролей":
  • Пароль должен быть несмысловой, т.е. не содержать слова из языка, тем более не включать в себя сведения из личной жизни.
  • Пароль должен включать в себя любые символы, другими словами, латинские и русские буквы на больших и малых регистрах, специальные символы (#$%& и т.п.), цифры вперемешку.
  • Длина пароля должна быть максимальной или как минимум 8-12 символов.

   P.S. Автор не несет ответственности за то, что материалы статьи могут использоваться как пособие для начинающих хакеров.