強化したSBOMでできること:parlayクイックスタートガイド
2023年6月7日
0 分で読めます新しいオープンソースツールのparlayをリリースしました。SBOMに追加情報を付加できます。詳しくは発表ブログ記事をご覧ください。この記事では、SBOMデータに基づく意思決定においてなぜ重要なのかを簡単に説明しましたが、いくつかの手軽な使用例も役立つのではないかと思い、ご紹介します。
parlayを使うと、SBOMにさまざまな情報を追加できます。その情報を使えば、より強力なポリシーを作成できます。JSONの行数は完全な指標ではありませんが、この例ではSBOMが400%を超えて増加していることがわかります。これにより、多くのユースケースが広がります。
ライセンスポリシー
最小限の要素だけを含むSBOMには、含まれるパッケージに適用されるライセンス情報がありません。ParlayとEcosyste.msのデータを使って、その情報を追加してみましょう。
情報を充実させたSBOMができたので、より強力なポリシーを作成できます。この例では、Open Policy Agentと、その強力なRegoプログラミング言語を使います。ここでは、拒否するポリシーと警告を出すポリシーの2つのリストを作成します。
Unixパイプへの愛を引き続き発揮して、Conftestで強化したSBOMにこのポリシーを適用してみましょう。
サンプルプロジェクトでは、指定されたライセンスを使用している一部のパッケージについて、一連の警告が出力されました。
脆弱性ポリシー
もう少し複雑なことを試してみましょう。直接依存関係にあるパッケージのうち、CVSSスコアが特定の値を超える脆弱性にフラグを立てるポリシーを作成します。パッケージデータ、依存関係データ、脆弱性データが必要となる好例です。
次に、SBOMを生成するか既存のものを使い、Snykの脆弱性データで強化したうえで、Conftestを使ってポリシーを適用します。
ここでは、条件に一致する脆弱性が1件報告されています。
これはあくまで一例です。Open Policy Agentで使われるRego言語を使えば、必要に応じて複雑なロジックを記述できます。別のポリシーツールを使いたい場合も、同様に利用できるはずです。
このソフトウェアの作者は誰?
最後にもう1つ、簡単な例をご紹介します。次の例では、parlayでSBOMを強化した後、jqとawkを使って役立つ情報を出力します。ここでは、各パッケージの作者名を取り出しています。繰り返しになりますが、この情報は最小限の要素だけを含むSBOMには記載されていないことがよくあります。
情報を充実させたSBOMデータでできることはほかにもたくさんありますし、SBOMに追加すると役立つデータもまだまだあります。どんな情報があればよいか、ぜひお聞かせください。また、parlayを使った実験例もぜひ共有してください。
