AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Softwareentwicklung im Allgemeinen Projektplanung und -Management Softwareidee für Antivirenergänzung [Lösungsansätze gesucht]

Softwareidee für Antivirenergänzung [Lösungsansätze gesucht]

Offene Frage von "Sir Rufo"
Ein Thema von xbkbk · begonnen am 28. Mär 2016 · letzter Beitrag vom 30. Mär 2016
Antwort Antwort
Seite 1 von 6  1 23     Letzte » 
xbkbk

Registriert seit: 9. Jul 2012
Ort: 37083 Göttingen
61 Beiträge
 
Delphi 10.4 Sydney
 
#1

Softwareidee für Antivirenergänzung [Lösungsansätze gesucht]

  Alt 28. Mär 2016, 21:13
[EDIT: Für alle, denen das zu viel Text ist: der relevantere Teil (meine konkreten Fragen) befindet sich weiter unten und ist Fett gedruckt.]

Da ich sie selbst nicht umsetzen kann, die Idee aber prinzipiell für brauchbar halte und glaube, dass dies auch für Andere interessant sein könnte, möchte ich euch hier eine Programmidee vorstellen:

Ich stelle mir ein Programm vor, das nach Programmstart einen Dateipfad zu einer beliebigen .exe abfragt (den User fragt) und diese Anwendung dann "begleitet" ausführt. Sinn des Programmes soll es sein, dass wenn die gewählte .exe Datei Dateien erstellen möchte, eine andere Datei ausführen möchte (.exe, .bat, .vbs oder irgendetwas anderes), einen Service erstellen möchte, ins Internet gehen oder Änderungen in der Registry vornehmen möchte, dass das Programm dann diese Aktionen unterbindet und den User fragt "darf er das?" und erst wenn der User dies mit "jop, geht in Ordnung" bestätigt, soll die Datei die gewählte Aktion durchführen dürfen.
Dabei soll dem User aber auch genau angezeigt werden, welche Dateien, in welchem Verzeichnis und wohin extrahiert werden, was gelöscht wird und zu welchen Seiten/Servern die .exe kommuniziert (bevor die .exe das macht und bevor der User das bestätigt - damit er weiß, was er da bestätigt)

Sinnvoll wäre auch, dass dieses Programm dauerhaft im Hintergrund läuft und bei dem Start einer .exe erst fragt, ob die .exe überhaupt gestartet werden soll und dann bei (fast) jeder Kleinigkeit (siehe oben) erneut eine Bestätigung einholt.

Damit das Nutzen des favorisierten Browsers nicht zur Tortur wird, sollte die Funktion bestehen, eine bestimmte .exe als "vertrauenswürdig" zu markieren, die dann folglich nicht mehr geprüft wird.

Warum das ganze?
Heruntergeladene Dateien beinhalten oft unangenehme Überraschungen (z.B. noch viel mehr Programme, die man nie haben wollte oder wunderschöne Werbeanzeigen, die alle 2 Minuten erscheinen etc.), die Antivirenscanner oft nicht sehen. Generell bin ich enttäuscht von Antivirenscannern, weshalb ich diese Lösung als (zumindest für etwas fortgeschrittenere User) sinnvoll ansehe.

Da das Projekt recht umfangreich ist, wäre es zu viel verlangt, wenn ich fragen würde, ob das jemand für mich programmiert, aber falls ihr Ideen habt, wie man das umsetzen kann (oder allgemeine Kritik an der Idee), wäre ich euch sehr verbunden.
Solltet ihr die Idee für unnütz oder blöd halten, klärt mich bitte auf, warum.
Der Vorteil einer solchen Software wäre, dass sie einem erfahrenen Nutzer immer verraten kann, ob man es mit einem Virus zu tun hat oder nicht bzw. wie man das wieder rückgängig machen kann, was die Anwendung "verbrochen" hat.

Sollte man der Anwendung die Aktionen gewähren (oder nicht), kann man auch alles, was die App macht / vorhat, zu tun, in eine Logdatei schreiben, damit man später genaueres über den Vorgang erfahren kann.

Sollte ich das Projekt irgendwann fertigstellen, werde ich es hier als open Source einstellen


