TWSNMP FCの公式SBOMを作成してみた
今朝は4時半から開発開始です。
昨日、ウッドデッキの補修を手伝ってノコギリとカンナで運動したのでスッキリ起きられました。
さて、G7サミットも終わりましたが、ソフトウェアサプライチェーンの透明性が重要な時代とのことでTWSNMP FCについても対応してみようと思いました。
ソフトウェアデザインの5月号
から始まった記事でSBOMというのがあることを知りました。
SBOMについて最近流行りのAI(ChatGPTではなくGoogle Bardですが)に「SBOMとはなんですか?」と聞いてみました。
答えは、
でした。わかりやすい。
SBOMが何かわかったところで、TWSNMP FCのSBOMを作ってみることにしました。
ソフトウェアデザインの記事ではMicrosoftのsbom-tool
を紹介していました。これを試そうと思っていたのですが、インストールが面倒そうなので、他に無いか探してみました。
いつものようにGoogleさんに聞いて
を見つけました。この人によると”CycloneDX ネイティブ プラグイン”がよいらしいですが、導入が難しい。syftが無料でおすすめとのことなので、
を試してみることにしました。
GitHUBを見ると私の好きなGO言語で作られています。期待できます。
インストールも簡単でした。Mac OSなら
でインストールできました。
dockerイメージだと
でリストが出力されます。
コンテナのベースのAlpine LinuxをGO言語のモジュールが主にリストアップされます。dockerにもsbomコマンドがありました。
中身が、このsyftでした。
ソースコードのあるディレクトリを
のようにスキャンするとnpmでインストールしたモジュールもリストアップされます。
出力する形式を指定することもできます。ソフトウェアデザインで解説されていたcyclonedxとSPDXにも対応しています。
syft -o cyclonedx-json=twsnmpfc_cyclonedx.json -o spdx-json=twsnmpfc_spdx.json -o syft-table=twsnmpfc_table.txt ~/prj/twsnmp/twsnmpfc
のようにすれば、一発で複数の形式を出力できます。
これがTWSNMP FCの公式SBOMです。
明日に続く
開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。