Alexander (HH): Massenabgleich -> installierte Software erkennen ?

Beitrag lesen

Moin Moin!

Die Aufgabe ist ein Suchsystem zu entwickeln, das Anhand einer Datenbank einen System-Abgleich fährt um so installierte Software zu finden. Die Datenbank umfasst ca. 20T Einträge.

Wozu das?

Für fremde Systeme würde ich so etwas nie machen wollen, da gibt es viel zu viele unkontrollierbare Randbedingungen. Schon allein damit angefangen, dass nicht jede Software bei der Installation die Registry vollmüllt. Meine kleinen Tools, die ich mir auf meine Rechner werfe, installiert man wie die Anwender es vom antiken MacOS gewohnt waren: Archiv öffnen, Dateien/Dateibaum in ein Verzeichnis kopieren, fertig. Deinstallation entsprechend durch Löschen. Manche Leute machen das auch mit Software, die eigentlich über einen fetten Installer installiert werden will, mit wechselndem Erfolg.

Um da wirklich alles zu finden, ist das Abgrasen der Registry nur ein kleiner Schritt. Letztlich mußt Du so ziemlich jede Datei filzen, minimal ausführbares Zeug (*.exe, *.dll, *.cpl, *.cmd, *.bat, *.class, *.jar, *.hta, ...). Stichwort: Signaturen.

Als Programmiersprache würde VB.NET oder C# zum Einsatz kommen (Windows-Clients).

Das macht es nur noch schlimmer, weil Du die .NET-Runtime brauchst. Natürlich immer die passende Version, und für jede Windows-Version, die Dir unter die Finger kommt. Und nein, .NET war nicht immer bei Windows dabei.

Für Systeme, die unter Deiner Kontrolle stehen (sollten), ist das mal der grundverkehrteste Ansatz. Laß den Wildwuchs gar nicht erst zu. Sieh zu, dass alle Rechner Image-kompatibel sind, oder wenigstens aus wenigen Images aufgesetzt werden können. Konfiguriere die Systeme so, dass es ein (logisches) Laufwerk für das System und ein weiteres für die lokalen Daten gibt. Halte alle wichtigen Daten auf gut gesicherten Servern, gib den Nutzern nur so viel Rechte wie absolut nötig. Die nächste Schicht ist ein System, das alle notwendige Software auf die Rechner verteilt und automatisch konfiguriert. Ein Grundpaket (z.B. VPN-Client, Office-Paket, AV-Software) bekommen alle, den Rest bekommen die Leute nach Bedarf eingespielt, entweder basierend auf Gruppen oder über eine Art Software-Laden.

Spinnt ein Rechner, wird das Image über das Systemlaufwerk gebügelt und die Software neu eingespielt. Ende der Diskussion, alles sauber. Bei hartnäckigem Virenbefall wird halt die Platte erstmal komplett genullt. Neue Hardware wird analog neu aufgesetzt. Bonuspunkte für eine automatische Sicherung der lokalen Daten im Hintergrund.

Auch sehr lesenswert, wenn Du Dich erstmal aus den Klauen Microsofts befreit hast: http://www.infrastructures.org/bootstrap/ALL.shtml

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".