Тема 8. Атака и методы хакеров

8.1 Технология атаки

8.2 Методы хакеров

8.3 Отказ в обслуживании

8.4 Выполнение атак

Технология атаки

Сетевая атака – действие, производимое злоумышленником и направленное на реализацию угрозы. Действие заключается в поиске какой-либо неисправности компьютерной системы.

Существуют четыре основных категории атак:

· атаки доступа;

· атаки модификации;

· атаки на отказ в обслуживании;

· атаки на отказ от обязательств.[55]

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

Атаки, нацеленные на захват информации, хранящейся в электрон­ном виде, имеют одну интересную особенность: информация не похища­ется, а копируется. Она остается у исходного владельца, но при этом ее получает и злоумышленник. Таким образом, владелец информации не­сет убытки, а обнаружить момент, когда это произошло, очень трудно.

Атака доступа — это попытка получения злоумышленником информации, для просмотра которой у него нет разрешений. Осуществление такой атаки возможно везде, где существует информация и средства для ее пе­редачи. Атака доступа направлена на нарушение конфиденци­альности информации.

Подсматривание — это просмотр файлов или документов для поиска интересующей злоумышленника информации. Если документы хранятся в виде распечаток, то злоумышленник будет вскрывать ящики стола и рыться в них. Если информация находится в компьютерной сис­теме, то он будет просматривать файл за файлом, пока не найдет нужные сведения.[56]

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

В отличие от подслушивания перехват — это активная атака. Злоумышленник захватывает информацию в процессе ее переда­чи к месту назначения. После анализа информации он принимает реше­ние о разрешении или запрете ее дальнейшего прохождения.

Атаки доступа

Атаки доступа принимают различные формы в зависимости от способа хранения информации: в виде бумажных документов или в электронном виде на компьютере.

Если необходимая злоумышленнику информация хранится в виде бумаж­ных документов, ему потребуется доступ к этим документам. Они, воз­можно, отыщутся в следующих местах:

· в картотеках;

· в ящиках столов или на столах;

· в факсе или принтере;

· в мусоре;

· в архиве.

Следовательно, злоумышленнику необходимо физически проникнуть во все эти места. Если он является служащим данной организации, то сможет попасть в помещения с картотекой. Письменные столы он най­дет в незапертых офисах. Факсы и принтеры обычно располагаются в общедоступных местах, и люди имеют привычку оставлять там распеча­танные документы. Даже если все офисы закрыты, можно покопаться в мусорных корзинках, выставленных в холл для очистки. А вот архивы станут для взломщика проблемой, особенно если они принадлежат раз­работчикам и расположены в охраняемом месте.[57]

Физический доступ — это ключ к получению данных. Следует заметить, что надежная защита помещений оградит данные только от посторонних лиц, но не от служащих организации или внутренних пользователей.

Информация в электронном виде хранится:

· на рабочих станциях;

· на серверах;

· в портативных компьютерах;

· на флоппи-дисках;

· на компакт-дисках;

· на резервных магнитных лентах.

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

Если злоумышленник имеет легальный доступ к системе, он будет ана­лизировать файлы, просто открывая один за другим. При должном уров­не контроля над разрешениями доступ для нелегального пользователя будет закрыт, а попытки доступа зарегистрированы в журналах.

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

При прохождении информации по сети к ней можно обращаться, прослушивая передачу. Взломщик делает это, устанавливая в компьютер­ной системе сетевой анализатор пакетов (sniffer). Обычно это компью­тер, сконфигурированный для захвата всего сетевого трафика (не толь­ко трафика, адресованного данному компьютеру). Для этого взломщик должен повысить свои полномочия в системе или подключиться к сети. Анализатор настроен на захват любой информации, проходя­щей по сети, но особенно — на пользовательские идентификаторы и па­роли.

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

· на других этажах здания;

· на автомобильной стоянке;

· на улице рядом со зданием.

