WAFではRESTful API仕様が重要です

APIGit

2023-08-04

api-waf

WAFとは何ですか?

WAFの略ですWeb Application Firewall。これは、Web アプリケーションをさまざまなオンラインの脅威、脆弱性、攻撃から保護するために設計されたセキュリティ ソリューションです。 WAF は、Web アプリケーションと外部世界との間の障壁として機能し、送受信トラフィックをフィルタリングおよび監視して、悪意のあるアクティビティを検出および防止します。

WAF の主な目的は、次のような一般的な攻撃から Web アプリケーションを保護することです。

  • SQLインジェクション: 攻撃者は、データベースを操作したり、データベースに不正にアクセスしたりするために、悪意のある SQL クエリを入力フィールドに挿入しようとします。

  • クロスサイト スクリプティング (XSS): 悪意のあるスクリプトが Web ページに挿入され、ユーザー データの盗難やセッション ハイジャックにつながる可能性があります。

  • クロスサイト リクエスト フォージェリ (CSRF): 攻撃者はユーザーをだまして意図しないアクションを実行させ、Web アプリケーション上で不正なアクションが実行されることがよくあります。

  • アプリケーション層の DDoS 攻撃: 攻撃者は Web アプリケーションに大量のリクエストを送り込み、Web アプリケーションのリソースを圧倒し、使用不能にさせます。

  • ブルートフォース攻撃: アプリケーションへの不正アクセスを取得するために、パスワードまたは資格情報を推測しようとする繰り返しの試み。

  • ファイルインクルード攻撃: ファイルの不正な組み込み。機密ファイルにアクセスしたり、悪意のあるコードを実行したりするためによく使用されます。

WAF は、受信した HTTP および HTTPS リクエストを分析し、その内容に不審なパターンがないか調べ、事前定義された一連のセキュリティ ルールに基づいてリクエストをブロックまたは許可することによって動作します。一部の WAF はシグネチャ ベースの検出を使用しますが、他の WAF は脅威を特定して軽減するために動作分析と機械学習を使用します。

WAF はハードウェア アプライアンス、ソフトウェア ソリューション、またはクラウド ベースのサービスとして実装でき、特にオンラインの脅威が絶えず進化する今日のデジタル環境において、Web アプリケーションのセキュリティと整合性を維持する上で重要な役割を果たします。

WAF はどのように機能しますか?

Web アプリケーション ファイアウォール (WAF) は、Web アプリケーションとそのユーザー間のトラフィックを監視、フィルタリング、制御することによって機能します。 Web アプリケーションを標的としたさまざまな種類のサイバー攻撃や脆弱性を特定し、防止するように設計されています。 WAF の通常の動作は次のとおりです。

  • 交通検査: ユーザーが HTTP リクエストを送信して Web アプリケーションと対話するとき (Web ページへのアクセス、フォームの送信など)、WAF は受信トラフィックが Web サーバーに到達する前に傍受して検査します。

  • HTTP 解析: WAF は HTTP リクエストを解析して、リクエスト メソッド、ヘッダー、URL、クエリ パラメータ、リクエスト本文などのコンポーネントを理解します。

  • ルールベースのフィルタリング: WAF は、事前定義されたセキュリティ ルールのセットを解析されたリクエストに適用します。これらのルールは、SQL インジェクション、クロスサイト スクリプティング (XSS) などの既知の攻撃や脆弱性のパターンを定義します。 WAF は、リクエストの内容とこれらのルールの間の一致を検出すると、脅威を軽減するための措置を講じます。

  • トラフィックのブロックまたは許可: ルールの評価に基づいて、WAF はリクエストが Web アプリケーションに進むことを許可するかブロックするかを決定します。リクエストが悪意のある、または疑わしいとみなされる場合、WAF はリクエストをブロックし、Web サーバーに到達するのを防ぐことができます。

  • 応答分析: WAF は、発信リクエストに対する Web アプリケーションの応答も検査します。アプリケーションの応答における機密情報の漏洩やデータ漏えいを検出し、防止できます。

  • 学習と適応: 最新の WAF の中には、機械学習と動作分析技術を採用して、新たに進化する脅威を特定するものがあります。これらのシステムは、アプリケーションの通常の動作を時間の経過とともに学習し、攻撃を示す可能性のある異常を検出できます。

  • カスタムルール: 管理者は多くの場合、Web アプリケーションの特定のセキュリティ ニーズに合わせてカスタム ルールを構成できます。これにより、アプリケーション固有の脆弱性や潜在的な脅威に対処できるようになります。

  • ロギングとレポート: WAF は、検出された脅威、不審なアクティビティ、ブロックされたリクエストに関するログとレポートを生成します。この情報は、管理者が Web アプリケーションのセキュリティ体制を分析し、必要に応じて WAF のルールを微調整するのに役立ちます。

  • 継続的なモニタリング: WAF は、トラフィックを継続的に監視およびフィルタリングし、新たな脅威に適応し、Web アプリケーションのセキュリティを維持することにより、継続的な保護を提供します。

WAF は貴重なセキュリティ層ではありますが、それ自体では包括的なソリューションではないことに注意することが重要です。 Web アプリケーションの全体的なセキュリティを確保するには、安全なコーディングの実践、定期的なセキュリティ評価、パッチ管理などのセキュリティ対策を組み合わせることが不可欠です。

RESTful API 仕様は、WAF カスタム ルールにとって重要です。

WAF でカスタム ルールを構成するにはどうすればよいですか?主に次の 2 つの方法があります。

  • #1 RESTful API 仕様 Web サービスには、すべてのエンドポイント、パラメータ、応答、認証スキームなどを記述する OpenAPI 仕様がある場合があります。このような仕様は通常、開発者によって提供されます。
  • #2 手動入力 URL、パラメータ名、最大長、値の構造を追加することで、ルールを手動で入力できます。

#1 の方法は #2 よりもはるかに優れています。理想的な世界では、各 Web サービスには OpenAPI 仕様があり、常に最新の状態で利用できます。しかし、現実の世界では、それはそれほど頻繁に起こることではないようです。開発者は API を変更しても仕様の更新を忘れたり、何らかの理由で仕様を公開していない可能性があります。ほとんどの場合、公開されている REST API には人間が読めるドキュメントが含まれており、これは便利ですが、自動化された方法で使用するのは通常困難です。

  • しかし、APIGIT を使用するとこれが簡単になります。

APIGIT は、ネイティブ Git サポートを特徴とするコラボレーション プラットフォームです。これにより、API 開発プロセスとバージョン管理が簡素化され、ユーザーが API を簡単に設計、文書化、モック、テスト、共有できるようになります。このプラットフォームのビジュアルな OpenAPI エディターをネイティブの Git サポートと組み合わせることで、チームはシームレスかつ効率的な方法で共同作業し、作業を共有することが容易になります。

RESTful API 仕様はどのようなものですか?

これは RESTful API 仕様の一部です。

"components": {
    "schemas": {
      "OpenAI-Request": {
        "type": "object",
        "properties": {
          "prompt": {
            "type": "string",
            "description": "Your question"
          },
          "model": {
            "type": "string",
            "description": "OpenAI model",
            "default": "1",
            "minLength": 1,
            "maxLength": 20,
            "pattern": "\\w+"
          },

RESTful API 仕様でスキーマを定義する場合、パラメータのタイプ、最小長と最大長、さらには正規表現パターンなど、パラメータのさまざまな側面を指定できます。この仕様は Web アプリケーション ファイアウォール (WAF) にロードできるため、定義されたスキーマに対応するカスタマイズされたルールを生成できます。