PavoGuard

Anwendungen, Tools, Userlibs und anderes nützliches.
Dark
Beiträge: 93
Registriert: 24.08.2007 20:36
Kontaktdaten:

Re: PavoGuard

Beitrag von Dark »

Ich habe mir das ganze mal genauer angeschaut, denn wer ist nicht an einem (Zitat: http://www.pavo-guard.de/index.php/) "Revolutionäre[m] Virenscanner, der durch Cloud Technologie nahezu 100% Schutz bietet" interessiert.

Im Gegensatz zu ts-soft wollte ich aber nicht das Risiko eingehen, das Programm nativ oder virtuell auszuführen sondern habe das ganze mal in einen Disassembler geworfen. Also fangen wir mit der kleinen start.exe an, welche vom Setup installiert wird. Das Programm lädt wie zu erwarten das richtige "Antiviren" Programm von http://pavo-guard.de/guard/update.php?md5=. Eigentlich wäre da nichts besonderes dran, wenn da nicht diese mysteriösen HTTP Anfragen an http://www.google.de, http://www.faceobook.de (!sic), http://www.ebay.de und http://www.youtube.com drin wären. Ich gehe mal davon aus das diese Anfragen lediglich der Überprüfung der Verbindung dienen, jedoch wirkt es alles andere als professionell eine Verbindung zu http://www.face(o)book.de aufbauen zu wollen. Hier gibt es noch einen Screenshot von dem Umstand, inklusive dem kleinen Tippfehler.

So nun kommen wir aber mal zu dem Hauptprogramm. Wieder einmal findet man die nette Linksammlung, aber eigentlich interessiert uns ja mehr dieser revolutionäre Schutz! Also schauen wir doch mal an was das Programm so macht. Es wird mit CreateToolhelp32Snapshot die Prozessliste durchgegangen und dann für jeden Prozess die Daten an den Server übertragen. Hier mal ein kleiner Auszug aus dem Code zur Kommunikation:

Code: Alles auswählen

.code:00404404                 mov     edx, offset aPath ; "path="
[...]
.code:0040445C                 mov     edx, offset aStart ; "&start="
[...]
.code:00404498                 mov     edx, offset aSize ; "&size="
[...]
.code:004044D4                 mov     edx, offset aIcon ; "&icon="
[...]
.code:0040454C                 mov     edx, offset aDate ; "&date="
[...]
.code:004045BB                 mov     edx, offset aCompany ; "&company="
[...]
.code:004045EE                 mov     edx, offset aUser ; "&user="
[...]
.code:0040461D                 mov     edx, offset aOs ; "&os="
[...]
.code:0040464C                 mov     edx, offset asc_42C8DE ; "&"
[...]
.code:00404669                 mov     edx, offset aPavoguard_exe ; "PavoGuard.exe"
[...]
.code:00404700                 mov     edx, offset aHttpPavoGuard_ ; "http://pavo-guard.de/guard/guard.php?"
Es wird noch die md5 Checksumme übertragen, was aber von IDA nicht sofort erkannt wurde. Aber wie ihr richtig sieht, wird zur Kommunikation ein PHP Script benutzt, was für Cloud Anwendungen, sagen wir mal eher ungewöhnlich ist. Der Server antwortet dann mit einem Boolean ob das ganze sicher ist oder nicht. Wurde das Programm als unsicher erkannt, wird versucht es zu beenden. Ich denke wir können hier abbrechen mit der Analyse und das ganze mal auf Sicherheit bewerten.

Also was haben wir nun aus unserer Analyse erfahren? Das Programm überträgt alle Daten über die ausgeführten Programme unverschlüsselt per HTTP an den Server. Dies ist schon mal ein riesen Sicherheitsproblem. Jeder der es schafft meinen Traffic mitzulesen, weiß dann genau welche Programme ich ausführe und hat netterweise auch eine md5 um die genau Version festzustellen. Der Angreifer muss im Ideafall nur noch einen passenden Exploit aus einer Datenbank raussuchen um in meinen Rechner einzudringen. Desweiteren findet auch keinerlei Überprüfung statt ob die "Antivirensoftware" nun mit dem richtigen Server kommuniziert, also kann jedes Programm die Kommunikation manipulieren und vorgaukeln das alle ausgeführten Programme in Ordnung sind. Ein SSL Zertifikat wäre hier also dringend anzuraten.
Da kommen wir auch direkt zum nächsten Punkt, die Software verwendet md5 Checksummen um die Programme zu identifizieren. Alles andere wie z.B. ein Icon kann das Programm ja selbst auswählen. Nun gibt es aber bekannterweise Schwachstellen im md5 Algorithmus, die ausgenutzt werden können um zwei sehr ähnliche Programme zu erstellen, die die selbe md5 Checksumme zu haben. Ich kann also hingehen einen Trojaner programmieren, dann erzeuge ich mit Tools aus dem Internet ein harmloses Programm mit der selben md5, schicke dies ein um es in die whiteliste aufnehmen zu lassen und schon ist mein Trojaner sicher vor der Software. Also md5 sollte heutzutage nicht mehr für Sicherheitskritische dinge genutzt werden!
Schlussendlich kommen wir aber zu dem KO Kriterium der Software. Sie überprüft die Programme nach dem sie gestartet wurden und im schlimmsten Falle mein System schon infiziert haben. Dies führt nicht zu 100% Schutz, sondern eher so 0%.

Aber da war ja noch die eine Sache! Das besondere an dem Programm soll ja die Cloud sein. Dann schauen wir doch mal, welche "Cloud" da zu Einsatz kommt, vll. Amazon EC2? Nun ja lösen wir die DNS mal auf: pravo-guard.de -> 78.138.89.29 und nun noch einen Reverse DNS Lookup: srv20.sysproserver.de. Hmm? Scheint wohl eher eine selbstgebastelte Cloud aus vServern oder Root Servern zu sein. Googlen wir mal schnell nach der Addresse https://www.google.de/#hl=de&q=srv20.sysproserver.de. Die DNS wird für shared Webhosting Pakete genutzt und die IP wird damit zwischen mehreren Benutzern geteilt. Die Cloud ist also lediglich ein Webhosting Paket.

Dark
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: PavoGuard

Beitrag von Nino »

Also Dark, nun zeichne doch nicht so ein düsteres Bild! ;-)

