はじめに
こんにちは!先月は生成AI活用事業がメイン業務だったなーがです。9月はインターンやセミナー、初出張などイベントが盛り沢山でした。前回から少し時間が空いてしまいましたが、久しぶりにSBOMについて書こうと思います。今回はSCANOSSについてみていきます。SBOMについてよく分からないという方は、まずこちらの記事を読んでみてください。
- SCANOSSについて ← 今回
- 検証用GUIツール「SBOM Workbench」
- Pythonのライブラリ「scanoss.py」
SCANOSSについて
SCANOSSは2020年に設立されたスペインに本社を置くソフトウェア企業で、今回調査したSBOMツール「SCANOSS」を開発している企業になります。メンバーとしてはOSSライセンス&セキュリティ管理ツールとして有名なBlack Duckの元CROやFOSSIDの共同創業者を始めとした10年以上のSCA経験を持つエンジニアのグループとなっています。
SCANOSSを開発するきっかけとしては従来のOSSコンプライアンスソリューション(SCAツール)に不満を抱いており、以下のように述べられています。
SCA(Software composition analysis)市場は一握りの商用ソフトウェアベンダーによって20年近く支配されていますが、独自のフリー&オープンソースと「インテリジェンス」ビジネスモデルで現状に挑戦しています。
この現状を打開し、SCAのコモディティ化と標準化を実現するためのオープン化の戦略としては下記の3つが挙げられています。
- Open Software
- Open Data/Intelligence
- Open Standards
このようなSCAのオープンソース化に向けたプロジェクトはSCANOSSだけでなく、SCAの標準化はデファクトスタンダードになりつつあるようです。
ツールの概要
以下のように述べられています。
開発者がコードを書き始めた瞬間からコンプライアンスに準拠したコードを作成できるようにすると同時に、より広範なDevOpsチームやサプライチェーンパートナーに対して、より高いライセンスと使用状況の可視性を提供することを目指します。
リポジトリ
下記に各ツールのリポジトリがあります。
他ツールとの差別化
他のツールとの差別化としては以下のように述べられています。
- メリット
- コスト
- ベンダー製品に比べて低コスト
- 柔軟性
- 監査人ではなく、DevSecOpsのために作られており、CI/CDの統合を想定
- ベンダーロックインにならない
- 適応性
- 言語にとらわれない(特にC/C++)
- 「宣言された」依存関係だけでなく、最も完全なSBOMを作成
- 透明性
- ライセンスや脆弱性だけでなく、360°のOSSリスク「インテリジェンス」を提供
- 100%フリー&オープンソース(FOSS)
- コスト
- デメリット
- OSPO(Open Source Program Office)、法務がベンダー選定を主導
- 現状ではSCAベンダーと比較した場合に以下の機能が無い
- エンタープライズ対応のGUI
- ポリシーマネージャ
- ワークフロー
- リアルタイムの脆弱性アラート(および修復)
「宣言された」の定義は以下の通りです。
- 宣言された
- ソフトウェアのメタデータ
- 著作権声明
- ライセンスファイルとヘッダー
- 宣言された依存関係ファイル
- パッケージマニフェスト、ログなど
- 宣言されていない
- ライセンスヘッダのないファイル
- 組み込みの依存関係
- 取り除かれたヘッダ
- 盗作されたコード
- AIが生成したOSSを含むコード
- スニペット
料金
専用SaaSまたはオンプレミスで使用する場合は、有料プランを選択する必要があるようです。
https://www.scanoss.com/pricing
主な有料オプションは以下の通りです。
- 無制限のリポジトリ
- 無制限のユーザー/開発者
- 無制限のサーバー(オンプレミス)
- 可用性の保証
- スループットの保証
機能比較
ツールの機能比較は以下のようになっています。(完全な比較表を日本語訳したものです)
機能 | 無料 | 有料 | 説明 | |
SBOM生成 検出 |
スニペット検出 | 〇 | 〇 | 変更されたOSSファイル、OSSファイルの断片、Stackoverflowからのスニペット、または既知のオープンソースを含むAIによって生成されたコードの識別を可能にします。 |
高精度スニペットマッチング(HPSM) | × | 〇 | より精度の高いスニペット検出を可能にし、ノイズを除外する。 | |
言語に依存しない | 〇 | 〇 | 特定のプログラミング言語で書かれたコードを検出するための制限はありません。 | |
基本的な依存性の検出 | 〇 | 〇 | コード内にある依存ファイルやパッケージマネージャのファイルから依存関係を検出する。 | |
拡張依存性の検出 | × | 〇 | 各リポジトリに記載されているNレベルの依存関係ツリーを提供する。 | |
宣言していないコンポーネントの検出 | 〇 | 〇 | これはファイルやスニペットの検出であり、単なる既知の宣言された依存関係の特定から検出を拡張するものである。 剽窃の検証やAIコーディングのコンプライアンスを可能にします。 | |
修正バイナリ検出 | × | 〇 | 完全なオープンソースでなくても、バイナリ内のオープンソースを検出できるようにする。 ファイル全体のフィンガープリントを比較することで、単純なファイルスキャンを超え、バイナリ内で使用されている関数に潜り込み、オープンソースの依存関係を識別することができます。 | |
未修正バイナリ検出 | 〇 | 〇 | 既知のオープンソース・ファイルを個別に検出できます。 | |
エアギャップ スキャニング | 〇 | 〇 | これにより、オフラインのマシンでコードからフィンガープリントをキャプチャし、コードを見ることなく別のコンピューターからスキャンすることができる。 | |
SBOM生成 出力 |
PURL | 〇 | 〇 | ほとんどのオープンソースツールで採用されている正確なオープンソース識別子を提供します。 |
CSV (出力) | 〇 | 〇 | 機械が読み取り可能な情報を提供し、Excelシートに簡単にインポートしたり、他のアプリケーションに取り込むことができます。 | |
SPDX (入出力) | 〇 | 〇 | 標準 SPDX SBOM フォーマットを提供します。 | |
CycloneDX (入出力) | 〇 | 〇 | CycloneDXの標準フォーマットを提供します。 | |
HTML (出力) | 〇 | 〇 | レポートに使用できるグラフィックのポータブルフォーマットを提供します。 | |
SBOM 情報 | ライセンス | 〇 | 〇 | コードで検出されたライセンスを提供します。 |
著作権 | × | 〇 | コードで検出された著作権を提供します。 | |
脆弱性 | 〇 | 〇 | 提供されているオープンソースコンポーネントの既知の脆弱性をリストアップします。 | |
暗号 (ECCN用) | × | 〇 | 提供されるオープンソースコンポーネントの暗号アルゴリズムをリストアップし、ECCN(輸出規制)の分類に役立ちます。 | |
安全なコーディングの実践 | × | 〇 | セキュリティのベストプラクティスに基づくコード品質に関する洞察を提供する。 | |
コードの由来 (Coming soon) |
× | 〇 | 国別のオープンソースコンポーネントの物理的起源に関する洞察を提供します。 | |
コードの健全性 | × | 〇 | 要求されたコンポーネントに関するオープンソースコミュニティの洞察を提供する。 | |
CPEs | × | 〇 | オープンソースコンポーネントの CPE 識別子を提供し、既知の脆弱性の特定に役立ちます。 | |
コードの持続可能性 (Coming soon) |
× | 〇 | 既知の各オープンソースコンポーネントの計算/エネルギー消費に基づく持続可能性評価を提供します。 | |
独自 | × | 〇 | オープンソースインテリジェンスの新しいカスタムアスペクトを生成するために、お客様が独自のルールやアルゴリズムを作成することができます。 | |
消費/統合 | SBOM Workbench App (UI) |
〇 | 〇 | グラフィカル・ユーザー・インターフェースでオープンソースの分析が可能です。 |
CLI | 〇 | 〇 | コマンドプロンプトから簡単に操作でき、他のシステムとも簡単に統合できる。 | |
API | 〇 | 〇 | 他のシステムとの統合のための直接問い合わせが可能です。 | |
パイプラインの統合 | 〇 | 〇 | 既知のCI/CDパイプラインのための既製の統合を提供します。 | |
IDE | 〇 | 〇 | 一般的なIDE用のプラグインを提供します。 | |
SDK | 〇 | 〇 | 他のアプリケーションに簡単に統合できます。 | |
Webhook | 〇 | 〇 | Push、Pull Requestなどのgitアクションに対してSCANOSSスキャンをトリガする機能を提供します。 | |
可用性とスループット | 保証された可用性 | × | 〇 | 99.9%のアップタイムを保証。 |
スループット保証 | × | 〇 | 顧客の要求するスキャン・スループットを保証する。 | |
デプロイ | クラウド(有料版には+専用クラウドが含まれます) | 〇 | 〇 | 当社のSaaS APIは、導入時間、コスト、メンテナンスを最小限に抑えることができます。 |
オンプレミス | × | 〇 | オンプレミス型では、SCANOSSのデータベースとプラットフォーム全体をお客様サイトに保管することで、最高レベルのセキュリティを提供します。 | |
ハイブリッド | × | 〇 | クラウドとオンプレミスの組み合わせによるハイブリッド展開。 | |
サポート | コミュニティ | 〇 | 〇 | コミュニティ・サポートは可用性に基づいており、アップタイムやスループットの保証はありません。 |
Eメールとチャット | × | 〇 | Eメールとチャットによるサポートは、有料のお客様に限ります。 | |
カスタムSLA | × | 〇 | カスタムSLAにより、お客様の特定のサポート要件を満たすことができます。 |
さいごに
今回はSCANOSSについて書きました。9月は生成AIのタスクがほとんどで、久しぶりのSBOMツール調査でした。今後も少しずつツール調査を行っていこうと思います。次回は実際にSCANOSSを使ってみたことについて書く予定です。