Aikido

Veracode 対 Checkmarx 対 Fortify

執筆者
Ruben Camerlynck

はじめに

現代のソフトウェアチームは、豊富なセキュリティツールの中から選択できます。VeracodeCheckmarxFortifyは、技術リーダーがよく検討する3つの主要なアプリケーションセキュリティプラットフォームです。それぞれがコードを保護し、脆弱性を早期に発見することを約束します。しかし、適切なツールを選択することが重要です。それは開発者のワークフロー、セキュリティカバレッジ、そしてチームが誤報を追跡する時間に影響を与えます。この比較では、各ツールが優れている点、劣っている点、そして代替案であるAikido Securityが、通常の煩わしさなしに安全なコードを出荷するためのより良い方法を提供する可能性がある理由を詳しく説明します。

要約

Veracode、Checkmarx、Fortifyはすべてコードベースのセキュリティ強化に役立ちますが、それぞれに盲点があります。Veracodeは、エンタープライズコンプライアンスに焦点を当てた幅広いセキュリティツールキット(SAST、DAST、SCA)を提供しますが、クラウド専用であり、処理が遅い場合がありますCheckmarxは、開発者向けの静的分析(ビルド不要)と柔軟なデプロイメントを提供しますが、ランタイムやシークレットなどの一部のレイヤーを見落とします。Fortifyは、ディープコードスキャンで知られるオンプレミスのベテランですが、重厚でノイズが多く、深刻なメンテナンスが必要です。Aikido Securityは、これらすべての世界を1つのプラットフォームに統合し、コード、オープンソース、クラウドコンテナをカバーし、誤検知がはるかに少なく、よりスムーズな統合を実現します。これは、無駄を省いたセキュリティを求める現代の開発チームにとって、実用的な選択肢です。

機能 Veracode Checkmarx Fortify Aikido
シークレット・ディテクション
クラウド設定 (CSPM) ⚠️ 限定的
コンテナ&IaCスキャン
フォールス・ポジティブ管理 ✅ トリアージ ✅ チューニング ⚠️ 手動 ✅ ノイズ削減
開発者エクスペリエンス ⚠️ ポータル中心 ✅ IDEおよびCI連携 ❌ 時代遅れのUX ✅ シームレス
デプロイとメンテナンス ❌ クラウドのみ ✅ 柔軟性 ❌ 維持管理が大変 ✅ 軽量SaaS
料金モデル ❌ エンタープライズ階層型 ❌ 高価 ❌ 高いTCO ✅ 均一料金

各ツールの概要

Veracode

Veracodeは、エンタープライズのニーズに合わせて設計されたクラウドベースのアプリケーションセキュリティプラットフォームです。これは、生のソースコードではなく、コンパイル済みバイナリを分析することで、静的アプリケーションセキュリティテスト(SAST)を実行します。このアプローチは、ビルドされたアプリケーションをスキャンするためにVeracodeのクラウドにアップロードすることを意味します。Veracodeのスイートは、動的スキャン(DAST)およびソフトウェアコンポジション分析(オープンソースライブラリ用のSCA)を含むように拡張されました。このプラットフォームはセキュリティポリシーコンプライアンスとガバナンスを重視しており、大規模組織のセキュリティチームに人気があります。要するに、Veracodeは幅広いテストをカバーし、多くの言語をサポートしていますが、フルマネージドSaaSとして、コードを彼らのクラウドに送信する必要があり、開発者の利便性よりも情報セキュリティの監視に重点を置いていると感じられるかもしれません。

Checkmarx

Checkmarxは、静的コード分析に特化したアプリケーションセキュリティプラットフォームです。Veracodeとは異なり、Checkmarxはフルビルドを必要とせずソースコードを直接スキャンします。これにより、問題を早期かつ頻繁に発見するのに便利です。開発者は、アプリケーションをパッケージ化することなく、開発中やCIパイプラインでスキャンを実行できます。CheckmarxはSASTから始まり、後に依存関係のための独自のSCA、さらにInfrastructure-as-Codeやコンテナスキャンなどの新機能を追加しました。オンプレミスとクラウド(SaaS)の両方のデプロイオプションを提供し、チームにスキャン実行場所の柔軟性をもたらします。このツールは、IDEプラグインやGitHub/GitLab、Jenkins、その他の開発ツールとの統合により、開発者フレンドリーであることで知られており、よりスムーズなワークフローを実現します。全体として、CheckmarxはDevOpsパイプラインに適合する開発者中心のASTソリューションとして位置付けられていますが、歴史的に組み込みの動的スキャナーが不足していました(現在このギャップに対処し始めています)。

Fortify

Fortify(現在OpenText傘下、旧Micro Focus/HPE Fortify)は、長年にわたるエンタープライズ向けSASTスイートです。Fortify Static Code Analyzerを通じて詳細な静的分析を提供し、通常は顧客によってオンプレミスで実行されます。Fortifyは、包括的なルールセットを用いてソースコード(またはビルドステップ後のバイナリ)をスキャンし、脆弱性を発見します。10年以上にわたりマジッククアドラントのリーダーであり、セキュリティ問題の非常に徹底したカバレッジで知られています。Fortifyは動的テストコンポーネント(WebInspect)も提供し、アドオン(例:「Debricked」SCAモジュール)を介してオープンソースの脆弱性スキャンを統合することで、より完全なセキュリティカバレッジを実現できます。このプラットフォームは、レガシーアプリとモダンアプリの両方に適した幅広い言語とフレームワークをサポートしています。しかし、Fortifyはしばしば重量級と評され、専用のインフラストラクチャや、スキャンと結果のトリアージを管理するチームが必要となる場合があります。この成熟度の利点は、堅牢なエンタープライズ機能とレポート機能です。要するに、Fortifyはオンプレミスに重点を置いた強力なオールラウンドなアプリケーションセキュリティソリューションですが、その古さはより複雑なユーザーエクスペリエンスと誤検知を抑える必要性として現れています。