Meine konkreten Fragen dazu könnt ihr gerne auch teilweise beantworten:

1. wie stelle ich fest, dass eine Anwendung vor hat, Dateien zu erstellen, ändern, löschen, kopieren, lesen?
1.1 wie kann ich das (temporär) verhindern und erst nach Bestätigung freigeben?
1.2 (wie) kann ich wissen, welche Dateinamen die betreffenden Daten haben?

2. wie stelle ich fest, dass eine Anwendung ins Internet möchte?
2.1 wie kann ich das (temporär) verhindern und erst nach Bestätigung freigeben?
2.2 (wie) kann ich wissen, welche Seiten/Server aufgerufen werden sollen?

3. wie stelle ich fest, dass eine Anwendung irgendeine andere Datei aufrufen möchte?
3.1 wie kann ich das (temporär) verhindern und erst nach Bestätigung freigeben?
3.2 (wie) kann ich wissen, welche Dateien aufgerufen werden sollen?

4. wie stelle ich fest, dass eine Anwendung Dienste erstellen möchte?
4.1 wie kann ich das (temporär) verhindern und erst nach Bestätigung freigeben?
4.2 (wie) kann ich abfragen, welchen Pfad die Datei des zu erstellenden Dienstes hat?

5. Wie kann ich prüfen, ob eine .exe versucht, ausgeführt zu werden?
(wenn das Programm dauerhaft im Hintergrund läuft oder geht das auch per Event, das bei .exe Start ausgeführt wird?)











Eine ergänzende Idee dazu wäre auch, sowas wie den Root für Windows zu basteln, indem vor jeder kritischen Änderung (etwas in den Autostart schieben, Dateizugriff in %appdata% oder %windir% oder C:\Programme, Service erstellen, etc.) eine (Passwort-)Abfrage stattfindet.
Letztere Idee kann optimiert werden, wenn der Nutzer wählen kann, bei welchen Ereignissen er genervt werden will.

Vielen Dank für die Mühe, dass du diesen langen Text gelesen hast
Felix

Geändert von xbkbk (28. Mär 2016 um 21:16 Uhr) Grund: Info zur Übersichtlichkeit
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

AW: Softwareidee für Antivirenergänzung [Lösungsansätze gesucht]

  Alt 28. Mär 2016, 22:48
Praktisch alles was du machen willst, ist mit globalen WinAPI Hooks realisierbar. Dazu dürftest du im Netz eine Menge an Informationen finden. Grob beschrieben lenkst du die API Aufrufe aller gestarteten Programme auf eigene Callback-Funktionen um. In diesen Callbacks kannst du nun nach Belieben Input Parameter und Rückgabewerte modifizieren oder auch den Aufruf der originalen API einfach unterlassen.

Am Beispiel von MSDN-Library durchsuchenMessageBoxW:
Delphi-Quellcode:
function MessageBoxWCallback(hWnd: HWND; lpText, lpCaption: LPCWSTR; uType: UINT): Integer; stdcall;
begin
  if ((uType or MB_ICONERROR) = MB_ICONERROR) then
  begin
    // Wir moegen keine Fehlermeldungen
    Result := IDOK;
  end else
  begin
    // Fuer alles Andere rufen wir die Originalfunktion auf, aber aendern den Titel
    Result := MessageBoxWOrig(hWnd, lpText, 'Hook Title', uType);
  end;
end;
Für globale Hooks hast du zwei Methoden:
  • Usermode (ring3) Hooks, bei denen du deinen Code (meistens in Form einer DLL) in alle laufenden Prozess injizierst.
  • Kernelmode (ring0) Hooks, bei denen du in einem Treiber global die gewünschten Funktionen umlenkst (SSDT Hooking).

Beide Methoden haben Vor- und Nachteile. Beim Usermode Hooking benötigst du den Code in den meisten Fällen sowohl als 32-, als auch als 64-Bit Kompilat und musst zudem den Start neuer Prozesse überwachen (gut, das funktioniert mit einem MSDN-Library durchsuchenNtResumeThread Hook recht einfach).
Fürs Kernelmode Hooking brauchst du einen signierten Treiber. Zudem kann man seit Vista nicht mehr ohne Weiteres die SSDT patchen, da ein neues Sicherheits-Feature namens Patch-Guard integriert wurde. Für viele Fälle stellt Windows allerdings nativ Filter und Callbacks zur Verfügung.

