Решаем типичные проблемы безопасности домашних сетей::Журнал СА 3.2007
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Наука и технологии
Подписка
Где купить
Авторам
Рекламодателям
Магазин
Архив номеров
Вакансии
Контакты
   

  Опросы

Какие курсы вы бы выбрали для себя?  

Очные
Онлайновые
Платные
Бесплатные
Я и так все знаю

 Читать далее...

1001 и 1 книга  
20.12.2019г.
Просмотров: 5101
Комментарии: 0
Dr.Web: всё под контролем

 Читать далее...

04.12.2019г.
Просмотров: 6343
Комментарии: 0
Особенности сертификаций по этичному хакингу

 Читать далее...

28.05.2019г.
Просмотров: 7599
Комментарии: 2
Анализ вредоносных программ

 Читать далее...

28.05.2019г.
Просмотров: 7922
Комментарии: 1
Микросервисы и контейнеры Docker

 Читать далее...

28.05.2019г.
Просмотров: 6978
Комментарии: 0
Django 2 в примерах

 Читать далее...

Друзья сайта  

Форум системных администраторов  

sysadmins.ru

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

Архив номеров / 2007 / Выпуск №3 (52) / Решаем типичные проблемы безопасности домашних сетей

Рубрика: Безопасность /  Сетевая безопасность

Иван Максимов

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

Компьютеры уже давно прочно вошли в жизнь простых пользователей, как и доступ в Интернет. Домашние сети объединили вначале соседей, а позже – тысячи пользователей районов. Какие трудности возникают при работе в домашних сетях?

О домашних сетях

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

В настоящее время многие домашние сети больше похожи на MAN (Metropolitan Area Network), так как, объединив десятки тысяч людей с разных концов города, они вышли из рамок «любительских». На данный момент подобных сетей только в Санкт-Петербурге и Москве официально сотни [1, 2], неофициально их гораздо больше.

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

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

Администраторы домашних сетей отреагировали вполне адекватно на возникшие проблемы, открывались зеркала Windows Update, рассылались предупреждения с просьбой установки антивирусов и firewall. Трафик с ресурсов SUS (Microsoft Software Update Services) и WUS (Microsoft Windows Update Services) не учитывался, зараженные машины отключались, но проблемы все равно оставались, с чем же это связано? Чаще всего администратор компании, ответственный за корпоративную сеть, имеет постоянный контакт и «рычаги» воздействия на пользователей. Тогда как в домашних сетях администратор видит своих пользователей зачастую только один раз – в момент прокладки кабеля, и никаких серьезных средств влияния на них не имеет, пользователи предоставлены сами себе. Усугубляет ситуацию и то, что пользователи самостоятельно ухудшают положение, так как им предоставлена свобода действий – установка любого программного обеспечения, операционных систем и желание обмена информацией между «соседями» методом простого открытия доступа к своей машине. Проблема безопасности очень похожа на стандартную, когда пользователь подключен к глобальной сети, но усугубляется многими социальными факторами. Например, в Интернете уже сложно попросить незнакомого человека открыть доступ к своему компьютеру, тогда как в домашних сетях пользователи доверяют соседям из своего района и с удовольствием откроют доступ к своему компьютеру (благополучно забыв потом закрыть его). Администраторы в этой ситуации ничего не могут поделать. Запрещать пользователям обмениваться информацией (блокируя порты соответствующих сетевых служб) означает вероятность потерять клиентов, так как подключиться к Интернету они могут и у любого провайдера, а вот получить доступ к огромному количеству данных на высокой скорости за небольшую плату они могут только в локальной сети.

Итак, можно выделить две проблемы, связанные с безопасностью домашних сетей: социальные и технические.

Социальные

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

Технические и финансовые

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

Итак, разобравшись, можно заметить, что проблемы в основном социального характера, но попытаемся проанализировать и решить некоторые из них технически.

Анализ сети

На примере одной средней домашней сети (приблизительно из 200 пользователей) попробуем выявить ее наиболее слабые места. Для начала просмотрим ее SMB-ресурсы.

Набрав команду:

smbtree -N

в любой Linux/BSD-системе рассмотрим дерево SMB-ресурсов сети (см. рис. 1).

Рисунок 1. Сетевое окружение по протоколу SMB (некоторые уникальные имена машин убраны или переименованы)

Рисунок 1. Сетевое окружение по протоколу SMB (некоторые уникальные имена машин убраны или переименованы)