(それでは、技術リーダーが重視する主要な要素において、これらのツールがどのように比較されるかを詳しく見ていきましょう。)

コアセキュリティ機能

スキャンアプローチと種類: 3つのツールはすべて静的解析(SAST)を実行してコーディングの脆弱性を検出しますが、そのアプローチは異なります。VeracodeはバイナリSASTアプローチを使用します。コンパイル済みのコードをアップロードすると、バイナリを分析します。これにより、アプリケーション全体(リンクされたライブラリを含む)で問題を発見でき、ソースレベル分析では見逃す可能性のあるものを検出することもあります。トレードオフは速度です。バイナリスキャンは通常遅く、欠陥の正確なソース行を特定するのが難しくなります。CheckmarxとFortifyはどちらもソースコードを直接スキャンします。CheckmarxのソースSASTはビルドが不要なため、開発サイクルでのスキャンを迅速化できます。Fortifyの静的解析もソースで機能しますが、特定の分析(例えば、データフローを徹底的に追跡するためにコンパイル済みアーティファクトやバイトコードが必要になる場合など)には中間ビルド出力が必要となることがよくあります。実際には、Fortifyのスキャンプロセスはかなり複雑になることがありますが、Checkmarxはよりシンプルなコードスキャンを目指しています。

SASTに加え、VeracodeとFortifyは、稼働中のWebアプリケーション向けに動的アプリケーションセキュリティテスト(DAST)を提供しています。それぞれVeracode Dynamic AnalysisとFortify WebInspectです。CheckmarxはこれまでDAST機能を内蔵していませんでしたが、新しいCheckmarx Oneプラットフォームでは一部のDAST機能が導入されています(他の製品ほど実績はありません)。オープンソースの依存関係スキャン(SCA)については、3社すべてがソリューションを提供しています。Veracode Software Composition Analysisはサードパーティライブラリをカバーし、CheckmarxはCxSCAを、Fortifyは提携(Fortify on DemandのDebricked)を通じてSCAを統合しています。

カバレッジのギャップ: 違いがある領域の1つは、新しいセキュリティドメインです。コンテナイメージスキャン(Dockerイメージの脆弱性チェック)とInfrastructure-as-Code (IaC)スキャンは、Veracodeではネイティブにカバーされておらず、Fortifyにも目立った提供はありません。一方、Checkmarxは両方を追加しました。コンテナセキュリティスキャンとIaCスキャナー(オープンソースのKICSツールを搭載)を提供しています。Kubernetes YAML、Terraform、またはDockerfileの設定ミスをスキャンする必要がある場合、Checkmarxが優位です。これら3つのいずれも、コード内のAPIキーのようなシークレットスキャンを内蔵していません。別のツールが必要になります。要するに、Veracode = SAST + DAST + SCACheckmarx = SAST + SCA(+ IaC/コンテナ)Fortify = SAST + DAST(+ アドオン経由のSCA)です。それぞれAppSecの基本をうまくカバーしていますが、より現代的な「コードからクラウド」へのカバレッジは断片的です。

Security Depth: 3つすべてが、一般的な言語に対応する広範な脆弱性ルールセットを備えています。Fortifyは先駆者として、最も広範な脆弱性ナレッジベースの1つを持つとされており(曖昧な問題を特定でき、多くのチェッカーを備えています)、VeracodeとCheckmarxも包括的な脆弱性ライブラリを持っています。Veracodeはポリシー駆動型スキャンに焦点を当てており(標準とコンプライアンス要件を容易に適用できます)、Checkmarxのエンジンはカスタムクエリを可能にします(CxQLを介してカスタムルールを作成し、発見内容を調整できます)。結論として、純粋な脆弱性発見能力において、3つすべてが信頼できるSASTツールであり、例えばOWASP Top 10の問題で完全に無防備になることはありません。違いは、カバレッジの幅(オープンソース、ランタイムなど)と、それらの結果の実用的な使いやすさ(これについては次に説明します)にあります。

インテグレーションとDevOpsワークフロー

セキュリティツールは、開発プロセスへの適合度によってその価値が決まります。Checkmarxは、開発ワークフローにとって最も統合しやすいツールとして一般的に認識されています。人気のIDE(Visual Studio、Eclipse、IntelliJ、VS Codeなど)用のプラグインを提供しており、開発者はエディターを離れることなくコードをスキャンし、結果を得ることができます。また、ソース管理(GitHub、GitLab、Bitbucket)やJenkins、CircleCI、Azure DevOpsなどのCI/CDツールとも統合されます。オンプレミスで実行する場合でも、Checkmarxのクラウドを使用する場合でも、パイプラインに接続して高深刻度バグでビルドを失敗させたり、チケットを自動的に作成したりできます。開発者が作業する場所でセキュリティチェックを挿入できるというこの焦点は、Checkmarxが摩擦を少なくしてセキュリティチェックを挿入できることを意味します。1つの注意点として、一部のユーザーはオンプレミス版とSaaS版の間で違い(例:クラウドでの特定の新機能やよりスムーズなUI)があることを指摘しており、これが統合エクスペリエンスに影響を与える可能性があります。

