C2-Umgehungstechniken: Verständnis von JA3/S-Randomisierung und Cipher Stunting

Januar 28, 2021
Joshua St. Hilaire
Director of Security Research
C2-Umgehungstechniken: Verständnis von JA3/S-Randomisierung und Cipher Stunting

JA3 erfreut sich in der Sicherheitsgemeinschaft zunehmender Beliebtheit, um bekannte Tools oder malware mit Hilfe einer Signatur zu kennzeichnen, die einfach aus den TLS-Werten (Transport Layer Security) generiert werden kann, die bei der Kommunikation mit einer solchen Verschlüsselung verwendet werden. Obwohl JA3-Signaturen einfach zu verwenden sind und den Anschein erwecken, als könnten Verteidiger bösartige Kommunikationen leicht erkennen, können sie ebenso leicht manipuliert werden, um sich der Erkennung zu entziehen und sich in den normalen TLS/SSL-Verkehr einzumischen.

In diesem Beitrag werden wir damit beginnen, einige der Methoden aufzudecken, die in der freien Wildbahn von Command-and-Control-Servern (C2) und -Agenten eingesetzt werden, um die Entdeckung zu umgehen. Wir werden uns auf die Umgehungstechniken bekannter C2-Frameworks konzentrieren, die mehrere Techniken zur Umgehung der Erkennung einsetzen. Was speziell die JA3-Signaturen betrifft, so haben die Entwickler dieser Tools einige Anstrengungen unternommen, um eine Entdeckung zu vermeiden. Außerdem gibt es eindeutige Beweise dafür, dass dieselben Umgehungstechniken von malware aktiv genutzt werden, um die Erkennung zu umgehen.

Enträtseln von JA3/S: Eine Fibel

Lassen Sie uns zunächst kurz zusammenfassen, was JA3 ist und warum es zur Erkennung von bösartigem Datenverkehr verwendet werden kann. JA3 ist eine Methode zur Erstellung von Fingerabdrücken des TLS-Handshakes, die von John Althouse, Jeff Atkinson und Josh Atkins von Salesforce im Jahr 2017 erstmals veröffentlicht wurde. Internetverkehr, der TLS implementiert, überträgt Werte aneinander, um eine sichere Verbindung herzustellen. Die folgenden Werte werden verwendet, um einen JA3-Hash zu bilden (SSLVersion, Cipher, SSLExtension, EllipticCurve, EllipticCurvePointFormat) und für den JA3S-Hash(SSLVersion,Cipher,SSLExtension). Diese Werte werden vor der Verschlüsselung im Klartext übertragen, so dass Client und Server wissen, welche Art von Verschlüsselungs-Chiffren zur Verfügung stehen. Sie sind die Grundlage für die Bildung eines JA3/S-Hash. Diese Werte können verwendet werden, um bestimmte Arten von bösartigem Datenverkehr zu identifizieren, wenn sie zuverlässig sind. Eine ausführlichere Erklärung finden Sie im Originalbeitrag von SalesForce.

Verständnis von JA3/S Randomisierung und Cipher-Stunting

Wie bereits erwähnt, wird ein Teil der JA3/S-Signatur von der Chiffre abgeleitet. Die Chiffrierliste wird während der Client/Server-Helo-Negotiation übertragen. Ein Beispiel hierfür ist in der nachstehenden Abbildung einer Paketaufnahme zu sehen.

Abbildung 1: Chiffrierliste, die bei der Begrüßung des TLS-Clients übertragen wird

Während dieses Prozesses wählt der Server die höchste verfügbare Chiffre, die von beiden Enden der Verbindung unterstützt wird. Das bedeutet, dass für jede Verbindung zwischen einem endpoint und einem Server die gleiche JA3/S-Signatur zu erwarten wäre und zu einer gleichen JA3/S-Signatur führen würde. Bei Verwendung der JA3/S-Randomisierung wählt der Server jedoch eine zufällige Chiffre aus der Liste der unterstützten Chiffren. Durch die Verwendung einer anderen Chiffre wird der JA3/S-Hash, der von diesen Werten abgeleitet wird, unterschiedlich ausfallen.

Um die Erkennung zu umgehen, müssen die Autoren von malware die verwendeten TLS-Werte manipulieren, die die Grundlage der JA3-Signatur bilden. Auf diese Weise können sie die Erkennung erfolgreich umgehen. Ein einfacher Weg, dies zu tun, ist die zufällige Auswahl einer Cipher-Suite. Diese Technik ist als JA3/S-Randomisierung bekannt.

