Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
диплом-1.doc
Скачиваний:
84
Добавлен:
07.12.2018
Размер:
5.47 Mб
Скачать

3.2 Угрозы внутри сети

Находясь внутри отдела, злоумышленник получает физический доступ к компонентам ЛВС отдела. Дальнейшие его действия будут зависеть от поставленных им целей. Например, если целью злоумышленника является нарушение работоспособности отдела, то он может вывести из строя аппаратные составляющие сети посредством нанесения им физического урона или произвести атаку на программные составляющие сети с помощью, например, внедрения вредоносного ПО. Но наиболее распространенными целями злоумышленников является получение доступа к информации, циркулирующей в сети отдела. Так, злоумышленник, получив доступ к системе коммуникации отдела, может прослушивать сетевой трафик. Вывод из строя межсетевых экранов может нарушить всю политику безопасности отдела, поскольку брандмауэр является основным средством обеспечения защиты ЛВС. Это приведет к тому, что сеть отдела станет открыта перед внешними атаками, и хакеры смогут получить доступ к интересующим их данным. Но, чтобы изменить настройки межсетевого экрана, а также получить доступ к информации, хранящейся на серверах отдела, необходимо иметь соответствующие полномочия. В данном случае, получение таких полномочий зависит от администрирования сети, возможностей установленного ПО и его уязвимостей. Основной ОС ЛВС отдела является Windows NT 4.0 Service Pack 6.0, поэтому в данной части дипломного проекта рассмотрим угрозы этой ОС. Также на сервере БД установлено ПО MS SQL Server, а, так как для злоумышленника этот сервер представляет особый интерес, то необходимо уделить особое внимания уязвимым местам этого ПО.

3.2.1 Windows NT 4.0 Service Pack 6.0

Windows NT позволяет контролировать локальный доступ к хранящейся на диске информации в соответствии с разрешениями файловой системы. Как известно, NT поддерживает две файловые системы: FAT и NTFS. Основным отличием NTFS от FAT является способность обеспечивать защиту файлов и каталогов в соответствии с правами пользователей. NTFS необходимо использовать всегда, когда требуется обеспечить защиту информации. Однако разрешения NTFS на доступ к данным не действуют в другой операционной системе, отличной от Windows NT. Так, например, при наличии возможности загрузить MS-DOS с дискеты любая информация из разделов NTFS может быть считана с помощью драйвера NTFSDOS.EXE (автор — Mark Russinovich) в обход системы безопасности Windows NT. Только шифрование способно надежно защитить информацию от подобных методов прямого доступа к диску. Но, к сожалению, в Windows NT 4.0 не предусмотрена возможность шифрования на уровне операционной системы [7].

Кроме доступа к хранящейся на компьютере информации злоумышленник, как правило, стремится получить права администратора системы или пароли пользователей. В этом случае наибольший интерес для него представляет файл SAM из каталога WINNT\System32\Config. SAM — это файл, где хранятся учетные записи пользователей и их пароли. Во время работы Windows NT доступ к SAM имеет только администратор. Тем не менее, злоумышленник может получить копию этого файла, загрузив с дискеты MS-DOS и свободно скопировав SAM. Для извлечения и вскрытия текстовых паролей из SAM взломщик может использовать одну из доступных в Internet программ, например L0phtCrack. С целью защиты от просмотра пароли в SAM подвергаются специальной криптографической процедуре — хэшированию. Хэш дополнительно шифруется с помощью алгоритма DES, однако эта операция является обратимой, так что значение хэшированного пароля может быть восстановлено в любой момент. В отличие от шифрования, хэширование — необратимая процедура, поэтому восстановить из хэша текстовый пароль можно только путем перебора всех возможных комбинаций. Таким образом, время, необходимое для вскрытия пароля, увеличивается пропорционально длине пароля и количеству используемых символов.

Windows NT поддерживает пароли длиной до 128 символов, но на практике стандартные программы работы с учетными записями пользователей ограничивают длину пароля 14 символами. Может показаться, что простой перебор всех возможных комбинаций 14-символьного пароля требует применения сверхмощной вычислительной техники, однако это не совсем так. Дело в том, что в действительности файл SAM содержит два хэшированных представления одного и того же пользовательского пароля, полученных с помощью разных алгоритмов. Один хэш — в стандарте Windows NT, другой — в стандарте LAN Manager (этот стандарт используется в целях совместимости с другими сетевыми клиентами, в данном случае с Windows 95, которая установлена на РМ ввода-вывода). Хэшированный пароль стандарта LAN Manager слабо устойчив к взлому, так как каждая из двух половин 14-байтового символьного пароля хэшируется независимо, а результаты затем соединяются. Таким образом, вычисление 14-байтового пароля эквивалентно взлому двух 7-байтовых паролей, что значительно сокращает число возможных комбинаций для перебора. По этой причине все программы вскрытия текстовых паролей пытаются в первую очередь подобрать хэшированный пароль по стандарту LAN Manager.

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