Как можно заметить, большинство пользователей доверяют друг другу и открывают доступ к своим машинам. Чем это грозит обычным пользователям? Простое открытие SMB-ресурса только для чтения не столь опасно, но если учесть количество найденных уязвимостей в сетевых службах ОС Windows, использующих порты 135, 139, 137, 445, становится понятно, почему корпорация Microsoft в недалеком прошлом очень активно навязывала firewall своей собственной разработки (Windows firewall теперь встроен во все современные ОС от данной корпорации), хотя бы для того, чтобы на начальном этапе эксплуатации ОС пользователи были защищены. Но открывая мастером сетевую папку, ОС запускает соответствующие службы, которые открывают необходимые для работы порты, добавляя в firewall нужные исключения, что сводит на нет начальную блокировку firewall.

Проанализировав несколько пользовательских машин сканером nmap, не было обнаружено ничего удивительного, полный набор стандартных сетевых служб открыт, а углубившись далее, было выяснено, что пользователи, естественно, не обновляли свои ОС – многие классические уязвимости присутствовали. Можно, конечно, во многом обвинить администраторов данной сети, установка WUS или SUS могла бы решить частично проблему, но загрузка всех патчей и сервис паков от Windows 98 до Windows XP (объемом приблизительно с 10 Гб) все же затруднительна. Есть еще она проблема, как убедить пользователей в необходимости обновлять свои системы? Именно последним вопросом мы и займемся.

Портал безопасности

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

Для реализации данной задачи нам понадобится любая Linux/BSD-система, веб-сервер Apache, антивирус ClamAV, сканер безопасности nmap и интерпретатор языка Perl. Для начала создадим все необходимые скрипты, а позже, собрав всех их воедино, создадим макет будущего веб-сайта.

Первое, создадим скрипт, отображающий сетевое окружение по протоколу SMB (адреса машин и открытые на них ресурсы), воспользовавшись упомянутой выше утилитой smbtree из пакета Samba.

#!/usr/bin/perl -w

# Путь к интерпретатору языка Perl

print "Content-Type: text/html; charset=koi8-r\n\n";

# Сообщаем браузеру, что данный тип документа text/html в кодировке koi8-r

$tmp_f="/tmp/$$.txt";

# Создаем временный файл

$smb=`smbtree -N 2>/dev/null | grep "[\\]" > $tmp_f`;

# Выполним команду smbtree для создания дерева SMB-ресурсов и командой grep отфильтруем содержимое вывода,

# результат запишем во временный файл

open (LIST,$tmp_f);

while (<LIST>)

{

print $_;

# Вывод содержимого временного файла

print "<p>";

}

close (LIST);

Рассмотрим скрипт подробнее. Выполняется команда smbtree, ключ -N означает, что программа будет работать, не запрашивая пароль у пользователя для доступа к сетевым ресурсам (фактически доступ к удаленным машинам, используя гостевой вход). Командой grep отфильтруем вывод команды по маске двух символов «\\», далее поток перенаправим не на экран, а в файл «139». Далее построчно читаем созданный файл и выводим строки на экран, после каждой напечатанной строки добавляем тэг «<p>» (для более удобного отображения). Возможно, кто-то спросит, почему бы нам вывод команды smbtree сразу не поместить  в переменную $smb и выводить ее на экран, используя подобную конструкцию <pre>$smb</pre>? (тэг «pre» выведет содержимое переменно SMB без форматирования). Выводя информацию подобным способом, мы не сможем контролировать выходную информацию, используя средства Perl, в будущем можно будет добавить необходимые средства форматирования текста (например, можно создать таблицу или выделить из списка машину клиента).

HTML-код вызова данного скрипта будет выглядеть так:

<a href="/cgi-bin/smbscan.cgi" target="main">SMB scan</a>

Одной из популярных функций порталов, посвященных антивирусам, является on-line-проверка файлов на вредоносные программы.

Создадим подобную функцию, используя свободный антивирус ClamAV.

#!/usr/bin/perl -w

print "Content-Type: text/html; charset=koi8-r\n\n";

use CGI;

# Используем cgi для получения данных с html-формы

$f=new CGI;

$tmp_f="/tmp/$$";

$fn = $f->param('Fl');

# Получаем путь к локальному файлу (указанный в форме)

$fn=~ s/.*[\/\\](.*)/$1/;

# Получаем имя файла, «отсекая» локальный путь (вида c:\xxx)

$fl_h = $f->upload('Fl');

# Используя метод upload, получаем указатель на временный файл, созданного CGI.pm

open (FILE,">$tmp_f");

# Создаем пустой файл

while (<$fl_h>)

{

print FILE;

}

close (FILE);

$vir=`clamscan $tmp_f | grep $tmp_f`;

# Проверка файла антивирусом Clam

$vir=~s/^.*[\\\:]//;

print "$fn $vir";

# Вывод результатов

Рассмотрим работу скрипта. Из полученной формы сохраним файл в директорию tmp. Проверим его антивирусом ClamAV и, так же как и в предыдущем скрипте, выведем пользователю только необходимую информацию, фильтруя вывод утилитой grep (будет показано только имя файла и название вируса, если он заражен). Вся лишняя информация, такая как путь до локального файла и другие описания, будет «отсечена».

HTML-код формы для загрузки и проверки файла на вирус будет выглядеть таким образом:

<form action="/cgi-bin/upload.cgi" target="main" ENCTYPE="multipart/form-data" method=post>

<p><input TYPE="file" NAME="Fl" size="5">

<input TYPE="submit" VALUE="Upload!"> </p>

</form>

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

Необходимо также будет создать связку Samba + ClamAV для фильтрации вирусов на лету. Прочитать, как это сделать, можно в статье «Все ли возможности ClamAV вы используете?» [5]. Таким образом, мы получим простейшую ловушку для вирусов.

Для получения данных о вирусах и времени их появления раскомментируем два параметра в файле конфигурации антивируса ClamAV (/etc/clamd.conf).

Первый, включающий журналирование событий clamd и указание директории журнала:

# Uncomment this option to enable logging.

# LogFile must be writable for the user running daemon.

# A full path is required.

# Default: disabled

LogFile /tmp/clamd.log

Второй, для ведения в журнале записей о времени происходящих событий clamd:

# Log time with each message.

# Default: disabled

LogTime

Сам скрипт вывода статистики выглядит так:

#!/usr/bin/perl -w

print "Content-Type: text/html; charset=koi8-r\n\n";

$searchword="FOUND";

# Переменная с ключевым словом

open (LIST,"/tmp/clamd.log");

while (<LIST>)

{

  if (/\Q$searchword/i)

# Если в данной строке есть совпадения с ключевым словом, то выводим эту строку на экран

 {

 print $_;

  }

print "<p>";

}

close (LIST);

Скрипт читает из файла статистики антивируса ClamAV подготовленные данные и выводит на экран строки, содержащие в себе пометку found (файлы, в которых были найдены вирусы). Фактически скрипт выполняет элементарную команду:

cat /tmp/clamd.log | grep FOUND

HTML-код вызова скрипта:

<a href="/cgi-bin/ack_vir.cgi" target="main">Вирусная активность</a>

Еще одной полезной функций нашего «web security»-ресурса будет возможность сканировать клиента программой nmap.

#!/usr/bin/perl –w

print "Content-Type: text/html; charset=koi8-r\n\n";

$str = $ENV{'REMOTE_ADDR'};

# Записываем переменную среды окружения REMOTE_ADDR в переменную $str

$tmp_f="/tmp/$$";

$scan=`nmap -sT $str > $tmp_f`;

# Сканируем tcp порты удаленной машины, результат запишем во временный файл

open (LIST,$tmp_f);

while (<LIST>)

{

print $_;

print "<p>";

}

close (LIST);

Скрипт, используя переменную среды окружения REMOTE_ADDR, передает ее в качестве параметра IP-адреса клиента сканеру nmap. Производится сканирование только TCP-портов, для полного сканирования программе nmap необходимы права суперпользователя, если это нужно, воспользуйтесь пакетом sudo. Результат работы выводим на экран. Последняя функция, которая понадобится на нашем портале, это установка поискового движка DataParkSearch, но так как мы уже рассматривали движок DataparkSearch в статьях [6, 7], не будем касаться вопросов его установки. Поисковая машина по локальным ресурсам домашней сети должна дополнительно привлечь пользователей к данному ресурсу и, конечно, выполнять свои главные функции – помогать пользователям искать необходимую информацию в домашней сети.

Создав простой макет сайта и добавив соответствующие описание, «верстаем» страницу (см. рис. 2).

Рисунок 2. Портал безопасности локальной сети

Рисунок 2. Портал безопасности локальной сети

Анализ работы портала безопасности

Главная цель данного сайта – донести до пользователей информацию о потенциальных опасностях, подстерегающих их при работе в домашней и глобальной сети. Конечно, простым пользователям безразлично, как выглядит сетевое окружение, как и вирусная активность в сети, и тем более состояние портов на локальной машине. Портал, несомненно, заинтересует продвинутых пользователей, так как именно на данную аудиторию он и рассчитан. Как выяснилось позже, после запуска портала, из всех функций пользователям больше всего понравилось «нормальное сетевое окружение» и возможность искать информацию в домашней сети «как в Интернете». Данный портал, конечно, не панацея от IT-безграмотности пользователей, но на простые вещи, такие как забытые открытые ресурсы, обновление антивируса и т. д., он должен обратить внимание.

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

