kdnakt blog

hello there.

ゆるTLSアドベントカレンダー 3日目:ALPACA攻撃

この記事は ゆるTLS Advent Calendar 2021 の3日目の記事です。

 

 

[ALPACA攻撃]

2021年6月、TLSプロトコルをねらった新たな中間者攻撃*1、ALPACA攻撃が発見された。

alpaca-attack.com

 

2008年に仕様が定まったTLS1.2が普及したおかげなのか、2010年代前半に見つかったBEAST攻撃やPOODLE攻撃のようなキャッチーな略称つきの脆弱性がしばらく見つかっていなかったところに、2021年になってアルパカの登場である。

 

BEAST攻撃やPOODLE攻撃はSSL/TLSプロトコルそのものの仕様に対する攻撃であった。これに対して、ALPACA攻撃はTLSを利用する複数のアプリケーションプロトコルをまたぐ攻撃、すなわちクロスプロトコル攻撃である。

f:id:kidani_a:20211203231826p:plain

https://alpaca-attack.com より引用

TLSはアプリケーションプロトコルに依存しないように設計されているため、結果として上の画像で図示されているように、ワイルドカードSSL証明書を利用しているサーバで問題となる。HTTPとFTPの2つのプロトコルを跨いでリクエストとレスポンスがやりとりされ、クッキーなどの機密情報の漏洩やクロスサイトスクリプティングXSS)攻撃につながる。

 

FTP以外にも、SMTPIMAPなどのメール送信のプロトコルも問題となりうる。

arstechnica.com

このようなクロスプロトコル攻撃の問題は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のデフォルトポートへの通信をブロックする対応が取られた。

therecord.media

 

[まとめ]

  • 新たな中間者攻撃ALPACA攻撃が2021年6月に発表された
  • 複数のアプリケーションプロトコルを組み合わせ、データを抜き出したりXSSを仕掛けたりできる
  • SNIやALPNといったTLSの拡張を利用して対策ができる

*1:中間者攻撃については2日目の記事を参照。

kdnakt.hatenablog.com