Поиск уязвимостей в сетевых устройствах. Сканирование на уязвимости: как проверить устройство и обезопасить себя от потенциальных угроз. Поиск зараженных ПК

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

Для сравнения были выбраны пять различных сканеров в разном ценовом диапазоне и с разными возможностями: ISS Internet Scanner , XSpider , LanGuard , ShadowSecurityScanner , X-Scan .

Чтобы сравнивать подобные системы недостаточно просто их запустить. Количество якобы проверяемых уязвимостей или их настроек, а также размер программы или её внешний вид не могут являться критериями для оценки качества и фунцкиональных возможностей того или иного сканера. Поэтому для того чтобы создать полноценное представление о работе различных сканеров безопасности, было решено провести их сравнительный тест по выявлению уязвимостей в семи различных операционных системах, часто используемых крупными банками и финансовыми учреждениями: AS/400, Solaris 2.5.1, Compaq/Tandem himalaya K2006 (OS D35), Windows 2000 Server, Windows XP Professional, Linux RedHat 5.2, Bay Networks Router.

Версии тестируемых сканеров (последние доступные на момент проверки):

  • ISS Internet Scanner 6.2.1 с последними апдейтами
  • XSpider 6.01
  • LanGuard 2.0
  • ShadowSecurityScanner 5.31
  • XFocus X-Scan v1.3 GUI

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

Таблица найденных уязвимостей:


ISS XSpider LanGuard SSS XF
AS/400
Всего найдено портов 16 25 6 15 8
21/tcp: ftp X X X
X
X

X X
23/tcp: telnet X X X X X
25/tcp: smtp X X X X X
80/tcp: httpd
IBM-HTTP-SERVER/1.0
X X X X X
81/tcp: httpd
IBM-HTTP-SERVER/1.0



X
80/tcp: httpd - просмотр скриптов
X


139/tcp: netbios X X X X X
449/tcp: as-servermap - просмотр карты портов
X


2001/tcp: httpd
IBM-HTTP-SERVER/1.0

X
X
2001/tcp: httpd - просмотр скриптов
X


9090/tcp: httpd
JavaWebServer/1.1

X
X
9090/tcp: httpd - системные директории
X


500/udp: isakmp X



Icmp timestamp X




Solaris 2.5.1 ISS XSpider LanGuard SSS XF
Всего найдено портов 18 47 13 27 9
7/tcp: echo X X
X X
7/udp: echo X X


9/tcp: discard X X
X X
13/tcp: daytime X X X X X
13/udp: daytime X X


19/tcp: chargen X X
X X
19/udp: chargen X X
X
21/tcp: ftp X X X X X
21/tcp: ftp – перебор паролей X

X X
23/tcp: telnet X X X X X
25/tcp: smtp X X X X X

X
X
37/tcp: time X X
X X
53/udp: dns
X


53/udp: dns – сервер поддерживает рекурсию
X


162/tcp: snmptrap X X
X
161/udp: snmp X

X
161/udp: snmp – доступ по любому комьюнити X



161/udp: snmp – получение Interface X



161/udp: snmp – получение Routes X



512/tcp: exec X X X X
513/tcp: login X X X X
514/tcp: shell X X X X
515/tcp: printer X X X X

X


540/tcp: uucp X X X X
2049/tcp: nfsd X X X X
4045/tcp: nfsd - идентификация
X


6000/tcp: X X X
X
6790/tcp: httpd
Jigsaw/1.0a

X


10000/tcp: httpd
MiniServ/0.01

X
X
32771/tcp: status – идентификация
X


32772/tcp: rusersd – идентификация
X


32773/tcp: ttdbserverd – идентификация и получение привилегий root
X


32774/tcp: kcms_server – идентификация
X


32780/tcp: mountd – идентификация и получения списка ресурсов
X


32781/tcp: bootparam – идентификация
X


65363/tcp: RPC
X


Icmp timestamp X




Ложные срабатывания




32771/tcp: status – получение привилегий root
X


Finger – переполнение буфера

X




X

Compaq/Tandem himalaya K2006
(OS D35)
ISS XSpider LanGuard SSS XF
Всего найдено портов 4 5 3 5 4
7/tcp: echo X X
X X
21/tcp: ftp X X X X X
23/tcp: telnet X X X X X
23/tcp: telnet – вход только по паролю X



79/tcp: finger X X X X X
Icmp netmask X



Icmp timestamp X




Windows 2000 Server ISS XSpider LanGuard SSS XF
Всего найдено портов 9 9 7 7 8
21/tcp: ftp X X X X X

X


21/tcp: ftp – анонимный вход X X X X X
21/tcp: ftp – перебор паролей X

X X
21/tcp: ftp – есть доступ на запись X X


21/tcp: ftp – возможен сбор статистики
X
X
80/tcp: httpd
MS IIS/5.0
X X X X X
80/tcp: httpd – переполнение буфера
X


135/tcp: Rpc X X X X X
500/udp: isakmp X



1027/tcp: sqlserver.exe – идентификация
X


1433/tcp: Ms SQL
X X X X
3389/tcp: Ms RDP
X X X X
Icmp timestamp X




Ложные срабатывания




1433/tcp: MsSQL – перехват административной сессии
X



Windows XP Professional ISS XSpider LanGuard SSS XF
Всего найдено портов 20 15 4 11 8
7/tcp: echo X X
X X
7/udp: echo X X


9/tcp: discard X X
X X
9/udp: discard X



13/tcp: daytime X X X X X
13/udp: daytime X X


17/tcp: qotd X X
X X
17/udp: qotd X X


19/tcp: chargen X X
X X
19/udp: chargen X X


135/tcp: Rpc X X X X X
139/tcp: NetBios X X X X X
139/tcp: NetBios - информация

X

445/tcp: MS Ds X X X X X
500/udp: isakmp X



540/udp: router X



1025/tcp: Rpc X X
X
IcqClient X



1900/udp: upnp – переполнение буфера
X


123/udp: ntp X X


5000/tcp: httpd
X
X
Icmp timestamp X




Ложные срабатывания




19/tcp: chargen – возможна DOS-атака X

X

