Взломайте свою систему сами или кому и зачем нужен пентест

Взломайте свою систему сами или кому и зачем нужен пентест

Всем привет! Меня зовут Геннадий Перминов, я консультант по информационной безопасности отдела пентестов компании RTM Group. Сегодня хотел бы порассуждать о том, кому и для чего нужен пентест, рассказать о нашем опыте.

Пентест (от англ. Penetration Test – означает тест на проникновение) – это метод оценки безопасности компьютерных систем и сетей путем имитации действий реального хакера. При этом используются те же подходы и инструменты, что и при реальном взломе системы. Отсюда и другое обозначение пентестеров – этичные хакеры.

Нисколько не умаляя важность так называемой «бумажной» безопасности, хотел бы сказать, что горжусь своей профессией, так как она максимально приближена к реальности и даже имеет элементы состязательности. Реальный пентест позволяет выявить угрозы даже при наличии политик безопасности, настроенных средств защиты (СЗИ) и полного комплекта документации, в отличие от бумаги, которая, как говорится, все стерпит.

Например, известна уязвимость старых версий Dallas Lock, когда можно было получить доступ к содержимому файла не смотря ни на какие настроенные разграничения, просто добавив: :$DATA после имени файла. То есть, обратившись к соответствующему атрибуту. Некоторые СЗИ подвержены атакам на отказ в обслуживании и другим. Банк данных угроз безопасности информации ФСТЭК России, среди прочих, содержит описания уязвимостей и Secret Net, и Dallas Lock и других. Не говоря уже об ошибках в конфигурациях, которые совершают люди.

К сожалению, «бумажная» защита не может выявить подобные проблемы – с этим может справиться только пентест.

Источниками угроз могут быть ошибки в настройках ПО, использование слабых паролей или паролей по умолчанию, недостаточные знания персонала, ошибки и уязвимости в коде прикладного ПО и операционных систем. При этом число новых обнаруженных уязвимостей постоянно растет. Например, с начала 2023 года и до момента написания статьи (середина февраля) в базе данных уязвимостей cve. mitre. org зарегистрировано 6553 заявки на добавление новых уязвимостей. 1271 из них уже подтверждены и опубликованы.

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

Пентест сайта

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

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

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

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

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

Анализ уязвимостей приложений

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

Современные мобильные операционные системы в значительной степени защищены. Например, позволяют разработчикам создавать и хранить криптографические ключи в безопасном контейнере, что затрудняет их извлечение из устройства, даже с использованием передовых методов. Так в Андроид существует система Android Keystore, в iOS — iOS Keychain.

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

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

На практике в ходе различных тестирований мы обнаруживали неоправданное использование служб с root правами. При определенных условиях это может позволить вредоносным приложениям загружать и запускать полезные нагрузки или изменять файлы контейнера. Также обнаруживали отключенную CSRF protection (англ. cross-site request forgery — «межсайтовая подделка запроса»), что позволяет злоумышленникам выполнять запросы от имени пользователя, токены, прописанные в коде, и другие уязвимости.

Пентест внешнего периметра

Вам нужно тестирование на проникновение, если ваша информационная инфраструктура имеет компоненты с выходом в интернет.

Такими компонентами могут быть:

  • шлюз VPN, через который сотрудники «на удаленке» подключаются к корпоративной сети с использованием слабых паролей;
  • веб сервер, подверженный атаке SSRF (Server-Side Request Forgery — подделка запроса на стороне сервера), который позволяет злоумышленнику отправлять запросы от имени сервера к внешним или внутренним ресурсам компании с соответствующим уровнем доступа;
  • маршрутизатор с NAT и неправильно настроенными фильтрами, которые пропускают непреднамеренный трафик во внутреннюю сеть и обратно;
  • или даже камера видеонаблюдения с микрофоном, установленная на территории организации с паролем по умолчанию и множеством незакрытых CVE (Common Vulnerabilities and Exposures — база данных общеизвестных уязвимостей).

В общем, все что угодно, имеющее на борту любую из 195,276 уязвимостей CVE.

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

Тестирование на проникновение внутренней инфраструктуры

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

Из общего числа инцидентов связаны с утечкой данных — 58%, попытками отката или взяточничества — 28%, саботажа — 23%, работой на конкурентов — 16% и др. При этом 40% инцидентов происходили умышленно.

Обычно в организациях настроены системы разграничения доступа, политики безопасности, внедрены различные меры и средства защиты. Однако, созданные правила и ограничения могут игнорироваться персоналом, как мешающие работе, а иногда преодолеваться неожиданными способами. Например, если другие способы ограничены, скачивать файлы, можно с помощью утилиты certutil. exe, которая предназначена для работы с сертификатами и обычно не отключена. А запустить PowerShell можно из редактора Paint или Word.

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

Нельзя рассчитывать на какое-то одно средство или меру. Необходимо строить комплексную систему защиты и регулярно тестировать ее.

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

Социотехническое тестирование

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

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

Чтобы заставить человека выполнить нужные действия, надо его хорошенько мотивировать. Желательно, притупив критическое мышление. Каждый раз к решению этой задачи мы подходим творчески. Например, сообщаем, что в прилагаемом файле находятся изменения в график отпусков. Или изменения в систему премирования по итогам года. Или вакансия, о которой он давно мечтал. Это должно быть что-то личное и важное для человека. Тут от эксперта требуется определенный талант. Хорошим подспорьем здесь является анализ открытых источников – OSINT.

Самое интересное – это, конечно, очное тестирование. Нам удавалось не просто проникнуть на территорию предприятия через проходную, но даже в серверную комнату и там подключить свое оборудование! Просто представившись сотрудниками местной телекоммуникационной компании и прикрывшись легендой, что у нас проблемы с каналом на клиентской стороне. Надо ли говорить, что сотрудники компании RTM Group не имеют к провайдерам никакого отношения.

Пентест «умных» устройств

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

Умные пылесосы с поддержкой Wi-Fi, укомплектованные камерой, возможностью удаленного управления (такие, как, Diqee 360) и заводским паролем администратора становятся отличным готовым шпионом прямо у вас дома. Есть исследования, когда звук из комнаты снимали с помощью пылесоса, оснащенного лидаром, детектируя отраженный от вибрирующих поверхностей лазерный луч. Просто заставляли его «посветить» в нужном направлении. Умный холодильник может выдать ваши учетные данные от аккаунта Gmail, если синхронизируется с Google Calendar для эффектного напоминания о делах на день. Не говоря о том, что ваш телевизор может быть частью botnet и участвовать в распределенных атаках на отказ в обслуживании и распределенных вычислениях. Новый класс умных устройств, несомненно, обогатит нас новыми уязвимостями.

В заключение…

Друзья, если в одном из пунктов вы узнали себя – вы знаете к кому обращаться.

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

66
Начать дискуссию