Шёл 2020 год, люди с восхищением читали очередную статью о том, как плохо открывать письма от незнакомцев, особенно с вложением, как опасно вставлять сомнительные флешки в компьютер, как в далёкой стране хакеры по щелчку пальцев переводили миллионы долларов со счёта на счёт. Аналитика, в которой говорилось, что 7 из 10 банков можно взломать усилиями двух хакеров за пару вечеров, казалась людям в 2020-ом обыденностью. Что до рядовых пользователей, то им даже не было страшно: они просто воспринимали такие новости как отдельную вселенную Marvel и изредка просили знакомых компьютерщиков взломать VK. И только специалисты по безопасности понимали, что всё не так просто, как кажется…
В 2020 году слово «пентест» уже многим знакомо, и все зрелые компании проводят такие работы регулярно. Некоторые даже сформировали у себя штат специалистов и самотестируются ежедневно. Количество средств защиты информации (СЗИ) постоянно увеличивается, лучшие ИБ-практики раздаются в интернете бесплатно, ИБ-процессы выстраиваются по лучшим методологиям. Вместе с тем в головах людей всё ещё сидит мысль о том, что хакерам ничто не помеха: если им что-то нужно, они этого добьются. Об этом феномене мне как непосредственному специалисту по тестированию на проникновение и хочется поговорить сегодня.
«То, что для предыдущих поколений было подвигом, для последующих — обычная работа»
Лет 10-15 назад информационная безопасность ассоциировалась с весельем: ты мог всё взломать, и тебе за это ничего не было. Всё было «дырявым», но это мало кого пугало. Хакеры ломали за интерес и хвастались подвигами перед друзьями в баре. Сегодня ИБ — это уже крупный бизнес, взломать что-либо легко и быстро можно разве что случайно, а сделать это «экспертно» стоит дорого.
Порог входа в практическую область ИБ стал выше: если раньше кто-то мог позволить себе приехать к заказчику не в лучшей физической форме, повторить пару видео, просмотренных в интернете, и взломать организацию, например, взять контроллер домена, то сейчас подобное можно провернуть далеко не везде. Проблемы начинают встречаться на каждом шагу и в каждой области отчасти как минимум потому, что рекомендации с предыдущих пентестов были приняты в работу. Ниже я разберу проблемы, с которыми можно столкнуться, начав работы по пентесту.
Внутреннее тестирование (или нелояльный сотрудник)
Подключение к сети
Возьмём пентест из внутренней сети: теперь даже подключиться в сетевую розетку организации просто так нельзя. Приезжаешь к заказчику, вытаскиваешь ноутбук, подключаешься проводом к Ethernet и… ничего. Предполагаешь, что необходимо обойти контроль подключаемых устройств, и хорошо, если нужно найти где-то легитимный MAC-адрес, а если он привязывается к порту? А если количество MAC на одному порту ограничено? А если там 802.1x (Cisco ISE) c сертификатами и грамотным профилированием? Тогда нужно найти доменную учётную запись с сертификатом клиента в придачу либо врезаться MITM в чужой трафик и притвориться принтером или запроксироваться через легитимный хост. Чувствуете? Это вам не быстро пальчиками по клавиатуре стучать, как показывают в кино.
Сканирование
Начинаешь сканировать, как обычно, подсети (10.0/8, 172.16/12, 192.168/16), и все порты closed или filtered, а потом и доступ пропадает совсем. Это наши любимые МСЭ с правильно настроенной политикой сегментации. Снижаешь скорость, используешь теневые техники разведки, но тебя выкидывает при использовании эксплойтов: это уже IDS/IPS «подъехали», и прощай, несанкционированный доступ.
Endpoint
Пробрался на хост, но тут тебя либо добьёт антивирус, либо спалит SIEM, а если ты и получил шелл, выяснится, что у него ограничены права, а все актуальные патчи для LPE накатаны, и вдобавок изолирован процесс lsass.exe. В дополнение прикручены механизмы детекта аномального поведения пользователя, внедрена, пусть и плохо настроена, DLP, но твой запущенный PowerShell на АРМ бухгалтера уже заметят.
«Железо»
Если физически попытаешься взломать чужой ПК, пока сотрудник на больничном, то обнаружишь, что BIOS запаролен, жёсткий диск зашифрован bitlocker’ом в связке с пин-кодом и TPM-модулем, и особо из компа уже ничего и не извлечь.
Атаки на домен
Получил доменную учётку Active Directory и радуешься, что проведёшь сейчас любимые атаки на AD: Kerberoasting, AS-REP Roasting, атаки на делегирование, но не тут-то было. Всё предусмотрено, пароли не «брутабельные», атаки на домен детектируются Microsoft ATA, а устаревшие хосты выделены в отдельный домен, вдобавок архитектура выстроена с использованием RedForest, и всё, даже компрометация пользовательского домена не принесёт желаемого результата.
Внешнее тестирование (хакер из интернета)
Пытаешься что-то взломать на внешнем периметре, а там уже стоят Anti-DDoS и WAF, приложение разработано по принципам SSDLC и протестировано перед выходом в production. Данные между клиентом и сервером шифруются, а любой пользовательский ввод валидируется несколькими способами. Иногда приложение написано на каком-то новомодном фреймворке и обложено кучей enterprise-техник, сами разработчики за полгода только разобрались, как дописать модуль, куда ты-то лезешь со своим фаззингом по методу «черного ящика» на неделю?
Мобильное тестирование (хакер с телефоном)
Возьмём мобильное приложение, тут сама платформа уже защищает горе-разработчиков от множества выстрелов себе в ногу. Трафик в открытом виде передавать скоро совсем запретят. Сознательные разработчики сместили акценты на защиту серверной части, ведь если сервер не реализует «дыры», то и в клиенте они не будут работать. Те, кто пошёл дальше, освоили OWASP Testing Guide, научились детектировать root-устройства и внедрять ssl-pinning. И всё, impact от остальных недостатков незначительный.
Wi-Fi (хакер с Wi-Fi-адаптером)
Тут особо и обсуждать смысла нет. Либо используется wpa2-enterprise с клиентскими сертификатами, либо нет. Сейчас на подходе wpa3, там даже служебный трафик зашифрован, и сессионный ключ надёжно защищён. Поначалу, конечно, будут ошибки в имплементации, но это уже не недостатки целого протокола.
Бонус
Ещё один, дополнительный фактор: все СЗИ сейчас начинают объединяться в одну экосистему, и стоит тебе затронуть один краешек, как начинает трястись вся паутина. При одном только взгляде на семейство решений Cisco и Microsoft меня уже как пентестера пугает вся боль попыток скрытых работ последующих лет. Мало того, на рынке появляются «автопентестилки», например, решения PenTera или Cymulate, которые скоро начнут отбирать часть хлеба у пентестеров. А впереди ещё стартапы ИБ с Machine Learning, нейронными сетями, псевдо-ИИ. Пока что всё это выглядит сыро, но ещё пара лет…
Кто-то скажет, что это идеальная ситуация, и дыры всегда будут, а я отвечу, что, наблюдая за тем, как ИБ зреет в компаниях, прихожу к выводу, что года через два «стоимость» взлома будет довольно высока даже для опытных специалистов. Думаю, что в скором будущем взломать банк удалённо будет такой же редкостью, как физически ограбить его в 2020 году (много ли последних успешных случаев вы знаете?).
К чему я пришёл в итоге? Безопасность становится сложнее, и, возможно, в будущем проблемы этой сферы станут более контролируемыми. Но должны ли мы просто закрыть глаза и ждать наступления будущего? Нет, мы должны предпринять шаги, чтобы построить это самое будущее.
5 советов для компаний
- Начинайте чаще использовать «серый ящик» в пентестах.
Всем уже надоело сканировать ваши хосты с помощью nmap и Nessus, потом определять версию ПО, натыкаться на кучу СЗИ и пытаться по демаскирующим признакам их обнаружить и обойти. В итоге львиная доля времени уходит на рутинную работу, не выгодную вам и не интересную техническим специалистам. Продумайте модель нарушителя и реальные сроки, предоставьте учётные записи для входа и инструкции по работе с системой, проконсультируйте специалистов по работам, сами желайте, чтобы вас взломали и выявили все подводные камни. Используйте каждый раз новую модель нарушителя и точку старта, зайдите со всех сторон или из каждого компонента, только так вы выстроите эшелонированную защиту.
Есть такая шутка: 10 пентестеров не смогут вывести и одного рубля, даже если взломают все серверы банка. Отчасти это правда, потому что тут нужен человек, разбирающийся в ПО конкретного банка, работающий с ним каждый день, а не специалист по взломам со стороны. - Выделяйте больше времени на пентесты.
Исторически сложилось, что работы по пентестам (по одному направлению) занимают одну-две недели, что уже является крайне низкой оценкой объективности каких-либо работ. Уязвимости не всегда находятся в короткий срок. Необходимо увеличивать интервал и дать возможность специалистам провести тщательную аналитическую работу. - Попробуйте Red Teaming или continuous pentest.
Когда вы приводите нового администратора в штат, сколько времени ему необходимо, чтобы во всем разобраться? Несколько месяцев? И это только для своего круга задач, что же говорить о пентестерах, которые обязаны прийти-увидеть-победить за пару недель? Red Teaming для того и нужен, чтобы дать «атакующим» специалистам время, соизмеримое с временем, которое на атаку тратят реальные злоумышленники (3-9 месяцев). - Развивайте внутреннюю команду.
Если ресурсов хватает, то ещё лучше развивать свою команду: эти ребята уже точно смогут выстроить матрицу связей и компонентов и пойти систематически тестировать каждый элемент, чего не может сделать ни одна внешняя организация. - Выстраивайте экосистему.
Множество разрозненных СЗИ ни к чему хорошему не приводят. Заходить на 100500 веб-панелек и смотреть события не самое эффективное решение. Стройте систему изначально так, чтобы каждый компонент обогащал остальные, и все они работали взаимосвязанно.
Как быть начинающим пентестерам
- Качайте быстрее квалификацию.
Порог входа растёт с каждым днём. Пора заканчивать читать статейки про выплату Bug Bounty за обнаруженный пароль на GitHub и набирать баллы в CTF, пришло время начинать серьёзно пахать. Разворачивайте виртуалки, поднимайте виртуальную инфраструктуру и промышленные СЗИ и вперёд — ресёчить их. - Продумайте свою специализацию и сконцентрируйтесь на ней.
Уже нельзя быть экспертом во всём. Выберите востребованные области, которые вам нравятся, и изучайте их в первую очередь. Но если будете пытаться освоить всё подряд, то ничего не успеете. У меня тысячи непрочитанных сообщений в telegram-каналах и столько же в twitter. Пока прочитаешь только ИБ-новости за последний день, «мыслетопливо» в голове уже заканчивается, и мозг просто перегружается. - Будьте с сообществом.
Формируйте профессиональный круг общения: куда эффективнее что-то делать вместе, чем сидеть одному в чулане. Это в фильмах хакер-одиночка взламывает мир, а в реальности есть APT с чёткими ролями и задачами для каждого: один сканит, другой эксплойтит, третий анализирует, четвёртый выводит деньги. Будьте открытыми и обменивайтесь знаниями, ведь другие уже 100 раз делали то, что вы только планируете, и, наоборот, вы можете помочь им сократить время на рутину и высвободить его для креатива.
Что делать обычным пользователям
Вряд ли вы читаете эту статью, но всё же. Безопасность под контролем: не ждите у моря погоды, придумайте уже себе нормальный пароль, пройдите курсы повышения осведомлённости в ИБ и просто следуйте их советам. Поверьте, это не сложно.
Выводы
Я написал эту статью не для того, чтобы показать, как всё хорошо в ИБ, а чтобы вы могли убедиться, что всё не так плохо, как многие привыкли думать. Негативные новости позволяют нам развиваться и становиться лучше, но ответьте: мы же стали безопаснее, чем 10 лет назад? Ну, а если не стали, кто из вас может взломать, например, VK: не пользователя, не XSS закинуть, а прям всю инфраструктуру?
EvilMonk
Вот я вроде бы IT-шник, а каждое второе слово непонятно