Webrium
Подписаться

Что о вашей компании видно снаружи

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

Сетка ячеек — список активов компании, заполнена лишь часть; рядом счётчик показывает большее число: столько всего о компании видно снаружи, чего нет в списке.видно снаружи

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

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

Тупик: сначала сканер

Первое, что пробуют почти все: взять сканер, натравить его на свои адреса и получить список брешей. Выглядит как работа, звучит как работа — и не отвечает на главный вопрос.

Дело в устройстве инструмента. Сканер отвечает на вопрос «что не так с хостами из моего списка», а список вы даёте сами: из учётной системы, из памяти, из того, что компания считает своими активами. Аудит видимости нужен ровно для другого — узнать, чего в списке нет. Забытый стенд, домен, зарегистрированный на человека, а не на компанию, сервис, поднятый в облаке без ведома тех, кто ведёт учёт, старая DNS-запись, указывающая на давно выключенную машину, — всё это вне задания. Сканер промолчит не потому, что плох, а потому что его так спросили.

Пентест — та же ловушка, только дороже: границы теста согласуют по тому же списку. Не попал поддомен в договор — тестер его не увидит, и вы вместе с ним.

И третий слой слепоты: сетевые инструменты в принципе не читают вакансии, архивы и базы утечек. А именно там лежит то, по чему выбирают цель.

Порядок, из которого мы исходим: сначала перечень того, что видит посторонний, потом инструменты по этому периметру. Не «вместо» — «до».

Шаг ноль: якорный список

Аудит не бывает шире списка того, что вы считаете своей компанией. Выпишите заранее: домены, бренды, юридические лица, продукты с отдельными именами. Если про домен, зарегистрированный «на всякий случай», никто не вспомнит — его не проверит никто, включая вас.

Служебное: делайте проверки не из офисной сети и не через корпоративные DNS — внутренний взгляд отличается от внешнего, а нужен именно внешний. И всё описанное ниже — только про свои домены и свои адреса.

Если по ходу всплывает актив компании, которого нет в списке, — это не шум, а первая находка.

Что видно снаружи и где это смотреть

DNS и сертификаты: скелет

DNS публичен по устройству. Записи MX и SPF показывают, у кого вы держите почту и кто ваши почтовые провайдеры; TXT-записи с проверочными строками — квитанции о сервисах, которые вы подключали: каждая строка проверки — чей-то сервис. Имена поддоменов рассказывают про устройство: vpn, git, ci, test, stage — это структура, изложенная вслух. Бывает и обратное: записи, указывающие на уже не существующие машины, — след забытой инфраструктуры.

Главный источник здесь — публичные журналы, куда попадает каждый сертификат, который должны принимать браузеры. Выгрузите по своему домену все имена, на которые когда-либо выпускались сертификаты, и сверьте со своей инвентаризацией. Внутренние имена попадают в сертификаты, потому что их заказывают как обычные, — и в журнал тоже. Разница двух списков и есть ядро результата: активы, о которых вы не знали. Журнал к тому же опережает сканеры: имя появляется в нём раньше, чем сервис начинает отвечать. Выпускать wildcard-сертификаты вместо отдельных имён можно, это уменьшает утечку имён — но не отменяет саму сверку.

Слой применим ко всем, у кого есть домен; чем старше компания, тем интереснее сверка.

Сервисы и файлы: то, что отвечает

С чистой внешней точки проверьте, что отвечает на ваших адресах: админ-панели, тестовые стенды, API, удалённый доступ. На каждый ответивший сервис два вопроса: должен ли он отвечать снаружи вообще — и что кричит его баннер: имя продукта, версия, внутренний код. Молчащий баннер — это дороже для того, кто присматривается.

Файлы: каталог .git в корне сайта, резервные копии, конфиги с паролями, выгрузки таблиц. Способы — перебор типовых имён каталогов и поисковые запросы по типам файлов на своём домене. И помните про архивы веба: «удалить со страницы» не значит «убрать из мира».

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

Утечки и код

Адреса вашего домена в агрегаторах утечек искать нужно, но считать бесполезно. Полезно вычитать: список адресов из утечек минус список активных ящиков — получится очередь на принудительную смену паролей. Отдельная строка очереди — адреса уволенных: там, где отключение учёток делается руками, ящики переживают людей, и почта ушедшего сотрудника — готовая дверь к восстановлению паролей и корпоративной переписке.