VeracodeはSaaSプラットフォームであるため、主にCI/CDステージとWebポータルを介して統合されます。通常、スキャンにはパイプラインプラグインまたはスクリプトを介して(コンパイルされた形式の)コードをVeracodeのプラットフォームにアップロードします。これを自動化するためのJenkinsプラグインとREST APIが提供されています。Veracodeには、開発者が軽量スキャンを行うためのいくつかのIDEプラグイン(Visual Studio拡張機能やIntelliJプラグインなど)もありますが、これらはCheckmarxのIDE統合ほど高く評価されていません。一般的な意見として、Veracodeの統合アプローチはより集中型であり、メインビルドでのスキャンを強制するのには優れていますが、コードを書く開発者にとってはそれほどインタラクティブではありません。また、特定の環境と密接に連携しており、例えばGitHubを使用している場合はGitHubパイプラインとシームレスに連携することが知られていますが、Veracode自体がオンプレミスにデプロイされないため、オンプレミスのバージョン管理はサポートしていません。オンサイトスキャンが必要な場合、Veracodeは選択肢になりません(セルフホストデプロイメントなし)。このクラウドオンリーの性質は統合を簡素化しますが(維持するサーバーがない)、コード(バイナリ形式)をVeracodeのサーバーに送信する必要があることを意味し、一部の機密性の高いプロジェクトにとっては決定的な欠点となります。

Fortifyは理論的にはCheckmarxと同様の統合ポイントを提供しますが、より労働集約的になる傾向があります。Fortifyでは、多くの企業が中央のFortifyサーバー(SSC – Software Security Center)をセットアップし、開発者のマシンにスキャナーを配布する場合があります。以前は、開発者はデスクトップクライアントやCIプラグインを介してFortifyスキャンを実行し、結果をFortify SSCポータルにアップロードすることがありました。Jenkinsプラグイン、GitHub Actions、さらにはIDEプラグイン(FortifyはEclipse/VSなどのプラグインを提供)も利用できるため、CI/CDや開発者IDEに統合できます。しかし、Fortifyは適切に組み込むためにより多くの手動ステップや専門知識を必要とすることが多いという評判があります。一部のチームでは、スキャン実行と開発者への結果フィードを処理する専任のFortify管理チームを抱えることになります。これは、統合は可能であるものの、Fortifyが高速なDevOpsセットアップにおいてシームレスであるとは感じられず、やや旧式であることを示唆しています。

要約すると、Checkmarxは、統合の柔軟性と開発者向けツールにより、高速なDevOpsワークフローに最適です。Veracodeはパイプラインレベルでうまく統合されますが、セキュリティチームのポリシーに管理される独立したステップのように感じられます(しかもクラウドのみです)。Fortifyは統合可能ですが、多くの場合、追加の労力が必要であり、開発者のセルフサービスを自然に促進しません(多くの組織では、セキュリティエンジニアが実行するゲート付きスキャンとして扱われます)。開発に組み込まれたセルフサービスセキュリティをチームが望むほど、CheckmarxやAikidoのような新しいソリューションに傾倒するでしょう。中央のチェックポイントが優先事項で、サイクルが遅くなることを気にしないのであれば、VeracodeやFortifyも適合しますが、多少の摩擦は伴います。

精度とパフォーマンス

アプリケーションセキュリティテストにおける最大の課題の一つは誤検知であり、この点においてツール間で実績が異なります。Fortifyは、そのまま使用すると高い誤検知率で批判されることがよくありました。ユーザーは「Fortifyからの誤検知に関する頻繁な苦情」を報告しており、ある日はスキャンがクリーンなのに、翌日には変更されていないコードに新しい問題が検出されることがあります。この一貫性のなさやノイズは開発者を苛立たせることがあります。Fortifyは多くの深さ(多くの問題タイプを見つけようとする)を提供しますが、それは実際の危険をノイズから分離するための手動トリアージが増えることを意味します。また、サードパーティライブラリの既知の安全な脆弱性を本質的にフィルタリングすることもありません。Fortifyはアドオンなしでは自動的にCVEデータベースをチェックしないため、安全でない関数の使用が検出されても、既知のパッチがあることが通知されない、といったことが起こり得ます。

対照的に、Checkmarxは偽陽性率がやや低い点で高く評価されることが多い(ルールをカスタマイズして微調整も可能)。G2のユーザーレビューによれば、Checkmarxの偽陽性率はFortifyよりも優れていると見なされており、ある要約では「開発者にとって重要な偽陽性率が低い」と指摘されているのに対し、Fortifyの偽陽性率は「それほど好ましくない」と評されている。 誤警報が少ないほど、開発者はセキュリティ発見を無視し始めません。とはいえ、ノイズ わけではありませんノイズ 一部の開発者は、特定の問題を見逃す(偽陰性)ことや、多くの情報的な問題を「脆弱性」として報告し続けると感じています。バランスは良好ですが、出力の調整と理解が必要です。 Checkmarxの未コンパイルコードスキャン方式では、実際にはビルド済みアプリケーションで到達不可能な箇所を脆弱性としてフラグ付けする可能性がある(アプリを実行しない限り把握できない文脈)。一方、Veracodeのバイナリスキャンはコンパイル済み依存関係 の問題を捕捉できるが依存関係 発見箇所を正確なソース行にマッピングするのが困難な場合があり依存関係 修正策の特定に開発者の追加作業を要する。

