GNU/Linux >> Linux の 問題 >  >> Linux

Linuxシステム管理者向けのWebアプリケーションファイアウォールの概要

ファイアウォールは、ネットワーキングの開始以来、何らかの形で存在してきました。最初のファイアウォールはファイアウォールとしても識別されませんでした。それらは、ネットワーク間の物理的な障壁にすぎませんでした。ファイアウォールとして特別に設計された(そして名前が付けられた)最初のデバイスがDECによって開発されたのは、1980年代になってからでした。それ以来、ファイアウォールは無数の形態に進化してきました。

しかし、ファイアウォールとは何ですか?ファイアウォールは、基本的に、一連のルールに基づいてトラフィックを許可または拒否するように設計されたデバイスです。これらのルールは、「HTTPを許可し、他のすべてをブロックする」のように単純な場合もあれば、プロトコル、ポート、アドレス、さらにはアプリケーションのフィンガープリントを含む、非常に複雑な場合もあります。最近のファイアウォールの中には、機械学習を組み合わせたものもあります。

WAFの紹介

他のテクノロジーと同様に、ファイアウォールが進化するにつれて、いくつかのニッチな用途が特定されました。

Webアプリケーションファイアウォール(WAF)は、これらのニッチな用途の1つです。 WAFは、「Web」トラフィックを処理するために特別に設計されたファイアウォールです。つまり、HTTPプロトコルを使用したトラフィックです。一般的に、WAFの役割は、Webサーバー宛てのすべてのHTTPトラフィックを検査し、「不良」リクエストを破棄して、「良好」トラフィックを渡すことです。これがどのように機能するかの詳細は、ご想像のとおり、もう少し複雑です。

「通常の」ファイアウォールと同様に、WAFは特定のタイプのトラフィックをブロックすることが期待されています。これを行うには、ブロックする対象のリストをWAFに提供する必要があります。その結果、初期のWAF製品は、ウイルス対策ソフトウェア、IDS/IPS製品などの他の製品と非常によく似ています。これは、シグネチャベースの検出として知られているものです。署名は通常、許可または拒否するHTTPパケットの特定の特性を識別します。

WAFの例

たとえば、WAFは、SQLインジェクション攻撃をブロックするためによく使用されます。非常に単純なシグニチャは、典型的なSQLインジェクション攻撃の主要な識別要素を探すだけかもしれません。たとえば、' AND 1=1のようなものを検索する場合があります。 GETまたはPOSTリクエストの一部として含まれています。これが着信パケットと一致する場合、WAFはこれを不良としてマークし、破棄します。

シグニチャは非常にうまく機能しますが、誤検知を最小限に抑えるために多くのメンテナンスが必要です。さらに、署名を書くことは、多くの場合、単純なプログラミング作業というよりも芸術的な形式です。また、署名の作成も非常に複雑になる可能性があります。多くの場合、正当なトラフィックを照合せずに、一般的な攻撃パターンを照合しようとしています。率直に言って、これはかなり神経質になる可能性があります。

WAF雑草に

これをもう少し説明するために、ModSecurityを見てみましょう。 ModSecurityプロジェクトはオープンソースのWAFプロジェクトであり、Apacheウェブサーバーのモジュールとして開始されましたが、その後、IIS、Nginxなどで動作するモジュラーパッケージに進化しました。 ModSecurityは署名ベースのWAFであり、多くの場合、OWASPModSecurityコアルールセットと呼ばれるデフォルトの署名セットが付属しています。

コアルールセット(CRS)は、シグニチャベースのWAFを展開するための優れた出発点です。これには、OWASPトップ10のウェブアプリケーションのセキュリティリスクすべてと、その他のさまざまな攻撃の署名が含まれています。開発者は、CRSに誤ったアラートがほとんどないように最善を尽くしましたが、必然的に、CRSを展開する人はルールを微調整する必要があります。これには、ルール言語を学び、HTTPプロトコルを深く理解することが含まれます。

ただし、テクノロジーは進化しており、新しいWAFプロバイダーは他のアプローチを使用して不正なトラフィックをブロックしています。許可リストやブロックリストなどの静的構成アプローチから、APIや機械学習を含むより動的なメソッドへの移行がかなり進んでいます。この動きは、従来のファイアウォール、ウイルス対策ソフトウェア、そしてご想像のとおり、WAFを含む複数のテクノロジーにまたがっています。

[ネットワークが制御不能になっていますか? Red Hatの無料の本、みんなのためのネットワーク自動化をチェックしてください。 ]

WAFは学習できます

動的ルールセットの勇敢な新しい世界では、WAFはよりインテリジェントなアプローチを使用してトラフィックの良し悪しを識別します。採用されている「より簡単な」方法の1つは、WAFを「学習」モードにして、保護されたWebサーバーとの間を行き来するトラフィックを監視できるようにすることです。ここでの目的は、WAFを「トレーニング」して、良好なトラフィックがどのように見えるかを特定することです。これには、シグニチャが使用されたときに不良とラベル付けされたパターンに一致するトラフィックが含まれる場合があります。 WAFがトレーニングされると、強制モードに移行します。

このようなWAFのトレーニングは、スパムを識別するために電子メールシステムをトレーニングするときに行われることと似ています。メールシステムは、多くの場合、ベイジアンフィルタリングアルゴリズムを使用してスパムを識別します。これらのアルゴリズムは比較的うまく機能しますが、スパムを許可するために毒殺される可能性があります。特にWAFが学習モードの場合、WAFプロバイダーが使用するアルゴリズムにも同様の問題が存在します。

より高度なWAFプロバイダーは、独自の技術を使用してトラフィックを許可およびブロックしています。これらの手法には、特定の攻撃がターゲットシステムに対して機能するかどうかを識別し、有害な攻撃のみをブロックできるアルゴリズムが含まれています。ただし、このような高度な技術は通常、WAF SaaSプロバイダーにのみ見られ、自己完結型のWAFアプライアンスには見られません。

[ネットワークセキュリティを強化する必要がありますか?システム管理者用のVLAN:基本]

まとめ

WAF、および一般的なファイアウォールは、トラフィックを識別およびブロックするための静的な方法から動的な方法に移行して、長年にわたって大きく進化してきました。これらの技術は、将来的にのみ改善されるでしょう。オープンソースから商用プロバイダーまで、さまざまなソリューションを利用できます。ニーズが何であれ、WAFがあります。


Linux
  1. システム管理者向けの30のLinuxプロセス演習

  2. Linux –カレンダーに使用するアプリケーションはどれですか?

  3. ForeverNote –Linux用のEvernoteWebクライアント

  1. Webイメージを最適化するための私のお気に入りのLinuxコマンド

  2. Linux用の10のオープンソース軽量Webブラウザ

  3. Linux アプリケーションの syscall アクセスを制限する

  1. Linuxシステム管理者向けのAnsibleの謎を解き明かす

  2. Linuxシステム管理者向けの5つの高度なrsyncのヒント

  3. SysAdmins用の80のLinux監視ツール