Для обеспечения высокого уровня защиты администратору следует вручную задать более жесткие права на объекты файловой системы и ключи реестра.

К сожалению, правильное администрирование не всегда гарантирует надежную защиту. Серьезную угрозу безопасности NT могут представлять ошибки в самой операционной системе [6]. Но, как правило, компания Microsoft оперативно реагирует на сообщения об ошибках в коде ОС Windows NT и выпускает соответствующие «заплаты» (Hot Fix), которые позднее включаются в новые версии сервисных пакетов (Service Pack).

Одной из наиболее важных функций локальных сетей является совместное использование файлов и печати. Windows NT обеспечивает разделение файлов и печати с помощью двух сетевых сервисов: Workstation и Server. Служба Workstation позволяет компьютерам обращаться к ресурсам в сети. Служба Server предназначена для управления созданием и защитой каталогов и принтеров, а также позволяет компьютеру выполнять роль сервера, предоставляющего свои собственные сетевые ресурсы для общего доступа. Дистанционный доступ к сетевым ресурсам в ОС Windows NT осуществляется по протоколу SMB (Server Message Block). Наибольший интерес с точки зрения безопасности представляет процесс регистрации пользователей в сети Windows NT по протоколу SMB. C каждым сетевым ресурсом сервера связан список контроля доступа, поэтому любой сеанс связи начинается с процесса регистрации сетевого клиента и проверки его прав на доступ к запрашиваемому сетевому ресурсу. При открытии сеанса связи сервер генерирует случайный 8-байтовый «вызов» (challenge) и посылает его клиенту. Клиент шифрует по алгоритму DES полученный от сервера «вызов», используя в качестве ключа шифрования 16-байтовый хэшированный пароль из своего файла SAM. Результатом является 24-байтовый «ответ» (response) клиента, который и передается серверу. Как уже упоминалось, в SAM хранятся два хэшированных пароля: хэш Windows NT и хэш LAN Manager. Поэтому клиент формирует два «ответа» общей длиной 48 байт. Сервер в свою очередь проводит аналогичные вычисления, используя собственный «вызов» и хэшированный пароль пользователя из своей базы данных SAM. Полученное в результате значение сервер сравнивает с пришедшим от клиента «ответом»; если они совпадают, то регистрация заканчивается успешно. Применяемый алгоритм сетевой регистрации Windows NT дает злоумышленнику, перехватившему пару «вызов–ответ», возможность подобрать пароль пользователя. Упоминавшаяся ранее программа L0phtCrack способна вычислить текстовые пароли на основании «вызова» сервера и «ответа» клиента. Как и в случае паролей из локальной базы SAM, «ответ» по стандарту LAN Manager наименее устойчив к взлому. В среднем подбор пароля по этому «ответу» занимает только на 40% больше времени, чем прямая атака на хэш LAN Manager из SAM. Вместе с тем администратор может запретить включение пароля LAN Manager в «ответ» клиента. Но отключение совместимости с LAN Manager для отдела неприемлемо, поскольку сделает невозможной работу сервера Windows NT с Windows 95, поддерживающей этот протокол.

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

Как уже было описано выше, для доступа к сетевым ресурсам сервера клиент должен пройти процедуру регистрации. Для этого ему необходимо знать имя и пароль пользователя, имеющего учетную запись на данном сервере или на контроллере домена. Однако из этого правила есть два исключения: гостевой и анонимный входы. Если на сервере Windows NT учетная запись Guest не заблокирована, то любой незарегистрированный пользователь автоматически получает доступ к сетевым ресурсам с правами Guest. Поэтому разрешать гостевой вход следует с особой осторожностью. В Windows NT 4.0 учетная запись Guest отключена по умолчанию. Тем не менее, необходимо проверить, установлен ли флажок Disabled для этой учетной записи в диспетчере пользователей. C помощью сетевого сканера Legion администратор может выявить все серверы SMB, предоставляющие свои ресурсы для гостевого доступа незарегистрированным пользователям. Еще одним способом войти в систему NT без какой-либо регистрации является анонимный вход. Но в ЛВС отдела установлен Service Pack 6, а начиная с Service Pack 3 запрещается доступ к реестру в рамках анонимного сеанса. Но Service Pack 3 блокирует только анонимный доступ к реестру. Любой зарегистрированный пользователь все равно сможет удаленно провести атаку на реестр и получить права администратора. Для предотвращения нежелательных действий со стороны авторизованных пользователей администратору следует вручную выставить более жесткие разрешения на ключи реестра в соответствии с рекомендациями, приведенными на сервере Microsoft.

