はじめに
適切なアプリケーションセキュリティツールを選択することは、まったく異なる哲学間の対決のように感じられることがあります。SonarQubeとFortifyは、スペクトルの両極にある2つの人気のある選択肢です。この比較では、それぞれの実践におけるパフォーマンスを分析し、より新しい代替手段が注目を集めるかもしれない理由を説明します。
要約
SonarQubeとFortifyは静的コード分析のために構築されたレガシーツールですが、どちらもトレードオフがあります。SonarQubeは使いやすいが深さに限界があり、Fortifyは急な学習曲線と重厚なセットアップを伴うエンタープライズレベルのカバレッジを提供します。Aikido Securityは現代的な代替手段を提供します。ディープなコード分析と迅速なセットアップ、最小限の誤検知、シームレスなCI/CDインテグレーションを組み合わせることで、今日のエンジニアリングチームにより適しています。
各ツールの概要
SonarQube
SonarQubeは、主に静的コード分析とコード品質検査で知られるオープンコアプラットフォームです。開発者は、バグ、コードスメル、および時折発生するセキュリティ問題に関する即座のフィードバックを提供する洗練されたUIとIDEプラグイン (SonarLint) を高く評価しています。数十の言語をサポートし、CIパイプラインに容易に統合できます。SonarQubeにはセキュリティルール (OWASP Top 10、CWEチェックなど) が含まれていますが、その起源はコード品質にあり、高度なセキュリティテストは得意分野ではありません。組織はコードの保守性向上を目的としてSonarQubeを導入し、段階的に軽量なSASTツールとして「活用」することがよくあります。これはある程度機能しますが、本格的なAppSecチームは、深い脆弱性カバレッジの点でSonarQubeの限界に達することがよくあります。
Fortify
Fortify(OpenText Fortify、旧HP/Micro Focus Fortify)は、脆弱性発見のために構築されたベテランのアプリケーションセキュリティスイートです。その主力製品であるStatic Code Analyzerは、数千もの独自のルールとデータフロー分析を用いてソースコードを詳細に精査し、OWASP Top 10の問題などを捕捉します。Fortifyのアプローチは包括的であり、SASTだけでなく、エコシステムの一部としてソフトウェア構成分析(サードパーティライブラリの脆弱性)や動的テスト(DAST)のオプションも提供します。このツールはエンタープライズセキュリティチーム向けに設計されており、その特徴が表れています。Fortifyは、よりシンプルなツールでは見逃されるセキュリティ問題を発見でき、ガバナンスのための詳細なレポートとダッシュボードを提供します。しかし、そのすべてのパワーには代償が伴います。Fortifyは、展開や日常的な使用が容易ではありません。急な学習曲線、重いシステム要件、そして迅速な開発チームよりもセキュリティ監査人向けのワークフローを覚悟してください。これは典型的な「大企業向け」セキュリティスキャナーであり、徹底的で堅牢ですが、しばしば扱いにくいです。
機能ごとの比較
セキュリティスキャン機能
SonarQubeは、コード分析のサブセットとしてSAST(Static Application Security Testing)を実行します。OWASPおよびCWEにマッピングされたルールセットを使用して、一般的なコーディングの欠陥や一部のセキュリティホットスポット(例:SQLインジェクションパターン、XSS)をフラグ付けします。しかし、そのセキュリティルールセットはかなり基本的であり、専用のセキュリティツールと比較して深さとカバレッジが限定的です。SonarQubeは、動的テストや包括的なソフトウェア構成分析をネイティブには含んでいませんが、レポートでいくつかの脆弱な依存関係を特定する場合があります。その焦点は、引き続きファーストパーティのコードにあります。
Fortifyは一方、セキュリティのためにゼロから構築されています。FortifyのSASTエンジンは、ディープなデータフロー分析(コード内でデータがどのように移動するかを追跡)を実行し、SonarQubeが見落とす可能性のある複雑な脆弱性を検出します。また、脆弱なオープンソースライブラリを検出するためのソフトウェア構成分析(SCA)も提供しており、Fortifyの製品ファミリーにはランタイムテスト用のDASTツールが含まれています。要するに、Fortifyはセキュリティスキャン全体の範囲をカバーすることを目指しています。そのトレードオフとして、Fortifyは過剰に熱心になることがあります。潜在的な未サニタイズ入力や安全でない設定をすべて特定し、エクスプロイト可能ではないエッジケースをフラグ付けすることがよくあります。(はい、コード内のどこかに「password」という単語を見つけるとパニックになることさえあります。)SonarQubeもFortifyも、Infrastructure as Codeテンプレートやコンテナイメージスキャンといった新しい領域には大きく取り組んでいません。これらは両者にとって盲点として残っています。これらをスキャンする必要がある場合は、追加のツールまたはより統合されたプラットフォーム(Aikido Securityなど)が必要になります。
インテグレーションとDevOpsワークフロー
最新のDevOpsツールチェーンへの適合性において、SonarQubeは際立っています。CI/CD連携のために作られたと言っても過言ではなく、ビルドパイプライン(Jenkins、GitHub Actions、GitLab CIなど)のステップとしてSonarQube分析を最小限の手間で実行できます。結果を自動的にアップロードするための公式プラグインや簡単な設定も用意されています。SonarQubeには、新しいコードが重大な問題を引き起こした場合にビルドを中断するQuality Gatesのような機能もあります。また、Sonarは開発者向けに作られたため、ブランチごとの分析やPRアノテーションといった便利な機能を提供します。要するに、SonarQubeはリンターやテストスイートとほぼ同じくらい簡単にDevOpsワークフローに組み込めます。
Fortifyの統合はより困難です。歴史的に、Fortifyのワークフローは、手動でスキャンを実行し、結果をSecurity Centerにアップロードすることが多く、厳密には「継続的」ではありませんでした。実際、初期のFortifyの制限は、簡単なパイプライン自動化の欠如でした(手動ファイルアップロードまたはカスタムスクリプトが必要)。現在、FortifyはCIパイプラインに統合できますが、プラグアンドプレイではありません。通常、Fortifyスキャナーをインストールし、コードがビルドされていることを確認し(Fortifyは適切に分析するためにすべての依存関係を含む正常なビルドを必要とすることが多い)、その後スキャンを呼び出してアップロード用の結果を生成する必要があります。
Jenkinsのようなツール用のプラグインは現在存在しますが、それらの設定には時間がかかることを覚悟してください。あるユーザーは、Fortifyが“スキャンするためにビルドを必要とする”ため、パイプラインに組み込むにはより多くの労力がかかると指摘しました。要するに、FortifyはDevOpsに適合できますが、高速なCI/CDサイクルにおいてはSonarQubeほどネイティブに感じられません。SonarQubeはここでは協調性のあるチームプレーヤーですが、Fortifyはいくつかのハードルを乗り越えさせるかもしれません。
精度とパフォーマンス
静的解析の精度には、実際の問題を捕捉すること(真陽性)と誤報を避けることの2つの側面があります。SonarQubeは、静寂を保つ傾向があります。つまり、簡単な問題を見つけ、過度に複雑な脆弱性解析を避けるため、いくつかの実際の欠陥(偽陰性)を見逃すことになりますが、その代わりにオオカミ少年になることはあまりありません。多くの開発者は、「“SonarQubeは…誤検知をあまり出さないので良い”」と評価しており、開発者が幽霊を追いかける手間を省いています。Fortifyは正反対です。あらゆる問題を捕捉するために広範な網を投げかけるため、ノイズの多い出力になります。Fortifyが大規模なコードベースで数千もの検出結果を報告し、そのうちごく一部しか真に重大な問題ではないことは珍しくありません。チームはFortifyの結果をトリアージし、誤検知や軽微な問題を除外するためにかなりの時間を費やすことがよくあります。
ある経験豊富なユーザーは、Fortifyについて“ツールは非常にノイズが多い”ため、どの検出結果を実際に「信頼」すべきかを学ぶ必要があると率直に述べました。この高い誤検知率はアラート疲れにつながり、開発者はFortifyを無視し始めたり、スキャンをリリースサイクルの後半に回したりするようになります。
パフォーマンスの観点から、スキャン速度も考慮すべき点です。SonarQubeは比較的軽量であり、スキャンはすべてのコミットまたはプルリクエストで実行するのに十分な速さです(中規模プロジェクトでは数分で完了することが多いです)。対照的に、Fortifyのスキャンは重いです。大規模プロジェクトでは、適切にチューニングされていない場合、Fortifyでのスキャンに数時間かかることがあります。Fortify SCAエンジンは詳細な分析を行い、多くのメモリとCPUを消費するため、通常は強力なサーバーを割り当てる必要があります。一部の組織がFortifyスキャンを毎晩またはスプリントの終わりにのみ実行し、各コミットごとには実行しないという事実は、各実行が遅い場合、継続的なスキャンが非現実的であることを示しています。要するに、SonarQubeは機敏で保守的(発見は少ないがほとんどが関連性の高いもの)であるのに対し、Fortifyは徹底的ですが重く、管理に多くの処理能力(と識別力)を必要とする大量の結果を生成します。
カバレッジとスコープ
言語とフレームワークのサポート: 両ツールは幅広いプログラミング言語をサポートしていますが、SonarQubeは網羅性において優位性を持っています。SonarQube(特に商用エディション)は、Java、C#、Python、JavaScript/TypeScript、C/C++などの人気言語を含む約30以上の言語をカバーしており、プラグインを介してさらにニッチな言語もサポートしています。Fortifyの言語サポートはエンタープライズSASTとしては広範であり(Java、C/C++、C#、Python、JavaScript、Ruby、Go、PHPなど、一部のエディションではIBMメインフレーム言語も)、しかしユーザーは実際にはFortifyがSonarQubeよりも少ない言語をサポートしていると報告しています。例えば、SonarQubeにはSwift、Kotlin、Apex、PL/SQLなどのコミュニティまたは公式アナライザーがありますが、Fortifyはそれらすべてをすぐにカバーしていない場合があります。テックスタックが多言語である場合、Fortifyの言語互換性を注意深く確認してください。多様な環境ではSonarQubeが優位に立つ可能性があります。
アプリケーションスコープ: SonarQubeのスキャンは、ソースコードおよび関連するテストカバレッジ/品質メトリクスに限定されます。実行中のアプリケーションや設定は分析しません。FortifyのスコープはAppSecの意味でより広範であり、Fortifyはバイナリや設定ファイルをスキャンでき、その拡張製品を通じてモバイルアプリのスキャンやランタイムテストなどを処理できます。それでも、両者とも主にアプリケーション層(コードと依存関係)に焦点を当てています。SonarQubeもFortifyも、クラウドインフラストラクチャテンプレート、Kubernetesマニフェスト、コンテナイメージ、またはAPIエンドポイントをスキャンすることはありません。これは、クラウドネイティブなカバレッジにギャップがあることを意味します。例えば、Terraformスクリプト内のハードコードされたシークレットやDockerベースイメージ内のCVEは、どちらのツールでも検出されません。これらをカバーするには、追加のツールまたは統合されたカバレッジのために設計されたプラットフォームが必要です。
これは、Aikido Securityのようなプラットフォーム(コード、クラウド設定、コンテナなどをスキャンします)がそのギャップを埋めることを目指す重要な領域です。コンプライアンス標準のカバー範囲に関して、SonarQubeとFortifyはどちらも一般的なフレームワーク(OWASP Top 10、CWE、PCI-DSSなど)に検出結果をマッピングしており、Fortifyは歴史的に企業コンプライアンス要件を満たすためにより頻繁に使用されてきました。しかし、最新のアプリケーションサーフェス(SaaS、サーバーレス、クラウドインフラ)の生のカバレッジは、どちらのレガシーツールでも限られています。
開発者エクスペリエンス(UX、セットアップ、学習曲線)
ここに哲学的な違いが明確に現れます。SonarQubeは、開発者向けのツールとして位置付けられています。そのUIはクリーンで分かりやすく、問題はコードのコンテキストで表示され、明確な修正ガイダンスが提供されます。開発者は問題をクリックすると、ハイライトされた欠陥コードと提案を確認できます。SonarQubeの学習曲線は緩やかです。使用言語のコーディング標準を理解していれば、Sonarのインターフェースは直感的に感じられるでしょう。SonarQubeのセットアップ(特にSonarCloudやCommunity Editionサーバーを使用する場合)は簡単で、困ったときには大規模なコミュニティがサポートしてくれます。
重要な点として、SonarQubeは開発者のワークフローに統合されます。IDEプラグインによるリアルタイム分析、プルリクエストデコレーションによるコードレビューでの新規問題の指摘などがあります。その結果、開発者はSonarQubeを嫌うのではなく、積極的に活用する傾向があります。あるチームは、SonarQubeの「ユーザーエクスペリエンスが非常に良い」ことや、SonarLintがIDEで即座にフィードバックを提供することに言及しました。この即座で継続的なフィードバックにより、SonarQubeは外部の監査ツールではなく、開発ツールキットの一部のように感じられます。
Fortifyは対照的に、より伝統的なセキュリティアプライアンスのように感じられます。その主要インターフェースであるFortify SSC(Software Security Center)は強力ですが、複雑です。また、セキュリティ監査人が検出結果を確認するためのデスクトップGUIであるFortify Audit Workbenchもあります。初めてのユーザーはこれらのインターフェースに圧倒されることがよくあります。セキュリティのバックグラウンドを前提とした脆弱性データ、フィルター、専門用語が満載だからです。学習曲線は急峻です。あるFortifyユーザーが述べたように、“このツールを理解するには時間がかかります…ツールは非常にノイズが多いです…ツールを使用するには多くの忍耐が必要です。”セキュリティトレーニングを受けていない開発者は、Fortifyの結果を解釈するのに苦労するかもしれません(例えば、データフローグラフの理解や、「高リスク」とタグ付けされたものが本当に懸念事項であるか否かの理解など)。
多くの組織では、Fortifyの検出結果は別のセキュリティチームによって処理され、その後開発者に課題が割り当てられます。このアプローチは摩擦を生む可能性があります。さらに、Fortifyのセットアップとメンテナンス自体がプロジェクトです。Fortifyサーバーのインストール、認証の構成、ルールパックの定期的な更新、スキャン環境がすべてのビルド依存関係を持っていることの確認など、多くの作業が必要です。実際、Fortify自身のドキュメントやユーザーも、「効果的に使用するには多くのセットアップと多くの検討が必要」と述べています。要するに、FortifyのUXは専任のセキュリティスペシャリスト向けに設計されており、SonarQubeのUXは日常的な開発者向けに設計されています。技術リーダーにとって、この違いは、Fortifyがより多くのトレーニング、より多くのプロセス変更、そしておそらく管理のための専任担当者を要求する可能性がある一方で、SonarQubeは最小限の手間で開発チームに引き渡せることを意味します。
価格とメンテナンス
コスト要因はしばしば導入の決め手となります。ここでSonarQubeは大きな利点を提供します。セキュリティルールと対応言語に制限があるものの、導入には十分な無料のCommunity Editionがあります。有料エディション(Developer、Enterprise、Data Center)は、言語サポートとセキュリティ分析機能を拡張し、価格は通常、分析されるコード行数に基づいています。SonarSourceは価格を公開しており(LOCごとの透明なティア)、コスト予測が容易になります。例えば、中規模のコードベースの場合、SonarQube Enterpriseは年間数万ドル程度かかる可能性があります。安価ではありませんが、同等の範囲のFortifyよりも安価であることがよくあります。チームや予算が少ない場合は、無料のSonarQubeまたは手頃なDeveloperエディションから始めることができます。SonarQube(セルフホスト型)のメンテナンスは比較的労力がかかりません。これは、時々更新するJavaサーバーであり、Sonarは定期的なアップデートとLTSリリースを提供しています。SonarCloud(SaaS)を使用している場合、インフラストラクチャのメンテナンスは不要です。
Fortifyは対照的に、高額な価格で知られています。エンタープライズソリューションとして、Fortifyのライセンスは大規模組織の場合、年間で5桁から6桁の金額になることがあります。無料ティアはなく、SASTのみが必要な場合でもフルパッケージの料金を支払うことになります。ある情報源は、Fortifyが「エンタープライズレベルでの使用には高価である」と明示的に述べています。価格は公開されておらず、通常はカスタム見積もりと交渉が必要です(透明性とは程遠い)。ライセンス以外に、総所有コストも考慮してください。Fortifyは、スキャンエンジンとSecurity Center用に専用のハードウェアまたはVM、さらにそれを維持するためのエンジニアの時間を必要とする場合があります。ルールパックの更新と新バージョンのアップグレードは年に数回適用する必要があります(多くの場合、サポート契約に紐付けられています)。サポートが途切れると、新しい脆弱性に対する重要なルール更新を見逃す可能性があります。
これらすべてが、より多くの費用と時間を要します。あるレビュアーがFortifyを効果的に使用するには「多額の費用と多大な忍耐」が必要だと皮肉ったことは、その実情を物語っています。要するに、SonarQubeは費用対効果が高く、予算編成も簡単であるのに対し、Fortifyは多大な財政的コミットメントと継続的なメンテナンス投資を要求します。(そして、「Fortifyの費用はいくらですか?」と尋ねようとしたことがあるなら、おそらく具体的な数字ではなく営業トークで対応されたことでしょう。)
Aikido offers a simpler, more transparent pricing model – 定額で予測可能 – であり、SnykやSonarQubeと比較して、大規模での費用対効果が大幅に優れています。
コンプライアンスとイノベーション
FortifyとSonarQubeは、しばしば異なるステークホルダーに訴求します。コンプライアンスのチェックリストを満たしたり、監査官を納得させたいのであれば、Fortifyのレポートと認証は強力です。FortifyはGartner Magic Quadrantsの常連であり、厳格な規制のある業界で頻繁に使用されています。OWASP、PCI DSS、CWE/SANSなどの標準にすべての検出結果をマッピングするなど、詳細なコンプライアンスレポートを提供し、監査に役立ちます。SonarQubeはOWASP Top 10やその他の標準に課題をマッピングできますが、伝統的には「コンプライアンスツール」とは見なされていません。むしろ継続的な改善に重点を置いています。とはいえ、SonarQube Enterpriseにはコンプライアンス目的のセキュリティレポートが含まれており、多くの企業がOWASP Top 10への準拠を長期的に追跡するために使用しています。
イノベーションと最新性に関して言えば、SonarSourceとオープンソースコミュニティに支えられたSonarQubeは、新しい言語サポート、開発者中心の機能、UIの改善により急速に進化しています。Fortifyのペースはより緩やかです。実際、一部のユーザーは、Fortifyが近年、新しいトレンドや開発者の期待に追いついていないと指摘しています。HPからMicro Focus、そしてOpenTextへと所有者が変わった後、Fortifyのロードマップは、最先端の機能よりも既存のエンタープライズ顧客の安定性を優先する可能性があります。例えば、洗練されたIDE統合やIaC/コンテナのスキャンサポートといった現代の開発者の要望は、Fortifyには非常に遅れて導入されたか、まったく導入されていません。
一方、SonarQubeは「Security Hotspots」のような機能 (開発者をセキュリティレビューに参加させるため) を導入し、開発者ワークフローの統合を継続的に改善しています。2025年のスタートアップ基準からすると、どちらのツールも極めて「革新的」とは言えませんが、SonarQubeはより現代的なDevSecOpsプラクティスに合致していると感じられるのに対し、Fortifyはアプローチにおいてややレガシーな印象を与えます。朗報は、どちらのツールも成熟しており、信頼できることです。残念なことに、どちらもコード以外の新たなセキュリティ領域に単独で対処できるものではありません。ここで新しいソリューションを検討することが報われる可能性があります。
各ツールの長所と短所

