Тест на проникновение

Последняя пара лет была богата на события, которые резко повысили интерес общества к теме хакерских атак. Скандал со взломом систем демократической партии США, выведение из строя энергетических систем инфраструктуры Министерства финансов и казначейства Украины, вирусы-вымогатели, уже не только шифрующие файлы, но и блокирующие работу промышленного и медицинского оборудования, MIRAL, гигантский ботнет из бытовых устройств, оставивший без связи половину США и Либерию, злоумышленники, массово потрошащие банки, как волки беззащитных овечек… Под ударом даже SWIFT! Хакеры из киношных гиков стали частью реальности миллиардов людей.

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

В этот раз мы решили сосредоточиться исключительно на практических моментах информационной безопасности (ИБ), связанных с компьютерными атаками и непосредственной защитой от них. Для взлома в исполнении «белых шляп», т.е. специалистов, легально имитирующих действия злоумышленников, используется термин «тестирование на проникновение» (penetration test, pentest). За этим термином скрываются сразу несколько направлений исследования защищенности, и в каждом из них работают свои узкие специалисты. В статье мы разберемся, что такое пентест, зачем он нужен и где проходит граница между атакой хакера и тестированием на проникновение.

Пентест по сути своей — это один из видов аудита ИБ. И в этом его главное отличие от реального взлома. Хакер ищет самую короткую дорогу к контролю над системами жертвы. Если на периметре нашлась дыра, злоумышленник сосредотачивается на закреплении и развитии атаки вовнутрь. А пентестер, которому заказали внешнее тестирование сети, должен скрупулезно обследовать хост за хостом, даже если уже найдена целая куча дыр. Если хосты однотипны (например, 1000 одинаковых рабочих станций), исследователь, конечно, может сделать контрольную выборку, но пропускать принципиально отличные системы недопустимо. Наверное, для заказчика это самый простой способ определить некачественный пентест.

Пентест не заменяет полноценный аудит ИБ. Для него характерен узконаправленный взгляд на исследуемые системы. Пентест по сути своей имеет дело со следствиями, а не с причинами недостатков ИБ. Зачем же его вообще проводить? Когда промышленность выпускает новый образец военной техники, инженеры тщательно просчитывают свойства брони, характеристики вооружения, но на военной приемке технику все равно выкатывают на полигон, обстреливают, подрывают и т.д. Эксперимент — критерий истины. Пентест позволяет понять, так ли хорошо, как мы думаем, выстроены у нас процессы ИБ, надежны ли системы защиты, верна ли конфигурация на серверах, понимаем ли мы путь, по которому пойдет реальный хакер. Таким образом, может сложиться впечатление, что пентест необходим компаниям, которые уже основательно вложились в ИБ. В теории это так, но на практике зачастую совсем иначе.

Я вывел для себя такую формулу пентеста:

Исследование — это самая очевидная часть пентеста. Как в кино: странные ребята в худи в ночи громят ИТ-оборону. На деле зачастую все несколько прозаичнее, зато данный образ позволяет пентестерам не соблюдать корпоративный дресс-код.

Отчет — обычно не самая любимая часть работы для пентестеров, но она критически важна. Заказчик работ должен получить детальное описание всех успешных и неуспешных попыток проникновения, понятное описание уязвимостей и, что очень важно, рекомендации по их устранению. К последней части рационально привлекать профильных специалистов по ИБ, потому что знать, как сломать, вовсе не означает знать, как правильно и безопасно это поправить в реальности корпоративной ИТ-инфраструктуры.

И последний компонент, ради которого зачастую и организуется весь пентест, — это шоу. Такой аудит на порядок превосходит любой другой по наглядности, особенно для непрофессионалов. Это лучший способ продемонстрировать недостатки ИБ руководству компании в доступной для неспециалистов форме. Краткое (на паре страниц) Executive Summary со сканом паспорта CEO, титульного листа конфиденциального отчета и базы клиентов может принести для ИБ в компании больше пользы, чем весь 200 страничный отчет, идущий далее. Именно поэтому зачастую пентест заказывают компании, где ИБ до этого толком не занимались, и бизнес, а зачастую и ИТ, не понимают серьезности существующих рисков.

Параметры тестирования

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

Поставленная заказчиком работ цель атаки может сильно отличаться от пентеста к пентесту. Под «просто взломайте нас» обычно подразумевается захват контроля над ИТ-инфраструктурой (права администратора домена, сетевого оборудования), компрометация бизнес-систем и конфиденциальной информации. А бывают узконаправленные пентесты. Например, в рамках сертификации по требованиям безопасности карточных данных PCI DSS целью ежегодного обязательного пентеста является компрометация именно карточных данных. Здесь в первый же день работ сеть банка может быть полностью захвачена, но, если последний бастион с секретными данными не падет, организация успешно пройдет проверку.

Модель знаний о системе определяет стартовую позицию пентестера. От полной информации о системе (White box) до полного ее отсутствия (Black box). Зачастую выделяют и средний вариант (Grey box), когда, например, пентестер имитирует действия непривилегированного пользователя, имеющего некоторые данные о системе. Это может быть рядовой клерк, компания-партнер, клиент с доступом в личный кабинет и т.п. White box — это скорее аудит, а не классический пентест. Применяется в том случае, когда нужно детально изучить защищенность на узком участке. Например, проверяется новый клиентский портал. Исследователю предоставляется вся информация по системе, зачастую исходный код. Это помогает детально изучить систему, но едва ли имитирует реальные атаки. Заказчики Black box пентеста хотят получить полную имитацию атаки хакера, который не обладает инсайдерской информацией о системе.

Модель знаний сильно пересекается с понятием модель нарушителя . Кто нас атакует: внешний хакер, инсайдер, администратор? Деление это очень условно. Компрометация рабочей станции рядового пользователя или подрядчика с технической точки зрения моментально превращает внешнего хакера во внутреннего нарушителя.

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

Виды атак

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

Внешний инфраструктурный пентест — анализ сетевого периметра из Интернета. Пентестер пытается скомпрометировать доступные сетевые сервисы и по возможности развить атаку вовнутрь сети. Многие считают, что это и есть имитация реальной атаки, направленной на проникновение в сеть компании извне. На деле злоумышленники сегодня в 80-90% случаев преодолевают сетевой периметр с использованием методов социальной инженерии. Не нужно ломиться в крепостные стены, если под ними есть замечательный подкоп. Однако часто дырки бывают и тут. Например, недавно мы проводили работы для крупного авиационного завода, в рамках которых еще на этапе автоматического анализа сканер подобрал пароль к системе удаленного управления АСУ ТП. Халатность подрядчика, забывшего отключить удаленный доступ, позволяла хакеру поднять давление в трубопроводах с техническими жидкостями на порядок. Со всеми вытекающими в прямом и переносном смысле.
Такой пентест как осмотр у дантиста: лучше проводить его регулярно, чтобы предупреждать проблемы на ранних стадиях.

Shadow IT

Часто проникновение проходит с использованием систем, которые выпадают из поля зрения ИТ. Все серверы на периметре обновлены, а про IP-телефонию или систему видеонаблюдения забыли. И хакер уже внутри. Для такой инфраструктуры, выпавшей из поля зрения администраторов, есть специальный термин — Shadow IT. По оценке Gartner, к 2020 году до трети всех взломов будут проходить с использованием Shadow IT. На наш взгляд, это вполне реалистичная оценка.

Например, однажды наш пентестер нашел на идеально защищенном периметре банка необновленные системы колл-центра, через которые за 2 дня удалось полностью скомпрометировать все основные банковские АС. Оказалось, что за них отвечал не департамент ИТ, а телефонисты. В другом случае точкой входа для пентеста была сеть секретарей на ресепшн, полностью изолированная от корпоративной. Каково же было удивление заказчика работ, когда через пару дней пентестер отчитался о полном захвате сети. Ему удалось взломать необновленный принтер, залить на него шелл и получить доступ в VLAN управления принтерами. Скомпрометировав их все, пентестер получил доступ во все офисные сегменты компании.

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

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

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

Основными результатами атаки на web-ресурс обычно является компрометация данных из СУБД и возможность атаки на клиентов (например, различные виды XSS находятся на сайтах каждого второго банка). Чуть реже компрометация web-сервера позволяет проникнуть в саму сеть компании, но зачастую, если искомые данные уже скомпрометированы, это может и не потребоваться злоумышленнику.

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

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

Рост интереса к тестированию на устойчивости к DDoS особенно заметен в последние пару лет. Информация о крупных атаках постоянно появляется в прессе, но ими дело не ограничивается. В сегменте розничного интернет-ритейла, например, в пики продаж (перед праздниками) атаки идут практически непрерывно. Что делать с примитивными атаками, направленными на исчерпание канала связи или ресурсов серверов путем отправки огромных объемов трафика, в целом ясно. Интереснее изучить устойчивость ресурса к атакам уровня приложения. Даже один клиент, генерирующий сравнительно небольшое число специфических запросов к web- сайту, может вывести его из строя. Например, специфические запросы в поле поиска по сайту могут полностью положить back-end.

