WordPress SQLインジェクション:攻撃を防ぐためのツールとテクニック

公開: 2020-09-24
WordPressSQLインジェクション
@Cloudwaysをフォローする

SQLインジェクションは、WordPressデータベースを操作するために広く使用されているハッキング手法でした。 今日、クロスサイトスクリプティング(XSS)は人気があり、WordPressサイトをハッキングするための一番の方法になっています。

このガイドでは、WordPressSQLインジェクションの基本とそれを取り除く方法について説明します。 次のパートでは、クロスサイトスクリプティングについて説明します。 始めましょう!

  • SQLインジェクションとは何ですか?
  • SQLインジェクション攻撃のエントリポイント
  • SQLインジェクション攻撃が一般的なのはなぜですか?
  • SQLインジェクションはどのように機能しますか?
  • WordPressでSQLインジェクションを防ぐ方法
  • ヒント#1SQLインジェクションの脆弱性をスキャンする
  • ヒント#2更新、更新、更新!
  • ヒント#3WordPressのテーマとプラグイン
  • ヒント#4信頼できるフォームプラグインを使用する
  • ヒント#5WordPressバージョンを非表示にする
  • ヒント#6データベースプレフィックスの変更
  • ヒント#7常にバックアップを取る
    ヒント#8ログを保持する
  • ヒント#9ファイアウォールを使用する
  • ヒント#10不要なデータベース機能を削除する
  • よくある質問
  • 最後の言葉!

SQLインジェクションとは何ですか?

SQLインジェクションは、バックエンドコーディングの抜け穴の結果です。 攻撃者は、SQLコマンドを実行したり、データベース内のデータを作成、取得、更新、さらには削除したりする可能性のある悪意のあるコードを挿入することで、入力フィールドを簡単に悪用できます。

SQLは、構造化照会言語の短縮形です。これは、Web開発でデータベースに最も広く使用されている言語です。 SQLを使用する最も人気のあるデータベースエンジンは次のとおりです。

SQLを使用したデータベース

市場には多くのデータベースソフトウェアがあります。 人気のあるものは次のとおりです。

  • オラクル
  • MySQL
  • SQLサーバー
  • PostgreSQL
  • MongoDBなど

ご覧のとおり、MySQLはリストの2番目です。 SQLのみを使用するWordPressは、WWWの35%以上に貢献しており、攻撃者にとって最も魅力的なターゲットになっています。

SQLを使用したデータベース

SQLインジェクション攻撃のエントリポイント

すべての入力フィールドは、SQLインジェクション攻撃の最も一般的なエントリポイントと見なされます。 レイマンの言葉で言えば、次のように言うことができます。

  • サインアップフォーム
  • ログインフォーム
  • お問い合わせフォーム
  • サイト検索
  • フィードバックフィールド
  • ショッピングカート

SQLインジェクション攻撃が一般的なのはなぜですか?

これには複数の理由が考えられますが、ガイドを書いているときに私が思い出す最も一般的なものは次のとおりです。

  • ほとんどのウェブサイトデータベースはSQLに基づいています
  • WordPress –最も広く使用されているCMSはデータベースにSQLを使用しています
  • ほぼすべてのWebサイトには、訪問者から情報を収集するための入力フィールドがあります
  • すべてのWebサイトには、少なくとも1つのSQLインジェクションエントリポイントがあります
  • SQLインジェクションスキャンツールはオンラインですぐに利用できます
  • 悪用するのに技術的な複雑さは必要ありません

SQLインジェクションはどのように機能しますか?

たとえば、電話番号を入力する必要があるお問い合わせフォームがあります。 適切な形式でのみ限られた数を入力する必要があるなど、特定の基準が必要です。

入力検証を知らない開発者のほとんどは、このフィールドをプレーンテキストとして設定する可能性があります。これは、悪意のあるコードである可能性のある任意の文字列を入力できることを意味します。 変更されたSQLクエリを使用することで、管理者のユーザー名とパスワードを要求できます。

WordPressSQLインジェクションの例

簡単なGoogle検索で多くのSQLインジェクションの脆弱性を見つけることができます。 しかし、今日は、実際の例を紹介しましょう。ゲーム業界に目を向けるだけで済みます。 たまたま、多くのSQLインジェクション攻撃は、世界で最大かつ最も収益性の高い業界の1つであるビデオゲームに焦点を当てています。

その上、過去には、ハッカーはブログ、eコマースストア、およびいくつかの最大の企業のいずれかの個々のWebサイトも攻撃しました。

