FastCGI: 30年前の技術が今もリバースプロキシの最良プロトコル

मूल शीर्षक: FastCGI: 30 years old and still the better protocol for reverse proxies

यह क्यों महत्वपूर्ण है

30年前の技術が現代のセキュリティ問題を解決する実例として、古い技術の価値を再評価する機会となる。

Andrew Ayerは、HTTPリバースプロキシの脆弱性問題を指摘し、30年前に開発されたFastCGIプロトコルが現在でもプロキシとバックエンド間通信でHTTPより優れていると主張。Discord等で頻発するHTTP desync攻撃を回避できると説明。

HTTPリバースプロキシは脆弱性の温床となっており、最近もDiscordのメディアプロキシでdesync脆弱性が発見され、プライベートファイルの覗き見が可能になった。問題の根本原因は、リバースプロキシとバックエンド間でHTTPプロトコルを使用していることにある。HTTPは表面上はシンプルに見えるが、実際には堅牢な解析が困難で、メッセージの境界を明示的に定義しないため、異なる実装間で同じメッセージを異なって解析する可能性がある。これがHTTP desync攻撃(リクエストスマグリング)の基礎となっている。一方、30年前にリリースされたFastCGIプロトコルは、1996年からメッセージに明確な境界を設定しており、これらの落とし穴を回避している。FastCGIは単なるプロセスモデルではなく、HTTPと同様にTCPやUNIXソケット経由で長時間稼働するデーモンとの通信に使用できるワイヤープロトコルである。GoやApache、Caddy、nginx、HAProxyなど主要なプロキシがFastCGIバックエンドをサポートしており、設定も簡単だ。HTTP/2は一貫して使用されればdesyncを修正するが、FastCGIはより簡単なプロトコルで1996年から同じ機能を提供している。

स्रोत

agwa.name — मूल लेख पढ़ें →