Журнал "Information Security/ Информационная безопасность" #5, 2025

Эту тему мы обсуждали на конферен- ции OFFZONE – международной конфе- ренции по практической кибербезопас- ности, которая ежегодно собирает в Москве тысячи специалистов и сотни экспертов. Живучие тени инфраструктуры Легаси-сервисы – самые живучие соз- дания на свете. Их не трогаешь годами, никто уже не помнит, кто их писал и зачем, но они все еще отвечают на запросы из интернета. А рядом – тесто- вые окружения, которые когда-то вре- менно открыли наружу для отладки и так и забыли закрыть. Иногда бывает еще веселее: сетевой инженер ночью под- крутил настройки, что-то пошло не так, и внезапно внутренний сервис стал доступен извне. Все это не теория – обычные находки нашего сканера. Мы видели открытые панели управления, старые API с токенами, неубранные бан- неры с именами систем. И каждая такая мелочь – потенциальная точка входа. Один забытый порт может стоить мил- лиона, как в кейсе университета Сан- Франциско 1 . Периметр не рушится одно- моментно – он просто постепенно зарас- тает сорняками, если за ним не следить. Почему стандартные сканеры не справляются? Когда мы только начинали разбирать- ся с периметром, казалось, что все про- сто: поставь nmap, запусти cron, собери отчет. Но через пару дней стало очевид- но – на масштабе VK это не работает. Nmap хорош, когда у тебя десяток сер- веров. Когда их десятки тысяч, он пре- вращается в тихий, но бесконечный про- цесс. Даже минимальное сканирование могло занять часы, а то и сутки, и пока мы ждали результат, часть сети уже успевала измениться. Mascan, наоборот, летал как Доминик Торетто – быстро, шумно и с вау-эффек- том. Но co скоростью приходила неточ- ность: до 40% открытых портов он просто не видел. Да и с баннерами – беда. Хотели узнать, что реально висит на 443-м? А он отвечает: "Ну, вроде HTTPS". А на деле там SSH или админка, пере- именованная для маскировки. Коммерческие сканеры сначала каза- лись спасением – готовые базы CVE, интерфейсы, интеграции. Но быстро выяснилось, что стрелять из пушки по воробьям – дорого и медленно. Они не вписывались в наши SLA, а главное, не умели гибко адаптироваться под реаль- ную инфраструктуру с IPv6, разными подсетями и геораспределением. Так стало ясно: готовых решений под BigTech просто нет. Если хочешь конт- ролировать свой периметр, придется строить систему под себя – быструю, распределенную и достаточно умную, чтобы отличить реальную дыру от лож- ноположительных срабатываний. Как мы построили свой сканер nmon Когда стало понятно, что стандартные решения не вытягивают, мы решили сделать свое – не ради амбиций, а пото- му что иначе просто ничего не получа- лось. Нам нужно было покрывать огром- ный периметр, укладываться в SLA, под- держивать IPv6 и при этом не утонуть в ложных срабатываниях. Так родился nmon – внутренний распределенный ска- нер, построенный под логику большого периметра VK. Мы начали с простого: разделили инфраструктуру на ассеты – отдельные сервисы вроде VK Pay, GeekBrains, Одно- классников или ВКонтакте. Для каждого настроили собственные политики: какие порты смотреть, с какой скоростью ска- нировать, какие адреса не трогать. Белые списки спасают от бессмысленных тревог – например, когда агент пытается лезть в ханипот и срабатывает SOC. Главная идея – распределенность. Агенты стоят в разных точках: Москва, Санкт-Петербург, Сочи и другие локации. Один и тот же сервис сканируется с нескольких направлений. Если Москва видит открытый порт, а Питер – нет, значит где-то сбоит сетевой фильтр. Такая перекрестная проверка убирает половину шумовых алертов. Nmon работает в многопоточном режи- ме, синхронизируется с центральным модулем управления и складывает результаты в систему Vulnerability Man- agement, где все визуализируется и ухо- дит на обработку. Мы добавили обяза- тельное снятие баннеров – теперь сканер не просто видит, что 443 порт открыт, а говорит "это Nginx такой-то версии". В цифрах это выглядело впечатляюще: nmap сканировал 150 тыс. адресов почти два часа, mascan – 139 сек., а наш nmon справился за 28 сек., не потеряв точно- сти. Он не такой быстрый, как mascan, но почти столь же легкий и при этом работает точнее, потому что видит кон- текст. С тех пор для нас это стало стан- дартом – скорость без понимания мало чего стоит. Сложности и инженерные находки Как только ты перестаешь думать о периметре в теории и начинаешь ска- нировать его по-настоящему, приходят неприятные, но полезные уроки. Первый и самый неожиданный – провайдеры и хостеры. Мы не раз натыкались на ситуацию, когда одно и то же задание с разных площадок давало разные результаты: с одного виртуального сер- вера все шло гладко, с другого – пакеты просто дропались. Звонки в поддержку, логирование, смена провайдера – и в итоге выяснялось, что сеть реагирует на высокую частоту запросов как на DDoS и защищается. Вывод прост: надо не только уметь гонять трафик, но и дого- вариваться с инфраструктурой – снижать рейты, варьировать источники, согласо- вывать белые списки. Второй момент – самозащита целевых систем. Когда сервис начинает видеть десятки агентов с разных концов страны, 62 • ТЕХНОЛОГИИ Периметр, который живет сам по себе ы когда-нибудь заходили в супермаркет, где никого нет на кассе? Все вроде на месте, но чувство тревоги не отпускает: кто тут вообще отвечает за порядок? Так же и с инфраструктурой. Сервисы запускаются, тестовые окружения забываются, админы временно открывают порты – и периметр живет сам по себе. Когда мы в VK впервые попытались охватить его сканировани- ем с помощью обычного nmap, стало ясно: это как вычерпывать море ложкой. Пока сканируешь, сеть уже изменилась. В Максим Казенков, DevOps-специалист, VK Фото: VK 1 https://www.bleepingcomputer.com/news/security/uc-san-francisco-pays-114-million-for-ransomware-decryptor

RkJQdWJsaXNoZXIy Mzk4NzYw