Auf der Website zum Programm kannst Du doch nachlesen, dass das Programm viel sicherer ist als andere Scanner und nahezu 100% Schutz bietet:
Bild

Auch folgende Aussage ändert daran natürlich nichts:
Robert90 hat geschrieben:5.PavoGuard kann natürlich noch nicht als vollwertiger Schutz betrachtet werden, er soll (noch) nur unterstützend wirken.
Wenn PavoGuard in ein paar Wochen ausgereift ist, dann wird es mindestens 327%igen Schutz bieten.
Robert90 hat geschrieben:( => die eigentliche PavoGuard Version liegt im Appdata Folder im Ordner PavoGuard , damit kein UAC ausglöst wird und der User davon nichts aktiv mitbekommt)
Ich nehme an, hier ist das ausführbare PavoGuard-Programm gemeint (eine Version kann nirgendwo liegen) ... Ein sicherheitsrelevantes Programm im Appdata-Verzeichnis zu installieren ist ja auch sehr ... ähem .. "sinnvoll".

Dieser "revolutionäre Virenscanner" muss natürlich auch sofort bei heise und Wikipedia (zusammen mit diesen ganzen herkömmlichen, völlig unrevolutionären und viel weniger sicheren Programmen) gelistet werden.

Nino
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Re: PavoGuard

Beitrag von Thorium »

Sehr schöne Analyse von Dark.

Als Hobbyprojekt zum lernen ganz nett. Als Sicherheitstool eher gegenteilig wirksam. Da es Prozesse erst nach Erstellung "prüft", ist es unfähig echte Bedrohungen, welche durch Rootkits getarnt werden, zu erkennen.

Ich würde die Website schnell wieder dicht machen, bevor irgendwann jemand mit Schadensersatzvorderungen kommt, immerhin wirbst du mit hoher Sicherheit auf der Website, wärend das Tool die Sicherheit faktisch senkt.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Dark
Beiträge: 93
Registriert: 24.08.2007 20:36
Kontaktdaten:

Re: PavoGuard

Beitrag von Dark »

Google verrät uns auch mehr über den Autor (der Link existiert zwar nicht mehr, aber Google ist ja nicht immer so schnell):

Bild

Also seien wir mal nicht so böse. Hier ein paar ernst gemeinte Tipps für den Autor:

Antiviren Programme müssen tief ins System eingreifen um bei jedem Dateizugriff einen Virus erkennen zu können. Dazu wird ähnlich wie bei Rootkits Code im Kernel verändert. Dies benötigt wissen über den Windows Kernel und Treiber Programmierung, z.B. wie NtCreateFile() oder NtTerminateProcess() im Kernel gehooked wird. Dies ist nicht in PureBasic machbar, da man hiermit keine Treiber programmieren kann. Also zumindestens dieser Teil müsste z.B. in C geschrieben werden. Die GUI kann dabei immer noch in PureBasic programmiert werden. Ein Programm welches einen Virus nach der Ausführung erkennt, ist nun mal nutzlos, da ein Virus in der Zwischenzeit schon längst die Antiviren-Software beenden oder manipulieren könnte.
Es mag durchaus sein das deine Offline Analyse einige netten Ideen beinhaltet, jedoch war es mir zu aufwendig diese genauer zu analysieren und es sind auch keine weiteren Informationen auf deiner Webseite verfügbar. Daher kann ich diese nicht genauer beurteilen.
Ebenso kann ich natürlich nicht beurteilen, wie vollständig die Datenbank ist und welche Viren tatsächlich erkannt werden.

Es hat durchaus seinen Grund, dass der Großteil der Antivirensoftware komerziell ist, da man alleine oder in einem kleinen Team kaum eine Chance hat, an alle ggf. vorhandenen Schwachstellen zu denken. Eine Antiviren-Software die einen vollständigen Schutz bieten soll benötigt viel Erfahrungen in Treiberprogrammierung, Hashalgorithmen, Komprimierungsalgorithmen (Packer) um auch komprimierte Viren zu erkennen, Kryptographie, Assembler, etc. und benötigt auch Methoden, um einen Virus noch dann zu erkennen, wenn er geringfügig modifiziert wurde und z.B. ein Byte am Ende hinzugefügt wurde. Dazu wäre z.B. eine Art running Hash denkbar.

Ein weiterer Kritikpunkt an der Software ist, dass sie bisher noch nicht wirklich professionell wirkt. Das Logo hat harte Kanten, welche wie in Paint gezeichnet wirken und da dies überall vorkommt, macht dies gleich einen schlechten Eindruck. Du solltest hierbei vll. mit einer Vektorgrafik arbeiten, damit du es auf jede beliebige Größe resizen kannst und es immer noch gut aussieht. Ich denke die Webseite hast du selbst geschrieben, was ja nicht schlecht ist, jedoch wirkt der Skin etwas altbacken und schreckt heutzutage eher Benutzer ab. Ich lasse mich außerdem eher von Fakten und einer Beschreibung der internen Funktionalität überzeugen an Stelle von Wörtern wie "revolutionär".

Aufgrund der noch bestehenden Sicherheitslücken und Problematiken würde ich dir wie mein Vorredner empfehlen deutlicher zu machen, dass es sich hierbei um eine Art Proof-of-concept handelt, und weniger um eine für Anwender zu empfehlende fertige Softwarelösung die einen tatsächlichen Schutz bietet. Wesentlich einfacher zu realisieren und ohne all die hier beschriebenen Sicherheitsproblematiken wäre z.B. eine Art manueller (Online-)Scanner für einzelne Dateien - dies würde sicher auch manche hier ermutigen, die tatsächliche Erkennungsfähigkeit genauer zu testen ;-)

