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

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

About The Author

Outline

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

コンプライアンス要件のため 、WebアプリケーションおよびAPI保護(WAAP) は一般的にアプリケーションスタックに導入されます。 しかし、組織がワークロードをクラウドに移行し、アプリケーションのファブリックにセキュリティを組み込み始めると、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を通過するトラフィックの危険性を判断するために必要なチェックを繰り返していることがわかりました。

一部のプロトコル強制ルールは非常に単純で、ルールセットエコシステム内で「ライブ」する必要はありません。 これに対処するために、まず、OWASPルールセットを非ModSecurity形式でWAAPエンジンに直接実装することで、効果的に削除するルールセットを開発しました。 これにより、早期の実行と迅速な検出が可能になります。

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

最後に、多くのマクロ展開/文字列置換や明示的検索が行われます。 これらのルールをルールセットから特定して削除し、可能な限り正規表現(Rx)演算子の代わりに、HashMap検索やフレーズ一致(pm)演算子などのより優れた検索アルゴリズムと検索アルゴリズムを使用してエンジンに実装しました。

ルールセットの構造を変更することで、WAAPエンジンはより高速なデータ構造とJSONのようなオープンスタンダード形式を使用します。これらの形式は、設定と実行が簡単です。 これにより、速度だけでなく精度の面でもパフォーマンスが向上します。

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

たとえば、OWASP IPブロックリストポリシールールの場合、ModSecurityエンジンは、不正なIPリストを調べる独自の「MSC_TREE」アルゴリズムを使用します。 あるいは、Edgio WAAPエンジンは、かなり速い別のアルゴリズムを使用します。 次のテスト結果は、Edgio WAAPがModSecurityに対してどのように実行されるかを示しています。 ModSecurityでは、大きなIPリストで100万のクエリを実行すると、約200ミリ秒から500ミリ秒の遅延が発生します。 Edgio WAAPは、ネットワーク全体で1日あたり約10億件のリクエストを処理します。 このような小さな数字は大きな規模では大きな意味を持ちます

アラートを回避するか、トレードオフをブロックするか

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

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

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

この2段階のプロセスにより、ITセキュリティチームはファイアウォールの設定変更を有効にする前に検証できます。これにより、実際の実稼働トラフィックの変更をテストするためのデータをチームに提供できるため、ルールセットが実稼働に移行した後の誤検知を減らすことができます。 ルールセットが検証されると、更新された構成が数秒以内に展開されます。 必要に応じて、数分以内にロールバックが可能です。 これにより、意味のあるルールセットのトライアルがより現実的で、動的で、インパクトがあり、効果的で、ビジネス目標をサポートすることができます。

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

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

Edgio WAAPインテリジェントエンジンとルールセットがWebアプリケーションを高速かつ正確に保護する方法の詳細については、今すぐ接続しましょう。