Webサイトやアプリケーションの開発者は、既知の脆弱性がないか、コンパイル済みコードと未コンパイルコードをテストするために脆弱性スキャンツールを必要とします。
多くの脆弱性スキャンツールは一般的な脆弱性を検出できますが、実行できるスキャンの種類、対応するプログラミング言語、他の開発・運用(DevOps)ツールとの統合には制限がある場合があります。
多くのDevOpsチームは、脆弱性スキャナーの導入柔軟性、スキャン速度、スキャン精度、他のツールとの接続性、そしてもちろん価格を基準に購入を判断します。本記事では主にWebアプリケーション専用のスキャンツールを取り上げ、Rapid7やQualysなどが開発した統合型エンタープライズ脆弱性スキャナーのWebアプリケーションスキャンモジュールは紹介しません。
各ツールを検証したうえで、推奨ツールの選定に用いたアプリケーション脆弱性スキャンツールの評価基準の特徴も定義し、一覧にまとめます。
- Acunetix Vulnerability Scanner(Invicti):WordPressサイトにおすすめ。
- AppScan(HCLTech):幅広いプログラミング言語に最適。
- Burp Suite Enterprise Edition(Portswigger):アウト・オブ・バンドのアプリケーションセキュリティテストに最適。
- Detectify:クラウドソースによる外部攻撃対象領域管理に最適。
- Invicti(旧Netsparker):総合的に最適なアプリケーション脆弱性スキャナー。
- StackHawk:中小企業に最適な選択肢。
- ZAP(OWASP Zed Attack Proxy):予算を重視する専門家に最適。
- アプリケーション脆弱性スキャンツールの評価基準。
- 結論:アプリケーションスキャンツール。
| DAST – 動的アプリケーションセキュリティテスト | IAST – インタラクティブ・アプリケーション・セキュリティ・テスト | ファジング | SAST – 静的アプリケーションセキュリティテスト | SCA – ソフトウェア構成分析 | |
|---|---|---|---|---|---|
| Acunetix | はい | 選択肢 | |||
| AppScan | はい* | はい* | はい* | はい* | |
| Burp Suite | はい | ||||
| Detectify | はい | はい | |||
| Invicti | はい | はい | はい | ||
| StackHawk | はい | ||||
| ZAP | はい |
- Acunetix Vulnerability Scanner(Invicti):WordPressサイトにおすすめ
- AppScan(HCLTech):幅広いプログラミング言語に最適
- Burp Suite Enterprise Edition(Portswigger):アウト・オブ・バンドのアプリケーションセキュリティテストに最適
- Detectify:クラウドソースによる外部攻撃対象領域管理に最適
- Invicti(旧Netsparker):総合的に最適なアプリケーション脆弱性スキャナー
- StackHawk:中小企業に最適な選択肢
- ZAP(OWASP Zed Attack Proxy):予算を重視する専門家に最適
- アプリケーション脆弱性スキャンツールの評価基準
- 結論:アプリケーションスキャンツール
Acunetix Vulnerability Scanner(Invicti):WordPressサイトにおすすめ
InvictiのAcunetixツールは、DAST脆弱性検出を強化し、IASTとネットワークセキュリティスキャンのオプションも備えています。Acunetixは速度と精度を重視していますが、エンタープライズ向けに設計されたInvictiツール(下記参照)と同じ方法での拡張には対応していません。多数のページを扱うWordPress開発者は、大規模なWordPressサイトで効果を発揮する同時クロール・スキャン機能を理由にAcunetixを選ぶことがよくあります。