Linux RedHat 5.2 ISS XSpider LanGuard SSS XF
Всего найдено портов 14 14 12 12 10
21/tcp: ftp X X X X X
21/tcp: ftp – переполнение буфера X X
X
21/tcp: ftp – дефолтный аккаунт с полным доступом X


X
23/tcp: telnet X X X X X
23/tcp: telnet - дефолтный аккаунт с полным доступом X



25/tcp: smtp X X X X X
25/tcp: smtp – неавторизованная отправка почты
X


25/tcp: smtp – локальный перехват сокета
X
X
53/tcp: dns X X
X X
53/tcp: dns – определение версии bind X

X
110/tcp: httpd


X X
139/tcp: NetBios X X X X
139/tcp: NetBios – получение информации

X

513/tcp: login X X
X
513/udp: rwhod X X
X
514/tcp: shell X X
X
515/tcp: printer X X
X
2049/tcp: nfsd X X

X
7000/tcp: httpd
ConferenceRoom/IRC
X X
X
8080/tcp: httpd
Apache/1.3.3 (Unix) (Red Hat/Linux)
X X
X X
8080/tcp: httpd – листинг директорий
X
X
54321/tcp: httpd
ConferenceRoom/IRC

X
X
Icmp timestamp X




Ложные срабатывания




513/udp: rwhod – переполнение буфера X



515/tcp: printer – переполнение буфера
X



Bay Networks Router ISS XSpider LanGuard SSS XF
Всего найдено портов 3 3 2 2 3
7/udp: echo X X


21/tcp: ftp X X X X X
23/tcp: telnet X X X X X

Ложные срабатывания




9/udp: discard X



21/tcp: ftp – переполнение буфера X



69/udp: tftp X



123/udp: ntp X



161/udp: snmp X



520/udp: routed X



Land DOS X



Чтобы осмыслить результаты и придти к какому-либо выводу предлагается следующая система подсчета баллов, которая является более менее оптимальной (возможны и другие варианты, но они все похожи): за каждую найденную уязвимость будет добавляться определенное количество баллов в зависимости от степени опасности данной уязвимости, и наоборот за выдачу ложной уязвимости баллы будут вычитаться:

  • серьезная уязвимость (+3 балла)
  • уязвимость средней тяжести (+2 балла)
  • информация (+1 балл)
  • ложная серьезная уязвимость (-3 балла)
  • ложная уязвимость средней тяжести (-2 балла)
  • ложная информация (-1 балл)

Итоговая таблица:


ISS XSpider LanGuard SSS X-Scan
AS/400 9 14 6 9 7
Solaris 2.5.1 26 39-(3) 11-(2) 23-(2) 11
Compaq/Tandem himalaya K2006 (OS D35) 9 5 4 5 5
Windows 2000 Server 9 16-(2) 6 8 7
Windows XP Professional 19-(2) 18 5 10-(2) 7
Linux RedHat 5.2 24-(3) 24-(2) 7 21 12
Bay Networks Router 4-(8) 4 3 3 3


100-(13) 120-(7) 42-(2) 79-(4) 52
Итого 87 113 40 75 52

Что в результате?

ISS Internet Scanner в описании не нуждается. Он показал себя как всегда на высоком уровне, правда на этот раз уступив пальму первенства XSpider-у.

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

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

ShadowSecurityScanner практически не отстал от ISS. И это при столь большой разнице в их цене. У программы простой интерфейс похожий на интерфейс сканера Retina. Подробные советы и рекомендации по устранению уязвимостей легко позволяют справиться с проблемами. Минусы: небольшое количество распознаваемых уязвимостей, гораздо большее потребление системных ресурсов при работе по сравнении с другими сканерами.

X-Scan бесплатный сканер по возможностям похожий на LanGuard, но немного его превосходящий. Минусы: не очень читабельный интерфейс программы, отсутствие каких-либо комментариев про найденные уязвимости.

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

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

Не стоит пренебрегать таким сканированием и администраторам небольших сетей – тем более что в 2017-м году серьёзным атакам со стороны запущенных хакерами подверглись сотни тысяч компьютеров.

Применение сканеров уязвимости

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

Такие программы называются сканерами уязвимости.

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

Грамотное использование программ, способных обнаружить уязвимость в сети, позволяет ИТ-специалистам избежать проблем с украденными паролями и решать такие задачи:

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

Главным преимуществом второго варианта является не только подтверждение тех проблем, которые могут быть обнаружены простым сканированием, но и обнаружение проблем, поиск которых невозможен с помощью пассивной методики. Проверка выполняется с помощью трёх механизмов – проверки заголовков, активных зондирующих проверок и имитации атак.

Проверка заголовков

Механизм, название которого на английском языке звучит как «banner check » , состоит из целого ряда сканирований и даёт возможность получить определённые выводы на основе данных, передаваемых программе-сканеру в ответ на его запрос.

Примером такой проверки может стать сканирование заголовков с помощью приложения Sendmail , позволяющее и определить версии программного обеспечения, и убедиться в наличии или отсутствии проблем.

Методика считается самой простой и быстрой, но имеет целый ряд недостатков:

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

Между тем, несмотря на определённые минусы и отсутствие гарантии обнаружения «дыр» в системе, процесс проверки заголовков можно назвать не только первым, но и одним из главных этапов сканирования. Тем более что его использование не нарушает работу ни сервисов, ни узлов сети.

Активные зондирующие проверки

Методика, известная ещё и как «active probing check », основана не на проверках в заголовках, а на анализе и сравнении цифровых «слепков» программ с информацией об уже известных уязвимостях.

Принцип её работы немного похож на алгоритм , которые предполагает сравнение отсканированных фрагментов с вирусными базами.

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

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

Эта информация иногда применяется и системами анализа защищённости, и программным обеспечением, в задачи которого входит обнаружение атак. В целом, методика активных зондирующих проверок, применяемая такими крупными компаниями как ISS и , работает значительно быстрее других способов – хотя реализовать её труднее, чем проверку заголовков.

Имитация атак

Ещё один метод на английском языке называется «exploit check » , что можно перевести на русский как «имитация атак» .

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

