はじめに
TLS上で動作する攻撃ALPACA Attackについて解説する記事です。
詳細は記事内のリンクをご参照ください。
目次
1.概要
2.原理
3.攻撃例
4.対策
概要
「ALPACA」は本脆弱性を発表した論文「Application Layer Protocol Confusion - Analyzing and mitigating Cracks in tls Authentication」の頭文字です。
ALPACA attackはTLSの認証における脆弱性を利用して、特定のTLSサーバ(複数のプロトコルに対応し、マルチドメイン/ワイルドカード証明書などを使用するTLSサーバ)に対して、認証の混乱を引き起こし、別プロトコルのサービスを利用して機密情報の窃取を行う攻撃です。
こうした複数プロトコルをまたいだ攻撃はクロスプロトコル攻撃と呼ばれます。今回ALPACA attackと名付けられた攻撃は、脆弱性の原因をTLSサーバの設定ミスであるという点に限定しています。
TLSについて
マルチドメイン/ワイルドカード証明書の簡単な説明
ワイルドカード証明書:一枚のSSLサーバ証明書で、複数のサブドメインのサイトを保護することができる証明書です
(例:www.hoge.co.jp/secure.hoge.co.jp/ssl.hoge.co.jp)
----------------------------
公開日:2021年6月9日
影響範囲:複数のプロトコルに対応し、マルチドメイン/ワイルドカード証明書などを使用するTLSサーバの一部
脆弱性情報
advisory:ALPACA Attack
報告論文:「ALPACA: Application Layer Protocol Confusion - Analyzing and Mitigating Cracks in TLS Authentication」
exploit:RUB-NDS/alpaca-code: Artifacts to the ALPACA attack.
原理
この攻撃では、MITM攻撃が前提になってきます。(その為、限定的な状況でのみ攻撃可能)
初めに一つのシナリオを例に、攻撃を見ていきます。
(https://alpaca-attack.com/ より)
①ユーザーがHTTPSリクエストを送信
②中間者(攻撃者)によって、リクエストを同一のSSLサーバ証明書を使用するFTPプロトコルのサービスに転送
③攻撃者はFTPS(FTP over SSL/TLS)のレスポンスをユーザーに返す
この過程で3つの攻撃が可能になっています。
一つ目は認証クッキーや機密情報を盗み出すアップロード攻撃。HTTPSリクエストはFTPサーバーにアップロードされ、復号されます。二つ目はstored XSSを実行させられるダウンロード攻撃。ユーザーは悪意のあるスクリプトをダウンロードし、実行させられます。三つ目はreflected XSSを実行させられる反射攻撃です。(詳しくは論文6.1節を参照)
では、こうした攻撃はなぜ可能になるのでしょうか。
一番の問題点はマルチドメイン/ワイルドカード証明書の運用にあります。
HTTPサーバーやFTPサーバーに同一の証明書で接続できると、HTTPSリクエストを攻撃者はFTPサーバーに転送することが可能になります。すると、FTPサーバーはHTTPSリクエストを送られるなんて思ってもみないので、リクエストを単なる文字列として受け取ってしまいます。特に不正なスクリプトを注入されないように万全の対策を行っているHTTPサーバーと違い、FTPは純粋なエラーメッセージを返すことでしょう。こうしたプロトコルサービスによる対応の違いが今回の攻撃の基となっています。
攻撃例
不明
対策
推奨される軽減策として、Application-Layer Protocol Negotiation(ALPN)及びServer Name Indication(SNI)といったTLS拡張を使うことで、クロスプロトコル攻撃への対策をすることができます。
しかしながら、ALPACA攻撃は単にライブラリやコンポーネントの更新で修正できるソフトウェアバグでなく、今後数年にわたって、根気強くTLS対応のアプリケーション・プロトコルに対して意識を高める必要があると研究者らは述べています。
あとがき
2021年7月31日(現地時間)から開催される「USENIX Security Symposium 2021」内「Black Hat USA 2021」でもALPACA attackに関する発表があるそうです。興味のある方はぜひ~
攻撃の仕組み完全には理解できなかった…解釈の間違いありそうなので、疑問点あればビシバシ指摘くださいm(__)m