Защита информации. 5

 

Содержание

 

Введение 4

Постановка задачи 5

Основы работы сканеров портов 6

    Порты TCP/UDP 6

    Типы сканирований 8

    Сканеры портов 11

Обзор сравниваемых сканеров портов 15

    ZENMAP v5.00 15

    NetScanTools v4.22. 16

    SuperScan v4.00 17

    Angry IP Scanner 3.0 Beta 3 18

    Advanced Port Scanner v1.3 19

Сравнительный анализ сканеров портов 20

    Методы сканирования и незаметность работы 20

    Графический интерфейс и простота использования 21

    Вариация временных интервалов сканирования 23

    Скорость работы сканеров 24

    Подведение итогов сравнительного анализа 26

Заключение 32 
 

Введение

     Сканер  портов - программное средство, разработанное для поиска хостов сети, в которых открыты нужные порты - системные ресурсы выделяемые приложению для связи с другими приложениями, выполняемыми на хостах доступных через сеть (в том числе другим приложением, на этом же хосте).. Эти программы обычно используются системными администраторами для проверки безопасности их сетей, а также злоумышленниками для взлома сети. Может производиться поиск как ряда открытых портов на одном хосте, так и одного определённого порта на многих хостах. Последнее характерно для деятельности ряда сетевых червей- разновидности самовоспроизводящихся компьютерных вирусных программ, распространяющихся в локальных и глобальных компьютерных сетях.

     Сам процесс называется сканированием портов или (в случае, когда осуществляется проверка многих хостов) сканированием сети. Сканирование портов может являться первым шагом в процессе взлома или предупреждения взлома, помогая определить потенциальные цели атаки. С помощью соответствующего инструментария, отправляя пакеты данных и анализируя ответы, могут быть исследованы работающие на машине службы (Web-сервер, FTP-сервер, mail-сервер, и т.д.), установлены номера их версий и используемая операционная система.

 

Постановка  задачи

     В ходе курсового проекта необходимо выполнить ряд основных вопросов:

  • рассмотреть основы работы сканеров портов
  • выбрать не менее десяти сканеров, провести их обзор
  • провести оценку возможностей и сравнительный анализ выбранных сетевых сканеров

 

Основы  работы сканеров портов

Порты TCP/UDP

     Под портом, в протоколах TCP и UDP (семейства TCP/IP), обычно понимают системный ресурс выделяемый приложению для связи с другими приложениями, выполняемыми на хостах доступных через сеть (в том числе другим приложением, на этом же хосте). Для каждого из протоколов TCP и UDP, стандарт определяет возможность одновременного выделения на хосте до 65536 уникальных портов, идентифицирующихся номерами от 0 до 65535. При передаче по сети номер порта в заголовке пакета используется (вместе с IP-адресом хоста) для адресации конкретного приложения (и конкретного, принадлежащего ему, сетевого соединения).

     Малоизвестная, но важная организация Internet Assigned Numbers Authority (IANA) присваивает номера портов TCP/UDP. Она отслеживает множество различных  стандартов и систем, обеспечивающих функционирование Интернете. В таблице 1 перечислены некоторые из наиболее употребительных TCP-портов для серверных приложений, самую свежую версию списка номеров портов можно найти на web-сайте IANA: http://www.iana.org. Номер порта присвоен почти каждому значительному приложению. Как для TCP, так и для UDP-сервисов эти номера лежат в диапазоне от 1 до 65535. Номера портов от 0 до 1023 считаются зарезервированными для общеупотребительных приложений, обычно выполняющихся от имени пользователя root или другого привилегированного пользователя. Соответствующие им номера портов называются   общеизвестными. Номера   портов   с   1024   по  65535   можно  
 

     

     

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

     Таблица 1.

     Общеупотребительные серверные порты

Номера  портов Протокол Сервис
21 FTP Протокол передачи файлов (управляющий порт)
22 SSH Защищенный shell
23 Telnet Telnet
25 SMTP Почтовый сервис
53 DNS Разрешение  доменных имен
79 Finger Finger
80 HTTP Web-сервис
135-139 NetBIOS Сетевые коммуникации Windows
443 SSL Защищенный web-сервис

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

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

     

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

