Home 技術記事 エッジでのマルチテナントWAFの実行
Applications

エッジでのマルチテナントWAFの実行

About The Author

Outline

Web Application Firewalls(WAF)は、最新のWebセキュリティの重要なレイヤーであり、脆弱性に対するWebサイトの最前線の防御を提供します。 WAFSを使用すると、攻撃の試みを防御し、通知することができます。これにより、組織が脆弱なソフトウェアにパッチを適用するよりも迅速に緩和できます。 この機能は、グローバルCDNのパフォーマンスに影響される方法で実装する必要があります。これにより、応答時間はミリ秒単位になります。 3年前にVerizon Digital Media Services(現在のEdgio)スタックにWAFエンジンを導入したとき、個々のWAFユースケースで最高の評価を得たModSecurity Rules Engineを選択しました。 さらに、OWASP Core Rule Set (CRS)、強力なルール言語、HTTPトラフィックストリームへのリアルタイムのAPIアクセスのサポートにより、柔軟性が大幅に向上しました。

waflzを入力してください

しかし、WAFを使用するお客様の数が増えるにつれて、パフォーマンスとリソースのボトルネックが発生しました。 ModSecurityの緻密なルールセットがすべての顧客インスタンスに伝播され、ネットワーク全体でメモリとCPUの使用率が上昇し、運用コストが増加しました。 新しいルールのテストと展開も、ルール言語が扱いにくく、記述や解析が困難であることが多いため、困難でした。 これらの問題と既存のModSecurityライブラリの開発の複雑さは、Apache 2.0ライセンスの下で公開されたオープンソースのWAFエンジンであるwaflzの開発につながった。

Edgioにとって、waflzはModSecurityの大幅な改善点です。その理由は次のとおりです。

  • 消費するメモリが少なくなります。
  • パフォーマンスが向上します。
  • API駆動型。

Waflzは、OWASPコアルールセットであるModSecurity機能のサブセットをサポートしています。 2.xおよび 3.x、およびいくつかのサードパーティのルールセット。

ウェフルズの設計

Waflzは、ハイパフォーマンスとマルチテナンシーを提供するようにゼロから設計されています。 必要に応じて、設計は柔軟性よりも性能のほうが優れていました。 最終的に、waflzはModSecurity機能の制限されたサブセットをサポートします。 たとえば、セキュリティとパフォーマンス上の理由から、SecRemoteRulesやinspectFileなどのModSecurityディレクティブの一部は、エッジでの実行には適していないと判断されました。

エンジンは、ModSecurity形式またはJSONのいずれかのルールで構成できます。 WAF製品全体が「APIファースト」になるように設計されています。 このため、waflzは入力と出力としてファーストクラスのJSONサポートを提供しています。 Waflzは、設定(ルールを含む)とアラート形式の両方を表現するために、Googleプロトコルバッファを内部的に使用します。 プロトコルバッファを選択すると、JSONの入出力との相互運用性が可能になり、両方に厳密に型指定されたスキーマが追加されます。

CDNの主要なエンジニアリング課題のいくつかは、数千の顧客にサービスを提供することから生じる高い同時性とマルチテナンシーに対処することです。グローバルエッジサーバーのすべてが、顧客の要求をできるだけ早く処理できる必要があります。 さらに、エッジサーバーアプリケーションは、お客様の構成に合わせてリアルタイムのパッチ適用と処理を提供する必要があります。

多くのWAFルールセットをエッジで実行中のHTTPアプリケーションサーバプロセスのメモリにロードすることで、すべてのお客様がスケーラビリティの課題を抱えていました。 Waflzは、メモリ内に1回だけWAFルールセットを作成し、顧客の設定とルールのカスタマイズ間で読み取り専用の参照を共有することで、この問題を解決します。 さらに、いくつかの潜在的なパフォーマンス最適化が特定され、一部の重要な内部データ構造のスペースと時間の節約を含む要求処理時間が改善されました。

Waflzには、エンジンの動作の検証と1回限りのModSecurityルールのテストを容易にする機能も組み込まれており、複雑なスタンドアロンテストハーネスは不要です。

結論

Waflzは、当社のCDNテクノロジースタックの一部で あり、効率的なきめ細かなルールテストとカスタマイズを可能にしながら、大規模に運用することができます。 CDNアプリケーションの課題にもかかわらず、ModSecurityと新しいlibmodsecurityは、多くのユースケースに理想的で柔軟性の高い素晴らしいライブラリです。 確かに、Waflzの開発では、ModSecurityの開発に貢献してきました。 新しいWAFエンジンは、1年以上にわたって世界中で稼働しており、パフォーマンスを損なうことなく、数千もの異なるクライアント構成を同時にサポートおよび保護しています。

waflzの機能の例をさらに見るには、githubにアクセスして ください。