При анонимном сетевом подключении злоумышленник может получить список имен всех зарегистрированных на сервере пользователей с помощью программ USER2SID и SID2USER (автор — Е. Б. Рудный). После этого он может предпринять попытку угадать пароль. В Internet имеется несколько программ, с помощью которых злоумышленник может попытаться зарегистрироваться на сервере SMB, перебирая пароли по словарю. Такие атаки обычно занимают очень много времени и могут быть успешными только в случае слабых паролей.

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

Также необходимо отметить, что дистрибутивы NTWS4.0 и NTS4.0 включают утилиту rollback.exe, предназначенную для настройки пользователями предустановленной системы. Ее запуск приводит к очистке реестра (без предупреждения) и возврату к концу Character Based Setup (часть установки до появления GUI). Запуск ее из-под рабочей системы приводит к тем же последствиям (потеря accounts, настроек протоколов, пользовательских настроек и т.п.). Найти ее можно на CD-ROM с NT в каталоге Support\Deptools\<system>\ Каталоги %systemroot% и %systemroot%\system32 имеют по умолчанию право доступа Change для Everyone. Это может привести к самым разнообразным последствиям типа замещения части системных dll "троянскими" и т.п./9/. При этом они могут быть вызваны из самых разных программ - в том числе, из программ, работающих с системными правами доступа. Для защиты достаточно грамотно установить права доступа.

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

3.2.2 MS SQL Server

Рассмотрим сначала основные характеристики MS SQL Server.

В системе SQL-сервер организована двухуровневая настройка ограничения доступа к данным. На первом уровне необходимо создать так называемую учетную запись пользователя (login), что позволяет ему подключиться к самому серверу, но не дает автоматического доступа к базам данных. На втором уровне для каждой базы данных SQL-сервера на основании учетной записи необходимо создать запись пользователя. На основе прав, выданных пользователю как пользователю базы данных (user), его регистрационное имя (login) получает доступ к соответствующей базе данных. В разных базах данных login одного и того же пользователя может иметь одинаковые или разные имена user с разными правами доступа. Иначе говоря, с помощью учетной записи пользователя осуществляется подключение к SQL-серверу, после чего определяются его уровни доступа для каждой базы данных в отдельности. В системе SQL-сервер существуют дополнительные объекты – роли, которые определяют уровень доступа к объектам SQL-сервера. Они разделены на две группы: назначаемые для учетных записей пользователя сервера и используемые для ограничения доступа к объектам базы данных. Роль позволяет объединить в одну группу пользователей, выполняющих одинаковые функции. В SQL Server реализовано два вида стандартных ролей: на уровне сервера и на уровне баз данных. При установке SQL Server создаются фиксированные роли сервера (например, sysadmin с правом выполнения любых функций SQL-сервера) и фиксированные роли базы данных (например, db_owner с правом полного доступа к базе данных или db_accessadmin с правом добавления и удаления пользователей). Среди фиксированных ролей базы данных существует роль public, которая имеет специальное назначение, поскольку ее членами являются все пользователи, имеющие доступ к базе данных. Можно включить любую учетную запись SQL Server (login) или учетную запись Windows NT в любую роль сервера. Роли базы данных позволяют объединять пользователей в одну административную единицу и работать с ней как с обычным пользователем. Можно назначить права доступа к объектам базы данных для конкретной роли, при этом автоматически все члены этой роли наделяются одинаковыми правами. В роль базы данных можно включить пользователей SQL Server, роли SQL Server, пользователей Windows NT.

При попытке установить соединение с SQL Server сначала происходит аутентификация пользователя. SQL Server предлагает два режима аутентификации пользователей: режим аутентификации средствами Windows NT и смешанный режим аутентификации (Windows NT Authentication and SQL Server Authentication). При подключении к SQL Server все возможные действия пользователей определяются правами (привилегиями, разрешениями), выданными их учетной записи, группе или роли, в которых они состоят. Права можно разделить на три категории: права на доступ к объектам; права на выполнение команд; неявные права.

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

А теперь перейдем к рассмотрению уязвимостей MS SQL.

