Программа безопасности публичного интернета
Сделать интернет безопаснее.
NullSquare находит очевидные, видимые снаружи ошибки конфигурации безопасности и приватно уведомляет отвечающие за них организации. Та же программа изучает публичный открытый код в поисках проблем, которые мы можем воспроизвести, исправить и доказать.
Почему вы получили сообщение
Один из наших агентов нашёл на домене вашей организации нечто, открытое публичному интернету. Мы написали вам приватно, чтобы ваша команда могла это проверить и закрыть. Мы никому больше не сообщали и ничего не публиковали.
Что проверяет программа
Программа смотрит только на то, что и так видно из публичного интернета:
- Сервис, доступный из интернета, хотя не должен быть.
- Административный интерфейс, открытый всякому, кто его найдёт.
- Инструмент разработки или отладки, оставленный работать публично.
- Листинг каталога, отдающий файлы, которые отдавать не следовало.
- Дефолтная страница деплоя, всё ещё стоящая на боевом хосте.
- Похожая ошибка конфигурации, которую любой мог бы найти тем же способом, что и мы.
Агент берёт ровно столько, сколько нужно, чтобы назвать затронутый домен или сервис и сказать, какого рода это проблема. Дальше он не заходит.
Исследование открытого кода
Уведомление сокращает открытую поверхность атаки. Код под ней оно не чинит. Поэтому программа работает и у истока: мы берём по одному публичному open-source репозиторию за раз и изучаем его в одноразовой песочнице, ища проблему безопасности, которую сможем доказать.
Утверждение агента, что нечто уязвимо, — не подтверждённый риск, и вывод сканера тоже. Ничто не засчитывается, пока оно не воспроизведётся, исправление не устоит, а обе вещи не будут записаны так, чтобы другой человек мог их повторить.
- 01ЗафиксироватьРепозиторий клонируется на точном коммите в одноразовую песочницу без продовых учётных данных.
- 02Базовый прогонСобственные сборка и тесты проекта запускаются до всякого исследования, чтобы знать, что уже проходило.
- 03ИсследоватьАгент читает и прогоняет код внутри песочницы — на той самой зафиксированной ревизии.
- 04ВоспроизвестиКандидат засчитывается только тогда, когда воспроизводится с чистого checkout, без остатков состояния от разведки.
- 05ИсправитьНаименьшее разумное исправление плюс регрессионный тест там, где проект делает его практичным.
- 06ПроверитьВоспроизведение прогоняется заново до и после исправления, а собственные проверки проекта запускаются ещё раз.
- 07Проверить человекомРезультат принимает или отклоняет человек. Ничто не покидает лабораторию автоматически.
Тесты никогда не удаляют, не пропускают и не ослабляют, чтобы объявить о прохождении. Если работа не берёт планку, ответ такой: подтверждённого риска нет — с записью о том, что пробовали и что проверить не удалось. В любом случае прогон даёт один и тот же пакет:
Пакет доказательств
Внутренний, проверен человеком и никогда не публикуется самой лабораторией.
- summary.md
- Что пробовали, что нашли и что проверить не удалось.
- risk.md
- Первопричина, затронутый путь в коде и честная оценка уверенности.
- reproduction/
- Команда и наблюдаемые свидетельства на неисправленной ревизии.
- patch.diff
- Минимальное исправление, привязанное к зафиксированному коммиту.
- tests/
- Регрессионный тест, который падает до исправления и проходит после.
- verification.md
- Результаты до и после вместе с выводом сборки, тестов и линтера.
- run-metadata.json
- Репозиторий, точный коммит, модель, длительность и стоимость.
Чего программа не делает
- Никакого подбора паролей, перебора учётных данных или обхода аутентификации.
- Никакой эксплуатации, разрушающего тестирования, повышения привилегий или цепочек уязвимостей.
- Никакого сбора приватных файлов, клиентских записей, исходного кода или контента за авторизацией.
- Никакой публикации, продажи или публичной индексации найденных проблем.
- Никакого тестирования живой или размещённой среды во время исследования. Работа идёт только с локальным клоном.
- Никаких форков, веток, коммитов, пушей, пул-реквестов или issue. У лаборатории нет прав записи в репозиторий.
- Лаборатория сама не связывается с мейнтейнерами, не выпускает бюллетени, не запрашивает CVE и не подаёт заявки на баунти.
- Никакого массового сканирования публичных хостингов кода. Репозитории выбираются по одному и осознанно.
Конфиденциальность и обращение с данными
Уведомления отправляются напрямую подходящему публичному контакту домена. Сессия обнаружения удаляется после доставки сообщения, и NullSquare не ведёт поисковую базу рисков из этой программы.
Исследовательские прогоны работают только с публичным исходным кодом. Песочница уничтожается после прогона, а пакет доказательств остаётся внутренним. Если результат когда-либо доносят до мейнтейнера, это отдельное и осознанное решение, принятое человеком.
Минимальные записи о доставке писем, защите от злоупотреблений и отказе от рассылки могут храниться отдельно. В них нет скопированных данных цели или вывода эксплойтов.
Проверить уведомление или ответить на него
Настоящее сообщение «Secure the internet» никогда не попросит учётные данные, оплату, ключи API или доступ к вашим системам. Вы можете ответить на сообщение, попросить отписать вас, исправить контакт или проверить его происхождение напрямую у NullSquare.
null@nullsquare.net