При этом возможна интересная ситуация: функция может быть уже перехвачена (например, антикейлоггером и тогда будет произведена модификация машинного кода перехватчика, что еще больше усложнит обнаружение шпиона.
Всем этим хозяйством управляет функциональный драйвер 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.
Но в корпоративной среде, в частности на компьютерах, применяемых для выполнения банковских операций, для проведения электронных торгов или для решения задач, связанных с обработкой секретных документов, имеется опасность применения аппаратных средств, предназначенных для регистрации вводимой с клавиатуры информации.
Комментариев нет:
Отправить комментарий