WordPressのセキュリティを向上させるための最小特権の原則の適用

公開: 2021-07-27

WordPressの最小特権の原則は、侵害、データ損失、およびDoS攻撃が発生したときに大きな見出しを見逃します。 それでも、これは、見落とされたとしても、WordPressWebサイトのセキュリティのベストプラクティスの中で最も効果的なものの1つです。

このブログ投稿では、最初に最小特権の原則を定義し、次にそれがいつどこで適用されるか、それを採用しないリスク、そして多くのWebサイト開発者がまだWordPressWebサイトにそれを組み込んでいない理由を調べます。 また、WordPress Webサイトのセキュリティをすぐに改善できるように、いくつかの実用的な推奨事項を共有しています。 このブログ投稿には、実際の設定での使用を説明するのに役立ついくつかのミニケーススタディが含まれています。

目次

  • 最小特権の原則とは何ですか?
  • 最小特権の原則はいつどこで適用されますか?
  • PoLPが適用されない場合のリスクは何ですか?
  • 多くのウェブサイト所有者がWordPressの最小特権の原則を無視しているのはなぜですか?
  • WordPressにPoLPを適用する方法
    • WordPressデータベースのユーザー権限
    • WordPressユーザーの役割と特権
      • カスタムロールの作成
    • ファイルとディレクトリのアクセス許可
    • WordPressプラグインの構成
    • サードパーティの請負業者のFTPアクセス
  • ミニケーススタディ
    • EコマースWebサイトアプリケーション
    • 大学および教育機関
    • ニュースのウェブサイトとブログ
    • 銀行のウェブサイト
    • 健康とフィットネスのトラッカー
  • WordPress以降の最小特権の原則の使用

最小特権の原則とは何ですか?

考え方は非常に単純です。指定されたタスクを実行するために必要な以上のアクセス権をユーザーアカウント、プロセス、またはプログラムに付与しないでください。 ブログのある典型的なWordPressWebサイトに関して、編集者、作成者、寄稿者、購読者について考えてみてください。 それらのそれぞれは、多かれ少なかれあなたのウェブサイトのバックエンドにアクセスする必要があります。

最小特権の原則(PoLP)は、「最小権限の原則」、「最小特権の原則」、または「最小特権ユーザーアカウント」(LUA)とも呼ばれます。

いくつかの簡単な例を考えてみましょう。 あなたの幼児はしばしば台所へのアクセスを必要としません。 そのため、安全ゲートなどのアクセス制御デバイスを家のさまざまな場所に取り付けて、特定の部屋を除いて、自由に歩き回れるようにします。 共有のパブリックコワーキングスペースでは、昼食に出る前にラップトップからログオフします。 また、高級レストランの駐車場係員は、車に鍵を渡す前にIDまたはチケットを要求します。 アクセス制御は、物理的なアイテムであろうとデジタルの販促素材であろうと、あなたとあなたのユーザーの大切な財産への損害を防ぎます。

最小特権の原則はいつどこで適用されますか?

簡単な答えは、それがどこにでも当てはまるということです。階段を上りたい幼児から、WordPressWebサイトホスティングアカウントのユーザーまで。 毎月の請求書をダウンロードする必要があるあなたの金融フリーランサーは、ウェブサイト管理者と同じレベルのアクセスを必要としません。 同じことが、あらゆる種類の特権企業アカウント、ファイル管理システム、マーケティング戦略文書、またはパスワードマネージャーにも当てはまります。

PoLPが適用されない場合のリスクは何ですか?

特定のエリアへのアクセスを制御するのは簡単なようです。 それ以外の場合は、ログインしたユーザーの気まぐれでWebサイトを完全に離れませんか?これには、無実で不注意な間違いを犯した可能性があり、自分が犯したことに気付かない可能性もあります。

次の可能なユーザーについて考えてみてください。

  • 新規ユーザーは、WordPressWebサイトでのミスのビジネスへの影響をほとんど理解していないところから始めます。
  • WordPressの管理経験が少ない方
  • 新しいWordPressバージョンまたはプラグインを自由にダウンロードしたり、最初にバックアップを作成せずにそれらを更新したりすることの意味についての知識がない
  • 新しいユーザーを作成したり、既存のユーザーの権限を変更したりするセキュリティ意識が限られているユーザー
  • 報告されたエラーやその他の問題に対処する方法がわからない人
  • パートナー、フリーランサー、クライアントなどの外部のブログ投稿の寄稿者。おそらくWordPressの知識がわずかであり、質問せずにWebサイトのプラグインを「役立つ」ダウンロードまたは更新することもできます。

また、WordPressバックエンド全体が、不適切なレベルのアクセス権を持つユーザー、新しいユーザーの追加、意図的な危害を引き起こす可能性のあるWebサイトの領域へのアクセスの許可など、許可されていない人物のリスクにさらされていることも意味します。

そのような:

  • テーマの変更、カスタマイズされた機能、または公開されているWebサイトのコンテンツ
  • eコマースストアでの在庫、SKU、または製品メタデータの取り扱いの誤り
  • 不正な割引を提供する
  • コード、ページテンプレート、メディア、構成、またはスタッフ、顧客、その他の種類のファイルへのアクセス、変更、ダウンロード、または削除
  • たとえば、会社、顧客、健康、または財務データにアクセスして、悪用したり、他の悪意のある当事者に販売したりする
  • サイトとその製品またはサービスをオフラインにする

WordPressを使用するかどうかに関係なく、WordPressの最小特権の原則が組織全体で意図的かつ一貫して採用されていない場合、これらの問題のいずれかまたはすべてが発生する可能性があります。

ヒント: WordPressのアクティビティログプラグインを使用して、ユーザーがWordPressWebサイトで行ったすべての変更のログを保持します。 ユーザーの説明責任を支援し、トラブルシューティングを容易にします。

多くのウェブサイト所有者がWordPressの最小特権の原則を無視しているのはなぜですか?

私たちが概説したリスクはかなり説得力があるようですよね? しかし、WordPress Webサイトの監査後に報告された最も一般的な問題の1つは、一般的な環境でのWordPressユーザーの役割がまだ次のように構成されていることです。

  • WordPress管理者の役割は、ユーザーが他の誰かによって書かれたコンテンツを入力する必要がある場合でも、すべてのユーザーに与えられます
  • 同じことがファイルとディレクトリのアクセス許可にも当てはまります。これらはすべて、最も制限の少ないアクセス許可で構成されています。

わかりました。 私たちは皆、キャリアのある時点でシステムおよびWebサイトの管理者として働いた経験があります。 管理者は、初期のユーザーとアクセス許可の間で連絡を取り、ユーザーが何をする必要があるかを確認するのではなく、単に管理者の役割も割り当てることを好むことがよくあります(最初はより速いようです)。

同じことがファイルとディレクトリのアクセス許可にも当てはまります。 たとえば、一部のWordPressプラグインは、キャッシュファイルやその他のデータをファイルシステム(つまり、WordPressディレクトリ)に保存します。 / wp-content / plugins /ディレクトリで777権限を設定する方が簡単です。これは、すべてのプラグインが機能し、新しいプラグインをインストールするたびにトラブルシューティングや権限の調整にさらに時間を費やす必要がないためです。 ただし、最初にいくつかの調査を実施して、Webサイトアプリケーションまたはディレクトリの特定の領域を特定し、ユーザーがアクセスしすぎないようにすることで、すでに述べたリスクを軽減します。 また、管理者からの入力なしで、誰もが自分の仕事に必要なものにアクセスできるという追加の利点があります。

ウェブサイトの所有者と管理者のムスクが尋ねる質問

利便性はセキュリティリスクに見合う価値がありますか? あなたはその質問に対する私たちの答えが何であるかを知っています。 事前の堅牢なWebアプリケーションセキュリティプラグイン、パスワードプロトコル、および2FAなどの他の手段をインストールして維持する意味はありません。最大のセキュリティリスクは、アマチュアおよび緩いアクセス制御でバックドアを開いたままにしておくことです。

WordPressの最小特権の原則を適用する方法

Webサイトアプリケーションを最も安全なものにすることに焦点を当てたので、このセクションでは、最小特権の原則をWordPressWebサイトまたはブログに適用できる場所と方法のリストを提供します。

WordPressデータベースのユーザー権限

最も基本的な場所であるWordPressユーザーデータベースの権限または特権から始めましょう。

コンテンツの書き込みや公開などの通常の日常のWordPress操作の場合、WordPressデータベースユーザーは、データベース内からデータを管理できるようにするために、次の権限のみを必要とします。

  • 選択する
  • 入れる
  • アップデート
  • 消去

これらの権限では、WordPressデータベースユーザーがデータベース構造を変更することはできません。

推奨事項

理想的な環境では、WordPress Webサイトまたはブログのセキュリティを強化するために、安全で制限のあるWordPressMySQLデータベース権限を構成する必要があります。 データベースに新しいテーブルを作成する新しいプラグインをインストールする必要があるユーザー、またはWordPressが更新され、WordPressデータベーススキーマに変更があった場合にのみ、すべての特権を割り当てることに戻ります。

