レベル7の攻撃(BOTS / SQL / XSSなど)を撃退する場合の、セキュリティが強化されたNGINXとHiawatha Web Serverの比較

こんにちは



「NGINX週」の終わりに、Habréに関する単一の記事、つまりSeNginxには見られなかった、中国企業NeusoftによるNGINXの「安全な」バージョンの非常に興味深いアセンブリについて話すことにしました 。 これに加えて、Nginx- Hiawatha Web Serverほど注目されていない2番目のWebサーバーについても説明し、それらを使用してWebサイトまたはWebアプリケーションのセキュリティを確保するという点でHiawathaとSeNginxを比較してみます。



画像画像



ホスティング会社の存在の5年間で、顧客のWebサイトおよびWebアプリケーションに対するさまざまなレベルおよびタイプの攻撃のすべてを見ることができただけでなく、ロンドン警察と協力して1つのボットネットマネージャーを見つけて捕まえることができました。 今日、DDoS攻撃は非常に頻繁に発生しており、昨日Arborはデータセンターの1つで最大20-25 Gbit / sの容量で3/4レベルの49 DDoS攻撃を記録しました( 図1および図2 )。 また、Arborデバイスは特定の構成のレベル3および4の攻撃では非常にうまく機能ますが、レベル7の攻撃では実用的ではありません。その目的は、サーバーリソースを過負荷にし、アプリケーションの脆弱性を検索することです。



レベル7の攻撃を撃退するための最も予算的なオプションは、DNS RoundRobin + HaProxy、Nginx、Varnish Cacheなどを使用したさまざまなオプションです。これにより、複数のクライアントサーバー間で攻撃を分散させるか、反動を使用してボットリクエストを「直接」処理できるようになりますページのキャッシュバージョン。 残念ながら、このアプローチでは、手動設定、常時監視が必要になることが多く、種類の異なる攻撃に効果的ではありません。



RoundRobin + Nginx DNSの視覚的表現( ソース ):



画像



長い検索の後、2012年にロシアのPerlプログラマーによって書かれ、自動モードでサイトに来るボットをフィルターできるNGINXの優れたモジュールを見つけました-Roboo( Habrの記事 )。 このモジュールは、サーバーの負荷を最小限に抑えながら、NGINXを使用してボットからの数十万件のリクエストをフィルター処理できる最高の側面を示しました。



方法はわかりませんでしたが、Robooモジュールはすでに中国のプログラマーに気づかれており、Cで書き直され、SeNginxと呼ばれるセキュリティモジュールを備えたNGINXアセンブリに含まれていました。



それでは、Senginxとは正確には何ですか?



SeNginxは、追加のセキュリティモジュールを備えたNGINXアセンブリです。





さらに、SeNginxには、ロードバランシング(セッション持続性、最速ロードバランシングアルゴリズム/フェアロードバランシングアルゴリズム)、MIMEキャッシュモジュール、およびSyslogのサポート用のモジュールが含まれています。



その結果、SeNginxは、サイトの脆弱性の検索に使用されるボットや自動セキュリティスキャナーに対抗するための非常に強力なツールです。



Hiawatha Web Serverとは何ですか?



Hiawathaは、2002年にアムステルダムのHugo Leisinkの学生によって作成され、現在まで維持されている本格的なWebサーバーです。 Nginxとは異なり、Hiawathaは元々、SQL、XSS、CSRF、エクスプロイト攻撃に対する保護などのセキュリティ機能を備えたWebサーバーとして考えられていました。



過去数年間にわたるヒューゴとのコミュニケーションの後、Robooモジュールも追加され、Hiawathaでテストされ、ボットからのWebサイトから保護されましたが、1つの追加機能があり、これについては後で検討します。



Hiawathaの利点は、このWebサーバーの構成と操作が非常に簡単であることです。 Nginxは強力で、時には複雑なツールですが、Hiawathaは、 監視と保護を含め、短時間でインストールおよび構成できます。 たとえば、Nginxには、各仮想ホストのトラフィックを監視する便利な方法がなく、仮想ホストの高度な監視のためにサードパーティモジュールの構成が必要です。



Hiawatha Web Serverの機能:





その結果、Hiawathaは便利で使いやすいWebサーバーです。Nginxとは異なり、100万の設定はなく、インストールしてすぐに使用でき、追加のセキュリティ機能があります。



SeNginxとHiawathaの違いは何ですか?



もちろん、Nginxをあまり知られていないWebサーバーと比較することは理にかなっていないと言う人もいますが、テストと本番環境でのHiawathaのかなり長い使用は、Hiawathaが構成と管理に関する多くの知識を必要とせず、それほど劣らない優れたオープンソースツールであることを示しましたNginx。



ただし、Robooモジュールの統合方法におけるSeNginxとHiawathaの主な違いは次のとおりです。



SeNginx Robot Mitigationでは、モジュールはオン/オフの原則に従って動作します。つまり、IPアドレスのホワイトリスト(たとえば、支払いシステム)を微調整して、このモジュールによってブロックされないようにするか、ボットネットワーク攻撃中にボット保護モジュールを直接有効にする必要があります。 この保護方法は、ボットの攻撃を受けているサイトを常に監視するか、モジュールを常にオンにしておく必要があるため、非常に便利ではありません。これにより、ホワイトボットのサイトの可用性に特定の問題が生じる可能性があります。



Hiawathaでは、ボット保護モジュールを有効にするメカニズムは、サーバーへの接続数が特定の障壁を超えた場合にのみ実装されます。 たとえば、Webサーバーでピーク時に10,000の接続を処理する場合、ボット攻撃により、Webサーバーへの100,000以上の接続の負荷が発生する可能性があります。 この場合、Hiawathaの設定を15,000接続に設定すると、サーバーが攻撃を受けている場合にのみ、ボット保護モジュールを自動的に接続できます。



その結果、膨大な数のSeNginx設定を処理したくない場合は、Hiawathaの設定が簡単かつ高速になり、しばらくの間ボットネット攻撃を忘れることになります。 DDoSからの保護に専門的に取り組んでいる場合、SeNginxのアセンブリは、顧客のニーズに正確に合わせることができる優れたツールです。



All Articles