Veracodeは、初期スキャンが完了すると、一般的に高い精度で定評があります。実際には、数日かかることもある初期の「ベースラインスキャン」を実施します。これは、有料サービスを利用している場合に、社内のAppSecチームが結果をレビューできるようにするためでもあります。このアプローチは、セキュリティ専門家を関与させることで誤検知を減らし、将来的にクリーンなベースラインを提供することを目的としています。これは精度にとって非常に重要であり、Veracodeは結果における誤検知が非常に少ないことを謳っていますが、最初のスキャンが迅速ではないことを意味します。一部の開発者はVeracodeで誤検知に遭遇したこともあります(完璧なツールはありません。例えば、HackerNewsの開発者は、最初にいくつかの誤検知メールを受け取ったと述べています)。しかし、概してVeracodeのスキャンは成熟しており、最適化されています。特に主要な言語において、高い精度をもたらします。組織が検出結果を手動でトリアージする人員を欠いている場合、Veracodeの、厳選された少ない検出結果というアプローチは魅力的です。

パフォーマンス(速度)に関して:ソースコード上で動作するCheckmarxは、増分変更に対してより高速にスキャンできることが多く(並行スキャンのためにスキャンマシン/インスタンスを追加することでスケール可能)、Veracodeのスキャンはバイナリのアップロードとクラウド処理の待機を伴うため、この待機時間はアジャイルチームにとって欠点となる可能性があります(一部のユーザーはVeracodeで「フィードバックサイクルが遅い」と指摘しています)。Fortifyのパフォーマンスはデプロイ方法に依存します。スキャンを微調整しない限り、非常に大規模なコードベースではかなり遅くなる可能性があります(Fortifyにはスキャン深度を調整するオプションがあります)。あるPeerSpotユーザーは、Fortifyのスキャンが非常に時間がかかったり、一貫性がなかったりするため、結果が日によって異なることがあるとさえ述べています。その一方で、Fortifyは十分なハードウェアがあればスケール可能であり、そのスキャンエンジンは非常に強力です。しかし、大規模なモノリスでタイムリーな結果を得るには、高性能なサーバーを割り当てる必要があるかもしれません。

要約すると、VeracodeとCheckmarxは、適度なチューニングでより正確な結果を出す傾向があります。一方、Fortifyはより多くのエッジケースの問題を捕捉する可能性がありますが、その代償として誤検知率が高く、スキャン時間が長くなります。技術リーダーにとって、これはFortifyが結果の管理により多くのチーム時間を要求する可能性があることを意味します。一方、Checkmarx/Veracodeは重要な点に焦点を当てることで時間を節約することを目指します(ただし、Veracodeは最初の遅いパスの後で時間を節約します)。精度は極めて重要です。オオカミ少年になりがちなツールは、開発者によって無視されるでしょう。これこそが、多くのチームがノイズを削減するために最新の技術(AIなど)を活用する代替案を求めている理由であり、それがAikidoの哲学です。

カバレッジとスコープ

