セキュリティに関しては、WordPress固有のタイプのセキュリティは存在しません。セキュリティに関するすべての問題は、すべてのWebサイトまたはアプリケーションに共通しています。
WordPressのセキュリティ問題は、Webの約40%に電力を供給し、オープンソースであるため、最も興味深いものです。 WordPressコアまたはプラグインのいずれかに脆弱性が見つかった場合、それを使用している他のWebサイトはすべて同じコードを使用しているため、脆弱になります。
一方、Webサイトのセキュリティを強化するために使用できるプラグインはかなりの数あります。硬化する方法を詳しく見ていきましょう
この記事の範囲はより広く、すべてのタイプのWebアプリケーションに適用されますが、さまざまなタイプの脆弱性に対するWordPressサイト。
脆弱性の一般的なタイプは次のとおりです。
- バックドア
- ファーマハック
- ブルートフォースログインの試み
- 悪意のあるリダイレクト
- クロスサイトスクリプティング(XSS)
- サービス拒否(DDoS)
これらは一般的なタイプの脆弱性ですが、これらだけに限定されているわけではありません。一般的に、セキュリティについて考えるときは、360度考える必要があります。
Webサイトをハッキングする方法の限定されたセットはありません。攻撃者は多くの手法を使用してサイトにアクセスできます。
たとえば、彼らはあなたのPCを盗み、あなたのコンピュータに物理的にアクセスすることができます。また、監視技術を使用して、パブリックネットワークからWebサイトにログインするときにパスワードを確認することもできます。
したがって、セキュリティに関しては360を考えてください。
攻撃者の生活を少し難しくするために、WordPressのインストールを強化する方法を詳しく見ていきましょう。
- 1 HTTPSでサイトを保護する
- 2 常に強力なパスワードを使用する
- 3 パスワードマネージャーを使用してパスワードを保存します
- 4 ログインおよび登録フォームにCAPTCHAを追加します
- 5 ブルートフォースログインの試みから保護する
- 6 2要素(2FA)認証のセットアップ
- 7 WordPressCoreとプラグインを最新の状態に保つ
- 8 セキュリティHTTPヘッダーを設定します
- 9 WordPressファイルの正しいファイル権限を設定します
- 10 WordPressからのファイル編集を無効にする
- 11 不要な機能をすべて無効にする
- 12 WordPressバージョンを非表示にする
- 13 WordPressファイアウォールをインストールします
- 14 バックアップを保持する
- 15 SFTPを使用する
- 16 ユーザーのアクティビティを監視する
- 17 ハッキングされた場合はどうすればよいですか?
- 18 結論
HTTPSでサイトを保護する
HTTPSでWebサイトを保護することから始めるのは偶然ではありません。
あなたがすることはすべて、ネットワークとワイヤーケーブルを通って流れます。 HTTPは、ブラウザとサーバー間でデータをプレーンテキストとして交換します。 したがって、サーバーとブラウザの間のネットワークにアクセスできる人は誰でも、暗号化されていないデータを表示できます。
接続を保護しないと、機密データが攻撃者に公開されるリスクがあります。 HTTPSを使用すると、データが暗号化され、攻撃者がネットワークにアクセスできる場合でも、送信されたデータを読み取ることができなくなります。
したがって、Webサイトを保護するための最初のステップは、HTTPSを有効にすることです。 に移動していない場合
HTTPSでも、このガイドを使用してWordPressをHTTPSに移行できます。
HTTPからHTTPSへの移行に使用できるツールとWordPressプラグイン
- よ【ハッカーなんてお断り!】WordPressのセキュリティを強化する方法とは?り良い検索置換
- データベース検索・置換スクリプト
常に強力なパスワードを使用する
面白そうに聞こえるかもしれませんが、ハッカーがWebサイトにアクセスするために使用する最も一般的な方法は、弱いパスワードまたはpwnされたパスワードです。 これらにより、ブルートフォース攻撃に対して脆弱になります。
以下にリストされている他のどの方法よりも強力なパスワードを使用して、セキュリティを強化します。
常に強力なパスワードを使用し、パスワードが設定されているかどうかを定期的に確認してください。
パスワードのセキュリティを強化するWordPressプラグイン:
- Disallow Pwned Password
- Download Password Policy Manager
- Password bcrypt
パスワードマネージャーを使用してパスワードを保存します
パブリックネットワークから作業しているときにログインすると、ラップトップで入力している内容やパスワードを記録している内容を誰が監視しているかがわかりません。 この問題を解決するには、パスワードマネージャーを使用してパスワードに簡単にアクセスし、安全な場所に保存します。
PCにアクセスしても、パスワードを取得することはできません。 パスワードマネージャーはブラウザーベースであり、WordPressプラグインではありません。
パスワードマネージャーブラウザアドオン:
- LastPass
- 1Password
- NordPass
ログインおよび登録フォームにCAPTCHAを追加します
WebサイトをHTTPSで保護し、強力なパスワードを使用すると、ハッカーの生活はかなり困難になります。 ただし、ログインフォームにキャプチャを追加することで、さらに難しくすることができます。
キャプチャは、ブルートフォース攻撃からログインフォームを保護するための優れた方法です。
WordPressログインでキャプチャを追加するプラグイン:
- Login No Captcha reCAPTCHA
- Login Security reCAPTCHA
ブルートフォースログインの試みから保護する
ログインキャプチャは、特定の時点までのブルートフォース攻撃に対する保護を提供しますが、完全ではありません。 多くの場合、キャプチャトークンが解決されると、それらは数分間有効になります。
たとえば、GooglereCaptchaは2分間有効です。 攻撃者は、この2分間を使用して、その間にログインフォームへのブルートフォースログインを試みることができます。
この問題を解決するには、失敗したログイン試行をIPアドレスでブロックする必要があります。
ブルートフォース攻撃を防ぐためのWordPressプラグイン:
- WP Limit Login Attempts
- Limit Login Attempts Reloaded
2要素(2FA)認証のセットアップ
安全なパスワードとログインフォームのキャプチャを使用すると、より保護されますが、ハッカーが監視方法を使用し、ビデオに入力したパスワードを記録してWebサイトにアクセスした場合はどうでしょうか。
彼らがあなたのパスワードを持っている場合、攻撃者からあなたのウェブサイトを保護できるのは二要素認証だけです。
2FA認証をセットアップするためのWordPressプラグイン:
- Two-Factor
- Google Authenticator
- WordPress Two Factor Authentication (2FA , MFA)
WordPressCoreとプラグインを最新の状態に保つ
多くの場合、WordPressコアとプラグインの場合、脆弱性が検出され、報告されます。 既知の報告されたファイルの穴からWebサイトがハッキングされるのを防ぐために、プラグインを最新バージョンに更新してください。
自動更新に切り替えると、知らないうちにWebサイトが破損する可能性があるため、お勧めしません。
ただし、これらの更新にはコアのセキュリティパッチが含まれているため、wp-config.phpにこのコード行を追加して、WordPressコアのマイナー更新を有効にすることを強くお勧めします。
define( ‘WP_AUTO_UPDATE_CORE’、 ‘minor’);
セキュリティHTTPヘッダーを設定します
セキュリティヘッダーは、Webサイトを閲覧するときにブラウザーとサーバー間で実行できるアクションを制限することにより、保護の追加レイヤーをもたらします。 セキュリティヘッダーは、クリックジャッキングおよびクロスサイトスクリプティング(XSS)攻撃から保護することを目的としています。
セキュリティヘッダーは次のとおりです。
- Strict-Transport-Security(HSTS)
- コンテンツ-セキュリティ-ポリシー
- Xフレーム-オプション
- X-Content-Type-Options
- メタデータヘッダーを取得する
- リファラーポリシー
- キャッシュ制御
- クリアサイトデータ
- 機能-ポリシー
各セキュリティヘッダーの説明については詳しく説明しませんが、修正方法は次のとおりです。
セキュリティヘッダーを有効にするWordPressプラグイン:
- HTTP headers to improve web site security
- GD Security Headers
WordPressファイルの正しいファイル権限を設定します
ファイルのアクセス許可は、ホストするOSのルールです
あなたのWordPressファイル; これらのルールは、ファイルの読み取り、編集、および実行の方法を設定します。 このセキュリティ対策は、特に共有ホスティングでWebサイトをホストする場合に非常に重要です。
正しく設定されていない場合、共有ホスティング上の1つのWebサイトがハッキングされると、攻撃者はWebサイト上のファイルにアクセスし、そこにあるコンテンツ(具体的には、wp-config.php)を読み取って、Webサイトに完全にアクセスできます。
- すべてのファイルは644である必要があります
- すべてのフォルダは775である必要があります
- wp-config.phpは600である必要があります
上記のルールは、ホスティングユーザーアカウントがファイルを読み取りおよび変更でき、Webサーバー(WordPress)がファイルおよびフォルダーを変更、削除、および読み取りできることを意味します。
他のユーザーはwp-configのコンテンツを読むことができません。 php。 wp-config.phpに600を設定すると、Webサイトがダウンする場合は、640または644に変更してください。
WordPressからのファイル編集を無効にする
これはWordPressの既知の機能です。
管理バックエンドからファイルを編集します。 開発者はSFTPを使用し、これを使用することはめったにないため、実際には必要ありません。
したがって、wp-config.phpファイルに1行のコードを追加して無効にします
define( ‘DISALLOW_FILE_EDIT’、true);
不要な機能をすべて無効にする
WordPressには、まったく必要ないかもしれない多くの機能が付属しています。 たとえば、WordPressのXML-RPCエンドポイントは通信用に作成されました
外部アプリケーションを使用します。 攻撃者は、このエンドポイントをブルートフォースログインに使用できます。
プラグインDisableXML-RPC-APIを使用してXML-RPCを無効にします。
WordPressに組み込まれているもう1つの問題は、Webサイト上のすべてのユーザーを一覧表示するREST-APIエンドポイントを提供することです。
WordPressのインストールに「/ wp-json / wp / v2 / users」を追加すると、ユーザー名とユーザーIDのリストがJSONデータとして表示されます。
WordPressバージョンを非表示にする
WordPressは、ページのHTMLにWordPressのバージョンを含むコメントを自動的に挿入します。 インストールされているWordpressのバージョンを追加情報として攻撃者に提供します。
たとえば、コアに脆弱性があると報告されているWordPressバージョンを使用している場合、攻撃者は、報告された手法を使用してWebサイトをハッキングできることを知っています。
これらのプラグインを使用してWordPressバージョンのメタタグを非表示にします。
- Meta Generator and Version Info Remover
- WP Generator Remover by Dawsun
WordPressファイアウォールをインストールします
ファイアウォールは、Webサイト上で実行され、着信HTTP要求を分析するWebアプリケーションです。それ
高度なロジックを適用して、脅威となる可能性のあるリクエストを除外します。
ファイアウォールの組み込みルールの上にルールを設定して、リクエストをブロックすることができます。一般的なタイプの攻撃の1つは、SQLインジェクションです。
SQLインジェクションに対して脆弱なWordPressプラグインを実行していて、それについて知らないとします。攻撃者がプラグインのセキュリティ上の欠陥を知っていてもファイアウォールを実行すると、攻撃者はWebサイトをハッキングできなくなります。
これは、ファイアウォールがSQLインジェクションを含むリクエストをブロックするためです。
ファイアウォールは、IPからのこれらの要求をブロックし、連続する危険な要求が来るのを防ぎます。ファイアウォールは、単一のIPからの要求が多すぎることを検出してブロックすることにより、DDoS攻撃を防ぐこともできます。
Webサーバーにリクエストが送信される前に実行されるDNSレベルのファイアウォールを実行することもできます。例はCloudflareDNSファイアウォールです。
この方法の利点は、DDoS攻撃に対してより堅牢であるということです。
サーバー上で実行されるアプリケーションレベルのファイアウォール
HTTPリクエストがWebサーバーにヒットし、それをブロックするようにします。これは、サーバーがそれらをブロックするためにいくつかのCPU / RAMリソースを消費することを意味します。
DNSレベルのファイアウォールを使用すると、サーバーリソースを消費しないため、攻撃に対してより持続可能になります。
使用できるWordPressファイアウォールプラグイン:
- Wordfence Security
- Sucuri
- All In One WP Security & Firewall
- BulletProof Security
- Shield Security
注:ファイアウォールをインストールする場合は、ログインブルートフォース保護や2F認証などの機能が備わっている可能性があり、上記のプラグインをインストールする代わりにその機能を使用できます。
バックアップを保持する
ハッキングされた場合、回復する最善の方法は、感染していない最新バージョンからWebサイトを復元することです。 Webサイトのバックアップを保存しない場合、Webサイトのクリーンアップは時間のかかる操作になる可能性があります。 また、実行中のマルウェアがすべてのデータを消去したため、すべての情報を復元できない場合があります。
このようなシナリオを回避するために、Webサイトのデータベースとファイルの定期的なバックアップを実行してください。
そうでない場合は、次のプラグインを使用してバックアップを実行できます。
- BackWPup
- updraftPlus
- BackupBuddy
- BlogVault
SFTPを使用する
ほとんどの開発者はすでにSFTPを使用してWebサーバーに接続していると思いますが、それでも使用しない場合に備えて、これを思い出させることが重要です。
HTTPSと同様に、SFTPは暗号化を使用してネットワーク経由でファイルを転送するため、ネットワークにアクセスできる場合でもプレーンテキストとして読み取ることはできません。
ユーザーのアクティビティを監視する
Webサイトを保護するためのさまざまな方法について説明しましたが、Webサイト管理者にアクセスできる従業員の1人が、コンテンツにリンクを追加するなどの怪しげなことをした場合はどうでしょうか。
上記の方法のいずれも、日陰の従業員を検出することはできません。
これは、アクティビティログを監視することで実行できます。 各ユーザーのアクティビティを調べると、次のことがわかります。
従業員のうち、想定外の記事を編集しました。 疑わしいと思われるアクティビティを調べて、どのような変更が行われたかを確認することもできます。
ユーザーの活動を監視するためのWordPressプラグイン:
- Activity Log
- User Activity Log
- WP Activity Log
ハッキングされた場合はどうすればよいですか?
セキュリティの専門家からのすべてのアドバイスと、ハッキングからWebサイトを強化する方法を知っていても、それは起こります。
Webサイトがハッキングされた場合、回復するには以下の手順を実行する必要があります。
- ハッカーが最初にあなたの電子メールにアクセスし、あなたのウェブサイトにアクセスできる可能性があるため、最初にすべての電子メールとその他の個人パスワードを変更してください。
- Webサイトをハッキングされていない既知の最新のバックアップに復元します。
- すべてのウェブサイトユーザーのパスワードをリセットします。
- アップデートがある場合は、すべてのプラグインをアップデートしてください。
結論
セキュリティに関しては360を考えてください。 すべての従業員にセキュリティの重要性を強調して、セキュリティルールに従わなかった場合に会社が被る可能性のある結果を理解できるようにします。
単純にハッキングされた場合は、バックアップからWebサイトを回復し、すべてのパスワードをWebサイトと電子メールにできるだけ早く変更してください。