なぜソースコード中心のDevOpsは「一貫性」を失うのか
JFrogはイスラエル発のグローバル企業で、2018年に日本法人を設立した。DevOpsおよびソフトウェアサプライチェーンプラットフォームを提供しており、自動車業界をはじめとする製造業、金融、IT業界などの大手企業に広く採用されている。
同社でシニアソリューションエンジニアを務める前田友樹氏は、「従来のソースコード中心のDevOpsには課題がある」と指摘した。
従来のDevOpsとは、GitHubなどのVCSでソースコードを管理し、GitHub ActionsやJenkinsなどのCIツールでソースコードをビルドしてテストを行い、さらにCDツールでデプロイや、リリースまでを自動化するといったライフサイクルのことだ。この方法は、20年ほど前に登場した考え方であり、現在も多くの企業が採用している。
しかし、前田氏は「VCSによってソースコード自体のバージョンは管理されているが、ビルド後に生成されるバイナリファイルまで管理できているだろうか。管理が不十分だと、環境間で一貫性が失われる課題が生じる」と指摘した。これがいわゆる「アーティファクト管理」の課題である。
また、外部依存関係におけるセキュリティの課題についても言及した。「ファーストパーティーのコードに対するセキュリティスキャンだけでなく、サードパーティーのオープンソースやライブラリのセキュリティチェックまで徹底できているだろうか」と問いかける。
これ以外にも、開発者がビルドツールを通さずにOSSを直接インストールした場合、ソースコードのスキャンだけでは検知できないリスクがある。また、ビルド環境のOS由来の環境変数にトークンやパスワードなどの機密情報が混入する懸念や、ビルドの過程で悪意あるコードが埋め込まれ、アーティファクトに攻撃の起点となる脆弱性が作り込まれてしまう可能性も否定できない。
事実、こうした開発・ビルドプロセスの隙を突いたソフトウェアサプライチェーン攻撃は直近でも発生している。前田氏は、NPMのOSSに脆弱性が見つかり、そこから攻撃を受けた「NPMサプライチェーン攻撃」の実例を紹介した。サプライチェーン攻撃は、2025年にIPAが発表した「情報セキュリティ10大脅威」の第2位にランクインするほど、深刻な課題となっている。
このようなセキュリティリスクへの対応に加え、近年ニーズが高まっているのが「SBOM(ソフトウェア部品構成表)の作成」だ。これは海外で製品セキュリティに関する法律が整備され、SBOM作成が義務化されたことが大きく影響している。特に、EU向けに製品を輸出している企業からの問い合わせが増えているという。
バイナリのライフサイクルを統合管理する3つのコンポーネント
サプライチェーン攻撃への対策と、SBOM作成の対応を同時に実現できる点がJFrog製品の強みである。
「ソースコードのビルド後に生成されるバイナリファイルを厳密に管理し、それに対して脆弱性スキャンを実行する。JFrogのプラットフォーム上でバイナリファイルを管理するため、SBOM作成にも同時に対応可能だ」(前田氏)

同社は、複数の製品を一つのプラットフォームに統合して提供する「JFrog Platform」を展開している。前田氏は、その中から代表的な3つの製品を紹介した。
(1)Artifactory
「Artifactory」は、ソースコードをビルドした後に生成されるアーティファクト(バイナリファイル)を保管するためのリポジトリである。GitHubなどと同様に「リポジトリ」の概念を持ち、ローカルリポジトリとリモートリポジトリの2種類で管理運用できる。
ローカルリポジトリでは、ファイルにメタデータを付与してトレーサビリティ(追跡可能性)を持たせることが可能だ。一方のリモートリポジトリは、サードパーティーのオープンソースをダウンロードする際のプロキシとして機能し、一度ダウンロードしたオープンソースをキャッシュする。
「GitHubやBitBucketのリポジトリはソースコードを管理するための箱だが、Artifactoryのリポジトリはバイナリファイルを専用に管理するための箱であると考えてほしい」(前田氏)
(2)Xray
「Xray」は、Artifactoryに保管されたアーティファクト(バイナリファイル)に対するSCA(Security Composition Analysis)ツールである。脆弱性、ライセンスおよびコンプライアンス違反、悪意のあるパッケージなどを検知できるほか、SBOM生成機能も備えている。
(3)Curation
「Curation」は、サードパーティーのオープンソースをダウンロードする際、指定した条件をもとに脆弱性のチェックを行ってくれるツールだ。条件にヒットした場合は、ダウンロード自体をブロックしてくれる、ファイアウォール的な機能を備えている。
この3つの製品を組み合わせることで、従来のアーティファクト(バイナリファイル)の管理からどう変化するのか。
従来は、バイナリファイル自体を適切に管理していないケースも少なくなかった。ファイルサーバーに置いたり、DebianやYumのリポジトリを自前で構築して管理したりする方法もあるが、「運用コストが増大し、一貫性を保つのが困難である。また、誰がいつ何のためにビルドしたのかといった情報が残らず、セキュリティ面でも課題が残る」と前田氏は語る。
そこでJFrogのArtifactoryを利用すると、ローカルリポジトリにビルドしたファイルをアップロードするだけで、バイナリファイルにチェックサムが付与され、一貫性を保持できる。メタデータを付与することで、誰がいつビルドしたかといった情報も確認でき、トレーサビリティも向上する。
さらに、Xrayを組み合わせれば、Artifactoryに保管されているバイナリファイルを自動でスキャンできるため、脆弱性の継続的な管理が可能になる。

