SQLインジェクション(SQLi)攻撃は、開発者やセキュリティ専門家にとって依然として重大な懸念事項だ。Statistaの報告書によると、SQLインジェクションはWebアプリケーションの脆弱性の最大の原因となっている。
SQLi攻撃は、データベースに保存されたメールアドレス、ユーザー名、パスワード、クレジットカード情報などの機密情報にアクセスする可能性がある。つまり、攻撃者はこうした情報を読み取れるだけでなく、変更や削除もできる。
SQLi攻撃が残す被害の大きさを考えれば、Webアプリケーションのセキュリティと完全性を維持するうえで、SQLi攻撃の検出と防止は不可欠だ。こうした脆弱性の特定と軽減に役立つSQLi検出ツールは数多く存在する。本記事では、2023年に注目すべきSQLi検出ツールをいくつか紹介する。
- sqlmap:最も優れたオープンソースのSQLi検出ツール 続きを読む
- Invicti:セキュリティスキャンの可視性に最適 続きを読む
- Burp Scanner:手動テストと自動テストの組み合わせに最適 続きを読む
- jSQL Injection:Java開発者に最適 続きを読む
- AppSpider:Windows OSユーザーに最適 続きを読む
- Acunetix:スクリプトを多用するWebアプリのスキャンに最適 続きを読む
- Qualys WAS:定期的な脆弱性評価に最適 続きを読む
- HCL AppScan:オンプレミス環境とクラウド環境の脆弱性管理に最適 続きを読む
- Imperva:自動的な軽減策に最適 続きを読む
主要なSQLi検出ツールの比較
この表では、主要なSQLi検出ツールを、主な機能と価格情報とともに比較・要約します。
| ツール | 統合機能 | 自動スキャン | 高度なレポート機能 | リアルタイム監視 | 複数OSをサポート | 価格 |
|---|---|---|---|---|---|---|
| SQL Map | はい | はい | いいえ | いいえ | はい | 無料 |
| Invicti | はい | はい | はい | はい | はい | 見積もりについてはベンダーに問い合わせ |
| Burp | はい | はい | はい | はい | はい | 年間449ドルから |
| jSQL Injection | はい | はい | いいえ | いいえ | はい | 無料 |
| Appsider | はい | はい | はい | はい | Windows | Webアプリケーション1つにつき年間2000ドルから |
| Acunetix | はい | はい | はい | はい | WindowsおよびLinux | 見積もりについてはベンダーに問い合わせ |
| Qualys WAS | はい | はい | はい | はい | はい | 見積もりについてはベンダーに問い合わせ |
| HCL AppScan | はい | はい | はい | はい | はい | 見積もりについてはベンダーに問い合わせ |
| Imperva | はい | はい | はい | はい | はい | 見積もりについてはベンダーに問い合わせ |
移動:
sqlmap
最も優れたオープンソースのSQLi検出ツール
sqlmapは、GitHubで入手できるSQLiおよびデータベース乗っ取り用の自動化ツールだ。このオープンソースのペネトレーションテストツールは、SQLiの欠陥やデータベースサーバーを乗っ取るその他の攻撃の検出・悪用プロセスを自動化する。
sqlmapは、ブール型盲検、エラー型、時間ベース盲検、スタック型、そしてUNIONクエリを含む主要なSQLi手法にも対応している。さらに、このツールはMySQL、PostgreSQL、Microsoft SQL Server、Oracle、Microsoft Access、IBM DB2、SQLite、Firebirdなど、数多くのデータベース管理システムと統合できる。
また、検出エンジン、ペネトレーションテストを実施する複数の方法、データベースのフィンガープリント取得、データの取得、基盤となるファイルシステムへのアクセス、帯域外接続を介したオペレーティングシステム(OS)上でのコマンド実行のためのツールも備えている。
価格
- 無料。
機能
- 複数のデータベース管理システムを完全にサポートする。
- ローカルのSQLite 3データベース上で、バックエンドデータベースのテーブル構造とエントリをプロトタイプ化できる。
- ブール型盲検、時間ベース盲検、エラー型、UNIONクエリ、スタック型クエリという5つの主要なSQLi手法に対応する。
- アプリケーションからのHTTP Set-Cookieヘッダーを自動処理する。
メリット
- オープンソースで無料。
- さまざまなテストケースに合わせて変更できる。
- Metasploitやw3afなど、他のITセキュリティ向けオープンソースツールとの統合に対応する。
デメリット
- コマンドラインツールのみ。
- 誤検知が発生する可能性がある。
Invicti
セキュリティスキャンの可視性に最適
Invictiは、Webアプリケーションの脆弱性を特定して修正を割り当てることで、ソフトウェア開発ライフサイクル(SDLC)全体のセキュリティタスクを自動化するWebセキュリティ管理ソリューションだ。SQLiを中核機能の1つとし、Proof-based Scanning技術によって脆弱性を特定・確認し、誤検知ではない結果を示す。
SQLiに加えて、クロスサイトスクリプティング(XSS)や、Webアプリケーション、Webサービス、Web APIにおけるその他の脆弱性も特定できる。また、セキュリティテストツールとレポート生成機能を備え、DevOps環境に統合できる。Apache、Nginx、IISなどのWebサーバーをチェックし、AJAXやJavaScriptベースのアプリケーションにも対応する。
価格
Invictiは2つの料金プランを提供しており、営業チームへの問い合わせで価格を確認できるほか、無料トライアルとデモも利用できる。
- Invicti Pro:約100のアプリケーションとAPIを持つ中規模企業に適したプラン。
- Invicti Enterprise:Invictiの機能一式を利用でき、大企業に適したプラン。
機能
- WebアプリケーションとAPIの完全かつ最新のインベントリを自動的に維持できる。
- 高度なレポート機能と分析機能を提供する。
- 脆弱性の正確な場所を特定できる。
- Invictaはテクノロジーのバージョン追跡機能を提供し、古いフレームワークやライブラリに起因する脆弱性を軽減する。
メリット
- SQLi検出にとどまらず、Webアプリのセキュリティに対応する。
- ツールを試したい新規ユーザー向けに無料トライアルを提供する。
- 初めて利用するユーザー向けの包括的なドキュメントが用意されている。
デメリット
- 価格の透明性がない。
- 機能の大半はエンタープライズプランでしか利用できない。
Burp Scanner
手動テストと自動テストの組み合わせに最適
PortSwiggerの研究成果を活用するBurp Suite内のWeb脆弱性スキャナーは、ユーザーがWebアプリケーションの幅広い脆弱性を自動的に発見できるよう支援する。例えば、Burp Collaboratorは、対象と外部サーバー間のやり取りを特定し、非同期SQLiやブラインド型サーバーサイドリクエストフォージェリ(SSRF)など、従来のスキャナーでは見えないバグを検出する。
Burp Suite Enterprise EditionやBurp Suite Professionalなどの大規模スイートの中核を担うBurp Scannerのクロールエンジンは、クロスサイトリクエストフォージェリ(CSRF)トークン、ステートフルな機能、過負荷状態または不安定なURLといった障害を突破する。組み込みのChromiumブラウザーはJavaScriptをレンダリングしてクロールし、クロールアルゴリズムはテスターと同様の方法で対象のプロファイルを構築する。
価格
Burpの主な料金プランは、Burp Suite EnterpriseとBurp Suite Professionalの2つ。
Burp Suite Professionalプランは年間449ドル。Burp Suite Enterpriseの料金は3つのティアに分かれている。
- Starter:年間8,395ドル。
- Grow:年間17,380ドル。
- Unlimited:年間49,999ドル。
機能
- SQLi、クロスサイトスクリプティング、その他のOWASPトップ10の脆弱性に対する手動テスト。
- 脆弱性の自動スキャン。
- 自動ボリュームスキャンとシミュレーションシナリオを提供する。
- セッション処理やカスタムスクリプトなど、高度なスキャンオプション。
メリット
- 手動と自動の両方によるアプリケーションテストを提供する。
- 無料トライアルを利用できる。
デメリット
- 特に新規ユーザーにとって、ユーザーインターフェースの操作が難しい。
- 小規模企業にとっては高額になる可能性がある。
jSQL Injection
Java開発者に最適
jSQL Injectionは、ITチームが遠隔サーバーからデータベース情報を発見するのに役立つJavaベースのツールだ。SQLiに対処するための、数多くある無料のオープンソース手段の1つでもある。Windows、Linux、Macの各オペレーティングシステムとJava 11~17に対応する。
jSQL Injectionは非常に効果的なSQLi対策ツールであるため、以下を含む多くの脆弱性スキャンおよびペネトレーションテスト製品・ディストリビューションに組み込まれている:Kali Linux、Pentest Box、Parrot Security OS、ArchStrike、およびBlackArch Linux。
Access、DB2、Hana、Ingres、MySQL、Oracle、PostgreSQL、SQL Server、Sybase、Teradataなど、33種類のデータベースエンジンに対する自動インジェクションにも対応する。複数のインジェクション戦略とプロセスに対応でき、SQLや改変用のスクリプトサンドボックスも提供する。
価格
- 無料。
機能
- 複数のデータベースエンジンに対する自動インジェクションを提供する。
- SQLiユーティリティは、他の脆弱性テスト製品にも広く組み込まれている。
- 通常型、エラー型、ブラインド型、時間ベースなど、さまざまなインジェクション戦略に対応する。
- データベースのフィンガープリンティングに対応し、データベースへの接続と情報取得を容易にする。
メリット
- 無料でオープンソース。
- 充実したドキュメントライブラリ。
デメリット
- レポート機能が限定的。
- ポータブルだが、大規模企業には適していない。
AppSpider
Windows OSユーザーに最適。
AppSpiderは、Rapid7が開発したWebアプリケーションセキュリティスキャナーだ。このツールは、アプリケーションを継続的に監視し、現実の攻撃をシミュレーションすることで、SQLiに対するアプリケーションセキュリティ機能を提供する。
このソリューションは、アプリケーションの最も深い部分までクロールして潜在的なリスクを特定し、ポータブルなアプリケーションと複雑なアプリケーションの両方をテストできるよう設計されている。さらに、脆弱性を迅速かつ効果的に修正できるよう、開発者に詳細な情報を提供する。
AppSpiderは、ユーザーのアプリケーションセキュリティ要件を満たすため、さまざまな補完ツールと連携できる。さらに、JenkinsやBambooなどの継続的インテグレーション(CI)ツール、Jiraなどの課題追跡システム、Seleniumなどの自動テストツール、SwaggerなどのAPIドキュメントフレームワークと統合できる。
価格
AppSpiderには3つの料金カテゴリーがある。
- InsightAppSec(クラウド):価格はWebアプリケーション1つあたり2,000ドルから。
- AppSpider Enterprise(オンプレミス): 見積もりについてはベンダーに問い合わせが必要。
- Managed AppSec(クラウド):見積もりについてはベンダーに問い合わせが必要。
機能
- ワンクリックの脆弱性検証機能を提供し、修正報告を容易にする。
- ユニバーサル翻訳機能を提供し、最新のWebアプリケーションをより包括的にクロールできる。
- ChromeプラグインとHTMLベースのレポート機能を提供する。
- OWASPトップ10以外の脆弱性もテストできる。
メリット
- SQLiにとどまらず、幅広い脆弱性テストを提供する。
- ワンクリックの脆弱性検証機能を提供し、テストを迅速化する。
デメリット
- 製品の使用方法に関するトレーニング資料が不十分。
- すべての料金プランが透明なわけではない。
- Windowsオペレーティングシステムのみをサポートする。
Acunetix
スクリプトを多用するWebアプリのスキャンに最適。
Acunetix by Invictiは、Webベースのアプリケーションをスキャンする総合機能の一環としてSQLiテストを実行する。マルチスレッドスキャナーにより、WindowsとLinux上で数十万ページを迅速にクロールできる。一般的なWebサーバー設定の問題を特定し、特にWordPressのスキャンに優れている。
すべてのWebサイト、アプリケーション、APIのリストを自動的に作成し、最新の状態に保つ。また、SPA、スクリプトを多用するサイト、HTML5とJavaScriptで構築されたアプリケーションをスキャンできるほか、パスワードで保護された領域やアクセスしにくい領域のスキャンを自動化するマクロも提供する。
価格
- 見積もりについてはベンダーに問い合わせが必要。
機能
- SQLiに加えて、7,000以上の脆弱性をテストできる。
- サイトのパスワード保護領域をスキャンできる、高度なマクロ記録技術を提供する。
- 脆弱性の深刻度を評価し、実行可能な情報を提供できる。
- Acunetixは脆弱性管理機能を内蔵しており、開発者はアプリケーションの脆弱性により迅速に対処できる。
メリット
- Webアプリ、ページ、複雑なWebアプリケーションを総合的にスキャンできる。
- 脆弱性検証機能により、本物の脆弱性を判別でき、誤検知の発生を減らせる。
- Jenkinsのプラグインとしてインストールできる。
デメリット
- 価格が透明ではない。
- 無料トライアルがない。
Qualys Web Application Scanning(WAS)
定期的な脆弱性評価に最適。
Qualys WASは、自動テストと手動テストの手法を組み合わせてWebアプリケーションを分析し、発見した脆弱性について詳細なレポートを提供する。Qualys WASは、SQLi、クロスサイトスクリプティング(XSS)、その他の一般的なWebアプリケーションの脆弱性など、さまざまな脆弱性を検出できる。
脆弱性スキャンに加えて、詳細なレポート、他のセキュリティツールとの統合、PCI DSSなどのコンプライアンス要件への対応といった機能も提供する。
価格
- Webサイトに価格は掲載されていない。見積もりについてはQualysに問い合わせが必要。
機能
- 他のセキュリティ情報およびイベント管理(SIEM)ツールとの統合。
- 数百万の資産を管理できるスケーラブルなソフトウェア。
- 技術的な詳細、深刻度ランキング、推奨される修正手順を網羅した詳細なレポートに対応する。
- Qualys WASは自動クロールと自動スキャンに対応する。
メリット
- 高いカスタマイズ性。
- アプリケーション環境を詳細に可視化できる。
- コンプライアンスチェックとレポート機能を内蔵する。
デメリット
- オンプレミス環境を運用する組織には適していない。
- セットアップと設定に一定の技術的知識が必要になる可能性がある。
HCL AppScan
オンプレミス環境とクラウド環境の脆弱性管理に最適。
AppScanは、IBMが開発し、HCL Technologiesが買収したWebアプリケーションセキュリティテストツールだ。オンプレミス版とクラウド版の両方が用意されている。Java、.NET、PHPなど、さまざまなテクノロジーやフレームワークで構築されたWebアプリケーションを対象に、SQLiを含むさまざまな脆弱性をテストできる。
AppScanは、動的スキャン(DAST)と静的スキャン(SAST)を含むさまざまなスキャン機能に加え、手動テストのオプションも提供するため、Webアプリケーションセキュリティテスト向けの汎用性の高いソリューションとなっている。
AppScanは、脆弱性の深刻度ランキングや推奨される修正手順など、詳細なレポート機能を提供する。また、脆弱性管理プラットフォームやSIEMシステムなど、他のセキュリティツールとも統合できる。
価格
- 見積もりについてはベンダーに問い合わせるか、無料トライアルを利用できる。
機能
- DAST、SAST、インタラクティブスキャン(IAST)など、複数のアプリケーションテスト機能に対応する。
- 固有のテストケースに合わせてカスタマイズできる手動テストオプションを備える。
- 詳細なレポート機能を備える。
- 幅広いWebアプリケーション技術およびフレームワークと統合できる。
メリット
- 包括的なスキャン機能。
- 無料トライアルを利用できる。
- 幅広いWebアプリケーション技術に対応する。
デメリット
- 小規模な組織には高額になる可能性がある。
- 一部のユーザーにとってはインターフェースが複雑すぎる可能性がある。
- 一部のユーザーにとってはインストール手順が複雑な可能性がある。
Imperva
自動的な軽減策に最適。
Impervaは、Webアプリケーションセキュリティソリューションの一環としてSQLi検出を提供するサイバーセキュリティプラットフォームだ。Imperva SecureSphere Web Application Firewall(WAF)は、SQLi攻撃を含むさまざまな種類の攻撃からWebアプリケーションを保護するよう設計されている。
このプラットフォームは、シグネチャベースの検出、行動分析、機械学習アルゴリズムなどの高度な技術を使用して、SQLi攻撃をリアルタイムで検出・防止する。
価格
- 見積もりについてはベンダーに問い合わせるか、無料トライアルを利用できる。
機能
- シグネチャベースの検出、行動分析、機械学習アルゴリズムなど、高度な検出技術。
- SQLi攻撃のリアルタイム監視と防止。
- 幅広いデータベースとWebアプリケーションに対応する。
- SQLi攻撃と脆弱性に関する包括的なレポートと分析。
- WAFやデータベースファイアウォールなど、他のセキュリティソリューションとの統合。
- NIST標準などのコンプライアンス要件への対応。
メリット
- 無料トライアルを利用できる。
- 脅威のリアルタイム監視とレポート。
- 他のセキュリティソリューションと幅広く統合できる。
デメリット
- 価格が透明ではない。
SQLi検出ソフトウェアの主な機能
SQLi検出ツールには、脆弱性評価、リアルタイム監視、自動スキャン、レポート機能、統合機能など、利用者が確認すべき重要な機能がいくつかある。
脆弱性評価
SQLi検出ツールには通常、アプリケーションの入力検証における潜在的な弱点の特定に役立つ脆弱性評価機能が含まれている。この機能は、アプリケーションのコードと設定を徹底的に分析し、存在する可能性のあるSQLi脆弱性を特定する。
主要なSQLi検出製品の多くでは、脆弱性が検出されると、それを修正する方法に関する詳細な情報がソフトウェアから提供されるため、脆弱性の修正方法を検討する時間を短縮できる。
リアルタイム監視
リアルタイム監視も、SQLi検出ソフトウェアに不可欠な機能だ。この機能は、アプリケーションの入力および出力リクエストを継続的に監視し、SQLiの試行をリアルタイムで特定する。攻撃が検出されると、ソフトウェアが攻撃をブロックしてデータ窃取を防ぎ、侵害の試みを担当者に通知する。
自動スキャン
自動スキャンは、SQLi検出ソフトウェアの重要な機能であり、SQLi脆弱性を迅速に特定するのに役立つ。この機能は、アプリケーションのコードベースと設定をスキャンして脆弱性を特定するプロセスを自動化し、手動スキャンに必要な時間とリソースを削減する。
自動スキャン機能により、開発者はアプリケーションに必要な頻度で定期的にスキャンを実行するようスケジュールを設定でき、新たな脆弱性を可能な限り早期に検出できる。
レポート機能
SQLi検出ソフトウェアには通常、検出された脆弱性と攻撃に関する詳細情報を提供するレポート機能が含まれている。自動的にレポートを生成できるものもあれば、できないものもある。また、開発者、ITマネージャー、セキュリティ専門家など、さまざまな関係者のニーズに合わせてレポートをさらにカスタマイズできるものもある。
これはあらゆるSQLiソフトウェアにとって重要な機能だ。生成されたレポートは、規制要件への準拠を示し、デューデリジェンスの証拠を提供するためにも利用できる。
統合
優れたSQLi検出ソフトウェアは、ファイアウォール、侵入検知システム、セキュリティ情報およびイベント管理(SIEM)ソリューションなど、他のセキュリティツールやシステムと統合できる必要がある。統合により、より包括的なセキュリティ対策、検出された脅威への自動対応、セキュリティインシデントの一元的な監視と管理が可能になる。
自社に最適なSQLi検出ソフトウェアを選ぶには?
自社に最適なSQLi検出ツールを選ぶという課題に直面したときは、精度、機能、互換性、使いやすさ、スケーラビリティなど、複数の要素を考慮すべきだ。
精度
SQLiツールの中には、スキャン中に誤検知を出力し、脆弱性スキャン結果の精度に影響を及ぼすものがある。こうした誤検知は時間とリソースを浪費するだけでなく、対処が必要な実際の脆弱性の特定からチームの注意をそらす可能性もある。そのため、十分にテストされ、高い精度を備えたツールを選ぶことが不可欠だ。
機能
自分に問いかけるべき重要な質問の1つは、製品に含まれる機能が、支払う価格に見合っているかということだ。一般的なSQLi検出ツールには同様の機能が備わっているが、特に価格帯が異なる場合、こうした機能の中にも差別化要因がある。レポート、スキャン速度、統合機能、リアルタイム監視機能などに違いが現れる可能性がある。
上記のSQLi検出比較表で示したように、sqlmapやjSQL Injectionなどのツールは、優れた統合機能と自動スキャン機能を備えている一方、実環境での監視や高度なレポート機能など、他の領域では不足している。そのため、ツールの機能が自社固有の要件と予算にどの程度合致するかを基準に選ぶべきだ。
互換性
互換性も、自社向けのSQLi検出ソフトウェアを選ぶ際の重要な考慮事項だ。ソフトウェアは、データベースシステムやWebアプリケーションフレームワークなど、既存のテクノロジースタックと互換性がある必要がある。現在のシステムと互換性のないツールを選ぶと、ダウンタイムやセキュリティの抜け穴など、さまざまなIT上の問題が生じる可能性がある。また、ソフトウェアが現在のシステムとスムーズに統合できることを確認することも重要だ。
使いやすさ
SQLi検出ソフトウェアは、インストール、設定、使用が無理なくできる程度に使いやすいものであるべきだ。特定のツールに決める前に、開発者向けのドキュメントやユーザーガイドがどの程度用意されているかを確認するとよい。そうすることで、チームがツールを効果的に使用する可能性が高まる。ツールが使いやすいほど、チームが脆弱性を迅速に特定して対処できる可能性も高くなる。
スケーラビリティ
自社向けのSQLi検出ツールを選ぶ際は、スケーラビリティも重要だ。ソフトウェアは自社の事業規模に対応し、将来的な成長にも対応できる必要がある。事業の成長についていけないツールはすぐに時代遅れになり、最初からやり直すことを余儀なくされ、攻撃に対して無防備な状態を招く可能性がある。
方法論
2023年の主要なSQLi検出ツールのリストを作成するにあたり、各ツールの機能、価格、評判を考慮した。判断において特に重視した機能には、自動スキャン、統合オプション、ツールが対応するオペレーティングシステム、レポート機能などがある。また、過度に高い学習負担なしで使えるツールのリストにしたかったため、各ツールで利用可能なドキュメントも確認した。
他にも無料のSQLiツールは数多くあるが、その大半には重要な機能がいくつか欠けている。可能な限り幅広いソリューションを提供するため、堅牢な機能を備えた有料ツールもいくつか取り上げ、バランスを保つことが最善だと判断した。
キャリアアップを目指していますか? 専門知識を高め、証明するための主要なSQL認定資格も調査しました。