efs — Easy FSTEC SBOMs
CLI-приложение для подготовки перечня заимствованных программных компонентов под требования ФСТЭК России и ГОСТ Р 56939-2024: генерация SBOM, валидация, обогащение ссылками на исходный код и ГОСТ-свойствами, объединение и экспорт в CSV/ODT.
Формат — CycloneDX 1.6 (JSON) с расширениями ГОСТ (GOST:attack_surface, GOST:security_function, GOST:source_langs, GOST:provided_by).
Требования
- Python 3.12 или выше
- cdxgen или trivy — для генерации SBOM
- git, subversion, mercurial — опционально, для проверки ссылок на репозитории
Установка
uv tool install efs-sbom # или: pip install efs-sbom
Из исходников:
git clone https://github.com/happykust/efs.git
cd efs
uv sync
Быстрый старт
efs scan # сгенерировать SBOM (cdxgen или trivy)
efs config init bom.json # создать конфиг из SBOM
# отредактировать .efs-config.json
efs postprocess bom.json result.json \
--app-name "МойПродукт" --app-version "1.0.0" --manufacturer "ООО МояКомпания"
efs check result.json # проверить схему и заполненность
efs export odt result.json perechen.odt # выгрузить документ
Или пройти всё через интерактивный мастер:
efs init
efs check возвращает 0, если перечень готов, 1 при ошибках схемы и 3, если перечень не заполнен, — команда годится для проверки в CI.
Документация
| Документ | О чём |
|---|---|
| Подготовка перечня под ФСТЭК | Путь от исходников до готового документа: что требуется, что заполняется автоматически, а что руками |
| Справочник команд | Все команды с аргументами и примерами |
Конфиг .efs-config.json |
Структура конфига, ГОСТ-свойства, исключения, pedigree, языки |
Пример заполненного перечня — examples/example-sbom.json; он проходит efs check и годится как образец.
Разработка
uv sync # зависимости, включая dev-группу
uv run pytest # тесты
uv run ruff check . # линтер
uv run ruff format . # форматирование
Как оформлять изменения и выпускать релизы — в CONTRIBUTING.md. Об уязвимостях сообщайте по процедуре из SECURITY.md, не через публичный issue. Правила общения — в CODE_OF_CONDUCT.md.
Происхождение
Проект является производной работой от sbom-checker, разработанного в Институте системного программирования РАН (ИСП РАН) и распространяемого на условиях Apache License 2.0. Атрибуция приведена в файле NOTICE.
Лицензия
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file efs_sbom-1.0.3.tar.gz.
File metadata
- Download URL: efs_sbom-1.0.3.tar.gz
- Upload date:
- Size: 263.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f22f1333915e2b607f6a981dfd2fa688bccd3d037ad41f1411604d1ad9eb908
|
|
| MD5 |
ce36ca2bead82a780b328a816be10076
|
|
| BLAKE2b-256 |
4bc033cacac24d617ab40e0d0e2943d3d5ffe8ba3998464c057aea9ac478f8af
|
Provenance
The following attestation bundles were made for efs_sbom-1.0.3.tar.gz:
Publisher:
release.yml on happykust/efs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
efs_sbom-1.0.3.tar.gz -
Subject digest:
4f22f1333915e2b607f6a981dfd2fa688bccd3d037ad41f1411604d1ad9eb908 - Sigstore transparency entry: 2636659251
- Sigstore integration time:
-
Permalink:
happykust/efs@30ba4a90734fdab5777ddd6393c95c65b29d91bb -
Branch / Tag:
refs/tags/v1.0.3 - Owner: https://github.com/happykust
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@30ba4a90734fdab5777ddd6393c95c65b29d91bb -
Trigger Event:
push
-
Statement type:
File details
Details for the file efs_sbom-1.0.3-py3-none-any.whl.
File metadata
- Download URL: efs_sbom-1.0.3-py3-none-any.whl
- Upload date:
- Size: 188.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
08ac2382a3608f0e07849b19f21852ef9f6e566ffc4cb3c479ca4628397e6967
|
|
| MD5 |
ec8ce1bfc78a72f09c489d1cc9920f68
|
|
| BLAKE2b-256 |
1923d3133cc260296a5d64b816d4b91970d62f3247103f8cfaac3266b2639c95
|
Provenance
The following attestation bundles were made for efs_sbom-1.0.3-py3-none-any.whl:
Publisher:
release.yml on happykust/efs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
efs_sbom-1.0.3-py3-none-any.whl -
Subject digest:
08ac2382a3608f0e07849b19f21852ef9f6e566ffc4cb3c479ca4628397e6967 - Sigstore transparency entry: 2636659322
- Sigstore integration time:
-
Permalink:
happykust/efs@30ba4a90734fdab5777ddd6393c95c65b29d91bb -
Branch / Tag:
refs/tags/v1.0.3 - Owner: https://github.com/happykust
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@30ba4a90734fdab5777ddd6393c95c65b29d91bb -
Trigger Event:
push
-
Statement type: