WordPress メールのセキュリティについて心配する必要があるのはなぜですか?

公開: 2023-05-31

電子メールはどこにでもあります。 これらは、インターネット上で人々の間で最も一般的なコミュニケーション方法の 1 つになりました。 WordPress 管理者と Web サイト所有者は、個人的および仕事上のコミュニケーション、マーケティング、人材採用など、さまざまな目的で電子メールを使用します。

電子メールには、ユーザーを認証したり、パスワードのリセットなどの特定のアクションをユーザーに許可したりするために使用する機密情報が含まれる場合もあります。このチュートリアルでは、Web サイト所有者が WordPress の電子メール セキュリティについて知っておく必要があるすべてのことについて説明します。

WordPress Web サイトの電子メールを保護する必要性について議論を始めましょう。 メールを安全に保つことは、次のような多くのことに役立ちます。

  • 機密情報の保護 — 前述したように、機密情報が含まれる可能性のある電子メールを送信することがよくあります。 これには、ユーザーのログイン資格情報や、健康や財政に関連する個人情報などが含まれる場合があります。 いずれの場合も、悪意のある人がこの情報を傍受できないようにする必要があります。
  • 電子メールの配信 — スパムはインターネット上の大きな問題です。 皆さんも相当量のスパムメールを受信して​​いることと思います。 それらは最良のシナリオでは厄介ですが、他の場合ではより深刻な結果を引き起こす可能性があります。 電子メール サーバーが潜在的なスパムに対処する 1 つの方法は、標準にまったく準拠していない電子メールを送信しないことです。 同様に、さまざまな電子メール クライアントによってスパムとみなされる可能性のある電子メールは、スパムとしてマークされ、メインの受信箱とは別のフォルダーに入れられます。
  • ブランドの評判を維持する — WordPress の電子メールのセキュリティを真剣に考えていないと、ブランドの評判が危険にさらされる可能性があります。 考えてみてください。電子メールが常にスパム フィルターに引っかかるブランドや、セキュリティの欠如により個人情報が漏洩するブランドについてどう思いますか?
  • 電子メールベースの攻撃の防止 — 悪意のある人が電子メール フィッシングを使用して、Web サイトにアクセスしたり、ユーザー データにアクセスしたりする可能性があります。 これにより、あらゆる種類のセキュリティ上の問題が発生する可能性があります。 いずれの場合も、WordPress メールを保護するために適切な措置を講じる必要があります。

WordPress で安全なメールを送信する

WordPress には、電子メールの送信に使用する wp_mail() 関数が組み込まれています。 この機能は、すべての電子メールを送信するために、人気のある無料のオープンソース PHPMailer ライブラリに依存しています。

このライブラリを使用する利点の 1 つは、ローカル メール サーバーを必要とせずにすべてのプラットフォームで電子メールを送信できる統合 SMTP クライアントがあることです。

SMTP という用語は、Simple Mail Transfer Protocol の略です。 SMTP クライアントは、あるサーバーから別のサーバーに電子メールを送信するために使用できるプログラムです。 クライアントは、電子メール サーバーとの接続の確立、送信者の認証、電子メールの送信など、多くの重要な処理を行います。

wp_mail() 関数を使用しても、電子メールの受信が成功したことが自動的に保証されるわけではありません。 リクエストが成功すると、電子メールの配信ステータスに関係なく、true が返されます。 したがって、送信したメールが確実に配信されるようにする必要があります。

既存のソース コードに数行の PHP を追加することで、wp-config.php ファイル内に SMTP 関連の設定を追加できます。 ただし、プラグインを使用する方が簡単です。
多くの無料の WordPress SMTP プラグインの 1 つを使用すると、電子メールを効果的かつ安全に送信するためのすべての設定を構成できます。 WordPress の電子メール到達性については、以前に詳しく説明しました。

SMTPプラグインのセットアップ

Web サイトで使用できる SMTP プラグインが複数あることに注意してください。 どれが自分に最適かを試してみてください。 最も人気のあるものの 1 つは、WP Mail SMTP プラグインです。

WordPress 用の人気のある SMTP プラグイン

使用するプラグインでは、Web サイト用の SMTP メーラーを選択するよう求められます。 SendLayer、Postmark、SendGrid、Zoho Mail など、いくつかのオプションが利用可能です。セットアップ ウィザードは、API キーなどの必要な情報をすべて指定する初期設定を支援します。これらすべての設定はさまざまな設定に使用できます。プラグインは WordPress ダッシュボードで利用できるようになります。

これらのプラグインを設定する際に留意すべき重要な点が 2 つあります。

  1. SMTP クライアントを使用して SSL 経由で電子メールを送信していることを確認してください。 これは、電子メールが転送中に傍受されるのを防ぐのに役立ちます。 SendLayer などの多くのサービスは、SSL/TLS 暗号化を自動的に処理します。 ただし、SMTP メーラーとして [その他の SMTP] を選択した場合は、SMTP ホスト、ポート番号、暗号化などに関する情報を手動で指定することもできます。
  2. 機密情報を電子メールで送信する場合は、電子メールのログを無効にすることもできます。 これにより、何か問題が発生した場合の不要なデータ漏洩を防ぐことができます。 テスト中にこのオプションをオンにしても問題ありませんが、それ以外の場合はオフにするのが理想的です。

一般的な電子メール セキュリティ フレームワーク

電子メールの送信に SSL 証明書をインストールして使用すると、電子メール クライアントと電子メール サーバーの間で転送される電子メールのコンテンツの安全性が保証されます。 これは、送信中の電子メールの不正アクセスや傍受を防ぐことで可能になります。

WordPress 電子メールのセキュリティを向上させる次のステップには、暗号化を使用して、送信された電子メールの内容を意図した受信者だけが読めるようにすることが含まれます。

WordPress サイト上の電子メールを保護するために使用できるさまざまな電子メール セキュリティ フレームワークが多数あります。 電子メール セキュリティ フレームワークという用語は、すべての電子メール通信がスパム、フィッシング、不正アクセスなどのセキュリティ リスクから安全に保たれることを保証するために導入されている一連のガイドラインと標準を指します。

さまざまな SMTP サーバーは、電子メールを保護するという目的を達成するために、複数の電子メール セキュリティ フレームワークを組み合わせて使用​​する場合があります。 それらのいくつかについて学びましょう。

送信者ポリシーのフレームワーク

SPF とも呼ばれる Sender Policy Framework は、受信者の電子メール サーバーが電子メールが正当な送信元から来たものであるかどうかを確認できるようにする電子メール認証フレームワークです。

つまり、SPF は、送信者のドメインの DNS (ドメイン ネーム システム) レコードをチェックして、送信者の IP アドレスがそのドメインの承認された IP アドレスと一致することを確認することによって機能します。

電子メールが送信されると、受信側のメール サーバーは SPF レコードをチェックして、その電子メールが送信側の承認されたメール サーバーから実際に送信されたかどうかを確認します。 SPF レコードには、特定のドメインに代わって電子メールを送信できるすべての IP アドレスとドメインに関する情報が含まれます。 不一致があると、電子メールが疑わしいものとしてマークされます。

SPF は、誰かが他人になりすますスパムやフィッシング攻撃に対抗するのに役立ちます。

DomainKeys で識別されたメール

DomainKeys Identified Mail (DKIM) フレームワークは、デジタル署名の使用に依存して、電子メールの送信者が正当な人物であることを確認します。 また、電子メールの送信中に電子メールの内容が変更されていないことも保証されます。

デジタル署名は、正規のドメイン名に関連付けられた秘密キーを使用して生成された暗号値に他なりません。 電子メール メッセージには、ヘッダーの DKIM-Signature フィールドとして暗号値が含まれています。

受信者側のメール サーバーは、DNS レコードから送信者のドメインの公開キーにアクセスできます。 電子メール システムは、公開キーを使用して署名を復号化し、送信者の信頼性を検証します。 システムは、送信者の信頼性を検証した後、電子メールを受信者のメールボックスに配信します。

ここでの秘密は、暗号署名の生成に秘密キーが使用され、この署名は対応する公開キーでのみ復号化できることです。 これは、生成されたハッシュ値の値が秘密キーと公開キーと一致することで、電子メールの信頼性が保証されることを意味します。

ドメインベースのメッセージ認証、レポート、および適合性

