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

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

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

♦ попытайтесь обратиться к несуществующим системным вызовам или к имеющимся системным вызовам, но с неверными параметрами, например не того типа или слишком большой длины. Многие системы не выдерживают подобного обращения с ними;

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

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

♦ прочитайте руководство и попытайтесь найти фразы, гласящие: Не делайте X . Попытайтесь проделать X в различных комбинациях;

♦ убедите системного администратора добавить потайную дверь с обходом важных этапов проверки безопасности для любого пользователя с вашим именем;

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

Подобные и другие методы атак обсуждаются в [56]. Хотя эта статья вышла уже более четверти века тому назад, многие руководства к действию, вошедшие в нее, все еще работают.

Вирусы

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

Типичный вирус работает следующим образом. Автор вируса сначала делает какую-либо полезную программу, например игру для MS-DOS. В коде этой про-



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

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

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

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

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

Более радикальный способ лечения сводится к тому, чтобы полностью форматировать диск, включая и загрузочный сектор. Затем нужно установить заслуживающие доверия программы и для каждого файла подсчитать контрольную сумму. Алгоритм вычисления контрольной суммы не важен, главное, чтобы сумма имела достаточное количество битов (как минимум, 32). Контрольные суммы нужно сохранить в безопасном месте, либо на дискету, либо в зашифрованном виде. После этого при каждой загрузке системы нужно заново вычислять контрольные суммы файлов, сверяя их с контрольными значениями. Если какой-либо файл меняется, он, вероятно, заражен. Такая методика не позволяет предотвратить заражение, но она хотя бы позволяет на раннем этапе его обнаружить.

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



5.4.4. Принципы проектирования систем безопасности

Теперь читателю должно быть ясно, что разработка хорошо защищенной операционной системы представляет собой нетривиальную задачу. Над этой проблемой без особого успеха билось множество людей. В 1975 году исследователи определили несколько общих принципов, которых необходимо придерживаться при проектировании надежных систем [67]. Ниже приведен краткий обзор некоторых из этих идей (основанных на опыте работы в системе MULTICS), значимость которых за последние четверть века не изменилась.

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

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

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

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

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

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



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.
Копирование материалов разрешено исключительно при условии цититирования.