Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Захист від перехоплювачів паролів першого роду.




Ускладнення зовнішнього вигляду запрошення на вхід в систему декілька утрудняє рішення задачі перехоплення паролів, проте не створює для зловмисника ніяких принципових труднощів. Для того, щоб істотно утруднити впровадження в систему перехоплювачів паролів першого роду, необхідні складніші заходи захисту. Прикладом операційної системи, де такі заходи реалізовані, є Windows NT.

У Windows NT звичайна робота користувача і аутентифікація користувача при вході в систему здійснюються на різних робочих полях (desktops). Робочим полем Windows NT є сукупність вікон, одночасно видимих на екрані. Тільки процеси, вікна яких розташовані на одному робочому полі, можуть взаємодіяти між собою, використовуючи засоби Windows GUI. Поняття робочого поля Windows NT близько до поняття терміналу UNIX.

Процес Winlogon, одержуючий від користувача ім'я і пароль, виконується на окремому робочому полі (робочому полі аутентифікації). Ніякий інший процес, у тому числі і перехоплювач паролів, не має доступу до цього робочого полю. Тому запрошення користувачеві на вхід в систему, що виводиться перехоплювачем паролів першого роду, може розташовуватися тільки на робочому полі прикладних програм, де виконуються всі програм, запущені користувачем.

Перемикання екрану комп'ютера з одного робочого поля на інше проводиться при натисненні комбінації клавіш Ctrl-Alt-Del. Win32-подсистема Windows NT обробляє цю комбінацію по-особливому – повідомлення про натиснення Ctrl-Alt-Del посилається тільки процесу Winlogon. Для всіх інших процесів, зокрема, для всіх прикладних програм, запущених користувачем, натиснення цієї комбінації клавіш досконале непомітно.

При старті системи на екран комп'ютера спочатку відображається робоче поле аутентифікації. Проте користувач вводить ім'я і пароль не відразу, а тільки після натиснення Ctrl-Alt-Del. Коли користувач завершує сеанс роботи з системою, на екран також виводиться робоче поле аутентифікації, і, так само як і у попередньому випадку, новий користувач може ввести пароль для входу в систему тільки після натиснення Ctrl-Alt-Del.

Якщо в систему упроваджений перехоплювач паролів першого роду, то, для того, щоб він зміг перехопити пароль користувача, він повинен принаймні обробити натиснення користувачем Ctrl-Alt-Del. Інакше при натисненні користувачем цієї комбінації клавіш відбудеться перемикання на робоче поле аутентифікації, робоче поле прикладних програм стане неактивним, і перехоплювач паролів просто не зможе нічого перехопити – повідомлення про натиснення користувачем клавіш приходитимуть на інше робоче поле. Проте для всіх прикладних програм факт натиснення користувачем Ctrl-Alt-Del завжди залишається непоміченим. Тому пароль буде сприйнятий не програмною закладкою, а процесом Winlogon.

Звичайно, перехоплювач паролів може імітувати не перше запрошення операційної системи, де користувачеві пропонується натиснути Ctrl-Alt-Del, а то запрошення, яке висвічується після натиснення користувачем цієї комбінації. Проте в звичайних умовах (за відсутності програмної закладки) це друге запрошення автоматично відміняється через достатньо короткий час (від 30 секунд до 1 хвилини, залежить від версії Windows NT). Якщо друге запрошення присутнє на екрані комп'ютера довгий час, цей факт повинен насторожити користувача. Крім того, як показує досвід, користувачі, що довгий час працюють з Windows NT, набувають звички починати роботу з системою з натиснення Ctrl-Alt-Del незалежно від того, що відображається на екрані.

Захист Windows NT від перехоплювачів паролів першого роду вельми надійний. Мабуть, при розробці мерів захисту операційної системи від перехоплювачів паролів першого роду слід орієнтуватися на механізм, подібний вищеописаному. Слід звернути особливу увагу на наступні дві умови, виконання яких обов'язково для забезпечення надійного захисту від перехоплювачів паролів першого роду:

1. Програма, одержуюча від користувача ім'я і пароль при вході в систему, виконується на ізольованому терміналі (терміналі аутентифікації), недоступному прикладним програмам.

2. Факт перемикання призначеної для користувача консолі на термінал аутентифікації непомітний прикладним програмам. Прикладні програми не можуть заборонити перемикання консолі на термінал аутентифікації.

Якщо операційна система не підтримує ці можливості (а жодна операційна система, відома авторові, окрім Windows NT, ці можливості не підтримує), захищеність системи від перехоплювачів паролів першого роду можна підвищити адміністративними заходами. Кожен користувач системи повинен бути проінструктований, що якщо він кілька разів підряд не може увійти до системи з першого разу, він повинен звернутися до адміністратора.

 


Перехоплювачі паролів користувачів ОС. Перехоплювачі паролів другого роду і захист від них.

Перехоплювачі паролів другого роду перехоплюють всі дані, що вводяться користувачем з клавіатури. Прості програмні закладки даного типу просто скидають всі ці дані на жорсткий диск комп'ютера або в будь-яке інше місце, доступне зловмисникові. Досконаліші закладки аналізують перехоплені дані і відсівають інформацію, що свідомо не має відношення до паролів. Декілька подібних закладок було в різний час написано для операційної системи MS-DOS, деякі з них використовувалися на практиці, причому вельми ефективно.

Цими закладками є резидентні програми, перехоплюючі одне або декілька переривань процесора, що мають відношення до роботи з клавіатурою. Інформація про натиснуту клавішу і введений символ, повертана цими перериваннями, використовується закладками для своїх цілей.

В кінці 1997 року на хакреських серверах Internet з'явилися перехоплювачі паролів другого роду для Windows 3.x і Windows 95. Приклади їх використання зловмисниками для здійснення НСД поки не зустрічалися на практиці. У телеконференціях Internet (newsgroups) кілька разів зустрічалися повідомлення про атаки Windows 95 перехоплювачами паролів другого роду. Проте ця інформація жодного разу не підтверджувалася.

Створення подібних програмних закладок не пов'язане із значними труднощами. Програмні інтерфейси Win16 і Win32 підтримують спеціальний механізм фільтрів (hooks), який може бути використаний для перехоплення паролів користувачів. За допомогою цього механізму прикладні програми і сама операційна система вирішують цілий ряд завдань, у тому числі і завдання підтримки національних розкладок клавіатури. Будь-який русифікатор клавіатури, що працює в середовищі Windows, перехоплює всю інформацію, що вводиться користувачем з клавіатури, у тому числі і паролі. Нескладно написати русифікатора так, щоб він, крім своїх основних функцій, виконував би і функції перехоплювача паролів. Написання програми локалізації клавіатури є достатньо простій завданням. У багатьох довідниках і підручниках по програмуванню це завдання детально описане, в деяких виданнях приведені початкові тексти простого русифікатора клавіатури. Більш того, Windows підтримує ланцюжки фільтрів, за допомогою яких декілька програм можуть одночасно діставати доступ до інформації, що вводиться з клавіатури, і обробляти її так, як вважають потрібними, при необхідності передаючи оброблену інформацію далі по ланцюжку. Можна вбудувати перехоплювач паролів в ланцюжок фільтрів перед русифікатором або після нього, так, що вся інформація, що вводиться користувачем з клавіатури, проходить і через русифікатора, і через перехоплювач паролів. В цьому випадку завдання написання програмної закладки, що перехоплює паролі користувачів Windows, стає настільки простій, що практично не вимагає від автора закладки спеціальної кваліфікації.

Взагалі, в більшості випадків вірно наступне твердження. Якщо операційна система допускає перемикання розкладки клавіатури при введенні пароля, то для цієї операційної системи можна написати перехоплювач паролів другого роду. Дійсно, якщо для операційної системи існує програма локалізації розкладки клавіатури, і якщо ця програма використовується при введенні пароля, після незначної зміни початкового тексту ця програма перетворюється на перехоплювач паролів другого роду. Якщо ця програма написана на мові C, в простому випадку досить додати в програму чотирьох операторів приблизно наступного вигляду:

StoreFile = fopen (FileName, "a+b");

fseek (StoreFile, 0, SEEK_END);

fputc (NewSymbol, StoreFile);

fclose (StoreFile);

Для деяких операційних систем можна обійтися трьома операторами.


Поделиться:

Дата добавления: 2015-08-05; просмотров: 124; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты