web-dev-qa-db-ja.com

予算内でWebサーバーに対するセキュリティの脅威を処理する正しい方法

毎年恒例のセキュリティレビュー中に、今年初めに組織のWebサーバーに対する脅威を受け取った事件を思い出しました。それは組織の方針を超えており、私たちのサイトのDDoSを脅かしていました。幸いなことに、悪いことは何も起こらず、それは空の脅威であることが判明しました。ただし、CIO、CSO、CEO、およびホスティングプロバイダーに通知し、すぐに対応を称賛しました。私たちの組織(教育)の性質上、先制対応には地元の法執行機関との調整を含む多くの人々が関わっていました。

私たちの対応は空の脅威に対しては十分でしたが、Webアプリの攻撃計画がどれほど少ないかを実感しています。現在の設定は次のとおりです。

  • エンタープライズファイアウォールの背後にないLinodeVPS(これの背後には説明する価値のない長い話があります)
  • ローカル接続のみを許可する同じサーバー上のPostgreSQLDB
  • 保護するために現在ベストプラクティスに従っているNginxサーバー[ 1 ]
  • 証明書認証に移行するSSHアクセス
  • すべての最新のサーバー設定があり、最新バージョンのコードをプッシュしてデータベース設定を移行するだけでよいバックアップVPS(現在はテストサーバーとして使用されていますが、地理的冗長性オプションとしても想定されています)

私の質問は、サーバーをロックダウンし、DDoSから保護するために、他にどのような手順を踏む必要があるかということに要約できると思います。 Cloudflare Business をDDoS保護とともに使用したいのですが、必ずしも必要なわけではなく、月額200ドルは組織にとって少し高額です。これも必要ですか?一時的なDDoS保護を可能にするソリューションはありますか?そうでない場合、攻撃中/攻撃後の安定性を維持するための最良の方法は何ですか?最後に、攻撃が発生した場合に法執行機関を支援できるように、どのログを実装する必要がありますか?

5
lswim

サーバーをロックダウンし、DDoSから保護するには、他にどのような手順を実行する必要がありますか?

  1. 未使用のポートとプロトコルをファイアウォールで遮断します。該当する場合、可能な場合は、信頼できるIPのみにアクセスを制限します。
  2. すべてのセキュリティパッチとアップデートをタイムリーに適用します
  3. 疑わしいアクティビティのバーストを警告できるネットワークモニターを実装する

月額200ドルは、組織にとって少し高額です。これも必要ですか?

いいえ。それが付加価値をもたらし、必需品になるまではありません。

一時的なDDoS保護を可能にするソリューションはありますか?

はい。 DDoSサービスの実装の複雑さを整理するために、かなりの先行投資が必要になる場合があります。 http://www.blacklotus.net/protect/emergency-ddos-protection は、そのようなオンデマンドサービスの1つです。

そうでない場合、攻撃中/攻撃後の安定性を維持するための最良の方法は何ですか?

ただそこに座ってそれを取ってください。それがDDoSの性質です。 IPをファイアウォールで遮断することもできますが、攻撃が実際に分散している場合は、水鉄砲で山火事と戦うようなものです。

最後に、攻撃が発生した場合に法執行機関を支援できるように、どのログを実装する必要がありますか?

着信ソースIPとタイムスタンプ、およびその他の関連するフォレンジックデータのログを維持します。たとえば、Webサーバーの場合は、要求されたリソースであるユーザーエージェントをログに記録してみてください。 1秒あたりのパケット数や、1秒あたりのリクエスト数などのトラフィックレートが役立ちます。

DDoSは、要約すると数学的分析になります。誰かがあなたを恐喝しようとしている場合、彼らはあなたのビジネスを混乱させ、それを防ぐためにあなたにみかじめ料を支払わせることができると賭けています。規模が要因であり、小規模なオペレーターを倒すのは簡単ですが、彼らはより少ない支払いをすることができます。電子メールの脅威を受け取った場合、最善の行動はそれを無視することです。 DDoS攻撃を開始して維持するには、かなりのボットネットリソースが必要です。スパマーのように全員を完全に爆破することはできません。恐らく、彼らは威嚇する簡単な標的を探して大規模なフィッシング爆発をしているだけです。 DDoS獣の性質上、被害者は、高度なパケットフィルタリング防止スキームを展開できるか、外部サービスと契約する予算がない限り、かなり無力です。

7
inetplumber

inetplumberの答えは素晴らしいです。

もう1つのオプションは、アプリをスケーリングするように構成することです。これにより、ユーザーに影響を与えることなく、より大きな攻撃を処理できます。たとえば、Amazon AWSで仮想プライベートクラウド(VPC)をセットアップできます。たとえば、PostgreSQLサーバーにはVPC内からのみアクセスできます。ロードバランサーのフロントエンドを設定して、複数のサーバー間で負荷を分散できます。

このようにすることの利点は、先行投資なしで数百(またはそれ以上)のサーバーにすばやくスケールアップでき、非常に迅速に(すでに構成されている場合)、ターゲットをはるかに難しくすることができることです。実際に攻撃を受けた時間帯にのみ、これらのサーバーの料金を支払う必要があります。攻撃を受けていないときは、1台のWebサーバーと1台のデータベースサーバーに支払うだけで済みます。

難しい部分はセットアップされることであり、それは確かに現在の構成よりもいくらか複雑です。迅速にスケールアップするように設定するには、さらに多くの作業が必要になります。しかし、計画を立てるためにできることを探している場合(特に、他の問題のために、将来的にターゲットになる可能性があると思われる場合)、それはそれです。

5
nachbar

サーバーをロックダウンし、DDoSから保護するには、他にどのような手順を実行する必要がありますか?

  1. webアプリがインタラクティブではなく、コンテンツを表示するだけの場合:短いキャッシュ時間でnginx + proxy-cacheを使用します(通常は1〜5分で問題ありません)。これによりパフォーマンスが大幅に向上し、攻撃者はより多くのリソースを割り当てる必要があります

  2. iNPUT/OUTPUT/FORWARD-PolicyをDROPに設定して、不要なものすべてをフィルタリングする制限付きファイアウォールを設定しますINおよびOUT。必ずすべての発信接続をログに記録してください-試行(UPDポート53を除く:)

  3. sSHを静的管理IPに制限できない場合は、22222のような代替の高ポートを使用してください。これにより、多くの「こんにちはmcfyl-そこにいる誰か」-ノッカーが防止されます。

  4. さらに、fail2ban/denyhostsを使用して、ブルートフォース攻撃からsshを保護します。

  5. admin-resourcesがある場合:OSSECと軽量WAF(nginxにはnaxsiがあり、軽量でmod_securityなどのPITAではありません)を使用しますが、そのようなインストールをセットアップして維持する人が必要になります

  6. バックアップを実装し、スタンバイサーバーをバックアップターゲットとして使用します

  7. webappコードを最新の状態に保ちます。オープンソースプロジェクトを使用している場合は、セキュリティメーリングリストに登録してください。

  8. 多くの脆弱性があることが知られているソフトウェアを避けるようにしてください

  9. admin-loginおよび/またはmanagament-webappsを使用する場合:これらのログイン+ sslの基本認証を確立します(自己署名証明書はOKです)。

  10. ポートを開く代わりに、ssh-tunnelingwhevenerを使用できます。開発用

そうでない場合、攻撃中/攻撃後の安定性を維持するための最良の方法は何ですか

  1. 冷静さを保つ
  2. そのような場合のために手元に経験のある人がいる
  3. いくつかの緊急計画を用意してください

あなたがすでにした最も重要なこと:それが起こる前にそれ(そして可能な対策)について考えること。