Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебн пособ ОС (Кручинин).doc
Скачиваний:
34
Добавлен:
05.05.2019
Размер:
1.52 Mб
Скачать

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, в. В результате выполнить свой программный код при отсутствии на это прав. Защита от атак подобного рода заключается в проверке длины всех поставляемых пользователем строк перед копированием в буфер.