TLSプロトコルのCRIME脆弱性の管理方法
CRIMEは、データ圧縮も使用する HTTPS および SPDY プロトコルを使用する接続上のシークレットウェブクッキーに対するセキュリティ悪用です。 シークレット認証クッキーのコンテンツを回復するために使用されると、攻撃者は認証されたウェブセッション上でセッションハイジャックを実行することができ、さらなる攻撃を開始することができます。
説明
TLS プロトコルの CRIME 脆弱性は、HTTPS 上でデータ圧縮を使用するシステムに影響します。 SSL 圧縮 (例えば Gzip) または SPDY (オプションで圧縮を使用) を使用している場合、システムは CRIME 脆弱性の影響を受ける可能性があります。
GitLabはGzipとSPDYの両方をサポートしており、HTTPSが有効になっているときはGzipを無効にすることでCRIMEの脆弱性を緩和しています。 ファイルのソースはこちらです:
OmnibusインストールではSPDYが有効になっていますが、CRIMEは圧縮(’C’)に依存しており、NGINXのSPDYモジュールのデフォルトの圧縮レベルは0(圧縮なし)です。
ネサス
Nessusスキャナーは、GitLabに以下のような脆弱性が存在する可能性をレポーターしています:
Description
This remote service has one of two configurations that are known to be required for the CRIME attack:
SSL/TLS compression is enabled.
TLS advertises the SPDY protocol earlier than version 4.
...
Output
The following configuration indicates that the remote service may be vulnerable to the CRIME attack:
SPDY support earlier than version 4 is advertised.
上記のレポートから、NessusはTLSがバージョン4より前のSPDYプロトコルをアドバタイズしているかどうかをチェックしているだけで、攻撃を実行したり、圧縮が有効になっているかどうかをチェックしていないことに注意することが重要です。 Nessusスキャナだけでは、SPDYの圧縮が無効になっていて、CRIMEの脆弱性の対象になっていないことを見分けることはできません。
リファレンス
- NGINX “モジュール ngx_http_spdy_module”
- Tenable Network Security, Inc.“Transport Layer Security(TLS) Protocol CRIME の脆弱性”
- ウィキペディア日本語版「犯罪」『フリー百科事典 ウィキペディア日本語版