Ob sich die Sache lohnt, ist allerdings eine andere Frage: Hooks werden von existierender AntiViren Software oft als schädliche Modifikation erkannt. Außerdem gillt (insbesondere bei Ring3 Hooks): Sofern ein Programm damit rechnet, gehookt zu werden, ist der Aufwand die Hooks zu umgehen nicht sonderlich groß.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)

Geändert von Zacherl (28. Mär 2016 um 22:54 Uhr)
  Mit Zitat antworten Zitat
xbkbk

Registriert seit: 9. Jul 2012
Ort: 37083 Göttingen
61 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Softwareidee für Antivirenergänzung [Lösungsansätze gesucht]

  Alt 28. Mär 2016, 23:46
Zunächst danke für die schnelle Antwort.
Da ich mich auf diesem Gebiet noch nicht bewegt habe und das ganze überwiegend dazu dienen soll, die üblichen Ich_installiere_dir_mal_noch_alles_an_Müll_was_ich _so_finde und Ich_installiere_mich_an_unübliche_Orte_und_habe_ke ine_Deinstallationsroutine Programme etwas zu entkräften, möchte ich mal erfragen, ob es üblich ist, dass diese Programme Hooks bemerken und sich dagegen wehren. Wenn nicht wäre der ring0 Kernelmode Hook das, was ich ausprobieren würde.
Dass dieser nicht ohne Weiteres implementiert werden kann, legt nahe, dass es eben doch irgendwie möglich ist.
Da du dich da auskennst frage ich einfach mal, um mir die Recherche zu ersparen, ob es ein vertretbarer Mehraufwand beim Nutzen des fertigen Programmes ist und / oder nur die Programmierung weit aufwändiger ist?

Da Hooks allgemein offensichtlich recht einfach umgangen werden können, stellt sich mir die Frage, ob es überhaupt möglich ist, das, was ich vor habe, so umzusetzen, dass es nicht umgangen werden kann.








Das Problem ist ja unter Windows, dass so gut wie jedes Programm Adminrechte bekommt, wenn es will und der Endnutzer das auch nicht ungewöhnlich finden muss, da jede Installationsroutine Adminrechte braucht, dann aber auch alles tun kann, was sie will. Sinnvoll wäre es, dass man nur Adminrechte für eine spezifische Handlung einfordert (wie bei Linux die root-Abfrage)

Die Umsetzung eines solchen Unterfangens stelle ich mir realisierbar vor, glaube aber, dass der Aufwand sich kaum lohnen würde:
Ich glaube, dass man dem Admin bzw. der Admingruppe sämtliche Rechte entziehen kann, einen Ersatzadmin erstellt (der mit der Admingruppe nichts zu tun hat), nennen wir ihn Rolf und bei jeder Adminhandlung (Zugriff auf C:\Windows oder regedit zum Beispiel) sagt Windows "nö!"
Um das ganze doch tun zu können, könnte man dann die Andwendung nicht als Admin, sondern als Rolf ausführen und innerhalb dieses Rolfkontos könnte das ganze ring3 oder ring0 gehookt werden, da der Hook (meines Wissens) nur als Admin (der dann ja nichts mehr zu melden hat) umgangen werden kann, was aber als Rolf auch nicht drin ist, da Rolf das auch untersagt wird.

Ist das so überhaupt umsetzbar und wenn ja, ist es dann auch realistisch, dass das praktische Anwendung finden könnte?
(Die Rolflösung müsste natürlich auch von der Software eingerichtet werden, da das keinem normalen Nutzer zuzumuten ist)
Felix
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

AW: Softwareidee für Antivirenergänzung [Lösungsansätze gesucht]

  Alt 29. Mär 2016, 00:03
Zitat:
Das Problem ist ja unter Windows, dass so gut wie jedes Programm Adminrechte bekommt, wenn es will
Also bei mir bekommt ein Programm nur Admin-Rechte, wenn ich es will und nicht wenn es das Programm will.