Типы  сканирований

   Прежде  чем перейти к описанию конкретных средств, используемых для сканирования портов, необходимо уделить немного  времени обзору методов сканирования, известных в настоящее время. Одним из пионеров реализации различных  методов сканирования является ранее  упоминавшийся Федор (Fyodor). Многочисленные приемы сканирования были реализованы им в утилите nmар. Многие из описанных в данной книге методов сканирования были предложены самим Федором.

  • TCP-сканирование подключением (TCP connect scan). При таком типе сканирования осуществляется попытка подключения по протоколу TCP к интересующему нас порту с прохождением полной процедуры согласования параметров (handshake), состоящей в обмене сообщениями SYN, SYN/ACK и АСК. Попытки такого сканирования очень легко выявляются. На рис.1. показана диаграмма обмена сообщениями в процессе согласования параметров.
  • TCP-сканирование с помощью сообщений SYN (TCP SYN scan). Этот метод называется также сканированием с незавершенным открытием сеанса (half-open scanning), так как при его использовании полное TCP-соединение не устанавливается. Вместо этого на исследуемый порт отправляется   сообщение   SYN.   Если   в  ответ   поступает    сообщение

SYN/ACK, это  означает, что данный порт находится  в состоянии LISTENING. Если же ответ  приходит в виде сообщения  RST/ACK, то, как правило, это говорит  о том, что исследуемый порт  отключен. Получив ответ, компьютер,  выполняющий сканирование, отправляет  исследуемому узлу сообщение  RST/ACK, поэтому полное соединение  не устанавливается. Этот метод  обеспечивает более высокую скрытность  по сравнению с полным подключением. Многие системы не регистрируют на такие попытки, поэтому они довольно часто могут оставаться незамеченными.

    Рис. 1. При установке TCP-соединения происходит обмен тремя сообщениями: (1) клиент отправляет серверу пакет SYN, (2) получает от сервера пакет SYN/ACK и (3) отправляет серверу пакет АСК 

  • TCP-сканирование  с помощью сообщений FIN (TCP FIN scan). В этом случае исследуемой системе отправляется пакет FIN. Согласно документу RFC 793 (http://www.ieff.org/rfc/rfc0793.txt), в ответ узел должен отправить пакет RST для всех закрытых портов. Данный метод срабатывает только для стека протоколов TCP/IP, реализованного в системе UNIX.
  • TCP-сканирование по методу "рождественской елки" (TCP Xmax Tree scan). При использовании данного метода на исследуемый порт отправляются пакеты FIN, URG и PUSH. Согласно документу RFC 793, исследуемый узел в ответ должен отправить сообщения RST для всех закрытых портов.

  • TCP нуль-сканирование (TCP Null scan). Этот метод состоит в отправке пакетов с отключенными флагами. Согласно RFC 793, исследуемый узел должен ответить отправкой сообщения RST для всех закрытых портов.
  • TCP-сканирование с помощью сообщений АСК (TCP ACK scan). Этот метод позволяет получить набор правил, используемых брандмауэром. Такое сканирование поможет определить, выполняет ли брандмауэр простую фильтрацию пакетов лишь определенных соединений (пакетов с установленным флагом АСК) или обеспечивает расширенную фильтрацию поступающих пакетов.
  • TCP-сканирование размера окна (TCP Windows scan). Такой метод позволяет выявить открытые, а также фильтруемые/нефильтруемые порты некоторых систем (например, AIX и FreeBSD), в зависимости от полученного размера окна протокола TCP.
  • TCP-сканирование портов RFC (TCP RFC scan). Этот метод применим только для систем UNIX и используется для выявления портов RFC (Remote Procedure Call — удаленный вызов процедур), связанных с ними программ и их версий.
  • UDP-сканирование (UDP scan). Данный метод заключается в отправке на исследуемый узел пакетов по протоколу UDP. Если в ответ поступает сообщение о том, что порт ICMP недоступен (ICMP port unreachabie), это означает, что соответствующий порт закрыт. С другой стороны, если такого сообщения нет, можно предположить, что данный порт открыт. В связи с тем, что протокол UDP не гарантирует доставки, точность данного метода очень сильно зависит от множества факторов, влияющих на использование системных и сетевых ресурсов. Кроме того, UDP-сканирование — очень медленный процесс, что особенно сказывается при попытках сканирования устройств, в которых реализован мощный алгоритм фильтрации пакетов. Планируя использовать UDP-сканирование, приготовьтесь к тому, что результаты могут оказаться ненадежными.

   Некоторые реализации IP-протокола обладают одним  неприятным свойством: пакеты RST отправляются обратно для всех сканируемых  портов независимо от того, находятся  ли соответствующие порты в режиме ожидания запросов. Учитывайте этот факт при использовании описанных  методов. Однако в то же время сканирование подключением и сканирование с использованием сообщений SYN могут применяться для  всех узлов.

Сканеры портов

     Сканеры портов опрашивают набор портов TCP или UDP и смотрят, не ответит ли приложение. Если ответ получен, это означает, что некоторое приложение слушает порт с данным номером. Имеется 65535 возможных портов TCP и столько же - UDP. Сканеры можно сконфигурировать для опроса всех возможных портов или только общеупотребительных (с номерами, меньшими 1024). Веская причина для полного сканирования состоит в том, что сетевые троянские и другие вредоносные программы, чтобы избежать обнаружения, нередко используют нетрадиционные порты с номерами в верхней части диапазона. Кроме того, некоторые производители не следуют стандартам должным образом и подключают серверные приложения к портам с большими номерами. Полное сканирование охватывает все возможные места, где могут скрываться приложения, хотя и требует больше времени и пожирает несколько большую часть полосы пропускания.

     Цели  применения сканеров портов могут быть различны, перечислим некоторые из них:

  • Инвентаризация сети: определение точного числа работающих машин, определение IP-адреса всех серверов. Сканеры портов предлагают быстрый способ просмотра диапазона адресов и выявления все активных машин в этом сегменте.

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

1) Активные  web - серверы нередко подцепляют на web-сайтах небольшие программы, которые пытаются отслеживать их поведение или выдавать на их компьютеры специальную всплывающую рекламу. Эти программы называются шпионским ПО, потому что нередко они пытаются следить за активностью пользователя и могут передавать собранные данные обратно на центральный сервер. Эти программы обычно не опасны, но их чрезмерное количество может существенно снизить производительность труда пользователя.

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