Методика имеет такие особенности:

  • некоторые «дыры» в безопасности нельзя обнаружить до тех пор, пока не сымитировать настоящую атаку против подозрительных сервисов и узлов;
  • программы-сканеры проверяют заголовки программного обеспечения во время фальшивой атаки;
  • при сканировании данных уязвимости обнаруживаются значительно быстрее, чем в обычных условиях;
  • имитируя атаки, можно найти больше уязвимостей (если они были изначально), чем при помощи двух предыдущих методик – при этом скорость обнаружения достаточно высокая, однако пользоваться таким способом не всегда целесообразно;
  • ситуации, которые не позволяют запускать «имитацию атак», делятся на две группы – угроза появления проблем с обслуживанием проверяемого программного обеспечения или принципиальная невозможность атаковать систему.

Нежелательно пользоваться методикой, если объектами проверки являются защищённые сервера с ценной информацией.

Атака таких компьютеров может привести к серьёзным потерям данных и выходу из строя важных элементов сети, а расходы на восстановление работоспособности могут оказаться слишком серьёзными, даже с учётом .

В этом случае желательно воспользоваться другими способами проверки – например, активным зондированием или проверкой заголовков.

Между тем, в списке уязвимостей есть и такие, которые не получится обнаружить без попыток сымитировать атаки – к ним относят, например, подверженность атакам типа «Packet Storm » .

По умолчанию, такие методы проверки отключены в системе.

Пользователю придётся включать их самостоятельно.

К программам-сканерам, которые используют третий метод сканирования на уязвимости, относят системы типа Internet Scanner и CyberCop Scanner . В первом приложении проверки выделяются в отдельную категорию «Denial of service » . При использовании любой функции из списка программа сообщает об опасности выхода из строя или перезагрузки сканируемого узла, предупреждая о том, что ответственность за запуск сканирования лежит на пользователе.

Основные этапы проверки уязвимостей

Большинство программ, выполняющих сканирование на уязвимости, работает следующим образом:

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

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

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

4 Генерирует отчёты на базе собранных при сканировании сведений , описывая уязвимости.

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

Отличия в работе разных программ

Некоторые сканеры разделяют уязвимости .

Например, система NetSonar делит их на сетевые, способные воздействовать на роутеры, поэтому более серьёзные, и локальные, влияющие на рабочие станции.

Internet Scanner разделяет угрозы на три степени – низкую, высокую и среднюю.

Эти же два сканера имеют ещё несколько отличий.

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

Причём, для первых выдаётся максимальное количество цифр, для руководства – красиво оформленные графики и диаграммы с небольшим количеством деталей.

В составе создаваемых сканерами отчётов есть рекомендации по устранению найденных уязвимостей.

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

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

Действия администратора по обнаружению уязвимостей

Для поиска «дыр» в безопасности администратор может руководствоваться тремя алгоритмами.

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

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

Способ №3 предполагает использование всех трёх механизмов (причём, с правами и администратора, и пользователя) и попытку устранить уязвимости на отдельных компьютерах. Из-за низкой скорости и риска вывести из строя программное обеспечение применяют этот метод реже всего – в основном, при наличии серьёзных доказательств наличия «дыр».

Возможности современных сканеров

Основными требованиями к программе-сканеру, обеспечивающей проверку системы и её отдельных узлов на уязвимости, являются:

  • Кроссплатформенность или поддержка нескольких операционных систем. При наличии такой особенности можно выполнять проверку сети, состоящей из компьютеров с разными платформами. Например, с или даже с системами типа UNIX .
  • Возможность сканировать одновременно несколько портов – такая функция заметно уменьшает время на проверку.
  • Сканирование всех видов ПО, которые обычно подвержены атакам со стороны хакеров. К такому программному обеспечению относят продукцию компании и (например, пакет офисных приложений MS Office).
  • Проверку сети в целом и отдельных её элементов без необходимости запускать сканирование для каждого узла системы.

Большинство современных сканирующих программ имеют интуитивно понятное меню и достаточно легко настраиваются в соответствии с выполняемыми задачами.

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

После получения отчётов сканер позволяет администратору запускать исправление угроз.

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

Сканеры уязвимостей сети

Ассортимент программ-сканеров на достаточно большой.

Все они отличаются друг от друга функциональностью, эффективностью поиска уязвимостей и ценой.

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

GFI LanGuard

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

Одним из таких приложений, обеспечивающих безопасность сети и отдельных компьютеров, является GFI LanGuard, к особенностям которого относят:

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

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

Эта особенность и другие преимущества GFI LanGuard позволяют ему находиться на верхних строчках рейтингов программ для поиска сетевых уязвимостей.

При этом стоимость использования сканера сравнительно небольшая и доступна даже небольшим компаниям.

Nessus

Программу Nessus впервые выпустили 20 лет назад, но только с 2003-го года она становится платной.

Монетизация проекта не сделала его менее популярным – благодаря эффективности и скорости работы каждый шестой администратор в мире применяет именно этот сканер.

К преимуществам выбора Nessus относят:

  • постоянно обновляемую базу уязвимостей;
  • простую установку и удобный интерфейс;
  • эффективное обнаружение проблем с безопасностью;
  • использование плагинов, каждый из которых выполняет свою задачу – например, обеспечивает сканирование ОС Linux или запускает проверку только заголовков.

Дополнительная особенность сканера – возможность использования тестов, созданных пользователями с помощью специального программного обеспечения. В то же время у программы есть и два серьёзных недостатка. Первый – возможность выхода из строя некоторых программ при сканировании с помощью метода «имитации атак», второй – достаточно высокая стоимость.

Symantec Security Check

Программа Security Check является бесплатным сканером компании Symantec.

Среди её функций стоит отметить поиск не только уязвимостей, но и вирусов – включая макровирусы, трояны и интернет-черви. Фактически, приложение состоит из 2 частей – сканера Security Scan , обеспечивающего безопасность сети, и антивируса Virus Detection .

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

XSpider

Сканер XSpider выпускается компанией Positive Technologies , представители которой утверждают, что программа не только обнаруживает уже известные уязвимости, но способна найти ещё не созданные угрозы.

К особенностям приложения относят:

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

Также стоит отметить, что стоимость использования сканера более доступна по сравнению с программой Nessus. Хотя и выше, чем у GFI LanGuard.

