Hackerfallen. Erkennen Sie Hacking frühzeitig mit Canarytokens

Honey Tokens (englisch - „Honigzeichen / -zeichen / -identifikatoren“) ist eine der Varianten der Honeypot-Idee, ein Köder für Eindringlinge, um die Tatsache eines Hacks zu erkennen oder seine Quelle zu identifizieren. Wenn der Angreifer das System bereits betreten hat, führt er wahrscheinlich Aktionen aus, die für den normalen Benutzer ungewöhnlich sind. Dies kann verwendet werden, um Hacking zu erkennen. In diesem Artikel werden wir untersuchen, wie einfach es ist, eigene Trigger zu erstellen, um Hacking frühzeitig zu erkennen. Solche Traps sind nützlich für Systemadministratoren und sogar für normale Benutzer, die sich Sorgen um den Datenschutz ihrer Daten machen.


Vor der Erfindung der Gasanalysatoren nahmen Bergleute einen Kanarienvogel mit in die Mine. Aufgrund des kleinen Körpers und des schnellen Stoffwechsels reagierten Vögel viel früher auf gefährliche Gase in der Luft und warnten Bergleute.

Warum wird das benötigt?



Sobald der Cracker im neuen System ist, beginnt er sich umzusehen, als ein Dieb, der in die Wohnung eingedrungen ist, alle Kisten auf der Suche nach Schmuck öffnet. Der Angreifer weiß nicht im Voraus, welche Daten von Wert sind, prüft jedoch mit hoher Wahrscheinlichkeit alle möglichen Optionen. Daher ist es wichtig, dass die Fallen wie echte Daten aussehen und für den Angreifer so attraktiv wie möglich sind. Je früher der Besitzer bemerkt, dass die Falle ausgelöst wird, desto eher wird er erkennen, dass er gehackt wurde und in der Lage sein wird zu reagieren.

Canarytokens Service


canarytokens.org ist ein Onlinedienst zum bequemen Erstellen eigener Marker (Hanitokens) zur Hackerkennung. Es unterstützt mehrere Triggeroptionen und ermöglicht es Ihnen, einen vorgefertigten Trigger mit angehängter E-Mail zu generieren, bei dem eine Benachrichtigung gesendet wird, wenn der Trigger funktioniert hat.

Der Service ist völlig kostenlos und ein Trigger kann sofort ohne Registrierung generiert werden. Es gibt auch eine selbst gehostete Version für diejenigen, die es vorziehen, Geheimnisse in ihrer Infrastruktur zu bewahren. Als nächstes werden wir uns ansehen, wie jeder der Trigger funktioniert, und am Ende werden wir unseren eigenen Canarytokens-Server im Docker-Container bereitstellen.

Auslöser beim Öffnen einer DOC- und PDF-Datei



Es funktioniert, wenn das Dokument vom Programm zum Anzeigen geöffnet wurde. Ich benutze diesen Trick sehr oft. Auf jedem Computer und Flash-Laufwerk befinden sich Dokumente mit attraktiven Namen wie Passwords.pdf oder Bitcoins.doc. Ich liebe es zu beobachten, wie Buchhalter mit Neugier alle Dateien auf dem Flash-Laufwerk untersuchen, die auf sie übertragen wurden.
 
Ich halte diesen Auslöser für den effektivsten und nützlichsten für alle Benutzerkategorien, vom Fachmann für Informationssicherheit bis zum Anfänger. Fast niemand weiß, dass ein PDF-Viewer dem Dokumentbesitzer die Tatsache des Öffnens einer Datei vermitteln kann. Jeder stößt darauf.
 
Es gibt verschiedene Möglichkeiten, die Tatsache des Öffnens eines Dokuments zu erfassen. Canarytokens verwendet eine im Dokument eingebettete dokumentenspezifische URL, um die widerrufenen SSL-Zertifikate (Certificate Revocation List) zu überprüfen. Infolgedessen wechselt das Programm zu dieser Adresse und der Trigger wird ausgelöst.

Auslöser über DNS-Auflösung



Dies ist ein sehr interessanter Auslöser, dessen Vorteile nicht sofort offensichtlich sind. Es funktioniert, wenn jemand nach der IP-Adresse der generierten Subdomain fragt, die speziell generiert wurde, damit sie nicht zufällig erraten oder verdreht werden kann. Somit sind unbeabsichtigte Operationen ausgeschlossen. Dieser Trigger wird für viele der unten beschriebenen Techniken verwendet, einschließlich zum Erkennen des Öffnens eines Ordners und als Trigger in der MS SQL-Datenbank. Tatsächlich gibt es viele Möglichkeiten, diesen Trigger zu verwenden.

URL-Trigger