もう1つの推奨事項は、関連するWebサイトのWordPress以外のデータベースへのアクセスを許可しないことです。

WordPressデータベース権限の詳細については、MySQLユーザーの最小のWordPressデータベース権限がセキュリティを向上させる理由を読むこともできます。これは、安全でない構成の影響について説明しています。

WordPressユーザーの役割と特権

WordPressユーザーは間違いを犯します-管理者でさえ。 また、ユーザーは設定や構成を調べることも好きです。 ユーザーにスーパー管理者または管理者アクセスを割り当てる場合、ユーザーの中で好奇心が強い人は、ランダムなプラグインをインストールする可能性があります。 これにより、Webサイトの機能が変更されるなど、ユーザーエクスペリエンスが意図せずに変更される可能性があります。

WordPressには、以下に示すように、いくつかの組み込みのユーザーロールと接続された機能があります(ほとんどから最小まで)。

  • スーパー管理者–サイトネットワーク管理者
  • 管理者–単一サイトのサイトネットワーク管理者
  • 編集者–他のユーザーの投稿を含む投稿を管理および公開します
  • 作成者–自分の投稿を管理および公開します
  • 寄稿者–自分の投稿を作成および管理しますが、公開はしません
  • サブスクライバー–プロファイルのみを管理します

これが実際にどのように機能するかの例は、コントリビューターと作成者がいくつかの機能(投稿の編集や投稿の削除など)を共有している場合でも、ファイルのアップロードや使用可能なブロックの作成など、作成者ができるすべてのことをコントリビューターが実行できないことです。

カスタムロールの作成

新しいカスタムWordPressロールを作成するために使用できるプラグインも多数あります。

一般的な使用例は次のとおりです。

  • 大規模な組織では、コメントのモデレート、承認、および返信を行うために、マーケティングチームの誰かを割り当てる必要がある場合があります。 「中程度のコメント」機能は編集者の役割に含まれていますが、この役割は他の強力な機能のホスト全体も割り当てます。 したがって、それだけで十分な場合は、この1つの権限でカスタムロールを設定するだけで十分です。
  • WordPressサイトにWooCommerceなどのeコマースプラグインが含まれている場合、最初の役割は2つに制限されます。ShopManager(ユーザーがストア全体を管理できるようにする)とCustomer(ユーザーが自分のアカウントと注文を表示できるようにする)です。 管理者には、「設定の管理」や「レポートの表示」などの追加の権限があります。 しかし、ユーザー(たとえば、非管理スタッフ)が、在庫数量やSKUを追加して管理したり、注文を処理したりする機能など、その間に何かが必要な場合はどうでしょうか。
  • 当社のWebサイトでは、ナレッジベースの記事にプラグインを使用しています。 これにより、サポートチームはナレッジベースの記事を作成および変更できますが、メインのWebサイトページやブログ投稿にはアクセスできません。

推奨事項

ほとんどの通常のユーザーにとって、コントリビューターの役割で十分です。 チームリーダーと実践的なマネージャーには、編集者の役割をお勧めします。 ただし、スーパー管理者と管理者の役割は、実際にそれらを必要とする経験豊富で責任のあるユーザーに制限する必要があります。

詳細については、WordPressのセキュリティを向上させるためにWordPressユーザーロールを使用する方法を参照してください。

ファイルとディレクトリのアクセス許可

ファイルとディレクトリのアクセス許可を構成するのは簡単で、WordPressインストールのアクセス許可を強化する方法を説明する十分なドキュメントがオンラインで利用できます。 WordPressは、PHPを実行するすべてのOS(通常はLinux)で実行されます。 グループに関して、Linuxには3つの権限グループがあります。

  • 所有者–ファイル/ディレクトリの所有者。その権限は他のユーザーには適用も影響も与えません。
  • グループ–ファイル/ディレクトリへのアクセス権が割り当てられているユーザーのグループ。そのアクセス許可は、グループ外のユーザーには適用されず、影響もありません。
  • その他–同じファイル/ディレクトリに対して他のすべてのユーザーが持つ権限レベル

これらのそれぞれには、読み取り(コンテンツの表示)、書き込み(コンテンツの書き込みまたは変更)、または実行(スクリプトなどのコンテンツの実行)権限が割り当てられます。 これらの権限は一連の番号として保存され、PHPコード、画像、その他のメディア、HTMLおよびjavascriptファイル、およびプラグインへのアクセスを提供します。

