Unknown groups have started tampering with Web traffic encryption, causing the number of fingerprints for connections using Transport Layer Security to jump from 19,000 to 1.4 billion in less than a year.
Online attackers are trying to obscure their encrypted traffic in an attempt to evade detection, using a technique known as “cipher stunting,” according to Internet infrastructure and security firm Akamai.
Cipher stuffing modifies the fingerprint of communications encrypted with secure sockets layer (SSL) and transport layer security (TLS). Akamai, which fingerprints encrypted traffic as one way to identify attacks on its customers, found that the number of variations of the initial handshake request — known as the Client Hello packet — has recently exploded, from the usual thousands of variants in August 2018 to more than a billion in February. When used legitimately, each unique variant represents a different combination of encryption software, browser, operating system, and configuration of the encryption package. The change is on a “scale never seen before by Akamai,” the company said in an analysis.
While variations could be due to legitimate software behavior or some sort of software defect, the most likely explanation is that attackers are attempting to evade detection or appear as a large number of different systems, says Moshe Zioni, director of threat research at Akamai.
“We were able to deduce with high certainty that it is a Java-based tool that made most of these permutations,” he says. “The existence of such a thing means this was an intentional attempt to hide on the part of the threat actor … in the greater scheme, this is a good evasion technique.”
The surge in variations of the Client Hello packets is the latest iteration of the cat-and-mouse game between attackers and defenders. Because SSL and TLS are so popular — 82% of malicious traffic uses encrypted communications, according to Akamai — many companies use fingerprinting as one of the techniques to classify traffic. Because the content of the communications is encrypted, defenders can only make use of the initial handshake between the client and server, which is in plaintext.
“This is a great illustration of one of the limitations of fingerprinting,” says Shuman Ghosemajumder, chief technology officer of Shape Security, a website security firm. “If you are trying to fingerprint a device in any of many different ways, the first thing that an attacker will do is randomize that characteristic.”
The goal for attackers is to make a single machine, or network of machines, look like hundreds of thousands or millions of users’ devices, he says.
Fingerprinting encrypted communications using characteristics of the initial handshake between client and server is at least a decade old. In 2009, Qualys researcher Ivan Ristic described ways of fingerprinting clients and browsers from their SSL characteristics. In a talk at DerbyCon 2015, Lee Brotherston, at the time a senior security adviser at Leviathan Security Group, described how defenders could use TLS fingerprinting to better detect threats.
“The thing I like about TLS fingerprinting is that people don’t tend to update how their crypto is set up that regularly. Even the big browsers with their regular releases have the same crypto between versions, and when I looked at malware, it never really changed their crypto signatures,” Brotherston said at the time.
Akamai routinely looks at the initial Client Hello packets sent by a client as part of the process of establishing a secure connection between a browser client and a server. The packets allow anyone with access to the network to fingerprint and later identify, a particular client. The fields included in the Client Hello packet are the TLS version, the session ID, cipher-suite options, and extensions and compression methods.
“Observing the way clients behave during the establishment of a TLS connection is beneficial for fingerprinting purposes so we can differentiate between attackers and legitimate users,” Akamai stated in its analysis. “When we conduct fingerprinting, we aim to select components of the negotiation sent by all clients.”
Attackers are trying to pollute the waters. In August 2018, Akamai collected 18,652 distinct fingerprints on its global network, representing a fraction of a percent of all possible fingerprints. Starting in early September 2018, however, attackers started to randomize the characteristics of the cipher packets. By February of this year, the variation had hit 1.4 billion, the company stated.
Much of the randomization occurred on traffic attempting to use login credentials stolen from other sites to take over accounts of Akamai clients.
With the explosion of random fingerprints, defenders will have problems classifying specific malware, but will still be able to detect TLS encryption requests that are behaving badly, Akamai’s Zioni says.
“There is a relatively small and finite set of SSL/TLS stack implementations available today,” he said. “We see a strong correlation between randomization and malicious activity.”