こんにちは。テクマトリックスの長久保です。
近年、OSS(オープンソースソフトウェア)を活用したソフトウェア開発が主流となる中で、OSSに起因するセキュリティ脆弱性やライセンス遵守の課題が重要視されています。こうしたOSS管理上の課題に対処する手段として登場したのがソフトウェア構成解析ツールです。今回はその中でもバイナリコードに着目した独自のアプローチで注目を集めるソフトウェア構成解析ツールである、Insignary Clarityを触ってみました。
本ブログではInsignary Clarityの利用方法や、触ってみて感じたことについて記載していきます。
詳細な利用方法につきましては、以下のページよりお問合せ下さい。
バイナリ解析OSS管理ツール Insignary Clarity
目次
1.Insignary Clarityとは
Insignary Clarity は、ソースコードがなくてもソフトウェアの実行バイナリからOSSコンポーネントを検出し、既知の脆弱性やライセンス情報を洗い出せるソフトウェア構成解析ツールです。特徴としては以下が挙げられます。
- バイナリからOSSを検出
ソースコードや逆コンパイル不要で、コンパイル済みバイナリからOSSコンポーネントを特定可能。 - 複数OSSの識別
単一バイナリ内に含まれる複数のOSSライブラリを、名前・バージョン単位で正確に識別。 - 脆弱性・ライセンス情報の表示
NVDを活用して、OSSごとのCVE情報やライセンス内容をリスト化。 - 訴訟リスク(特許トロール)検出
過去に訴訟歴のあるOSSを特定・警告し、法務リスクを可視化。 - SBOMの自動生成
スキャン結果からSBOMを自動生成し、Excel・SPDX・CycloneDX形式で出力可能。 - 柔軟な導入とAPI連携
SaaS/オンプレ両対応。RESTful APIにより外部システムとの連携や自動化も容易。
詳細につきましては、製品ページ(バイナリ解析OSS管理ツール Insignary Clarity)を参照ください。
2.実際にInsignary Clarityを操作する
2.1.スキャンする
プロジェクトを作成する
スキャンに関連付けるプロジェクトが存在しない場合、プロジェクトを作成します。
新しいプロジェクトを作成した場合、作成者がそのプロジェクトのオーナーとなります。プロジェクトに関しては利用できるプロジェクトメンバーの編集や、そのプロジェクトで適用するポリシーの設定も可能です。

スキャンをする
手動でのスキャンについては、ブラウザ上からアップロードすることで解析を行うことができます。

プロジェクトとバージョンを指定し、対象のファイルをアップロードします。アップロード後は自動で解析が行われ、スキャン結果として表示されます。
2.2.スキャン結果を確認する
Insignary Clarityは様々な粒度でスキャン結果の確認が可能です。
ダッシュボード
「ダッシュボード」ページでは、企業の総合グレード、グレードに分類されたプロジェクトの総数、週間や月間のグレードの動向を表示します。

グレードはA~Dの四段階で表示されます。
- Aグレード=致命的なセキュリティおよびライセンス問題がない
- Bグレード=致命的なセキュリティおよびライセンス問題はないが、解決すべきことがある
- Cグレード=解決すべきいくつかのセキュリティおよびライセンス問題がある
- Dグレード=解決すべき多くのセキュリティおよびライセンス問題がある
それ以外にも様々な指標がダッシュボードに表示されるので、俯瞰してプロジェクトの状況について把握できるかと思います。
スキャン結果
「スキャン結果」ページでは個別の解析結果の詳細内容を確認することが可能です。

セキュリティリスクについては深刻度に応じて4色で表示され、ライセンスリスクについては3色で表示されます。それ以外にも様々な指標で内容を確認することも可能です。
検出済みの問題については、個別に担当者のアサインも可能です。
担当者のアサインについてはInsignary Clarity上での管理も可能ですし、後述するJiraとの連携による管理も可能です。


検出された問題についての詳細は、それぞれの問題をクリックすることで確認できます。修正パッチが作成されている場合、そのURLも表示されます。

2.3.解析結果を出力する
解析した結果は様々な形式のSBOMとして出力が可能です。


SPDXやCycloneDXといった代表的な形式以外での出力も可能です。例えば「クラリティー」という独自形式で出力すると、Excel形式でのレポートファイルが出力されます。一部抜粋します。



用途に応じた形式で出力することが可能です。
オープンソースの脆弱性やライセンス管理については問題なく実現できるかと思います。
3.他ツールとの連携
3.1.Jiraとの連携
解析結果から修正のためのチケットの作成を行う場合、Insignary Clarityの画面上から作成することが可能です。Insignary Clarity上で担当者をアサインすることもできますし、Jira上でタスクを管理することも可能です。


3.2.Eclipseとの連携
Eclipseのプラグインも用意されています。
clarity_eclipse_plugin.jarをEclipseのpluginsフォルダに配置し設定することで、対象のファイルを右クリックして解析を行うことができます。



ファイルは自動的にInsignary Clarityにアップロードされ解析が行われます。解析結果はInsignary Clarity上からも確認できますし、下記のようにEclipseからも簡易的に確認が可能です。

