Важность проблемы сетевой безопасности мало у кого вызывает сомнения. Многочисленные взломы, сетевые атаки, иные разнообразные преступления в сфере высоких технологий никому уже не в новинку. Однако не все знают, что помимо прямого ущерба при взломе системы, связанного с хищением данных или несанкционированным использованием ресурсов, владельцу взломанной системы угрожает и косвенный: если система была использована как стартовая площадка для атаки, его могут привлечь к уголовной ответственности за несоблюдение необходимых мер защиты от взломщиков.
Методики взлома систем постоянно совершенствуются. Обнаруживаются новые уязвимые места в программном обеспечении, забывается об устранении уже известных. Традиционные меры защиты — брандмауэры и сетевые системы обнаружения вторжения (Network Intrusion Detection System, NIDS) — не всегда способны предотвратить сетевую атаку. А результат успешно осуществленной атаки — взлом системы.
Для надежной защиты необходимо иметь представление об инструментарии и методах взломщиков.
Типичные сценарии атак
Атака на определенную систему или сеть
Она состоит из трех фаз: пассивное исследование, интенсивное исследование, вторжение.
На первой фазе взломщик собирает открытую информацию об исследуемой системе. Определяются содержимое DNS-зон, доступные сетевые сервисы, например Web- и FTP-серверы. Выясняются имена почтовых ящиков. Делается запрос обслуживающему персоналу об используемом программном и аппаратном обеспечении. Изучаются публикации о компании в открытых источниках. В этот период поведение взломщика ничем не отличается от поведения обычного любознательного пользователя.
На стадии интенсивного исследования взломщик сканирует интересующие его системы, чтобы определить доступность сетевых сервисов. Классифицируются тип и версии операционных систем, сетевых сервисов и протоколов. Выясняется конфигурация брандмауэров. Определяется структура атакуемой сети. Исследуются настройки сетевых сервисов. Прослушивается доступный сетевой трафик с целью перехвата конфиденциальной информации. На данном этапе системы обнаружения вторжения могут показать, что некий сетевой исследователь «дергает ручки дверей», но не пытается войти. Сам факт сканирования системы не является предосудительным. К тому же «сетевой исследователь» может использовать распределенное сканирование, исследуя систему с нескольких хостов (или только имитируя запросы с других хостов), либо применить протяженное по времени сканирование системы, что затрудняет однозначное обнаружение факта ее исследования.
Далее следует вторжение. На основании полученных при исследовании данных взломщик осуществляет сетевую атаку. Если это не атака по подбору паролей, которая может занять длительное время, а атака на определенное уязвимое место используемого сетевого сервиса, то предположим, что она удалась. Теоретически системы обнаружения вторжения должны определить по сигнатуре сетевых пакетов начало атаки, блокировать ее или известить администратора сети. На практике этому препятствуют в основном два обстоятельства:
- вероятное отсутствие описания (сигнатуры) применяемой атаки в базе данных системы обнаружения вторжения;
- недостаток мощности системы обнаружения вторжения. При большом потоке данных без существенной потери скорости передачи возможна проверка только части трафика.
Как видим, даже при наличии системы обнаружения вторжения грамотно спланированная атака имеет серьезные шансы на успех. Но идентифицируемый на этой фазе нападения «сетевой исследователь» однозначно определяется как взломщик — со всеми вытекающими для него последствиями.
Атака на определенное уязвимое место
В этом случае взломщик исследует все доступные системы на наличие конкретной «дыры». После обнаружения системы с данным уязвимым местом взломщик осуществляет атаку, что примерно соответствует третьей фазе предыдущего сценария.
Для предотвращения взлома перед администратором системы, кроме задачи построения традиционной сетевой защиты (брандмауэр плюс сетевая система предупреждения вторжения), стоит еще одна — среди множества обычных пользователей сетевых сервисов определить взломщика и предупредить его действия. Отсюда вытекает другая проблема. Не «застукав» взломщика на месте преступления (т. е. пока он не атаковал), его нельзя однозначно классифицировать как «преступника». Позволить ему напасть на рабочую систему? Но если он атакует неисправленное уязвимое место, такой эксперимент приведет к «летальному исходу». В данном случае один из возможных вариантов решения — использование обманных систем, программ-ловушек (deception systems).
Обманные системы имитируют уязвимые сетевые сервисы. Принцип их действия: кто схватил приманку, тот и враг. В то время как взломщик радостно лезет через найденную «дыру» в «горшок за медом», идет запись в лог-файлы, рассылаются письма администраторам, пищат пейджеры, ревут сирены, выезжают опергруппы и т. д. по сценарию .
Ассортимент ловушек
Deception ToolKit
Распространяется в исходных текстах в tgz-архиве.
Текущая версия 0.8.
Размер дистрибутива 316 Кбайт.
Поддерживаемые операционные системы - Unix/Linux.
Ведущий разработчик Фред Кохен.
Deception ToolKit (DTK) — набор perl-сценариев, имитирующих работу распространенных сетевых сервисов (Telnet, SSH, FTP, DNS, POP и т. д.). Поддерживаются наиболее распространенные методы исследования систем, предоставлена возможность программирования поведения ложного сервиса с имитацией какого-либо вида уязвимости. Система проста в установке и прозрачна в управлении. Сохраняемые в лог-файлах данные позволяют получить исчерпывающую информацию о деятельности взломщика.
Просмотр записей DTK о попытке сканирования системы |
Fakebo
Распространяется по лицензии GNU public license в исходных текстах и в виде уже откомпилированных исполнительных файлов.
Текущая версия 0.4.1.
Размер дистрибутива 106 Кбайт.
Поддерживаемые операционные системы - Solaris/Linux/Windows.
Ведущий разработчик Владко Костюржак.
Fakebo имитирует работу серверных частей «троянских» программ Back Orifice и Netbus. При попытке установить соединение система проводит трассировку (определение маршрута) хоста, откуда исходит запрос, и сохраняет данные обо всех попытках установить соединение, выдавая неудачливому взломщику предупреждающее сообщение о регистрации его действий.
Iptrap
Распространяется по лицензии GNU general public license в исходных текстах в tgz-архиве.
Текущая версия 0.3.
Размер дистрибутива 84 Кбайт.
Поддерживаемые операционные системы - Unix/Linux.
Разработчик Фрэнк Дэнис.
При запуске программы указывается список прослушиваемых портов. При попытке установления соединения Iptrap блокирует хост, используя внешний брандмауэр (iptables/ipchains). Включена поддержка протокола IPv6.
Honeyd
Распространяется по лицензии GNU general public license в исходных текстах в tgz-архиве.
Текущая версия 0.5.
Размер дистрибутива 265 Кбайт.
Поддерживаемые операционные системы - OpenBSD, FreeDsd, GNU/ Linux, Solaris.
Разработчик Нильс Провос.
Программа позволяет создавать виртуальные хосты в сети (теоретически до 65 535 виртуальных хостов с одного физического адреса). Они могут быть сконфигурированы для выполнения произвольных сервисов и способны имитировать различные версии операционных систем. Сканеры nmap и xprobe подтвердят это. Любой тип сервиса на виртуальной машине моделируется согласно простому файлу конфигурации. В качестве альтернативы можно использовать какой-либо сервис реальной системы. Honeyd позволяет создать целую виртуальную сеть со своей топологией, коллизиями, потерями пакетов — в общем, с полным ощущением реальности.
Размещение ловушек
Размещайте сервисы ловушек на рабочих машинах вместе с рабочими сервисами. Создавайте специальные серверы, полностью имитирующие уязвимые для атаки рабочие машины. Данные о польстившихся на легкую добычу используйте в защите всех машин своей сети. Часто меняйте имитацию уязвимых мест в сервисах. Размещать ловушки надо как по периметру сети, так и внутри нее в доверенной зоне.
Принятие решений при обнаружении атаки
Для успешного противодействия злоумышленникам не обойтись без четкого сценария действий при обнаружении атаки. Он зависит от специфики защищаемой сети или системы, но несколько общих действий необходимо предпринять в любом случае:
- Назначить персонал, ответственный за реагирование на производимую атаку, и распределить зоны ответственности.
- Определить возможные меры противодействия атаке, сформулировать, при каких условиях нужно ее блокировать, а при каких следует позволить ей продолжаться (например, чтобы собрать максимум данных о взломщике и его действиях для возбуждения уголовного дела).
- Создать прозрачную и четкую схему аудита сетевой защиты и мониторинга сетевой активности.
- Отработать вопросы взаимодействия со сторонними организациями: провайдерами, клиентами вашей сети, с соответствующими подразделениями силовых структур, публичными организациями типа CERT, FIRST или RU-CERT (см. врезку "Информационные ресурсы").
- Следить за соответствием применяемых процедур по мониторингу, аудиту, противодействию сетевым атакам, текущему состоянию защищаемых систем и сетей.
Есть и еще целый ряд организационных и технических моментов, на которые необходимо обратить внимание.
Аудит защиты
Несомненно, перед установкой ловушек для взломщиков нужно устранить все известные на данный момент слабые места в сетевой защите. Иначе она будет ненадежной и комичной.
Физическая безопасность оборудования
Следует принять меры по ограничению допуска персонала и посторонних к оборудованию. Немногого стоят усилия по сетевой защите, если кто-то может легко украсть, например, диск с данными.
Работа с кадрами
Постулат «кадры решают все» всегда был и остается актуальным. Никакое оборудование и программное обеспечение не заменит профессиональный персонал. Кроме того, как показывает статистика, большинство нападений совершается изнутри сети (insider attack), а не извне (outsider attack).
Брандмауэры
Аппаратно-программные средства межсетевой защиты осуществляют контроль и фильтрацию трафика на сетевом уровне (по модели OSI). Фильтрация (разрешение или запрещение) базируется на определенных пользователем правилах. В зависимости от деталей разработки некоторые виды программных персональных брандмауэров могут контролировать сетевую активность на уровне приложений.
Необходимо учитывать, что брандмауэр может не обладать функцией контроля содержимого сетевого трафика. Как следствие, в результате атаки на уязвимый сетевой сервис, доступ к которому открыт в брандмауэре, система окажется взломанной.
Прослушивание сетевого трафика
Прослушивание трафика предоставляет взломщику довольно много информации. Некоторые сервисы (FTP, TELNET, SMTP, HTTP, IMAP, POP, RSH и т. д.) передают по сети между клиентом и сервером незашифрованные данные, которые он может перехватить. Один из вариантов устранения этой проблемы — установка сервисов, поддерживающих криптозащиту: для сетевого терминала — SSH, для передачи файлов — SFTP, для Web-сервисов — SSL, для почты — TLS. Другой вариант — использовать VPN-технологии или шифрование на уровне протокола (проект IPSEC).
Сетевые системы обнаружения вторжения (NIDS)
Система обнаружения вторжения функционирует на сетевом уровне (модель OSI), осуществляет контроль устанавливаемых соединений, анализ структуры и содержимого сетевых пакетов. NIDS может работать как на отдельном компьютере, контролируя свой собственный трафик, так и на выделенном сервере (шлюз, маршрутизатор, зонд), просматривая весь проходящий трафик. При обнаружении атаки NIDS (в зависимости от разработки) может предпринять следующие действия: послать сообщения на e-mail, консоль, пейджер, телефон, факс, SNMP; реконфигурировать брандмауэр или маршрутизатор; блокировать учетные записи; завершить соединения.
Основными проблемами в работе NIDS являются точность определения IP-адресов атакующих при применении некоторых видов атак, а также основательные требования к вычислительным ресурсам сервера, необходимые для обработки потоков данных.
Сканеры безопасности
Сканеры безопасности — профессиональный инструмент изучения сетевой защиты, последний этап в развитии сетевых сканеров. Исследуя выбранную систему, сканер безопасности пытается определить доступные сетевые сервисы. Затем, имитируя хакерские атаки, анализирует устойчивость сервиса к взлому. При определении типа и версии сервиса сканер осуществляет атаку, нацеленную на специфичные для данного сервиса уязвимые места.
По результатам проведенного исследования формируется отчет с описанием обнаруженных явных или потенциальных слабых мест, их анализом и рекомендациями по устранению. Возможны случаи ложного срабатывания, когда сканер сообщает об обнаружении уязвимости, которой на самом деле нет. Не исключена и обратная ситуация. В любом случае для анализа отчета требуется компетентный специалист (см. статью «Сканер безопасности Nessus», размещенную на CD).
Настройки сервисов
Довольно часто причиной неустойчивости системы к взлому являются некорректные настройки используемых сетевых сервисов. Внимательное изучение поставляемой документации и рекомендаций комитета CERT поможет преодолеть эту проблему.
О таких неинтересных вещах, как выбор паролей, контроль целостности файлов, резервное копирование, контроль доступа, знают многие, но почему-то частенько о них забывают.
В трактате Сунь Цзы «Искусство войны» есть такие строки:
«Война — это путь обмана. Поэтому, даже если [ты] способен, показывай противнику свою неспособность. Когда должен ввести в бой свои силы, притворись бездеятельным. Когда [цель] близко, показывай, будто она далеко; когда же она действительно далеко, создавай впечатление, что она близко. Изобрази выгоду, чтобы завлечь его. Сотвори беспорядок [в его силах] и возьми его. Если он полон, приготовься; если он силен, избегай его. Если он в гневе, беспокой его; будь почтителен, чтобы он возомнил о себе. Если враг отдохнувший, заставь его напрячь силы. Если он объединен, разъедини его. Нападай там, где он не приготовился. Иди вперед там, где он не ожидает. Таковы пути, которыми военные стратеги побеждают». Следуйте этому канону воинского искусства, и вы будете неуязвимы.
Информационные ресурсы
Даже когда отчеты сканера безопасности свидетельствуют о надежности исследуемой системы, следует учитывать, что описание уязвимости появляется в базе данных сканера с некоторой задержкой после ее обнаружения. Поэтому необходимо постоянно консультироваться с рядом информационных ресурсов, специализирующихся на вопросах безопасности. Их список приведен ниже.
CERT Coordination Center (CERT/CC) — координационный некоммерческий центр CERT (Computer Emergency Response Team) был организован на базе Software Engineering Institute (SEI) и Defense Advanced Research Projects Agency (DARPA) в 1988 г. как группа реагирования на обнаруженные проблемы в сетевой безопасности (инцидент с вирусом Морриса). В настоящее время является экспертным центром по сетевой безопасности.
Зарегистрироваться в списке рассылки CERT/CC для получения информации по обнаруженным уязвимым местам можно по адресу http://www.cert.org/contact_cert/certmaillist.html.
RU-CERT — Российский центр реагирования на компьютерные инциденты. Основан в 1998 г. Российским НИИ развития общественных сетей.
AUStralian Computer Emergency Response Team (AUSCERT) — национальная команда Австралии и Новой Зеландии по реагированию на инциденты, связанные с компьютерной опасностью.
Forum of Incident Response and Security Teams (FIRST) — центр координации и обмена опытом групп реагирования на инциденты, связанные с компьютерной безопасностью.
L0pht Heavy Industries, UINC, VOID.RU — проекты исследовательских групп по анализу и изучению проблем компьютерной защиты.
Microsoft Security Bulletins — информационные сообщения, касающиеся различных аспектов безопасности программных продуктов компании Microsoft.
Whitehats, L0pht Heavy Industries, UINC,VOID.RU — проекты исследовательских групп по анализу и изучению различных проблем компьютерной защиты.
Полезные ресурсы
Проекты
Honeypot www.project.honeynet.org
Tracking Hackers www.tracking-hackers.com/
Ловушки
Deception ToolKit www.all.net
Fakebo www.cvs.linux.hr/fakebo/
Iptrap www.jedi.claranet.fr
Брандмауэры
Agnitum Ltd. www.agnitum.com
Kerio Technologies, Inc. www.kerio.com
Symantec Corporation www.norton.com
Netfilte/Iptables www.iptables.org
McAfee Security www.mcafee.com
Tiny Software, Inc. www.tinysoftware.com
Dreaming Tree Tech, Inc. www.firewalls.com
Zone Labs, Inc. www.zonelabs.com
Проекты по контролю за сетевым трафиком
Tcpdump www.tcpdump.org
Windump www.netgroup-serv.polito.it/windump/
Etherial www.ethereal.com
OpenSSH www.openssh.org
OpenSSL www.openssl.org
Ssldump www.rtfm.com/ssldump/
IPSEC www.freeswan.org
Ngrep www.ngrep.sourceforge.net
VPNC www.vpnc.org
Сетевые системы обнаружения вторжений (NIDS)
Snort www.snort.org
Группа InterSect Alliance www.intersectalliance.com
Shadow www.nswc.navy.mil/ISSEC/CID/
Shoki shoki.sourceforge.net
NFR www.nfr.net
GrIDS www.seclab.cs.ucdavis.edu/arpa/grids/
RealSecure www.iss.net
NetRanger www.cisco.com
Сетевые сканеры и сканеры безопасности
NGSSoftware www.nextgenss.com
Sara www.www-arc.com/sara/
Nmap www.insecure.org
NSAT nsat.sourceforge.net
GFI Software Ltd. www.gfisoftware.com
Internet Security Systems www.iss.net
eEye Digital Security www.eeye.com
Nessus www.nessus.org
Positive Technologies www.ptsecurity.ru
Safety-Lab www.safety-lab.com
Информационные ресурсы
Проект CERT/CC www.cert.org
Институт SEI www.sei.cmu.edu
Проект RU-CERT www.cert.ru
Проект AUCERT www.auscert.org.au
Проект DARPA www.arpa.mil
Проект FIRST www.first.org
L0pht Heavy Industries www.l0pht.com
Проект UINC www.uinc.ru
Проект VOID.RU www.void.ru
Проект Whitehats www.whitehats.com
MS Bulletins www.microsoft.com/technet/security/default.asp