VoidLink: Sezieren eines AI-generierten C2-Implantats

Das ATO-Team von Ontinue hat eine Studie über VoidLink veröffentlicht, die zeigt, wie LLM-generierte Malware die Hürde für hochentwickelte Linux-C2-Implantate mit Cloud-, Container- und Kernel-Level-Stealth senkt.

Rhys Downing

Bedrohungsforscher

5 Min. Lesezeit

VoidLink: Sezieren eines AI-generierten C2-Implantats

Zusammenfassung

VoidLink ist ein Linux-C2-Framework, das Implantat-Binärdateien für den Einsatz in Cloud- und Unternehmensumgebungen erzeugen kann. Diese Analyse konzentriert sich auf das Implantat “die Agentenkomponente”, die für langfristigen Zugriff, Diebstahl von Anmeldeinformationen und Datenexfiltration konzipiert ist. Unsere Analyse ergab deutliche Hinweise darauf, dass das Implantat mit einem LLM-Codierungsagenten erstellt wurde. Strukturierte “Phase X:”-Beschriftungen, ausführliche Debug-Protokollierung und Dokumentationsmuster in der Produktions-Binärdatei deuten auf eine automatische Codegenerierung mit minimaler menschlicher Überprüfung hin.

Nichtsdestotrotz ist VoidLink technisch sehr leistungsfähig. Es erstellt Fingerabdrücke von Cloud-Umgebungen in AWS, GCP, Azure, Alibaba Cloud und Tencent Cloud und sammelt Anmeldeinformationen aus Umgebungsvariablen, Konfigurationsverzeichnissen und Instanz-Metadaten-APIs. Es erkennt Container-Laufzeiten und enthält Plugins für Container-Escape und Kubernetes-Privilegieneskalation. Ein Rootkit auf Kernel-Ebene passt seinen Stealth-Ansatz je nach Kernel-Version des Hosts an.

Die C2-Kommunikation verwendet AES-256-GCM über HTTPS, getarnt als normaler Webverkehr, und folgt Mustern, die mit der Cobalt Strike-Beacon-Architektur übereinstimmen. VoidLink zeigt ein wachsendes Problem auf: LLM-generierte Implantate, die Multi-Cloud-Targeting, Container-Awareness und Stealth auf Kernel-Ebene kombinieren und so die Qualifikationshürde senken, die für die Herstellung funktionaler, schwer zu entdeckender Malware erforderlich ist.

Binäre Übersicht

Feld

Wert

Dateiname

implant.bin

Datei Typ

Linux ELF64 Ausführbare Datei

Architektur

x86-64

Sprache

Zig

SHA1

9cdbc16912dcf188a0f0765ac21777b23b4b2bea

SHA256

05eac3663d47a29da0d32f67e10d161f831138e10958dcd88b9dc97038948f69

Einstiegspunkt

0x0112c490

Entropie

7.24/8.0 (Hoch - gepackt/verschlüsselt)

Kampagne/Familie

VoidLink

VoidLink Architektur Übersicht

VoidLink verwendet eine modulare Architektur, bei der jede Komponente als unabhängiges Plugin innerhalb eines gemeinsamen Registrierungsrahmens arbeitet, so dass das Implantat seine Fähigkeiten je nach Zielumgebung und Einsatzkontext anpassen kann.

Ein Flussdiagramm, das die Initialisierungsphase eines Systems veranschaulicht. Es enthält eine 'VoidLink Implant ELF64 Executable' am Anfang, die zu 'Module Registry Initialization' führt, die mit 'Load Core Modules' verbunden ist und in vier Module verzweigt: task_router', 'stealth_manager', 'injection_manager' und 'debugger_detector'. Der Hintergrund ist dunkelviolett gefärbt.

Die Ausführung löst die Initialisierung der Modulregistrierung aus, woraufhin vier Kernkomponenten geladen werden: der Task-Router für die Befehlsverteilung, der Stealth-Manager für die Umgehung, der Injektionsmanager für die Codeausführung und der Debugger-Detektor für die Anti-Analyse.

Ein Code-Editor, der dekompilierten Code mit hervorgehobenen Abschnitten anzeigt. Der obere Teil zeigt die Initialisierung einer Modulregistrierung, während der untere Teil das Laden der Kernmodule auflistet. Anmerkungen verweisen auf bestimmte Zeilen und geben deren Funktionen an.