前の 2 つのフレームワークを使用すると、電子メールの送信者が本人であることを検証できます。 これは、スパムやフィッシング攻撃を防ぐのに役立ちます。

電子メールが SPF または DKIM チェックに失敗した場合はどうなりますか?

正規の電子メールが SPF または DKIM チェックになぜ失敗するのか疑問に思われるかもしれません。 これは、SPF または DKIM レコードの構成ミス、通常よりも長い転送時間による無効なタイムスタンプ、転送サーバーが元の送信者のドメインに代わって電子メールを送信する権限を持たない電子メール転送など、さまざまな状況で発生する可能性があります。

この場合、ドメインベースのメッセージ認証、レポート、および適合性 (DMARC) フレームワークが役に立ちます。

ドメイン所有者は、DMARC ポリシーを DNS レコードに追加して、SPF または DKIM 認証チェックに失敗した電子メール メッセージの処理を指定できます。

電子メールがこれらのチェックに失敗すると、受信者の電子メール サーバーは送信者のドメインの DMARC ポリシーを検索します。 DMARC ポリシーは、電子メールを拒否するか、隔離するか、受信者のメールボックスに配信するかを指定します。

DMARC には、送信者の正当性をチェックするだけでなく、ドメインから送信された電子メールに関するすべての情報をドメイン所有者に報告するメカニズムが含まれています。 この情報にアクセスすると、ドメイン所有者が潜在的な電子メールのスプーフィングやフィッシング攻撃を特定するのに役立ちます。 これにより、最終的に電子メールのセキュリティが向上します。

かなり優れたプライバシー

Pretty Good Privacy (PGP) も興味深い電子メール セキュリティ フレームワークで、電子メールにエンドツーエンドの暗号化を提供し、意図した受信者だけが電子メールを読めるようにします。

PGP セキュリティ プロトコルは、暗号化システムの公開キーと秘密キーのペアに依存しています。 PGP プロトコルのすべてのユーザーは、独自の公開鍵と秘密鍵を持っています。 PGP は、電子メール メッセージの暗号化に公開キーを使用し、復号化に秘密キーを使用します。 ユーザーと通信したい人は誰でも公開キーにアクセスできます。 秘密キーはユーザーとともに保管されます。

誰かに電子メールを送信したいとします。 送信者は、受信者から提供された公開キーを使用してメッセージを暗号化します。 これにより、受信者だけが秘密キーを持っているため、受信者だけがメッセージを復号化できるようになります。

PGP はまた、電子署名を使用して電子メールの信頼性と完全性を検証し、送信中に改ざんがなかったことを確認します。

秘密キーは、送信者の信頼性を検証するデジタル署名の生成に役立ちます。 秘密キーは、電子メール メッセージのハッシュを作成するために使用されます。 PGP は公開キーを共有する原則に基づいて動作するため、電子メールの受信者は送信者の公開キーにアクセスできます。 この公開キーは、ハッシュを復号化し、メッセージが変更されていないことを確認するのに役立ちます。

PGP のもう 1 つの重要な側面は、「信頼のウェブ」システムです。このシステムでは、さまざまなユーザーが互いの公開鍵に署名して、鍵の所有者を確認したことを示すことができます。 これにより、悪意のある者がユーザーになりすますことがさらに困難になります。

WordPress サイトにメールセキュリティを実装する

ここでは、Web サイトにさまざまな電子メール セキュリティ フレームワークを実装する方法を学びます。

送信者ポリシーのフレームワーク

前のセクションで説明したように、SPF は送信者のドメインの DNS レコードをチェックすることによって機能します。 送信者の IP がそのドメインの承認された IP アドレスと一致するかどうかを確認します。

例として wpwhitesecurity.com を使用してこれをテストできます。 次のように nslookup コマンドを使用するだけです。
nslookup -type=txt ドメイン名

WP White Security SPF レコード

その結果から、電子メールの送信にどのシステムを使用しているかがわかります。

v=spf1 a mx include:_spf.google.com include:relay.kinstamailservice.com include:servers.mcsv.net include:helpscoutemail.com include:sendgrid.net ~all

したがって、当社から受信した電子メールがこれらのシステムからのものではない場合、その電子メールは正当なものではない可能性があります。

