Анализ операционной системы МСВС на предмет наличия уязвимостей

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование




?пособности после сбоев.

Подбор пароля

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

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

Как известно, в файле /etc/passwd лежит ключевая информация о всех пользователях системы, включая его входное имя, пароль, полное имя и т. п. Даже в 70-х годах, когда создавались первые версии UNIX - систем, его разработчикам было понятно, что пароль пользователя нельзя хранить в открытом виде. Была создана схема, благодаря которой целенаправленные атаки смогли реализоваться только спустя несколько десятков лет. Они не пошли по простому пути шифрования пароля по какому-то секретному алгоритму, т. к. рано или поздно этот алгоритм стал бы известен. Был выбран путь необратимого преобразования пароля, когда из исходного пароля путем применения к ней специальной однонаправленной функции хэширования получалось некое значение, из которого никак нельзя получить исходный пароль.

Рассмотрим немного подробнее алгоритм, применяемый в ОС МСВС для преобразования пароля пользователя. Из исходного пароля берутся первые восемь байт. Также выбирается некоторое 12-битное случайное число salt, используемое для операции хэширования. Его необходимость следует из того, чтобы одинаковые пароли (возможно, у разных людей) не выглядели одинаково после хэширования. Затем к этим двум параметрам применяется специальная функция шифрования, дающая на выходе 64-битное значение. Наконец, сам salt преобразуется в два читабельных ASCII-символа, а хэш - в 11 символов. Итак, функция crypt (passwd8, salt) выдает 13-символьную строчку, которая и записывается в файл /etc/passwd.

При входе пользователя в систему вызывается та же функция crypt() с введенным паролем и salt, полученными из /etc/passwd. Если результат функции оказывается равным тому значению, что хранится в файле, то аутентификация iитается состоявшейся.

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

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

Был придуман очевидный метод, основанный на людской психологии. Он следует из того, что человеку нелегко запомнить длинные бессмысленные наборы символов (идеальные в качестве паролей), поэтому он каким-либо путем попробует выбрать их более-менее запоминающимися и/или осмысленными. Ну, а поскольку в любом языке не более 100000 слов, то их перебор займет весьма небольшое время, и от 40 до 80% существующих паролей может быть угадано с помощью такой простой схемы, называемой "атакой по словарю". Тем более, что "под рукой" часто оказывается файл-словарь, обычно используемый программами-корректорами.

ОС МСВС использует механизм так называемого "затенения" (shadowing) файла паролей - он перемещается в другое место и становится недоступным обычным пользователям по чтению.

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

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

Не удивительно, если такой пароль будет вскрыт злоумышленником, который вставил в свои программы те правила, по которым может идти преобразование слов. В таких программах как: Crack 4.1, John The Ripper 1.3, эти правила могут быть программируемыми и задаваться с помощью специального языка.

Сохранение защищаемой информации в специальные файлы

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

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

3.2 Сетевые уязвимости

В настоящее время локальные компьютеры в больших организациях становятся большой редкостью, что делает ак?/p>