MS SQL Server не обеспечивает возможность блокировки учетной записи пользователя базы данных в случае серии неудачных попыток аутентификации. Это позволяет злоумышленнику осуществлять различные атаки на систему идентификации/аутентификации, например, пытаться подобрать имена пользователей, зарегистрированных в СУБД, и их пароли. Второй пример уязвимости - невозможность переименования учетной записи системного администратора базы данных (sa), что также позволяет осуществлять злоумышленнику попытки подбора пароля администратора СУБД. Эта уязвимость присуща не только различным базам данных, но и операционным системам (ОС) и прикладному программному обеспечению. Другим недостатком практически всех СУБД является отсутствие проверки эффективности выбранного пользователем пароля. Зачастую в его качестве выбирается имя пользователя (идентификатор), знаменательная дата, номер паспорта или телефона и иные легко угадываемые комбинации. Нередко у пользователя совсем отсутствует пароль. К чему это может привести, говорить не надо. Также пользователи могут месяцами не пользоваться базой данных, но, будучи один раз в нее внесенными, они считаются полноправными ее пользователями. В СУБД и многих ОС отсутствует механизмы контроля учетных записей, неиспользованных в течение заданного промежутка времени.

Описанные уязвимости приводят к тому, что используемая в организации СУБД становится восприимчивой к атакам типа "подбор пароля" (brute force), что, в случае успеха, может привести к компрометации всей информации, хранимой в базе данных.

Существует также ряд уязвимостей в СУБД, которые могут привести не только к компрометации информации в базах данных, но и компрометации всей сети в целом. Эти уязвимости появляются вследствие расширения стандартных возможностей SQL-серверов. Например, использование расширенной хранимой процедуры (extended stored procedure) xp_cmdshell позволяет выполнять функции операционной системы из командной строки так, как будто удаленный пользователь СУБД работает за консолью сервера баз данных. При этом функции, вызываемые при помощи процедуры xp_cmdshell, выполняются с привилегиями той учетной записи, под управлением которой загружен SQL-Server. По умолчанию это учетная запись System. При помощи расширенных хранимых процедур злоумышленник может получить доступ к информации подсистемы защиты информации Windows NT, например, к паролям, которые хранятся в системном реестре. Осуществляется эта возможность при помощи следующих процедур: xp_regdeletevalue, xp_regwrite, xp_regread и т.д.

ПО MS SQL Server подвержено программам типа "троянский конь", которые могут быть легко созданы путем модификации системных хранимых процедур. Например, несанкционированный доступ к паролю пользователя может быть получен при его смене с помощью всего одной строчки кода:

create procedure sp_password

@old varchar(30) = NULL, /* старый (текущий) пароль */

@new varchar(30, /* новый пароль */

@loginame varchar(30) = NULL, /* флаг, разрешающий или запрещающий пользователям менять пароль */

declare @suid int /* идентификатор пользователя, изменяющего пароль */

/* следующая строка является троянским включением, позволяющим несанкционированно узнать пароль пользователя при его смене */

insert into spt_values values (@new,-1,'A',NULL,NULL,0)

Таким образом, при изменении пароля, который обычно хранится в зашифрованном виде в таблице master.dbo.syslogins, указанный "троянский конь" позволит увидеть пароль пользователя в открытом виде, сохраненный в таблице spt_values.

Данная СУБД построена по технологии "клиент-сервер", что подразумевает доступ клиентской части к серверу по каналам связи. Для подключения к MS SQL Server в отделе используется сетевой протокол TCP/IP. Поэтому, имя и пароль пользователя, проходящего аутентификацию на сервере базы данных, передаются в открытом виде и могут быть перехвачены при помощи анализатора протокола (sniffer). Кроме того, использование протоколов TCP/IP позволяет обойти процедуру аутентификации Windows NT.

Доступ клиентов к серверу баз данных осуществляется путем обращения к определенному, т.н. слушающему сервису, функционирующему на 1433 порту для MS SQL Server. Несанкционированный доступ к учетной записи, отвечающей за старт и останов этого сервиса, приводит к тому, что злоумышленник может остановить данный сервис, тем самым, блокировав все попытки подключения клиентов к серверу базы данных. Также можно послать на "слушающий" порт специальным образом сформированные пакеты, приводящие к нарушению работоспособности сервера баз данных (т.е. атака "отказ в обслуживании") [9].

Итак, на основе анализа состава и структуры ЛВС отдела были рассмотрены угрозы, характерные для данной сети (основные из рассмотренных в этой главе угроз приведены на рисунке 3.2.). А теперь на основе имеющихся угроз необходимо проанализировать существующую в отделе систему защиты и выявить возможные недостатки.

Рисунок 3.2 – Угрозы ЛВС отдела