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

3.1 Угрозы внутри сети предприятия

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

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

В данной части дипломного проекта рассмотрим угрозы для ОС Windows 2000 Service Pack 4.0 (т.к. данная ОС установлена на всех рабочих станциях предприятия, файловом и ftp сервере, сервере БД). Кроме того, рассмотрим угрозы для ОС Red Hat Linux 7.1., которая установлена на почтовом сервере и маршрутизаторе.

Также на сервере БД установлено ПО MS SQL Server, а, так как для злоумышленника этот сервер представляет особый интерес, то необходимо уделить особое внимания уязвимым местам этого ПО.

3.1.1 Windows 2000 Service Pack 4.0

Злоумышленник, как правило, стремится получить права администратора системы или пароли пользователей. Информация об учетных записях пользователей хранится в ветке реестра "HKEY_LOCAL_MACHINE\SAM" (SAM - Security Account Manager). В Windows 2000 все ветки реестра "физически" расположены на диске в каталоге %SystemRoot%\System32\Config в нескольких файлах. Этот файл по умолчанию недоступен для чтения, даже администратору, но все-таки к нему можно получить доступ. К файлу SAM (а также к остальным файлам без расширений в этой директории - system, software и другим) нет доступа по той причине, что Windows 2000 при внесении в реестр изменений они становятся доступны сразу же и перезагрузка компьютера не требуется, но для этого системе нужно иметь монопольный доступ к файлам реестра.

Windows 2000 хранит пароли пользователей не в "явном" виде, а в виде хэшей (hash), то есть фактически в виде "контрольных сумм" паролей. В структуре SAM-файла присутствует V-блок, имеющий размер 32 байта и содержащий в себе хэш пароля для локального входа - NT Hash длиной 16 байт, а также хэш, используемый при аутентификации доступа к общим ресурсам других компьютеров - LanMan Hash (LM Hash), длиной также 16 байт.

Алгоритмы формирования этих хэшей следующие:

Формирование NT Hash:

  1. Пароль пользователя преобразуется в Unicode-строку.

  2. Генерируется хэш на основе данной строки с использованием алгоритма MD4.

  3. Полученный хэш шифруется алгоритмом DES, в качестве ключа используется RID (идентификатор пользователя). Это необходимо для того, чтобы два пользователя с одинаковыми паролями имели разные хэши. Все пользователи имеют разные RID'ы (RID встроенной учетной записи администратора равен 500, встроенной учетной записи гостя равен 501, а все остальные пользователи последовательно получают RID'ы, равные 1000, 1001, 1002 и так далее).

  4. Для повышения безопасности хранения паролей полученные хэши дополнительно шифруются еще одним алгоритмом с помощью утилиты syskey.

Формирование LM Hash:

  1. Пароль пользователя преобразуется в верхний регистр и дополняется нулями до длины 14 байт.

  2. Полученная строка делится на две половинки по 7 байт, и каждая из них по отдельности шифруется алгоритмом DES, на выходе которого получаем 8-байтный хэш - в сумме один хэш длиной 16 байт.

  3. LM Hash дополнительно шифруется алгоритмом DES, в качестве ключа используется RID.

  4. Для повышения безопасности хранения паролей полученные хэши дополнительно шифруются еще одним алгоритмом с помощью утилиты syskey.

Информацию из SAM-файла можно извлечь в работающей системе только из-под учетной записи администратора. Есть два метода получения данных - метод программы PWDUMP и метод с использованием планировщика задач.

Метод PWDUMP: программа подключается к системному процессу LSASS и с его правами (его же методами) извлекает хэши из ветки SAM реестра, то есть фактически из SAM-файла.

Метод планировщика: по умолчанию в Windows 2000 системная утилита Scheduler имеет права пользователя SYSTEM, то есть полный доступ к системе. Поэтому если назначить планировщику задание сохранить определенную ветку реестра в файл, то он в назначенное время сохранит ее на диск. После чего из этого файла извлекаются хэши всех пользователей этого компьютера.