サードパーティー製ライブラリの管理も改善される。一般的にはNPMなどのパブリックレジストリから直接ダウンロードするが、ネットワークの遅延やアクセス制限(Rate Limit)によって開発が止まるリスクがある。
「最も懸念すべきは、脆弱性や悪意のあるオープンソースをダウンロードし、気づかないうちに自社製品へ混入させてしまうパターンだ」と前田氏は警鐘を鳴らす。こうしたリスクを回避する上でも、Artifactoryを中心としたエコシステムが役立つ。
Artifactoryのリモートリポジトリ経由でオープンソースをダウンロードすると、初回はインターネット経由で直接ダウンロードしてキャッシュし、2回目以降はキャッシュ経由で高速にダウンロードすることが可能だ。また、リモートリポジトリにキャッシュされたOSSをXrayが自動的にスキャンして脆弱性を検知。さらにCurationを利用すれば、特定の条件、例えば「CVSSのスコアが9以上」や「悪意のあるパッケージ」といった危険なOSSのダウンロードをブロックすることもできる。

前田氏は、さらにセキュリティを強化する製品として「Advanced Security」を紹介した。中でも「コンテキスト分析」の機能が好評だという。
これは、バイナリに含まれる脆弱性が表面化するのかどうかまで自動判定してくれる機能だ。どのような構成が影響を受けるのか、どのように修正すればよいかまで提示される。
Advanced Securityの追加オプションでは、VS CodeやIntelliJ IDEAといった有名IDE向けのプラグインを提供。これを利用すれば、IDE上でSASTを実行でき、ソースコードに対する脆弱性の診断も可能だ。
また、VCSと連携する「Frogbot」を使えば、VCS上で検出された脆弱性に対して、修正済みのバージョンへアップデートするためのプルリクエストを自動で作成する。
Java/Maven環境におけるビルド情報の追跡とSBOMレポート出力
前田氏は、これまでに紹介した一連の流れについて、実際の製品画面を用いたデモ動画で解説した。
GitHub上のJavaソースコードを、Maven(ビルドツール)を用いてGitHub Actionsからビルドし、Artifactoryにアップロードする工程を披露した。アップロード後は、メタデータを活用してバイナリファイルを追跡できる様子を示している。
GitHub ActionsやJFrogのCLIの設定完了後、CLIからMavenコマンドを実行してビルドし、メタデータとして「Build Info」を付与した。
実行結果はGitHub Actionsの画面から確認できる。バイナリファイルがJFrogリポジトリのどのパスに格納されたかが一覧表示され、Build Infoのデータともリンクしている。
Build Infoにより、どのCIパイプラインでビルドされたのかを追跡できるほか、パッケージ情報や含まれるサードパーティー製OSSの詳細まで確認できる。万が一、OSの環境変数やパスワード、トークンなどの機密情報が混入していても、この段階で検出が可能だ。
また、Xrayが脆弱性のスキャナーとしてどのように動作しているのか、実際の画面で解説した。
バイナリがアップロードされると、自動的にスキャンが走り結果を表示。詳細画面に飛ぶと、CVSSのスコアやセベリティ(重大度)のほか、脆弱性が検知されたOSSの名前などが表示された。このように、バイナリの中に入っている脆弱性を一覧で見ることができる。
デモでは先述のコンテキスト分析も行われており、検出された脆弱性が現実に影響を及ぼすかどうかの判定も表示された。「applicable」と表示されているものは攻撃を受ける恐れがあることを示しており、詳細を開くとその理由や具体的な修正方法にアクセスできる。
さらに、バイナリファイルに含まれるオープンソースの一覧をエクスポートすることで、SBOMの標準的なレポート形式として出力できることも紹介された。
バイナリファーストな開発基盤への移行戦略
冒頭で触れた「ソースコード中心のDevOps」が既に運用されていれば、「JFrog製品の導入は意外と簡単だ」と前田氏は述べる。
ソースコードをVCSで管理し、CI/CDでビルド&テスト、デプロイ&リリースという従来のプロセスの、「CI」と「CD」の間にJFrogの製品を組み込むだけで、すぐに導入できるという。

「CIのパイプラインでテスト・ビルドした成果物を、まずはArtifactoryにアップロードしてほしい。それだけでXrayが自動的に脆弱性を検出する。その後のCD工程では、Artifactoryに保存されたバイナリファイルをダウンロードしてデプロイする、という流れが基本的である」(前田氏)
もしCI/CDプロセスが未整備な場合でも、「スクリプト等である程度のバッチ処理を組むことで、スムーズにJFrogと連携できる」と推奨した。
さらにJFrogはSAST機能も提供しており、開発の早期段階で脆弱性を発見する「シフトレフト」にも寄与する。バイナリファイル中心のDevOpsへの移行を支援し、セキュリティ強化と運用効率化を同時に実現するJFrogのソリューションに、今後も注目したい。
JFrog Japan 株式会社からのお知らせ
JFrogプラットフォームの製品ツアーおよび無料トライアルをご用意しています。
ソフトウェアサプライチェーンの可視化・セキュリティ・自動化をぜひご体感ください。