In diesem Fall reicht es aus, wenn eine GET-, POST- oder HEAD-Anforderung als Referenz ausgeführt wird. Dies wird den Auslöser auslösen. Zusätzlich zu seiner üblichen Verwendung kann es auch in Skripten verwendet werden, um Parser zu überprüfen, die Links folgen, um eine Vorschau des Inhalts anzuzeigen. So auch Instant Messenger: Schreiben Sie einfach einen Link in das Eingabefeld, auf das Sie von den Messenger-Servern geklickt haben.

Bild


Das klassische 1x1-Pixel-Bild ist jedem bekannt, der Online-Werbung verfolgt. Der Auslöser funktioniert, wenn eine Bilddatei hochgeladen wurde. Ein solches Pixel kann in jede HTML-Seite oder in einen Buchstaben eingefügt werden. Es ist praktisch, es aus JS-Skripten auf der Seite aufzurufen, wenn die erforderliche Bedingung erfüllt ist. Sie können das Standardpixel auch durch Ihr eigenes Bild ersetzen.

E-Mail-Trigger



Wenn ein Brief an der generierten Mailbox ankommt, funktioniert der Auslöser. Es ist praktisch, E-Mail-Adressen, Kontaktlisten usw. zu verwenden, um den Verlust von Datenbanken zu überwachen.

Sie können diese Adresse beispielsweise zu Ihrer Kontaktliste hinzufügen und herausfinden, wann Ihr Notizbuch auf Ihrem Telefon von einer Anwendung zusammengeführt wird, die den Zugriff auf Ihre Kontaktliste anfordert . Es ist allen Mitarbeitern auch möglich, Notebooks auf einem Computer, Telefon oder E-Mail-Client unterschiedliche Auslöseadressen hinzuzufügen und zu verfolgen, woher die Kontakte stammen.

Es wird speziell eine E-Mail-Adresse generiert, die nicht vorhersehbar ist, sodass die Wahrscheinlichkeit der Auswahl und des versehentlichen Auslösens eines Auslösers ausgeschlossen ist.

Auslöser zum Öffnen des Windows-Ordners



Sicherlich haben viele eine versteckte Datei desktop.ini gesehen, die sich in jedem Windows-Ordner befindet. Es stellt sich heraus, dass er nicht so einfach ist. Darin können Sie die Adresse des Symbols auf dem Remote-Server mithilfe von UNC-Pfaden angeben (diese werden für Netzwerklaufwerke verwendet und beginnen mit \\), während Windows eine DNS-Auflösung für die im Link zum Symbol angegebene Domäne durchführt und den Trigger aktiviert. Die Datei desktop.ini kann mit anderen Dateien in das Archiv gepackt werden und funktioniert, wenn das Archiv entpackt wird.

Auslöser für das Klonen von Websites


Ein einfaches Skript für Webseiten, das funktioniert, wenn die Seite in Ihrer Domain nicht geöffnet ist. Kann zur Erkennung von Phishing nützlich sein.

if (document.domain != "mydomain.com") {
    var l = location.href;
    var r = document.referrer;
    var m = new Image();
    m.src = "http://canarytokens.com/"+
            "blablabla.jpg?l="+
            encodeURI(l) + "&r=" + encodeURI(r);
}

Auslöser zum Ausführen einer EXE-Datei oder DLL



Ermöglichen Sie, den Trigger mit einer vorhandenen ausführbaren EXE-Datei oder -Bibliothek zu verbinden. Es wird von Antivirenprogrammen nicht erkannt. Es sollte bedacht werden, dass ein solches Kleben einige Programme beschädigen kann, daher ist es besser, etwas Einfaches zu verwenden. Tatsächlich ist dies eine seit langem bekannte Methode zur Verbreitung von Trojanern und Viren. Nur in unserem Fall ist die verborgene Funktionalität völlig harmlos. Es sollte jedoch berücksichtigt werden, dass die ausführbare Datei eine größere Aufmerksamkeit für den Angreifer verursachen kann und auch nicht auf seinem Betriebssystem ausgeführt wird.

Trigger für MS SQL


Mit MS SQL können Sie einen Trigger hinzufügen, um INSERT, SELECT, DELETE usw. auszuführen. Um einen Trigger auszulösen, verwenden Sie dieselbe Methode wie für eine desktop.ini-Datei, nämlich das Auflösen eines DNS-Namens über UNC-Pfade.
Triggerbeispiel für MS SQL
--Erstelle einen gespeicherten Prozess, der
Canarytokens anpingt. CREATE proc ping_canarytoken
AS
BEGIN
deklariertNutzername varchar (max), base64 varchar (max), @tokendomain varchar (128), @unc varchar (128), Größe int erledigt int zufällig varchar(3);

