Introducción a AMSI

Einführung in AMSI


Sehr gut an alle! Heute tauchen wir in die Welt von AMSI ein. Sie haben wahrscheinlich schon davon gehört, aber wissen Sie wirklich, wie sie funktionieren? Okay, mach dir keine Sorgen! Wir sind hier, um Ihnen alles, was Sie wissen müssen, auf einfache und freundliche Weise zu erklären.

Stellen Sie sich vor, Sie schreiben Code und möchten, dass er auf Ihrem Computer ausgeführt wird. Bei interpretierten Sprachen wird der Code vor der Ausführung nicht in Maschinencode kompiliert, sondern ein spezieller Übersetzer namens Interpreter wird verwendet. Dieser Interpreter ist dafür verantwortlich, die Anweisungen Zeile für Zeile zu übersetzen und auszuführen, sobald er sie findet.

Mit interpretierten Sprachen können Sie Ihre Anweisungen nicht nur in einer Datei auf Ihrer Festplatte speichern, sondern sogar Sie haben auch die Möglichkeit, die Anweisungen direkt an den Dolmetscher weiterzugeben. Dies bedeutet, dass der Inhalt zu keinem Zeitpunkt die Festplatte berühren muss.

Lassen Sie uns nun über etwas Wichtiges sprechen: den Unterschied zwischen Malware auf der Festplatte und im RAM. Bei Antivirenprogrammen ist das Scannen der Festplatte relativ einfach. Viele Antivirenprogramme lesen die Festplatte, während der Benutzer durch Ordner navigiert, und ermöglichen so eine effiziente Überprüfung. Wenn sie eine mit Malware verbundene Signatur erkennen, wird eine Benachrichtigung angezeigt und die schädliche Datei wird unter Quarantäne gestellt. Allerdings ist die Erkennung von Malware, die bereits in den RAM eingeschleust wurde, aus zwei Gründen viel komplexer:
  •  RAM-Speicher ist sehr veränderlich, was zu etwas Besonderem wird sehr komplex zu analysieren.
  • Sobald sich ein Prozess bereits im RAM befindet, werden diese angezeigt Anweisungen werden ausgeführt, und wenn es sich um Malware handelt, könnte sie die böswilligen Aktionen bereits ausgeführt haben, zu einem anderen Prozess migriert und die Hauptspur gelöscht haben usw.

Da wir das nun geklärt haben, möchte ich Ihnen heute unseren Protagonisten vorstellen: den AMSI ( Antimalware-Scan-Schnittstelle). Das AMSI wurde als Reaktion auf die schwierige Aufgabe der RAM-Speicheranalyse und die Notwendigkeit, Ausführungen zu untersuchen, bevor sie stattfinden, ins Leben gerufen. Microsoft hat es in Form einer API entwickelt, damit Sicherheitslösungen die implementierten Funktionen aufrufen können.

Was bedeutet das einfacher ausgedrückt? Im Grunde bietet es eine Möglichkeit, Befehle zur Laufzeit zu erfassen, beispielsweise von PowerShell, JScript, VB/VBA und .NET. Sobald sie erfasst sind, werden sie an das Antivirenprogramm gesendet, damit dieses sie analysieren kann, bevor sie ausgeführt werden. Wenn das Antivirenprogramm feststellt, dass der Befehl bösartig ist, benachrichtigt AMSI die Anwendung und verhindert deren Ausführung.

Obwohl nicht alle AV/EDR AMSI als Schutzmaßnahme verwenden, tun es immer mehr. Sie schließen es also ein Es ist wichtig zu verstehen, wie es funktioniert. Sobald wir wissen, warum AMSI existiert und welchen Zweck es hat, ist es an der Zeit, genau zu verstehen, wie der normale Ablauf seines Betriebs aussieht.

Der Unterschied zwischen einem Programm und einem Prozess besteht darin, dass es sich bei dem Programm um Anweisungen für eine bestimmte Aufgabe und um einen Prozess handelt Dabei handelt es sich um dieselben Anweisungen wie das Programm, jedoch mit zusätzlichen Speicherbereichen, die für Variablen und andere Anforderungen reserviert sind.

In Windows werden DLLs (Dynamic Link Libraries) verwendet, um die Funktionalität eines Programms zu erweitern. Wenn ein Programm in Form eines Prozesses in den RAM geladen wird und eine DLL lädt, werden die Funktionalitäten direkt in die virtuelle Zone des Prozesses integriert. Wenn beispielsweise PowerShell ausgeführt wird, sind DLLs wie ntdll, kernel32 und AMSI Teil des Prozessspeichers.

Lassen Sie uns ein Beispiel geben. Wir haben einen PowerShell-Prozess, von dem aus wir versuchen werden, Befehle zu starten, und Windows Defender ist auf dem Computer installiert und aktiviert. Lassen Sie uns den Kommunikationsfluss in Bezug auf AMSI erklären.

Wir wissen, dass AMSI eine dynamische Bibliothek ist, die in Prozesse wie PowerShell geladen wird und als Funktion konzipiert ist Vermittler zwischen dem Prozess selbst und dem AV/EDR.

Wenn ein Befehl eingegeben wird, kommuniziert PowerShell mithilfe von AMSI-API-Funktionen mit dem Windows Defender Prozess zum Senden des Inhalts des Befehls. Windows Defender analysiert es und sendet in Form einer Antwort, ob das, was ausgeführt wird, bösartig ist oder nicht.

Die Kommunikation zwischen dem Prozess, der AMSI verwendet, und Windows Defender erfolgt über RPC. RPC ist eine Möglichkeit für Windows, zwischen verschiedenen Prozessen zu kommunizieren (bei denen es sich um Prozesse handeln kann, die sich auf verschiedenen Computern befinden). Im Grunde handelt es sich um eine Standardimplementierung, die die Netzwerkkommunikation zwischen Prozessen mit der Client-Server-Architektur ermöglicht.

Kurz gesagt, AMSI als solches ist keine Sicherheitsmaßnahme (weil es nicht derjenige ist, der analysiert, ob vorhanden). ob es sich um Malware handelt oder nicht), es handelt sich um einen Standard, nach dem Prozesse wie PowerShell Daten an AV/EDR senden (über RPC), sodass festgestellt werden kann, ob die Ausführung eines Befehls schädlich für den Computer wäre. Abhängig davon, was die betreffende Sicherheitsmaßnahme zurückgibt, führt PowerShell sie aus oder nicht.

Und für heute reicht es! Wir werden in zukünftigen Folgen mit AMSI fortfahren und die RPCs zwischen Ihren Neuronen belassen damit sie keine Überschwemmungen erleiden.

Juan Gabriel Ruiz, Senior Security Analyst bei Zerolynx und Justo Martín, Sicherheitsanalyst bei Zerolynx.



var Article = document.querySelector('#medium-feed-article-root'); if(Artikel) { Article.style.display = 'none'; }
Zurück zum Blog

Hinterlasse einen Kommentar

Bitte beachten Sie, dass Kommentare vor der Veröffentlichung genehmigt werden müssen.