Intelligente Umgebungserfassung

VoidLink erstellt ein detailliertes Host-Profil, bevor es operative Fähigkeiten aktiviert, den Ausführungskontext identifiziert und feststellt, welche Stealth- und Exploitation-Mechanismen für die Zielumgebung geeignet sind.

Ein Flussdiagramm zur Veranschaulichung verschiedener Cloud-Dienste, einschließlich Cloud-Infrastruktur, benutzerdefinierte Lösungen und Sicherheits-Hosting, mit Unterkategorien, die unter jeder Hauptüberschrift in einem strukturierten Format aufgeführt sind.

Die Malware sucht nach Cloud-Metadaten-APIs (AWS, GCP, Azure, Alibaba, Tencent), Container-Umgebungen (Docker, Kubernetes) und Sicherheitsstatus (EDR/AV-Erkennung, Kernel-Version). Diese Intelligenz steuert das adaptive Verhalten und wählt Tarnmechanismen auf der Grundlage der entdeckten Daten.

Multi-Cloud Credential Harvesting & Environment Fingerprinting

VoidLink hat es nicht nur auf einen Cloud-Anbieter abgesehen, sondern auf alle. Das Implantat sucht aktiv nach Anmeldeinformationen aus mehreren Quellen und exfiltriert diese:

Cloud-Umgebungsvariablen:

  • Amazon Web Services (AWS) - AWS_ACCESS_KEY, AWS_SECRET_ACCESS_KEY

  • Google Cloud-Plattform (GCP) - GOOGLE_CLOUD_PROJECT, GOOGLE_CLOUD_REGION

Lokale Beglaubigungsstellen:

  • SSH-Schlüssel - /root/.ssh/id_rsa, id_ecdsa, id_ed25519, und known_hosts

  • Git-Anmeldeinformationen - .git-credentials-Dateien

  • Shell-Verlauf - .bash_history, .zsh_history für die Weitergabe von Anmeldeinformationen

  • Browser-Zugangsdaten - gespeicherte Kennwörter und Sitzungsdaten

Kubernetes-Geheimnisse:

  • Dienstkonto-Token aus “/var/run/secrets/kubernetes.io/serviceaccount/”

  • Namespace-Informationen für den Kontext der lateralen Bewegung

Cloud-Fingerprinting:

  • Alibaba Cloud & Tencent Cloud - Metadaten-API-Abfragen zur Umgebungsidentifizierung

Ein Screenshot, der Code in einer Programmierumgebung anzeigt, mit rot hervorgehobenen Abschnitten. Der Code zeigt verschiedene Case-Anweisungen, die sich auf bestimmte Parameter beziehen, darunter Verweise auf Metadaten und Netzwerkadressen.

VoidLink fragt Cloud-Metadaten-APIs unter 169.254.169.254 (AWS, Azure, Alibaba) und anbieterspezifische Endpunkte (metadata.google.internal, metadata[.]tencentyun[.]com) für das Environment Fingerprinting ab. Das Implantat ruft ab:

  • Region und Verfügbarkeitszone

  • Instanz-ID und Instanztyp

  • Identifizierung des Cloud-Anbieters

Diese Erkundung ermöglicht es VoidLink, sein Verhalten an die Zielumgebung anzupassen und für jeden Cloud-Anbieter geeignete Tarnmechanismen und Persistenzmethoden auszuwählen. Insbesondere fragt das Implantat nicht den AWS IAM-Endpunkt “/latest/meta-data/iam/security-credentials/” ab, d. h., es verlässt sich auf Umgebungsvariablen und nicht auf Instanzrollen-Anmeldeinformationen für den AWS-Zugriff.

Container-Flucht & Kubernetes-Ausbeutung

VoidLink führt eine Laufzeiterkennung in Docker-, Podman- und Kubernetes-Container-Umgebungen durch. Wenn eine Container-Grenze identifiziert wird, lädt das Implantat dedizierte Escape-Plugins aus der Modulregistrierung, um zu versuchen, die Privilegiengrenze zu verletzen:

docker_escape_v3 - Ausnutzung von Fehlkonfigurationen des Containers für den Zugriff auf das Hostsystem

k8s_privesc_v3 - Eskaliert Privilegien innerhalb von Kubernetes-Clustern

Codeschnipsel, der einen C2-Opcode-Dispatcher mit Bedingungen für Container-Flucht zeigt. Betont die Verwendung des Escape-Plugins (docker_escape_v3/k8s_privesc_v3) in plugin_load.

Die Malware zielt speziell auf Token für Kubernetes-Dienstkonten ab, die unter /var/run/secrets/kubernetes.io/serviceaccount/ gespeichert sind. Diese Token können einen clusterweiten Zugriff ermöglichen, der laterale Bewegungen über containerisierte Workloads hinweg erlaubt.

Ein Screenshot von Codeschnipseln, die Variablenzuweisungen und Funktionsaufrufe in einem Programmierkontext zeigen, wobei mehrere Zeilen rot hervorgehoben sind. Der Code scheint Kubernetes und Linux-Dateipfade zu beinhalten.

Rootkit-Fähigkeiten auf Kernel-Ebene

Der vielleicht technisch beeindruckendste Aspekt von VoidLink ist seine adaptive Rootkit-Funktionalität. Die Malware setzt je nach erkannter Kernel-Version unterschiedliche Tarnmechanismen ein:

Ein Flussdiagramm zur Veranschaulichung der adaptiven Geschäftsumgebung. Es enthält Verzweigungen für den API-Modus und den UI-Modus, die Aktionen wie das Anzeigen von Daten, das Laden von Layouts und das Ändern von Ausgaben detailliert beschreiben.
  • Kernel ≥ 5.5: eBPF-Modus - Moderne Tarnung mit hide_ss.bpf.o zum Abfangen von Systemaufrufen

  • Kernel 4.x - 5.x: LKM-Modus - Ladbare Kernel-Module (vl_stealth.ko, stealth_netstat.ko)

  • Kernel < 4.0: LD_PRELOAD-Modus - Userland Hooking über Shared Object Injection

Befehls- und Kontrollinfrastruktur

Flussdiagramm zur Veranschaulichung der C2-Kommunikation mit C2-Server, Agent mit Heartbeat- und Task Poll-APIs und Traffic Camouflage mit gefälschten JS-Anfragen, API-Mimikry und Cookie-Sitzungen.

AES-256-GCM-Verschlüsselung für die gesamte C2-Kommunikation

  • HTTP/HTTPS-Protokoll-Tarnung mit rechtmäßig aussehenden API-Endpunkten

  • Verkehrstarnung: Gefälschte JS-Anfragen, API-Nachahmung, Cookie-Sitzungen

Eine Computercodeanzeige, die eine dekompilierte Funktion mit Variablenzuweisungen und Stapeloperationen zeigt. Der Code erscheint in einer Programmier- oder Debugging-Oberfläche, die auf eine technische Entwicklungsumgebung hinweist.

Wir haben eine fest codierte C2-IP-Adresse identifiziert: 8.149.128[.]10

Ein Screenshot des Codes in einem Dekompilierungstool mit hervorgehobenem Text, der eine fest kodierte IP-Adresse '128.128.120.107' und Port '8080' anzeigt. Der Code enthält hexadezimale Werte und Variablenzuweisungen, die Programmierelemente zeigen.

Das Rootkit stellt eine Befehlsschnittstelle zur Verfügung, die es den Anwendern ermöglicht, bestimmte Ports, Prozesse und Dateien während des Betriebs dynamisch vor forensischen Tools zu verbergen, so dass eine selektive Verschleierung statt eines pauschalen Verbergens möglich ist.

AI-gestützte Malware-Entwicklung

Bei der Analyse haben wir eine in die Initialisierungssequenz des Binärprogramms eingebettete Phasenroutine identifiziert, deren Phasen mit bis zu 8 gekennzeichnet sind. Phase 7 fehlt in der Sequenz völlig, und Phase 5 ist zwei verschiedenen Funktionen zugeordnet. In Kombination mit der ausführlichen Debug-Protokollierung und der strukturierten Dokumentation, die in der Produktions-Binärdatei verbleibt, stimmen diese Artefakte mit LLM-generiertem Code überein, der über verschiedene Eingabeaufforderungen ohne erzwungene Kontinuität zwischen den Ausgaben erzeugt wurde.

AI-Pattern-Matching-Ergebnisse

Ein Screenshot einer Codierungsschnittstelle, der die Protokollausgaben im Zusammenhang mit den Modulinitialisierungs- und Bereinigungsprozessen zeigt. Jede Zeile enthält einen Phasenstatus mit entsprechenden Codes und Meldungen, die den Systemstatus angeben.

Ein weiterer Indikator ist die übermäßige Verwendung des Gleichheitszeichens. Der generierte Code fügt manchmal mehrere Gleichheitszeichen für Kommentare ein, wie in der folgenden Abbildung zu sehen ist. Mithilfe eines anderen Skripts zur Mustererkennung habe ich weitere potenzielle Indikatoren im Binärcode identifiziert, die demselben Muster folgen.

AI-Mustervergleichstrennzeichen

Ein Screenshot des dekompilierten Codes mit hervorgehobenen Abschnitten, die Fehler im Zusammenhang mit dem Laden von Plugins und Ausführungsrouten anzeigen. Der Text enthält Code-Anmerkungen und Fehlermeldungen über fehlende Plugin-Daten.

Dies lässt mich vermuten, dass die Entwicklung der erzeugten Implantate kaum überwacht wird.

Professionelle Malware-Entwickler in der Regel:

  • Minimale oder kryptische Protokollierung verwenden

  • Vermeiden Sie strukturierte Dokumentation im Code

  • Vorrang der Tarnung vor der Lesbarkeit

  • Debug-Informationen ausblenden

Bei VoidLink ist das Muster umgekehrt:

  • Ausführliche, beschreibende Phasenbezeichnungen

  • Vollständige Dokumentation der Initialisierungssequenz

  • Debug-Protokollierung in der Produktions-Binärdatei belassen

  • Formale Statusmeldungen (“erfolgreich”, “initialisiert”, etc.)

Schlussfolgerung

VoidLink ist ein voll funktionsfähiges Linux-Implantat, das die wichtigsten Anforderungen für ein nachhaltiges Eindringen in die Cloud erfüllt: Auslesen von Anmeldeinformationen, Container-bewusstes laterales Verschieben, adaptive Stealth auf Kernel-Ebene und verschlüsselte C2-Kommunikation. Es zielt auf fünf große Cloud-Anbieter ab, überwindet Container-Grenzen und verbirgt seine Präsenz vor Standard-Forensik-Tools.

Das Besondere daran ist die Art und Weise, wie es erstellt wurde. Die Kennzeichnungen “Phase X:”, die ausführliche Protokollierung und die strukturierte Dokumentation, die in die Binärdatei eingebettet sind, stehen im Einklang mit LLM-generiertem Code. Professionelle Malware-Entwickler entfernen diese Art von Artefakten. Ihr Vorhandensein in einem Produktionsimplantat deutet darauf hin, dass sich der Autor in hohem Maße auf einen KI-Codierungsagenten mit wenig manueller Bereinigung verlassen hat.

Das ist wichtig, denn VoidLink ist kein Proof of Concept. Es handelt sich um ein einsatzfähiges Implantat mit einer echten C2-Infrastruktur dahinter. Die Hürde für die Herstellung dieser Fähigkeiten ist gesunken. Verteidiger sollten damit rechnen, dass mehr Implantate auf diese Weise gebaut werden, die funktional und modular sind und schneller zusammengebaut werden können, als es die herkömmliche Entwicklung erlaubt.

Indikatoren für Kompromisse

GitHub-Link

Empfohlen für Sie.

Alle Ressourcen

eBook

Threat-Intelligence-Bericht für das 1. Halbjahr 2026

Die Ergebnisse des ersten Halbjahres 2026 zeigen einen zunehmenden Missbrauch vertrauenswürdiger Identitäten, KI-gestützter Tools, SaaS-Plattformen und geschäftlicher Arbeitsabläufe, da Angreifer mit geringerem Aufwand immer größere Schäden anrichten.

20 Min. Lesezeit

Lesen

eBook

Threat-Intelligence-Bericht für das 1. Halbjahr 2026

Die Ergebnisse des ersten Halbjahres 2026 zeigen einen zunehmenden Missbrauch vertrauenswürdiger Identitäten, KI-gestützter Tools, SaaS-Plattformen und geschäftlicher Arbeitsabläufe, da Angreifer mit geringerem Aufwand immer größere Schäden anrichten.

20 Min. Lesezeit

Lesen

eBook

Threat-Intelligence-Bericht für das 1. Halbjahr 2026

Die Ergebnisse des ersten Halbjahres 2026 zeigen einen zunehmenden Missbrauch vertrauenswürdiger Identitäten, KI-gestützter Tools, SaaS-Plattformen und geschäftlicher Arbeitsabläufe, da Angreifer mit geringerem Aufwand immer größere Schäden anrichten.

20 Min. Lesezeit

Lesen

Jenseits der Perimeter-Sicherheit: Was Sicherheitsteams übersehen

Blog

Jenseits der Perimeter-Sicherheit: Was Sicherheitsteams übersehen

Durch einen Datenleck bei einem Drittanbieter offengelegte Anmeldedaten und die Vortäuschung einer Markenidentität sind zwei Methoden, mit denen Angreifer Unternehmen ausnutzen.

5 Min. Lesezeit

Lesen

Jenseits der Perimeter-Sicherheit: Was Sicherheitsteams übersehen

Blog

Jenseits der Perimeter-Sicherheit: Was Sicherheitsteams übersehen

Durch einen Datenleck bei einem Drittanbieter offengelegte Anmeldedaten und die Vortäuschung einer Markenidentität sind zwei Methoden, mit denen Angreifer Unternehmen ausnutzen.

5 Min. Lesezeit

Lesen

Jenseits der Perimeter-Sicherheit: Was Sicherheitsteams übersehen

Blog

Jenseits der Perimeter-Sicherheit: Was Sicherheitsteams übersehen

Durch einen Datenleck bei einem Drittanbieter offengelegte Anmeldedaten und die Vortäuschung einer Markenidentität sind zwei Methoden, mit denen Angreifer Unternehmen ausnutzen.

5 Min. Lesezeit

Lesen

Ontinue bietet einen neuen Dark-Web-Überwachungsdienst für ION-MXDR-Kunden an

Webinar

Ontinue bietet einen neuen Dark-Web-Überwachungsdienst für ION-MXDR-Kunden an

Offengelegte Anmeldedaten und Lookalike-Domains tauchen schon lange vor dem ersten Angriff eines Angreifers auf. Erfahren Sie, wie ION für die Dark-Web-Überwachung diese Erkenntnisse in Ihren MXDR-Betrieb einbindet.

23 Min. Spieldauer

Ansehen

Ontinue bietet einen neuen Dark-Web-Überwachungsdienst für ION-MXDR-Kunden an

Webinar

Ontinue bietet einen neuen Dark-Web-Überwachungsdienst für ION-MXDR-Kunden an

Offengelegte Anmeldedaten und Lookalike-Domains tauchen schon lange vor dem ersten Angriff eines Angreifers auf. Erfahren Sie, wie ION für die Dark-Web-Überwachung diese Erkenntnisse in Ihren MXDR-Betrieb einbindet.

23 Min. Spieldauer

Ansehen

Ontinue bietet einen neuen Dark-Web-Überwachungsdienst für ION-MXDR-Kunden an

Webinar

Ontinue bietet einen neuen Dark-Web-Überwachungsdienst für ION-MXDR-Kunden an

Offengelegte Anmeldedaten und Lookalike-Domains tauchen schon lange vor dem ersten Angriff eines Angreifers auf. Erfahren Sie, wie ION für die Dark-Web-Überwachung diese Erkenntnisse in Ihren MXDR-Betrieb einbindet.

23 Min. Spieldauer

Ansehen

Das ist Nonstop SecOps.

Weiter

Europäische Zentrale

Grubenstrasse 54
8045 Zürich

Nordamerika-Zentrale

450 Maple Street
Redwood City, CA 94063

Büro in Großbritannien

9 Holborn
London, EC1N 2LL

APAC-Büro

World Trade Tower, Sector 16
Noida, Uttar Pradesh 201301

Büro Düsseldorf

Speditionstraße 2
40221 Düsseldorf, Deutschland

Büro Wien

Kohlmarkt 8-10
1010 Wien, Österreich

Büro Toronto

6060-3080 Yonge St
Toronto, ON M4N 3N1

Weiter

© 2026 Ontinue. Alle Rechte vorbehalten.

