Dienstag, 12. Mai 2015

How to attack XML Encryption in IBM Datapower (and ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r Web Services) with WS-Attacker


WS-Attacker is a penetration testing tool, whose aim is to test Web Service specific attacks. It provides attacks, which are far beyond typical Web attacks like SQL injection and XSS. For example, in last blog post, WS-Attacker and its XML Signature wrapping attacks were introduced: http://web-in-security.blogspot.de/2015/04/introduction-to-ws-attacker-xml.html

Today, we released a new version of our WS-Attacker framework: https://github.com/RUB-NDS/WS-Attacker

The new version includes some additional features and bug fixes. For example, WS-Attacker now allows you to define an HTTP/HTTPS proxy for forwarding cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 generated XML attack messages. This gives you cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 opportunity to send all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 WS-Attacker messages through BurpSuite or OWASP ZAP, and analyze cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir content or resend cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Web Service.

However, most importantly, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 newest WS-Attacker version includes a plugin for automatic XML Encryption attacks. The plugin was implemented by our student Dennis Kupser.

In this blog post, I am going to show you how to use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 plugin to attack an IBM Datapower Web Service and decrypt an encrypted content. Please note that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se attacks are also applicable to ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r services as well.



XML Encryption Attacks

XML Encryption is a W3C standard used for encryption of XML documents. It is typically used in Web Services applications or for encryption of SAML tokens in Single Sign-On scenarios.

XML Encryption defines (among ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rs) two cryptographic algorithms: RSA PKCS#1 v1.5 and AES/3DES in CBC (Cipher Block Chaining) mode of operation. These two algorithms are vulnerable to so called adaptive chosen ciphertext attacks, which has been shown in many practical examples. Thus, it is not surprising that XML Encryption applications were found to be vulnerable to those attacks:
All you need to know for now is that both attacks belong to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 family of adaptive chosen ciphertext attacks.
The attacker, who eavesdrops an encrypted message, uses cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 message receiver as an oracle. He sends to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 oracle modified ciphertexts and observes its response (it can contain a general error, a parsing failure, or just a valid response text). Based on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 responses, he learns cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 plaintext.

Attacking XML Encryption in Web Services

In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following, it will be shown how to attack symmetric AES-CBC ciphertexts in Web Services using XML Encryption. For cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 testing purposes, I configured an IBM Datapower Web Service, which simply decrypts a ciphertext and responds with a test message in a case cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 decryption was valid.

To execute cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attacks, first we start WS-Attacker and load cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 WSDL file (WSDL message format is used to describe Web Services interfaces and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir methods). As can be seen, WS-Attacker successfully loads cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Web Services methods offered by our IBM Datapower server.

Afterwards, we can send a test request (our eavesdropped encrypted XML message) to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Web Service. The test request initializes WS-Attacker and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 contained plugins: WS-Attacker automatically analyzes whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 message contains encrypted content and whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r it is possible to execute an attack on XML Encryption.
 
 After initializing WS-Attacker with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 test request, we can move to Plugin configuration. We choose XML Encryption attack, which contains cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following, at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first sight complicated configuration.


Here are cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 relevant parts and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir description:
  • Elements: list of EncryptedKey elements contained in this message. This message contains only one EncryptedKey element, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are more complicated scenarios, where messages include more ciphertexts. This option allows us cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n to choose, which of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 encrypted elements is going to be attacked.
  • Attack: we can choose between CBC and PKCS#1 attack. Now, we work with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 CBC attacks.
  • Wrapping attack: If cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 message contains an XML Signature to protect message aucá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365nticity, we can automatically adapt Wrapping attacks to overcome cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 aucá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365nticity check (see previous blog post). In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 tested message, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is no XML Signature so I use NO_WRAP.
  • String Compare: In order to apply oracle attacks, we have to map real server responses to "oracle" responses. Real responses can however contain timestamps and message ids, which can make cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 mapping complicated. String comparison methods allow us to define thresholds for message similarities. This makes mapping much easier. I typically use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 default Dice-coefficient method with a threshold 0.9.
After setting cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 above options, we have to just select cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attack payload (cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 CBC ciphertext) using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 check box located on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 right side. 

Now, we are ready to configure cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 oracle in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Server Error Table configuration. Here, we click on "New Messages", which sends a few hundreds of messages to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 server. Afterwards, we have to provide a mapping from real messages to oracle results. Since we set cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Dice-coefficient with a 0.9 threshold, we received only two messages. In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 next figure, you can see we configured cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 server response with an EncryptedData element to be an INVALID oracle response. This is because IBM Datapower with our configuration is not able to decrypt cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 request and just mirrors cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 request.


 Ok, so we finally configured WS-Attacker and we can start cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attack. After few minutes and about 4900 magical server queries, we can see that we could successfully decrypt 221 message bytes (including cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 comments and namespaces).

If you use Burp Suite, you can of course follow cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 whole communication and, if needed, resend some requests:


 Conclusion

In this post I presented how our new WS-Attacker plugin works and how to attack Web Services and decrypt XML Encryption contents. You probably ask whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r it is always so easy to attack XML Encryption and what are cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 countermeasures: no, it is not that easy...

It is a good practice to use XML Encryption togecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r with XML Signatures. XML Signature must be used over cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 encrypted data, so it is not possible to execute modifications of those data. Most of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Web Services use such a configuration, and IBM Datapower of course allows you to configure such a protection (I just used an insecure configuration to present cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 WS-Attacker functionality).
However, it is possible to execute certain XML Signature Wrapping attacks or XML Encryption Wrapping attacks to enforce an unsigned content to be decrypted. This allows again for attacks on XML Encryption.

In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 next blog post (if I am not too lazy to write it :) ), I will present how to attack an IBM Datapower Web Service, which enforces usage of XML Signature and XML Encryption...

The XML Encryption Plugin has already been used to analyze several XML frameworks. One publicly available result can be seen here: http://coheigea.blogspot.co.at/2015/02/two-new-security-advisories-released.html

If you are interested in more details, please feel free to take a look at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attack implementation or read our papers.

Beliebte Posts