Dark
Robert90
Beiträge: 3
Registriert: 25.12.2012 11:25

Re: PavoGuard

Beitrag von Robert90 »

Vielen Dank für die Antworten. Ich werde überlegen PavoGuard zu einem reinem online (einzel) Datei Scanner auszubauen oder aber mich um die Sicherheitslücken wie Verschlüsselung etc. kümmern...wie genau ich vorgehen werde weiss ich noch nicht. Ich werde euch weiterhin auf dem laufendem halten;)

P.s.
Die disassemblierung wäre nicht nötig gewesen aber sie beschreibt etwas was PavoGuard macht. Mich würde dazu noch interresieren wie man 2 Dateien die Unterschiedlich sind so verändern kann das sie den gleichen MD5 Hash haben? Theoretisch mag das vlt. gehen aber wird so etwas auch praktisch verwendet ? (von Trojanern etc. )

LG
Benutzeravatar
Sicro
Beiträge: 955
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: PavoGuard

Beitrag von Sicro »

Robert90 hat geschrieben:Mich würde dazu noch interresieren wie man 2 Dateien die Unterschiedlich sind so verändern kann das sie den gleichen MD5 Hash haben?
Ein Hash ist ja viel kürzer als die Bytefolge einer Programmdatei, so das sich ein wiederkehrender Hash nicht vermeiden lässt.

Nun, ich würde bei der Virusdatei am Ende einfach zufälligen Datenmüll generieren und reinschreiben lassen bis der Hash von dieser Datei mit der harmlosen Programmdatei übereinstimmt. Dies ist zwar eine extrem zeitaufwändige Methode (möglicherweise hätte ich erst zu meiner Rente eine Erfolgsmeldung :lol:), aber einfach zu realisieren.

Auf Wikipedia im Artikel zu MD5-Hash gibt es einen Link zu einer englischsprachigen Seite dazu, die mit "MD5 Collision Demo - Zwei unterschiedliche Programme mit gleichem MD5-Hash und einer Bibliothek zur Generierung weiterer solcher Programme" betitelt wird.
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Dark
Beiträge: 93
Registriert: 24.08.2007 20:36
Kontaktdaten:

Re: PavoGuard

Beitrag von Dark »

An genau das Beispiel von Sicro habe ich gedacht. Rein logisch gesehen ist klar das Algorithmen wie sha256 selterner Kollisionen erzeugen sollten, da der erzeugte Hash länger (bei sha 256 doppelt so lang) ist.
Sicro hat geschrieben:Dies ist zwar eine extrem zeitaufwändige Methode (möglicherweise hätte ich erst zu meiner Rente eine Erfolgsmeldung :lol:), aber einfach zu realisieren.
Ich habe das ganze vor einiger Zeit selbst ausprobiert und da hat das ganze nicht sehr lange gedauert (eine Kollision zu finden ist natürlich vom Zufall abhängig und dauert immer unterschiedlich lange). Auf der Webseite spricht der Autor auch nur von einigen Stunden (Gibt mittlerweile auch Verfahren die nur noch Sekunden brauchen). Der Grund hierfür ist eine Schwäche im MD5 Algorithmus. Nimmt man zwei verschiedene Input Daten, die sich sehr ähnlich, so gibt es einen Algorithmus mit dem man grob gesagt einen 128 Byte großen Block berechnen kann der, wenn er angefügt wird, bei der MD5 Berechnung die jeweiligen Unterschiede wieder ausgleicht, so das beide Datensätze danach die selbe MD5 haben. Der Algorithmus muss immer noch sehr viele Möglichkeiten durchprobieren, aber viel viel weniger als wenn man versuchen würde eine normale MD5 Kollision zu berechnen, was mittlerweile dank GPU Computing auch nicht mehr sehr lange dauert.

Eine Kombination von mehreren Hashs ist natürlich am sichersten. Die Wahrscheinlichkeit das zwei Hashalgorithmen bei den selben Inputdaten jeweils eine Kollision mit dem selben zweiten Satz an Daten hat, kann man getrost mit 0% angeben.

Dark
Antworten