Таблица 2.

Порты, используемые наиболее распространенными

троянскими  программами

Номер порта IP протокол Известные "троянские" программы, использующие эти порты
12456 и  54321 TCP NetBus
23274 и  27573 TCP Sub7
31335 TCP Trin00
31337 TCP Back Orifice
31785-31791 TCP Hack 'a'Tack
33270 TCP Trinity
54321 UDP Back Orifice 2000
60000 TCP Deep Throat
65000 TCP Stacheldraht
 

3) Сетевые  "черви" - особо мерзкий тип  вирусов. Зачастую они снабжены  сетевыми средствами и открывают  порты на компьютере - "хозяине". Сетевые "черви" используют  сеть для распространения и  поэтому иногда выявляются при  сканировании портов. Сканирование  портов может стать ценным  подспорьем в защите от этого  вида вирусов.

  Сканеры портов предстают во множестве видов  от очень сложных с множеством различных возможностей до имеющих минимальную функциональность. На самом деле, возможно вручную выполнить функции сканера портов, применяя Telnet и проверяя порты по очереди, например:

telnet 192.168.0.1:80

     Данная  команда использует Telnet для соединения с машиной. Вместо того чтобы получить от Telnet обычное приглашение, которое выдается при подключении к его подразумеваемому порту, вы соединитесь с web-сервером, если таковой запущен на машине. После нажатия клавиши ввода вы получите первый ответ web-сервера навигатору. Вы увидите информацию из заголовка HTTP, которая обычно обрабатывается навигатором и скрыта от пользователя. Так же можно поступить с любым открытым портом, но вы не всегда получите в ответ нечто вразумительное. По сути, именно это и делают сканеры портов: они пытаются установить соединение и ожидают ответ.

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

 

Обзор сравниваемых сканеров портов

ZENMAP v5.00

   Nmap - один из наиболее доступных бесплатных сканеров портов. NMAP является свободной утилитой, предназначенной для разнообразного настраиваемого сканирования IP-сетей с любым количеством объектов, определения состояния объектов сканируемой сети (портов и соответствующих им служб). Изначально программа была реализована для систем UNIX, но сейчас доступны версии для множества операционных систем. Nmap хорошо документирован и найти информацию в интернете о настройке и работе сканера не составляет большого труда.

   Графический клиент Nmap предоставляет весьма простой интерфейс, пример такого графического интерфейса Zenmap v5 приведен на рисунке 2.

   Рис. 2. Сканер Zenmap v5.00

NetScanTools v4.22.

   NetScanTools - утилита сканирования с графическим интерфейсом (рис.3). Представляет собой коммерческий продукт, но также предоставляется 30-дневная пробная версия, профессиональную версию программы необходимо покупать. NetScanTools работает под операционной систомой Windows.

 