Ontinue bietet Nonstop-SecOps durch einen KI-gestützten Managed Extended Detection and Response (MXDR)-Service. Ontinue ION MXDR kombiniert leistungsstarke, proprietäre KI mit der branchenweit ersten Microsoft Teams-Integration, um kontinuierlich ein tiefes Verständnis der Kundenumgebungen aufzubauen. So wird gesteuert, wie wir Bedrohungen verhindern, erkennen und darauf reagieren.

Kontinuierlicher Schutz. KI-gestützte Nonstop-SecOps. Das ist Ontinue.

Das ist Nonstop SecOps.

Weiter

Europäische Zentrale

Grubenstrasse 54
8045 Zürich

Nordamerika-Zentrale

450 Maple Street
Redwood City, CA 94063

Büro in Großbritannien

9 Holborn
London, EC1N 2LL

APAC-Büro

World Trade Tower, Sector 16
Noida, Uttar Pradesh 201301

Büro Düsseldorf

Speditionstraße 2
40221 Düsseldorf, Deutschland

Büro Wien

Kohlmarkt 8-10
1010 Wien, Österreich

Büro Toronto

6060-3080 Yonge St
Toronto, ON M4N 3N1

Weiter

© 2026 Ontinue. Alle Rechte vorbehalten.

Ontinue bietet Nonstop-SecOps durch einen KI-gestützten Managed Extended Detection and Response (MXDR)-Service. Ontinue ION MXDR kombiniert leistungsstarke, proprietäre KI mit der branchenweit ersten Microsoft Teams-Integration, um kontinuierlich ein tiefes Verständnis der Kundenumgebungen aufzubauen. So wird gesteuert, wie wir Bedrohungen verhindern, erkennen und darauf reagieren.

Kontinuierlicher Schutz. KI-gestützte Nonstop-SecOps. Das ist Ontinue.

Das ist Nonstop SecOps.

Weiter

Europäische Zentrale

Grubenstrasse 54
8045 Zürich

Nordamerika-Zentrale

450 Maple Street
Redwood City, CA 94063

Büro in Großbritannien

9 Holborn
London, EC1N 2LL

APAC-Büro

World Trade Tower, Sector 16
Noida, Uttar Pradesh 201301

Büro Düsseldorf

Speditionstraße 2
40221 Düsseldorf, Deutschland

Büro Wien

Kohlmarkt 8-10
1010 Wien, Österreich

Büro Toronto

6060-3080 Yonge St
Toronto, ON M4N 3N1

Weiter

© 2026 Ontinue. Alle Rechte vorbehalten.

Ontinue bietet Nonstop-SecOps durch einen KI-gestützten Managed Extended Detection and Response (MXDR)-Service. Ontinue ION MXDR kombiniert leistungsstarke, proprietäre KI mit der branchenweit ersten Microsoft Teams-Integration, um kontinuierlich ein tiefes Verständnis der Kundenumgebungen aufzubauen. So wird gesteuert, wie wir Bedrohungen verhindern, erkennen und darauf reagieren.

Kontinuierlicher Schutz. KI-gestützte Nonstop-SecOps. Das ist Ontinue.

Das ist Nonstop SecOps.

Weiter

Europäische Zentrale

Grubenstrasse 54
8045 Zürich

Nordamerika-Zentrale

450 Maple Street
Redwood City, CA 94063

Büro in Großbritannien

9 Holborn
London, EC1N 2LL

APAC-Büro

World Trade Tower, Sector 16
Noida, Uttar Pradesh 201301

Büro Düsseldorf

Speditionstraße 2
40221 Düsseldorf, Deutschland

Büro Wien

Kohlmarkt 8-10
1010 Wien, Österreich

Büro Toronto

6060-3080 Yonge St
Toronto, ON M4N 3N1

Weiter

© 2026 Ontinue. Alle Rechte vorbehalten.

Ontinue bietet Nonstop-SecOps durch einen KI-gestützten Managed Extended Detection and Response (MXDR)-Service. Ontinue ION MXDR kombiniert leistungsstarke, proprietäre KI mit der branchenweit ersten Microsoft Teams-Integration, um kontinuierlich ein tiefes Verständnis der Kundenumgebungen aufzubauen. So wird gesteuert, wie wir Bedrohungen verhindern, erkennen und darauf reagieren.

Kontinuierlicher Schutz. KI-gestützte Nonstop-SecOps. Das ist Ontinue.