Содержание статьи
Тестирование на проникновение (penetration testing) — метод оценки безопасности компьютерных систем или сетей средствами моделирования атаки злоумышленника. Для кого-то это хобби, для кого-то работа, для кого-то — стиль жизни. На страницах нашего журнала мы постараемся познакомить тебя с профессией настоящего «этичного» хакера, с задачами, которые перед ним ставятся, и их решениями.
Intro
«Человеческий фактор» — одна из самых распространенных угроз информационной безопасности. Для снижения рисков, связанных с этим обстоятельством, используются различные технические и административные механизмы защиты. Один из них — повышение осведомленности в области ИБ. Сегодня мы с тобой поговорим о такой избитой, на первый взгляд, штуке, как социальная инженерия, а точнее — об услуге, основанной на ней. В рамках корпоративных услуг по анализу защищенности она гордо именуется «оценкой осведомленности пользователей в вопросах информационной безопасности». Как ты наверняка уже догадался, услуга подразумевает под собой проверку того, насколько хорошо сотрудники той или иной компании знакомы с информационной безопасностью, то есть общепринятыми нормами безопасного поведения в интернете. Если совсем все упростить, то можно свести смысл таких работ к следующему: этичный хакер пытается запудрить мозги пользователю, чтобы тот выполнил какое-либо действие, после чего готовит отчет по проделанной работе.
В пентесте
«А при чем тут тестирование на проникновение?» — возможно, спросишь ты. Дело в том, что социальная инженерия может быть использована потенциальным атакующим как метод проникновения в сеть организации. Вспомни Кевина Митника и истории его взломов, многие из которых были построены исключительно на low tech hacking.
В нынешних реалиях отечественной индустрии ИБ подобная услуга оказывается в двух форматах:
- как метод внешнего тестирования на проникновение наряду с техническими методами;
- как отдельный проект, предназначенный исключительно для оценки осведомленности персонала в вопросах ИБ.
Основная разница заключается в организационных вопросах и в отчетной документации.
Тема социальной инженерии — очень благоприятная почва для холиваров, потому что порог вхождения в low tech hacking очень низок. Естественно, «социалка» — это только небольшая часть направления low tech hacking и, наверное, единственная более-менее популярная и востребованная в РФ в качестве услуги.
Давай определимся с тем, что именно подразумевается под «оценкой осведомленности сотрудников». Этичный хакер, используя канал коммуникации с тестируемыми людьми, пытается на них повлиять: мотивирует выполнить какое-либо действие, которое потенциально может нанести ущерб компании заказчика — гипотетически (или нет) нарушить конфиденциальность, целостность или доступность охраняемой информации. Термин «канал коммуникации» в этом случае подразумевает под собой любой способ общения с тестируемым сотрудником. Если канал коммуникации не обговорен заранее, то по умолчанию подразумевается, что это корпоративная электронная почта. Думаю, суть тебе ясна. Давай перейдем к процессу организации подобных работ, и я более подробно опишу каждый из шагов на пути к мастерству в этом непростом деле.
Вводная информация
На этапе общения с заказчиком и заключения договора этичный хакер получает информацию о том, в каком именно формате будут проведены работы, или помогает выбрать этот формат. Исследование может быть как отдельным проектом, так и частью внешнего тестирования на проникновение.
В технической подготовке к проведению подобных работ разницы нет никакой, а в планировании времени — есть. С заказчиком также обсуждается, какой именно канал коммуникации будет использован для контакта с персоналом: корпоративная почта, социальные сети или что-то другое.
В нашем примере в качестве канала коммуникации с тестируемыми сотрудниками была выбрана корпоративная электронная почта. Следующий вопрос, который должен быть рассмотрен, — это состав фокус-групп, в отношении которых будет проводиться тестирование. Существует два основных варианта подбора:
- заказчик сам предоставляет фокус-группы;
- этичный хакер своими силами составляет фокус-группы для рассылки.
Во втором случае заказчик также получает ответ на вопрос, насколько много информации о его работниках можно найти в публичных источниках. Следующий момент — список проверок (эмулируемых атак), которые предполагается провести в рамках запланированных работ. Бывает, что в организации заказчика уже внедрена программа security awareness — мероприятия, направленные на повышение осведомленности сотрудников в вопросах ИБ, неотъемлемую часть которых составляют обучающие материалы. Тогда этичный хакер знакомится с этими документами и на их основе формирует список атак, которые будут выполнены в рамках работ. На начальных этапах внедрения подобных программ обучающий материал обычно содержит основные постулаты безопасной работы в интернете: не открывайте ссылки и приложения от сомнительных адресатов, не вводите свои учетные данные в сомнительные формы и так далее. Если учебные материалы далеки от совершенства или вообще отсутствуют (например, специалисты отдела ИБ только хотят внедрить такую программу), то этичному хакеру непременно придется потрудиться и дать ценные указания на этот счет. В таком случае атаки, которые будут выполнены в рамках работ, стремятся к некоему негласному стандарту. Сегодня мы рассматриваем ситуацию, когда программа повышения осведомленности пользователей в вопросах ИБ отсутствует. В таком случае заказчику будет рекомендован следующий набор атак, отталкиваясь от которых в дальнейшем можно составить обучающий материал:
- фишинг;
- распространение сетевых червей (запуск приложения);
- эксплуатация client-side-уязвимостей (браузеры и так далее).
На то, чтобы обговорить все вопросы с заказчиком, уходит одна встреча, которая может затянуться максимум на пару часов.
Сетевая разведка
Вернувшись на свое рабочее место, беремся за дело: проводим «рекон» (от англ. reconnaissance, разведка) — собираем максимум информации о сотрудниках тестируемой компании. Нас интересуют:
- адреса электронной почты (обговоренный канал коммуникации);
- структура организации;
- сфера деятельности;
- новости компании и отрасли.
Основные источники данных:
- поисковики (Google, Bing, Yahoo);
- профессиональные соцсети (LinkedIn, «Мой круг» и так далее);
- веб-сайт компании.
Обычно этот этап работ занимает от одного дня до трех.
Разработка сценария
После того как сбор информации завершен, этичный хакер начинает подготовку сценариев для каждой из эмулируемых им атак. Разработка сценария, как правило, проходит в несколько этапов:
- Определяемся с типом атаки (например, фишинг).
- Обдумываем то, как будем мотивировать пользователя.
- Разрабатываем текст письма и оформление.
- Продумываем техническую часть рассылки.
Как ты наверняка знаешь из книг по low tech hacking, злоумышленники в своих приемах, чтобы заставить пользователя выполнить те или иные действия, опираются на основные потребности и мотивы человека.
Текст должен разрабатываться с учетом следующих особенностей психики человека:
- интерес (любопытство) пользователя к поднятой теме. Очень распространен интерес к сообщениям личного, интимного характера (или с намеками на него) или кажущаяся легкость получения выгоды, приза или льготы;
- вероятность ущемления личных или профессиональных интересов, чувство опасности, страх, предостережение от угрозы любого характера.
Не стоит забывать и о доверии пользователя к письму — это важный момент. Добиться доверия можно, используя следующие трюки:
- знакомый или авторитетный отправитель, ссылки на такого человека в письме;
- актуальная тема.
Этичный хакер старается максимально приблизить свои тексты к реальности, однако его в данном случае обременяет та самая этичность, не позволяющая вести себя в каких-то моментах жестоко, лицемерно и цинично. Не стоит об этом забывать. На разработку сценариев от начала до конца может уйти несколько дней. Как известно, нет предела совершенству, но в данном случае речь идет о бизнесе, так что придется ставить себе разумные сроки.
Когда сценарии (тексты и оформление писем) подготовлены, пентестер создает документ, который описывает соответствие каждого из сценариев фокус-группам тестируемых пользователей, а также информацию о графике рассылок. Этот документ отправляется заказчику на согласование. Процесс согласования может занять от одного до нескольких дней в зависимости от количества сценариев и степени вовлечения заказчика в этот процесс.
![Пример сценария. Автор — Евгений Гнедин](https://xakep.ru/wp-content/uploads/2015/06/1434926867_f303_reallife.png)
Техническая часть
После того как сценарии согласованы, наступает момент, когда необходимо реализовать техническую часть проекта:
- подготовить домены;
- подготовить фишинговые страницы;
- подготовить эксплойты;
- подготовить нагрузку («троянское» ПО);
- наладить сбор статистики.
Как правило, в рамках фишинга этичный хакер намеревается утащить у пользователя его корпоративные учетные данные. В качестве фишинговой страницы чаще всего используется стандартный шаблон формы авторизации, известной каждому офисному работнику, — шаблон сервисов Microsoft, например Outlook Web Access или Share Point. Увидев перед собой такую страницу, корпоративный пользователь в большинстве случаев думает, что это легитимное приложение и что он исполняет свои рабочие обязанности, вводя учетные данные в форму. Естественно, доменное имя, которое использует этичный хакер, не должно подкачать — выглядеть оно должно максимально легитимно.
![Пример формы для фишинга](https://xakep.ru/wp-content/uploads/2015/06/1434926876_8438_owa.png)
Вот несколько советов по организации рассылок:
- Никогда не ленись при разработке шаблона и оформления рассылаемого письма, будь внимателен.
- Собирай как можно больше информации о целях, это половина успеха «удачной социалки».
- Если тебе что-то кажется подозрительным в созданном письме, исключи это.
- Умело используй SMTP RELAY для подмены адреса отправителя.
- Никогда не забывай о наличии таких штук, как антиспам и антивирус, тестируй все тщательно.
- Собирай как можно больше информации об установленном ПО у тех, кто купился на твою уловку.
- Тщательно все логируй.
- Массовые рассылки неоднозначны — покрывают всех сразу, результативны, но и более заметны.
Статистика
После завершения рассылки наступает момент, когда этичный хакер начинает пожинать плоды своего труда. Или не пожинать. Зависит от того, насколько он хорошо все подготовил. Но мы с тобой отличные хакеры, так что у нас все прошло замечательно и есть «отстуки». Давай разберемся, что именно этичный хакер может использовать в качестве результатов проведенного теста. Естественно, многое зависит от самого сценария и от тех действий, которые пентестер попытался навязать тестируемым. В большинстве случаев мы можем отследить такие действия пользователя:
- переход по ссылке (злоумышленник мог заразить компьютер пользователя, эксплуатируя уязвимость в его браузере);
- скачивание чего-либо с подконтрольного нам ресурса (злоумышленник мог заразить трояном);
- запуск чего-либо, полученного из наших рук (VBScript, Java и подобное) — злоумышленник мог заразить трояном;
- ввод данных в форму на подконтрольном нам ресурсе (фишинг).
Все эти события необходимо логировать. Если есть возможность логировать больше — используй ее. Не забывай о том, что тебе необходимо иметь возможность выявить, какой именно пользователь выполнил действие.
![Лог снифера](https://xakep.ru/wp-content/uploads/2015/06/1434926885_cf5a_logs.png)
Репорт
По результатам сбора и обработки статистики этичный хакер готовит отчет, содержащий информацию о проведенном тестировании. Наиболее интересные данные оформляются в виде графиков. К примеру, соотношение полученных учетных данных к количеству разосланных сообщений. Все это очень наглядно и красиво, заказчикам нравится. Помимо этого, в зависимости от полученного результата этичный хакер готовит описание общей картины, дает рекомендации о том, на что стоит обратить внимание и на какие темы ориентироваться в рамках мероприятий, нацеленных на повышение осведомленности персонала о вопросах ИБ.
![Сводная статистика по результатам](https://xakep.ru/wp-content/uploads/2015/06/1434926893_5546_stats.png)
Outro
Очень часто заказчик хочет знать, кто именно попался на ту или иную уловку. Я никогда не предоставляю подобную информацию. Во-первых, когда кто-то попался, это нормально. Мы проводим тестирование не одного человека, а группы лиц. Соответственно, говорим о ней как о едином целом. Во-вторых, будет несправедливо, если накажут только одного сотрудника, и в лучшем случае его наказание будет выглядеть как дополнительное время, проведенное в офисе за изучением основных принципов безопасной работы в интернете. Будь этичным!
Полезная информация
Общая теория по пентестам
- VulnerabilityAssessment
- Open Source Security Testing Methodology Manual
- The Penetration Testing Execution Standard
Немного практики
В закладки
SE: Теория
- The Social Engineering Framework
- Рекомендации NIST по созданию программы повышения осведомленности и ее тестировании
- Best Practices for Implementing a Security Awareness Program