主な機能
- Linux、macOS、Microsoft Windowsへのローカル導入、またはクラウドでの導入に対応
- PHP、Java、.NETコード向けのIASTスキャンをオプションで利用可能
- 統合されたOpenVASにより、IPアドレス範囲をネットワークセキュリティスキャンし、開放ポートなどネットワーク固有の脆弱性を検出
- 脆弱性を、高信頼度(100%検証済み)、中信頼度(存在する可能性が高いが自動検証不可)、低信頼度(可能性が疑われ、侵入テストまたはソースコードの調査が必要)に分類
- 複雑なパスや多段階フォーム、パスワード保護された領域、スクリプトの多いサイト(JavaScriptまたはHTML5)、シングルページアプリケーション(SPA)、リンクされていないページをスキャン
長所
- 速度と効率を重視して設計
- 高速化のためC++で記述
- リクエスト数を抑えて帯域幅とサーバー負荷を軽減するようコードをテスト
- 同時クロール・スキャンにより、迅速かつ効率的に結果を提供
- スキャンの優先順位を動的に設定し、スキャンの最初の20%で脆弱性の最大80%を返せる
- Webアプリケーションの変更を検出し、コードの変更部分だけを対象に増分スキャンを実行可能
- 誤検知を積極的に削減し、脆弱性を検証して悪用の証拠を提示可能
- Jenkins、Jira、GitHubなどのパイプラインツールや課題管理ツールと統合し、開発者のワークフローに組み込み可能
短所
- テスト精度はInvictiの主力スキャンツール(下記参照)ほど高くない
- 脆弱性の概念実証が複雑で、理解しにくい場合がある
- 対象アプリのライセンスモデルに対する顧客の不満がある
価格
InvictiはWebサイトでAcunetixの価格を公開しておらず、見積もりやデモを希望する場合はフォームへの入力を求めています。Acunetixは、スキャンするWebサイトまたはWebアプリケーションの数と契約期間に基づく年間サブスクリプションとして提供されます。Invictiは3つのバージョンを提供しています。
- Standard:シングルユーザー、オンプレミス
- Premium:Standard版の機能に加え、継続的スキャン、ロールベースのアクセス制御、コンプライアンスレポート、ネットワーク脆弱性スキャン、課題管理ツール統合、複数ユーザー、複数のスキャンエンジン、ホスティングまたはオンプレミスに対応
- Acunetix 360:ネットワーク脆弱性スキャンを除くPremiumの機能に加え、カスタマイズ可能なワークフロー、シングルサインオン、ハイブリッド環境へのインストールオプションを提供
AppScan(HCLTech):幅広いプログラミング言語に最適
2018年、IBMはAppScanを含む象徴的なソフトウェアブランドを、インドのHCLTechに売却しました。HCLTechは現在もAppScanソフトウェアの開発を続けており、現在は5つの異なるバージョンを提供しています。AppScan CodeSweep(無料)、AppScan Standard(DAST)、AppScan Source(SAST)、AppScan Enterprise(SAST、DAST、IAST、リスク管理)、AppScan on Cloud(SAST、DAST、IAST、SCA)です。

主な機能
- 標準的なJavaScriptやPythonから、DartやCobolなど比較的ニッチな言語まで、非常に幅広いプログラミング言語に対応
- 脆弱性を強調表示し、開発者に緩和策を学ばせることが可能
- 未コンパイルコード、GitHubのプル、Webアプリ、Webサービス、モバイルバックエンドをレビュー可能
- オープンソースのサプライチェーンコードに含まれる脆弱性を追跡・特定可能
- PCI DSS、OWASP Top 10などのコンプライアンスベンチマークと比較可能
- 拡張性と自動化に優れたセキュリティテスト
- APIをスキャン・分析
- スキャンリクエストなしで実行時の問題を検出するため、実行中のコードを監視
長所
- 開発ニーズに合わせた多様なツールを提供
- 複雑なユースケースやアプリケーションフローに対応可能
- DevOpsの継続的インテグレーション/継続的デリバリー(CI/CD)パイプラインと統合可能
短所
- 一部のデフォルトDASTスキャンは時間がかかりすぎたり、エラーになったりする場合がある
- 厳格な定義により、誤検知が発生する場合がある
- プラグインがスコア結果に影響する場合がある
- 一部のライセンスはかなり高額になる場合があると顧客が指摘
価格
HCLTechはWebサイトでAppScan製品の価格を公開していませんが、開示しています。顧客はノードロックライセンス(単一ライセンス、単一マシン)またはフローティングライセンスを取得できます。見積もりを依頼するにはHCLTechに連絡するか、パートナー経由で手続きできます。ライセンスは12か月間のサブスクリプションとサポートを対象とします。
Burp Suite Enterprise Edition(Portswigger):アウト・オブ・バンドのアプリケーションセキュリティテストに最適
Portswiggerの人気製品Burp Suiteは4つの方法でライセンスを取得できます。Burp Suite Community EditionとDastardlyのWebアプリケーションスキャナーは、開発者が使い始めるのに役立つ無料かつ機能限定のツールです。Burp Suite Professionalは手動の侵入テスト機能を提供し、Burp Suite Enterprise Editionは自動化された動的Web脆弱性スキャンを提供します。

