28.08.2011

Что такое оценка уязвимости? (Часть I)

image

Справочное руководство "Что такое оценка уязвимости?", представленное американской ИБ-компанией Demyo Inc.

Справочное руководство

DemyoInc. – американская ИБ-компания со штаб-квартирой в Майами, Флорида, США

Deymo Inc. проводит всесторонние тестирования на проникновение, оценку уязвимости, реагирование на инциденты и аудит сервисов на соответствие и многое другое. Подробности можно узнать на сайте: www.demyo.com

Цель

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

Что это?

В компьютерной безопасности термин «уязвимость» используется для обозначения недостатка системы, который позволяет атакующему нарушить неприкосновенность системы. Уязвимости могут быть результатом слабых паролей, ошибок в программном обеспечении, неправильных настроек программного обеспечения, компьютерного вируса или вредоносной программы другого типа инъекции скрипт-кода или SQL-инъекции.

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

Уязвимости существовали во все времена, но когда Интернет был на ранней стадии развития, они использовались и эксплуатировались не так часто. СМИ не сообщали новостей о хакерах, которые были отправлены за решётку за «взлом» серверов и кражу ценной информации. В те времена все узлы сети были доверенными, защищённые протоколы (SSH, SCP, SSL) еще не существовали, тем не менее, telnet, FTP и простой текстовый HTTP использовались для передачи важных данных. Тогда никто даже не думал о сниффинге (пассивное прослушивание сети) и ARP-спуфинге (техника атаки, позволяющая перехватывать трафик между хостами).

Оценка уязвимости может быть выполнена по отношению ко многим объектам, не только компьютерным системам/сетям. Например, физические здания могут быть подвергнуты оценке, по результатам которой будет понятно, какие части здания имеют изъяны. Если взломщик может обойти охранника у парадной двери и проникнуть внутрь здания через заднюю дверь – это, определённо, уязвимость. Если он на самом деле сделает это – это эксплойт. Физическая безопасность – один из наиболее важных аспектов, которым нужно придавать значение. Если взломщик получит физический доступ к серверу – сервер уже больше не ваш! Потому что, если сервер украден, атакующему не нужно обходить IDS (система обнаружения вторжений), не нужно обходить IPS (система предотвращения вторжений), не нужно думать над способом, с помощью которого можно передать 10 ТБ данных, – они уже здесь, на сервере. Полное шифрование диска может помочь, но обычно его не используют на серверах. Убедитесь достоверно в том, что на всех ваших ноутбуках проведено FDE (Full Disk Encryption, полное шифрование диска), также известное как WDE (Whole Disk Encryption, шифрование диска целиком).

Заявления типа «ваши системы/сети» уязвимы – не предоставляют никакой ценной информации. Оценка уязвимости без всеобъемлющего отчёта никуда не годится. С использованием автоматических инструментов для сканирования сетей можно создать отчёты работы утилит и разослать их, но всё это не представляет большой ценности, так как отчёт может запросто состоять из тысяч страниц. Гораздо лучше получить «топ-10» уязвимостей из всех имеющихся и создать на их основе отчёт. Отчёт по оценке уязвимости должен в себя включать:

  • Описание уязвимостей и уязвимых систем

Достаточно обнаружить одну критическую уязвимость, и вся сеть будет подвержена риску, это как если одно звено в цепи порвано, и значит, порвана вся цепь:

Рисунок 1: Результат единственной критической уязвимости

Уязвимости должны быть отсортированы сначала по степени важности, а затем по серверам/сервисам. Уязвимости должны быть расположены в начале отчёта и расставлены в порядке убывания критичности, то есть сначала критические уязвимости, затем с высоким уровнем важности, потом со средним и низким. [1]

Отчётность

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

Результатом сканирования могут являться сотни и тысячи результатов, но эти данные невозможно использовать до тех пор, пока они не будут преобразованы в такой вид, который можно будет воспринять. Это означает, что в идеале вы должны иметь возможность сортировать и делать перекрёстные ссылки на данные, экспортировать их в другие программы и форматы (такие как CSV, HTML, XML, MHT, MDB, Excel, Word и/или Lotus), просматривать их различными способами, а также легко сравнивать их с результатами предыдущих сканирований.

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

Фактор «Это с нами не произойдет»

С практической точки зрения, CEO (генеральные директора), CIO (директора по информационным технологиям) и администраторы – обычные люди, и ничто человеческое им не чуждо, включая склонность делать допущения, согласно которым плохие вещи случаются с «другими людьми», но не с нами. Люди, ответственные за решения в организациях, думают, что их компании не являются желанными целями для хакеров. («С чего бы это злоумышленнику желать вторгаться в сеть Widgets, Inc., когда можно атаковать министерство обороны или Microsoft, или кого-нибудь ещё, кто более интересен?»)

Почему оценка уязвимости?

Организации имеют огромные возможности по использованию информационных технологий для увеличения производительности. Обеспечение защиты информации и систем передачи информации будет необходимым фактором для получения преимуществ от использования дополнительных возможностей для увеличения коммуникабельности, скорости и информационных потоков. Тем не менее, никакие меры обеспечения безопасности не будут гарантировать полную защиту от рисков в окружении, в котором производится работа. В сущности, многим организациям потребуется предоставлять более лёгкий доступ пользователям к частям их информационных систем, вследствие чего возрастает потенциальная опасность. Ошибки администратора, например, являются одной из основных причин уязвимостей, которые могут эксплуатироваться начинающим хакером, при этом неважно, находится он вне организации или является инсайдером. Обычное использование инструментов анализа уязвимости наряду с непосредственным реагированием на обнаруженные проблемы снижают этот риск. Из этого следует, что применение оценки уязвимости должно быть стандартным элементом политики безопасности каждого предприятия. Оценка уязвимости используется для того, чтобы обнаружить, какие системы имеют недостатки и произвести соответствующие действия для снижения риска. Некоторые промышленные стандарты, такие как DSS PCI, обязывают организации производить оценки уязвимости их сетей. Давайте кратко посмотрим, что такое соответствие DSS PCI:

Соответствие DSS PCI

PCI DSS расшифровывается как Payment Card Industry Data Security Standard (Стандарт безопасности информации в индустрии платёжных карточек). Этот стандарт был разработан лидирующими компаниями, производящими кредитные карточки для того, чтобы помочь защитить приватные данные кредитных карт, принадлежащих клиентам. До этого каждая компания-производитель кредитных карт имела похожий стандарт защиты данных клиентов на стороне продавца. Любая компания, которая совершает транзакции с использованием кредитных карт, должна соответствовать PCI. Одно из требований соответствия PCI – регулярное тестирование безопасности систем и процессов, что может быть достигнуто с помощью оценки уязвимости. Маленькие компании, которые проводят небольшое количество транзакций, имеют возможность проводить собственную оценку с помощью анкетирования. Крупные компании, которые проводят большое количество транзакций, обязаны проходить независимый аудит. [2]

Тестирование на проникновение против Оценки уязвимости

Известно, что в индустрии безопасности существует некоторая доля замешательства по поводу отличий между тестированием на проникновение и оценкой уязвимости, они часто классифицируются как одно и то же, хотя на самом деле это не так. Тестирование на проникновение звучит более захватывающе, но большинству людей в действительности нужна оценка уязвимости, а не тестирование на проникновение; многие проекты маркируются как тесты на проникновение, хотя фактически они на 100% являются оценкой уязвимости. Тестирование на проникновение, как правило, включают в себя оценку уязвимости, но это лишь один из дополнительных шагов таких тестов. Тестирование на проникновение – это метод оценки безопасности компьютерной системы или сети посредством симуляции атаки злоумышленника. Данный процесс включает активный анализ системы на наличие любых недостатков, технических изъянов или уязвимостей. Этот анализ проводится с позиции потенциального злоумышленника, и будет включать в себя активную эксплуатацию уязвимостей безопасности. Любые обнаруженные проблемы в безопасности будут представлены владельцу системы вместе с оценкой их серьёзности и часто с планом для уменьшения риска или с техническим решением. Оценка уязвимости – это то, что обычно делают большинство компаний, так как системы, которые они тестируют, находятся в активном производственном процессе, и их работа не может быть нарушена активными эксплойтами, которые могут вывести систему из строя. Оценка уязвимости – это процесс определения и квалификации уязвимостей системы. Система, которая изучается, может являться физическим оборудованием, таким как атомная электростанция, компьютерной системой или более крупной системой (например, инфраструктурой системы связи или водной инфраструктурой округа). Оценка уязвимости содержит в себе множество вещей в совокупности с оценкой риска. Оценка обычно содержит в себе следующие шаги:

  1. Каталогизация возможностей и производительности (ресурсов) системы
  2. Определение в количественном выражении ценности и важности ресурсов
  3. Определение уязвимостей или потенциальных угроз для каждого ресурса
  4. Снижение уровня или устранение большинства серьёзных уязвимостей для большинства ценных ресурсов

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

Рисунок 2: Цикл снижения ущерба от уязвимости

Надписи на рисунке 2:

Detection – Определение

Isolation – Изоляция

Remediation – Исправление

Notification – Извещение

Цель оценки уязвимости

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

Рисунок 3: Соотношение Полноценность использования – Распространённость

HIPS – Host-Based Intrusion Prevention System, система предотвращения вторжений на конечных точках

NIDS – Network-Based Intrusion Detection System, сетевая система обнаружения вторжений

AV – Anti-Virus, антивирус

NIPS – Network-Based Intrusion Prevention System, сетевая система предотвращения вторжений

Надписи на рисунке 3:

Firewalls – межсетевые экраны,

Usefulness – полноценность использования

Ubiquity – распространённость

Emergent – редко используемый

Dominant – превалирующий

Esoteric – сложный в использовании

Dormant – исключённый из использования

Построение карты сети

Перед началом сканирования сети мы должны выяснить, какие машины подключены к сети. Большинство сканеров имеют встроенные инструменты для создания карты, это утилита для создания карты сети Nmap, которая запускается скрытно. Nmap Security Scanner (сканер безопасности Nmap) – бесплатная утилита со свободным исходным кодом, которая используется миллионами людей для исследования сети, администрирования, инвентаризации и аудита безопасности. Nmap использует прямые IP-пакеты нестандартным способом для определения хостов, которые доступны в сети, какие сервисы (названия приложений и версии) эти хосты используют, операционные системы, которые запущены, какие типы пакетных фильтров используются. Linux Journal и Info World назвали Nmap «информационным продуктом года в области безопасности». Хакеры в фильмах «Матрица: Перезагрузка» «Крепкий орешек 4» и «Ультиматум Борна» также её использовали. Nmap запускается на всех распространённых компьютерных операционных системах, а также на Amiga. Nmap имеет традиционный интерфейс командной строки:

Рисунок 4: Интерфейс командной строки Nmap

Zenmap – это официальный Nmap Security Scanner GUI (графический интерфейс сканера безопасности Nmap). Это мульти-платформенное (Linux, Windows, Mac OS X, BSD и т.д.) бесплатное приложение с открытым исходным кодом, целью которого является более лёгкое использование Nmap начинающими пользователями, тем не менее, предоставляя расширенный функционал для опытных пользователей Nmap. Часто проводимые сканирования могут быть сохранены в виде профилей для того, чтобы облегчить их неоднократный запуск. Генератор команд позволяет в интерактивном режиме создавать командные строки для запуска Nmap. Результаты сканирования могут быть сохранены и просмотрены позже. Сохранённые результаты сканирования могут подвергаться сравнению с другими результатами для того, чтобы увидеть различия между ними. Результаты недавних сканирований сохраняются в базе данных, по которой организован поиск.

Рисунок 5: Графический пользовательский интерфейс Zenmap

Гордон Лайон (Gordon Lyon) (более известный под ником Fyodor) выпустил Nmap в 1997 году и продолжает координировать процесс разработки. Он также поддерживает такие интернет-сайты, посвящённые безопасности, как Insecure.Org, Nmap.Org, SecLists.Org и SecTools.Org и написал плодотворные исследования по определению установленной операционной системы и скрытому сканированию портов. Он один из основателей проекта Honeynet (сеть ловушек) и соавтор книг «Знай своего врага: Honeynets» и «Похищение сети: Как завладеть континентом». Гордон является президентом CPSR (Computer Professionals for Social Responsibility, компьютерные профессионалы для социальной ответственности), которая продвигает свободные высказывания, безопасность и частную жизнь с 1981 года. [4][5]

Некоторые системы могут быть отсоединены от сети. Очевидно, если система не подсоединена ни к одной сети вообще, это она будет иметь наименьший приоритет для сканирования. Тем не менее, она не должна потеряться во мраке и остаться непросканированной вообще, потому что могут существовать другие недостатки, которые не связаны с сетью, например, firewire (синоним – интерфейс IEEE 1394, стандарт интерфейса для скоростной передачи данных) может быть использован для доступа к системе Windows XP SP2. Эксплойт работает примерно так: злоумышленник подходит к заблокированной станции Windows XP SP2, подсоединяет к fireware-кабель и использует специальные команды для разблокировки заблокированной машины. Эта техника возможна вследствие того, что firewire имеет прямой доступ к ОЗУ. Система примет любой пароль и разблокирует компьютер. [6]

Выбор правильных сканеров

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

Рисунок 6: Архитектура типового сканера

Надписи на рисунке 6:

Vulnerability Database – база данных уязвимостей

User configuration console – пользовательская конфигурационная консоль

Scanning engine – сканирующий движок

Current active scan knowledge base – база знаний текущего активного сканирования

Results repository and report generating – хранилище результатов и создание отчёта

Target – цель

Например, Nessus – известный сканер общего назначения, но сканеры, ориентированные на веб-приложения, такие как HP Web Inspect [7] или Hailstorm [8] проведут работу лучше при сканировании веб-серверов. В идеальной ситуации сканеры не требуются, потому что каждый будет обслуживать хорошо пропатченные и протестированные хосты, роутеры, шлюзы, рабочие станции и сервера. Тем не менее, в действительности мы склонны забывать устанавливать обновления, ставить патчи на систему и/или правильно конфигурировать систему. Вредоносный код всегда будет находить путь в вашу сеть! Если система подключена к сети, значит, что система может быть инфицирована в один из моментов в будущем. Шансы могут быть выше или ниже, в зависимости от уровня обслуживания, который получает система. Но система никогда не будет защищена на 100%. Нет такой вещи, как 100%-ная безопасность, для хорошо обслуживаемой системы может быть 99,9999999999% безопасности, но 100% не будет никогда. Есть шутка про то, что если вы хотите сделать компьютер защищённым, вы должны отключить его от сети и от розетки, а затем положить его в сейф под замок. Систему при этом невохможно будет использовать, но тем не менее она будет защищена не на 100%, потому что мошенники, использующие социальную инженерию, могут позвонить вашим сотрудникам и попросить достать эту систему из сейфа и подключить её обратно к сети. [9]

Централизованное сканирование против Локального сканирования

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


Централизованное управление и доступ

Децентрализованное сканирование

Преимущества

Легко контролировать

Ответственные за сканирование могут проводить его, когда им удобно

Недостатки

Медленно, большинство сканирований должно быть поставлено в очередь

Часто невозможно отслеживать обновления сканеров

Локальное сканирование с проверкой в виде централизованного сканирования. Центральное сканирование подходит для проверочного аудита. Возникает вопрос – должны ли мы сканировать локально или централизованно? Ответ – надо использовать оба типа. Центральные сканирования дают общую картину в сети. Локальные сканирования могут дать лучшую видимость в локальной сети. Сканеры, запускаемые централизованно, используются как основа. Сканеры, запускаемые локально – ключ к снижению уязвимости. Сканирующие утилиты должны поддерживать обе методологии. Ответственные за сканирование должны быть наделены полномочиями контролировать ситуацию в зоне своей ответственности и приводить политики в исполнение. Так что будет являться целью хакеров? Скрипт-кидди (хакеры, использующие инструменты, написанные другими людьми, не понимая при этом механизмов их работы) будут нацелены на легко эксплуатируемую систему, тогда как опытные хакеры могут быть нацелены на некоторые локальные сети/организации:

Кто является целью?

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

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

Данная публикация является первой частью справочного руководства “Что такое оценка уязвимости?” Во второй части будут рассмотрены стратегии эшелонированной защиты, инструменты для оценки уязвимости, меры, препятствующие сканированию сети, и многое другое.

Список цитированной литературы

  1.  http://en.wikipedia.org/wiki/Vulnerability_assessment
  2.  www.pcisecuritystandards.org
  3.  www.darknet.org.uk/2006/04/penetration-testing-vs-vulnerability-assessment/
  4.  http://en.wikipedia.org/wiki/Gordon_Lyon
  5.  http://www.nmap.org
  6.  http://en.wikipedia.org/wiki/FireWire
  7.  http://www.scmagazineus.com/HP-WebInspect-77/Review/2365/
  8.  http://www.cenzic.com/products/cenzic-hailstormPro/
  9.  http://en.wikipedia.org/wiki/Social_engineering_(computer_security)
  10.  http://en.wikipedia.org/wiki/Defense_in_Depth_(computing)
  11.  http://www.sectools.org
  12.  http://en.wikipedia.org/wiki/White_hat_(computer_security)
  13.  http://en.wikipedia.org/wiki/Grey_hat
  14.  http://www.spamhaus.org
  15.  http://www.spamcop.net
  16.  http://en.wikipedia.org/wiki/Stateful_firewall
или введите имя

CAPTCHA
04-09-2011 17:45:17
Отличная статья!
0 |
AngryWhack
23-09-2011 18:02:38
Классная статья! Вспонил кое-какие моменты)
0 |
Fanatic
02-10-2011 15:17:07
Спасибо за хорошую статью.
0 |