понедельник, 16 сентября 2013 г.

Драйвер для клавиатур всех типов

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

Всем этим хозяйством управляет функциональный драйвер i8042prt (Intel 8042 Port Driver полный исходный код которого, можно найти в DDK (DDKsrcinputpnpi8042).

Возможно решение и без приложения-инсталлятора в этом случае драйвер устанавливается при помощи INF-файла.

Потоку необработанного ввода придется ждать завершения IRP (если точнее, то RawInputThread получает клавиатурные события как вызов асинхронной процедуры (Asynchronous Procedure Call, APC).

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

Через порты ввода/вывода) функциональный драйвер i8042prt управляет устройством "клавиатура".

Для этого тоже необходим поиск таблицы KeServiceDescriptorTableShadow.

Методика противодействия : вскрытие клавиатуры и ее проверка на предмет наличия посторонних электронных узлов с последующим пломбированием корпуса клавиатуры при помощи плом.



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

Если вы используете USB-мышь или клавиатуру у вас, к сожалению, могут возникнуть некоторые трудности (см.

Выводы, итак, мы рассмотрели несколько эффективных методик, которые могут применяться при построении клавиатурных шпионов.

В исходном коде драйверов Kbdclass и Mouclass обращения к портам вы конечно не найдете.

Оба эти драйвера устанавливаются как высокоуровневые драйверы фильтры и их полный исходный код также можно найти в DDK (DDKsrcinputkbdclass и DDKsrcinputmouclass, соответственно).



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

Когда будет нажата или отпущена клавиша, контроллер клавиатуры выработает аппаратное прерывание.

Этот поток открывает объект "устройство" драйвера класса клавиатуры для эксклюзивного использования и с помощью функции ZwReadFile направляет ему IRP типа IRP_MJ_read.

Физическую связь клавиатуры с шиной осуществляет микроконтроллер клавиатуры Intel 8042 (или совместимый с ним).

Подобный клавиатурный шпион очень опасен, так как: он не обнаруживается стандартными методиками поиска клавиатурных шпионов; возможно внедрение перехватчика по определенным условиям, в результате чего он внедряется не во все GUI-процессы, а в строго определенные (например, в процессы браузера или в приложение типа WebMoney против него бесполезны экранные клавиатуры и прочие средства борьбы с клавиатурными шпионами;.

Вследствие этого подобный метод практически не встречается.

Клавиатурный шпион на базе руткит-технологии в UserMode.



Клавиатурный шпион на базе руткит-технологии в KernelMode.

Возможно решение и без приложения-инсталлятора в этом случае драйвер устанавливается при помощи INF-файла.

Стек клавиатуры обрабатывает несколько типов запросов (полный список см.

Драйвер i8042prt тоже регистрирует у системы свою процедуру обработки прерывания (Interrupt Service Routine, ISR) I8042KeyboardInterruptService, вызовом функции IoConnectInterrupt.

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


Комментариев нет:

Отправить комментарий