Home 技術記事 セキュリティルールの高速化によるアプリケーションパフォーマンスの向上
Applications

セキュリティルールの高速化によるアプリケーションパフォーマンスの向上

About The Author

Outline

より多くのアプリケーション開発チームがセキュリティをワークフローに統合するにつれて、アプリケーションパイプライン、ワークフロー、パフォーマンスの観点から、セキュリティがアプリケーションに与える影響を検討している。

コンプライアンス要件のため、Web Application and API Protection (WAP)は一般にアプリケーションスタックに導入される。 しかし、組織がワークロードをクラウドに移行し、アプリケーションのファブリックにセキュリティを組み込み始めると、WAAPの役割は進化している。 組織は、変化するクラウドアーキテクチャと増大するセキュリティの脅威に合わせて拡張し、適応できるWAAPプラットフォームを必要としている。

この記事では、WAAPエンジン(より具体的には、そのエンジンで使用するために特別に構築されたルールセット)を、オンラインの脅威からの強力な保護を維持しながら、クラウドワークフローに拡張し、Webアプリケーションのパフォーマンスを向上させるためにどのように適応させることができるかを確認する。

WAAPエンジンとそのルールの両方を考慮する

WAAPはアプリケーションスタックおよびネットワークセキュリティプログラムの重要な部分であるべきである。 従来、WAAPはアプリケーション開発から切り離されており、アプリケーションの外にあるセキュリティ層と見なされていた。 しかし、最新のWAAPアーキテクチャとツールは、アプリケーション開発時のルール作成とテストを含め、CI/CDプロセスでSecOpsとDevOpsのコラボレーションを支援している。 アプリケーションインフラストラクチャを通過するトラフィックを分析するために適切に使用された場合、WAAPエンジンとそのルールセットは、分析の完了速度と、結果として得られる監査およびブロックの決定がアプリケーションアーキテクチャ全体の一部としてどの程度うまく機能するかにおいて重要な役割を果たす。

自動車のエンジン、コンピュータ、ドライブトレインと同様に、WAAPエンジンとそのルールセット、および保護するアプリケーションは、連携して動作するように設計および最適化されるべきである。 自動車メーカーはバブルの中でエンジンを設計しない。 車両の残りのフレームとコンポーネントに最適化して、全体的に最高のパフォーマンスと効率を達成する必要がある。 WAAPエンジンとそのルールセットについても同じことが言える。 これらの変数を考慮しないWAAPは、過負荷になり、最終的にWebアプリケーションのパフォーマンスとユーザーエクスペリエンスを低下させる可能性がある。

WAAPワークロードを削減して速度と効果を向上させる

Edgio WAAPは、オープンソース、産業用、プロプライエタリな署名を組み合わせてルールセットに情報を提供している。 各シグネチャがルールセット全体のパフォーマンスに与える影響を慎重に評価する。

WAAPエンジンを設計して最適化すると、オープンソースと業界のルールセットを何の変更もせずに収集して消費することで、トラフィックがワイヤーを通過するときに(ほぼ)すべてのルールを分析する必要があることがわかった。 このモデルはWAAP間でかなり一般的であり、トラフィックに何が起こるかを「簡単に」確認できる。 しかし、WAAPはトラフィックに関連するリスクを評価するためにすべてのルールを実行するよう強制する。 これにより、WAAPに不必要に重い負荷がかかり、ルールセットが大きくなるにつれてさらに悪化する。

もちろん、それは必ずしもスピードに関するものではない。 WAAPの重要な要素は、トラフィックに関連するリスク(妥協)と報酬(成功したトランザクション)を決定し、トラフィックに悪意のある、疑わしい、または良性のフラグを付けるかどうかを決定する能力である。 WAAPはチームにアラートを送信し(監査/アラートモード)、トラフィックを通過させるには危険すぎると判断された場合はトラフィックをブロックまたは再経路化する(本番/ブロックモード)。

この分析は、取り込まれたオープンソースと業界のルールセットを調べる際に大きな課題となる。 市場に出回っているすべてのWAAPエンジンについて、スピードと効率性を念頭に置いて作成されたとは考えにくい。 これは、彼らが悪いという意味ではなく、単にリスクを最初に重視し、パフォーマンスを後回しにするという意味である。 つまり、改善の余地がある。

完全性と正確性のために作成されたルールセットでは、多くのWAAPは両方のモード(監査とブロック)で分析されているトラフィックを処理できないことに気付き、InfoSecチームはモードを選択せざるを得なくなった。監査モードから開始して実稼働モードに移行するか、実世界でのテストをほとんどまたはまったく行わずに本番モードに移行する。

EdgioがWAAPルールセットを強化する方法

オープンソースのルールセット用OWASP ModSecurityモデルは、WAAPルールセットを開発し実装するための標準的で一貫した方法を提供する。 これを補完するために、OWASPはこのモデルに従ったWAAPによって取り込まれることができる業界の一般的なルールセットを提供している。