SonarQube – 長所:
- 開発者フレンドリー: シンプルなUIとワークフローで、開発者が最小限のトレーニングで容易に導入できます。
- 簡単な統合: CIパイプラインや開発ツール(IDEプラグイン、PRデコレーション)にシームレスに連携し、真のDevSecOps文化を育みます。
- コード品質+セキュリティ: コード品質メトリクスとセキュリティ分析を組み合わせることで、包括的な視点を提供します(品質と基本的なセキュリティに2つのツールではなく1つのツールで対応)。
- 費用対効果: フリーティアを備えたオープンソースコア。有料プランは透明性があり、一般的にエンタープライズSASTスイートよりも安価です。
SonarQube – 短所:
- 限られたセキュリティ深度: 専用のセキュリティツールではないため、専門のSASTが検出する多くの深刻な脆弱性を見逃します(高い誤検知)。
- 誤検知よりも見逃しを優先: 検出が難しい脆弱性にはフラグを立てるよりも静かにスキップする傾向があります。SonarQubeが見逃すものを検出するには、追加のツールが必要になるでしょう。
- 高度な機能は有料版で利用可能: 主要なセキュリティ機能(Taint分析、インジェクション検出)やより多くの言語サポートは、Developer/Enterpriseエディションでのみ利用可能です。
- 範囲が限定的: コードに焦点を当てており、静的解析以外のアプリケーションセキュリティはカバーしません(組み込みの依存関係スキャンやランタイムテストはありません)。
Fortify – 長所:
- 徹底したセキュリティスキャン: 業界をリードする静的解析の深さにより、複雑な脆弱性を捕捉し、OWASP Top 10、SANS 25などを標準でカバーします。
- 広範なルールセット: 数十年にわたる開発により、多くの言語やフレームワークでセキュリティ問題を発見するための膨大なルールとチェック(カスタムルール機能を含む)が生まれました。
- 包括的なAppSecスイート: SAST、DAST、SCAを1つの傘下に含めるオプション。Fortifyは、複数のAppSec活動(例:コードとサードパーティライブラリをまとめてスキャン)のためのワンストップショップとなり得ます。
- エンタープライズレポートとコンプライアンス: 経営陣や監査人向けの詳細なレポート、ダッシュボード、コンプライアンスマッピングを提供します。デューデリジェンスの証明と時間の経過に伴うリスク追跡に役立ちます。
Fortify – デメリット:
- 大量の誤検知(ノイズが多い): 膨大な数のアラートを生成しますが、その多くは情報提供目的であるか、実際にはエクスプロイト可能ではありません。チームはしばしばシグナル対ノイズ比(時間のかかるトリアージ)に苦慮します。
- 複雑なセットアップと使用: 急な学習曲線と設定の負担があります。デプロイ、メンテナンス、チューニングには専門的な労力が必要です(プラグアンドプレイではありません)。
- 開発者にとって使いにくい: 大規模なセキュリティツールという印象を与え、開発者はインターフェースや結果に圧倒され、導入の障壁となる可能性があります。SonarQubeのようなツールから開発者が得る「即時フィードバック」の感覚に欠けます。
- 高価: Fortifyのライセンスおよびインフラコストは高額です。多くの場合、大企業のみが導入可能であり、ほとんどの検出結果が偽陽性である場合、そのROI(投資収益率)は疑問視されることもあります。
Aikido Security: より良い代替策