Подслушивание выполняется и в глобальных компьютерных сетях типа выделенных линий и телефонных соединений. Однако такой тип перехвата требует наличия соответствующей аппаратуры и специальных знаний. В этом случае наиболее удачным местом для размещения подслу­шивающего устройства является шкаф с электропроводкой.

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

Информационный доступ с использованием перехвата — одна из слож­нейших задач для злоумышленника. Чтобы добиться успеха, он должен поместить свою систему в линии передачи между отправителем и полу­чателем информации. В интернете это выполняется посредством изме­нения разрешения имени, в результате чего имя компьютера преобразу­ется в неправильный. Трафик перенаправляется к системе атакующего вместо реального узла назначения.

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

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

Перехват более опасен, чем прослушивание, он означает направленную атаку про­тив человека или организации.

Атаки модификации

Атака модификации — это попытка неправомочного изменения инфор­мации. Такая атака возможна везде, где существует или передается ин­формация; она направлена на нарушение целостности информации.

Одним из видов атаки модификации является замена существующей ин­формации, например, изменение заработной платы служащего. Атака замены направлена как против секретной, так и общедоступной инфор­мации.[58]

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

Как и атаки доступа, атаки модификации выполняются по отношению к информации, хранящейся в виде бумажных документов или в электрон­ном виде на компьютере

Документы сложно изменить так, чтобы этого никто не заметил: при наличии подписи (например, в контракте) нужно позаботиться о ее под­делке, скрепленный документ необходимо аккуратно собрать заново.

Очень трудно добавлять или удалять записи из журналов операций. Во-первых, информация в них расположена в хронологическом поряд­ке, поэтому любое изменение будет сразу замечено. Лучший способ — изъять документ и заменить новым. Для атак такого рода необходим физический доступ к информации.

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

Изменение файлов базы данных или списка транзакций должно вы­полняться очень осторожно. Транзакции нумеруются последовательно, и удаление или добавление неправильных операционных номеров будет замечено. В этих случаях необходимо основательно поработать во всей системе, чтобы воспрепятствовать обнаружению.

Маскарад

Маскарад - это выполнение действий под видом другого пользователя или другой системы. Такая атака реализуется при связи через персональ­ные устройства, при осуществлении финансовых операций или при пе­редаче информации от одной системы к другой.

Отрицание события

Отрицание события - это отказ от факта совершения операции. Напри­мер, человек делает покупку в магазине при помощи кредитной карты. Когда приходит счет, он заявляет компании, предоставившей ему кре­дитную карту, что никогда не делал этой покупки.[59]

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

Злоумышленник выдает себя за другого человека, используя чужие доку­менты. Это легче делать, если документ напечатан, а не написан от руки. Злоумышленник отрицает факт свершения сделки. Если на контрак­те или квитанции кредитной карты имеется подпись, он заявит, что это не его подпись. Естественно, планируя такую атаку, он постарается, что­бы подпись выглядела неправдоподобно.

Атаки на отказ от обязательств выполняются гораздо успешнее, если информация представлена в электронном виде. Ведь электронный доку­мент может создать и отправить кто угодно. В поле «от» («from») адреса электронной почты легко изменить имя отправителя, подлинность ко­торого не проверяется службой электронной почты.

Это справедливо и для информации, передаваемой компьютерными системами. Система может назначить себе любой IP-адрес и замаскиро­ваться под другую систему.

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

Если документ не имеет цифровой подписи, то невоз­можно доказать его принадлежность определенному человеку. Но даже если подпись имеется, всегда можно сказать, что она украдена или что раскрыт пароль, защищающий ключ. Таким образом, очень трудно свя­зать конкретного человека с конкретным событием — намного легче от­рицать это.

Для многих коммерческих компаний наиболее секретными сведениями являются картотека персонала и информация о заработке. Не нужно за­бывать о покупателях — об их номерах кредитных карт и номерах соци­ального обеспечения. Финансовые организации и организации здраво­охранения также имеют секретную информацию, которая определенным образом регулируется. Просматривая информацию и продумывая возможность атаки, поставьте своей целью сделать так, чтобы она не была раскрыта. Возможно, что для вашего бизнеса важно учесть атаки моди­фикации, отказа в обслуживании и отказа от обязательств.[60]