これは長い間起こっており、WordPressの脆弱性の別の例が2017年9月に報告されました。WordPressCoreはこの脆弱性の直接の影響を受けませんでしたが、WordPressプラグインとテーマに影響を与えないようにパッチ(WordPress 4.8.3)がリリースされました。

上記の脆弱性の背後にいる人物であるAnthonyFerraraは、WPBD SQLインジェクション、WordPressサイトへの影響、およびすべてのWordPressユーザーへの注意事項に関する広範なガイドを作成しました。

WordPressサイトを保護するための絶対確実な方法はありません。 実際、WordPressセキュリティプラグインでさえ過去に影響を受けていました。 2014年、最も人気のあるセキュリティプラグインの1つが、SQLインジェクションを可能にする2つの脆弱性を示しました。

WordPressでSQLインジェクションを防ぐ方法

前に述べたように、ハッキングの試みを完全に取り除く方法はありません。 ただし、ハッキングされるリスクを最小限に抑えることができます。 このような攻撃を防ぐのに役立つ最も一般的な方法のいくつかを次に示します。

より良いパフォーマンスとセキュリティをお探しですか?

WooCommerceWebサイトを無料でCloudwaysに移行します。

今すぐ移行してください!

ヒント#1SQLインジェクションの脆弱性をスキャンする

WordPressサイトをスキャンするためのオンラインツールが多数あります。 WordPressサイトのURLを入力して、発見された脆弱性のスキャンを開始するだけで、トップクラスの候補をリストアップしました。

  • WordPressセキュリティスキャン–WordPressサイトの基本的な脆弱性をチェックします。 高度なスキャンは、プレミアムアップグレードで利用できます。
  • Sucuri SiteCheck – WordPressサイトで、既知のマルウェア、ブラックリストのステータス、エラー、およびサイトが古くなっているかどうかを確認できます。
  • WPScan –個人使用が無料の自己ホスト型脆弱性スキャナー。 商用利用のための有料ライセンスを取得することもできます。

スキャンレポートを実行することで、WordPressのセキュリティを向上させるためにどの領域に焦点を当てる必要があるかを正確に確認できます。

ヒント#2更新、更新、更新!

すべてのWordPressユーザーにとって最も重要です! WordPressコア、テーマ、プラグインを含むすべてを最新の状態に保ちます。

WordPressコア

公式のWordPress統計によると、WordPressサイトの29.3%のみが最新バージョン(5.5.x)を使用しています。 以前のバージョンはすべて脆弱である可能性があり、ハッキングされる可能性があります。 上記のSQLインジェクションの脆弱性の例では、最新バージョンより下にあるすべてのサイトが、発見された脆弱性に対して脆弱であることがわかります。 あなたのサイトがハッキングされた場合、誰が責任を負うかを知っているといいのですが!

WordPressコア統計

PHPバージョン

PHP、WordPressのバックエンドは、過去数年間で大幅に改善されました。 多くのパッチとパフォーマンス指向の変更が行われました。 しかし、それでも、WordPressユーザーの23%以上がPHP 7.2を使用しています。これは、WordPressでのSQLインジェクションの要因の1つになる可能性があります。 PHPの最新バージョンは7.4です。

注: WordPressホスティングが最新バージョンのPHPをサポートしていない場合は、すぐにホストをCloudwaysなどの最新バージョンのPHPをサポートするマネージドWordPressホスティングに切り替えてください。

PHPバージョン

ヒント#3WordPressのテーマとプラグイン

WordPressのSQLインジェクションを含むほとんどの脆弱性は、WordPressコアではなく、プラグインとテーマで発見されました。 更新、修正を監視し、それに応じて適応します。

テーマとプラグインが定期的に更新されていない場合、それはWordPressサイトの疑問符である可能性があります。 頻繁に更新されるテーマ/プラグインを常に使用してください。

注:更新を実行する前に、WordPressコア、テーマ、プラグイン間の互換性をチェックして、サイトが正常に機能していることを確認してください。 テストするには、ライブWebサイトのコピーを作成してから、WordPressステージング環境での互換性を確認します。

ヒント#4信頼できるフォームプラグインを使用する

ビジネスや単純なブログを運営している場合は、登録フォーム、ログインフォーム、連絡フォームなどのフォームの重要性を知っておく必要があります。WordPressリポジトリで利用できるプラグインが多数あるため、最適なプラグインを見つけるのは困難です。 したがって、検索を絞り込むために、最高のWordPressフォームプラグインのリストをまとめました。

注:プラグインを選択する前に、以前に発見された脆弱性とその解決策を確認することを忘れないでください。

ヒント#5WordPressバージョンを非表示にする

WordPressバージョンを公開しないことを常にお勧めします。 この情報を公開すると、攻撃者が特定のバージョンの既知の脆弱性を悪用しやすくなります。

WordPressバージョンを非表示にするには、コード行の下をコピーして、アクティブなテーマのfunctions.phpファイルに貼り付けます。

remove_action( 'wp_head'、 'wp_generator');

ヒント#6データベースプレフィックスの変更

WordPressをインストールすると、デフォルトでデータベースプレフィックスは「 wp_ 」に設定されます。 ほとんどのWordPressユーザーは無視し、デフォルト設定でインストールします。 データベーステーブルを推測することは、SQLインジェクション技術を使用して悪用するのがより簡単になります。

すでにWordPressがインストールされている場合でも、心配する必要はありません。 WordPressでデータベースプレフィックスを変更する方法についての優れたガイドがあります。

ヒント#7常にバックアップを取る

バックアップはSQLインジェクションに直接関連していない可能性があります。 ただし、ハッキングされたサイトを回復するのに役立ちます。 WordPressのバックアップは、次の2つの方法で保存できます。

  • ローカルバックアップ:自動または手動で生成され、ホスティングプロバイダーにあるバックアップ。 共有ホスティングを使用している場合は、ローカルバックアップを保持することはお勧めしません。サーバーが危険にさらされると、バックアップも失われる可能性があります。 ただし、サーバーがCloudwaysのように良好な状態にある場合は、WordPressのローカルバックアップを保持できます。
  • オフサイトバックアップ:自動および/または手動バックアップが生成され、Googleドライブ、Dropbox、AmazonS3などの目的のオフサイトストレージの場所に送信されます。WordPressサイトをバックアップするための広範なガイドを作成しました。

ヒント#8ログを保持する

Sucuriの共同創設者であるDreArmedaはかつて次のように述べています。

人々はWordPressの最大のセキュリティ問題であり続けます。

つまり、あなたは自分の分担をしなければなりません。 変更に注意してください。WordPressサイトで発生しているすべてのログを保持する必要があります。 それはあなたがそれに応じて行動できるようにあなたや攻撃者によって行われた変更を追跡するのに役立ちます。

確かにあなたを助ける優れたWordPressセキュリティ監査ログプラグインがあります! さらに、ホスティングプロバイダーはすべてのログも保持します。 時々ログを読み続けてください。

ヒント#9ファイアウォールを使用する

最良かつ重要なことの1つは、顧客データが安全で保護されていることを保証するファイアウォールを使用することです。 これに加えて、サブスクライブされたパッケージなどのさまざまな要因に基づいて、アクセスユーザーのレベルを定義することもできます。 Cloudwaysを使用している場合は、心配する必要はありません。 Cloudwaysでホストされているすべてのサーバーは、悪意のあるトラフィックを除外し、侵入者を防ぐOSレベルのファイアウォールによって保護されています。

ヒント#10不要なデータベース機能を削除する

データベースの不要なデータベース機能とコンテンツを削除するための最も効果的な手法の1つ。 潜在的なSQLインジェクション攻撃に対してより脆弱です。 これを防ぐには、データベースを正規化し、サイトをより良く、よりスマートにします。

よくある質問

Q:SQLインジェクションとは何ですか?

A: SQLインジェクションは、バックエンドコーディングの抜け穴の結果です。 攻撃者は、SQLコマンドを実行したり、データベース内のデータを作成、取得、更新、さらには削除したりする可能性のある悪意のあるコードを挿入することで、入力フィールドを簡単に悪用できます。

Q:WordPress SQLインジェクションの例は何ですか?

A:長い間発生しており、WordPressの脆弱性の別の例が2017年9月に報告されました。WordPressCoreはこの脆弱性の直接の影響を受けませんでしたが、WordPressプラグインに影響を与えないようにパッチ(WordPress 4.8.3)がリリースされました。とテーマ。

Q:SQLインジェクションは何をしますか?

A: SQLインジェクションは、WordPressデータベースを操作するための最も基本的で広く使用されているハッキング手法でした。 今日、クロスサイトスクリプティング(XSS)は人気があり、WordPressサイトをハッキングするための一番の方法になっています。

最後の言葉!

前に述べたように、WordPressサイトを保護するための絶対確実な方法はありません。 ハッキングされる可能性は常にあります。これは、コア、テーマ、およびプラグインの脆弱性が原因である可能性があります。 そのため、常に更新することをお勧めします。 SQLインジェクションは、過去数年間で多くの制御が行われてきました。

何らかのWordPressSQLインジェクション攻撃に直面したことがある場合は、経験とそれを取り除く方法を共有してください。 私はそれが他のWordPressユーザーを助けると確信しています。