間違ったアクセス許可を間違ったアクセス許可グループに割り当てることは、悪意のあるハッカーが悪用し、低レベルの脆弱性が許容できないリスクにつながる可能性があることを意味します。

推奨事項

WordPressをインストールするときは、PoLPも使用して、WordPressが機能するように最小限のファイルとディレクトリのアクセス許可を構成する必要があります。

ファイルとディレクトリのアクセス許可を強化することで、一部のWordPressプラグインの機能を制限する可能性があることに注意してください。 前に説明したように、インストールディレクトリにデータを保存する必要があるプラグインをインストールしている可能性があります。 その場合は、プラグインディレクトリに対して777のアクセス許可を単純に構成しないでください(プラグインディレクトリを制御するアクセス許可を持つすべてのユーザーに対して、完全な読み取り、書き込み、および実行を行います)。 それが簡単な方法です。 ただし、関連するユーザーがWordPress、そのテーマ、およびプラグインをWeb UIから更新できないように、これを制限することも避けてください。

詳細については、WordPressファイルのアクセス許可:安全なWebサイトとWebサーバーのアクセス許可を構成するためのガイドを参照してください。

WordPressプラグインの構成

すべての管理者が平等というわけではありません。 多くのシステムやネットワークと同様に、WordPress管理者のグループの中に主任管理者がいるのが一般的です。 通常、Webサイトの所有者には、他のユーザーに管理者アクセスを割り当てる以外に選択肢はありません。 WordPressセキュリティプラグインの場合、管理者がアクセスできるWordPressセキュリティ監査ログなどの機密データを保存できる場合が多いことに注意してください。

推奨事項

WordPressセキュリティプラグインを使用すると、通常、他のWordPress管理者へのアクセスを制限できます。 このような機能を利用することは、ユーザーアクセスをより適切に管理するのに役立つ小さな制御のように見えますが、見過ごされがちです。

個々のプラグインの詳細については、プラグインサポートおよびホスティングプロバイダーにお問い合わせください。 次に、プラグインが書き込む必要のあるディレクトリを尋ねます。これにより、そのディレクトリ専用のアクセス許可を構成できます。

サードパーティの請負業者のFTPアクセス

デザイナーを雇うとき、またはプラグインのサポートチームがあなたのウェブサイトへのFTPアクセスを必要とするとき、あなたは彼らにあなたのウェブサイトのルートへのフルアクセスを許可するかもしれませんね? これは不要です。

推奨事項

デザイナーの場合、アクセスする必要があるのはテーマのディレクトリだけなので、そのディレクトリへのアクセスを制限します。 同じことがプラグインサポートチームにも当てはまります。 ログファイルをチェックするためにアクセスする必要がある場合は、プラグインのディレクトリまたはプラグインがログファイルを保存する場所へのFTPアクセスを許可します。 セキュリティのデューデリジェンスを外部の関係者に依存することは避けてください。

ミニケーススタディ

これが実際にどのように機能するか、およびアクセス制御の質問と決定がPoLPのアプリケーションを推進して、適切なチームと個人に適切なアクセスを可能にする方法のいくつかの関連する例を見てみましょう。

EコマースWebサイトアプリケーション

消費者が冷凍冷蔵庫、掃除機、カメラ、ラップトップなどの高額商品を購入するようなEコマースWebサイトのアプリケーションは、PoLPを採用できるさまざまな例を提供します。

eコマースWebサイトアプリケーション開発者のアクセス制御に関する決定のいくつかは明らかです。

  • 人事部門は、おそらく顧客データやプラグインを保存するファイルディレクトリにアクセスする必要はありませんが、スタッフの記録の大部分にアクセスする必要があります(ただし、多くのデータ保護コンプライアンス法の下で特別なステータスを享受することが多い健康データは、基礎を知る必要性にもっと制限される)
  • マーケティング部門は、必ずしもSKUテーブルまたは製品コードにアクセスする必要はありません。 ただし、製品名、仕様、説明をリストした製品データベースのテーブルにアクセスする必要があります。

あまり明白ではないものもあります。

  • 消費者は常にすべてのデータにアクセスする必要がありますか?
  • PCI-DSSコンプライアンス担当者はすべての消費者データにアクセスする必要がありますか?

大学および教育機関

WebアプリケーションのセキュリティとPoLPが最初はあまり目立たない、より伝統的で長年の機関についてはどうでしょうか。