Zitat:
Sinnvoll wäre es, dass man nur Adminrechte für eine spezifische Handlung einfordert
Dann fragt dich das Programm, ob es eine DLL ins Systemverzeichnis kopieren darf. Du sagst ja und schwupps löscht und ersetztes System DLLs. Und ob es dir eine böse DLL ins Systemverzeichnis kopiert, weißt du dadurch auch nicht.

Wo ist der Unterschied ob das Admin-Konto Admin oder Rolf heißt? Und die Gruppen vereinfachen nur die Zuweisung von Rechten. Anstatt jede 100 Benutzerkonten einzeln zu konfigurieren, konfiguriere ich eine Gruppe und ordne den Benutzern der Gruppe zu. Klar kannst du deinen Rolf keiner Gruppe zu weisen und ihm dann doch wieder alle rechte geben, die ein Admin normalerweise hat. Nur was hast du damit gewonnen? Und ob du in der UAC jetzt dem Admin "Admin" ein gibts oder den Admin "Rolf" spielt keine Rolle. Apropos dein "Nö", das macht Windiws bei aktivierter UAC so wie so und fragt nach einem Benutzerkonto mit den nötigen Rechten.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#5

AW: Softwareidee für Antivirenergänzung [Lösungsansätze gesucht]

  Alt 29. Mär 2016, 00:04
Falls du zu dem Thema noch Informationen brauchst:

Unter Linux gibt es sowas schon lang. Bekannteste Vertreter sind SELinux und AppArmor. Mit diesen kann man jedes Programm (auch als root laufende) sehr detailiert einschränken. Auch hier wird ein Whitelistprinzip angewendet. Für die in Linux enthaltenen Pakete gibt es dann direkt mitgelieferte Regelsätze, die beschreiben, was entsprechende Programme dürfen.

Das Erstellen eines solchen Regelsatzes ist jedoch recht aufwendig. Im Allgemeinen wird SELinux dafür in einen Modus versetzt, der alle Zugriffe zulässt. Anschließend wird mitgeloggt und daraus ein Profil erstellt. Man geht also davon aus, dass das Programm während es läuft sicher ist und nur das tut, was es tun soll. Natürlich kann man auch manuell nacharbeiten.

Generell ist der Ansatz von der Idee her nicht schlecht. Meiner Meinung nach ist er für Endanwender allerdings denkbar ungeeignet. Der durchschnittliche Benutzer hat keinerlei Ahnung von gar nichts und kann mit Begriffen wie Administrator, Berechtigung, Programmverzeichnis, Exe usw. überhaupt nichts anfangen. Für das Härten eines Servers sieht die Sache anders natürlich dabei aus.

Die größte Gefahr stammt daher meiner Meinung nach aus dem Umgang mit ausführbarem Code unter Windows. Wenn ich als erfahrener ITler selbst nicht mehr in der Lage bin, Werbung vom richtigen Downloadbutton auf einer Webseite zu unterscheiden, dann läuft etwas gewaltig schief. Unter Linux fährt man daher seit Jahrzehnten mit Paketlisten. Nahezu alle was ich auf dem Desktop brauche ist mit dem gleichen, einheitlichen Befehl installiert. Software herunterladen und installieren ist vollkommen out und verpönt. Toll wäre es, dies in der Microsoftwelt zu etablieren.

Natürlich ist Linux auch nicht Virenfrei. Aber das Einfallstor ist nicht der dumme Nutzer, der die Rechnung.exe aus dem Anhang öffnet. Es sind Bugs in Programmen, die man irgendwann schon in den Griff bekommen wird. Dass ich meine Programme aus bekannten, verifizierten Listen beziehe, ist ein riesiger Vorteil in Sachen Sicherheit und auch Einfachheit.

Sorry, das ist jetzt etwas ausgeartet, aber vielleicht interessiert's ja jemanden...
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
xbkbk

Registriert seit: 9. Jul 2012
Ort: 37083 Göttingen
61 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Softwareidee für Antivirenergänzung [Lösungsansätze gesucht]

  Alt 29. Mär 2016, 00:43
