- •Благодарности
- •Список использованных сокращений
- •От издательства
- •Введение
- •Глава 1. Начало
- •Как провести аудит законно?
- •Методология взлома
- •Резюме
- •Глава 2. Получение информации из открытых источников
- •Введение
- •Что искать?
- •Использование Google для сбора информации
- •Ограничение поиска одним сайтом
- •Поиск файлов определенного типа
- •Поиск определенных частей сайта
- •Google Hacking
- •Поиск информации о людях
- •Архивные данные
- •Netcraft
- •Получение информации о домене
- •Автоматизация процесса
- •FOCA
- •Сбор базы данных адресов e-mail
- •recon-ng
- •Упорядочить информацию
- •Резюме
- •Глава 3. Получение информации от сетевых сервисов
- •Введение
- •Сканирование портов
- •Определение активных хостов
- •UDP-сканирование
- •NMAP
- •Получение информации от DNS-сервера
- •Типы записей
- •Взаимодействие с DNS-сервером
- •MX-записи
- •NS-запросы
- •Перебор имен
- •Перебор обратных записей
- •Передача зоны DNS
- •Получение информации с использованием SNMP
- •Получение информации с использованием NetBIOS
- •Null session
- •Работа с электронной почтой
- •Анализ баннеров
- •Получение информации от NTP-сервера
- •Поиск уязвимостей
- •Резюме
- •Глава 4. Атаки на веб-приложения
- •Знакомство с сookie
- •Межсайтовый скриптинг (XSS)
- •Включение локальных или удаленных файлов
- •SQL-инъекции
- •Резюме
- •Глава 5. Социальная инженерия
- •На кого обратить внимание?
- •Фазы атаки
- •Манипулирование людьми
- •Типы атак
- •Social-Engineer Toolkit
- •Резюме
- •Глава 6. Получаем пароли
- •Основные методы
- •Работа со списками паролей
- •Онлайн-атаки
- •Радужные таблицы
- •Резюме
- •Глава 7. Беспроводные сети
- •Краткий обзор Wi-Fi
- •Bluetooth
- •Резюме
- •Глава 8. Перехват информации
- •Пассивный перехват трафика
- •Активный перехват
- •Резюме
- •Глава 9. Обход систем безопасности
- •Системы обнаружения атак
- •Брандмауэры
- •Приманки
- •Резюме
- •Глава 10. Вредоносные программы
- •Вирусы
- •Черви
- •Шпионы
- •Рекламное ПО
- •Троянские кони
- •Практическая часть
- •Резюме
- •Глава 11. Metasploit Framework
- •Интерфейс
- •Вспомогательные модули
- •Полезная нагрузка
- •Практические навыки
- •Резюме
- •Глава 12. Передача файлов
- •TFTP
- •Загрузка файлов с использованием скриптов
- •Резюме
- •Глава 13. Превышение привилегий
- •Локальное повышение прав в Linux
- •Локальное повышение прав в Windows
- •Повышение привилегий в случае некорректной конфигурации прав доступа
- •Резюме
- •Глава 14. Перенаправление портов и туннелирование
- •Перенаправление портов
- •SSH-туннелирование
- •proxychains
- •Резюме
- •Глава 15. Переполнение буфера
- •Атаки, направленные на переполнение буфера
- •Введение
- •Что такое переполнение буфера?
- •Программы, библиотеки и бинарные файлы
- •Угрозы
- •Основы компьютерной архитектуры
- •Организация памяти
- •Разбиение стека (Smashing the stack)
- •Перезапись указателя фрейма
- •Атака возврата в библиотеку
- •Переполнение динамической области памяти
- •Пример нахождения уязвимости переполнения буфера
- •Резюме
- •Глава 16. Собирая все воедино
- •Стандарт выполнения тестов на проникновение
- •Подготовительная фаза
- •Договор о проведении работ
- •Получение разрешения
- •Сбор данных
- •Анализ уязвимостей
- •Моделирование
- •Эксплуатация уязвимостей
- •Постэксплуатационный этап
- •Отчет
- •Зачистка
- •Введение
- •Глава 17. Личный пример
- •Глава 18. Бумажная работа
- •Политика безопасности
- •Стандарты
- •Процедуры
- •Инструкции
- •Техническая документация
- •Глава 19. Обучение и тренировки
- •Тренировки
- •Глава 20. Защита от утечки информации
- •Глава 21. Брандмауэры
- •Глава 22. Системы обнаружения вторжения (IDS)
- •Глава 23. Виртуальные защищенные сети (VPN)
- •Компоненты виртуальной частной сети
- •Безопасность VPN
- •Создание VPN из компонентов с открытым исходным кодом
- •Заключение
Стандарт выполнения тестов на проникновение 213
и использует ее для дальнейших действий. Во время своих действий атакующий документирует все найденные уязвимости и их потенциальную опасность, для того чтобы в последующем использовать их для атаки и предоставления отчета заказчику.
Серый ящик — в этом случае атакующий изначально обладает некоторым количеством информации. Например, ему могут быть известны версии программного обеспечения или структура сети. Это делается для того, чтобы сократить необходимое для атаки время, ведь у нас сразу же будет возможность узнать о самых критичных точках в сетевой инфраструктуре. В остальном же данный процесс будет похож на предыдущий.
Белый ящик — такое тестирование производится при наличии у атакующего полной информации о своей цели. Данный вид тестирования позволяет наиболее полно оценить ИТ-инфраструктуру и гарантированно обнаружить большую часть проблемных мест. Зачастую такой способ тестирования используется при проведении внутренних аудитов.
При официальном, разрешенном аудите информационных систем существует несколько вариантов проведения тестирования:
Слепое тестирование — не подразумевает наличия у атакующего какой-либо важной информации о цели, однако сотрудники, имеющие отношение к тестируемой инфраструктуре, заранее предупреждаются о нападении.
Двойное слепое тестирование — аудитор также не располагает никакими данными о цели, но о предстоящей атаке знает лишь несколько человек из целевой организации. Большая часть тестов проходит именно по этому сценарию.
Реверсное тестирование — аудитор имеет всю информацию о системе, а сотрудники знают о будущем тесте, но не располагают данными о том, где и когда он будет происходить.
Стандарт выполнения тестов на проникновение
Существует несколько популярных стандартов, по которым обычно выполняются тесты на проникновение. Хотя на практике они и не обязательны к исполнению, однако, используя их, можно сделать свои действия более методичными, избежать типичных ошибок и не упустить из виду важные детали.
Одним из таких стандартов является PETS, разработанный несколькими экспертами по информационной безопасности с целью конкретизации методов и шагов, которые должны предпринимать специалисты по ИБ во время тестирования. Данный стандарт доступен для ознакомления полностью и бесплатно на официальном сайте http://www.pentest-standard.org.
214 Глава 16 • Собирая все воедино
В PETS выделяются семь фаз тестирования:подготовительная фаза;сбор данных;моделирование угроз;анализ уязвимостей;эксплуатация уязвимостей;постэксплуатационная фаза;отчет.
Эти семь фаз отражают все действия, которые должны происходить во время теста на проникновение. PETS — достаточно новый стандарт, однако он постоянно поддерживается, обновляется и изменяется вместе с требованиями к аудитам ИБ.
Прежде чем мы рассмотрим каждую из фаз, стоит сказать о том, что хотя этот стандарт и пытается охватить весь процесс теста на проникновение, однако, как вы заметите, ни один аудит не проходит по стандартной схеме, каждый из них будет чем-то отличаться от других.
Подготовительная фаза
Часто встречаются утверждения о том, что планирование — это залог успеха. И это действительно так, особенно когда речь идет об аудите безопасности. Действительно, для того чтобы удачно провести аудит, необходимо серьезно подготовиться, учесть все нюансы, подобрать нужные инструменты и методологию.
Обычно тест на проникновение начинается со встречи заинтересованных сторон, на которой обсуждаются все необходимые детали, определяются цели и методы, а также люди, которые могут быть вовлечены в дальнейшем. К завершению такой встречи у вас должно сформироваться определенное видение целей и задач предстоящей работы, без этого в конце теста будет практически невозможно определить, выполнили ли вы поставленную задачу. Прежде всего, необходимо определить основные цели атаки, выяснить, что будет подвергаться нападению, а что нет, определить объем и основной тип тестов.
Вот примерный список вопросов, которые должны обсуждаться на таких встречах:Основные виды деятельности целевой организации?
Есть ли какие-либо ограничения, касающиеся определенных видов тестов?Какие данные и системы будут подвергаться тестированию?
Какие результаты должны быть в конце тестирования?Какова будет дальнейшая судьба результатов теста?
Стандарт выполнения тестов на проникновение 215
Каким бюджетом вы располагаете для проведения теста?Какова окончательная цена теста?
Какие ресурсы у вас имеются для тестирования?Какие действия разрешены для проведения теста?Кто будет проинформирован о проведении теста?
Какая информация будет получена о целевой системе перед началом тестирования?
Какой результат можно считать удачным во время проведения теста?
С кем можно контактировать в случае возникновения непредвиденной ситуации?
Необходимо убедиться в том, что все участники встречи прекрасно понимают возможные риски проведения определенных тестов, а также их специфику. Убедитесь, что ваши планируемые действия одобрены и согласованы со всеми участниками. Ниже приведены типичные варианты атак, которые могут проводиться как изолированно, так и в комплексе.
Социальная инженерия. Самым слабым элементом любой системы является человек. Технологии могут помочь контролировать его действия, но не способны полностью исключить этот фактор. Проведение тестов на проникновение при помощи социальной инженерии должно быть включено практически в каждый тест.
Тестирование приложений. Может проводиться отдельно или быть частью общего теста на проникновение. Особый интерес представляют приложения, написанные индивидуально для конкретной организации, и приложения, работающие в нестандартном окружении.
Тестирование физической безопасности. Такие тесты особенно актуальны для правительственных и военных организаций. Во время проведения этих тестов необходимо попытаться получить доступ ко всем сетевым устройствам, находящимся как в главном здании, так и на удаленных локациях.
Инсайдерские атаки. Попытка выдать себя за персону, у которой есть доступ к ка- кому-либо сетевому оборудованию.
Внешние атаки. Попытка взлома сети человеком, находящимся за ее пределами.
Атаки при помощи украденного оборудования. В этом случае атакующий после кражи какого-либо оборудования использует его для дальнейшего нападения.
Следует также определить время и длительность проведения теста. Это очень важно, так как некоторые бизнес-процессы происходят только в определенное время суток. Необходимо соблюсти баланс, ведь тесты с использованием социальной инженерии очень трудно проводить в выходные дни или в нерабочее время. Обя-
216 Глава 16 • Собирая все воедино
зательно обсудите возможные риски и влияние на бизнес-процессы — это поможет вам обезопасить себя в случае непредвиденных ситуаций.
Договор о проведении работ
В случае тестирования сторонней организации всегда необходимо письменно закреплять достигнутые договоренности. В договоре необходимо отразить следующие пункты:
Системы, которые подвернутся тестированию.
Возможные риски на случай наступления непредвиденных ситуаций, а они, как показывает практика, бывают довольно часто.
Временные рамки с указанием дат и часов. Всегда планируйте время с запасом, помните про непредвиденные ситуации.
Данные, которые вы получите перед началом тестирования.
Действия, которые вы совершите при обнаружении уязвимости. Не всегда найденную уязвимость можно поэксплуатировать, но это вы поймете только после попытки провести атаку. Однако не всегда это стоит делать, ведь в некоторых случаях это может привести к выходу из строя критических для заказчика систем. Помните о рисках.
Результаты тестирования — то, в каком виде их получит заказчик и что они должны в себе содержать.
Получение разрешения
Это один из ключевых моментов тестирования сторонней организации. Необходимо получить документальное подтверждение тому, что ответственный человек со стороны организации, имеющий право подписи, утвердил ваш план и дал согласие на проведение таких работ.
Нельзя начинать тесты, получив лишь устное согласие сторон. Без соблюдения такой формальности вы из категории законопослушного специалиста по информационной безопасности автоматически перейдете в разряд киберпреступников. В случае, если вы проводите тесты в той же организации, где и работаете, подтверждение не обязательно должно быть оформлено на бумаге, оно может быть и в виде письма, присланного по электронной почте.
Не стоит пренебрегать бумажным документом, так как в случае возникновения каких-либо проблем он будет служить неоспоримым доказательством вашей невиновности. Также в случае возникновения ситуаций, в которых будет необходимо провести ряд дополнительных, ранее не запланированных работ, необходимо подписать дополнительное соглашение и получить разрешение.