Социальная инженерия, т.е. использование для взлома человеческой невнимательности, беспечности или необученности, сегодня стала самым популярным способом проникновения в сеть компании.

Более того, бытует мнение, что от этого лома нет приема. Этот термин объединяет огромное число техник, включающих рассылку обманных сообщений по почте, телефонное и личное общение для получения доступа на объект или к системам, разбрасывание у офиса компании-жертвы флешек с вредоносным вложением и многое другое.

Атаки на Wi-Fi ошибочно относят к внутреннему пентесту. Если ваш смартфон не ловит корпоративный Wi-Fi за пределами проходной, это не дает гарантий того, что злоумышленники не смогут до него дотянуться. Направленная антенна с ebay стоимостью 100$ позволяла нам проводить работы с расстояния более километра от точки доступа. В рамках пентеста Wi-Fi не всегда рассматривается как точка проникновения в сеть. Чаще он используется для атаки на пользователей. Например, пентестер паркуется у проходной предприятия до начала рабочего дня и разворачивает сеть с тем же именем (SSID), что у корпоративного Wi-Fi. Устройства в сумках и карманах сотрудников пытаются присоединиться к знакомой сети и передают для аутентификации в ней… доменные логин и пароль. Затем пентестер использует эти утечки для доступа к почте пользователей, VPN-серверам и т.д.

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

Условно исследование мобильного приложения можно разделить на 3 компоненты: анализ восстановленного исходного кода на наличие дыр в безопасности, исследование приложения в «песочнице» и анализ методов взаимодействия приложения с сервером (содержание пакетов, API, уязвимости самого сервера). У нас недавно был кейс, когда API серверной части мобильного банковского приложения работало так, что можно было сформировать пакет, вызывающий перевод произвольной суммы денег с любого счета в банке на любой другой счет. И это было не исследование перед стартом приложения — оно уже давно было в продуктиве. Многие мошеннические схемы сегодня также реализуются при помощи мобильных приложений, так как про борьбу со фродом забывают еще чаще, чем про ИБ.

Анализ исходного кода не вполне корректно считать пентестом, особенно если заказчик передает исходные коды на исследование в открытом виде. Это скорее аудит безопасности приложения по модели «белого ящика». Однако эти работы зачастую проводятся совместно с пентестом для обеспечения более высокого уровня обнаружения уязвимостей, поэтому о них стоит упомянуть здесь. Пентест позволяет подтвердить или опровергнуть недостатки, найденные в рамках анализа кода (ведь в конкретной инфраструктуре далеко не все проблемы безопасности реально могут быть проэксплуатированы). Это существенно снижает число ложноположительных находок, которыми грешит анализ кода, особенно автоматизированный. В то же время в результате анализа кода зачастую находятся дыры, о которых пентестер не догадался.

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

Такой пентест как осмотр у дантиста: лучше проводить его регулярно, чтобы предупреждать проблемы на ранних стадиях

Ограничения пентеста

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

В заключение

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

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

70% сайтов имеют уязвимости высокой степени риска, которые приводят к компрометации ресурса и утечки данных.

Penetration test (сокр. pentest) или тест на проникновение - моделирование действий хакера на сайт, с целью получения абсолютно объективной оценки текущего уровня информационной безопасности исследуемого ресурса.

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

Зачем проводить тест на проникновение?

Проведения теста на проникновения решает в первую очередь следующие задачи:

  • выявление недостатков в применяемых клиентом мерах информационной безопасности и оценка возможности их использования нарушителем
  • практическая демонстрация возможности использования уязвимостей (на примере наиболее критических)
  • получение на основе объективных свидетельств комплексной оценки текущего уровня защищенности веб-приложения
  • выработка рекомендаций по устранению выявленных уязвимостей и недостатков с целью повышения уровня защищенности веб-приложения

В большинстве случаев тестирование проходит методом черного ящик (black box).

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

При проведении теста на проникновение используются общепризнанные стандарты и руководства по обеспечению информационной безопасности, такие как:

  • OWASP Testing Guide
  • OWASP Top10
  • Web Application Security Consortium Threat (WASC) Classification
  • Стандарты серии ISO 17799/27000

Проведение работ можно логически разбить на следующие этапы:

1. Сбор и анализ информации

2. Идентификация уязвимостей

3. Реализация атаки на веб-приложение

4. Анализ и составление отчета

5. Устранение уязвимостей

Сбор и анализ информации.

На данном этапе производится сканирование портов исследуемого ресурса, а также идентификация доступных сервисов, служб, средств защиты.

Идентификация уязвимостей.

Сбор и анализ информации об имеющихся уязвимостях в обнаруженных версиях служб, сервисов, скриптах. Выявление способов использования уязвимостей, оценка рисков использования уязвимостей. Тестирование уязвимостей OWASP Top10 (https://www.owasp.org). Анализ и тестирование логики веб-приложений, проверка возможности раскрытияе чувствительных данных, тестирование механизмов проверки входных данных (SQL Injection, XML Injection, XSS, Code Injection, B/H/S overflows) и т.д.

Реализация атаки на веб-приложение.

Проверка выполнение произвольного кода на стороне сервера, получение прав на чтение или запись файлов/бд на сервере, доступ к приватной информации и т.д.

Анализ и составление отчетов.

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

Как должен выглядеть список проверок и тестов?

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

1. «Abuse of Functionality». Злоупотребление функциональными возможностями. Использование функций веб-приложения с целью обхода механизмов разграничение доступа.

2. «Brute Force». Перебор паролей по словарям простых и стандартных паролей.

3. «Directory Indexing» Поиск листинга директорий.

4. «Content Spoofing».Подмена содержания сайта. отображение удаленного

5. «Credential/Session Prediction».Предсказуемое значение идентификатора

сессии позволяет перехватывать сессии других пользователей. Подобные атаки

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

сессии пользователя.

6. «Cross­Site Scripting». Атака на веб­приложение, заключающиеся во внедрении

в выдаваемую веб-­системой страницу вредоносного кода (который будет

выполнен на компьютере пользователя при открытии им этой страницы) и

взаимодействии этого кода с веб-­сервером злоумышленника.

7. «Cross­Site Request Forgery». Подделка межсайтовых запросов. Атака на

посетителей веб­сайта, использующая недостатки протокола HTTP.

8. «HTTP Response Smuggling». Атаки, основанные на некорректной передачи

ответов HTTP.

9. «HTTP Response Splitting». Атаки с разделением ответов HTTP.

10. «HTTP Request Smuggling». Атаки некорректной передачи запросов HTTP.

11. «HTTP Request Splitting». Атаки с разделением запросов HTTP.

12. «LDAP Injection». Внедрение операторов LDAP ­ атака на веб-сервер,

создающаю запросы к службе LDAP на основе данных, вводимых

пользователем.

13. «Null Byte Injection». Обход проверки фильтра веб-­инфраструктуры, путем

добавления в url символа нулевого байта, с целью изменения логики

веб-­приложения и получения НСД к файлам.

14. «OS Commanding». Выполнение команд ОС посредством манипуляций

входными данными приложения.

15. «Path Traversal». Получения доступа к файлам, директориям и командам,

находящимся вне основной директории веб-­сервера.

16. «Predictable Resource Location». Предсказуемое расположение ресурсов,

позволяющие получить доступ к скрытым данным или функциональным

возможностям.

17. «Remote File Inclusion» (RFI).Тип атаки, которая позволяет использовать

удаленный файл на серверной стороне, через скрипт на веб­-сервере.

18. «Routing Detour». Маршрутизация SOAP сообщений.

19. «Session Fixation». Фиксация сессии. Используя данный класс атак,

злоумышленник присваивает идентификатору сессии пользователя заданное

значение.

20. «SOAP Array Abuse». Инъекции определений наборов данных в SOAP­ сообщение.

21. «SSI Injection». Внедрение серверных расширений. Вставка серверных команд в

HTML код или запуск их напрямую с сервера.

22. «SQL Injection». Внедрении в запрос произвольного SQL ­кода.

23. «URL Redirector Abuse». Редиректы без верификации для спама.

24. «XPath Injection». Внедрение операторов XPath ­ атаки направленные на

веб-сервер, создающие запросы на языке XPath на основе данных, вводимых

пользователем.

25. «XML Attribute Blowup»."Раздутие" параметров.

26. «XML External Entities». Инклуд внешнего файла.

27. «XML Entity Expansion». Внедрение переменных из тела сообщения.

28. «XML Injection». Внедрении в запрос произвольного XML­кода.

29. «XQuery Injection». Внедрении в запрос произвольного XQuery ­кода.

Как должен выглядеть отчет?

Отчет должен содержать введение, где будет описана методика проведения работ, объект аудита, границы тестирования (scope), так же должна содержаться информация об используемых инструментальных средствах анализа защищенности, которые будут применяться при тестировании. Каждой уязвимости, обнаруженной в ходе проведения тестирования присваивается определенная степень риска – высокая, средняя, низкая.

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

Для описания степени риска и оценки критичности обнаруженных уязвимостей используются классификации "The Common Vulnerability Scoring System (CVSSv2)", MITRE (CAPEC) и OWASP. Так же все уязвимости должны быть классифицированы по сложности эксплуатации и обнаружению.

Пример уязвимости:

Unrestricted upload

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

Сложность эксплуатации – легко.

Тип – удаленная.

Воздействие (CVSSv2) – Бизнесс воздействие – 10 баллов

CWE-434: Unrestricted Upload of File

OWASP Unrestricted File Upload

А надо ли...?

Необходимость проведения теста на проникновение каждый определяет сам для себя. Задачи проведения перечислены в начале статьи. Если ресурс содержит критически важные и ценные данные, имеет высокую посещаемость, идет обработка перс. данных ну или сайт просто приносит хорошие деньги - необходимость проведения теста очевидна. Достаточно вспомнить недавнюю утечки данных FL.ru http://siliconrus.com/2015/02/fl-hacked .

По опыту могу сказать, что ломают все сайты, которые представляют той или иной интерес для взломщика. Иногда взлом происходит просто ради интереса или продвижения политический идей и т.д. (http://ru.wikipedia.org/?oldid=65240870). В этом месяца было много дефейсов (подмена содержания главной страницы) исламским государством. На сайтах размещалась молитва и различные изображения, отпугивая клиентов.

Существует несколько популярных securty дистрибутивов, содержащих большинство популярных утилит и приложений для проведения тестирования на проникновение. Обычно они основаны на существующих Linux-дистрибутивах и представляют из себя их переработанные версии. В этой статье будут представлены наиболее известные из них.

Kali Linux

Наиболее популярный дистрибутив на сегодняшний день. Является преемником Backtrack Linux.
Kali Linux является невероятно мощным инструментом для тестирования на проникновение, который поставляется с более чем 600 security-утилитами, такими как: Wireshark, Nmap, Armitage, Aircrack, Burp Suite, и т.д.

Существует несколько видов этого дистрибутива для различных платформ, таких как ARM, систем виртуализации, инстансов для проведения атак с мобильных платформ - Kali Nethunter.

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

BlackArch

BlackArch Linux создан специально для пентестеров и специалистов по безопасности. Он поддерживает архитектуры i686 и x86_64. В комплект установки сейчас входит 1359 утилит для тестирования на проникновение и их число постоянно увеличивается. Основан на Arch Linux.

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

Parrot Security OS

Набирающий популярность security-дистрибутив, основанный на Debian-linux. Довольно простой в освоении, подходит и для новичков и для профессионалов. Этот дистрибутив нацелен как на проведение тестирования на проникновение, так и на анонимную работу в сети Интернет.

Довольно легкий и эффективный инструмент, многие security специалисты нашли в нем замену все более «прожорливому» Kali, тем более что Parrot использует репозитории Kali для обновления.

BackBox

BackBox основанный на Ubuntu легковесный дистрибутив. В прямом сравнении с Kali проиграет по многим пунктам. В нем нет такого количества разнообразных инструментов, утилит и фреймворков доступных прямо “из коробки”. Нет оптимизаций ядра и прочих твиков.

Благодаря легковесной оболочке XFCE BackBox Linux больше подходит для повседневного использования в качестве рабочей лошадки на вашем личном компьютере. Существует режим - Anonymous mode – весь системный траффик пропускается через TOR-прокси. Скрипт запуска меняет MAC-адрес системы и hostname, также при выключении режима все временные файлы удаляются с помощью интегрированного пакета BleachBit.

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

Pentoo Linux

Pentoo - security дистрибутив, основанный на популярном дистрибутиве Gentoo Linux, фанатами которого являются разработчики Pentoo. Содержит множество security-утилит.

Одной из особенностей является нативная поддержка Hardened Gentoo - несколько изменений в компиляторе и ядре, которые увеличивают общую защищенность системы от взлома.

Network Security Toolkit

Network Security Toolkit - это один из многих дистрибутивов Linux типа Live CD, направленных на анализ безопасности сети. NST дает администраторам простой доступ к широкому множеству открытых сетевых приложений, многие из которых включены в сотню лучших средств безопасности, рекомендованных сайтом insecure.org. Основан на Fedora Linux.

Обладая сбалансированным набором средств сетевого мониторинга, анализа и безопасности, может дать явные преимущества сетевому администратору, для контроля безопасности вверенной ему инфраструктуры.

DEFT Linux

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

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

Samurai Web Security Framework

Основное предназначение этого дистрибутива - тестирование на проникновения различных веб-приложений.

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

Pentest Box

PentestBox не похож на другие security-дистрибутивы, которые работают на виртуальных машинах. Было бы не совсем правильным называть эту сборку дистрибутивом, это скорее набор *nix-like утилит работающий в Windows окружении.

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

Если Вы Windows пользователь и Вас пугает установка виртуальных машин или Linux, Вы можете попробовать поработать с этой оболочкой.

Santoku Linux

Дистрибутив построен на основе Ubuntu linux. Представлен только в виде X64 платформы.

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

WifiSlax

Это специализированный дистрибутива с подборкой инструментов для проверки безопасности систем WiFi-сетей и проведения криминалистического анализа. Дистрибутив построен на базе Slackware linux.

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

Теги: Добавить метки

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

Чем полезны пентесты

Тест на проникновение показывает, как будет действовать потенциальный злоумышленник во время кибератаки на организацию. Знание векторов атак даёт возможность подготовиться к ним и снизить негативные последствия.

Пентестер находит и эксплуатирует уязвимости в сетевом оборудовании, средствах защиты информации, серверном, системном, прикладном ПО, узнаёт, насколько актуальны знания сотрудников атакуемой организации в области ИБ. «Перспективный мониторинг» даёт заказчикам подробные рекомендации, как можно устранить обнаруженные уязвимости или принять компенсационные меры, и, если необходимо, помогает это сделать.

Регулярные периодические пентесты помогают оценить уровень защищённости информационной системы в динамике (меняются настройки средств защиты, приходят и уходят люди, появляются новые атаки) и ответить на вопрос - «Наша защита стала лучше после того, как мы поставили эту „железку“ за кучу денег?!». Пентестеры «Перспективного мониторинга» выясняют, насколько группа реагирования на инциденты готова противостоять действиям злоумышленника.

Также регулярное тестирование на проникновение - требование PCI DSS и ISO 27001. Согласно этим стандартам пентесты проводятся ежегодно или после существенных изменений в информационной инфраструктуре.

Приказы ФСТЭК России № 17, № 21 и № 31 требуют анализировать защищённость информационных систем. Приказ № 21 содержит требование к периодичности - не реже одного раза в 3 года.

Виды тестов на проникновение

Наша компания проводит три вида пентестов:

  1. Тест на проникновение, основанный на технических методах. В рамках него мы находим и эксплуатируем уязвимости оборудования и ПО. Мы используем инструменты автоматического и ручного тестирования, которые детектирует IPS/IDS заказчика. Поэтому этот вид пентеста проводится на заранее определённые системы в согласованное со службой ИБ время.
  2. Тест на проникновение, основанный на методах социальной инженерии. Мы проверяем уровень осведомлённости сотрудников заказчика в вопросах информационной безопасности. Любопытство, жадность и желание развлечься - лучшие инструменты злоумышленников, которыми они успешно пользуются. Для планирования атак мы пользуемся инструментами The Social Engineering Framework и Social Engineer Toolkit (SET).
  3. Социотехнический пентест. Он совмещает преимущества первых двух и помогает выявить наибольшее число вероятных направлений атак и уязвимостей.

Тесты отличаются по степени информированности пентестера о средствах защиты, сетевой инфраструктуре, аппаратном и программном обеспечении заказчика:

  • внешний без учётных данных,
  • внешний с учётными данными клиента,
  • внутренний без учётных данных,
  • внутренний с учётными данными клиента,
  • внутренний с учётными данными администратора.

Мы разработали собственную методику тестирования, которая базируется на Draft Guideline on Network Security Testing (от NIST), Open-Source Security Testing Methodology (OSSTM) и The OWASP Testing Framework.

Объекты исследований

Сроки

Сбор информации - от 1 до 5 дней.

Подготовка к пентесту - до 5 дней.

Атака - 1–2 дня.

Подготовка отчёта - до 5 дней.

«Разбор полётов» с заказчиком - до 10 дней.

Обучение сотрудников заказчика - от 1 до 10 дней.

Результат

Отчёт о тестировании на проникновение содержит:

  • перечень проведённых тестов;
  • перечень выявленных уязвимостей с оценкой по методике Common Vulnerability Scoring System (CVSS);
  • описание способов эксплуатации уязвимостей для проведения атак;
  • описание применённых техник социнженерии с результатами проверки;
  • протокол действий службы реагирования;
  • рекомендации по устранению уязвимостей.

При необходимости мы разработаем программу повышения осведомлённости сотрудников в вопросах ИБ.

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

Введение

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

В Российской Федерации значимым фактором, определяющим необходимость проводить тестирование на проникновение, являются требования регуляторов. Последние рассматривают проверку эффективности системы защиты как крайне важную меру, и соответствующие положения включены в нормативно-методические документы. В первую очередь в этой связи уместно упомянуть нормативные документы, под действие которых подпадает значительное число информационных систем, - приказы ФСТЭК России № 17 и 21.

В этих документах определена мера защиты в виде «испытания системы защиты информации путем осуществления попыток несанкционированного доступа (воздействия) к информационной системе в обход ее системы защиты информации» на этапе аттестации. Аттестация информационных систем, предполагающая проверку эффективности системы защиты, востребована также для информационных систем, обрабатывающих государственную тайну.

В международном масштабе целесообразно отметить стандарт безопасности данных индустрии платежных карт PCI DSS (Payment Card Industry Data Security Standard). Соответствие положениям стандарта PCI DSS является обязательным для всех организаций, вовлеченных в обработку платежных карт Visa и MasterCard: торгово-сервисных предприятий, процессинговых центров, эквайеров, эмитентов и поставщиков услуг, а также всех прочих организаций, которые хранят, обрабатывают или передают данные о держателях карт и чувствительные аутентификационные данные. Положениями стандарта предусмотрено проведение анализа уязвимостей и тестирования на проникновение как внутри, так и снаружи сети информационной системы. Внешний и внутренний тесты на проникновение должны проводиться не реже одного раза в год и после любых значительных модификаций или обновлений инфраструктуры/приложений.

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

Очевидно, что для всех перечисленных целей наиболее востребовано интегрированное решение для управления угрозами, охватывающее сетевую безопасность, безопасность веб-приложений, безопасность баз данных и стратегии тестирования проникновения, и содержащее функциональность, достаточную как для соответствия требованиям отечественных и международных нормативных документов, так и для использования в процессе обучения. К числу таких решений относится Rapid7 Metasploit производства компании Rapid7, которая была основана в 2000 году и является одним из лидирующих производителей продуктов для анализа и организации систем обеспечения информационной безопасности в ИТ-средах. Важным преимуществом программного обеспечения Rapid7 является возможность обзора состояния безопасности активов и пользователей в пределах любых сред, включая виртуальные и мобильные, а также публичные и частные облака.

Для оценки решения Rapid7 Metasploit можно воспользоваться решением того же производителя - демонстрационной уязвимой виртуальной машиной Metasploitable, оснащенной Ubuntu Linux. Виртуальная машина совместима с VMWare, VirtualBox и другими распространенными платформами виртуализации.

Важным подспорьем является то, что Rapid7 Metasploit совместим со сканером уязвимостей Rapid7 Nexpose, может инициировать его запуск, а также использовать результаты работы последнего.

Рассмотрим общий порядок работы с Rapid7 Metasploit.

Как работать с Rapid7 Metasploit

В общем виде работа с Rapid7 Metasploit состоит из следующих этапов:

  1. Создание проекта. Проект содержит рабочее пространство, которое используется для создания теста на проникновение, и конфигурацию планируемых к выполнению задач. Каждый тест на проникновение запускается из собственного проекта.
  2. Сбор информации. На этом этапе Rapid7 Metasploit собирает информацию о целевой сети: установленные операционные системы, открытые порты, запущенные хосты и процессы. На этом этапе также может использоваться сканер уязвимостей Rapid7 Nexpose. Во время проведения сканирования все полученные данные автоматически сохраняются в проект.
  3. Использование эксплойтов. Атака может выполняться вручную или с использованием базы эксплойтов. Здесь используются данные о сети, полученные на этапе 2.
  4. Действия над скомпрометированной системой. После получения доступа используется полезная нагрузка эксплойта, с помощью которой инициируются интерактивные сеансы для сбора дополнительной информации а также появляется возможность использовать постэксплуатационные модули для автоматического сбора сохраненных в операционной системе и приложениях паролей, скриншотов, снимков с веб-камер, записи нажатий клавиш, сбора конфигурационных файлов, запуска приложений и др.

Сравнение редакций Rapid7 Metasploit

Rapid7 Metasploit выпускается в нескольких редакциях, различающихся между собой объемом предоставляемых функций и типом лицензии на использование. На текущий момент доступны следующие редакции продукта:

  • Framework
  • Community
  • Express

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

  • Сбор данных о характеристиках компонентов и сетевых уязвимостях.
  • Тестирование на проникновение.
  • Выполнение задач фишинга.
  • Тестирование веб-приложений.
  • Формирование отчетов.
  • Управление.

Таблица 1. Сравнение редакций Rapid7 Metasploit

Характеристика Pro Express Community
Импорт данных сканирования
(Scan data import)
Сканирование с обнаружением
(Discovery scan)
Интеграция с системой управления уязвимостями Nexpose
(Nexpose scan integration)
Экспорт данных
(Data export)
Ручной запуск эксплойтов
(Manual exploitation)
Веб-интерфейс
(Web interface)
Управление сеансами
(Session management)
Управление учетными данными
(Credential management)
Проникновение через опорный пункт
(Proxy pivot)
Модули, исполняемые после компрометации
(Post-exploitation modules)
Очистка сеанса
(Session clean up)
Методом подбора
(Bruteforce)
Сбор свидетельств
(Evidence collection)
Протоколирование проверки
(Audit Report)
Отчетность о деятельности
(Activity Report)
Отчетность о скомпрометированных и уязвимых хостах
(Compromised and Vulnerable Hosts Report)
Отчетность об учетных данных
(Credentials Report)
Отчетность о работе сервисов
(Services Report)
Повторное использование учетных данных
(Credentials reuse)
Попытка обхода антивируса
(Anti-virus evasion)
Попытка обхода систем обнаружения и предотвращения вторжений
(IPS/IDS evasion)
Перезапуск сеанса
(Session rerun)
Технологический процесс компрометации
(Exploitation workflow)
Воспроизведение задач
(Task replay)
Маркировка данных
(Tagging data)
Отчетность о соответствии PCI DSS
(PCI Report)
Отчетность о соответствии FISMA
(FISMA Report)
"Мастер" для быстрого тестирования на проникновение
(Quick PenTest Wizard)
"Мастер" для проверки уязвимостей
(Vulnerability Validation Wizard)
Интеграция с системой сканирования качества кода Sonar
(Project Sonar integration)
"Мастер" для фишинга
(Phishing Wizard)
Социотехнический анализ
(Social engineering)
"Мастер" для тестирования веб-приложений
(Web App Testing Wizard)
Тестирование веб-приложений
(Web app testing)
Проникновение через опорный пункт с использованием VPN-туннелирования
(VPN pivoting)
Генератор полезных нагрузок
(Payload generator)
Макросы, исполняемые после компрометации
(Post-exploitation macros)
Постоянные сеансы
(Persistent sessions)
Мета-модули
(MetaModules)
Работа в команде
(Team collaboration)
Цепочки задач
(Task chains)
Резервирование и восстановление
(Back up and restore)
Настраиваемая отчетность
(Custom reporting)
Социотехническая отчетность
(Social Engineering Report)
Отчетность по оценке веб-приложений
(Web Application Assessment Report)

Редакция Metasploit Framework стоит особняком, поскольку служит основой для создания коммерческих продуктов. Это проект с открытым кодом, предоставляющий доступ к базе эксплойтов для различных приложений, операционных систем и платформ. Управление осуществляется через интерфейс командной строки. Пользователь Metasploit Framework может создавать и добавлять новые эксплойты в базу или использовать имеющиеся в качестве дополнительных инструментов при выполнении тестов на проникновение.

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

Выводы

Rapid7 Metasploit имеет широкий спектр функциональных возможностей. Решение может работать как через веб-интерфейс, так и интерфейс командной строки - вариант определяется по желанию пользователя. При этом полный набор функций доступен только при работе с помощью веб-интерфейса. Rapid7 Metasploit поддерживает операционные системы семейства Windows и Linux.

Еще несколько отличительных характеристик Rapid7 Metasploit:

  • Возможность выбора редакции, удовлетворяющей потребностям в частном случае.
  • Возможность использовать результаты анализа уязвимостей от сторонних решений.
  • Возможность тренировки на специально разработанной уязвимой системе.
  • Интеграция продукта (в редакции Framework) с Linux-дистрибутивами:
    • Kali linux
    • Backtrack linux (поддержка прекращена)
    • Pentoo
    • BlackArch
    • Backbox

Rapid7 Metasploit имеет несколько ограничений уровня эксплуатации, которые целесообразно учитывать:

  • Установка и последующее корректное функционирование продукта возможны только после отключения брандмауэра и антивируса.
  • Рекомендуется установка Rapid7 Nexpose и Metasploit на отдельных средствах вычислительной техники. При этом возможна установка Rapid7 Metasploit в виртуальную машину.
  • Отсутствие полноценного перевода эксплуатационной документации на русский язык. С руководством по эксплуатации на английском языке можно ознакомиться на сайте производителя в разделе Metasploit.
  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то