| タイトル | HTTPS レスポンスから暗号化されたデータの一部を推測可能な脆弱性 (BREACH) |
|---|---|
| 概要 | 圧縮された HTTPS レスポンスの長さを観測することで、攻撃者は HTTPS ストリームの暗号文から、ウェブサイトの認証鍵など (secret) を推測することが可能です。 Salesforce.com の Angelo Prado 氏は、下記の通り報告しています。 Extending the CRIME vulnerability presented at Ekoparty 2012, an attacker can target HTTPS responses to recover data from the response body. While the CRIME attack is currently believed to be mitigated by disabling TLS/SSL/level compression, compressed HTTP responses represent a significant unmitigated vector which is currently exploitable. By injecting plaintext into an HTTPS request, an attacker can learn information about the corresponding HTTPS response by measuring its size. This relies on the attacker being able to observe the size of the cipher text received by the browser while triggering a number of strategically crafted requests to a target site. To recover a particular secret in an HTTPS response body, the attacker guesses character by character, sending a pair of requests for each guess. The correct guess will result in a smaller HTTPS response. For each guess the attacker coerces the victim's browser to issue two requests. The first request includes a payload of the form: "target_secret_name=<already known part of secret>+<guess>+<padding>" ...while the second request includes a payload of the form: "target_secret_name=<already known part of secret>+<padding>+<guess>". If the size of the first response is smaller than the second response, this indicates that the guess has a good chance of being correct. This method of sending two similar requests and comparing them is due to Duong and Rizzo. If multiple candidates are found, the following is a useful recovery mechanism: move forward in parallel with both candidates until it becomes clear which guess is correct. With a token of length 32 and a character space of size 16 (e.g. hex), the attacker needs an average of approximately 1,000 request if no recovery mechanisms are needed. In practice, we have been able to recover CSRF tokens with fewer than 4,000 requests. A browser like Google Chrome or Internet Explorer is able to issue this number of requests in under 30 seconds, including callbacks to the attacker command & control center. [In order to conduct the attack, the following conditions must be true]: 1. HTTPS-enabled endpoint (ideally with stream ciphers like RC4, although the attack can be made to work with adaptive padding for block ciphers). 2. The attacker must be able to measure the size of HTTPS responses. 3. Use of HTTP-level compression (e.g. gzip). 4. A request parameter that is reflected in the response body. 5. A static secret in the body (e.g. CSRF token, sessionId, VIEWSTATE, PII, etc.) that can be bootstrapped (either first/last two characters are predictable and/or the secret is padded with something like KnownSecretVariableName="". 6. An otherwise static or relatively static response. Dynamic pages do not defeat the attack, but make it much more expensive. |
| 想定される影響 | 遠隔の第三者によって、暗号化されている HTTPS レスポンスから、ウェブサイトの認証に用いられる鍵や CSRF トークンなどの情報 (secret) を取得される可能性があります。 |
| 対策 | 研究者らが公表した論文のセクション 3. Mitigation には以下のような対策方法が提案されています。 1. HTTP 圧縮を使用しない 2. ユーザの入力と secret を分離する 3. リクエストごとに異なる secret を使用する 4. secret をマスクする 5. より積極的な CSRF 対策を行う 6. レスポンスごとに任意のバイト数のデータを追加し、レスポンスのサイズの推測を困難にする 詳しくは、研究者が公開している論文をご参照下さい。 BREACH: REVIVING THE CRIME ATTACK http://breachattack.com/resources/BREACH%20-%20SSL,%20gone%20in%2030%20seconds.pdf |
| 公表日 | 2013年8月2日0:00 |
| 登録日 | 2013年8月8日14:54 |
| 最終更新日 | 2013年8月8日14:54 |
| CVSS2.0 : 注意 | |
| スコア | 2.6 |
|---|---|
| ベクター | AV:N/AC:H/Au:N/C:P/I:N/A:N |
| (複数のベンダ) |
| (複数の製品) |
| No | 変更内容 | 変更日 |
|---|---|---|
| 0 | [2013年08月08日] 掲載 |
2018年2月17日10:37 |
| 概要 | The HTTPS protocol, as used in unspecified web applications, can encrypt compressed data without properly obfuscating the length of the unencrypted data, which makes it easier for man-in-the-middle attackers to obtain plaintext secret values by observing length differences during a series of guesses in which a string in an HTTP request URL potentially matches an unknown string in an HTTP response body, aka a "BREACH" attack, a different issue than CVE-2012-4929. |
|---|---|
| 公表日 | 2020年2月22日3:15 |
| 登録日 | 2021年1月26日15:41 |
| 最終更新日 | 2024年11月21日10:53 |
| 構成1 | 以上 | 以下 | より上 | 未満 | |
| cpe:2.3:a:f5:big-ip_access_policy_manager:13.0.0:*:*:*:*:*:*:* | |||||
| cpe:2.3:a:f5:big-ip_access_policy_manager:*:*:*:*:*:*:*:* | 12.0.0 | 12.1.2 | |||
| cpe:2.3:a:f5:big-ip_access_policy_manager:*:*:*:*:*:*:*:* | 10.1.0 | 10.2.4 | |||
| cpe:2.3:a:f5:big-ip_access_policy_manager:*:*:*:*:*:*:*:* | 11.0.0 | 11.6.1 | |||
| 構成2 | 以上 | 以下 | より上 | 未満 | |
| cpe:2.3:a:f5:big-ip_advanced_firewall_manager:13.0.0:*:*:*:*:*:*:* | |||||
| cpe:2.3:a:f5:big-ip_advanced_firewall_manager:*:*:*:*:*:*:*:* | 12.0.0 | 12.1.2 | |||
| cpe:2.3:a:f5:big-ip_advanced_firewall_manager:*:*:*:*:*:*:*:* | 11.3.0 | 11.6.1 | |||
| 構成3 | 以上 | 以下 | より上 | 未満 | |
| cpe:2.3:a:f5:big-ip_analytics:13.0.0:*:*:*:*:*:*:* | |||||
| cpe:2.3:a:f5:big-ip_analytics:*:*:*:*:*:*:*:* | 12.0.0 | 12.1.2 | |||
| cpe:2.3:a:f5:big-ip_analytics:*:*:*:*:*:*:*:* | 11.0.0 | 11.6.1 | |||
| 構成4 | 以上 | 以下 | より上 | 未満 | |
| cpe:2.3:a:f5:big-ip_application_acceleration_manager:13.0.0:*:*:*:*:*:*:* | |||||
| cpe:2.3:a:f5:big-ip_application_acceleration_manager:*:*:*:*:*:*:*:* | 12.0.0 | 12.1.2 | |||
| cpe:2.3:a:f5:big-ip_application_acceleration_manager:*:*:*:*:*:*:*:* | 11.4.0 | 11.6.1 | |||
| 構成5 | 以上 | 以下 | より上 | 未満 | |
| cpe:2.3:a:f5:big-ip_application_security_manager:13.0.0:*:*:*:*:*:*:* | |||||
| cpe:2.3:a:f5:big-ip_application_security_manager:*:*:*:*:*:*:*:* | 12.0.0 | 12.1.2 | |||
| cpe:2.3:a:f5:big-ip_application_security_manager:*:*:*:*:*:*:*:* | 11.0.0 | 11.6.1 | |||
| cpe:2.3:a:f5:big-ip_application_security_manager:*:*:*:*:*:*:*:* | 10.0.0 | 10.2.4 | |||
| cpe:2.3:a:f5:big-ip_application_security_manager:*:*:*:*:*:*:*:* | 9.2.0 | 9.4.8 | |||
| 構成6 | 以上 | 以下 | より上 | 未満 | |
| cpe:2.3:a:f5:big-ip_edge_gateway:*:*:*:*:*:*:*:* | 10.1.0 | 10.2.4 | |||
| cpe:2.3:a:f5:big-ip_edge_gateway:*:*:*:*:*:*:*:* | 11.0.0 | 11.3.0 | |||
| 構成7 | 以上 | 以下 | より上 | 未満 | |
| cpe:2.3:a:f5:big-ip_link_controller:13.0.0:*:*:*:*:*:*:* | |||||
| cpe:2.3:a:f5:big-ip_link_controller:*:*:*:*:*:*:*:* | 12.0.0 | 12.1.2 | |||
| cpe:2.3:a:f5:big-ip_link_controller:*:*:*:*:*:*:*:* | 10.0.0 | 10.2.4 | |||
| cpe:2.3:a:f5:big-ip_link_controller:*:*:*:*:*:*:*:* | 11.0.0 | 11.6.1 | |||
| cpe:2.3:a:f5:big-ip_link_controller:*:*:*:*:*:*:*:* | 9.2.2 | 9.4.8 | |||
| 構成8 | 以上 | 以下 | より上 | 未満 | |
| cpe:2.3:a:f5:big-ip_local_traffic_manager:13.0.0:*:*:*:*:*:*:* | |||||
| cpe:2.3:a:f5:big-ip_local_traffic_manager:*:*:*:*:*:*:*:* | 12.0.0 | 12.1.2 | |||
| cpe:2.3:a:f5:big-ip_local_traffic_manager:*:*:*:*:*:*:*:* | 10.0.0 | 10.2.4 | |||
| cpe:2.3:a:f5:big-ip_local_traffic_manager:*:*:*:*:*:*:*:* | 11.0.0 | 11.6.1 | |||
| cpe:2.3:a:f5:big-ip_local_traffic_manager:*:*:*:*:*:*:*:* | 9.0.0 | 9.6.1 | |||
| 構成9 | 以上 | 以下 | より上 | 未満 | |
| cpe:2.3:a:f5:big-ip_policy_enforcement_manager:13.0.0:*:*:*:*:*:*:* | |||||
| cpe:2.3:a:f5:big-ip_policy_enforcement_manager:*:*:*:*:*:*:*:* | 12.0.0 | 12.1.2 | |||
| cpe:2.3:a:f5:big-ip_policy_enforcement_manager:*:*:*:*:*:*:*:* | 11.3.0 | 11.6.1 | |||
| 構成10 | 以上 | 以下 | より上 | 未満 | |
| cpe:2.3:a:f5:big-ip_protocol_security_module:*:*:*:*:*:*:*:* | 10.0.0 | 10.2.4 | |||
| cpe:2.3:a:f5:big-ip_protocol_security_module:*:*:*:*:*:*:*:* | 11.0.0 | 11.4.1 | |||
| cpe:2.3:a:f5:big-ip_protocol_security_module:*:*:*:*:*:*:*:* | 9.4.5 | 9.4.8 | |||
| 構成11 | 以上 | 以下 | より上 | 未満 | |
| cpe:2.3:a:f5:big-ip_wan_optimization_manager:*:*:*:*:*:*:*:* | 11.0.0 | 11.3.0 | |||
| cpe:2.3:a:f5:big-ip_wan_optimization_manager:*:*:*:*:*:*:*:* | 10.0.0 | 10.2.4 | |||
| 構成12 | 以上 | 以下 | より上 | 未満 | |
| cpe:2.3:a:f5:big-ip_webaccelerator:*:*:*:*:*:*:*:* | 11.0.0 | 11.3.0 | |||
| cpe:2.3:a:f5:big-ip_webaccelerator:*:*:*:*:*:*:*:* | 10.0.0 | 10.2.4 | |||
| cpe:2.3:a:f5:big-ip_webaccelerator:*:*:*:*:*:*:*:* | 9.4.0 | 9.4.8 | |||
| 構成13 | 以上 | 以下 | より上 | 未満 | |
| cpe:2.3:a:f5:firepass:7.0.0:*:*:*:*:*:*:* | |||||
| cpe:2.3:a:f5:firepass:*:*:*:*:*:*:*:* | 6.0.0 | 6.1.0 | |||
| 構成14 | 以上 | 以下 | より上 | 未満 | |
| cpe:2.3:a:f5:arx:*:*:*:*:*:*:*:* | 5.0.0 | 5.3.1 | |||
| cpe:2.3:a:f5:arx:*:*:*:*:*:*:*:* | 6.0.0 | 6.4.0 | |||