Методы хакеров

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

Исследования показали, что хакерами чаще всего становятся:

· мужчины;

· в возрасте от 16 до 35 лет;

· одинокие;

· образованные;

· технически грамотные.

Хакеры имеют четкое представление о работе компьютеров и сетей, о том, как протоколы используются для выполнения системных операций.[61]

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

Первоначальной мотивацией взломщиков компьютерных систем было желание «сделать это». И до сих пор оно остается наиболее общим побу­дительным мотивом.

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

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

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

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

Если в системе обнаружится атак, большинство организаций исправит уязвимость, которая использовалась при атаке, восстановит систему и продолжит работу. Некоторые обратятся за поддержкой к правоохранительным органам, если не смогут выследить взломщика за не­достатком доказательств, или если хакер находится в стране, где отсут­ствуют законы о компьютерной безопасности. Предположим, что хакер оставил улики и задержан. Далее дело будет вынесено на суд присяжных, и прокурор округа (или федеральный прокурор) должен будет доказать, что человек на скамье подсудимых действительно взломал систему жерт­вы и совершил кражу. Это сделать очень трудно!

þпример

Случай с хакером по имени Datastream Cowboy. Вместе с хакером Kuji он взломал систему Центра авиационных разработок базы ВВС Гриффиз (Griffis) в Риме и Нью-Йор­ке и украл программное обеспечение на сумму свыше двухсот тысяч дол­ларов. Хакером Datastream Cowboy оказался 16-летний подросток из Ве­ликобритании — он был арестован и осужден в 1997 г. Его присудили к уплате штрафа размером в 1915 долларов.[62]

На этом примере важно понять следующее: должен существовать спо­соб борьбы с преступниками, движущей силой которых является жажда наживы. В случае взлома системы риск быть схваченным и осужденным очень низок, а прибыль от воровства номеров кредитных карт, товаров и информации очень высока. Хакер будет разыскивать ценную инфор­мацию, которую можно продать или использовать с выгодой для себя.

Хакер, основным мотивом которого является алчность, ставит перед собой особые задачи — его главной целью становятся сайты с ценным содержанием (программным обеспечением, деньгами, информацией).

И последней мотивацией хакера может быть злой умысел, вандализм. В этом случае хакер не заботится о захвате управления системой (только если это не помогает ему в его целях). Вместо этого он старается причи­нить вред легальным пользователям, препятствуя их работе в системе, или законным владельцам сайта, изменяя его веб-страницы.

Коллективный доступ

Первоначальной целью при создании интернета был общий доступ к дан­ным и совместная работа исследовательских институтов. Таким образом, большинство систем было сконфигурировано для коллективного исполь­зования информации. При работе в операционной системе Unix исполь­зовалась сетевая файловая система (Network File System, NFS), которая позволяла одному компьютеру подключать диск другого компьютера че­рез локальную сеть (local area network, LAN) или интернет.

Этим механизмом воспользовались первые хакеры для получения до­ступа к информации — они подключали удаленный диск и считывали ее. NFS использовала номера идентификаторов пользователя (user ID, UID) в качестве промежуточного звена для доступа к данным на диске. Если пользователь JOE с номером ID 104 имел разрешение на доступ к файлу на своем домашнем компьютере, то другой пользователь ALICE с номе­ром ID 104 на удаленном компьютере также мог прочитать этот файл. Опасность возросла, когда некоторые системы разрешили общий доступ в корневую файловую систему (root file system), включая файлы кон­фигурации и паролей. В этом случае хакер мог завладеть правами адми­нистратора и подключить корневую файловую систему, что позволяло ему изменять файлы конфигурации удаленной системы.

Общий доступ к файлам нельзя считать уязвимым местом, это, ско­рее, серьезная ошибка конфигурации. Самое интересное, что многие операционные системы (включая ОС Sun) поставляются с корневой фай­ловой системой, экспортируемой для общедоступного чтения/записи.

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