Если на компьютере установлено несколько операционных систем, то, загружаясь в любую из них (даже в Linux), можно получить доступ к системному диску Windows 2000 и скопировать SAM-файл в другой каталог, чтобы потом загрузить его в программу для восстановления паролей.

Существуют программы, способные изменять информацию прямо в SAM-файле, меняя и добавляя пользователей, а также их пароли (например, программа Offline NT Password & Registry Editor). Для этого необходимо загружаться в другую ОС и иметь полный доступ к системному диску Windows 2000.

При администрировании сервера сети на основе Windows 2000, нужно учитывать, что кража SAM-файла из ОС сервера может привести к тому, что в руках злоумышленника окажутся не только пароль администратора, но и пароли всех пользователей сети (то есть их пароли на вход в Windows), так как все эти пользователи имеют свои учетные записи на сервере.

В современных NT-системах применяется дополнительное шифрование хэшей алгоритмом syskey. До недавнего времени хэши из SAM-файла, скопированного из этих ОС, расшифровке не поддавались, так как этот алгоритм достаточно сложен, нигде не публиковался и практически не анализировался. Но теперь можно извлекать хэши даже из зашифрованных этим алгоритмом SAM-файлов, используя программу SAMInside. Для декодирования хэшей этой программе необходим файл SYSTEM, расположенный там же, где и SAM, так как в нем хранятся некоторые ключи реестра, необходимые для дешифрования хэшей алгоритмом syskey.

Имея неограниченный физический доступ к компьютеру и средства для записи информации в разделы NTFS (например, утилиту NTFSDOS Pro), можно легко обойти всю локальную систему зашиты 2000.

Если злоумышленник преследует лишь цель удаления пароля учетной записи администратора, он может удалить файл SAM.

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

Кроме того, уязвимость Windows 2000 заключается еще и в том, что слишком широко используется RPC-механизм. Аббревиатура RPC означает "удаленный вызов процедуры" (Remote Procedure Call). RPC - это то, что происходит, когда одна программа отправляет через сеть указание другой программе выполнить какое-либо действие. Удаленным вызовом процедуры этот механизм называется потому, что не имеет значения, функционирует ли "другая программа" на том же компьютере, или где-то в сети. RPC-механизмы — это потенциальная угроза безопасности, поскольку их предназначение — позволить компьютерам, находящимся где-то в сети, давать данному компьютеру указания выполнить те или иные действия. Как только обнаруживается брешь в программе, разрешающей использование RPC-механизма, у любого, кто располагает подключенным к сети компьютером, появляется возможность использовать эту брешь, чтобы заставить уязвимый компьютер выполнить какие-либо действия. Пользователи Windows 2000 не могут заблокировать RPC-механизм, так как ОС использует его, даже если компьютер не подключен к сети. В некоторых случаях можно блокировать RPC-порт на межсетевом экране, но Windows 2000 так широко использует RPC-механизмы в основных функциях, что подобная блокировка не всегда возможна.

Серьезную угрозу безопасности Windows представляют ошибки в самой операционной системе ее сервисах и приложениях [5]. Одной из отрицательных свойств Windows 2000 Server является то, что Microsoft предлагает администраторам работать с ОС на самом сервере, зарегистрировавшись с полномочиями администратора. В результате администратор Windows 2000 Server становится наиболее уязвимым к брешам в системе защиты, поскольку использование уязвимых программ, таких как Internet Explorer, создает угрозы безопасности сервера.

3.1.2 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 в любую роль сервера. Роли базы данных позволяют объединять пользователей в одну административную единицу и работать с ней как с обычным пользователем. Можно назначить права доступа к объектам базы данных для конкретной роли, при этом автоматически все члены этой роли наделяются одинаковыми правами. В роль базы данных можно включить пользователей SQL Server, роли SQL Server, пользователей Windows 2000.

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

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

К уязвимостям MS SQL Server можно отнести:

  • уязвимости учетных записей;

    • уязвимости в СУБД;

    • программы типа "троянский конь";

    • уязвимости сетевого взаимодействия.

Рассмотрим эти уязвимости подробней.

MS SQL Server не обеспечивает возможность блокировки учетной записи пользователя базы данных в случае серии неудачных попыток аутентификации.

Это позволяет злоумышленнику осуществлять различные атаки на систему идентификации/аутентификации, например, пытаться подобрать имена пользователей, зарегистрированных в СУБД, и их пароли.

Невозможность переименования учетной записи системного администратора базы данных (sa), что также позволяет осуществлять злоумышленнику попытки подбора пароля администратора СУБД. Эта уязвимость присуща не только различным базам данных, но и операционным системам (ОС) и прикладному программному обеспечению.

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

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

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

xp_cmdshell 'NET USER Jeniya password /ADD'

go

xp_cmdshell 'NET LOCALGROUP /ADD Администраторы Jeniya '

go

С помощью первой команды злоумышленник создает на компьютере, на котором запущен SQL-сервер, пользователя с именем Jeniya и паролем password. А с помощью третьей команды пользователь с именем Jeniya заносится в группу Администраторы. Таким образом, пользователь Jeniya становится обладателем максимальных прав на сервере баз данных, а так как часто сервер баз данных запускается на контроллере домена, то автоматически пользователь Jeniya получает доступ ко всем компьютерам сети предприятия.

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

xp_regread'HKEY_LOCAL_MACHINE', 'SECURITY\SAM\DOMAINS\ACCOUNT\USERS\000001F4','F'

Таким образом, вся мощь систем управления базами данных встает на сторону пользователя, и он может использовать ее не только на благо, но и во вред.

ПО 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 .

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

3.1.3 Linux Red Hat 7.1

Linux Red Hat 7.1 настолько безопасен, насколько безопасными его сделает администратор. Чем больше сервисов установлено, тем больше шансов, что в них найдется уязвимость.

Программа установки Red Hat Linux 7.1 позволяет переразбивать жесткий диск в процессе инсталляции, при этом поддерживает большое число файловых систем — от линуксовых Ext2, Ext3 и ReiserFS до FAT и NTFS.

Для Linux устанавливается минимум пакетов, и добавляются только необходимые элементы, тем самым уменьшается шанс запустить приложение или сервис с ошибкой, нарушающей безопасность и приложения, и ОС в целом.

Последствия ошибок приводят к DoS-атакам, воспроизведению произвольного кода и получению более высоких (root) привилегий.

В функции pg_to_ascii() у PostgreSQL возможно переполнение буфера, что приводит к DoS-атакам или выполнению произвольного кода. Проблемы в функциях stunnel дают возможность атакующему взломать сервис.

В библиотеках шрифтов XFree86 возможно переполнение integer'а, предоставляющее локальному или удаленному атакующему получить привилегии суперпользователя, провести DoS-атаку, выполнить произвольный код. Из-за сервиса telnet-управления приложение Zebra подвержено удаленным DoS-атакам, при условии что включен пароль на Zebra.

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

Ограничение пользователей, способных выполнять команду su root, совместно с ограничением терминалов, с которых root может входить в систему, существенно увеличит безопасность системы.

У любого пользователя, который имеет shell-доступ в систему, есть .bash_history в его домашней папке. Если пользователь случайно введет в командной строке свой пароль, то он еще долгое время будет хранится в файле .bash_history.

Одна из уязвимостей Red Hat Linux 7.1 состоит в том, что у локальных пользователей есть возможность совершать атаку типа denial-of-service через “дыру” в ядре, т.е. получать права администратора тем самым, получая доступ к основной конфигурации и файлам ограничения доступа, используемым в ОС. Также злоумышленник может изменять уровни привилегий в системе, позволяя тем самым совершать другие взломы.

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

Основным преимуществом Red Hat Linux, по сравнению с Windows, является большая надежность и скорость работы, большая защищенность файловой системы (в том числе и от вирусов) и более профессиональные средства работы с локальной сетью и Internet.