QualysGuard

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

Разработчик продукта, фирма Qualys, Inc., поставляет программу сотням тысяч потребителей, в том числе и половине крупнейших компаний мира.

Выводы

С учётом широкого ассортимента приложений для сканирования сети и её узлов на уязвимости, существенно облегчается работа администратора.

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

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

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

А необходимость проверить безопасность возникает у ИТ-специалистов достаточно часто – особенно, если речь идёт о крупных организациях, обладающих ценной информацией, которая может понадобиться злоумышленникам.

Не стоит пренебрегать таким сканированием и администраторам небольших сетей – тем более что в 2017-м году серьёзным атакам со стороны запущенных хакерами масштабных вирусов-шифровальщиков подверглись сотни тысяч компьютеров.

Применение сканеров уязвимости

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

Такие программы называются сканерами уязвимости.

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

Грамотное использование программ, способных обнаружить уязвимость в сети, позволяет ИТ-специалистам избежать проблем с украденными паролями и решать такие задачи:

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

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

Механизмы сканирования

Сканирование на уязвимости выполняется при помощи двух основных механизмов – сканирования и зондирования.

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

Эту методику называют «логическим выводом», а её принципы заключаются в выполнении следующих шагов:

1. Идентификация портов, открытых на каждом из устройств в сети;

2. Сбор заголовков, связанных с портами и найденных в процессе сканирования;

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

4. Получение выводов о наличии или отсутствии в сети проблем с безопасностью.

Процесс под названием «зондирование» представляет собой методику активной проверки, позволяющую практически со стопроцентной гарантией убедиться в том, есть ли в сети уязвимости или нет.

Она отличается сравнительно небольшой по сравнению со сканированием скоростью, однако в большинстве случаев является более точной.

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

Главным преимуществом второго варианта является не только подтверждение тех проблем, которые могут быть обнаружены простым сканированием, но и обнаружение проблем, поиск которых невозможен с помощью пассивной методики. Проверка выполняется с помощью трёх механизмов – проверки заголовков, активных зондирующих проверок и имитации атак.

Проверка заголовков

Механизм, название которого на английском языке звучит как «banner check» , состоит из целого ряда сканирований и даёт возможность получить определённые выводы на основе данных, передаваемых программе-сканеру в ответ на его запрос.

Примером такой проверки может стать сканирование заголовков с помощью приложения Sendmail , позволяющее и определить версии программного обеспечения, и убедиться в наличии или отсутствии проблем.

Методика считается самой простой и быстрой, но имеет целый ряд недостатков:

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

Между тем, несмотря на определённые минусы и отсутствие гарантии обнаружения «дыр» в системе, процесс проверки заголовков можно назвать не только первым, но и одним из главных этапов сканирования. Тем более что его использование не нарушает работу ни сервисов, ни узлов сети.

Активные зондирующие проверки

Методика, известная ещё и как «active probing check», основана не на проверках версий ПО в заголовках, а на анализе и сравнении цифровых «слепков» программ с информацией об уже известных уязвимостях.

Принцип её работы немного похож на алгоритм антивирусных приложений , которые предполагает сравнение отсканированных фрагментов с вирусными базами.

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

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

Эта информация иногда применяется и системами анализа защищённости, и программным обеспечением, в задачи которого входит обнаружение атак. В целом, методика активных зондирующих проверок, применяемая такими крупными компаниями как ISS и Cisco, работает значительно быстрее других способов – хотя реализовать её труднее, чем проверку заголовков.

Имитация атак

Ещё один метод на английском языке называется «exploit check» , что можно перевести на русский как «имитация атак» .

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

Методика имеет такие особенности:

  • некоторые «дыры» в безопасности нельзя обнаружить до тех пор, пока не сымитировать настоящую атаку против подозрительных сервисов и узлов;
  • программы-сканеры проверяют заголовки программного обеспечения во время фальшивой атаки;
  • при сканировании данных уязвимости обнаруживаются значительно быстрее, чем в обычных условиях;
  • имитируя атаки, можно найти больше уязвимостей (если они были изначально), чем при помощи двух предыдущих методик – при этом скорость обнаружения достаточно высокая, однако пользоваться таким способом не всегда целесообразно;
  • ситуации, которые не позволяют запускать «имитацию атак», делятся на две группы – угроза появления проблем с обслуживанием проверяемого программного обеспечения или принципиальная невозможность атаковать систему.

Нежелательно пользоваться методикой, если объектами проверки являются защищённые сервера с ценной информацией.

Атака таких компьютеров может привести к серьёзным потерям данных и выходу из строя важных элементов сети, а расходы на восстановление работоспособности могут оказаться слишком серьёзными, даже с учётом повышения безопасности системы.

В этом случае желательно воспользоваться другими способами проверки – например, активным зондированием или проверкой заголовков.

Между тем, в списке уязвимостей есть и такие, которые не получится обнаружить без попыток сымитировать атаки – к ним относят, например, подверженность атакам типа «Packet Storm» .

По умолчанию, такие методы проверки отключены в системе.

Пользователю придётся включать их самостоятельно.

К программам-сканерам, которые используют третий метод сканирования на уязвимости, относят системы типа Internet Scanner и CyberCop Scanner . В первом приложении проверки выделяются в отдельную категорию «Denial of service» . При использовании любой функции из списка программа сообщает об опасности выхода из строя или перезагрузки сканируемого узла, предупреждая о том, что ответственность за запуск сканирования лежит на пользователе.

Основные этапы проверки уязвимостей

Большинство программ, выполняющих сканирование на уязвимости, работает следующим образом:

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

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

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

4. Генерирует отчёты на базе собранных при сканировании сведений , описывая уязвимости.

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

Отличия в работе разных программ

Некоторые сканеры разделяют уязвимости по уровню угрозы.

Например, система NetSonar делит их на сетевые, способные воздействовать на роутеры, поэтому более серьёзные, и локальные, влияющие на рабочие станции.

Internet Scanner разделяет угрозы на три степени – низкую, высокую и среднюю.

Эти же два сканера имеют ещё несколько отличий.

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