主な機能
- 先駆けて導入したアウト・オブ・バンドのアプリケーションセキュリティテスト(OAST)により、外部サーバーを使って、ブラインド型や非同期型などDASTでは検出が難しいバグを発見。OASTはSASTの誤検知も削減
- APIセキュリティテスト
- 簡単なセットアップとスキャン
- 主要なCI/CDプラットフォームおよびバグ追跡システムすべてと統合
- ロールベースのマルチユーザーアクセス制御
- 複数の導入オプション
- 課題の集約レポート、直感的なダッシュボード、グラフ、レポート
- コンプライアンス要件別のレポートを利用可能
- 組み込みのChromiumブラウザーをスキャンに使用
長所
- 定期スキャンを簡単にスケジュール設定
- 拡張性に優れたスキャン
- カスタム構成とすぐに使える構成
- 標準ソフトウェアとして、またはHelmチャートを使ってKubernetesに導入可能
短所
- 構成が複雑で時間がかかると不満を訴える顧客がいる
- 誤検知や見逃しの結果が報告されている
価格
BurpのEnterprise Editionでは、Portswiggerはスキャン可能なユーザー数や個別アプリケーション数に制限を設けていません。ソリューションはライセンス供与され、実行する同時スキャン数に基づいて料金が決まります。
- Starterプラン:同時スキャン5件=年額8,395ドル
- Growプラン:同時スキャン20件=年額17,380ドル
- Accelerateプラン:同時スキャン50件以上、年額35,350ドルから
Burp Suiteの詳細については、Burp Suite入門:ペンテストチュートリアル
Detectify:クラウドソースによる外部攻撃対象領域管理に最適
Detectifyは、クラウドソースによる脆弱性調査を活用し、資産の検出と脆弱性評価のための外部攻撃対象領域管理(EASM)ツールを強化することを目指しています。現在、DetectifyはSurface MonitoringとWeb Application Scanningという2つのソリューションを提供しています。
Surface Monitoringは、アプリケーションのインターネットに公開されたサブドメインを調査し、公開ファイル、脆弱性、その他のコード以外の設定ミスを検出します。Webapp scanningは、カスタム開発アプリのコードをテストしてセキュリティ脆弱性を検出します。

主な機能
- インターネットに公開された資産を継続的かつ自動的に検出、インベントリ化、監視
- コードをクロールする独自の最適化エンジン
- ファジングテストを実行
- 脆弱性をフィルタリングしてタグ付けし、修正の優先順位付けが可能
- Slack、Jira、Splunkなどのツールと統合できる柔軟なAPI
長所
- 各資産の開放ポート、DNSレコードタイプ、ホスティング技術を検出
- カスタムポリシーを設定可能
- サブドメイン乗っ取りから保護可能
- 意図しない情報開示を検出
短所
- システムは脆弱性の履歴を追跡しますが、最近修正された脆弱性を認識せず、レポートにも含めません
- 誤検知としてマークしたものが、その後のレポートにも表示され続ける場合がある
- 脆弱性が悪用可能である可能性を常に示すとは限らない
価格
Detectifyは2週間の無料トライアルを提供し、Webアプリケーション、ドメイン、サブドメインのスキャン数に基づいてソフトウェアをライセンス供与しています。小規模組織向けには、Detectifyは次の価格から始まるパッケージを提供しています。
- 最大25個のサブドメインを対象とするSurface Monitoring:月額289ドル、年額請求
- スキャンプロファイル1件あたり月額89ドル、年額請求
Invicti(旧Netsparker):総合的に最適なアプリケーション脆弱性スキャナー
Invictiは、旧称Netsparkerの、エンタープライズ規模と自動化を想定して設計されたアプリケーション脆弱性スキャナーです。Invictiは、小規模企業向けのAcunetix製品を使用した後に、企業が成長に合わせて導入するツールとしてこの製品を位置付けています。