SPF を実装するために必要なのは、ドメインの DNS ゾーン ファイルに TXT レコードを追加することだけです。 TXT レコードには、ドメイン名に関連付ける任意のテキストを含めることができます。 この場合、SPF 情報が含まれます。

最初のステップは、DNS レコードの管理に使用するサービスにログインすることです。 この場合、Cloudflareを使用します。 したがって、最初にCloudflareアカウントにログインし、DNSレコードを編集するドメインを選択します。

Cloudflareを使用している場合は、左側のサイドバーまたはクイックアクションの下にDNS設定を変更するオプションが表示されます。 それをクリックして DNS レコードを追加します。 次のページに「レコードの追加」ボタンがあります。 それをクリックすると、次の画面が表示されます。

CloudflareにDNSレコードを追加する

[タイプ] ドロップダウンで [TXT] を選択します。 名前をドメイン ルートに設定します。 TTL を Auto のままにし、Content の値を v=spf1 mx a ip4:XXX.XXX.XXX.XXX -all に設定します。 以下のスクリーンショットを参考にしてください。

DNS レコードはさまざまな部分で構成されます。 それぞれの意味を 1 つずつ見てみましょう。

  1. v=spf1 — この部分は、使用中の SPF プロトコルのバージョンを指定します。 この場合、SPF バージョンは 1 です。
  2. mx — この部分は、ドメインの MX レコードがドメインに代わって電子メールを送信することを承認します。
  3. a — この部分は、ドメインの A レコードまたはその ipv4 アドレスがドメインに代わって電子メールを送信することを承認します。
  4. ip4:XXX.XXX.XXX.XXX — この部分を追加して、電子メール送信用のホワイトリストに特定の IP アドレスを追加できます。
  5. -all — この部分は、承認されたドメインまたは IP アドレスのいずれにも一致しない電子メールに対してどうするかを指定します。

XXX.XXX.XXX.XXX を、ホワイトリストに登録する IP アドレスに必ず置き換えてください。 ドメインから電子メール アドレスを送信することのみを計画している場合は、この部分を追加する必要はありません。 ただし、なりすましを防ぐために、ここにメール サーバーの IP アドレスを含める必要があります。

DomainKey で識別されたメール

DKIM フレームワークは、DNS レコードに保存されている値にも依存して、電子メールの送信者の信頼性を検証します。

主な違いは、SPF は DNS レコード内の IP アドレスをチェックして、承認されたユーザーが電子メールを送信したことを確認することに依存しているのに対し、DKIM は公開キーと秘密キーの使用に依存していることです。

Cloudflare を使用してドメインを管理している場合は、前のセクションで行ったように、DNS レコードを追加できます。 ただし、ホスティング プロバイダーのダッシュボードから DNS レコードを更新することもできます。

これは、ホスティング アカウントの cPanel にある現在の DKIM TXT レコードのスクリーンショットです。 これらのオプションは、cPanel アカウントにログインし、電子メールの到達性を確認した後に見つけることができます。

cPanel DKIM レコード

DKIM レコードの名前は、さまざまな電子メール サービス プロバイダーが簡単に見つけられるように、default._domainkey に設定されています。

DKIM レコードの内容は、以下で説明するようにいくつかの部分で構成されます。

  1. v=DKIM1 — この部分は、使用されている DKIM プロトコルのバージョンを指定します。
  2. k=rsa — この部分は、使用している公開キーが RSA キーであることを指定します。
  3. p=KEY_VALUE — この部分は Base64 でエンコードされた公開キーです。

ドメインベースのメッセージ認証、レポート、および適合性

次に、DMARC ポリシーを DNS TXT レコードに追加する方法を学習します。 DNS レコードを追加するプロセスはここでも変わりません。 変更されるのは、レコードの名前とその内容だけです。

DNS TXT レコードの名前は _dmarc.yourwebsite.com になります。yourwebsite.com は実際の Web サイトです。 繰り返しますが、これは DMARC ポリシーを簡単に識別するために設けられた標準的な規則にすぎません。

DMARC ポリシー DNS TXT レコードのコンテンツとして、合計 11 個のタグと値のペアを追加できます。 DMARC DNS TXT レコードについて詳しく説明しているこのページで、それらについて読むことができます。

Cloudflareに新しく導入されたウィザードを使用してDMARCポリシーを追加しましょう。

