русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Ext3 62288 2


Дата добавления: 2014-11-28; просмотров: 588; Нарушение авторских прав


jbd 37852 2 [ext3]

 

Рис. 2.9. Получение списка загруженных модулей

 

В выводе команды присутствует наименование модуля, его размер, счетчик использования и имена модулей, с которыми он связан. Чтобы выгрузить модуль, используется команда rmmod.

Внедрение в ядро Linux динамически загружаемых программных модулей позволяет злоумышленнику управлять операционной системой на «ядерном» уровне. Эти возможности позволяют, в том числе, скрывать файлы и процессы.

Нарушитель, действующий с правами обычного пользователя, не располагает правами, позволяющими ему полностью скрыть от наблюдателя нежелательный процесс. Одних только прав root для этого также будет маловато, нужны еще инструменты и квалификация. Но попытаться изменить уличающие его параметры процесса пользователь вполне может. Такими параметрами в первую очередь являются имя программы, обозначение (имя и номер) терминала, с которого процесс запущен, а также UID или регистрационное имя пользователя. Рассмотрим все перечисленное по порядку.

Наивно полагать, что нарушитель назовет исполняемый файл своей программы каким-нибудь зловещим именем вроде virus_hiden, trojan666 или agent007. Для маскировки, вероятно, будут использованы имена программ, которые пользователь запускает наиболее часто. Большинство команд выполняется практически мгновенно, и их имена для камуфляжа непригодны. Так, наиболее часто используемая команда ls практически никогда не отображается в списке процессов, и если такое произойдет, то это скорее вызовет настороженность администратора. Маскировать опасные продолжительные процессы можно с помощью таких безобидных названий программ, как mc, man, info, bc. Даже очень подозрительному администратору трудно усмотреть угрозу в использовании файлового менеджера, справочной системы или калькулятора.



Системные утилиты, запускаемые оболочкой по «короткому» имени, найденному с помощью переменной окружения PATH, отображаются в списке процессов также только по имени файла. Но обычный пользователь, лишенный права записи в каталоги типа /binи /sbin, сумеет запустить «двойника» такой программы только из своего домашнего каталога или каталога /tmpс указанием полного имени файла.

Довольно распространен способ сокрытия, основанный на символьном камуфляже. Он заключается в том, что создается процесс, по имени напоминающий привычную для глаза программу. Для этого используются похожие по начертанию символы в различных раскладках клавиатуры. Так, строчные символы a, c, e, о, р и заглавные символы A, B, C, E, K, O, P, T, M, X пишутся одинаково в русской и латинской кодировках.

Модифицируя исходный файл программы, используемый для проникновения в систему или перехвата данных, злоумышленник может заменить в нем аргументы командной строки, например, с помощью инструкции strcpy(argv[0], «man»). После этого запущенный процесс будет отображаться как экземпляр справочной системы.

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

cat >/tmp/...

#! /bin/bash

yes abc > /tmp/abc

Ctrl+d

Присваивая файлу имя, состоящее из трех точек, нарушитель желает сделать его скрытым и неотображаемым при вводе команды ls -l. Затем, используя команду chmod 700 ...,он обеспечивает себе права на чтение и исполнение данного сценария, после чего запускает его, ожидая, что такой процесс будет «закамуфлирован». Но администратор, контролируя систему с помощью утилиты ps -ef, в это время может наблюдать два процесса, запущенные из пользовательской консоли и от его имени: /bin/bash ...и yes. Вероятно, это не совсем то, на что рассчитывал предприимчивый пользователь. Причем даже если наблюдение за процессами не было организовано и файл непомерной величины был создан, то установить его создателя и владельца будет нетрудно.

Скрытие имени процесса – наиболее простая задача. Обычному пользователю труднее скрыть от системных мониторов факт запуска программы с конкретного терминала и от имени определенного пользователя. Однако один из этих параметров закамуфлировать можно.

Самый простой путь скрытия терминала – преобразование интерактивного процесса в фоновый. Для этого командную строку следует закончить пробелом и символом &. Затем командой exit или logout следует завершить пользовательский сеанс, после чего вновь зарегистрироваться. Команда ps -ef вместо имени терминала отобразит вопросительный знак.

Команда nohup <command> позволяет процессу продолжить выполнение при потере управляющего терминала. Эту команду выгодно использовать при выполнении команды продолжительного действия. Команда запускается, после чего терминальный сеанс завершается, а программа при этом продолжает выполняться.

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

Если пользователь вводит команду passwd или su и не торопится с вводом пароля, его процесс может быть зафиксирован из другой консоли с помощью команды ps -ef. Но владельцем процесса будет значиться не пользователь, а администратор. По существу дела так оно и есть – ведь эти утилиты запускаются с правами их владельца – root. Эта особенность может быть использована в целях сокрытия от администратора длительных попыток подбора пароля root с помощью утилиты su. Например, для этого пользователь создает жесткую ссылку на утилиту su из своего каталога, используя команду



<== предыдущая лекция | следующая лекция ==>
Сокрытие процессов | Ln /bin/su man


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.247 сек.