Новые системы коллективного доступа к файлам, например Gnutella, позволяют компьютерам внутренней сети устанавливать общий доступ к файлам других систем в интернете. Эти системы имеют перенастраиваемую конфигурацию и могут открывать порты, обычно защищенные межсетевым экраном (например, порт 80). Такие системы представляют более серьезную опасность, чем NFS и общий доступ к файлам в ОС Windows.

В ту же самую категорию, что и совместное использование файлов и неправильная настройка, относится удаленный доступ с доверительны­ми отношениями. Использование службы удаленного входа в систему без пароля rlogin является обычным делом среди системных администрато­ров и пользователей. Rlogin позволяет пользователям входить сразу в несколько систем без повторного ввода пароля. Этими разрешениями управляют файлы типа .rhost и host.

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

Наверное, самый общий способ, который используют хакеры для входа в систему, - это слабые пароли. Пароли по-прежнему применяются для аутентификации пользователей. Так как это стандартный метод иденти­фикации для большинства систем, он не связан с дополнительными рас­ходами. Кроме того, пользователи понимают, как работать с паролями. К сожалению, многие не знают, как выбрать сильный пароль. Очень час­то используются короткие пароли (меньше четырех символов) или лег­ко угадываемые. Короткий пароль позволяет применить атаку «в лоб», т. е. хакер будет перебирать предположительные пароли, пока не подбе­рет нужный. Если пароль имеет длину два символа (и это буквы), то воз­можных комбинаций будет всего 676. При восьмисимвольном пароле (включающем только буквы) число комбинаций увеличивается до 208 миллионов. Естественно, гораздо легче угадать двухсимвольный пароль, чем восьмисимвольный![63]

Легко угадываемый пароль также является слабым паролем.

þпример

Червь Морриса. В 1988 г. студент Корнельского университета Роберт Моррис разработал программу, которая распространялась через интернет. Эта программа использовала несколько уязвимых мест для получения доступа к компьютерным системам и воспроизведения самой себя. Одним из уязвимых мест были слабые пароли. Программа наряду со списком наиболее распространенных паролей использовала следую­щие пароли: пустой пароль, имя учетной записи, имя учетной записи, добавленное к самому себе, имя пользователя, фамилию пользователя и зарезервированное имя учетной записи. Этот червь нанес ущерб доста­точно большому количеству систем и весьма эффективно вывел из строя интернет.

Дефекты программирования

Хакеры пользовались дефектами программирования много раз. К этим дефектам относится оставленный в программе «черный ход» (back door), который позволяет впоследствии входить в систему. Ранние версии про­граммы Sendmail имели такие «черные ходы». Наиболее часто использо­валась команда WIZ, доступная в первых версиях Sendmail, работающих под Unix. При подключении с помощью Sendmail (через сетевой доступ к порту 25) и вводе команды WIZ появлялась возможность запуска интер­претатора команд (root shell). Эта функция сначала была включена в Sendmail как инструмент для отладки программы. Подобные функции, оставленные в программах общего назначения, позволяют хакерам мо­ментально проникать в системы, использующие эти программы. Хакеры идентифицировали множество таких лазеек, большинство из которых было, в свою очередь, устранено программистами. К сожалению, неко­торые «черные ходы» существуют до сих пор, поскольку не на всех систе­мах обновилось программное обеспечение.

Социальный инжиниринг

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

Вместо использования уязвимых мест или эсплоитов хакер играет на че­ловеческих слабостях. Самое сильное оружие хакера в этом случае - при­ятный голос и актерские способности. Хакер может позвонить по телефо­ну сотруднику компании под видом службы технической поддержки и узнать его пароль «для решения небольшой проблемы в компьютерной системе сотрудника». В большинстве случаев этот номер проходит.[64]

Иногда хакер под видом служащего компании звонит в службу техни­ческой поддержки. Если ему известно имя служащего, то он говорит, что забыл свой пароль, и в результате либо узнает пароль, либо меняет его на нужный. Учитывая, что служба технической поддержки ориентиро­вана на безотлагательное оказание помощи, вероятность получения ха­кером хотя бы одной учетной записи весьма велика.