Причём, для первых выдаётся максимальное количество цифр, для руководства – красиво оформленные графики и диаграммы с небольшим количеством деталей.

В составе создаваемых сканерами отчётов есть рекомендации по устранению найденных уязвимостей.

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

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

Действия администратора по обнаружению уязвимостей

Для поиска «дыр» в безопасности администратор может руководствоваться тремя алгоритмами.

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

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

Способ №3 предполагает использование всех трёх механизмов (причём, с правами и администратора, и пользователя) и попытку устранить уязвимости на отдельных компьютерах. Из-за низкой скорости и риска вывести из строя программное обеспечение применяют этот метод реже всего – в основном, при наличии серьёзных доказательств наличия «дыр».

Возможности современных сканеров

Основными требованиями к программе-сканеру, обеспечивающей проверку системы и её отдельных узлов на уязвимости, являются:

  • Кроссплатформенность или поддержка нескольких операционных систем. При наличии такой особенности можно выполнять проверку сети, состоящей из компьютеров с разными платформами. Например, с несколькими версиями Windows или даже с системами типа UNIX.
  • Возможность сканировать одновременно несколько портов – такая функция заметно уменьшает время на проверку.
  • Сканирование всех видов ПО, которые обычно подвержены атакам со стороны хакеров. К такому программному обеспечению относят продукцию компании Adobe и Microsoft (например, пакет офисных приложений MS Office).
  • Проверку сети в целом и отдельных её элементов без необходимости запускать сканирование для каждого узла системы.

Большинство современных сканирующих программ имеют интуитивно понятное меню и достаточно легко настраиваются в соответствии с выполняемыми задачами.

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

После получения отчётов сканер позволяет администратору запускать исправление угроз.

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

Сканеры уязвимостей сети

Ассортимент программ-сканеров на современном рынке ПО достаточно большой.

Все они отличаются друг от друга функциональностью, эффективностью поиска уязвимостей и ценой.

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

GFI LanGuard

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

Одним из таких приложений, обеспечивающих безопасность сети и отдельных компьютеров, является GFI LanGuard, к особенностям которого относят:

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

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

Эта особенность и другие преимущества GFI LanGuard позволяют ему находиться на верхних строчках рейтингов программ для поиска сетевых уязвимостей.

При этом стоимость использования сканера сравнительно небольшая и доступна даже небольшим компаниям.

Nessus

Программу Nessus впервые выпустили 20 лет назад, но только с 2003-го года она становится платной.

Монетизация проекта не сделала его менее популярным – благодаря эффективности и скорости работы каждый шестой администратор в мире применяет именно этот сканер.

К преимуществам выбора Nessus относят:

  • постоянно обновляемую базу уязвимостей;
  • простую установку и удобный интерфейс;
  • эффективное обнаружение проблем с безопасностью;
  • использование плагинов, каждый из которых выполняет свою задачу – например, обеспечивает сканирование ОС Linux или запускает проверку только заголовков.

Дополнительная особенность сканера – возможность использования тестов, созданных пользователями с помощью специального программного обеспечения. В то же время у программы есть и два серьёзных недостатка. Первый – возможность выхода из строя некоторых программ при сканировании с помощью метода «имитации атак», второй – достаточно высокая стоимость.

Symantec Security Check

Программа Security Check является бесплатным сканером компании Symantec.

Среди её функций стоит отметить поиск не только уязвимостей, но и вирусов – включая макровирусы, трояны и интернет-черви. Фактически, приложение состоит из 2 частей – сканера Security Scan, обеспечивающего безопасность сети, и антивируса Virus Detection.

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

XSpider

Сканер XSpider выпускается компанией Positive Technologies, представители которой утверждают, что программа не только обнаруживает уже известные уязвимости, но способна найти ещё не созданные угрозы.

К особенностям приложения относят:

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

Также стоит отметить, что стоимость использования сканера более доступна по сравнению с программой Nessus. Хотя и выше, чем у GFI LanGuard.

QualysGuard

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

Разработчик продукта, фирма Qualys, Inc., поставляет программу сотням тысяч потребителей, в том числе и половине крупнейших компаний мира.

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

Программное обеспечение позволяет сканировать корпоративные веб-сайты, отдельные компьютеры и сеть в целом.

Результатом сканирования становится отчёт, автоматически отсылаемый администратору и содержащий рекомендации по устранению уязвимостей.

Выводы

С учётом широкого ассортимента приложений для сканирования сети и её узлов на уязвимости, существенно облегчается работа администратора.

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

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

Проблема эпидемии сетевых червей актуальна для любой локальной сети. Рано или поздно может возникнуть ситуация, когда в ЛВС проникает сетевой или почтовый червь, который не детектируется применяемым антивирусом. Сетевой вирус распространяется по ЛВС через не закрытые на момент заражения уязвимости операционной системы или через доступные для записи общие ресурсы. Почтовый вирус, как следует из названия, распространяется по электронной почте при условии, что он не блокируется клиентским антивирусом и антивирусом на почтовом сервере. Кроме того, эпидемия в ЛВС может быть организована изнутри в результате деятельности инсайдера. В данной статье мы рассмотрим практические методики оперативного анализа компьютеров ЛВС с применением различных средств, в частности с помощью авторской утилиты AVZ.

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

В случае обнаружения эпидемии или некой нештатной активности в сети администратор должен оперативно решить минимум три задачи:

  • обнаружить зараженные ПК в сети;
  • найти образцы вредоносной программы для отправки в антивирусную лабораторию и выработки стратегии противодействия;
  • принять меры для блокирования распространения вируса в ЛВС и его уничтожения на зараженных компьютерах.

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

Рассмотрим более подробно решение каждой из поставленных задач.

Поиск зараженных ПК