しかし、私たちのチームがルールセットを実装しているとき、彼らは、取り込まれるルールセットが完全かつ正確であるにもかかわらず、実際にWAAPエンジンを妨げていることに気づいた。 そこで、チームはルールセットがどのように構造化され処理されるかを調べることにした。 WAAP管理者を驚かせてはならないが、多くのルールが同じデータを繰り返し通過し、WAAPを通過するトラフィックの危険性を判断するために必要なチェックを繰り返すことがわかった。

一部のプロトコル強制ルールはかなり単純で、ルールセットのエコシステム内で「生きている」必要はない。 これに対処するために、我々はまず、非ModSecurity形式でWAAPエンジンに直接実装することで、OWASPルールセットを効果的にトリミングしたルールセットを開発した。 これにより、早期実行と高速検出が可能になる。

次に、リクエストボディを分析するルールをターゲットにした。 ルール内の同じ式を再計算する際のパフォーマンスオーバーヘッドを軽減するキャッシングレイヤーを構築した。 XML形式のボディを例にとると、OWASP CRSルールセットに「xml :/*」という表現が何回現れるかを調べ、キャッシュ層なしで1つのリクエストの処理でXPathが再計算される回数を調べた。

最後に、マクロ展開や文字列置換、明示的な検索が多く行われる場合、ルールセットからそれらのルールを特定して削除し、可能な限り正規表現(Rx)演算子の代わりにHashMapルックアップやフレーズマッチ演算子などのより良い検索および検索アルゴリズムをエンジンに実装した。

ルールセットの構造を変えることで、WAAPエンジンはより高速なデータ構造とJSONのようなオープンな標準フォーマットを使用している。 これにより、速度だけでなく精度も向上する。

  • 誤検出が少ない:Edgioは、正確さが維持されるようにルールセットを配置および制御する
  • エンジンパフォーマンスの向上: Edgio WAAPエンジンは、エンジンの過負荷を回避する方法でルールセットを実行する

たとえば、OWASP IPブロックリストポリシールールの場合、ModSecurityエンジンは不正なIPリストを調べる独自の「MSC_tree」アルゴリズムを使用する。 代わりに、Edgio WAAPエンジンはかなり速い別のアルゴリズムを使用する。 Edgio WAAPがModSecurityに対してどのように動作するかを示すテスト結果を以下に示す。 ModSecurityは、大規模なIPリストに対して100万のクエリを実行すると、約200ミリ秒から500ミリ秒の遅延を追加する。 Edgio WAAPは、ネットワーク上で1日あたり約10Bのリクエストを処理する。 これらの小さな数は、このような大規模なスケールでは非常に重要である。

トレードオフをブロックするのではなく、アラートを回避する

WAAPエンジンとルールセットの組み合わせが優れていることは、組織のパフォーマンスが向上し、WAAPをデュアルモード(ブロックモードと監査モードの両方)で実行できることも意味する。 これにより、セキュリティ運用チームは、監査/アラートモードで本番トラフィックに対して新しいルールを実験し、ルールセットをWAAPでブロックモードに昇格させる前にルールを微調整できる。

高度にカスタマイズされたEdgioルールセットにより、管理者はどこでもスライスしたり、分割したり、デュアルモードでルールセットを実行したりできる。 異なる設定に同じルールを適用することで、管理者はパフォーマンスに影響を与えずに2回実行できる。インテリジェントエンジンとルールセットの実装のおかげで、

ここでの価値は、WAAP管理チームを超えて広がっている。 Edgioの多くの顧客は、DevOpsライフサイクルにこのオプションを統合しており、ビジネス、エンジニアリングチーム、ITセキュリティチームは、本番ブロックモードに適用する前に、監査モードでルールをコラボレーションしてテストすることができる。

この2段階のプロセスにより、ITセキュリティチームはファイアウォールの設定変更を有効にする前に精査し、実際の運用トラフィックの変更をテストするためのデータをチームに提供できるため、ルールセットが運用環境に置かれた後の誤検知を減らすことができる。 ルールセットが検証されると、更新された設定が数秒以内に展開される。 ロールバックは、必要に応じて数分以内に可能である。 これにより、有意義なルールセットの試験がはるかに現実的で、動的で、影響力があり、効果的で、ビジネス目標をサポートすることができる。

Edgio Dual WAF Modeアプローチは、パフォーマンスをさらに向上させる。 インテリジェントなルールセットは、既知の悪意のあるトラフィックを迅速にブロックしてWAFに呼吸の余地を与えることで、常に提示されている残りのトラフィックを処理できるようにする。 これにより、管理者は予測的な可視性の獲得に集中する時間を増やすことができる。つまり、本番サイトにデプロイする前に監査モードを介してアプリケーションの内容を確認できる。

予測不能なワークロードに適応し、かつ安全性の高いアーキテクチャを提供できるアプリケーションスタックがビジネスに必要な場合は、WAAPエンジンとルールセットの設計を検討する。 最適化された場合、これらの要素はWebアプリケーションのパフォーマンスを向上させることができる。

Edgio WAAPインテリジェントエンジンとルールセットがどのようにスピードと正確さでウェブアプリケーションを保護することができるかの詳細については、今日接続しよう。