Другими формами социального инжиниринга являются исследование мусора организаций, виртуальных мусорных корзин, использование ис­точников открытой информации (веб-сайтов, отчетов, предоставляемых в Комиссию по ценным бумагам США, рекламы), открытый грабеж и са­мозванство. Кража портативного компьютера или набора инструментов сослужит хорошую службу хакеру, который захочет побольше узнать о компании. Инструменты помогут ему сыграть роль обслуживающего пер­сонала или сотрудника компании.

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

Переполнение буфера

Переполнение буфера - это одна из ошибок программирования, исполь­зуемая хакерами. Переполнение буфера труднее обнаружить, чем слабые пароли или ошибки конфигурации. Однако тре­буется совсем немного опыта для его эксплуатации. К сожалению, взлом­щики, отыскавшие возможности переполнения буфера, публикуют свои результаты, включая в них сценарий эксплоита или программу, которую может запустить каждый, кто имеет компьютер.[65]

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

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

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

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

Переполнение буфера происходит очень часто из-за ошибки в приложе­нии, когда пользовательские данные копируются в одну и ту же перемен­ную без проверки объема этих данных перед выполнением операции. Очень многие программы страдают этим. Однако данная проблема уст­раняется довольно быстро, сразу, как только выявляется и привлекает внимание разработчика. Но если это так легко сделать, то почему переполнение буфера существует до сих пор? Если программист будет проверять размер пользовательских данных перед их размещением в предварительно объявленной переменной, то переполнения буфера мож­но будет избежать.[66]

Переполнение буфера можно обнаружить в результате исследования исходного кода программ.

Отказ в обслуживании

Атаки на отказ в обслуживании (Denial-of-service, DoS) — это злонамерен­ные действия, выполняемые для запрещения легальному пользователю доступа к системе, сети, приложению или информации. Атаки DoS имеют много форм, они бывают централизованными (запущенными от одной системы) или распределенными (запущенными от нескольких систем).

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

Следует отметить еще один важный момент в подготовке большин­ства атак. Пока взломщику не удастся проникнуть в целевую систему, DoS-атаки запускаются с подложных адресов. IP-протокол имеет ошибку в схеме адресации: он не проверяет адрес отправителя при создании паке­та. Таким образом, хакер получает возможность изменить адрес отпра­вителя пакета для скрытия своего расположения. Большинству DoS-атак для достижения нужного результата не требуется возвращение трафика в домашнюю систему хакера

Централизованные DoS-атаки

Первыми типами DoS-атак были централизованные атаки (single-source), т. е. для осуществления атаки использовалась одна-единственная систе­ма. Наиболее широкую известность получила так называемая синхронная атака (SYN flood attack) (рис. 8.1). При ее выполнении система-отправи­тель посылает огромное количество TCP SYN-пакетов (пакетов с синх­ронизирующими символами) к системе-получателю. SYN-пакеты исполь­зуются для открытия новых TCP-соединений. При получении SYN-пакета система-получатель отвечает АСК-пакетом, уведомляющим об успешном приеме данных, и посылает данные для установки соединения к отпра­вителю SYN-пакета. При этом система-получатель помещает информа­цию о новом соединении в буфер очереди соединений. В реальном ТСР-соединении отправитель после получения SYN АСК-пакета должен отправить заключительный АСК-пакет. Однако в этой атаке отправитель игнорирует SYN АСК-пакет и продолжает отправку SYN-пакетов. В ко­нечном итоге буфер очереди соединений на системе-получателе перепол­няется, и система перестает отвечать на новые запросы на подключение.

Очевидно, что если источник синхронной атаки имеет легальный IP-адрес, то его можно относительно легко идентифицировать и остано­вить атаку. А если адрес отправителя является немаршрутизируемым, таким как 192.168.х.х? Тогда задача усложняется. В случае продуманного выполнения синхронной атаки и при отсутствии должной защиты IP-ад­рес атакующего практически невозможно определить.

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

Тема 8. Атака и методы хакеров - student2.ru