Для поиска зараженных ПК в сети можно применять как минимум три методики:

  • автоматический удаленный анализ ПК - получение информации о запущенных процессах, загруженных библиотеках и драйверах, поиск характерных закономерностей - например процессов или файлов с заданными именами;
  • исследование трафика ПК с помощью сниффера - данный метод очень эффективен для отлова спам-ботов, почтовых и сетевых червей, однако основная сложность в применении сниффера связана с тем, что современная ЛВС строится на базе коммутаторов и, как следствие, администратор не может осуществлять мониторинг трафика всей сети. Проблема решается двумя путями: запуском сниффера на маршрутизаторе (что позволяет осуществлять мониторинг обмена данными ПК с Интернетом) и применением мониторинговых функций коммутаторов (многие современные коммутаторы позволяют назначить порт мониторинга, на который дублируется трафик одного или нескольких портов коммутатора, указанных администратором);
  • исследование нагрузки на сеть - в данном случае очень удобно применять интеллектуальные коммутаторы, которые позволяют не только оценивать нагрузку, но и удаленно отключать указанные администратором порты. Данная операция существенно упрощается при наличии у администратора карты сети, на которой имеются данные о том, какие ПК подключены к соответствующим портам коммутатора и где они расположены;
  • применение ловушек (honeypot) - в локальной сети настоятельно рекомендуется создать несколько ловушек, которые позволят администратору своевременно обнаружить эпидемию.

Автоматический анализ ПК в сети

Автоматический анализ ПК можно свести к трем основным этапам:

  • проведение полного исследования ПК - запущенные процессы, загруженные библиотеки и драйверы, автозапуск;
  • проведение оперативного обследования - например поиск характерных процессов или файлов;
  • карантин объектов по определенным критериям.

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

  1. Поместить AVZ в открытую для чтения сетевую папку на сервере.
  2. Создать в этой папке подкаталоги LOG и Qurantine и разрешить пользователям запись в них.
  3. Запустить AVZ на компьютерах ЛВС при помощи утилиты rexec или логон-скрипта.

Запуск AVZ на шаге 3 должен производиться при таких параметрах:

\\my_server\AVZ\avz.exe Priority=-1 nw=Y nq=Y HiddenMode=2 Script=\\my_server\AVZ\my_script.txt

В данном случае параметр Priority=-1 понижает приоритет процесса AVZ, параметры nw=Y и nq=Y переключают карантин в режим «сетевой запуск» (в этом случае в папке карантина для каждого компьютера создается подкаталог, имя которого совпадает с сетевым именем ПК), HiddenMode=2 предписывает запретить пользователю доступ к GUI и управлению AVZ, и, наконец, самый важный параметр Script задает полное имя скрипта с командами, которые AVZ выполнит на компьютере пользователя. Скриптовый язык AVZ достаточно прост для использования и ориентирован исключительно на решение задач обследования компьютера и его лечения. Для упрощения процесса написания скриптов можно использовать специализированный редактор скриптов, который содержит оперативную подсказку, мастер создания типовых скриптов и средства проверки корректности написанного скрипта без его запуска (рис. 1).

Рис. 1. Редактор скриптов AVZ

Рассмотрим три типовых скрипта, которые могут пригодиться в ходе борьбы с эпидемией. Во-первых, нам потребуется скрипт для исследования ПК. Задача скрипта - произвести исследование системы и создать протокол с результатами в заданной сетевой папке. Скрипт имеет следующий вид:

ActivateWatchDog(60 * 10);

// Запуск сканирования и анализа

// Исследование системы

ExecuteSysCheck(GetAVZDirectory+

‘\LOG\’+GetComputerName+’_log.htm’);

//Завершение работы AVZ

В ходе выполнения данного скрипта в папке LOG (предполагается, что она создана в каталоге AVZ на сервере и доступна пользователям для записи) будут создаваться HTML-файлы с результатами исследования компьютеров сети, причем для обеспечения уникальности в имя протокола включается имя исследуемого компьютера. В начале скрипта располагается команда включения сторожевого таймера, который принудительно завершит процеcc AVZ через 10 минут в случае, если в ходе выполнения скрипта возникнут сбои.

Протокол AVZ удобен для изучения вручную, однако для автоматизированного анализа он мало пригоден. Кроме того, администратору часто известно имя файла вредоносной программы и требуется только проверить наличие или отсутствие данного файла, а при наличии - поместить в карантин для анализа. В этом случае можно применить скрипт следующего вида:

// Включение сторожевого таймера на 10 минут

ActivateWatchDog(60 * 10);

// Поиск вредоносной программы по имени

QuarantineFile(‘%WinDir%\smss.exe’, ‘Подозрение на LdPinch.gen’);

QuarantineFile(‘%WinDir%\csrss.exe’, ‘Подозрение на LdPinch.gen’);

//Завершение работы AVZ

В этом скрипте задействуется функция QuarantineFile, которая совершает попытку карантина указанных файлов. Администратору остается только проанализировать содержимое карантина (папка Quarantine\сетевое_имя_ПК\дата_каратина\) на наличие помещенных в карантин файлов. Следует учесть, что функция QuarantineFile автоматически блокирует помещение в карантин файлов, опознанных по базе безопасных AVZ или по базе ЭЦП Microsoft. Для практического применения данный скрипт можно усовершенствовать - организовать загрузку имен файлов из внешнего текстового файла, проверять найденные файлы по базам AVZ и формировать текстовый протокол с результатами работы:

// Поиск файла с указанным именем

function CheckByName(Fname: string) : boolean;

Result:= FileExists(FName) ;

if Result then begin

case CheckFile(FName) of

1: S:= ‘, доступ к файлу блокируется’;

1: S:= ‘, опознан как Malware (‘+GetLastCheckTxt+’)’;

2: S:= ‘, подозревается файловым сканером (‘+GetLastCheckTxt+’)’;

3: exit; // Безопасные файлы игнорируем

AddToLog(‘Файл ‘+NormalFileName(FName)+’ имеет подозрительное имя’+S);

//Добавление указанного файла в карантин

QuarantineFile(FName,’подозрительный файл’+S);

SuspNames: TStringList; // Список имен подозрительных файлов

// Проверка файлов по обновляемой базе данных

if FileExists(GetAVZDirectory + ‘files.db’) then begin

SuspNames:= TStringList.Create;

SuspNames.LoadFromFile(‘files.db’);

AddToLog(‘База имен загружена - количество записей = ‘+inttostr(SuspNames.Count));

// Цикл поиска

for i:= 0 to SuspNames.Count - 1 do

CheckByName(SuspNames[i]);