Zitat:
Also bei mir bekommt ein Programm nur Admin-Rechte, wenn ich es will und nicht wenn es das Programm will.
Bei mir auch, allerdings ist das ganze für Personen gedacht, die wahllos Sachen ausführen und dann zumindest etwas sicherer fahren können, wenn sie sehen, dass da in diverse umterschiedliche Verzeichnisse geschrieben wird und Services installiert werden.

Zitat:
Dann fragt dich das Programm, ob es eine DLL ins Systemverzeichnis kopieren darf. Du sagst ja und schwupps löscht und ersetztes System DLLs. Und ob es dir eine böse DLL ins Systemverzeichnis kopiert, weißt du dadurch auch nicht.
Das sicher nicht, aber man weiß, welche dlls ersetzt werden. Das Programm soll dann eine Sicherheitskopie von den ersetzten Dlls anlegen (inkl. Textdatei, wo die her sind) und das Ersetzen gestatten und wenn man merkt, dass etwas nicht stimmt, kann man sie schlimmstenfalls per LiveCD zurückkopieren.

Zitat:
Generell ist der Ansatz von der Idee her nicht schlecht. Meiner Meinung nach ist er für Endanwender allerdings denkbar ungeeignet. Der durchschnittliche Benutzer hat keinerlei Ahnung von gar nichts und kann mit Begriffen wie Administrator, Berechtigung, Programmverzeichnis, Exe usw. überhaupt nichts anfangen. Für das Härten eines Servers sieht die Sache anders natürlich dabei aus.
Für den durchschnittlichen Endnutzer ist das tatsächlich nichts, sondern für "etwas" erfahrenere Nutzer. Ich habe diverse Freunde, die sich mit Computern ausreichend gut auf der Nichtentwicklerebene bewegen, aber dennoch etwas Ahnung von den Vorgängen haben und ich glaube für Nutzer, die generell mit Windoof umgehen können, sich aber trotzdem Müll aus dem Netz ziehen wär das eine relativ brauchbare Lösung.

Dass das umter Linux schon recht gut umgesetzt wird weiß ich und das ist auch das Vorbild meiner Überlegung, sowas in Windows auch einzubinden.

Die Sache mit dem Rolf war nicht so gemeint, dem Admin bloß nen anderen Namen zu geben, sondern dafür zu sorgen, das ein Programm, das Admjnrechte hat, sich nicht ganz frei austoben kann wie als admin üblich. Die "Admin"Rechte wären dann useless, aber der Rolf (an sich auch useless) soll die Schnittstelle zwischen bekannten Adminrechten und dem Nutzer sein, wie in einer halben Sandbox, indem Rolf zwar auch alles gestatten kann, aber im Gegensatz zum bekannten Admin erst nach Durchwinken vom User. Das soll mit dem angesprochenen Hook geschehen, der ja nur mit Adminrechten umgangen werden kann (soweit ich weiß - wenn nicht ist die ganze Überlegung natürlich sinnfrei), was aber nichts wird, da dem Admin die Rechte dazu fehlen. Rolf soll sie aber auch nicht bekommen (den Hook auszuhebeln) und dann klappt das ganze so, dass ich etwas als Admin ausführen kann oder als Rolf und letzterer lässt die Änderung am System nur zu, wenn der Nutzer sein " okay" gibt.

Sicherlich ist das dann auch nicht die ultimative Lösung, da die Zielgruppe "ganz unerfahren" logischerweise ausscheidet, die Zielgruppe "hab ich nicht nötig, weil ich weiß was man installieren sollte" auch, aber für "ich kenne mich mit Computern aus, lade mir aber gerne/umabsichtlich Mist runter" wär das genau das richtige. Letztere Zielgruppe ist glaube ich die schrumpfende Mittelschicht der Anwender, für die das genau das richtige wäre.

Und es muss ja nicht unbeding die bekannte Rechnung.exe sein. Manchmal lädt man sich ein Programm von Chip.de runter und der Installer schlägt einem standardmäßig aktiviert vor, dies umd das noch gleich mit zu installieren und dann hat man den Salat. Das ist schon häufiger die Ursache gewesen, dass mich Leute gefragt haben, ob ich ihren Müll entfernen kann. Sowas kann mal passieren und wenn man nicht 100% weiß wo das sitzt oder dass das passiert (bzw beides) hat man verloren. Darum halte ich es für halbwegs sinnvoll, auch wenn es die bekanntesten Zielgruppen nicht bedienen kann.