言語およびフレームワークのサポート:Veracode、Checkmarx、Fortifyはそれぞれ、幅広いプログラミング言語をサポートしていることを誇っています。主要な言語(Java、C#、JavaScript/TypeScript、Python、C/C++、Ruby、PHPなど)はもちろん、あまり一般的でない多くの言語もカバーしています。Veracodeは30以上の言語をサポートしていると宣伝しており、バイナリスキャンを活用して、既知の形式にコンパイルされるもの(Android .APKファイル、.NETアセンブリなどを含む)すべてをカバーします。Fortifyも同様に、長いエンタープライズでの歴史から、COBOLやクラシックASPのような古い言語を含む長いリストをサポートしています。Checkmarxは多くの最新言語をサポートし、新しい言語にも対応しています(例えば、GoやKotlinが人気を得るにつれてサポートを追加しました)。ほとんどの組織にとって、本当に特殊なものを使用していない限り、これら3つのツールはスタック内の言語をすべてカバーするでしょう。

一つの違いは、レガシー技術と最新技術にあるかもしれません。Fortifyはレガシー技術において優位性を持つことがよくありました(Fortifyを使用する企業は、PL/SQLコードやメインフレーム言語のようなものまでスキャンすることがあったためです)。CheckmarxとVeracodeは、新しい言語やフレームワークにうまく対応しています(例えば、VeracodeのSCAはSwift Package Managerの依存関係をスキャンでき、Checkmarxは最新のJavaScriptフレームワークなどを処理できます)。ニッチなフレームワークを使用している場合は、各ツールのルールセットを確認する必要がありますが、一般的にカバレッジの幅は同等です。

脆弱性の種類:これら3つはすべて、OWASP Top 10およびCWEカテゴリを網羅的にカバーしています。Fortifyの脆弱性カテゴリは広範であり(時には圧倒的です)、CheckmarxとVeracodeも、SQLインジェクションから安全でないクッキー設定まで、幅広い種類のセキュリティバグをカバーしています。これらのツールはセキュリティバグのみに限定されるわけではなく、コード内の安全でない構成(例:脆弱な暗号アルゴリズムの使用)や、セキュリティ問題につながる可能性のある品質上の問題を特定することがよくあります。FortifyとVeracodeはコード品質と一部重複しますが(Fortifyには信頼性問題のチェッカーがあり、Veracodeには一部の品質ポリシーがあります)、その焦点はセキュリティです。Checkmarxも同様にセキュリティ指向のルールに固執します(コードの臭いを検出するSonarQubeのような純粋な品質ツールとは異なります)。

コードを超えた範囲:前述のとおり、アプリケーションコード自体を超えたカバレッジにおいて違いが生じます。以下に、カバレッジ領域の簡単な比較表を示します。

コンプライアンスとレポート:「スコープ」の一部として、ツールがコンプライアンスフレームワーク(PCI、OWASPなど)に役立つかどうかが挙げられます。Veracodeは、コンプライアンスレポートおよびポリシー管理に対する強力なサポートを提供しています。ポリシー(例:「中程度の重大度を超えるOWASP Top10の問題は許可しない」)を設定し、時間の経過とともにコンプライアンスを追跡できます。Fortifyも同様に、コンプライアンスレポートテンプレートを提供し、エンタープライズGRCシステムと統合します。Checkmarxもコンプライアンス機能を追加していますが、Veracodeはセキュリティチームに焦点を当てているため(ポリシー適用を念頭に置いて構築されているため)、優位性があるかもしれません。特定の基準に従っていることを監査人に示す必要がある場合、これら3つのいずれも役立ちますが、VeracodeとFortifyがここで際立っています。

スコープのスケーラビリティ:数百のアプリケーションがある場合、Veracodeのクラウドモデルは設計上スケーリングを処理します(クラウドでより多くのスキャンをキューに入れるだけです)。Checkmarxのオンプレミス版では、多くのプロジェクトを処理するためにスキャンサーバーをスケールするか、クラウドサービスを利用する必要があります。Fortifyのオンプレミス版はスケール可能ですが、数十のアプリケーションを扱うには大規模なインフラストラクチャと管理が必要となることがよくあります(Fortify on Demandを使用する場合、FoDのクラウドにオフロードできます)。したがって、非常に大規模なアプリケーションポートフォリオがある場合は、各プラットフォームがそれらすべてをカバーするためにどのようにスケールするかを検討してください。Veracodeは大規模な環境で実績がありますが(アプリケーションスキャンごとに料金が発生します)、Fortifyも可能ですが大規模な社内プロジェクトになる可能性があり、Checkmarxはうまくスケールしますが、正しくアーキテクチャを設計するか、SaaSを選択する必要があります。

開発者エクスペリエンス

開発者による日常的な使用に関して、これら3つのツールはすべてダッシュボードとIDE連携を通じて脆弱性を提示しますが、使いやすさと不満の要因は異なります。Checkmarxは最も開発者中心であると位置づけられています。そのUIは比較的クリーンで、開発者は問題を簡単にフィルタリングし、トリアージできます。開発者は使用しているツール(IDE、SCM、CI)で結果を得られるため、コンテキストスイッチングが減ります。Checkmarxはまた、Codebashingという組み込みのトレーニングモジュールを提供しており、開発者が犯した特定のセキュリティ上の誤りについて学ぶのに役立ちます。これは、検出結果を教育的な機会に変えるための良い工夫です。基本的なCheckmarxスキャンの学習曲線は急ではありません。スキャンを実行すると、コードスニペットと修正ガイダンスを含む問題のリストが得られます。高度な使用(カスタムクエリの作成など)はより複雑ですが、ほとんどの人には必須ではありません。1つの不満は、オンプレミスのCheckmarx UIが古く感じられたことです(あるユーザーは、見た目と操作性に関して「1997年からそのまま」だと冗談を言いました)。彼らの新しいクラウドインターフェースはよりモダンです。全体的に、開発者はCheckmarxを使いやすいと感じていますが、大規模プロジェクトでの誤検知や結果管理にかかる時間について不満を漏らすこともあります。

Veracodeの開発者エクスペリエンスはやや複雑です。このプラットフォームのルーツはセキュリティチームへのサービス提供にあるため、そのWebポータルにはデータ、ポリシーレポート、管理者設定が豊富に用意されており、単にバグを修正したいだけの開発者を圧倒する可能性があります。Veracodeは、IDEスキャンプラグインとパイプライン連携を提供することで開発者エクスペリエンスを改善しましたが、一部の開発者はそのプロセスをインタラクティブ性が低いと感じています。詳細な脆弱性情報を確認するにはVeracodeポータルにログインする必要があることが多く、結果が必ずしもソースコードの特定の行を直接指すとは限りません(特に問題がコンパイル済みライブラリにある場合)。また、Veracodeが完全なビルドのアップロードを要求する場合があるため、最近のコミットで新しい脆弱性が導入されたかどうかを確認するために待機している開発者は、スキャンスロットと処理を待つ必要があるかもしれません。この遅延は、今日の開発者が期待する即時性(即時リンティングや迅速なフィードバックなど)を低下させる可能性があります。VeracodeのUIはプロフェッショナルですが、多くの問題をトリアージするにはやや扱いにくいと感じることがあります。例えば、一部のユーザーはレポートのカスタマイズ性向上やフィルタリングの容易さを望んでいます(Veracodeにはこれらの機能がありますが、直感的ではありません)。良い点としては、Veracodeは修正ガイダンスやコンサルティングサービスも提供しており、開発者は検出結果を理解するためにVeracodeの専門家から支援を受けることができます(有料の場合)。そのため、セキュリティ初心者開発者にとって、その意味では実際に支援的であると言えます。ただし、開発者がこのツールを「愛する」ことを期待すべきではありません。正直なところ、必要不可欠ではあるものの、開発者にとって喜ばしいものではないと見なされています。

Fortifyは、開発者にとって最も扱いにくいと見なされることが多いツールです。歴史的に、企業はFortifyスキャンを実行し、PDFをエクスポートしたり、Fortify FPR(Fortify Project Results)ファイルを開発者に送信したりしていました。これは決して開発者フレンドリーではありません。Fortifyには中央Webポータル(SSC)があり、開発者は問題を修正済みとして記録したり、誤検知としてマークしたりできますが、UIとワークフローは、最新のツールと比較して古く、直感的ではないと評されることが多いです。あるセキュリティエンジニアが丁寧に述べたように、Fortifyのインターフェースは必要なことを実行できますが、UX賞を受賞することはないでしょう。Fortifyを使用する開発者は、Fortify Scan WizardまたはIDEプラグインを使用してコードをスキャンするかもしれませんが、これらのツールは機能するものの、IDEを遅くし、新しい製品ほど洗練されていません。また、Fortifyはフィルターを設定しないと大量の結果を出力する傾向があり、開発者を圧倒する可能性があります(「どこから手をつければいいのか?」)。学習曲線は急であり、開発者は検出結果をトリアージするためにFortifyのWorkbenchを効果的に使用するためのトレーニングが必要になる可能性があります。良い点としては、Fortifyの検出結果は詳細であり、時間を投資すれば管理可能になります。しかし、開発者が抵抗なくFortifyを熱心に採用することを期待するのは希望的観測であり、多くの開発者はこれをセキュリティによって義務付けられた面倒な作業と見なしています。これが、一部の企業がFortifyをより開発者フレンドリーなツールで補完または置き換える理由の一部です。

誤検知と開発者の士気: 繰り返しになりますが、誤検知とノイズほど開発者体験を損なうものはありません。CheckmarxやFortifyが開発者に何百もの「可能性のある問題」を浴びせ、そのうちごく一部しか重要でない場合、開発者はツールへの信頼を失い、無視し始めるでしょう。Checkmarxはこの点を認識し、ノイズを低減する機能を宣伝しています。Fortifyの解決策は、監査ツールを使用して既知の誤検知を手動で抑制することです(これも余分な作業です)。Veracodeの戦略は、事前にノイズを低減し、緩和策をマークできるようにすることであり、少なくとも開発者の苦痛を理解していることを示しています。

開発ワークフローへの適合: もう一つの要素は、開発者が修正を容易に組み込み、再テストできるかどうかです。Checkmarxでは、開発者はコードを修正し、ローカルスキャンを実行して、問題が解消されたことを確認できます。Veracodeの場合、一般的なフローはコードをコミットし、CIを実行し、Veracodeにアップロードし、待機してから確認するというもので、やや時間がかかります。Fortifyの場合、開発者がローカルでFortifyスキャンを実行すると時間がかかるか、セキュリティチームの次回のスケジュールされたスキャンを待つことになり、理想的ではありません。したがって、開発者がセキュリティ修正を主導できるようにするためには、Checkmarx(またはAikidoのようなツール)がより直接的な制御を提供します。

要するに、開発者の視点から見ると、Checkmarxは最も嫌われていないツールです。開発者の世界に統合し、ペインポイントを軽減しようとしています。Veracodeは尊敬されていますが、やや距離があります。開発者は、IDE内の役立つ相棒としてではなく、通過しなければならない外部のゲートのように感じています。Fortifyは強力ですが扱いにくいツールです。古いエンタープライズツールを使っているように感じられることが多く、多くの開発者は、Fortifyに積極的に関わるよりも、セキュリティチームからの要約を待つだけになるでしょう。開発者にAppSecに参加してもらいたいなら、摩擦とノイズを最小限に抑えることが重要です。そのため、多くの企業が、セキュリティカバレッジと同様に開発者エクスペリエンスを優先する新しいソリューション(Aikidoなど)に注目しています。

価格とメンテナンス

これら3つのプラットフォームはエンタープライズ価格設定の商用製品であり、いずれも安価とは言えません。実際、コストは全体的に共通の不満点となっています。

  • Veracodeは通常、アプリケーション数、コード行数、スキャン頻度に基づいて課金されます(追加機能のアドオンあり)。レビューでは、Veracodeが「非常に高価な製品」であると頻繁に言及されています。中小企業が導入することは稀です。セキュリティ予算を持つ中堅から大企業向けに位置付けられています。無料ティアはなく、品質と広範な機能に対して費用を支払うことになります。利点としては、インフラストラクチャを維持する必要がないことです。SaaSモデルであるため、サーバー管理やアップデートの費用が含まれています。しかし、数百のアプリケーションや数百万行のコードがある場合、費用は急速に増加する可能性があります(エンタープライズライセンスで6桁の金額になることも珍しくありません)。Veracodeの価格設定はプレミアムです。あるピアレビューでは、その品質の高さは認めつつも、「価格が高すぎる」と断言しています。また、eラーニングや手動ペンテストなどの一部機能は追加料金がかかります。
  • Checkmarxも決して安価ではありません。通常、ユーザー単位またはコードベースモジュール単位でライセンス供与されます。あるレポートによれば、約250人の開発者規模の場合、コストは約50万ドルに達するとのことです。これはエンタープライズ契約がどの程度になるかの目安となります。 Checkmarxには複数のモジュール(SAST、SCA)があり、個別またはバンドルでライセンスされる場合があります。オンプレミス版を選択する場合は、サーバーの割り当てが必要になる点に留意してください(間接コストではありますが、文脈上はそれほど大きくありません)。 SaaS版ではこれがサブスクリプション料金に転換されます。Checkmarxには「コミュニティ版」も実質存在せず(IaCスキャン用の限定版オープンソースKICSなど無料ツールは除く)、予算面ではVeracodeと同等と想定すべきです。セキュリティカバレッジを考慮すれば投資は正当化されるとの見方もありますが、小規模組織にとっては受け入れがたい高額となる可能性があります。
  • Fortifyの価格設定は、より大規模な契約の一部として販売されることが多いため(特にHP/Micro Focus時代には)、変動する可能性があります。従来、Fortifyのオンプレミス版は、コード行数、スキャンごと、またはシートごとにライセンスされており、高価でした。Fortify on Demand(SaaS版)は、アプリケーションごと、またはエンタープライズパッケージごとのサブスクリプションとなる場合があります。公開されている価格情報はありませんが、エンタープライズソフトウェアであるため、エンタープライズ価格を想定してください。Fortifyにはメンテナンスの面で隠れたコストもあります。セルフホスト型の場合、アップデートの管理、ルールの調整、サーバーの維持などを行う人員が必要です。多くの組織では、Fortify専任の管理者を置いたり、デプロイのためにコンサルタントを雇ったりしています。これにより、総所有コストが増加します。プラス面としては、Fortifyのオンプレミスライセンスは一度購入すれば、追加費用なしで無制限にスキャンでき、コードを第三者に送信する必要がない点です(一部の組織にとっては重要です)。しかし、サポートを継続的に更新しないと、新しい脆弱性や言語が登場するにつれて、ツールはすぐに陳腐化する可能性があります。

サポート費用も考慮すべき点です。これら3つのベンダーはすべて、サポートおよびコンサルティングサービスを提供しています。CheckmarxとVeracodeのプレミアムサポートは追加費用がかかる場合があります。Fortifyの標準サポートは通常、ライセンス更新に含まれていますが、トレーニングなどの費用は追加で支払う必要がある場合があります。

Aikido Securityの料金体系は、よりシンプルで予測しやすいように設定されています。ここでは正確な数字を提示することはありませんが、Aikidoは均一で透明性の高い料金モデルを誇りとしており、レガシーツールと比較して、規模が大きくなるほど大幅に手頃な価格で提供されます。追加機能ごとに予期せぬ追加料金が発生することはなく、細かい費用を気にすることなくフルプラットフォームをご利用いただけます。技術リーダーにとって、これは予算編成を容易にし、多額の費用をかけずに開発チーム全体とコードベースをカバーできる可能性を意味します。エンタープライズ機能に対して「プレミアム価格」が設定されているVeracodeやCheckmarxと比較して、Aikidoははるかに優れた費用対効果を提供します。複数のツール(SAST、SCA、DASTなど)を置き換えることができる単一のプラットフォームとして構築されているため、企業は統合によってもコストを削減できます。

要するに、準備が必要です。Veracode、Checkmarx、Fortifyはかなりの予算を必要とします(そのコストは通常、組織の規模に応じて変動します)。小規模なチームの場合、これらは手の届かないものか、過剰なものかもしれません。大規模な組織の場合、ライセンス費用だけでなく、選択したソリューションを管理するための人員も考慮に入れる必要があります。そして、開発者の時間を節約したり、侵害を防いだりするツールは、効果的に使用されればそれ自体で元が取れることを忘れないでください。だからこそ、多くの人がAikidoのような新世代のツールに注目しています。これは、ツールスプロールと管理作業を削減することで総所有コストを低減し、初期費用も抑えられると約束しています。

Veracode、Checkmarx、Fortifyの長所と短所

Veracode – 長所:

  • 網羅的なASTスイート: 静的、動的、および構成分析を単一プラットフォームで提供し、幅広い脆弱性をカバーします。
  • 強力なセキュリティガバナンス:ポリシー適用、コンプライアンス追跡、および役員レベルのレポート(PCI、OWASPなど)の組み込み機能に優れています。
  • クラウドの利便性:SaaS提供により、管理するインフラストラクチャは不要です。多数のアプリケーションに容易に拡張でき、修正のための専門家サポートオプションも含まれています。
  • バイナリスキャンによる検出範囲の拡大:コンパイル済みコードを分析することで、統合されたコンポーネント内の問題を発見し、サードパーティライブラリがアプリケーション全体の一部としてスキャンされることを保証できます。

Veracode – 短所:

  • オンプレミスオプションなし:コードバイナリをクラウドにアップロードする必要があります。オンプレミスに留まる必要がある非常に機密性の高いコードベースには適していません。
  • スキャン完了までの時間が長い:初回スキャンは時間がかかる場合があり(ベースラインレビューに数日かかることも)、その後のスキャンでもパイプラインの遅延が発生し、開発者へのフィードバックが遅れます。
  • 開発者との統合が限定的:IDE内でのフィードバックよりも中央集権的なスキャンに重点が置かれています。開発者はポータルを使用する必要があることが多く、そのエクスペリエンスは開発ワークフローよりもセキュリティチーム向けに設計されています。
  • エンタープライズ向けの高コスト:価格設定はプレミアム寄りであり(複数の情報源で「非常に高価」と評価)、小規模チームにとっては正当化が難しい場合があります。

Checkmarx – 長所:

  • 開発者に優しい静的解析: ビルドなしでソースコードをスキャンし、より迅速なフィードバックとCI/CDおよびIDEへの容易な統合を提供します。
  • 柔軟なデプロイメント:オンプレミスとSaaSの両方で利用可能であり、必要に応じてクラウドパイプラインやセルフホスト環境に適しています。
  • 幅広い言語とセキュリティのカバレッジ:多くの言語をサポートし、SASTとSCAをカバーするほか、IaCやコンテナセキュリティスキャンなどの追加機能により、より包括的なAppSecを実現します。
  • カスタマイズ性と拡張性:カスタムクエリルールを許可し、Codebashingトレーニングなどの機能があります。組織の特定のセキュリティ要件に合わせて調整できます。

Checkmarx – 短所:

  • 誤検知は依然として発生: 一般的に競合他社よりも優れているものの、実際の問題ではない事象を報告する可能性があり、手動でのチューニングと開発者の時間を要してノイズを除外する必要があります。
  • オンプレミス版のUXが古い:古いインターフェースとワークフローは使いにくく感じられることがあり(あるユーザーは90年代のソフトウェアに例えています)、一部の高度な機能はクラウド専用であり、一貫性が損なわれています。
  • 完全なDASTまたはランタイム保護なし:主に静的分析ツールであり、成熟した動的テストコンポーネントやシークレットスキャンなどが不足しているため、追加ツールなしではライブアプリケーションのリスクをカバーできません。
  • 大規模チームには高価:エンタープライズ機能はプレミアム価格で提供され(例:数百人の開発者で約50万ドル)、オンプレミスで実行するとサーバーやアップデートのメンテナンスオーバーヘッドが発生します。

Fortify – 長所:

  • 深く徹底的なスキャン: 最も広範な脆弱性ルールセットを持つ非常に包括的なSASTエンジンであり、長年の改良により、見つけにくいセキュリティ問題を発見できます。
  • エンタープライズグレードの機能:堅牢なレポート機能、コンプライアンステンプレート、およびエンタープライズワークフロー(ALM、バグトラッカー)との統合により、大規模組織のプロセスをサポートします。
  • Dynamic testing included: 完全なDASTソリューション(WebInspect)を提供し、静的および動的アプリケーションテストの両方に対応するワンストップショップとなり得ます。Fortifyは11年以上にわたりGartner MQのリーダーであり、その全体的な機能(俊敏性ではないにしても)に対する信頼性を示しています。
  • 柔軟なデプロイメント:完全なデータ制御のためにオンプレミスで実行することも、Fortify on Demand SaaSとして使用することも可能です。これにより、必要に応じてスキャンを内部に留めることで、厳格なデータプライバシー要件を満たすことができます。

Fortify – デメリット:

  • 大量の誤検知ノイズ: 多くの潜在的な問題を報告することで知られており、相当なトリアージが必要です。ユーザーは、コード変更がないにもかかわらずスキャンが検出結果を報告することについて頻繁に不満を述べています。これにより、開発者は重要でない問題に圧倒される可能性があります。
  • 急な学習曲線と利用労力:設定と使用が複雑で、専門の管理者やコンサルタントが必要となることがよくあります。UIとツールは使いにくく感じられ、開発者の採用を妨げ、プロセスを遅らせる可能性があります。
  • メンテナンス負荷が高い:セルフホスト型のFortifyは、維持管理(サーバー、データベース、アップデート)が必要です。多くの組織では、Fortifyを管理するための専任チームが必要となり、コストと複雑さが増します。ツール自体もリソースを大量に消費し、最適化されていない大規模なコードベースでは動作が遅くなる可能性があります。
  • 最新の開発ワークフローとの統合が限定的:統合は存在しますが、FortifyはアジャイルなDevOpsプラクティスとスムーズに連携しません。開発者はこれを継続的なアシスタントとしてではなく、定期的なゲートとして扱う可能性があり、その結果、セキュリティが組み込まれるのではなくサイロ化されることになります。

Aikido Security: より良い代替策

Aikido Securityは、すべてを煩わしさなく統合するモダンなソリューションです。SAST、DAST、SCA、IaC、コンテナ、シークレット、クラウドセキュリティなど、あらゆるものを1か所でカバーするオールインワンプラットフォームです。従来のツールとは異なり、Aikidoは開発者ファーストで構築されており、IDE、リポジトリ、CI/CDパイプラインにシームレスに統合され、最小限のノイズで即座にフィードバックを提供します。このプラットフォームは、スマートな自動化(AIも含む)により誤検知を削減し、検出結果を自動トリアージするため、チームは実際の課題にのみ集中できますtAI AutoFixの提案により、Aikidoは脆弱性の修正生成も支援し、修復を加速させます。

複数のツールを使い分けたり、アラートに埋もれたりすることはもうありません – Aikidoの統合アプローチは、1つのツールでコードとクラウド全体にわたる完全な可視性を提供し、最も重要なものを優先するためのコンテキストを提供します。開発者フレンドリーなSaaSとして提供され、シンプルで予測可能な価格設定(予期せぬ追加料金なし)により、Veracode、Checkmarx、Fortifyよりも大規模な利用において大幅に手頃な価格を実現します。要するに、Aikidoは従来のツールよりも誤検知が少なく、スキャンが高速で、はるかに優れた開発者エクスペリエンスを提供します。これは、通常の煩わしさなしに最高レベルのセキュリティを求めるチームにとって、実用的で開発者に愛される代替ソリューションです。

Veracode対Checkmarx対Fortifyの戦いにおいて、真の勝者はどれでもありません。彼らの強みを組み合わせ、弱点を克服した新たな挑戦者です。それがAikidoです。開発者とセキュリティリーダーの両方にとってセキュリティを最終的に摩擦のないものにし、迅速に安全なコードを出荷できるようにするツールです。

無料トライアルを開始するか、デモをリクエストして、フルソリューションをご確認ください。

共有:

https://www.aikido.dev/blog/veracode-vs-checkmarx-vs-fortify

脅威ニュースをサブスクライブ

今日から無料で始めましょう。

無料で始める
CC不要

今すぐ、安全な環境へ。

コード、クラウド、ランタイムを1つの中央システムでセキュアに。
脆弱性を迅速に発見し、自動的に修正。

クレジットカードは不要です | スキャン結果は32秒で表示されます。