AddToLog(‘Ошибка загрузки списка имен файлов’);

SaveLog(GetAVZDirectory+’\LOG\’+

GetComputerName+’_files.txt’);

Для работы данного скрипта необходимо создать в папке AVZ доступные пользователям для записи каталоги Quarantine и LOG, а также текстовый файл files.db - каждая строка данного файла будет содержать имя подозрительного файла. Имена файлов могут включать макросы, наиболее полезные из которых - %WinDir% (путь к папке Windows) и %SystemRoot% (путь к папке System32). Другим направлением анализа может стать автоматическое исследование списка процессов, запущенных на компьютерах пользователей. Информация о запущенных процессах есть в протоколе исследования системы, но для автоматического анализа удобнее применять следующий фрагмент скрипта:

procedure ScanProcess;

S:= ‘’; S1:= ‘’;

// Обновление списка процессов

RefreshProcessList;

AddToLog(‘Количество процессов = ‘+IntToStr(GetProcessCount));

// Цикл анализа полученного списка

for i:= 0 to GetProcessCount - 1 do begin

S1:= S1 + ‘,’ + ExtractFileName(GetProcessName(i));

// Поиск процесса по имени

if pos(‘trojan.exe’, LowerCase(GetProcessName(i))) > 0 then

S:= S + GetProcessName(i)+’,’;

if S <> ‘’ then

AddLineToTxtFile(GetAVZDirectory+’\LOG\_alarm.txt’, DateTimeToStr(Now)+’ ‘+GetComputerName+’ : ‘+S);

AddLineToTxtFile(GetAVZDirectory+’\LOG\_all_process.txt’, DateTimeToStr(Now)+’ ‘+GetComputerName+’ : ‘+S1);

Исследование процессов в данном скрипте выполнено в виде отдельной процедуры ScanProcess, поэтому ее несложно поместить в собственный скрипт. Процедура ScanProcess строит два списка процессов: полный список процессов (для последующего анализа) и список процессов, которые, с точки зрения администратора, считаются опасными. В данном случае для демонстрации в качестве опасного рассматривается процесс с именем ‘trojan.exe’. Информация об опасных процессах добавляется в текстовый файл _alarm.txt, данные обо всех процессах - в файл _all_process.txt. Легко заметить, что можно усложнить скрипт, добавив в него, к примеру, проверку файлов процессов по базе безопасных файлов или проверку имен исполняемых файлов процессов по внешней базе. Подобная процедура применяется в скриптах AVZ, используемых в «Смоленскэнерго»: администратор периодически изучает собранную информацию и модифицирует скрипт, добавляя в него имя процессов запрещенных по политике безопасности программ, например ICQ и MailRu.Agent, что позволяет оперативно проверить наличие запрещенного ПО на изучаемых ПК. Другое применение списка процессов - поиск ПК, на которых отсутствует обязательный процесс, например антивирус.

В завершение рассмотрим последний из полезных скриптов анализа - скрипт автоматического карантина всех файлов, которые не опознаются по базе безопасных AVZ и по базе ЭЦП Microsoft:

// Выполнение автокарантина

ExecuteAutoQuarantine;

Автоматический карантин изучает запущенные процессы и загруженные библиотеки, службы и драйверы, около 45 способов автозапуска, модули расширения браузера и проводника, обработчики SPI/LSP, задания планировщика, обработчики системы печати и т.п. Особенностью карантина является то, что файлы в него добавляются с контролем повторов, поэтому функцию автокарантина можно вызывать многократно.

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

Исследование трафика

Исследование трафика можно проводить тремя способами:

  • вручную при помощи снифферов;
  • в полуавтоматическом режиме - в данном случае сниффер собирает информацию, и затем его протоколы обрабатываются либо вручную, либо некоторым ПО;
  • автоматически при помощи систем обнаружения вторжений (IDS) типа Snort (http://www.snort.org/) либо их программных или аппаратных аналогов. В простейшем случае IDS состоит из сниффера и системы, анализирующей собираемую сниффером информацию.

Система обнаружения вторжений является оптимальным средством, так как позволяет создавать наборы правил для обнаружения аномалии в сетевой активности. Второе ее преимущество состоит в следующем: большинство современных IDS позволяют размещать агенты мониторинга трафика на нескольких узлах сети - агенты собирают информацию и передают ее. В случае же применения сниффера очень удобно пользоваться консольным UNIX-сниффером tcpdump. Например, для мониторинга активности по порту 25 (протокол SMTP) достаточно запустить сниффер с командной строкой вида:

tcpdump -i em0 -l tcp port 25 > smtp_log.txt

В данном случае ведется захват пакетов через интерфейс em0; информация о захваченных пакетах будет сохраняться в файле smtp_log.txt. Протокол сравнительно просто анализировать вручную, в данном примере анализ активности по порту 25 позволяет вычислить ПК с активными спам-ботами.

Применение Honeypot

В качестве ловушки (Honeypot) можно использовать устаревший компьютер, производительность которого не позволяет применять его для решения производственных задач. Например, в сети автора в качестве ловушки успешно применяется Pentium Pro c 64 Мбайт оперативной памяти. На этот ПК следует установить наиболее распространенную в ЛВС операционную систему и выбрать одну из стратегий:

  • Установить операционную систему без пакетов обновлений - она будет индикатором появления в сети активного сетевого червя, эксплуатирующего любую из известных уязвимостей для данной операционной системы;
  • установить операционную систему с обновлениями, которые установлены на других ПК сети - Honeypot будет аналогом любой из рабочих станций.

Каждая из стратегий имеет как свои плюсы, так и минусы; автор в основном применяет вариант без обновлений. После создания Honeypot следует создать образ диска для быстрого восстановления системы после ее повреждения вредоносными программами. В качестве альтернативы образу диска можно использовать системы отката изменений типа ShadowUser и его аналогов. Построив Honeypot, следует учесть, что ряд сетевых червей ищут заражаемые компьютеры путем сканирования диапазона IP, отсчитываемого от IP-адреса зараженного ПК (распространенные типовые стратегии - X.X.X.*, X.X.X+1.*, X.X.X-1.*), - следовательно, в идеале Honeypot должен быть в каждой из подсетей. В качестве дополнительных элементов подготовки следует обязательно открыть доступ к нескольким папкам на Honeypot-системе, причем в данные папки следует положить несколько файлов-образцов различного формата, минимальный набор - EXE, JPG, MP3.

Естественно, что, создав Honeypot, администратор должен отслеживать его работу и реагировать на любые аномалии, обнаруженные на данном компьютере. В качестве средств регистрации изменений можно применять ревизоры, для регистрации сетевой активности можно использовать сниффер. Важным моментом является то, что у большинства снифферов предусмотрена возможность настройки отправки оповещения администратору в случае обнаружения заданной сетевой активности. Например, в сниффере CommView правило предполагает указание «формулы», описывающей сетевой пакет, или задание количественных критериев (отправка более заданного количества пакетов или байт в секунду, отправка пакетов на неопознанные IP- или MAC-адреса) - рис. 2.

Рис. 2. Создание и настройка предупреждения о сетевой активности

В качестве предупреждения удобнее всего использовать сообщения электронной почты, отправляемые на почтовый ящик администратора, - в этом случае можно получать оперативные оповещения от всех ловушек в сети. Кроме того, если сниффер позволяет создавать несколько предупреждений, есть смысл дифференцировать сетевую активность, выделив работу с электронной почтой, FTP/HTTP, TFTP, Telnet, MS Net, повышенный трафик более 20-30 пакетов в секунду по любому протоколу (рис. 3).

Рис. 3. Письмо-оповещение, высылаемое
в случае обнаружения пакетов, соответствующих заданным критериям

При организации ловушки неплохо разместить на ней несколько применяемых в сети уязвимых сетевых служб или установить их эмулятор. Простейшим (и бесплатным) является авторская утилита APS, работающая без инсталляции. Принцип работы APS сводится к прослушиванию множества описанных в ее базе портов TCP и UDP и выдаче в момент подключения заранее заданного или случайно генерируемого отклика (рис. 4).

Рис. 4. Главное окно утилиты APS

На рисунке приведен скриншот, снятый во время реального срабатывания APS в ЛВС «Смоленскэнерго». Как видно на рисунке, зафиксирована попытка подключения одного из клиентских компьютеров по порту 21. Анализ протоколов показал, что попытки периодические, фиксируются несколькими ловушками в сети, что позволяет сделать вывод о сканировании сети с целью поиска и взлома FTP-серверов путем подбора паролей. APS ведет протоколы и может отправлять администраторам сообщения с отчетами о зарегистрированных подключениях к контролируемым портам, что удобно для оперативного обнаружения сканирования сети.

При создании Honeypot полезно также ознакомиться с онлайн-ресурсами по данной теме, в частности с сайтом http://www.honeynet.org/. В разделе Tools данного сайта (http://www.honeynet.org/tools/index.html) можно найти ряд инструментов для регистрации и анализа атак.

Дистанционное удаление вредоносных программ

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

  • по ряду независимых от администратора сети причин образы могут не дойти до антивирусной лаборатории;
  • недостаточная оперативность антивирусной лаборатории - в идеале на изучение образцов и их внесение в базы уходит не более 1-2 часов, то есть в пределах рабочего дня можно получить обновленные сигнатурные базы. Однако не все антивирусные лаборатории работают столь оперативно, и обновления можно ждать несколько дней (в редких случаях - даже недель);
  • высокая работоспособность антивируса - ряд вредоносных программ после активации уничтожают антивирусы или всячески нарушают их работу. Классические примеры - внесение в файл hosts записей, блокирующих нормальную работу системы автообновления антивируса, удаление процессов, службы и драйверов антивирусов, повреждение их настроек и т.п.

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

// Удаление файла

DeleteFile(‘имя файла’);

ExecuteSysClean;

Данный скрипт удаляет один заданный файл (или несколько файлов, так как команд DeleteFile в скрипте может быть неограниченное количество) и затем производит автоматическую чистку реестра. В более сложном случае вредоносная программа может защищаться от удаления (например, пересоздавая свои файлы и ключи реестра) или маскироваться по руткит-технологии. В этом случае скрипт усложняется и будет иметь следующий вид:

// Антируткит

SearchRootkit(true, true);

// Управление AVZGuard

SetAVZGuardStatus(true);

// Удаление файла

DeleteFile(‘имя файла’);

// Включение протоколирования BootCleaner

BC_LogFile(GetAVZDirectory + ‘boot_clr.log’);

// Импорт в задание BootCleaner списка файлов, удаленных скриптом

BC_ImportDeletedList;

// Активация BootCleaner

// Эвристическая чистка системы

ExecuteSysClean;

RebootWindows(true);

Данный скрипт включает активное противодействие руткитам, применение системы AVZGuard (это блокиратор активности вредоносных программ) и системы BootCleaner. BootCleaner - это драйвер, выполняющий удаление заданных объектов из KernelMode в ходе перезагрузки, на ранней стадии загрузки системы. Практика показывает, что подобный скрипт в состоянии уничтожить подавляющее большинство существующих вредоносных программ. Исключение составляют malware, меняющие имена своих исполняемых файлов при каждой перезагрузке, - в данном случае обнаруженные в ходе исследования системы файлы могут быть переименованы. В этом случае потребуется лечение компьютера вручную или создание собственных сигнатур вредоносной программы (пример реализующего сигнатурный поиск скрипта описан в справке AVZ).

Заключение

В данной статье мы рассмотрели некоторые практические методики борьбы с эпидемией ЛВС вручную, без использования антивирусных продуктов. Большинство описанных методик также могут применяться для поиска постороннего ПК и троянских закладок на компьютерах пользователей. При возникновении затруднений с поиском вредоносных программ или созданием скриптов лечения администратор может воспользоваться разделом «Помогите» форума http://virusinfo.info или разделом «Борьба с вирусами» форума http://forum.kaspersky.com/index.php?showforum=18. Изучение протоколов и помощь в лечении осуществляются на обоих форумах бесплатно, анализ ПК ведется по протоколам AVZ, и в большинстве случаев лечение сводится к выполнению на зараженных ПК скрипта AVZ, составленного опытными специалистами данных форумов.

Дополнительно