Главная страница  Межпроцессное взаимодействие (состязание) 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 [ 156 ] 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187

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

Таким образом, профамма может перебирать символ за символом, отгадывая пароль буква за буквой, и сдвигая пароль при каждом отгаданном символе на один символ вниз относительно фаницы страниц (рис. 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]. За несколько лет подобные команды обнаружили множество областей, в которых операционные системы проявляют свою слабость. Ниже будут перечислены наиболее распространенные методы атак, часто завершающиеся успехом. Хотя изначально эти методы разрабатывались для атаки систем разделения времени, они часто могут применяться и для нападения на серверы локальных сетей и другие совместно используемые машины. При разработке таких систем убедитесь, что им под силу выдержать атаки следующих типов:

♦ запросите страницы памяти, место на диске или магнитной ленте и просто считайте. Многие системы не очищают память при ее выделении пользе-



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 [ 156 ] 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187

© 2000 - 2018 ULTRASONEX-AMFODENT.RU.
Копирование материалов разрешено исключительно при условии цититирования.