Penetration Tester at TAD Group
Cryptographer and security enthusiast, Ivan Petrov has been part of the IT community for 6 years. His interests are mainly associated with cryptography and its implementation in web applications and malware analysis. For the past two years he has been working as a penetration tester for TAD GROUP.
Timing attacks against web applications: Are they still practical?
Web applications tend to store a great deal of information nowadays. Some of that information can often be considered private and only 4% of breaches were “secure breaches” where encryption was used and the stolen data was rendered useless. Most cybersecurity solutions on the market cover the majority of the vulnerabilities exploited in the wild but do they also take into consideration old fashioned attacks? As such, timing attacks are no longer considered a threat due to the fact that their main application is in the field of cryptography and not in web applications. Unlike web applications which are accessed online via the internet, cryptography can be implemented locally and tested offline where there is a lot less noise.
In 2003, it was demonstrated that a practical network-based timing attack on SSL-enabled web servers successfully recovered a server private key in a matter of hours. It’s been 15 years since that happened and ever since very few timing attacks have been proven practical against web applications. What’s more constant-time algorithm are being implemented widely by default and this reduces the likelihood even more. However, just how many vendors are using such nowadays? The presentation is going to cover a variety of methods (mainly statistical) that when combined can improve the chances of a successful practical timing attack against a modern web application.
Performance plays a prominent role in the process of development which often negates the usage of constant-time algorithms due to performance issues. Developers tend to rely on network noise and other factors to prevent the possibility of a timing attack. Is it worth bothering about timing attacks in 2018 and in the future? Maybe.
We will look into several web solutions that can be proven susceptible to such attacks, the resource required to execute an attack, likelihood of arousing suspicion and more.
Some of the questions we will be answering in the course of the presentation include:
– What does “practical” mean in relation to web application in specific?
– What could be the consequences of a successful attack?
– Who are subjects to an attack?
– What is an acceptable solution and how can it be adjusted to fit both the need for performance and security?
We will also demonstrate a real-time attack against a remotely hosted application that runs a well-known and widely used CMS. Our example represents an efficient method that improves the likelihood of exploiting a non-constant-time function in a PHP-based product.