Aikido Securityは、上記の課題に正確に対処するために登場した最新のプラットフォームです。Aikidoは、両方の長所を兼ね備えていると考えてください。コード、オープンソースの依存関係、クラウド設定など、包括的なカバレッジを提供し、しかも、シンプルさを念頭に置いた開発者ファーストのアプローチで構築されています。Aikidoの静的分析は、スマートなアルゴリズムを使用してノイズを劇的に削減します(従来のツールと比較して最大85%の誤検知を削減)。これにより、開発者は検出結果を信頼し、架空の問題に時間を浪費することがなくなります。統合に関しては、AikidoはCI/CDパイプラインと開発者ワークフローに最小限の手間で組み込むことができます(セットアップは数週間ではなく数分で完了します)。大規模なインストールや複雑なプロセスは不要で、既存の開発ツールと並行して「ただ機能する」セキュリティです。
Aikidoのカバレッジは、SonarQubeやFortify単独よりも広範です。ソースコード、依存関係、Infrastructure as Code、コンテナ、さらにはシークレットにおける脆弱性を、すべて単一の統合ダッシュボードで検出します。重要なことに、料金体系は透明で定額であり、プロジェクトごとの予期せぬ料金や高額なエンタープライズ向け障壁はありません。要するに、Aikido SecurityはAppSecに対して実用的なアプローチを提供します。誤検知が少なく、容易な統合、そして正直な価格設定による堅牢な保護です。SonarQubeとFortifyのトレードオフにうんざりしている技術リーダーにとって、Aikidoはセキュリティチームと開発チーム双方にとってWin-WinとなるAppSecプログラムを実現する「合気道の一手」となるかもしれません。