3.3.CI/CDとの統合
Insignary Clarityは単体で使うだけでなく、CI/CD(継続的インテグレーション/継続的デプロイメント)環境に組み込んで活用することで、開発の自動化フローにOSS管理を統合できます。特にビルドやテストを自動化するJenkinsやGitLab CI、GitHub Actionsなどとの連携は効果的です。
curl -u 'test@example.com:your_password' \
-F binary=targetfile \
-F 'project_id=***' \
-F 'version_id=***' \
-F 'callback=http://example.com/done/' \
-F 'scan_option={"scanfile": ["binary"], "scanlanguage": ["js"], "scan_enable_manifest": true, "ignore_extensions": "jar:png"}' \
http://clarity_domain/2/apis/scan
スキャン結果のステータスをCI側に返すこともできます。CIジョブを失敗(赤ビルド)とする基準を「深刻な脆弱性が見つかった場合」や「ポリシー違反のOSSライセンスが検出された場合」などと設定すれば、問題のあるビルドをリリース工程に進めないといったゲート機能を実現できます。
いくつか例を示します。
開発ブランチに対しての定期チェック
頻繁に開発されているブランチに対し、定期的にInsignary Clarityスキャンを走らせ、増加したOSSや新規に検出された脆弱性をチームにレポートする運用が可能です。これにより日々OSS構成の変化を追跡し、問題の早期発見・対応が図れます。
プルリクエストでの検証
新機能のプルリクエストに対し、自動テストと併せてInsignary Clarityスキャンを実行し、危険なOSSの追加がないかを検証できます。セキュリティ担当者はコードだけではなく、Insignary Clarityのレポートを確認することで、コードレビュー時にセキュリティ観点のフィードバックを即座に行えます。

3.4.コンテナイメージのスキャン
コンテナイメージ内に含まれるOSSもInsignary Clarityでチェック可能です。コンテナイメージ内のバイナリファイル群を抽出しInsignary Clarityで解析することで、コンテナレイヤーに潜む脆弱性を検知できます。
例えば以下のようにdocker saveコマンドでtarファイルに圧縮したファイルを解析することができます。


例えばコンテナレジストリに追加する前にInsignary Clarityで解析することにより、より安全な開発環境の整備ができるかと思います。
4.メリット・Insignary Clarity独自の付加価値
数あるOSSスキャンツールの中で、Insignary Clarityが特に優れているポイント・独自の付加価値を整理してみました。
少しですが操作した範囲でのメリットに触れていきたいと思います。
4.1.バイナリファイルスキャンが可能
Insignary Clarityの特徴であるバイナリスキャンはとても魅力的かと思います。
従来のOSSスキャンツールの場合、ソースコードや依存関係リストが必要でしたが、Insignary Clarityはバイナリファイルに対して解析を行うことが可能です。そのため、例えば協力会社からバイナリファイルでの納品しかされないケースでも解析が可能です。また、先述の通り、コンテナイメージ自体の解析も可能と、より安全な開発環境を整えることができると思います。
4.2.非常に高い検出精度
従来のOSSスキャンツールの場合、ツールによって検出精度は様々かと思います。
一方Insignary Clarityは特許アルゴリズムにより、バイナリに残るソースコード情報の断片(識別子)から、OSSを探索する独自の検出機能を提供しています。
4.3.様々な出力形式でのレポート作成
SPDXやCycloneDXといった一般的なSBOMの形式はもちろん、「クラリティー」という独自の詳細な内容が記載されたExcel形式でのレポートファイルの作成も可能です。
4.4.企業規模に関わらず導入しやすい
小規模な開発チームでは、Insignary Clarityのクラウド版(SaaS)を利用することで初期投資を抑えて導入しやすいかと思います。利用自体もブラウザからすぐにスキャンを開始でき、社内に専門のセキュリティ担当者がいなくても、Insignary Clarityのレポートや先述の修正パッチの提示といったガイダンス機能(脆弱性の概要説明や推奨対策の提示)により適切なアクションを取りやすいよう配慮されています。
オンプレミス版を自社データセンターに導入して社内ユーザにサービス提供する形や、必要に応じて各開発部門ごとにインスタンスを立てる運用も可能です。ユーザ認証はLDAP/AD連携でシングルサインオンができ、権限管理もプロジェクト単位で柔軟に設定できます
5.まとめ
- Insignary Clarityは、バイナリからも直接OSSを検出可能なツールです。ソースコードのバイナリファイルはもちろん、コンテナといった対象についても検出可能です。
- スキャン結果からソフトウェア部品表(SBOM)を自動生成し、OSSの一覧を出力可能です。出力形式は、独自の詳細なExcelレポートのほか、業界標準のSPDXやCycloneDXフォーマットに対応しており、他ツールとの連携や社内共有にも便利です。
- API等の連携も可能なため、CI/CD環境と組み合わせ、定期的なスキャンの導入が可能です。
2021年にはアメリカのバイデン大統領がサイバーセキュリティに関する行政命令を発出し、SBOMの使用を強く推奨しました。また欧州連合(EU)ではデジタル製品のセキュリティ対策を義務付ける「欧州サイバーレジリエンス法(CRA:EU Cyber Resilience Act)」が2024年12月に発効されています。
日本でも経済産業省が「重要インフラ保護」の観点からSBOMの活用を推奨しています。
セキュアなソフトウェアの流通を促進するため、経済産業省では、ソフトウェアの部品構
「経済産業省におけるサイバーセキュリティ施策の取組状況について」より引用(p.14)
成表であるSBOM(Software Bill of Materials)の企業による活用を推進。
https://www.nisc.go.jp/pdf/council/cs/ciip/dai38/38shiryou0304.pdf
導入のハードルが低く、様々な形式の対象に対してスキャンが可能なInsignary Clarityはセキュリティ強化のための有効な選択肢の一つかと思います。
体験版もございますので、以下リンクよりお問合せ下さい。
バイナリ解析OSS管理ツール Insignary Clarity