С другой стороны, любой энтузиаст сможет создать подобный сайт, так как можно заметить, что состоит он из элементарных скриптов, которые базируются на консольных командах Linux/BSD и используют в качестве «клея» Perl, подчеркивая в очередной раз знаменитую пословицу: UNIX – это дружественная система (но вот друзей она тщательно выбирает).

Сам портал, возможно, в будущем необходимо будет улучшать. Несмотря на то что скрипты могут быть написаны на любом языке (достаточно изменить путь в начале скрипта к соответствующему интерпретатору, например #!/bin/bash, или использовать бинарные файлы), считается, что в целях повышения общей безопасности веб-ресурса лучше отказываться от использования консольных команд.

Просмотр SBM-ресурсов можно полностью реализовать на Perl методом простого перебора IP-адресов путем обращения к 139 порту (что, правда, займет значительное время, нежели программа smbtree, работающая 2-4 сек.).

Также можно воспользоваться утилитой smb2www [8], которая входит в большинство систем портов/пакетов и обладает богатым функционалом, хорошим графическим интерфейсом, хотя в то же время достаточно громоздкая.

Проверку на вирусы с помощью антивируса ClamAV также можно реализовать по-иному, либо через сокет (см. параметр LocalSocket в clamd.conf), либо используя модуль с сайта [9] (который при ближайшем рассмотрении также работает с сокетом).

Итоги

Возможно, в будущем, через полгода-год, вы вернетесь к порталу, когда будут учтены пожелания пользователей домашней сети, создан хороший дизайн и произведен «тюнинг» веб-сайта. Из полезных функций, которые могут быть полезны в будущем, стоит создать: HTTP/FTP-сканер ресурсов сети, отображение любимой многими переменной среды окружения x-user-agent, сканер скрытно установленных прокси-серверов, счетчики. Но все это технические аспекты, главное, будут накоплены статистические данные поведения пользователей, но, а пока на этом все. Удачной работы!

Приложение

Сетевые порты, службы и некоторые уязвимости ОС Windows

  • 135 порт TCP/UDP – Microsoft Remoute Procedure Call (ошибки, связанные с переполнением буфера, например – ms03-043);
  • 139 порт TCP – NetBios (ошибки на 139 порту связаны с доступом в систему через NULL сессию и доступом к сетевым ресурсам, например – ms03-026, ms03-39);
  • 445 порт TCP – Microsoft-DS (множественные уязвимости связанные с переполнением буфера ms05-039, ms05-043, ms06-040).

По статистике, наиболее эксплуатируемым портом для получения несанкционированного доступа к ОС семейства windows NT является TCP-порт 445.

Посмотреть статистику по используемым злоумышленниками и вредоносными программами к сетевым службам можно, например, на сайте www.viruslist.ru: «Интернет-атаки 2005 года [3]», «Kaspersky Security Bulletin 2006. Интернет-атаки» [4].

Ловушки для вирусов

Создание ловушек для вирусов на основе ложного ресурса, открытого по протоколу SMB, получило широкое распространение во времена Windows 9X. Ловушки создавались путем создания сетевого ресурса «C» на FDD-дискете с созданными на ней директориями «Windows» и «Program Files». Дополнительно для любителей бесплатного dial-up-доступа в Интернет в папке Windows создавался файл <Имя_пользователя>.pwd (именно в подобных pwd-файлах содержатся плохо зашифрованные пароли dial-up-сессий). Обращение к данному файлу либо журналировалось, либо (ради шутки) в него записывали множество нецензурных высказываний в адрес хакера. Данный вид ловушек получил название «рыбалка». Почему для данных целей использовался FDD-привод, а не другой логический диск? Опять же ради шутки, так как при обращении по сети к подобному ресурсу флоппи-дисковод «издает» характерные звуки, которые получили название «поклевка».

  1. http://grinkod.spb.ru – домашние сети Санкт-Петербурга.
  2. http://www.mosnet.ru – домашние сети Москвы.
  3. http://www.viruslist.com/ru/analysis?pubid=179379988 – интернет-атаки 2005 года.
  4. http://www.viruslist.com/ru/analysis?pubid=204007527 – Kaspersky Security Bulletin 2006. Интернет-атаки.
  5. Авраменко А. Все ли возможности ClamAV вы используете? //Системный администратор, №9, 2005 г. – С. 52-55.
  6. Максимов И. Возможности поискового движка DataparkSearch. //Системный администратор, №5, 2006 г. – С. 80-84.
  7. Максимов И. Тестируем движки поисковых машин. //Системный администратор, №8, 2006 г. – С. 80-85.
  8. http://de.samba.org/samba/ftp/smb2www – сетевой ресурс программы smb2www.
  9. http://www.fpsn.net/products&product=File::Scan::ClamAV – официальная страница модуля File::Scan::ClamAV.

Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru