Главная страница Межпроцессное взаимодействие (состязание) ционная система перейдет к проверке следующего символа, вызывая страничное прерывание, отслеживаемое профаммой пользователя. Таким образом, профамма может перебирать символ за символом, отгадывая пароль буква за буквой, и сдвигая пароль при каждом отгаданном символе на один символ вниз относительно фаницы страниц (рис. 5.18, в). Для нахождения всего пароля требуется перебор менее 128 символов (набор ASCII) для каждой позиции в пароле. Следовательно, для нахождения пароля длиной в п символов требуется всего 128 и попыток вместо 128 . Первая страница (в памяти) Вторая страница (нет в памяти)
Рис. 5.18. Взлом пароля в системе TENEX: а - начальное состояние; б - в момент перебора символов; а - сдвиг пароля, если есть такая буква в этом слове Теперь остановимся на дефектах безопасности в системе OS/360. Описание слегка упрощено, но в нем сохранена суть проблемы. В данной системе можно было запустить чтение магнитной ленты, а затем продолжить вычисления во время считывания данных с ленты в пространство пользователя. Трюк заключался в том, чтобы начать чтение ленты, а затем обратиться к системному вызову, которому требовалась структура данных пользователя, например файл и его пароль. Операционная система сначала проверяла верность пароля для данного файла. После этого она считывала имя того же файла снова уже для его чтения. (Это имя могло бы храниться в системе, но теория теорией...) К сожалению, как раз перед тем, как операционная система собиралась считать имя файла во второй раз, поверх этого имени считывалось новое имя с магнитной ленты. Таким образом, операционная система, убедившись в подлинности пароля для одного файла, считывала другой файл, для которого у пользователя пароля не было. Чтобы точно рассчитать время обращений к системным вызовам, требовалась определенная практика, но это было не так уж сложно. Время текло, и в дополнение к этим примерам появились новые уязвимости и способы их атак. Одним из вариантов атаки изнутри является троянский конь, представляющий собой невинную с виду программу, содержащую процедуру, выполняющую неожиданные и нежелательные функции. Этими функциями могут быть копирование файлов пользователя туда, где их впоследствии может получить взломщик, или даже отсылка их взломщику или во временное укромное место по электронной почте или с помощью протокола FTP. Существует еще одна разновидность атаки системы изнутри, называемая логической бомбой. Программа типа логической бомбы тайно закладывается в операционную систему обычно одним из сотрудников компании. До тех пор пока программист каждый день входит в систему под своим именем и паролем, эта программа не предпринимает никаких действий. Однако если программиста внезапно увольняют и физически удаляют из помещения без предупреждения, то на следующий день (или на следующую неделю) логическая бомба, не получив своего ежедневного пароля, начинает действовать. Существует множество вариаций на эту тему. В одном знаменитом случае программа проверяла платежную ведомость. Если личный номер программиста не появлялся в двух последовательных ведомостях подряд, бомба взрывалась . Взрыв логической бомбы может заключаться в форматировании жесткого диска, удалении файлов в случайном порядке, внесении с трудом обнаруживаемых изменений в ключевые программы или в шифровании важных файлов. В последнем случае компания оказывается перед сложным выбором: вызвать полицию (в результате чего много месяцев спустя злоумышленника, возможно, арестуют и признают виновным, но файлы придется создавать заново) или сдаться шантажисту и снова нанять на работу этого программиста в качестве консультанта с астрономическим окладом для восстановления системы (и надеяться, что он при этом не заминирует систему еще раз). Наверное, самым масштабным случаем несанкционированного доступа стали события вечера 2 ноября 1988 года, когда аспирант университета Корнелла в штате Нью-Йорк Роберт Таппан Моррис выпустил написанную им программу-червя в Интернет. В результате этого действия были заражены тысячи компьютеров в университетах, корпорациях и правительственных лабораториях по всему миру, прежде чем эту программу удалось выследить и удалить. Технически червь состоял из двух программ: начального загрузчика и собственно червя. Начальный зафузчик представлял собой 99 строк на языке С (файл назывался 11.с). Этот загрузчик компилировался и исполнялся на атакуемом компьютере. Будучи запущенной, личинка связывалась с машиной, с которой поступила, загружала тело основного червя и запускала его. После некоторых действий, направленных на попытки скрыть свое существование, червь заглядывал в таблицы маршрутизации нового хоста, определяя компьютеры, с которыми тот был соединен, после чего пытался распространить начальный загрузчик на эти машины. Попав в систему, червь пытался взломать систему паролей. Для этого Моррису не понадобилось предпринимать собственных исследований. Все, что ему потребовалось, - это попросить у собственного отца, эксперта в области безопасности в Управлении национальной безопасности США, профессионально занимающегося взломом кодов, перепечатку классической статьи, написанной десятилетием раньше Моррисом старшим и Кеном Томпсоном в лаборатории Bell Labs [61]. Каждый взломанный пароль позволял червю зарегистрироваться на любой машине, на которой у владельца пароля были учетные записи. Морриса поймали, когда один из его друзей разговаривал с репортером из компьютерной редакции Нью-Йорк Тайме, Джоном Марковым, и пытался убедить репортера, что все это лишь несчастный случай, что червь безобиден и автор весьма сожалеет. Друг по неосторожности упомянул, что регистрационное имя нарушителя rtm. Преобразовать rtm в физическое имя владельца было несложно - все, что Маркову надо было сделать, - это запустить процедуру finger. На следующий день эта история оказалась на первых полосах всех газет, вытеснив оттуда даже информацию о предстоящих через три дня президентских выборах. Моррис предстал перед федеральным судом и был приговорен к штрафу в размере 10 ООО долларов, 3 годам испытательного срока и 400 часам общественных работ. Его судебные издержки, вероятно, превысили 150 ООО долларов. Приговор породил множество разногласий. В компьютерном обществе многие считали, что Моррис был блестящим студентом, чья опасная шалость вышла из-под контроля. Написанная им программа не содержала ничего, что бы свидетельствовало о намерениях Морриса украсть какие-либо данные или причинить какой-либо намеренный ущерб. Другие считали его серьезным преступником, которому место в тюрьме. Одним из результатов этого инцидента было создание группы компьютерной скорой помощи CERT (Computer Emergency Response Team), основными задачами которой являются доклады о попытках взлома в Интернете, а также анализ проблем безопасности и разработка методов их решения. При необходимости эта группа рассылает свою информацию тысячам системных администраторов по Интернету. К сожалению, этой информацией, содержащей сообщения об ошибках в системах, могут воспользоваться также и злоумышленники (возможно, притворяющиеся системными администраторами). 5.4.3. Атака системы безопасности Обычный способ проверить надежность системы безопасности заключается в приглашении группы экспертов, называемых командой тигров , или группой проникновения, чтобы посмотреть, смогут ли они взломать защиту. Иногда в качестве такой команды приглашались аспиранты [42]. За несколько лет подобные команды обнаружили множество областей, в которых операционные системы проявляют свою слабость. Ниже будут перечислены наиболее распространенные методы атак, часто завершающиеся успехом. Хотя изначально эти методы разрабатывались для атаки систем разделения времени, они часто могут применяться и для нападения на серверы локальных сетей и другие совместно используемые машины. При разработке таких систем убедитесь, что им под силу выдержать атаки следующих типов: ♦ запросите страницы памяти, место на диске или магнитной ленте и просто считайте. Многие системы не очищают память при ее выделении пользе-
|
© 2000 - 2024 ULTRASONEX-AMFODENT.RU.
Копирование материалов разрешено исключительно при условии цититирования. |