CVE-2014-3566: Removing SSLv3 from BIG-IP
The POODLE (CVE-214-03566) vulnerability can force a client to negotiate SSLv3 instead of TLSv1.x ciphers. Then a BEAST-like attack can be conducted against SSLv3 to obtain information from the encrypted stream. This isn't necessarily a new attack, and there has been some speculation about how feasible attacks like BEAST are in the real world, but POODLE makes BEAST much easier.
F5 has analyzed the situation and recommends customers disable SSLv3 when possible.
This article will give you the information you need to disable SSLv3. Please also consult the official F5 SOL 15702.
Background
SOL8802 provides a starting point for information about TLS on a BIG-IP. It has many links to help you change your cipher specifications for the different versions of BIG-IP. I’ll be making references to many of the linked SOLutions in this article.
Second, please read my article from last year about cipher selection.
If you disable SSLv3 ciphers, you may be locking out some legacy clients. Wikipedia has a great table for SSL/TLS browser support. Always test to make sure that you haven’t blocked legitimate clients. If you know of legacy SSLv3 clients, you may want to upgrade them as soon as possible.
On a BIG-IP, SSL/TLS is used in multiple ways, including for the data plane and to the management GUI This posting will cover both of these vectors. Finally, we’ll talk about outbound connections from a BIG-IP, including monitors.
Data plane
In 11.5.0, F5 made the decision to be secure by default and disable SSLv3 ciphers by default for the traffic path. This is documented in SOL15022.
If you are running 11.5.0 or later, your default clientssl and serverssl profiles do not contain SSLv3 ciphers and SSLv3 cannot be negotiated. If your SSL profile derives from these profiles, your application is not vulnerable.
On all versions, you can disable SSLv3 ciphers by adding the string “!SSLv3” to your clienssl or serverssl profile.
The procedure to change your ciphers is well described in SOL 13171.
Please note that by default all clientssl and serverssl profiles inherit from the base profiles. If you have changed your ciphers in any of your SSL profiles, you will have to add “!SSLv3” to those profiles' cipher lists also.
Management plane
BIG-IP has a management GUI that is contacted over SSL. By default, SSLv3 ciphers are enabled on all releases.
This is configurable and covered in SOL 13405. To remove SSLv3 from 11.5.x and 11.6.x, you can disable SSLv3 via the command console like this:
[root@bigip1:Active:Standalone] templates # tmsh list /sys httpd sys httpd { ssl-protocol "all -SSLv2" } [root@bigip1:Active:Standalone] templates # tmsh modify /sys httpd ssl-protocol "all -SSLv2 -SSLv3"
We are still working on a comprehensive solution for versions prior to 11.5.x.
Outbound connections
Many outbound connections are made by BIG-IP, including monitors. These may use SSLv3, but are not full fledged browsers and make single connections rather than the multiple transactions required for the attack. We believe these connections are not vulnerable.
Testing for SSLv3 connections
You can test for SSLv3 is enabled with a simple command line from a machine with OpenSSL installed.
# openssl s_client -connect target:443 -ssl3
If the command makes you enter more information, then you just made an SSLv3 connection. If the command returns you to a prompt right away, then SSLv3 is disabled on that target host.
Conclusion
F5 has not seen this attack in the wild. The security community has known about BEAST and similar attacks for some time. F5 took the first step to removing SSLv3 in 11.5.0. We will continue to make “secure by default” choices for future versions.
- Drew_NorthupNimbostratusCiphers are not protocols. Disabling a "SSLv3" cipher is not the same as disabling the SSLv3 protocol. @Jason Rahm has the right idea, disable the whole SSLv3 protocol using the "No SSLv3" option in your base "clientssl" profile. That way it (should) automatically apply to everything the F5 provides offload for, no extra work needed.
- JCMATTOS_41723NimbostratusIs there a way to view all the F5 services or connections using SSLv3 to do an inventory count?
- Walter_KacynskiCirrostratusWhat is the timeline to support TLS_FALLBACK_SCSV?
- jba3126CirrusAny recommendations for version 10.x for the management GUI?
- jba3126Cirrus@JCMATTOS to view your protocol connection counts globally run: Below pulls out the SSL/TLS/DTLS metrics tmsh show ltm profile client-ssl global | egrep "Version|TLS" Below pulls out the Profile and SSL/TLS/DTLS metrics: tmsh show ltm profile client-ssl all | egrep "Ltm|Version|TLS" Also to reset Client SSL metrics and gather in real time run: tmsh reset-stats ltm profile client-ssl The re-run the above commands
- Mike_Sullivan_2NimbostratusHow can I analyze the connections made? It would be useful if I could get metrics on just how many SSLv3 connections are negotiated before decided on how I should mitigate it. Is there a way to report on such connections?
- Mike_Sullivan_2NimbostratusSorry, I missed Jeff Allen's post on metrics below. That will do it for showing version activity.
- Wand_97484NimbostratusIf you are scared you could redirect Clients connected via SSLv3 to a error page: when HTTP_REQUEST { if { [SSL::cipher version] eq "SSLv3" } { HTTP::respond 302 Location "http://errorURL" noserver } }
- Neha_51838Historic F5 AccountSSL profiles have the options list, where "No SSLv3" can be selected to disable SSLv3. Similarly, "No TLSv1" can also be selected to disable TLSv1.0 (for the question asked by jddimas).
- Neha_51838Historic F5 AccountSSL profiles have the options list, where "No SSLv3" can be selected to disable SSLv3 on all traffic using that profile. Similarly, the option "No TLSv1" can be selected to disable all TLS1.0 traffic, if so desired (as asked by jddimas above).