Ein wachsender Trend: JA3/S in C2-Rahmenwerken

Das Akamai-Forschungsteam hat Erkenntnisse zu diesem Thema geteilt. Zusammengefasst zeigen die Forschungsergebnisse, dass die Zahl der TLS-Fingerabdrücke von 18.652 verschiedenen Fingerabdrücken weltweit im August 2018 auf mehr als 1,3 Milliarden Ende Februar 2019 angestiegen ist. Dies deutet darauf hin, dass nach der Erforschung und dem Interesse der Sicherheits-Community am JA3/S-Fingerprinting die Autoren von malware und die Bot-Controller Techniken zur Umgehung von TLS-Signaturen implementiert haben.

JA3/S Randomization/Cipher-Stunting hat sich laut dem Github-Changelog auch in C2-Frameworks wie Empire ab der Version 3.0 Master Release eingeschlichen. Das Bild unten zeigt den Quellcode von Empire GitHub, der ein Beispiel zeigt, wie JA3 Randomisierung erreicht werden kann.

Abbildung 2: Randomisierung der JA3-Signatur durch zufällige Auswahl aus einer Liste von Chiffren

Der Entdeckung entgehen: Mehr als eine Herangehensweise

Wie bei allen neuen Techniken, die in der Sicherheitsgemeinschaft zur Identifizierung von Bedrohungen eingesetzt werden, haben Angreifer immer schnell ihre Taktik geändert, um die Erkennungsstrategien zu umgehen. Wir haben gesehen, wie Red-Team-Tools die JA3-Randomisierung nutzen, um die Erkennung zu umgehen, aber es gibt auch andere Methoden. Wie das Sprichwort sagt: "Es gibt mehr als einen Weg, eine Katze zu häuten". So kann die JA3-Impersonation beispielsweise durch Nachahmung der TLS-Werte gängiger Browser oder sogar durch Verwendung des zugrunde liegenden HTTPS-Clients des Betriebssystems erfolgen, um die Erkennung zu umgehen.

Schlussfolgerung: Die Herausforderung des Aufspürens

Es wird deutlich, dass sich Angreifer bei allen Techniken, die von Sicherheitsexperten zur Erkennung von "Bösartigkeit" eingesetzt werden können, schnell anpassen werden, um weiterhin unentdeckt zu operieren. Die Identifizierung von C2-Rahmenwerken mit JA3-Signaturen wird schwierig, wenn das Rahmenwerk JA3/S-Randomisierung oder eine andere Technik einsetzt. Die von den Verteidigern eingesetzten Sicherheitstools und -techniken müssen sehr flexibel sein und sich schnell an Veränderungen anpassen können. Ist dies nicht der Fall, wird sich C2 weiterhin der Entdeckung entziehen und unter dem Radar der Cybersicherheitsexperten operieren. JA3-Signaturen sind selbst ohne Manipulation ein unzuverlässiger Indikator für bösartige Aktivitäten, und die in diesem Beitrag beschriebenen Techniken machen sie noch unzuverlässiger, da sie leicht manipuliert werden können.

Vor diesem Hintergrund können JA3-Signaturen als zusätzlicher Indikator für eine Kompromittierung verwendet werden, doch sollte man sich nicht zu sehr auf sie verlassen, da sie wenig zuverlässig sind und leicht manipuliert werden können. Auf Signaturen basierende Erkennungen sind nur so gut, wie den ihnen zugrunde liegenden Daten vertraut werden kann und wie gut sie gepflegt werden. Idealerweise muss für die Erkennung von C2 eine vielschichtige Netzwerkerkennungsstrategie verwendet werden, die flexibel und verallgemeinerbar ist. Natürlich erfordert dieser Ansatz eine viel größere Investition, die sich aber langfristig auszahlen wird.

Besuchen Sie meinen zweiten Blog wo ich eine Methode untersuche, die als formbares C2-Profil bekannt ist.

Häufig gestellte Fragen

Was ist JA3 und wie hilft es bei der Erkennung bösartigen Datenverkehrs?

JA3 ist eine Methode zur Erstellung von Fingerabdrücken des TLS-Handshake, bei der bestimmte, während des Handshake übertragene Werte (SSLVersion, Cipher, SSLExtension, EllipticCurve und EllipticCurvePointFormat) erfasst und gehasht werden. Dieser Hash kann helfen, bekannte bösartige Tools oder malware zu identifizieren, indem er mit einer Datenbank mit bekannten JA3-Signaturen verglichen wird.