大学および大学のポータルのアクセス制御に関する決定のいくつかは明らかです。

  • 給与部門は、営業日を追跡して支払いを行うために、Webサイトアプリケーションのスタッフと請負業者の記録にアクセスする必要があります
  • さまざまな種類の管理部門は、ID、宿泊施設の申請書、請求書、または助成金を処理するために、学生の記録にアクセスする必要がある場合があります

あまり明白ではないものもあります。

  • スワイプカードプロバイダーの構築など、一部の学生データテーブルに断続的にアクセスする必要があるサードパーティサプライヤーはどれですか?

ニュースのウェブサイトとブログ

ウェブはニュースウェブサイト、ポッドキャスト、ブログでいっぱいです。 多くのウェブサイトの所有者は、複数の管理者、寄稿者、編集者、校正者、発行者に依存しています。 さらに、考慮すべき加入者と視聴者がいます。

ニュースやブログのWebサイトアプリケーションのアクセス制御に関する決定のいくつかは明らかです。

  • 責任のある事業分野によっては、編集者は全員のページ、記事、ブログ投稿の組み合わせにアクセスする必要がある場合があります
  • 寄稿者は自分のブログ投稿だけにアクセスする必要があります

あまり明白ではないものもあります。

  • すべてのサードパーティがWordPressデータベースのすべてのテーブルにアクセスする必要がありますか? ここで、カスタマイズされたコントロールが独自に登場します。

銀行のウェブサイト

私たちの最後の例は、私たちの多くが日常的に使用している銀行のWebサイトサービスです。 健康情報は別として、個人の財務データは当然、最も機密性の高い種類の1つです。

Webサイトアプリケーションを作成するためのアクセス制御の決定のいくつかは明らかです。

  • 銀行サービスのユーザーは、明示的な(おそらくユーザーが管理する)同意がある場合を除き、別のユーザーのアカウントにアクセスすることはできません。
  • スタッフのユーザーアカウントは、多くのサービスユーザーアカウントにアクセスできる必要がありますが、仕事の一部として実行する必要のあるタスクにのみ制限されます。

あまり明白ではないものもあります。

  • テクニカルサポート部門はどのくらいのアクセス権を持っている必要がありますか? エラーが発生した場合に、すべてを表示して修正できる必要がありますか?

各シナリオのビジネスユースケースを考えて計画することをお勧めします。 独自の職務記述書を持つユーザーや個人のグループと連携します。 これらを最初に計画します。 そうして初めて、WordPressWebサイトで利用できるアクセス制御プロトコルの調査を開始できます。

健康とフィットネスのトラッカー

健康またはフィットネストラッカーデバイスとそれらに接続されたオンラインダッシュボードは、ユーザーとその健康データ、アクティビティ、ターゲット、および成果に関する魅力的な統計を収集、保存、および共有します。

健康およびフィットネストラッカーブランドのアクセス制御に関する決定のいくつかは明らかです。

  • 組織内のどのチームがどのデータにアクセスする必要がありますか? 1つのチームがアプリの睡眠追跡部分の設計と開発を担当している場合、必ずしもワークアウト統計テーブルにアクセスする必要はないことは理にかなっています。
  • ほとんどのユーザーは、PoLP(知っているかどうかに関係なく)を非常に制限することを望んでいるため、自分の健康情報が他のすべてのユーザーと共有されることはありません。 したがって、通常のユーザーロールにどのアクセス権限を付与する必要がありますか。したがって、パブリックプロファイルで共有されるデータは何ですか(名前、プロファイルイメージ、および1日の平均歩数のみ)。

あまり明白ではないものもあります。

  • そのようなツールの一般的なゲーミフィケーション機能を促進するために、他のユーザーがどのような情報にアクセスできる必要がありますか?
  • 開発者はすべてのアクセス許可を設定する必要がありますか、それともこの意思決定の一部をユーザーにオフロードする必要がありますか?

WordPress以降の最小特権の原則の使用

上記は、WordPressの最小特権の原則が見過ごされがちですが、簡単に適用できる最も一般的なシナリオの一部にすぎません。

PoLPの採用を開始するには、次の項目について何をしたいのかを検討することから始めます。

  • Webサーバー
  • データベース
  • カスタマイズ

物事がすぐにうまくいかないという理由だけで、最小特権の原則を適用することを躊躇しないでください。 はい、ほとんどの場合、カスタマイズされたユーザーロールの構成とプラグインのトラブルシューティングに数時間を費やす必要があります。 WordPress Webサイトのセキュリティへの長期的な投資として、これを頭の中で再パッケージ化してください。