Рис. 3. Сканер NetScanTools v4.22.

     NetScanTools представляет собой приятный графический интерфейс к большому количеству свободно-доступных утилит командной строки: Ping, Traceroute, Finger, whois/fwhois и другие им подобные. Он также взаимодействует с несколькими вышедшими из употребления службами типа echo, daytime, quote и chargen, которые не слишком широко распространены в сети Internet. Многие из экранных закладок интерфейса NetScanTools, такие как TimeSync, Database Tests, WinSock Info, NetBios   Info  и IDENT Server,

используются  для просмотра информации или  управления сервисами на хосте, где  выполняется программа. Вдобавок, программа  может запускать telnet-, FTP- и HTTP-приложения. Программа представляет собой централизованное средство для получения информации о сети и управления сканированием.

SuperScan v4.00

     SuperScan представляет собой еще одно средство сканирования с графическим интерфейсом пользователя. В отличие от NetScanTools, это свободно распространяемая программа.

     Внешний вид пользовательского интерфейса SuperScan (рис.4.) похож на интерфейс закладки NetScanTools. У программы нет таких дополнительных возможностей, как у NetScanTools, и они ограничены установкой TCP-сеанса, но имеются основные средства, требующиеся для сканирования. В сеансе поиска имен и хостов можно осуществлять поиск имен хостов и IP-адресов. Также возможно получить информацию о своей системе и имеющихся сетевых интерфейсах.

Рис.4. Сканер SuperScan v4.00

Angry IP Scanner 3.0 Beta 3

     Angry IP Scanner – бесплатный IP сканер портов. Сканер работает под всеми основными операционными системами. Позволяет сканировать любой диапазон IP, имеет возможность сканирования на открытые порты, сохранение "любимых" диапазонов и загрузка их. К дополнительным возможностям утилиты Angry IP Scanner можно отнести сбор NetBIOS-информации (имя компьютера, имя рабочей группы и имя пользователя ПК). Результаты сканирования можно сохранять в различных форматах (CSV, TXT, HTML, XML). Высокая скорость сканирования утилиты Angry IP Scanner достигается за счет использования множества параллельных потоков. Так, по умолчанию используются 64 потока, но это количество можно увеличить для достижения еще большей производительности.

     Результат сканирования Angry IP Scanner приведен на рисунке 5.

Рис.5. Сканер Angry IP Scanner 3.0 Beta 3

Advanced Port Scanner v1.3

     Утилита Advanced Port Scanner (рис.6.) позволяет собирать информацию об IP-адресах узлов, об их сетевых именах и открытых портах. Advanced Port Scanner базируется на платформе Windows и распространяется бесплатно. Возможности по настройке этого сканера заключаются в задании диапазона сканируемых IP-адресов и портов. Кроме того, имеется возможность задавать количество одновременно выполняемых потоков и управлять временем ожидания ответа на запрос. Отметим, что данный сканер является очень скоростным и позволяет собрать детальную информацию о сети в кратчайшие сроки.

Рис.6. Сканер Advanced Port Scanner v1.3. 
 

 

WS PingPro 2.30

Сканер WS PingPro 2.30 позволяет определить список всех IP-адресов, по которым имеются подключенные к сети узлы, а также выяснить их сетевые имена. Кроме того, сканер WS PingPro 2.30 определяет запущенные на компьютере службы и дает возможность просканировать порты сетевого компьютера в заданном диапазоне (в демо-версии программы данная возможность заблокирована).

Для настройки  на различные по производительности сети сканер WS PingPro 2.30 позволяет задавать время, в течение которого ожидается ответ от хоста сети (по умолчанию — 300 мс).  

Рис. 7. Утилита WS PingPro 2.30

Отметим, что  сетевой сканер — это всего одна из возможностей пакета WS PingPro 2.30. В дополнение к сетевому сканеру пакет WS PingPro 2.30 предоставляет в распоряжение пользователя такие утилиты, как SNMP tool, WinNet, Time tool, Throughput, Info tool, и др.

Так, утилита SNMP tool позволяет получить информацию о сетевом узле (как правило, речь идет о коммутаторах и маршрутизаторах), поддерживающем протокол SNMP.

Утилита WinNet позволяет просканировать локальную сеть и отобразить NetBEUI-имена всех узлов сети, доменов и разделяемых ресурсов.

Утилита Time tool синхронизирует время локального компьютера с временем ближайшего сервера времени.

Throughput — эта небольшая диагностическая утилита, позволяющая протестировать скорость соединения пользователя с удаленным узлом сети.