Рис.8.1 Синхронная DoS-атака (SYN flood attack)

После синхронной атаки были выявлены и другие атаки, более серь­езные, но менее сложные в предотвращении. При выполнении атаки «пинг смерти» (Ping of Death) в целевую систему отправлялся пинг-пакет (ICMP эхо-запрос). В обычном варианте пинг-пакет не содержит данных. Пакет «пинг смерти» содержал большое количество данных. При чте­нии этих данных системой-получателем происходило переполнение бу­фера в стеке протоколов, и возникал полный отказ системы. Разработ­чики стека не предполагали, что пинг-пакет будет использоваться подобным образом, и поэтому проверка количества данных, помещае­мых в маленький буфер, не выполнялась. Проблема была быстро исправ­лена после выявления, и в настоящее время осталось мало систем, уязви­мых для этой атаки.

«Пинг смерти» — лишь одна разновидность DoS-атаки, нацеленная на уязвимые места систем или приложений и являющаяся причиной их ос­тановки. DoS-атаки разрушительны лишь в начальной стадии и быстро теряют свою силу после исправления системных ошибок.

Распределенные DoS-атаки

Распределенные DoS-атаки (Distributed DoS-attaks, DDoS) - это DoS-атаки, в осуществлении которых участвует большое количество систем. Обычно DDoS-атакой управляет одна главная система и один хакер. Эти атаки не обязательно бывают сложными. Например, хакер отправляет пинг-пакеты по широковещательным адресам большой сети, в то время как с по­мощью подмены адреса отправителя - спуфинга (spoofing) - все ответы адресуются к системе-жертве. Такая атака получила название smurf-атаки. Если промежуточная сеть содержит много компьютеров, то количество ответных пакетов, направленных к целевой системе, будет таким большим, что приведет к выходу из строя соединения из-за огром­ного объема передаваемых данных.[67]

Современные DDoS-атаки стали более изощренными по сравнению со smurf-атакой. Новые инструментальные средства атак, такие как Trinoo, Tribal Flood Network, Mstream и Stacheldraht, позволяют хакеру координировать усилия многих систем в DDoS-атаке, направленной про­тив одной цели. Эти средства имеют трехзвенную структуру. Хакер взаи­модействует с главной системой или серверным процессом, размещен­ным на системе-жертве. Главная система взаимодействует с подчиненными системами или клиентскими процессами, установленны­ми на других захваченных системах. Подчиненные системы («зомби») реально осуществляют атаку против целевой системы. Коман­ды, передаваемые к главной системе и от главной системы к подчинен­ным, могут шифроваться или передаваться с помощью протоколов UDP (пользовательский протокол данных) или ICMP (протокол управляющих сообщений), в зависимости от используемого инструмента. Действующим механизмом атаки является переполнение UDP-пакетами, пакетами TCP SYN или трафиком ICMP. Некоторые инструментальные средства случай­ным образом меняют адреса отправителя атакующих пакетов, чрезвы­чайно затрудняя их обнаружение.

Главным результатом DDoS-атак, выполняемых с использованием спе­циальных инструментов, является координация большого количества систем в атаке, направленной против одной системы. [68]

Выполнение атак

Рассмотрим, что требуется для выполнения вышеперечис­ленных атак. В случае ARP-спуфинга, дублирования МАС-адресов или МАС-флудинга злоумышленник должен напрямую подключиться к атаку­емому коммутатору. Такое подключение требуется и для имитации до­менного имени.

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

Правильность IP-адресов в пакетах, передава­емых по сети, не проверяется. Следовательно, хакер может изменить адрес отправителя так, чтобы казалось, будто пакет прибывает с любого адреса. Сложность заключается в том, что возвращаемые пакеты (SYN АСК-пакеты в TCP-соединении) не смогут вернуться к системе-отправи­телю. Следовательно, попытка имитации IP-адреса (IP-спуфинг) для ус­тановки TCP-соединения связана с серьезными трудностями. Кроме того, в TCP-заголовке содержится порядковый номер, используемый для под­тверждения приема пакета. Исходный порядковый номер (initial sequence number, ISN) для каждого нового соединения выбирается псевдо-случайным образом.