CloudflareにDMARCポリシーを追加する

ウィザードのリンクをクリックすると、次の画面が表示されます。 「追加」ボタンをクリックするだけで準備完了です。

DMARCレコード設定画面

ここで、DMARC レコード内のコンテンツが何を意味するのかを学びます。

  1. v=DMARC1 — 通常どおり、これは使用中の DMARC プロトコルのバージョンを指定します。
  2. p=none — この部分は、失敗したチェックに対してポリシー アクションが実行されないことを指定します。 この値を隔離または拒否に設定することもできます。 値を quarantine に設定すると、電子メールは潜在的に疑わしいものとしてマークされますが、受信者のメールボックスのスパム フォルダーに配信されます。
  3. rua=mailto:[email protected] — この部分は、レポートを受信する電子メール アドレスを指定します。 レポートには、DMRC チェックに合格または不合格となった電子メール メッセージに関する情報が含まれます。

セキュリティを向上させるために電子メールを保護する

古い格言にあるように、チェーンの強さは最も弱い部分と同じです。 これはセキュリティに関しても非常に当てはまり、WordPress 管理者と Web サイト所有者は WordPress のセキュリティを超えて、サポート/周囲のインフラストラクチャに対処する必要があります。

電子メールのセキュリティは見落とされがちです。 ただし、この記事で説明したように、電子メールの保護は比較的簡単で、非常に簡単です。 DNS レコードの構成から電子メールの暗号化に至るまで、これにより顧客とユーザーのリーチが向上するだけでなく、セキュリティ リスクが大幅に最小限に抑えられます。

WordPress のセキュリティを向上させるためのその他のヒント

電子メールを安全にすることは、Web サイト全体のセキュリティの一部にすぎません。 ここでは、Web サイトの総合的なセキュリティを向上させるための一般的なヒントをいくつか紹介します。

  • 定期的に更新する — すべての WordPress テーマまたはプラグインを常に最新の状態に保つことが重要です。 通常、アップデートでは新機能が追加され、既知の脆弱性が修正されます。
  • 強力なパスワードを使用する — Web ホスト、データベース、FTP アカウント、WordPress 管理者アカウントなどを含むすべての Web サイト関連のアカウントには、強力で固有のパスワードを使用する必要があります。これにより、ブルート フォース攻撃によるパスワードのクラッキングを防ぐことができます。 MelaPress Login Security プラグインを使用すると、強力なパスワード、あまりにも多くの失敗したログイン試行のブロックなど、すべてのベスト ログイン セキュリティ プラクティスに従うことができます。
  • セキュリティ プラグインのインストール — セキ​​ュリティ プラグインのインストールも検討する必要があります。 最も人気のあるオプションには、Wordfence、iThemes Security、All-In-One セキュリティなどがあります。また、WP Activity Log などのプラグインをインストールして、WordPress Web サイトで発生したすべての変更を記録することもできます。
  • 2 要素認証の使用 — 2 要素認証を使用して、セキュリティ層を追加できます。 WP 2FA などの無料プラグインを使用すると、これを簡単に行うことができます。
  • 定期的にバックアップを取る — Web サイトのバックアップも定期的に取る必要があります。 これにより、セキュリティ侵害やその他の問題が発生した場合に、Web サイトを迅速にオンラインにできるようになります。
  • 信頼できる Web ホストを使用する — Web サイトをホストするために、評判が高く信頼できる Web ホストを使用していることを確認してください。 Web ホストは、Web サーバーの保護、更新、バックエンドでのバックアップなど、いくつかのことを担当します。
  • ファイアウォールを使用する — ファイアウォールをインストールすると、一般的なセキュリティの脅威や DDOS 攻撃から保護しながら、不正なアクセスを防止できます。 Web ホストによってサーバー レベルにファイアウォールをインストールすることも、WordPress プラグインとして Web サイト レベルにファイアウォールをインストールすることもできます。 良いニュースは、Wordfence などのプラグインがすでにファイアウォールを提供しており、マルウェアから保護してくれることです。
  • ログイン試行の制限 — もう 1 つのセキュリティ対策として、ボットによるブルート フォース攻撃を防ぐために失敗するログイン試行の回数を制限することもできます。