Создание Windows-приложений на основе Visual C#

         

Безопасность операционной системы Windows


Операционная система Windows, включая самые последние на сегодняшний день версии Windows XP/2003, содержит ряд уязвимостей, немедленно замечаемых заинтересованными лицами. В Интернете встречается программка PassView (http://www.nht-team.org/) — она позволяет узнавать пароли от многих программ, установленных на вашем компьютере, среди которых Internet Explorer, Outlook Express, ICQ. Программа в заархивированном виде занимает около 60 Кб и не требует установки, кроме всего прочего, она позволяет увидеть пароли от диалапа – для этого достаточно получить доступ с правами администратора системы на считанные секунды и запустить PassView (рис. 10.1).


Рис. 10.1.  Вкладка Ras программы PassView, на которую выводятся данные всех соединений данного пользователя

Получение пароля администратора в Windows 2000/XP/2003 тоже не слишком сложная задача. Рассмотрим один из способов — восстановление пароля из SAM-базы. Все логины и пароли учетных записей хранятся в зашифрованном виде в файле SAM, расположенном в каталоге C:\WINDOWS\System32\Config. При попытке открыть этот файл непосредственно, из операционной системы появляется сообщение системы о нарушении доступа к файлу. Дело в том, что все файлы, находящиеся в этой папке, представляют собой фрагменты реестра, постоянно используемые системой, поэтому доступ к ним возможен не из самой ОС. Для этого применяем любой файловый менеджер (обычно на мультизагрузочных компакт-дисках можно найти их, причем как для файловой системы FAT32, так и для NTFS) для просмотра содержимого жесткого диска в режиме DOS и копируем на любой съемный носитель два файла — SAM и SYSTEM, содержащей системный ключ Syskey. Теперь на другом компьютере нам осталось только расшифровать содержимое скопированных файлов. Запускаем программу SamInside (в заархивированном виде около 800 Кб, http://www.insidepro.com/) и импортируем сначала файл SAM, а затем SYSTEM. Программа SamInside поддерживает перебор паролей по двум алгоритмам — LM и NT, кроме того, предоставляет возможность для определения диапазона предполагаемого пароля, включая перебор по словарям (рис. 10.2).


увеличить изображение
Рис. 10.2.  Настройки подбора пароля

В качестве пароля на свою учетную запись я установил password12345, и на компьютере P IV 2.4 ГГц, 512 Мб RAM получил часть пароля по алгоритму LM всего за 15 минут. Даже подбор по алгоритму NT, с учетом параметров, указанных на рис. 10.2, занимает всего 2 часа (рис. 10.3).


увеличить изображение
Рис. 10.3.  Окно программы в режиме определения подбора пароля по алгоритму NT

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



Содержание раздела