Was ist JA3S und wie unterscheidet es sich von JA3?

JA3S ist ähnlich wie JA3, konzentriert sich aber auf die Antwort des Servers während des TLS-Handshakes. Es verwendet Werte wie SSLVersion, Cipher und SSLExtension, um seinen Hash zu erstellen. Sowohl JA3 als auch JA3S werden verwendet, um bösartigen Datenverkehr zu identifizieren, aber JA3S erfasst die Perspektive des Servers.

Warum wird das JA3/S-Fingerprinting als Low-Fidelity-Indikator für bösartige Aktivitäten angesehen?

JA3/S-Fingerprinting gilt als wenig zuverlässig, da die Signaturen leicht manipuliert werden können. Angreifer können TLS-Werte ändern, um sich der Erkennung zu entziehen. Daher ist es unzuverlässig, sich bei der Identifizierung bösartiger Aktivitäten ausschließlich auf JA3/S-Fingerprints zu verlassen.

Welche Einschränkungen gibt es bei der Verwendung von JA3/S-Signaturen zur Erkennung von Bedrohungen?

Zu den wichtigsten Einschränkungen gehört, dass es Angreifern leicht fällt, JA3/S-Werte zu randomisieren oder zu imitieren, so dass es schwierig ist, sich für eine genaue Erkennung allein auf diese Signaturen zu verlassen. JA3/S-Signaturen sollten als ergänzende Indikatoren und nicht als primäre Erkennungsmethoden verwendet werden.

Warum ist es wichtig, dass die Erkennungsinstrumente flexibel und anpassungsfähig sind?

Angreifer entwickeln ihre Techniken ständig weiter, um der Erkennung zu entgehen. Wenn die Erkennungswerkzeuge nicht flexibel und anpassungsfähig sind, werden sie schnell veraltet und unwirksam, so dass bösartige Aktivitäten unbemerkt bleiben.

Wie hilft die JA3-Randomisierung malware der Entdeckung zu entgehen?

Bei der JA3-Randomisierung wird die beim TLS-Handshake verwendete Cipher-Suite geändert. Durch die Auswahl einer zufälligen Chiffre aus der Liste der unterstützten Chiffren ändert sich der JA3-Hash für jede Verbindung, wodurch es für Sicherheitstools schwierig wird, bösartigen Datenverkehr auf der Grundlage einer statischen JA3-Signatur konsequent zu erkennen und zu kennzeichnen.

Welche gängigen Techniken werden von C2-Frameworks verwendet, um die Entdeckung zu umgehen?

Zu den gängigen Techniken gehören JA3/S-Randomisierung, Cipher Stunting (zufällige Auswahl eines Cipher) und JA3-Impersonation (Nachahmung der TLS-Werte gängiger Browser oder Betriebssysteme). Diese Methoden helfen C2-Frameworks, die Entdeckung zu vermeiden, indem sie ihre TLS-Fingerabdrücke verändern.

Wie hat sich die Einführung der JA3/S-Randomisierung in den Rahmenprogrammen malware und C2 entwickelt?

Untersuchungen von Akamai haben gezeigt, dass die Zahl der unterschiedlichen TLS-Fingerabdrücke von August 2018 bis Februar 2019 deutlich zugenommen hat. Dies deutet darauf hin, dass die Autoren von malware schnell JA3/S-Randomisierungstechniken übernommen haben, um Erkennungsmethoden zu umgehen, die auf statischen JA3/S-Signaturen basieren.

Welche Einschränkungen gibt es bei der Verwendung von JA3/S-Signaturen zur Erkennung von Bedrohungen?

Eine facettenreiche Netzwerkerkennungsstrategie, die Verhaltensanalyse, Anomalieerkennung und signaturbasierte Methoden umfasst, kann die Erkennung von C2-Kommunikation verbessern. Dieser Ansatz erfordert flexible und anpassungsfähige Werkzeuge, die auf sich entwickelnde Umgehungstechniken reagieren können.

Welche Rolle spielt eine Bedrohungserkennungs- und Reaktionsplattform in einem Security Operations Center (SOC)?

Eine Plattform zur Erkennung von und Reaktion auf Bedrohungen ist in einem SOC von entscheidender Bedeutung, da sie verschiedene Erkennungsmethoden integriert, Echtzeitanalysen liefert und eine schnelle Reaktion auf Bedrohungen ermöglicht. Solche Plattformen verbessern die Fähigkeit des SOC, fortschrittliche Umgehungstechniken wie JA3/S-Randomisierung zu erkennen und zu entschärfen.