- •Содержание
- •1 Начальные сведения об операционных системах
- •1.1 Назначение и функции операционных систем
- •1.2 История развития операционных систем
- •1.3 Классификация операционных систем
- •1.4 Обзор аппаратного обеспечения компьютера
- •1.5 Архитектура операционной системы
- •1.5.1 Классическая архитектура
- •1.5.2 Микроядерная архитектура
- •2 Процессы и потоки
- •2.1 Процессы
- •2.2 Потоки
- •2.3 Межпроцессное взаимодействие
- •2.3.1 Взаимное исключение с активным ожиданием
- •2.3.2 Примитивы межпроцессного взаимодействия
- •2.4 Планирование
- •2.4.1 Планирование в системах пакетной обработки данных
- •2.4.2 Планирование в интерактивных системах
- •2.4.3 Планирование в системах реального времени
- •2.5 Понятие взаимоблокировки
- •3 Управление памятью
- •3.1 Основы управления памятью
- •3.2 Методы распределения памяти без использования подкачки
- •3.2.1 Метод распределения с фиксированными разделами
- •3.2.2 Метод распределения с динамическими разделами
- •3.2.3 Метод распределения с перемещаемыми разделами
- •3.3 Методы распределения памяти с подкачкой на жесткий диск
- •3.3.1 Страничная организация памяти
- •3.3.2 Сегментная организация памяти
- •3.3.3 Сегментно-страничная организация памяти
- •3.4 Кэширование данных
- •4 Аппаратная поддержка мультипрограммирования на примере процессора Pentium
- •4.1 Регистры
- •4.2 Привилегированные команды
- •4.3 Сегментация с использованием страниц
- •4.4 Защита данных в процессоре Pentium
- •4.5 Средства вызова процедур и задач
- •4.6 Механизм прерываний
- •4.7 Кэширование в процессоре Pentium
- •5 Ввод-вывод
- •5.1 Принципы аппаратуры ввода-вывода
- •5.2 Принципы программного обеспечения ввода-вывода
- •6 Файловые системы
- •6.1 Основы файловых систем
- •6.2 Файловая система fat
- •6.3 Файловая система ntfs
- •6.4 Файловые системы Ext2, Ext3 и ufs
- •7 Безопасность операционных систем
- •7.1 Основы безопасности
- •7.2 Аутентификация пользователей
- •7.3 Атаки изнутри операционной системы
- •7.4 Атаки операционной системы снаружи
- •8 Обзор современных операционных систем
- •8.1 Операционная система Windows 2000
- •8.1.1 Структура Windows 2000
- •8.1.2 Реализация интерфейса Win32
- •8.1.3 Эмуляция ms-dos
- •8.2 Архитектура unix-образных операционных систем
- •8.3 Мультипроцессоры и мультипроцессорные операционные системы
- •8.4 Операционные системы реального времени и мобильные операционные системы
- •8.4.1 Операционная система Windows ce 5.0
- •Список использованных источников
7.3 Атаки изнутри операционной системы
Зарегистрировавшись на компьютере, взломщик может начать причинение ущерба. Если на компьютере установлена надежная система безопасности, возможно, взломщик сможет навредить только тому пользователю, чей пароль он взломал, но часто начальная регистрация может использоваться в качестве ступеньки для последующего взлома других учетных записей.
1 Троянские кони
Это вредоносная программа, используемая злоумышленником для сбора информации, её разрушения или модификации, нарушения работоспособности компьютера или использования его ресурсов в неблаговидных целях. К этим целям может относится и осуществление банковский операций через защищенные программы.
Чтобы троянский конь заработал, необходимо запустить его. Обычно это происходит, когда люди скачивают с Интернета игру, новый проигрыватель mp3, специальную программу для просмотра порнографии и т.д. Т.е. при применении троянского коня взлом компьютера не нужен, ведь вредоносную программу запускает сам пользователь.
2 Фальшивая программа регистрации
Ввод пользователя и пароля в окне взломщика. Для того, чтобы взломщик не смог подменить окно смены пользователя в Windows используется от перехвата комбинация CTRL+ALT+DEL. Однако и для этой комбинации есть способы взлома, но в этом случае необходимо внедрить DLL в процесс Winlogon.
3 Логические бомбы
Логическая бомба – это написанная одним из сотрудников программа, тайно установленная в операционную систему, которая при внезапно увольнении сотрудника через некоторое время начинает действовать: например, форматирование жесткого диска, удалении файлов в случайном порядке или шифровании важных файлов.
4 Потайные двери
Внедренные программистом процедуры проверки регистрации. Т.е. изменяется кусок программы, в которые добавляется к примеру, пользователь, зашитый в исполняемый код.
5 Переполнение буфера
Практически все операционные системы написаны на языке C, программы на котором компилируются гораздо эффективнее, чем другие языки. Однако ни один из компиляторов C не проверяет границы массива – за этим должен следить программист. Пример программного кода представлен в листинге 7.
int i;
BYTE buf[10000];
i=20000;
buf[i]=0;
Листинг 7 – Пример обращение к памяти за границей массива
В результате выполнения программы изменяется байт совершенно в другом месте. Это свойство языка C позволяет произвести атаку следующего типа (Рисунок 60).
Рисунок 60 – Работает головная программа (а); вызывается процедура A (б); переполнение буфера (в)
На рисунке 60, а показана работающая программа со своими переменными в стеке. В некоторый момент она вызывает процедуру A (Рисунок 60, б). В стек помещается адрес возврата и управление передается процедуре A. Для каких-либо целей в процедуре зарезервирован буфер B (например, для имени файла), однако пользователь вводит буфер намного больше. И если процедура не проверяет размер, то адрес возврата в программу может оказаться другим. Если предположить, что взломщик знает размер стека, то он может сделать буфер не из случайных байтов, а из команд, а адрес возврата точно подгадать так, как показано на рисунке 56, в. В результате выполнить свой программный код при отсутствии на это прав. Защита от атак подобного рода заключается в проверке длины всех поставляемых пользователем строк перед копированием в буфер.