主な機能
- 自動かつ継続的なスキャンにより、Webサイト、アプリケーション、APIのインベントリを更新
- 複数の同時スキャンを可能にし、レポート用の中央リポジトリにデータを送るスキャナーを使用することで、スキャン待ちを回避
- オンプレミス、クラウド、Dockerイメージ内、またはハイブリッドソリューションとして導入可能。クラウドエージェントはスキャンの開始時に起動し、完了すると自動的に削除されます。
- 動的かつ自動化可能なDAST、IAST、SCAスキャン
- アウト・オブ・バンドテストと非同期脆弱性テスト
- IASTセンサーは、脆弱性のファイル名やプログラム行番号を提示できる場合が多い
- フォーム送信、OAuth2、NTLM/Kerberosなどで認証されたページをクロール
- 複雑なパスや多段階フォーム、パスワード保護された領域、スクリプトの多いサイト(JavaScriptまたはHTML5)、シングルページアプリケーション(SPA)、リンクされていないページをスキャン
長所
- 隠しファイルをスキャン
- 設定ファイルの構成ミスを検出
- 業界をリードする検出率と誤検知率を独立したテストで実現
- アプリケーションのセキュリティ態勢を長期的に追跡し、脆弱性の傾向を特定
- 誤検知を積極的に削減し、脆弱性を検証して悪用の証拠を提示可能
- Jenkins、Jira、GitHubなどのパイプラインツールや課題管理ツールと統合し、開発者のワークフローに組み込み可能
短所
- 習得に時間がかかる場合がある
- 多要素認証テストが効果的でないと顧客が不満を訴えている
- 大規模なWebアプリケーションではスキャンが遅いとユーザーが指摘
- Windowsソフトウェアのインストールでのみ利用可能
価格
InvictiはWebサイトで価格情報もライセンスレベルも公開していません。Invictiは3つのプランを提供しています:
- Standard:オンプレミスのデスクトップスキャナー
- Teamスキャナー(ホスティング型):デスクトップスキャナーに次の追加機能を加えたもの
- マルチユーザープラットフォーム
- 組み込みワークフローツール
- PCIコンプライアンススキャナー
- 資産検出
- Enterprise(ホスティング型またはオンプレミス):カスタムワークフローと専任のテクニカルサポートを追加
StackHawk:中小企業に最適な選択肢
毎日コードを書いてリリースするDevOpsエンジニアがDevOpsエンジニアのために設立したStackHawkは、安全なソフトウェアを構築するプロセスの簡素化を目指しています。同社のDASTスキャナーはCI/CD自動化およびSlackと統合し、検出結果のトリアージと迅速な修正を支援します。1つのアプリケーションをスキャンできる無料プランが用意されているため、リソースに制約のある中小企業(SMB)でも、開発プロセスにセキュリティを組み込むことができます。

主な機能
- CI/CDおよびSlackとの統合
- REST、GraphQL、SOAPをサポート
- カスタムスキャン検出と過去のスキャンデータ
- cURLベースの再現条件
長所
- 1つのアプリケーションを無制限にスキャン
- スキャンと環境を無制限に利用可能
- Dockerベースのアプリケーションセキュリティスキャナー
- 無料ツールにも継続的に機能を追加(gRPCサポートを開発中)
短所
- Dockerインフラストラクチャの使用と知識が必要
- 無料版ではメールによるサポートのみ
- 複数のアプリケーションには有料ライセンスが必要
価格
StackHawkは3つのライセンスレベルを提供しています。有料版は開発者1人あたり月額の料金に基づき、月払いが可能です。有料プランでは、年払いにすると割引が適用されます。
- 無料プラン:1つのアプリケーションのみ
- 開発者1人あたり月額49ドルのProプラン
- 最低5人の開発者が必要。ボリュームディスカウントあり
- アプリケーションスキャンは無制限
- 無料プランの機能に加え、アプリケーションダッシュボード、Snyk統合、GitHub CodeQLおよびRepo統合、REST向けカスタムテストデータ、HawkScan ReScan、GraphQL向けカスタムテストデータを提供
- メールとSlackによるサポート
- 開発者1人あたり月額69ドルのEnterpriseプラン
- ボリュームディスカウントあり
- Proプランの機能に加え、シングルサインオン、MS Teams、Webhooks統合、ロールベースの権限、経営層向けサマリーレポート、スキャン結果へのAPIアクセス、ポリシー管理など、多数の機能を提供
- メール、Slack(専任サポート)、およびPremier Zoomサポートのオプションによるサポート
ZAP(OWASP Zed Attack Proxy):予算を重視する専門家に最適
Open Web Application Security Project(OWASP)財団とオープンソースコミュニティが、Zed Attack Proxy、つまり無料のWebアプリスキャンツールとしてのZAPを作成しました。ZAPは専任のオープンソースボランティアプログラマーによってサポートされ、ZAPマーケットプレイスを通じて追加機能を入手できます。

主な機能
- 主要なオペレーティングシステムとDockerで利用可能
- すぐに使い始められるDockerパッケージのスキャンを利用可能
- 自動化フレームワークを利用可能
- 包括的なAPIを利用可能
- 手動および自動の探索を利用可能
長所
- 無料ツール
- 大規模なサポートコミュニティ
- ZAPはペネトレーションテスターが広く利用しているため、ZAPを使うことで、一般的な攻撃者が発見する可能性のある脆弱性を把握できます
短所
- オープンソースコミュニティによるサポートは、有料サポートほど迅速でも直接的に役立つものでもない
- 利用にはより高い専門知識が必要
価格
ZAPは無料のオープンソースツールです。
アプリケーション脆弱性スキャンツールの評価基準
Webサイトやアプリケーションの脆弱性スキャンツールは数多くあり、その大半はOWASP Top 10に挙げられている一般的な重大脆弱性、たとえばSQLインジェクション(SQLi)やクロスサイトスクリプティング(XSS)などを検出します。また、主要なアプリケーションセキュリティベンダーと機能が大きく重複します。どちらの種類のツールも、同様の手法でコードを調査するためです。
- 動的アプリケーションセキュリティテスト(DAST)は実行中のコードをスキャンします
- 静的アプリケーションセキュリティテスト(SAST)は停止中のコードをスキャンします
- インタラクティブアプリケーションセキュリティテスト(IAST)は実行中のコード内部で動作し、パフォーマンスと問題を監視します
- ソフトウェア構成分析(SCA)ツールはオープンソースコンポーネントを分析します
- ファジングツールは、予期しない文字、特殊文字、不正な形式、その他のデータ入力のバリエーションを意図的に使用し、不正な入力に対するソフトウェアの耐性をテストします
このリストを作成するにあたり、幅広いWebサイト、ベンダー資料、顧客レビューを調査し、機能と評判に基づく有力候補のプールを作成しました。次に、そのリストをWebサイトとアプリケーションのセキュリティを専門とするベンダーに絞り込みました。
オープンソースツールの多くは、機能、統合、サポートが限られているため、ZAP以外は意図的に除外しました。また、QualysやTenableなどのエンタープライズ向けツールに含まれるアプリケーションスキャンモジュールや機能も除外しました。
結論:アプリケーションスキャンツール
Webサイトやアプリケーションの重要性と機能が高まるにつれ、あらゆる機会を悪用しようとする攻撃者の注目を集めています。規模を問わず、どの組織も脆弱性スキャンツールを導入し、他者に先んじて最も一般的な脆弱性を特定する必要があります。
脆弱性を効率的に排除するには、検出された脆弱性のチケット管理や追跡を可能にするツールを選ぶべきです。アラート(メール、Slackなど)を送信するツールもあれば、DevOpsツールと直接統合するツールもあります。導入を成功させるには、セキュリティチームと開発チームが協力して、適切かつ効果的なツールを選定する必要があります。
脆弱性スキャンの選択肢について詳しくは、次を参照してください。





