Researchers at Fidelis have found a covert channel that malware can import and export data through the Transport Layer Security (TLS) protocol. This new channel works from industry standard X.509 certificate protocols, and can sneak under network perimeter protections by seeming to be normative network traffic.
The channel occurs during the certificate exchange in a TLS handshake. It does not require that a TLS session ever be established, only that the handshake that is preliminary is to be the one being negotiated.
The data that is actually exchanged will show up in the extensions to the certificate. Fidelis Security Systems Inc. researchers found that they were able to store 60 kilobytes of data in each TLS X.509 exchange.
A proof-of-concept was published on Monday, February 5, along with a technical explanation.
While the idea of using a covert channel inside a protocol has been examined in the past, Fidelis researcher Jason Reaves published his take on using X.509 certificates in this manner in January.
In his summary, Reaves wanted to:
Demonstrate that we can take some lessons from the other areas of cyber security research, namely exploitation, and look at potential use cases in how malware authors could utilize technologies outside of their intended purposes to not only accomplish their goals but also end up bypassing common security measures in the process.
Reaves seems to have succeeded in that task.
First, he gives code examples of how such data may be placed, as well as exfiltrated. Once he got that working, he tested out the scheme.
The fundamentals of network security are being redefined -- don't get left in the dark by a DDoS attack! Join us in Austin from May 14-16 at the fifth-annual Big Communications Event. There's still time to register and communications service providers get in free!
Reaves then found that only SSL negotiations, which could bypass common security mechanisms that are not looking for abnormal data being passed in x509 certificates, occurred.
The proof-of-concept used the case of a malicious binary -- the credential sniffer was Mimikatz -- being transferred in the clear via this method. What was done was to simulate a threat actor transferring Mimikatz to an already compromised system. It went through just fine.
One way to mitigate the proof-of-concept might be to check for executable files within binaries. Another could be blocking any self-signed certificates at the perimeter boundary.
The good news, if there is any, is that the Fidelis teams say that they have not found this attack being used in the wild. But, with the proof-of-concept now out, we cannot be so confident that some threat actor will not try it soon.
— Larry Loeb has written for many of the last century's major "dead tree" computer magazines, having been, among other things, a consulting