Проверка бинарных артефактов
Проверка бинарных артефактов Apothem — ноль скомпилированных / упакованных бинарников, отслеживаемых в исходном коде. Доказательство для проверки Binary-Artifacts в OpenSSF Scorecard.
Проверка Binary-Artifacts в OpenSSF Scorecard подтверждает, что дерево исходного кода не содержит ни одного скомпилированного / упакованного / непрозрачного бинарного артефакта. Бинарники в исходном коде не поддаются аудиту и дают точку опоры для атак на цепочку поставок: бинарник встраивает код, который дерево исходного кода не раскрывает, поэтому рецензенты не могут проверить его перед слиянием.
Позиция Apothem по бинарным артефактам
Apothem — это дерево исходного кода на чистом Python без каких-либо скомпилированных, упакованных или непрозрачных бинарных артефактов, отслеживаемых в системе контроля версий. Репозиторий поддаётся сквозному аудиту из исходного кода.
Методология проверки
Проверка перечисляет типы файлов, которые Scorecard считает бинарными, а затем убеждается, что каждый из них отсутствует в системе контроля версий:
| Семейство расширений | Описание | Статус Apothem |
|---|---|---|
.exe, .dll, .so, .dylib | Скомпилированные нативные бинарники | ✅ Ноль отслеживаемых |
.bin, .o, .a, .lib | Объектные файлы / статические библиотеки | ✅ Ноль отслеживаемых |
.jar, .war, .ear | Пакеты Java | ✅ Ноль отслеживаемых |
.whl, .egg | Дистрибутивы Python | ✅ Ноль отслеживаемых (собираются в dist/; исключены через gitignore) |
.tar.gz, .zip (собранный дистрибутив) | Сжатые архивы, содержащие собранные артефакты | ✅ Ноль отслеживаемых |
.class, .pyc, .pyo | Скомпилированный байт-код | ✅ Ноль отслеживаемых (__pycache__/ исключён через gitignore) |
.crt, .pem, .key, .p12, .pfx | Криптографический материал | ✅ Ноль отслеживаемых (запрещён в .gitignore) |
Разрешённые классы бинарников
В исходном коде ДОПУСКАЮТСЯ два узких класса бинарных артефактов:
- Брендовые ресурсы —
assets/*.png,assets/*.ico,assets/favicon.*. Они детерминированно регенерируются из SVG-мастеров вassets/src/черезscripts/dev/rebuild-assets.{sh,ps1}. Scorecard считает их легитимными согласно исключениюimage/png. - Файлы шрифтов —
assets/fonts/*.ttf,assets/fonts/*.woff2. Поставляемые в комплекте файлы шрифтов с документированными лицензиями; согласно исключениюfont/*Scorecard.
Оба класса задокументированы в site/content/docs/brand/index.mdx, а их происхождение зафиксировано в рецепте пересборки ресурсов.
Команда проверки
# Из корня репозитория apothem:
git ls-files | grep -E '\\.(exe|dll|so|dylib|bin|o|a|lib|jar|war|ear|whl|egg|class|pyc|pyo|crt|pem|key|p12|pfx)$'Этот вызов должен вернуть ноль строк. Непустой результат указывает, что бинарный артефакт был отслежен в исходном коде — находка ВЫСОКОЙ серьёзности, блокирующая следующий релиз.
Периодичность аудита
Проверка входит в состав:
- CI на каждый PR —
.github/workflows/ci.ymlвключает шаг grep по бинарным артефактам. - Контрольная точка на каждый релиз — ранбук релиз-инжиниринга проверяет проверку перед установкой тега.
- Еженедельный запуск Scorecard — рабочий процесс OpenSSF Scorecard повторно подтверждает прохождение проверки.
Ссылки
- OpenSSF Scorecard — проверка Binary-Artifacts
.gitignoreApothem — список запретов, предотвращающий случайную фиксацию бинарников