1.Введение Тестирование проводится с целью выявления ошибок и недочётов в настройках безопасности локальной сети. Мы будем тестировать на наличие уязвимостей реальный сервер, выполняющий задачи брэндмауэра, шлюза и прокси сервера в институте истории социологии и управления (ИИСУ). Мы выбрали его в в качестве примера потому, через данный хост проходит весь потенциально опасный трафик, и именно этот сервер защищает внутреннюю сеть как от атак из вне, так и от злоумышленников находящихся внутри локальной сети. На данном сервере установленно две сетевые карты, так как он является шлюзом, а следовательно, рассматриваемый хост имеет два IP адреса (внутренний и внешний).
Защита информации в локальных сетях, практика
1.2. Описание тестируемой системы.
Тестируемый сервер представляет собой IBM совместимую аппаратную часть, с установленной операционной системой (ОС) Microsoft Windows 2003 с пакетом обновлений Service Pack 2 (SP2). Пакет обновлений SP2 закрывает уязвимости, обнаруженные с моменты выхода ОС, и является необходимым для обеспечения защиты на уровне ОС. На исследуемом хосте установлен Microsoft Internet Security and Acceleration Server (ISA server). ISA Server представляет собой межсетевой экран с интегрированными сервисами, который позволяет защитить ИТ-среду от угроз, поступающих через Интернет (или внешнюю сеть). Рассмотрим основные функции ISA Server (Обзор сервера ISA Server 2004 Standard Edition Корпорация Майкрософт. Дата публикации: Май 2004 г ):
Межсетевой экран предприятия:
Многоуровневый межсетевой экран. Для достижения максимального уровня безопасности сетей предприятий используются фильтрация пакетов, фильтрация каналов и фильтрация потока данных приложений.
В процессе динамической фильтрации пакетов. выявляются пакеты, которые будут пропущены в защищенные области сети, а также к прокси-службам прикладного уровня. При этом по мере необходимости автоматически производится открытие, а по завершении сеанса связи — закрытие соответствующих портов.
Фильтрация и динамическая проверка данных приложений. способна распознавать команды протоколов (например, НТТР, FTP и Gopher), поступающие от клиентских компьютеров. Сервер ISA Server имперсонирует во внутренней сети клиентские компьютеры, скрывая от внешней среды внутреннюю топологию сети и IP-адреса предприятия.
Интеллектуальная фильтрация данных приложений. Помимо базовой фильтрации данных приложений сервер ISA Server 2004 контролирует поток данных приложений, распознавая в нем данные и команды при помощи специальных фильтров. Средства интеллектуальной фильтрации позволяют на основе анализа содержания потока данных пропускать, блокировать, перенаправлять или изменять данные протоколов HTTP, FTP, SMTP, POP3, DNS, данных конференций по протоколу H.323, потокового мультимедиа, удаленного вызова процедур и VPN.
Определение вторжения. Интегрированный компонент обнаружения вторжений (разработанный на основе технологии компании Internet Security Systems) уведомляет пользователя и предпринимает необходимые действия в случае обнаружения попытки незаконного проникновения в сеть (например, сканирования портов, использования средств «WinNuke» или «Ping of Death»).
Встроенная поддержка виртуальных частных сетей (VPN) Для предоставления стандартного безопасного удаленного доступа используются встроенные службы виртуальных частных сетей Windows 2000 и Windows Server 2003. ISA Server 2004 поддерживает безопасные VPN-подключения филиалов или удаленных пользователей к основному офису. Политика межсетевого экрана применяется к VPN-подключениям и позволяет точно контролировать протоколы и ресурсы, к которым получают доступ пользователи таких подключений.
Прозрачность межсетевого экрана. Путем замены внутреннего IP-адреса на внешний механизм SecureNAT предоставляет прозрачный доступ к межсетевому экрану и защиту для всех IP-клиентов (независимо от конфигурации клиента и без необходимости использования специального программного обеспечения). Сложные фильтры прикладного уровня, которые служат для управления подключением, предоставляют комплексную поддержку клиентам SecureNAT.
Надежная проверка подлинности пользователей. Для клиентов веб-прокси и межсетевого экрана ISA Server 2004 поддерживается аутентификация Windows (NTLM и Kerberos). Для клиентов веб-прокси поддерживаются клиентские сертификаты, выборочная, базовая, анонимная проверка подлинности, а также проверка подлинности на основе форм. Проверка подлинности пользователей может проводиться по данным локальной базы данных на межсетевом экране, Active Directory или с помощью службы RADIUS.
Сервер веб-кэширования
Высокопроизводительное веб-кэширование. Повышена веб-производительность для внутренних клиентов, получающих доступ к серверам интернета, а также внешних пользователей интернета, которые подключаются к веб-серверу предприятия. Для обеспечения максимальной веб-производительности ISA Server 2004 использует быстрое кэширование в оперативной памяти и оптимизированный дисковый кэш.
Управление межсетевым экраном
Управление доступом с помощью политик. Организация может контролировать входящий и исходящий доступ по пользователям, группам, приложениям, источникам и местам назначения, изменению контента, а также по расписанию. С помощью мастеров политик межсетевого экрана определяются доступные веб-узлы и содержание, доступность определенного протокола для установки входящих и исходящих подключений, а также разрешения на установку подключений между определенными IP-адресами с помощью заданных протоколов и портов.
Интеграция с Active Directory. Межсетевой экран ISA Server 2004 для проверки подлинности входящих и исходящих подключений использует базу данных пользователей Active Directory.
Удаленное управление. Управление ISA Server 2004 может осуществляться в удаленном режиме с помощью оснастки MMC, служб терминалов Windows 2000 и удаленного рабочего стола Windows Server 2003. Для удаленного управления межсетевым экраном ISA Server 2004 на компьютере Windows Server 2003 может использоваться безопасное туннелирование SSL/RDP. Кроме того, удаленное управление службами ISA Server 2004 возможно с помощью сценариев, запускаемых из командной строки.
Журналы, отчеты и оповещения. В стандартных форматах (текстовые файлы с символами-разделителями, базы данных SQL и MSDE) создаются подробные журналы безопасности и доступа. Кроме того, существует возможность создания по определенному графику стандартных отчетов об использовании сети и приложений, моделях потока сетевых данных и безопасности с автоматической публикацией в локальной папке или удаленном общем ресурсе. Оповещения на основе событий служат для отправки сообщений администратору, запуска и остановки служб межсетевого экрана, а также автоматического выполнения действий на основании заданных критериев.
Управление на уровне пользователя. Существует возможность ограничения доступа клиентов межсетевого экрана и веб-прокси ISA Server 2004 для каждого отдельного пользователя (а не просто по IP-адресам), что позволяет более точно контролировать получение входящего и исходящего доступа по всем протоколам.
На исследуемом сервере активизированы все вышеперечисленные функции, для обеспечения высокого уровня защиты. При помощи ISA Server сформирован набор правил, определяющий движение трафика и доступ. Ниже представлен снимок консоли управления ISA Server.
Защита информации в локальных сетях, практика
Из данной конфигурации правил видно, что разрешено:
весь трафик используемый службой DNS (входящий и исходящий);
входящий трафик для компьютера с IP адресом 10.10.32.1 по протоколам RDP, ICMP, NETBIOS, RPC, DNS, ”эхо - запрос” для всей локальной сети (данное правило необходимо для удалённого управления);
весь исходящий трафик от данного сервера;
весь исходящий трафик от внутренней сети к компьютеру имеющий IP адрес 10.0.0.5 (доступ к файловому серверу университета).
внутреннй трафик по протоколам CIFS, SQL, NetSP1, RDP, RPC, NETBIOS.
исходящий трафик по протоколам, которые используют web клиенты (HTTP, HTTPS), почтовые клиенты (POP3, SMTP, IMAP, SMTPS и др), клиенты мгновенных сообщений (ICQ).
Согласно политике безопасности, используемой по умолчанию в ISA Server, всё что явно не разрешено – запрещено, поэтому весь трафик, неописанный в правилах доступа отфильтровывается и блокируется.
Весь трафик, который проходит через ISA Sever фиксируется, сохраняется в файл на жёстком диске, а потом анализируется.
Поскольку антивирусная система является необходимым элементом комплексной защиты, на данном сервере установлен антивирусный пакет Eset Nod32, который обладает всеми свойствами современных антивирусных программ (резидентная защита, эвристический анализ и т. д.); ежедневно обновляются антивирусные базы.
2.1. Тестирование. I этап.
Для того, что бы тестирование было максимально эффективным, и результаты отражали реальную картину, нам необходимо поставить себя на места взломщика (хакера), постараться понять как идёт ход его мыслей.
В виду того, что взломщики не гнушаются никакими видами атак можно предположить, что возможна атака типа «социальная инженерия», и если она пройдёт успешно, хакер может получить ценные сведения. Например, сведения о топологии локальной сети или информацию о том, с какого ПК (IP адреса) администратор удалённо управляет сервером.
Рассмотрим данный вид атаки на практике. Изначально нам необходимо иметь представление о структурных подразделениях СахГУ, такую информацию можно почерпнуть из определённых документов. Например, проследив за уборщицей, и узнав, куда она выкидывает мусор, можно изучить выброшенные документы и на основании этого сделать выводы. Но мы поступим иначе. Не для кого не секрет, что в любой крупной организации существует свой телефонный справочник. Далее, представившись студентом, заходим во каждый кабинет и, походу, придумывая всевозможные причины, просим на минуту дать в руки справочник. Нам повезло с третей попытки, и на стр. 14 - 20 мы увидели список структурных подразделений и, соответственно, их телефоны. Нас интересуют некоторые из них: «Управление информатизации» и нестолько телефонов в «ИИСУ». Следующим шагом мы звоним в приёмную ИИСУ, представившись техником из компании «Консультант +»:
- Здравствуйте, вас беспокоят из компании «консультант», дело в том, что у нас возникли проблемы с последним пополнением баз, скажите как связаться с вашим системным администратором?
- Доброе утро, вы знаете его сейчас нет на месте, я ему передам, что возникли проблемы.
Хорошо, но это необходимо сделать как можно, быстрее, так как ваша версия не может долго обходится без обновления.
- Да, да. Я постараюсь с ним связаться как можно быстрее, куда вам перезвонить?
- Пусть он перезвонит к нам в офис, как, скажите, его зовут?
- Его зовут Андрей.
- Спасибо, до свидания.
Далее звоним в управление информатизации и тут мы попадаем на начальника, так как он первым словом, после снятия трубки называет свою фамилию. Мы просто кладём трубку, поскольку обмануть начальника, который знает свои кадры достаточно сложно. Спустя некоторое время набираем номер повторно, и тут в трубке слышен другой голос, по всей вероятности молодого сотрудника:
- Добрый день, это с кафедры социологии беспокоят, а как найти нашего системного администратора Андрея?
- Дело в том, что он у нас не сидит.
- Как не сидит? И у нас его нет! А как он тогда работает?!
- Он, наверно, управляет сервером удалённо, из других кабинетов.
- Может скажите в каких?
- Скорее всего из 32 или 41.
- До свидания.
Из данных разговоров можно сделать вывод что системный администратор управляет удалённо сервером либо из кабинета № 32, либо из кабинета № 41. Но нам необходимо узнать именно IP адрес этого ПК, для этого мы идём в компьютерный класс, представившись студентом, садимся за один из компьютеров набираем команду «ipconfig» и узнаём IP адрес – 10.10.36.4, далее садимся за другой компьютер – 10.10.36.9. Следующим шагом выходим в коридор и смотрим на номер кабинета - №36.
Делаем выводы: как и в большинстве случаев, при организации большой локальной сети, администратор раздаёт IP адреса согласно номерам кабинетов, например, IP адрес 10.10.36.4 говорит о том что компьютер находится в 36 кабинете и имеет порядковый номер 4. Несложно догадаться, что компьютер в кабинете № 32 будет иметь адрес 10.10.32.Х, где Х его порядковый номер. Вот так, набрав всего одну команду на компьютере, мы практически узнали IP адрес компьютера с которого системный администратор управляет своим сервером, а это значит что трафик от этого IP адреса либо вообще не фильтруется брэндмауэром, либо фильтруется недостаточно.
2.2. Тестирование. II этап.
Следующим этапом мы расположились в том же компьютерном классе, и подключив к локальной сети «свой» ПК.
Итак, мы находимся во внешней сети (подсеть 10.0.0.0/255.128.0.0). Для атаки будем использовать IBM совместимый ПК, с установленной операционной системой SuSE Linux 10.2.
1. Уточняем IP адрес ПК, предназначенного для удалённого администрирования. Воспользуемся простым «эхо-запросом», реализованным командой Ping.
Защита информации в локальных сетях, практика
Данный листинг позволяет понять что на «эхо-запрос» отвечает лишь один компьютер имеющий IP адрес 10.10.32.1. Возможно, что другие компьютеры имеют брандмауэры, которые фильтруют пакеты посланные командой ping. Но мы предположим, что это и есть тот ПК, выбранный для удалённого администрирования.
Произведём сканирование сервисов. Для сканирования сервисов мы воспользуемся инструментом NMAP.
Nmap - the Network Mapper. Утилита для сканирования и исследования безопасности сети. Программа Nmap предназначена для сканирования сетей с любым количеством объектов, определения состояния объектов сканируемой сети а также портов и соответствующих им служб. Для этого Nmap использует много различных методов сканирования, таких, как UDP, TCP connect(), TCP SYN (полуоткрытое), FTP proxy (прорыв через ftp), Reverse-ident, ICMP (ping), FIN, ACK, Xmas tree, SYN и NULL-сканирование.
Естественно, что взломщик пытается скрыть своё местоположение в сети, а так же сделать атаку максимально скрытой, поэтому и мы будем стремится к этому результату. Для того что бы скрыть свой реальный IP адрес, мы будем использовать ПК для удалённого администрирования (IP 10.10.32.1) в качестве «хоста-зомби», используя технику IdleScan.
Защита информации в локальных сетях, практика
Запустим сканер с параметрами:
nmap -sI 10.10.32.1 -sR -sV -O -PI -PT 10.14.0.1,
где 10.10.32.1 - «зомби», 10.14.0.1 – IP адрес сервера.
Из приведённого ниже листинга видно, что на данном сервере, для данного IP адреса, открыты такие номера TCP портов как 135, 139, 3389 и дрпугие. За данными номерам закреплены следующие, интересующие нас, службы: RPC (удаленный вызов процедур), RDP (удалённый рабочий стол), NetBios.
Защита информации в локальных сетях, практика
Проанализировав данный отчёт сканера, и, сравнив его с отчётами сканирования от других IP адресов, можно сделать вывод, что для IP адреса 10.10.32.1 открыто большее количество портов, а также открыты службы, которые в основном работают только для внутренней сети.
2.3. Тестирование. III этап.
На предыдущем этапе мы вычислили IP адрес машины предназначенной для удалённого администрирования. Предполагаемые дальнейшие действия взломщика – получит возможность отправлять данные от IP адреса 10.10.32.1, так как для этого узла открыты наиболее уязвимые сервисы, и возможно, используя этот IP адрес представится возможным получить доступ непосредственно к локальной сети, а, значит, к контроллеру домена.
Хакер может пойти несколькими путями, рассморим на практике один из них. Злоумышленник может осуществить атаку типа «захват сеанса», т. е. дождаться когда пользователь, к примеру, аутентифицируется в системе и перехватить сеанс. Но эту атаку практически очень сложно реализовать. Мы пойдём другим путём и попытаемся присвоить себе нужный IP адрес.
В одной локальной сети не может быть одновременно два одинаковых IP адреса, и если мы просто присвоим себе необходимый IP адрес, то в сети возникнет конфликт адресов, а исследуемые хост, скорее всего, просто заблокирует весь трафик от этого адреса. Поэтому нам необходимо на время вывести из строя компьютер с нужным нам IP адресом, и присвоить адрес себе.
Для того, что бы временно «выключить» нужный нам ПК будем применять популярный тип атаки «DoS». Для реализации этой атаки выберем инструмент под названием Metasploit Framework.
Согласно руководству пользователя Metasploit Framework это законченная среда для написания, тестирования и использования кода эксплойтов. Эта среда обеспечивает надежную платформу для испытаний на проникновение, разработки шелкодов и исследования уязвимостей.
При помощи сканера безопасности определяем ОС – Windows XP, и используя уязвимость в службе SERVER (ms06-063) реализуем DoS атаку.
Защита информации в локальных сетях, практика
Защита информации в локальных сетях, практика
Необходимо отметить, что данная атака вызывает на удалйнном ПК отказ в обслуживании ядра, появляется так называемый BSOD («синий экран смерти»).
Код эксплоита реализующий уязвимость.
Эксплойт (англ. exploit — использовать) — это общий термин в сообществе компьютерной безопасности для обозначения фрагмента программного кода который, используя возможности предоставляемые ошибкой, отказом или уязвимостью, ведёт к повышению привилегий или отказу в обслуживании компьютерной системы.
Следующим шагом, мы проверяем сработала ли наша атака, и, послав «эхо-запрос» командой ping, убеждаемся в этом. Далее присваиваем себе IP адрес 10.10.32.1, и снова проверяем связь, только на этот раз уже с тестируемым сервером – хост отвечает на запрос, это значит что замена IP прошла удачно, и испытуемый сервер «не заметил» перемены.
Далее нам необходимо проверить – коммутирует ли сервер пакеты из внешней сети во внутреннюю, для этого необходимо изменить таблицу маршрутизации на атакующем ПК. Реализуем это при помощи следующей команды
route add -net 192.167.0.0 mask 255.255.0.0 gw 10.14.0.1 metric 1 dev eth0
и проверяем:
Защита информации в локальных сетях, практика
Из информации по времени отклика можно сделать вывод, что компьютер находится в пределах здания, а, значит, маршрут успешно добавлен, и мы получили доступ к локальной сети ИИСУ.
2.4 Тестирование. IV этап.
Предугадать действия взломщика на завершающем этапе несложно. Конечно, его целью будет контроллер домена, и если атака будет удачной, то злоумышленник получит права администратора домена, и будет иметь доступ к любой информации хранимой на сервере.
Для реализации поставленной задачи на практике будем использовать одну из последних, на момент написания, уязвимостей - переполнение буфера в службе DNS в Microsoft Windows.
Переполнение буфера — это явление, возникающее, когда компьютерная программа записывает данные за пределами выделенного в памяти буфера.
Уязвимость позволяет удаленному пользователю выполнить произвольный код на целевой системе. Уязвимость существует из-за ошибки проверки границ данных в RPC интерфейсе DNS службы, используемого для удаленного управления. Удаленный пользователь может с помощью специально сформированного RPC запроса вызвать переполнение буфера и выполнить произвольный код на целевой системе с привилегиями учетной записи SYSTEM.
Техника эксплойтирования просто и смертельна. Стек программы хранит данные в следующем порядке: параметры, которые были переданы функции, затем адрес возврата, далее предыдущее значение указателя стека и локальные переменные. Если переменные (типа массивов) переданы без проверки границ, то при большом количестве данных, они могут разрушить стек, переписав адрес возврата и, следовательно, вызвав ошибку сегментации. Если эта уловка правильно реализована, мы можем изменить буфер так, чтобы он указывал на любой адрес, приведя к исполнению нашего кода.
На практике снова прибегнем к инструменту Metasploit.
Защита информации в локальных сетях, практика
В качестве шелл-кода выберем Windows Comand Shell.
Код оболочки, шелл-код (англ. shellcode) — это двоичный исполняемый код, который обычно передаёт управление консоли, например '/bin/sh' Unix shell, command.com в MS-DOS и cmd.exe в операционных системах Microsoft Windows. Код оболочки может быть использован как полезная нагрузка эксплойта, обеспечивая взломщику доступ к командной оболочке (англ. shell) в компьютерной системе.
Защита информации в локальных сетях, практика
Как видно из листинга, атака прошла успешно, была запущена командная строка, с привилегиями SYSTEM, на контроллере домена.
Следующие действия – добавление пользователя с правами администратора домена в активный каталог. Для наглядности присвоим ему имя VZLOM, а имя для входа VZ.
Создаём пользователя:
Защита информации в локальных сетях, практика
Добавляем его в административные группы:
Защита информации в локальных сетях, практика
Атака успешно завершина, теперь попробуем запустить, например, удалённый рабочий стол:
Защита информации в локальных сетях, практика
Результат взлома на лицо, перечислим основные меры, которые необходимо принять для устранения обнаруженных «дыр» в защите.
1. Провести разъяснительные беседы с сотрудниками, обладающими информацией, утечка которой может пагубно сказаться на безопасности локальной сети. Постараться поднять общий уровень компьютерной грамотности сотрудников. Эти действия защитят не только от атак типа «социальная инженерия», но и от финансовых потерь, связанных с неквалифицированными действиями сотрудников.
2. Тестирование показало, что в защите нуждается не только компьютеры, составляющие локальную сеть, но и ПК предназначенный для удалённого администрирования. Этот компьютер необходимо оснастить, как минимум брэндмауэром, и сконфигурировать его таким образом, что бы брэндмауэр пропускал только тот трафик, который необходим для работы (например, первым делом, отключить ответ на «эхо-запрос»). Для устранения уязвимостей на уровне ОС, необходимо срочно установить все последние обновления.
3. В результате проделанных операций в разделах 2.3 и 2.4 становится ясно, что надо переконфигурировать правила ISA server, на испытуемом хосте. Во – первых, отключить коммутацию пакетов во внутреннюю сеть, а вместо этого либо пользоваться стандартными средствами, либо установить необходимое программное обеспечения на шлюз. Во – вторых, для установления подключения между шлюзом и ПК удалённого администрирования воспользоваться технологией VPN, реализованной в ISA server.
4. Устранить уязвимость в DNS на контроллере домена. Сделать это можно лишь тогда, кода Microsoft выпустит очередную «заплатку». На момент написания, исправления закрывающие данную уязвимость еще не выпущены.
Заключение.
Для обеспечения высокого уровня защиты, и устранения еще не обнаруженных уязвимостей, такие тестирования нужно проводить регулярно.
Необходимо следить за новостями в мире информационной безопасности, или хотя бы быть в курсе новых уязвимостей и новых технологий по обеспечению защиты.
В заключении тестирования, хотелось бы отметить, что все обнаруженные уязвимости (кроме «дыры» в DNS) были устранены и повторные действия описанные в 2.1, 2.2, 2.3, 2.4 успеха не принесли.