В 1989 г. была опуб­ликована статья, в которой говорится о том, что во многих реализациях про­токолов TCP/IP исходный порядковый номер не выбирается случайным образом, а вместо этого просто увеличивается с определенным приращением. Следовательно, при наличии данных о последнем известном ISN следующий номер можно вычислить заранее. Именно благодаря этому возможно выполнение атаки IP-имитации.

На рис. 8.2 показано выполнение атаки имитации IP-адреса. Вначале ха­кер идентифицирует свою цель. Он должен определить величину прира­щения исходного порядкового номера (IDN). Это можно сделать, выпол­няя серию легальных подключений к целевой системе и отмечая возвращаемые IDN (при этом хакер рискует «засветить» свой реальный IP-адрес).[69]

После определения величины приращения IDN хакер посылает к це­левой системе TCP SYN-пакет с измененным IP-адресом отправителя. Система ответит TCP SYN АСК-пакетом, который будет передан по это­му подложному адресу и до хакера, следовательно, не дойдет. SYN АСК-пакет содержит исходный порядковый номер целевой системы. Для за­вершения процесса установки подключения данный ISN необходимо подтвердить отправкой заключительного TCP АСК-пакета. Хакер подсчи­тывает приблизительный ISN (основываясь на величине приращения, которую он выяснил заранее) и отправляет АСК-пакет, содержащий под­ложный IP-адрес отправителя и подтверждение ISN.

Тема 8. Атака и методы хакеров - student2.ru

Рис.8.2 Атака имитации IP-адреса

Если все это будет правильно выполнено, хакер закроет легальное подключение к целевой системе. Он сможет посылать команды и инфор­мацию к системе, но не будет получать ответы.

При атаке имитации IP-адреса компьютерная система считает, что она взаимодействует с другой системой. Как это реализуется на практике? Ясно, что подобная атака, нацеленная на службу электронной почты или веб-службу, много не даст. То же самое справедливо и для атак «грубой силы» с помощью командной строки telnet.

При обнаружении системы, имеющей доверительные отношения с другой системой и находящейся в сети, к которой можно подключиться, имитация IP-адреса позволит хакеру получить доступ в эту систему. Однако есть еще одна проблема, которую он должен решить. Целевая сис­тема в ответ на подложные пакеты будет отправлять данные доверенной системе. В соответствии со спецификацией TCP доверенная система может ответить перезагрузкой или пакетом сброса (RST-пакетом), по­скольку она не имеет сведений о подключении. Хакер не должен допус­тить этого и обычно выполняет DoS-атаку против доверенной системы

Вирусы

Компьютерные вирусы являются паразитами по отношению к другим ком­пьютерным программам. Они сделаны так, что не могут жить самостоя­тельно. При выполнении программы, в которую внедрен вирус, исполня­ется код вируса, реализующий собственные функции. Эти функции обычно включают заражение других программ и распространение на другие дис­ки. Некоторые вирусы являются вредоносными — они удаляют файлы или выводят из строя систему. Другие вирусы не наносят никакого вреда, кро­ме распространения самих себя по компьютерным системам.

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

Все типы вредоносного кода относят к категории компьютерных вирусов. Запом­ните описания вирусов и попробуйте понять, как работает код, чтобы правильно его классифицировать. Принципы работы этих программ напрямую связаны с выбором наиболее эффективных механизмов защиты.

«Троянские кони»

Термин «троян» происходит из древнегреческих мифов. Древние греки спрятали в подношении воинов, готовящих нападение. Так и «троянский конь» скрывает свою вредоносную сущность под ви­дом полезной и интересной программы. «Троянский конь» является за­конченной и независимой программой, которая разработана для выпол­нения вредоносных действий. Она обычно маскируется под новую программу или электронную почту.