--setup the variables
set @tokendomain = 'qo2dd6tftntl1pej9j68v31k6.canarytokens.com';
set size = 128;
set done = 0;
set random = cast(round(rand()*100,0) as varchar(2));
set random = concat(random, '.');
set username = SUSER_SNAME();

--loop runs until the UNC path is 128 chars or less
while done <= 0
begin
--convert username into base64
select base64 = (SELECT
CAST(N'' AS XML).value(
'xs:base64Binary(xs:hexBinary(sql:column(«bin»)))'
, 'VARCHAR(MAX)'
) Base64Encoding
FROM (
SELECT CAST(username AS VARBINARY(MAX)) AS bin
) AS bin_sql_server_temp);

--replace base64 padding as dns will choke on =
select base64 = replace(base64,'=','-')

--construct the UNC path
select @unc = concat('\\',@base64,'.',@random,@tokendomain,'\a')

— if too big, trim the username and try again
if len(@unc) <= size
set done = 1
else
--trim from the front, to keep the username and lose domain details
select username = substring(username, 2, len(username)-1)
end
exec master.dbo.xp_fileexist @unc;
END

--add a trigger if data is altered
CREATE TRIGGER TRIGGER1
ON TABLE1
AFTER INSERT
AS
BEGIN
exec ping_canarytoken
end

Amazon Web Services-Anmeldeauslöser


Der Amazon Services-API-Schlüssel sollte einen Angreifer dazu verleiten, zu überprüfen, was dort enthalten ist. Wenn dieser API-Schlüssel für die Anmeldung verwendet wird, wird der Trigger ausgelöst. In diesem Fall gibt es dort natürlich keine Daten.

Andere Auslöser


Der Dienst canarytokens.org unterstützt auch andere Trigger, z. B. einen SVN-Hook, eine Webumleitung, das Lesen eines QR-Codes, einen Slack-API-Schlüssel und andere. Sie alle verwenden ein ähnliches Prinzip. Wenn Sie möchten, können Sie unabhängig voneinander einen eigenen Trigger erstellen, der in Ihrem Arsenal einen DNS-Namen, einen Link mit einem Bild, eine Postanschrift und API-Schlüssel für beliebte Dienste enthält. Zusätzlich zu E-Mail-Benachrichtigungen können Canarytokens einen Web-Hook ziehen, wenn ein Auslöser ausgelöst wird. Die Funktionsmechanismen sind in der Dokumentation beschrieben.

Canarytokens Native Server


Ein erfahrener Cracker, der im Quellcode die Adresse canarytokens.org sieht, ahnt sofort alles. Für die Verwendung im Unternehmen ist es daher besser, eine eigene Canarytokens-Instanz bereitzustellen, damit alle Triggeradressen an die internen Domänen des Unternehmens gehen und nicht von echten internen Diensten unterschieden werden können.

Entwickler stellen ein gebrauchsfertiges Docker-Image zur Verfügung . Der Installationsprozess ist für jedes Image recht typisch, daher werden wir dieses Thema nicht ansprechen. Lassen Sie uns nur auf nicht offensichtliche Punkte eingehen. Vor der Installation müssen Sie die Dateien frontend.env und switchboard.env bearbeiten .

# ()       
#     IP-    Docker.        SSL-.
CANARY_DOMAINS=example1.com,example2.com

#            PDF-
#    NS-          .
#   example3.com     example1.com  example2.com
CANARY_NXDOMAINS=example3.com

Zum Senden von E-Mails empfehle ich die Verwendung des Mailgun-Dienstes, da Sendgrid instabil ist.

Fazit


Solche Fallen sind wirklich effektiv. In meinem Fall sind Trigger mit PDF-Dateien besonders hilfreich. Der Dienst ist sowohl für normale Benutzer als auch für erfahrene Pentester nützlich. Selbst ein hoch entwickelter Angreifer, der über die Existenz von Hanipots und Hanitokens Bescheid weiß, wird der Versuchung nicht widerstehen können, die in der Dokumentation enthaltene Subdomain zumindest nüchtern zu machen. Wenn Sie vorsichtig und mit Bedacht Fallen verwenden, können Sie einen Cracker frühzeitig erkennen.

Diese Techniken können auf Servern, Desktop-Computern, Dateispeichern und sogar auf Telefonen verwendet werden.

Wenn Sie Canarytokens in Ihrer eigenen Docker-Instanz bereitstellen möchten, wird Docker auf unseren virtuellen Maschinen mit einem Klick vom Marktplatz aus installiert . Zusätzlich gewähren wir 15% Rabatt auf alle Server, die den DONTPANIC-Gutscheincode verwenden.


All Articles