Картирование поверхности атаки
Реальная поверхность атаки — это то, что действительно достижимо, а не схема архитектуры. Перечисли активы, поддомены и shadow IT на авторизованных целях в скоупе, чтобы увидеть систему глазами атакующего — забытый хост и есть тот, который захватывают.
В модели угроз компании было три сервиса, смотрящих в интернет. Пентест нашёл девятнадцать. Остальные шестнадцать были реальны и авторизованы к тестированию — четырёхлетний маркетинговый микросайт на просроченном фреймворке, хост staging., тихо обслуживавший боевую базу, забытый S3-бакет за wildcard-записью DNS и Jenkins-машина, которую кто-то поднял «на денёк» в 2021-м. Ни одного из них не было на схеме, каждый был в интернете, и первым пал именно Jenkins, владеть которым уже никто не помнил. Схема архитектуры описывает систему, которой ты думаешь, что управляешь. Поверхность атаки — это система, которую ты на самом деле выставляешь наружу, и разрыв между ними — это место, где живут пробои.
К концу урока ты поймёшь, почему реальная поверхность атаки почти всегда больше схемы архитектуры и как дисциплинированное перечисление активов, поддоменов и shadow IT закрывает этот разрыв до того, как им воспользуется атакующий.
Сначала скоуп — перечисление это разведка, а у разведки есть правила
Этот урок живёт внутри авторизованного проекта. Разведка — MITRE ATT&CK выделяет её в тактику TA0043 — это первое, что делает атакующий, и первое, что делаешь ты, но техники перечисления здесь применимы только к активам, входящим в твой подписанный скоуп. «Мы владеем доменом example.com» — это не то же самое, что «нам разрешено тестировать каждый хост, резолвящийся под ним»: поддомен может оказаться сторонним SaaS (status.example.com, указывающий на страницу статуса вендора), который твой документ скоупа явно исключает. Прежде чем перечислять, ты подтверждаешь, что в границах; когда перечисление обнаруживает что-то неожиданное, следующий ход — сверить это со скоупом, а не зондировать. Само обнаружение — «этот хост существует и выставлен наружу» — и есть результат. Всё в этом уроке — это пассивное и лёгкое перечисление, которое ты запускаешь по своему авторизованному хозяйству, чтобы увидеть, что ты на самом деле выставляешь.
Почему это так важно: большинство организаций не могут точно сказать, что у них есть в интернете. Облачные аккаунты поднимаются за минуты, команды регистрируют поддомены, не сообщая безопасности, поглощения приносят целые унаследованные хозяйства, а «временная» демо-машина переживает проект на годы. Атакующему всё равно, что из этого было намеренным. Он перечисляет всё, находит самую слабую выставленную вещь и начинает с неё.
Поверхность атаки = каждая достижимая точка входа, намеренная или нет
Поверхность атаки — это полный набор точек, где атакующий мог бы попытаться взаимодействовать с твоими системами: каждый резолвящийся домен и поддомен, каждый открытый порт и сервис, каждый эндпоинт и параметр API, каждый облачный бакет и аккаунт хранилища, каждая сторонняя интеграция и — на краях — каждая учётка и сотрудник, касающийся системы. Ключевое слово — «достижимая». Прекрасно укреплённый боевой кластер не уменьшит твою поверхность ни на байт, если забытый staging-хост в той же VPC распахнут настежь.
Перечисление — это дисциплинированный процесс обнаружения этой поверхности, чтобы её можно было измерить и сократить. Оно идёт тремя переплетёнными проходами — найти активы, развернуть каждый актив в его поддомены и сервисы и вытащить наружу shadow IT, который никто не отслеживает.
Три прохода перечисления
Обнаружение активов отвечает на «чем мы владеем?» прежде, чем на «что это выставляет наружу?». Ты стартуешь от затравок — корневой домен, имя компании, известный блок IP — и разворачиваешься вовне. WHOIS и данные регистратора раскрывают родственные домены; опубликованные регистрации ASN и диапазонов IP (записи RIR) раскрывают принадлежащие сетевые блоки; инвентаризации облачных аккаунтов раскрывают, что и где работает; логи прозрачности сертификатов (каждый когда-либо выпущенный TLS-сертификат публично логируется) раскрывают имена хостов в момент выпуска сертификата для них. Зрелое наблюдение: обнаружение активов — это в основном упражнение по разведке из открытых источников (OSINT): данные уже публичны, потому что сам факт выставления чего-либо в интернет оставляет публичный след (DNS-запись, сертификат, регистрацию ASN). Ты не взламываешь — ты читаешь след, оставленный организацией.
Перечисление поддоменов разворачивает каждый принадлежащий домен в его реальные резолвящиеся хосты. Покрывают это два взаимодополняющих метода. Пассивное перечисление вытягивает имена из источников, которые их уже записали — логи прозрачности сертификатов это тяжёлая артиллерия, потому что wildcard- или похостовый сертификат публично раскрывает имя хоста в момент выпуска; пассивные агрегаторы DNS и индексы поисковиков добавляют ещё. Активное перечисление резолвит кандидатные имена — брутфорс списка распространённых префиксов (dev, staging, api, vpn, admin) по DNS и проверка мисконфигурации передачи зоны, которая, если присутствует, отдаёт тебе всю зону разом. Пассивное тихое и дружелюбное к авторизации, потому что ты запрашиваешь сторонние датасеты, а не цель; активное шумнее и касается DNS цели напрямую, поэтому оно прочнее сидит внутри правил вовлечения проекта.
Shadow IT — это проход, который находит то, о чём не знает ни одна инвентаризация, и именно здесь прячутся настоящие находки. Shadow IT — это любая система, сервис или аккаунт, работающий вне санкционированной, отслеживаемой инвентаризации организации: SaaS, на который маркетинг подписался по корпоративной карте, личный облачный проект с реальными данными клиентов, оставшаяся ВМ подрядчика, поддомен, указывающий на снятый с обслуживания сервис (висящая DNS-запись, которая превращается в захват поддомена, когда кто-то перерегистрирует осиротевшую цель). Он существует, потому что выкатывать легко, а выводить из эксплуатации — ничья работа. Атакующий его обожает именно потому, что никто его не патчит, не мониторит и даже не помнит.
| Проход | На какой вопрос отвечает | Основные источники / методы | Чем опасен, если пропущен |
|---|---|---|---|
| Обнаружение активов | Чем мы владеем? | WHOIS, регистрации ASN/IP, прозрачность сертификатов, облачные инвентаризации | Непринадлежащий актив не мониторится и не патчится |
| Поддомены (пассивно) | Какие хосты уже утекли публично? | Прозрачность сертификатов, пассивный DNS, индексы поисковиков | Сертификат тихо публикует хост, о котором ты забыл |
| Поддомены (активно) | Что резолвится, чего никто не публиковал? | DNS-брутфорс распространённых префиксов, тест передачи зоны | staging. / admin. часто минует укрепление продакшена |
| Shadow IT | Что работает, чего не отслеживает инвентаризация? | Висящий DNS, несанкционированный SaaS, осиротевшие облачные проекты | Захват поддомена; непринадлежащие данные; первый плацдарм пробоя |
▸Почему это работает
Почему забытый хост захватывают так надёжно, а не флагманское приложение, за которым следит вся команда? Потому что внимание безопасности конечно и идёт за тем, что отслеживается. Боевое приложение получает WAF, ритм патчей, дежурный алертинг и бюджет пентеста. Staging-машина, поднятая «на денёк», не получает ничего из этого — нет мониторинга, чтобы заметить вторжение, нет патчей, чтобы закрыть известный CVE, нет владельца, чтобы хотя бы получить алерт. Ожидаемая ценность для атакующего — не «атаковать самое сильное», а «найти выставленное, которое никто не защищает». Поэтому сокращение поверхности атаки — это столько же про вывод из эксплуатации и дисциплину инвентаризации, сколько про укрепление: актив, который ты выключил, нельзя эксплуатировать, а актив, который ты не видишь, нельзя защитить.
Как читать карту по-сеньорски
Результат перечисления — не трофейный список хостов, а приоритизированная картина выставленности. Зрелый инженер читает её, спрашивая по каждому обнаруженному активу: должен ли он быть выставлен наружу, кто им владеет и защищён ли он до уровня, которого заслуживают стоящие за ним данные? Опасный квадрант — «выставлен + непринадлежащий + незащищённый», и shadow IT живёт там по определению. Защитная выгода от того, что делаешь это наступательно, в том, что тебя вынуждают увидеть своё хозяйство так, как видит его атакующий — плоско, целиком и безразлично к твоей оргструктуре, — а не так, как тебе льстит схема архитектуры.
У перечисления есть и ось компромисса, которой зрелый инженер управляет осознанно: пассивные техники тихие, низкорисковые и не касаются цели, но выявляют лишь то, что уже где-то опубликовано; активные техники находят неопубликованные хосты, но касаются инфраструктуры цели и создают шум, способный сработать на детектирование — что на авторизованном проекте может быть ровно тем, что ты хочешь протестировать, а на небрежном это способ устроить инцидент.
Ты картируешь поверхность атаки авторизованной цели и хочешь обнаружить как можно больше реальных поддоменов, оставаясь тихим и в рамках правил вовлечения. Выбери лучший основной подход.
Почему реальная поверхность атаки почти всегда больше схемы архитектуры организации?
В ходе авторизованного перечисления ты обнаруживаешь `status.example.com`, который резолвится на страницу статуса стороннего вендора, явно исключённую твоим документом скоупа. Каков верный ход?
Упорядочь конвейер перечисления поверхности атаки, от затравки до авторизованной цели:
- 1 Старт от затравки (корневой домен или имя организации)
- 2 Обнаружение активов (найти принадлежащие диапазоны IP, облачные аккаунты, родственные домены)
- 3 Перечисление поддоменов (развернуть каждый актив в резолвящиеся хосты и сервисы)
- 4 Выявление shadow IT (найти то, что не отслеживает ни одна инвентаризация)
- 5 Проверка скоупа (подтвердить, что каждая находка в границах, прежде чем она станет целью)
- 01Дай определение поверхности атаки, объясни, почему реальная поверхность почти всегда больше схемы архитектуры, и назови три прохода перечисления, которые её картируют.
- 02Сопоставь пассивное и активное перечисление поддоменов и объясни дисциплину скоупа, удерживающую авторизованную оценку авторизованной.
Картирование поверхности атаки — это дисциплина видеть своё хозяйство так, как видит его атакующий: плоско, целиком и безразлично к оргструктуре. Поверхность атаки — это всё реально достижимое: каждый резолвящийся поддомен, открытый сервис, API, облачный бакет и интеграция, — и она почти всегда больше схемы архитектуры, потому что схема показывает намеренные системы, а выставленность включает shadow IT, забытые staging-хосты, висящий DNS и несанкционированное облако, которые никто не отслеживал. Этот разрыв между намеренным и реальным — место, где живут пробои, и забытый, незащищённый хост и есть тот, который падает первым. Ты закрываешь разрыв тремя проходами перечисления — обнаружение активов (чем владеем, через WHOIS, регистрации ASN, прозрачность сертификатов и облачные инвентаризации), перечисление поддоменов (пассивно сначала через прозрачность сертификатов, затем точечно активным брутфорсом и тестами передачи зоны) и выявление shadow IT (неотслеживаемые системы, где прячутся настоящие находки). Всё это живёт внутри авторизованного скоупа: разведка — это тактика MITRE ATT&CK TA0043, техники применимы только к активам в скоупе, а обнаруженный хост — это результат для сверки со скоупом, а не автоматически цель. Теперь, глядя на систему, первый вопрос не «укреплено ли боевое приложение?», а «что я на самом деле выставляю наружу, владеть чем в команде уже никто не помнит?»
Практика
Начни сверху. Задачи идут от простого к сложному: вспомнить факт, применить к случаю, затем senior-уровень. Открой, попробуй, потом открой ответ.
Что-то непонятно?
Задай вопрос по этому уроку. Вопросы анонимны и попадают напрямую автору — урок станет лучше.
Примени это
Примени этот урок в реальном проекте.