Код: поищите свой домен на публичных хостингах кода — рядом с доменом часто живут адреса внутренних систем и ключи. Личные репозитории сотрудников с рабочим кодом — туда же. И откройте собственную фронтенд-сборку: всё, что попало в браузер, публично по определению; поищите в собственном JavaScript то, что похоже на ключ.

Документы: скачайте с собственного сайта все PDF и прочитайте свойства. Имена авторов, внутренние пути, забытые комментарии — дёшево, быстро, отрезвляюще.

Слой работает при любом размере компании; очередь растёт с возрастом.

Люди и тексты

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

К каждому публичному артефакту один вопрос: «что этот текст говорит о том, как мы устроены внутри?»

Вес слоя растёт, если в вашей модели угроз есть адресная социальная инженерия — тогда «люди» важнее «портов».

Как превратить находки в работу

Результат аудита — таблица, а не отчёт: что нашли / где / кто владелец / что делать / к какому сроку. Колонка владельца — место, где умирают аудиты: находка без имени рядом не закрывается, потому что закрытие — это чьё-то решение о простое, а «общими силами» такие решения не принимаются. Срок в таблице — дата, а не пожелание: находки без дат кочуют из отчёта в отчёт.

У каждой находки два глагола: убрать или признать. Убрать снаружи — удалить запись, закрыть порт, сменить ключ, вычистить вакансию. Признать активом — назначить владельца и поставить в учёт. Третий рефлекс — «запретить» — всерьёз не работает: архивы хранят уже опубликованное, а поток возобновляется, потому что вакансию всё равно придётся публиковать, чтобы нанять. Запрет меняет следующую публикацию, но не чистит увиденное.

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

Сам аудит — заодно проверка вашей мониторинговой системы. Первый проход предупредите своих: сэкономите нервы и отличите аудит от атаки. Когда аудит станет регулярным — попробуйте молча: если перечисление вашего периметра никто не заметил, это тоже находка, и она идёт в ту же таблицу.

Регулярность лучше строить не по календарю, а по триггерам: новый сертификат в журнале, новый отвечающий поддомен, новая вакансия, адрес домена в свежей утечке. Календарный аудит стареет между датами; триггер срабатывает в момент появления. Дёшево, потому что триггер сверяет списки, а не сканирует сети.

Позиция редакции

Мы считаем: периметр компании — то, что видит посторонний без паролей. Запись в учётной системе — намерение, а не периметр. Отсюда порядок трат: аудит видимости — до закупки средств защиты, потому что закупка усиливает известное, а риск живёт в неизвестном. И вести аудит должен тот, кто распоряжается сроками и бюджетом: половина находок — не тикеты, а решения «закрыть или признать», и принимать их нечему, кроме вас.

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

С чем это связано

Метка над заголовком говорит, зачем туда идти: продолжить тему, перейти к практике или увидеть возражение.

Среди нескольких сборок поиском выделена одна — та, что содержит искомую библиотеку: так перечень отвечает на запрос вместо мёртвого файлавсе сборкиесть библиотека
Усиление

Цепочка поставок: перечень, который кто-то читает

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

Цепочка шагов конвейера CI: чужой код входит, исполняется с ключами, и последний шаг — публикация — штатно выводит секрет за границу доверияграница довериясекрет наружу
Углубление

Секреты в CI: пять типовых утечек

Хранение секретов в хранилище и маскирование логов не спасают от утечки. Разбираем, почему защита не срабатывает, и показываем пять типовых мест, где конвейер CI теряет ключи.

Два маршрута обновления зависимостей: короткий путь откладывания обходится дорого, длинный путь регулярных обновнений — дёшевоОтложить — дорогоОбновлять — дёшево
Практика

Политика обновления зависимостей, которую соблюдают

Матрицы дедлайнов и «день обновлений» заводят в тупик — разбирается, почему. И как построить политику, где обновлять зависимости дешевле, чем откладывать: два потока (рутина и безопасность), порог отставания, порядок действий.

Письмо по вторникам

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

Начните вводить — материалы появятся здесь.

выбрать · Enter открыть · Esc закрыть