この記事は ゆるTLS Advent Calendar 2021 の3日目の記事です。
[ALPACA攻撃]
2021年6月、TLSプロトコルをねらった新たな中間者攻撃*1、ALPACA攻撃が発見された。
2008年に仕様が定まったTLS1.2が普及したおかげなのか、2010年代前半に見つかったBEAST攻撃やPOODLE攻撃のようなキャッチーな略称つきの脆弱性がしばらく見つかっていなかったところに、2021年になってアルパカの登場である。
BEAST攻撃やPOODLE攻撃はSSL/TLSのプロトコルそのものの仕様に対する攻撃であった。これに対して、ALPACA攻撃はTLSを利用する複数のアプリケーションプロトコルをまたぐ攻撃、すなわちクロスプロトコル攻撃である。
TLSはアプリケーションプロトコルに依存しないように設計されているため、結果として上の画像で図示されているように、ワイルドカードSSL証明書を利用しているサーバで問題となる。HTTPとFTPの2つのプロトコルを跨いでリクエストとレスポンスがやりとりされ、クッキーなどの機密情報の漏洩やクロスサイトスクリプティング(XSS)攻撃につながる。
FTP以外にも、SMTP、IMAPなどのメール送信のプロトコルも問題となりうる。
このようなクロスプロトコル攻撃の問題はALPACA攻撃が初めてではなく、古くは2001年から知られている。
[正式名称]
ALPACA攻撃は正式名称を「Application Layer Protocol confusion - Analyzing and mitigating Cracks in tls Authentication」攻撃という。
上記公式サイトの説明によると、もともとは「Application Layer Protocols Allowing Cross-Protocol Attacks」の略称として、ALPACA攻撃と呼ばれていたらしい。
しかし、アプリケーションプロトコルに問題があるかのような名称は適切でないということで、無理やり現在の名前になったようだ。
[影響とブラウザの対応]
ALPACA攻撃は、SNI(Server Name Indication)拡張によって相手のサーバ名を確認したり、ALPN(Application Layer Protocol Negotiation)拡張によって利用するアプリケーションプロトコルを確認することで防ぐことができる。
しかし、攻撃の発表時点では、10万台以上のサーバが問題を抱えていたらしい。
そうした状況を受けてか、ブラウザの側でもFTPのデフォルトポートへの通信をブロックする対応が取られた。
Chrome 93 will block ports 989 and 990 as a mitigation to the ALPACA attack pic.twitter.com/4Kc10ZJ6C7
— Catalin Cimpanu (@campuscodi) 2021年6月30日
[まとめ]
- 新たな中間者攻撃ALPACA攻撃が2021年6月に発表された
- 複数のアプリケーションプロトコルを組み合わせ、データを抜き出したりXSSを仕掛けたりできる
- SNIやALPNといったTLSの拡張を利用して対策ができる
*1:中間者攻撃については2日目の記事を参照。