Zitat:
Apropos dein "Nö", das macht Windiws bei aktivierter UAC so wie so und fragt nach einem Benutzerkonto mit den nötigen Rechten.
Aber nicht so, wie ich das meine. Die UAC kommt einmal umd dann ist das Programm nach klick auf Ja oder Yes dauerhaft fähig, alles zu tun und man bekommt auch nicht mitgeteilt, was genau denn die UAC erlauben soll. Das ist der Punkt, an dem ich ansetzen wollte.
Felix
  Mit Zitat antworten Zitat
xbkbk

Registriert seit: 9. Jul 2012
Ort: 37083 Göttingen
61 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Softwareidee für Antivirenergänzung [Lösungsansätze gesucht]

  Alt 29. Mär 2016, 00:52
Mein Problem mit der UAC ist, dass sie fragt "bla.exe möchte Adminrechte. Ja Nein" was ich haben wollen würde ist dann sowas wie "bla.exe möchte in Verzeichnis xyz und Unterverzeichnissen Lesen und schreiben". Checkboxen mit "Lesen", "Schreiben", "Unterverzeichnisse auch" und Buttons "markiertes erlauben" und "nichts da!"
Felix
  Mit Zitat antworten Zitat
FarAndBeyond
(Gast)

n/a Beiträge
 
#8

AW: Softwareidee für Antivirenergänzung [Lösungsansätze gesucht]

  Alt 29. Mär 2016, 03:25
Das klingt ja nach RBAC & Co. ähnlich wie GRSecurity oder FreeBSD oder oder...

Willst du das wirklich selber bauen...? Das erfordert spitzenmäßige OS Kenntnisse, zumindest wenn das Ganze auch was taugen soll...
Ich hätte gerne 'ne SRC-Kopie als Delphi-Code, in den ich mich dann die nächsten 20 Jahre einarbeiten kann...

Aber "AV-Ergänzung" finde ich lustig.. die AV-Software macht dann alles wieder kaputt was die Sicherheitssoftware mühsam etabliert hat...

Zitat:
Sinnvoll wäre auch, dass dieses Programm dauerhaft im Hintergrund läuft und bei dem Start einer .exe erst fragt, ob die .exe überhaupt gestartet werden soll und dann bei (fast) jeder Kleinigkeit (siehe oben) erneut eine Bestätigung einholt.
Zum Teil macht Windows das ja schon und sinnvoll ist das allemal, aber hast du mal Software installiert auf einem gut abgesicherten Rechner? Das nervt unbeschreibbar, alleine die Registry-Zugriffe bei vielen Installationen sind das pure Grauen... Danach weiß man allerdings genau wer wohin macht... Oder die NVidia-Treiber-Systemsteuerung, die einfach einfriert, wenn sie gewisse Rechte nicht bekommt und dann bekommst du gar keine Fehlermeldung und auch keine Abfrage... es läuft einfach nicht mehr und man kann den Grafikkarten-Treiber nicht einstellen usw. usw....
Sowas macht hübsch aggressiv... alleine schon was man da für Zeit reinbuttert...

Zitat:
Sollte ich das Projekt irgendwann fertigstellen, werde ich es hier als open Source einstellen
Einen breiten Absatzmarkt wird es wohl auch nie geben... (ist vielleicht auch ganz gut wenn viele Leute 'nen Blick drauf werfen, desto mehr potentielle Fehlerquellen werden aufgedeckt)

Zitat:
z.B. noch viel mehr Programme, die man nie haben wollte oder wunderschöne Werbeanzeigen, die alle 2 Minuten erscheinen etc.), die Antivirenscanner oft nicht sehen. Generell bin ich enttäuscht von Antivirenscannern, weshalb ich diese Lösung als (zumindest für etwas fortgeschrittenere User) sinnvoll ansehe.
BrowserLösungen gibt es doch schon: alles was in Richtung uMatrix, uBlock und NoScript & Co. geht sieht ganz gut aus und AV-Software ist und war schon immer Spitzenklasse, zumindest für die Verkäuferseite... ist halt 'ne Geldmaschine...

