Webサーバーを強化するためのガイド
公開: 2022-03-15Webサーバーは、その機能により、一般的なネットワーク環境の他の多くのデバイスとは異なります。設計上インターネットに公開されているだけでなく、見知らぬ人にWebトラフィックを提供している可能性があります。 さらに、多くの状況で、WebサーバーはWordPress Webサイトなどの動的アプリケーションにサービスを提供したり、他の内部アプリケーションのプロキシとして機能したりする可能性があります。 したがって、Webサーバーが攻撃者にとって興味深い標的となるのは当然のことです。
システムの強化とは、悪意のあるハッカーがそのシステムを侵害してネットワーク内に足場を築くのを困難にするように、システムの防御を改善するプロセスを指します。
もちろん、Webサーバーを強化するプロセスは、使用しているWebサーバーの種類(Apache HTTPサーバー、Nginx、Microsoft IISなど)によって異なりますが、改善するためのコア原則とベストプラクティスがいくつかあります。使用しているWebサーバーに関係なく、覚えておく必要のあるWebサーバーのセキュリティ。
この記事は、Webサーバー強化ガイドです。 その中で、Webサーバーのセキュリティを向上させるためのテクノロジーにとらわれないベストプラクティスをいくつか見ていきます。 WordPressの強化については、WordPressのセキュリティと強化のガイドを参照してください。
1.Webサーバーを最新の状態に保ちます
ソフトウェアを最新の状態に保つことは大したことではないように思えるかもしれませんが、セキュリティパッチを時間どおりに適用することは、間違いなく、実装できる最も重要な防御策の1つです。 パフォーマンスと安定性の向上に加えて、Webサーバーとオペレーティングシステムの更新には、セキュリティの脆弱性に対する修正が含まれていることがよくあります。
表面的には些細なことのように聞こえるかもしれませんが、情報セキュリティの専門家なら誰でも、パッチ適用は思ったよりも複雑だと言うでしょう。ほとんどのソフトウェアの最新バージョンのインストールが特に難しいからではなく、パッチ適用は常にできるものと見なされているからです。延期されます。
Webサーバーソフトウェアが常に更新されていることを確認するための最良のアプローチは、Webサーバーとオペレーティングシステムソフトウェアの更新を担当しているユーザーまたは担当者に適したシステムまたはルーチンを見つけることです。 ほとんどの場合、それはあなたが時間を作る定期的なリマインダー(例えば、繰り返しのカレンダーイベントの設定)に要約されます。
2.不要なソフトウェアとモジュールを削除します
常にそう見えるとは限りませんが、Webサーバーは複雑なソフトウェアです。 Apache HTTPサーバーなどの一部のWebサーバーには、ユースケースに応じて有効または無効にできる一連の「モジュール」(WordPressのプラグインと同様)が付属しています。 悪意のある攻撃者は、Webサーバーモジュールの機能と脆弱性を利用して、Webサーバーに関する詳細情報を収集することが知られています。 これが攻撃を成功させる唯一の理由ではないかもしれませんが、Webサーバー強化の全体的なポイントは、多層防御アプローチを採用し、悪意のある攻撃者がごくわずかな足場さえも獲得できないようにすることです。
この実際的な例は、ApacheHTTPサーバーのmod_statusなどのモジュールです。 このモジュールは、/ server-status URLを介して、サーバーのアクティビティとパフォーマンス(現在のホスト、処理されている要求の数、アイドル状態のワーカーの数、およびCPU使用率)の概要を取得するように設計されています。 このような機能は、攻撃者にWebサーバーのパフォーマンスをかなり正確に示す可能性があります。これは、サービス拒否(DoS)攻撃が発生した場合に非常に役立つツールです。
同様に、Webサーバーで実行されている他の未使用のソフトウェアは、不必要なリスクをもたらす可能性があります。 例えば:
- 不要なvsftpdなどのFTPサーバーを実行していますか?
- SendmailやPostfixなどの不要になったメール転送エージェントはありますか? サードパーティのサービスを使用してWordPressの電子メールの配信可能性を向上させる場合、そのようなサービスは必要ありません。
これらのアプリケーション/サービスおよびサーバー上の他の多くのアプリケーションはすべて、独自のセキュリティの癖、脆弱性、およびパッチ要件を持つコンポーネントです。
要約すると、可能な場合は実行するソフトウェアを減らします。 モジュールまたはサービスを使用していない場合は、それを無効にするか削除することを検討する必要があります。 当然、開発環境またはステージング環境で徹底的なテストを行わずにモジュールまたはアプリケーションを無効にしないでください(Webサーバーモジュールまたはアプリケーションが使用されていることが完全に明確でない場合があります)。
3.アクセス制御を強化します
Webサーバーへのアクセスを制御することは、正しく行うために不可欠です。 結局のところ、Webサーバーへのアクセスが悪意のある人の手に渡る可能性を最小限に抑えたいのです。 以下は、適切なアクセス制御を維持するために従うべきいくつかのベストプラクティスです。
- rootユーザーは使用しないでください。 管理タスクを実行する必要がある場合は、代わりにsudoを使用してください。
- 強力なシステム(およびWordPress)パスワードを使用します。
- SSHを使用する場合は、パスワードを優先してSSHキーを使用します。
- 特定のIPアドレスからのSSH/RDPアクセスを制限することを検討してください。
- 任意のクラウドプロバイダーアカウントで2要素認証(2FA)を有効にします。
- Webサーバーにアクセスする各ユーザーに独自のユーザーがいることを確認します。ユーザー間でユーザーアカウントを共有しないでください。
- シェル/SSH/リモートデスクトップへのアクセスを、それを必要とする人に明示的に制限します。
4.ファイル整合性監視(FIM)の設定
ファイル整合性監視(FIM)は、システム管理者がWebサーバー上でファイルがいつ変更されたかを識別するのに役立ちます。 一部のファイルは通常のWebサーバー操作の一部として頻繁に変更されますが、管理者が変更(wp-config.phpファイルの更新など)またはWordPress自体の更新を行わない限り、WordPressのインストールなどのファイルは変更しないでください。
ファイル整合性の監視に関しては、使用できるオプションが多数ありますが、実行しているアプリケーションに固有で、セットアップと操作が簡単で、たくさんのチューニング。 そうしないと、意味のない通知に溺れてしまい、気付かないうちにアラートの疲労が始まり、一緒にいる努力が失われてしまいます。 つまり、FIMに関しては、アラートと機能の数が多いほど良いとは言えません。代わりに、最小限のオーバーヘッドで最大の価値を提供するソリューションを探してください。
5.DDoS緩和策とWAFサービスを使用する
Webサーバーをインターネットに直接公開する代わりに、Cloudflare、Fastly、Akamaiなどのサービスを使用して、分散型サービス拒否(DDoS)攻撃を含むさまざまな攻撃から身を守ることを検討する必要があります。 サービス拒否(DoS)攻撃は、攻撃者がWebサイトを要求で圧倒し、その結果、Webサーバーが正当なユーザーに要求を提供できないようにする攻撃の一種です。
サービス拒否の緩和に加えて、このようなクラウドサービスは通常、基本的なSQLインジェクション(SQLi)や単純なクロスサイトなどの多くの一般的なWebアプリケーション攻撃を阻止できるWebアプリケーションファイアウォール(WAF)機能も提供します。スクリプティング(XSS)。 WAFはWebアプリケーションの脆弱性に対するソリューションではありませんが、特にWordPress Webサイト用に最適化されたWAFルールを使用して、悪用に対するある程度の保護を提供します。
次のステップは何ですか?
この記事では、いくつかの一般的なWebサーバーの強化手法について説明しますが、セキュリティの要点は何もありません。 そのため、特に断固とした敵に直面した場合、システムを防御するための1つの方法が絶対確実なものではありません。 したがって、WordPressWebサイトを構成するすべてのコンポーネントを保護する必要があるのはなぜですか。 Webサーバーを保護して、WordPressのセキュリティや自分のコンピューターを無視することはできません。
ただし、継続的なパッチ適用、および適切なセキュリティ慣行と衛生状態に従うことで、攻撃者が攻撃を成功させるために必要な労力を大幅に増やすことができます。これは、ほとんどの場合、攻撃者を苛立たせ、よりソフトなターゲットに強制することを意味します。