Suveren
Проверка сайта и компании для работы в России
иностранные сервисы · 152-ФЗ · блокировки · защита почты · безопасность · ЕГРЮЛ и санкции
Укажите адрес сайта, и через минуту у вас будет отчёт: что на сайте держится на иностранных сервисах, какие требования закона нарушены и какой штраф за это грозит, можно ли подделать письмо от имени компании и что исправить в первую очередь. Каждый вывод подкреплён доказательством: DNS-записью, заголовком ответа, цитатой из политики, адресом скрипта.
Проверка пассивная: Suveren смотрит только то, что видит любой посетитель, — публичные DNS-записи, открытые реестры и страницы сайта. Никакого сканирования портов и подбора паролей.
На картинках — выдуманные сайты в зарезервированной зоне .test: это данные настоящих
проверок, в которых имена, адреса и IP заменены, чтобы не показывать чужие компании.
Что проверяет
| Вопрос | Что смотрится | |
|---|---|---|
| 🌍 | Что отвалится при следующей волне санкций? | DNS, почта, хостинг, CDN, конструктор сайта, регистратор, SSL-сертификат, скрипты и виджеты. Оценка независимости от A до F и план переезда на российские сервисы |
| ⚖️ | Соблюдает ли сайт 152-ФЗ? | политика и её содержание, согласия в формах, cookies, трансграничная передача, хранение данных в России, реестр операторов ПДн, вход через Google и Apple, рекомендательные технологии. Сумма возможных штрафов по КоАП |
| 🚫 | Открывается ли сайт в России? | домен и IP-адреса в реестре блокировок Роскомнадзора, заблокированные сервисы на страницах |
| ✉️ | Можно ли подделать письмо от имени компании? | SPF, DMARC, DKIM, MTA-STS и простой ответ: да, частично или нет |
| 🔓 | Нет ли забытых поддоменов, которые можно захватить? | поддомены из журналов сертификатов, ведущие на удалённые проекты в чужих сервисах |
| 🛡️ | Чей код выполняется на сайте? | сторонние и брошенные скрипты, уязвимые версии библиотек, ключи в коде, CSP, HSTS, cookies, TLS |
| 🏢 | С кем мы имеем дело? | компания в ЕГРЮЛ, санкционные списки США, ЕС и Великобритании, реестр операторов ПДн |
Всего около 60 проверок, у каждой постоянный ID — их список в docs/checks.md. Находки из разных разделов собираются в сценарии атак: например, «почту можно подделать» + «на сайте есть оплата» = фишинг от имени компании.
Кому пригодится: владельцам бизнеса и ИТ-директорам, веб-студиям для аудита сайтов клиентов, юристам и ответственным за персональные данные, отделам закупок для проверки контрагентов.
Как запустить
Windows: двойной клик
Скачайте Suveren.exe со страницы Releases и
запустите. Python не нужен. Windows может предупредить о неизвестном издателе: нажмите
«Подробнее» → «Выполнить в любом случае». Exe собирается из этого кода на GitHub Actions.
Откроется меню — командную строку знать не нужно:
Из исходного кода то же меню открывает Suveren.bat: скачайте репозиторий
(Code → Download ZIP), распакуйте и запустите батник. При первом запуске он сам установит
всё нужное (нужен Python 3.11+).
Любая система
pip install "suveren[browser]"
suveren scan example.ru
Docker
docker build -t suveren https://github.com/marsilid/suveren.git
docker run --rm -v "$PWD:/work" suveren scan example.ru
Отчёт
Отчёт сохраняется в папку reports/ и сам открывается в браузере. Сверху — оценки, сумма
возможных штрафов и что сделать в первую очередь; под каждой проблемой — доказательство,
статья закона и как исправить.
Раздел 152-ФЗ: каждая проверка со ссылкой на статью закона и возможным штрафом.
Команды
| Команда | Что делает |
|---|---|
suveren scan сайт.ru |
полная проверка сайта |
suveren batch sites.txt |
проверка списка сайтов: сводная таблица, CSV и отчёт по каждому |
suveren company <ИНН, ОГРН или сайт> |
ЕГРЮЛ, санкционные списки, реестр операторов ПДн |
suveren diff old.json new.json |
что изменилось между двумя проверками |
suveren checks [ID или тег] |
все проверки с ID и тегами |
suveren services [фильтр] |
база распознаваемых сервисов |
suveren update |
скачать свежие санкционные списки и реестр блокировок |
suveren doctor |
проверить, что все источники данных отвечают |
suveren audit reports/ |
не противоречат ли отчёты сами себе |
suveren unknown |
внешние домены, которых нет в базе сервисов |
suveren menu |
меню (то же, что двойной клик по exe) |
Главные параметры scan:
| Параметр | Что делает |
|---|---|
--browser, -b |
открыть сайт в браузере (Edge или Chrome): видны скрипты, которые подгружаются динамически |
--profile quick|standard|deep |
quick — только иностранные сервисы; standard — все проверки (по умолчанию); deep — в браузере, до 12 страниц и с экспериментом --cutoff |
--checks mail,SUV-LAW-001 |
только нужные проверки: по ID, префиксу или тегу |
--pages N |
сколько внутренних страниц проверить кроме главной (по умолчанию 6) |
--cutoff |
эксперимент: открыть сайт без иностранных сервисов и показать, что сломается |
--form-leaks |
эксперимент: уходят ли данные из форм сторонним сервисам до отправки (только для своих сайтов или с согласия владельца) |
--pdf файл.pdf |
сохранить отчёт ещё и в PDF |
--brand-name, --brand-logo, --brand-url |
отчёт под брендом вашей студии |
--json файл.json, --sarif файл.sarif |
результат для diff, CI и сканеров безопасности |
--since прошлый.json |
что изменилось с прошлой проверки |
--fail-under C, --fail-on fail |
ненулевой код выхода для CI |
--dns ru |
DNS-запросы только через Яндекс DNS: имена доменов не уходят за рубеж |
--no-mail, --no-security, --no-subdomains, --no-152fz, --no-blocklist |
пропустить раздел |
Полный список — suveren scan --help, подробности по каждой проверке —
в руководстве.
Проверка компании
suveren company 7707083893 # по ИНН
suveren company 1027700132195 # по ОГРН
suveren company example.ru # ИНН будет найден на сайте
Данные из ЕГРЮЛ (статус, дата регистрации, руководитель), проверка компании и руководителя по санкционным спискам США, ЕС и Великобритании, реестр операторов ПДн и сверка с сайтом. Совпадения по ИНН и ОГРН точные, по названию и ФИО — возможные, их нужно проверить вручную.
Много сайтов сразу
Для веб-студий: файл со списком сайтов, по одному в строке.
suveren batch sites.txt --browser
В reports/batch-… появятся сводная таблица index.html, summary.csv для Excel и отчёт по
каждому сайту.
Для CI
suveren scan example.ru --no-open --sarif suveren.sarif --fail-on fail
SARIF читают GitHub и GitLab code scanning и DefectDojo. Коды выхода, формат JSON и плагины со своими проверками описаны в руководстве и docs/plugins.md.
Источники данных
Все источники открытые и бесплатные, ключи API не нужны: DNS, Team Cymru (сети IP-адресов),
RDAP и WHOIS, ЕГРЮЛ (ФНС), реестр операторов ПДн и реестр блокировок Роскомнадзора, журналы
сертификатов (crt.sh, Cert Spotter), санкционные списки OFAC, ЕС и Великобритании.
suveren doctor проверяет, что все они отвечают; на GitHub эта проверка идёт каждый день.
Ограничения
- Отчёт помогает расставить приоритеты и не является юридическим заключением. У каждой проверки 152-ФЗ указана статья закона со ссылкой на текст, чтобы вывод можно было перепроверить.
- Проверяются главная и до 6 внутренних страниц (
--pages). Сервисы, которые есть только на остальных страницах, в отчёт могут не попасть. - Если сайт закрыт от роботов даже в браузере, проверки по коду страницы получают статус «не проверено», а не ложное «в порядке».
- Если сайт за CDN, настоящий хостинг скрыт — Suveren об этом предупреждает.
Участие
Чтобы добавить сервис в базу, программировать не нужно: это файл данных
services.json — как его заполнить, написано в
руководстве. Можно и просто открыть issue
«Добавить сервис». О найденных уязвимостях — по правилам из SECURITY.md.
pip install -e ".[dev,browser]"
pytest
ruff check . && ruff format --check .
Тесты не ходят в сеть: ответы реестров и фрагменты списков лежат в tests/fixtures.
Лицензия
Copyright © 2026 marsilid. Начиная с версии 1.1 — GNU AGPL-3.0 или более поздняя: код открыт, и любая изменённая версия, в том числе работающая как сервис, тоже должна быть открыта. Для закрытых продуктов и SaaS есть коммерческая лицензия — подробности в COPYRIGHT. Версии до 1.0.x были опубликованы под MIT и остаются под ней.
Связанный проект: ReconLens — пассивная OSINT-разведка домена с оценкой безопасности.
Metadata
Release files for suveren 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| suveren-1.1.0.tar.gz | 417.4 kB | With provenance | Details for suveren-1.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| suveren-1.1.0-py3-none-any.whl | Python 3 | none | any | Details for suveren-1.1.0-py3-none-any.whl |
Total release size: 712.4 kB
Release files / suveren-1.1.0.tar.gz
| Download URL | suveren-1.1.0.tar.gz |
|---|---|
| Size | 417.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5112281460b8bcc3623bb21cd1d6bb955e2fd3b7c65321d3dce391299c8c5717
|
|
BLAKE2b-256 checksum How to use checksums |
e2afe1d064d46b988a355c04c65cc7f26f8cdf2ec45022d18e9587fa4ed52460
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 30, 2026.
Transparency logRelease files / suveren-1.1.0-py3-none-any.whl
| Download URL | suveren-1.1.0-py3-none-any.whl |
|---|---|
| Size | 295.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ea2f0bbae8882d0543e0cae9fd1cc5ce46fd04e58558d7f8af5d9009d0acbcd3
|
|
BLAKE2b-256 checksum How to use checksums |
03ac85fa8e7f73f663c600459ebf920df7ee8c9af8c6104b9c5dd9ff1e723fa0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 30, 2026.
Transparency logSecurity for suveren 1.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for suveren-1.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 30, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.