Вирусные и хакерские аткаи, защита от спамаРефераты >> Программирование и компьютеры >> Вирусные и хакерские аткаи, защита от спама
Все началось в 1985 году, когда Microsoft выпустил первую версию Windows, тогда еще оболочки для DOS. Никто и представить не мог, что всего через 15 лет два из трех компьютеров, если не больше, будут работать под управлением OS Windows. Система задумывалась как максимально дружественная к пользователю, что называется 'для домохозяек'. Эта доктрина сохраняется во всей серии Windows 95/95OSR2/98/98SE/ME, где все сделано для того, чтобы пользователю было максимально удобно работать. Безопасность была принесена в жертву удобству и простоте. Потом конечно появилась линейка NT c гораздо более серьезной защитой и разделением доступа к файлам, но зачем домохозяйке такие сложности? Забота о пользователях в сумме с небрежной реализацией механизма аутентификации дает многим и многим любителям халявного интернета возможность получить желаемое, неграмотным пользователям шанс потерять некоторое количество денег и нервов.
Самый ненадежный элемент в любой системе - это человек. Особенно если этот человек слабо разбирается в компьютерах и не задумывается о безопасности своей системы, если для него вообще существует такое понятие. Большинство пользователей не понимает, что пароль есть средство защиты. Средний пользователь имеет очень плохую память или просто боится забыть пароль, поэтому вводит что-нибудь легко запоминающееся, вроде 12345, qwerty, gfhjkm, password, имя любимой кошечки, девушки , свой же логин, а если воможно, то вообще не вводит. Чтобы, опять же, не забыть десяток паролей, введенных в разных местах, средний пользователь имеет один единственный пароль на все случаи жизни. Иногда средний пользватель все же имеет много паролей, причем хорошей сложности, но, чтобы не забыть, хранит их в текстовом файле. 'Пароль среднего пользователя' подбирается без особого труда. Грамотно же составленный пароль, включающий строчные и прописные буквы, цифры, прочие печатные символы можно подбирать многие тысячи лет и не добиться результата. Это связано с очень быстрым ростом количества паролей, имеющих заданное число символов. Например, односимвольных паролей из маленьких английских букв существует ровно 26, двусимвольных - 676, восьмисимвольных - чуть больше 200 миллиардов, с такой же скоростью возрастает и время перебора методом 'грубой силы'. При скорости 50000 паролей в секунду (подбор пароля к парольному кэшу Windows на Pentium-200) времена перебора получаются следующие:
Длина пароля |
26 [a z] |
36 [a z]+[0 9] |
70 (все отображаемые) |
4 |
мгновенно |
мгновенно |
8 минут |
5 |
4 минуты |
20 минут |
9 часов |
6 |
100 минут |
12 часов |
27 дней |
7 |
45 часов |
18 дней |
5 лет |
8 |
24 дней |
21 месяц |
371 год |
9 |
48 дней |
65 лет |
26,000 лет |
Очевидно, что время перебора обратно пропорционально тактовой частоте процессора, т.е. обратно пропорционально скорости перебора, так что даже на полуторагигагерцовом процессоре эти числа не уменьшатся до нескольких часов. Из этих соображений следует, что перебор стоит начать со словаря, составленного из стандартных паролей, а затем уже переходить к методу грубой силы. Самый простой пароль - общеупотребительное английское или русское слово, самый сложный - случайный набор символов ( f1gH@Eb{ ).
Чтобы помочь пользователям со слабой памятью, Microsoft придумал «парольный кэш» - систему сохранения паролей. В кэше служба удаленного доступа (Remote Access Service) сохраняет имя пользователя (логин) и пароли телефонных соединений, Windows - пароли для доступа к общим ресурсам и много чего еще. Все это хранится в зашифрованном виде в файлах C:\WINDOWS\*.pwl, где “*” ваше ФИО укороченное до восьми букв, которое вы ввели при установке Windows, размер пустого парольного кэша 688 байт. Шифрование происходит алгоритмами MD5 и RC4. В Windows 95 OSR1 шифрование было организовано небрежно, что позволяло извлекать содержимое, не зная пароля, за сотые доли секунды (программа Glide). В остальных версиях для дешифровки нужно знать пароль и полное имя пользователя. Здесь на сцену со всеми вытекающими последствиями вламывается 'пароль среднего пользователя'. Используя соответствующие инструменты (например, RePWL или мой любимый PWLHack) можно попытаться подобрать пароль, но если пользователь окажется не средним, то процесс перебора может занять значительное время, измеряемое даже не годами, а сотнями и тысячами лет. При наличии физического доступа к компьютеру задача расшифровки кэша становится тривиальной - после того, как требуемый пользователь вошел в систему достаточно запустить программу, запрашивающую кэшированые пароли у самой системы, например, Phone Book Viewer. Но пароль не записывается в парольный кэш автоматически, если при вводе пароля для соединении с провайдером вы поставили галочку «Сохранить пароль» вы совершили роковую ошибку, логин и пароль навсегда записаны в этом файле (даже если потом вы эту галочку сняли).
В парольном кэше Windows можно найти пару логин/пароль провайдера, но где же телефон? Microsoft «постарались и тут. Windows хранит настройки соединений, включая телефоны, которые отображаются в папке 'Удаленный доступ к сети', как и другую личную информацию пользователя,вроде паролей Outlook в реестре, секция HKEY_CURRENT_USER\RemoteAccess\Addresses. Содержимое же ключа HKEY_CURRENT_USER физически хранится по адресу %WINDIR%\user.dat, правда не в текстовом виде. Файл user.dat может занимать от 100Kb до 2Mb. Извлечь значение ключа позволяет стандартная программа regedit, запущенная в режиме эмуляции(симуляторе) ms-dos. Но все может оказаться значительно проще. Если пользователь использует «звонилку» программа, которая предназначена для автоматического окачивания информации из интернета, вечером пользователь настраивает программу и ложится спать, затем ночью она сама устанавливает интернет-соединение, и начинает закачку заказанной информации, утром пользователь смотрит на результаты. Но чтобы дозваниваться, ей нужен логин, пароль и номер телефона, которые остаются в её памяти. Иногда эти сведения примитивно кодируются.