Skip to content
Apothem
セキュリティ

バイナリ成果物スイープ

Apothem のバイナリ成果物スイープ — ソースに追跡されるコンパイル済み/パッケージ化済みバイナリはゼロ。OpenSSF Scorecard の Binary-Artifacts チェックの証拠。

OpenSSF Scorecard の Binary-Artifacts チェックは、ソースツリーがコンパイル済み/パッケージ化済み/不透明なバイナリ成果物を一切含まないことを検証します。ソース内のバイナリは監査不能であり、サプライチェーン攻撃の足がかりになります。バイナリはソースツリーが表に出さないコードを埋め込んでいるため、レビュアーはマージ前にそれを検査できません。

Apothem のバイナリ成果物に対する姿勢

Apothem は純粋な Python のソースツリーであり、バージョン管理に追跡されるコンパイル済み・パッケージ化済み・不透明なバイナリ成果物はゼロです。リポジトリはソースから端から端まで監査可能です。

スイープの方法論

スイープは Scorecard がバイナリとみなすファイル種別を列挙し、それぞれがバージョン管理に存在しないことを検証します。

拡張子ファミリ説明Apothem の状態
.exe、.dll、.so、.dylibコンパイル済みネイティブバイナリ✅ 追跡ゼロ
.bin、.o、.a、.libオブジェクトファイル / 静的ライブラリ✅ 追跡ゼロ
.jar、.war、.earJava パッケージ✅ 追跡ゼロ
.whl、.eggPython ディストリビューション✅ 追跡ゼロ(dist/ にビルド。gitignore 対象)
.tar.gz、.zip(ビルド済みディストリビューション)ビルド成果物を含む圧縮アーカイブ✅ 追跡ゼロ
.class、.pyc、.pyoコンパイル済みバイトコード✅ 追跡ゼロ(__pycache__/ は gitignore 対象)
.crt、.pem、.key、.p12、.pfx暗号資材✅ 追跡ゼロ(.gitignore で拒否)

許可されるバイナリ区分

ソースには、ごく限られた 2 区分のバイナリ成果物が許可されています。

  1. ブランドアセット — assets/*.png、assets/*.ico、assets/favicon.*。これらは scripts/dev/rebuild-assets-resvg.py を介して、assets/src/ の SVG マスターから決定的に再生成可能です。Scorecard は、その image/png の免除に基づき、これらを正当なものとみなします。
  2. フォントファイル — assets/fonts/*.ttf、assets/fonts/*.woff2。文書化されたライセンスを伴う同梱のフォントファイル。Scorecard の font/* の免除に基づきます。

両区分は 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)$'

この呼び出しはゼロ行を返すはずです。空でない結果は、バイナリ成果物がソースに追跡されたことを示します — これは次のリリースをブロックする重大度 HIGH の指摘です。

監査の頻度

このスイープは次の一部です。

  • リリースごとのチェックポイント — リリースエンジニアリングのランブックが、タグ付けの前にスイープを検証します。
  • 週次の Scorecard 実行 — OpenSSF Scorecard のワークフローが、チェックの合格を再確認します。

参考資料

On this page