Большинство программ типа «троянский конь» содержат механизмы самораспространения на другие компьютеры-жертвы. Возьмем для при­мера программу ILOVEYOU. Она попадает на компьютер через сообще­ние электронной почты с вложением, содержащим программу на Visual Basic. Это вложение выглядит, как обычный текстовый файл. Но если пользователь откроет этот файл, то выполнится код на Visual Basic. Он отправит сам себя по почте всем пользователям, адреса которых найдет в адресной книге жертвы.

Черви

Червь — это программа, которая «переползает» от си­стемы к системе без всякой помощи со стороны жертвы. Червь сам себя распространяет и воспроизводит. Все, что требуется от его создателя, запустить червя.

Первым известным примером является червь, созданный Робертом Моррисом в 1989г. Червь Морриса был запрограм­мирован на использование множества уязвимых мест, в том числе сла­бых паролей. С их помощью он отыскивал в интернете системы, в кото­рые проникал и выполнялся. Попав в систему, червь начинал разыскивать другие жертвы. По прошествии некоторого времени он вывел из строя весь интернет.

Также большую известность приобрел червь CodeRed. Он использовал уязвимые места в информационных службах интернета (IIS) от Microsoft для распространения через всемирную сеть. Поскольку он использовал для атаки легальные веб-соединения, защитить от него компьютеры не смогли даже межсетевые экраны. Попав в систему, CodeRed выбирал произвольный адрес для следующей атаки.

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

þпример

В сентябре 2002 г. в интернете появился червь Slapper, который проде­монстрировал потенциальную опасность червей. Этот червь действовал не сразу, подготавливая «плацдарм» для будущей атаки. Следует отметить, однако, что даже в момент своего наивысшего подъема червь Slapper не затронул такого количества систем, как червь CodeRed.

Червь Slapper использовал уязвимое место в модуле OpenSSL веб-сер­вера Apache (OpenSSL позволяет работать с протоколом защищенной передачи гипертекстов HTTPS). Попав в систему, червь выбирал IP-ад­рес для атаки из списка сетей класса А, запрограммированных в коде чер­вя. Затем Slapper исследовал IP-адрес целевой системы и проверял, вы­полняется ли на ней веб-сервер. В случае положительного ответа он выяснял, не является ли этот веб-сервер сервером Apache, работающим на платформе Intel (поскольку он имеет свои специфические «бреши»). В конце концов червь определял наличие в целевой системе уязвимого места для атаки.

Сама атака выполнялась посредством использования HTTPS и порта 443. Это затрудняло обнаружение нападения, так как трафик шифровал­ся. Единственное, что выдавало деятельность червя: при поиске уязви­мого места он использовал стандартный протокол HTTP и порт 80 и лег­ко обнаруживал себя.

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

Гибриды

Имеется еще одна разновидность вредоносных про­грамм — объединение двух типов программ в одну. Можно встретить про­граммы, действующие одновременно и как черви, и как «троянские кони». Прекрасным примером является червь Nimda, который использовал уязвимые места веб-сервера для перемещения с одной системы на дру­гую, подобно червю. Однако Nimda распространялся и через вложения электронной почты, сделанные весьма привлекательными для пользова­теля, чтобы соблазнить его открыть файл. После открытия вложения червь распространялся далее через электронную почту. Он использовал системы жертв для атаки веб-серверов.[70]

Контрольные вопросы

1. Какие существуют основные категории атак?

2. Что представляет из себя «атака модификации»?

3. Что такое «Маскарад»?

4. Какие методы действия хакеров Вы знаете?

5. Как выполняется распределенная DoS-атака?

6. Какие осуществляется атака с использованием имитации IP-адреса?

Библиографический список

Основная литература:

1. Ярочкин В.И. Информационная безопасность: учебник для студентов высших учеб. заведений, обучающихся по гуманитарным и социально-экономическим специальностям / В. И. Ярочкин. - М.: Акад. проект, 2008. – C.131-183.

Дополнительная литература:

1. Мэйволд Э. Безопасность сетей: практическое пособие / Э. Мэйволд; [пер. с англ.] – М.: «СП ЭКОМ», 2005.

Наши рекомендации