Ich glaube, dass man soetwas nur mit extrem starker Nutzungseinschränkung bauen kann. Jede Abfrage/oder Meldung für normle Nutzer wie UAC & Co. sind ohne Bedeutung wenn der Nutzer sie nicht beantworten kann oder versteht was da eigentlich passiert.

Ist aber ein interessantes Thema so eine Software für Standard-Windows-Versionen zu bekommen... Groß ist die Auswahl da ja nicht, oder ich hab' bis jetzt an der falschen Stelle geschaut...

Vielleicht werde ich in 100 Jahren auch mal so gut, dann greife ich das auf jeden Fall auch auf...
Viel Erfolg!
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
8.316 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Softwareidee für Antivirenergänzung [Lösungsansätze gesucht]

  Alt 29. Mär 2016, 05:54
für "ich kenne mich mit Computern aus, lade mir aber gerne/umabsichtlich Mist runter" wär das genau das richtige. Letztere Zielgruppe ist glaube ich die schrumpfende Mittelschicht der Anwender, für die das genau das richtige wäre.
Dafür gibt es ja diverse Sandbox Tools oder VMs. Das ist tausendmal einfacher als ständig irgendetwas zu bestätigen. Hat man sich was eingefangen, landet es nur in der Sandbox oder in der VM. Und die VM kann man einfach resetten auf den letzten Zustand.

Dass das mit der Bestätigung nicht so gut klappt, wenn sich jemand nicht gut auskennt, sieht man daran, dass viele dann einfach UAC Anforderungen ohne zu lesen bestätigen. Wenn dann noch mehr Fragen kommen, wird man erst recht abgestumpft...
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.188 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

AW: Softwareidee für Antivirenergänzung [Lösungsansätze gesucht]

  Alt 29. Mär 2016, 07:07
ob es üblich ist, dass diese Programme Hooks bemerken und sich dagegen wehren.
Auch wenn es einfach ist Hooks zu umgehen bin ich ziemlich sicher, dass die wenigsten Programme dies tun.
Gefühlt würde ich sagen dass Anti-Virenprogramme eher (ziemlich wahrscheinlich) Hooks umgehen,
Viren oder generell Malware wahrscheinlich nur zum Teil (Ich würde mal unqualifizierte ~10% in den Raum werfen) Hooks umgehen.
Bei "normalen" Programmen liegt der Anteil wahrscheinlich unter 1%.

Das sind wie gesagt komplett in den Raum geworfene Zahlen, aber ich denke mal dass sie nicht allzu fern von der Realität sind.
Wenn nicht wäre der ring0 Kernelmode Hook das, was ich ausprobieren würde.
Das dürfte wahrscheinlich noch ein ganzes Stück schwieriger werden als Ring3 Hooks (und das wird schon nicht soo einfach).
Außerdem kannst du dann Delphi schon mal vergessen (falls du vor hattest dafür Delphi zu verwenden).

Da du dich da auskennst frage ich einfach mal, um mir die Recherche zu ersparen, ob es ein vertretbarer Mehraufwand beim Nutzen des fertigen Programmes ist und / oder nur die Programmierung weit aufwändiger ist?
Ich denke nicht dass es das Wert ist.
Ich würde zumindest mal in Ring3 anfangen und einfach mal Copy oder/und CreateFile hooken und ein bisschen rumtesten ob sich meine Zahlen oben bestätigen.
Wenn sich herausstellt (was ich nicht denke), dass jedes 2. Programm deine Hooks umgeht (oder ganz allgemein für deinen Geschmack "zu viele") dann musst du dir die Ring0 Hooks vielleicht doch mal anschauen. Aber würde erstmal Ring3 antesten.

Da Hooks allgemein offensichtlich recht einfach umgangen werden können, stellt sich mir die Frage, ob es überhaupt möglich ist, das, was ich vor habe, so umzusetzen, dass es nicht umgangen werden kann.
Es kann ziemlich leicht umgangen werden. Aber man muss es halt tun.
Und ich denke wie gesagt, dass es unterm Strich mindestens 90% aller Programme NICHT tun.

Was mir aber noch eingefallen ist: Könnte man nicht das umgehen von Hooks umgehen indem man GetProcAddress hookt?
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf