Иллюстрированный самоучитель по защите информации

Клавиатурные шпионы

Одна из наиболее распространенных разновидностей программных закладок – клавиатурные шпионы. Такие программные закладки нацелены на перехват паролей пользователей операционной системы, а также на определение их легальных полномочий и прав доступа к компьютерным ресурсам.

Клавиатурные шпионы – явление отнюдь не новое в мире компьютеров В свое время они разрабатывались и для OS/370, и для UNIX, и для DOS. Их поведение в общем случае является довольно традиционным: типовой клавиатурный шпион обманным путем завладевает пользовательскими паролями, а затем переписывает эти пароли туда, откуда их может без особого труда извлечь злоумышленник. Различия между клавиатурными шпионами касаются только способа, который применяется ими для перехвата пользовательских паролей. Соответственно все клавиатурные шпионы делятся на три типа – имитаторы, фильтры и заместители.

Имитаторы

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

Обманутый пользователь, видя, что ему предлагается еще раз ввести пароль. приходит к выводу о том, что он допустил какую-то ошибку во время предыдущего ввода пароля, и послушно повторяет всю процедуру входа в систему заново. Некоторые имитаторы для убедительности выдают на экран монитора правдоподобное сообщение о якобы совершенной пользователем ошибке. Например, такое: "НЕВЕРНЫЙ ПАРОЛЬ. ПОПРОБУЙТЕ ЕЩЕ РАЗ".

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

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

login:
password:

Чтобы подделать такое приглашение, не нужно быть семи пядей во лбу. Однако само по себе усложнение внешнего вида приглашения не создает для хакера, задумавшего внедрить в операционную систему имитатор, каких-либо непреодолимых препятствий. Для этого требуется прибегнуть к более сложным и изощренным мерам защиты. В качестве примера операционной системы, в которой такие меры в достаточно полном объеме реализованы на практике, можно привести Windows NT.

Системный процесс WinLogon, отвечающий в операционной системе Windows NT за аутентификацию пользователей, имеет свой собственный рабочий стол – совокупность окон, одновременно видимых на экране дисплея. Этот рабочий стол называется столом аутентификации. Никакой другой процесс, в том числе и имитатор, не имеет доступа к рабочему столу аутентификации и не может расположить на нем свое окно.

После запуска Windows NT на экране компьютера возникает так называемое начальное окно рабочего стола аутентификации, содержащее указание нажать на клавиатуре клавиши CTRL + ALT + Del. Сообщение о нажатии этих клавиш передается только системному процессу WinLogon, а для остальных процессов, в частности, для всех прикладных программ, их нажатие происходит совершенно незаметно. Далее производится переключение на другое, так называемое регистрационное окно рабочего стола аутентификации. В нем-то как раз и размещается приглашение пользователю ввести свое идентификационное имя и пароль, которые будут восприняты и проверены процессом WinLogon.

Для перехвата пользовательского пароля внедренный в Windows NT имитатор обязательно должен уметь обрабатывать нажатие пользователем клавиш CTRL + ALT + Del. В противном случае произойдет переключение на регистрационное окно рабочего стола аутентификации, имитатор станет неактивным и не сможет ничего перехватить, поскольку все символы пароля, введенные пользователем, минуют имитатор и станут достоянием исключительно системного процесса WinLogon. Как уже говорилось, процедура регистрации в Windows NT устроена таким образом, что нажатие клавиш CTRL + ALT + Del проходит бесследно для всех процессов, кроме WinLogon, и поэтому пользовательский пароль поступит именно ему.

Конечно, имитатор может попытаться воспроизвести не начальное окно рабочего стола аутентификации (в котором высвечивается указание пользователю одновременно нажать клавиши CTRL + ALT + Del), а регистрационное (где содержится приглашение ввести идентификационное имя и пароль пользователя). Однако при отсутствии имитаторов в системе регистрационное окно автоматически заменяется на начальное по прошествии короткого промежутка времени (в зависимости от версии Window NT он может продолжаться от 30 с до 1 мин), если в течение этого промежутка пользователь не предпринимает никаких попыток зарегистрироваться в системе. Таким образом, сам факт слишком долгого присутствия на экране регистрационного окна должен насторожить пользователя Windows NT и заставить ею тщательно проверить свою компьютерную систему на предмет наличия в ней программных закладок.

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

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

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

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.