Moin!
»Virenbefall ist unwahrscheinlich, weil es wenige Viren gibt, die es auf Linux abgesehen haben; es gibt andere, wichtigere Angriffspunkte« mag ein Argument gegen den Einsatz eines Virenscanners auf Linux-Desktops sein. Ein handfestes ist es aber nicht, sondern eher ein hypothetisches, statistisches. Es mag sein, dass man ein System letztlich nur nach solchen Gesichtspunkten absichern kann. Zufrieden stellen kann und sollte das einen trotzdem nicht, da ein Schluss von »Linux-Systeme wurden in der Vergangenheit nur selten durch Viren attackiert« auf die Zukunft sehr heikel ist. Auf jeden Fall kann man nur reagieren, nicht vorbeugen, wenn man so arbeitet. Deshalb halte ich die unbekümmerten Aussagen, Viren und Co. seien kein Thema für bestimmte Betriebssysteme, für gefährlich.
Viren-Scanning ist IMMER irgendwie statistisch. Man versucht mithilfe der Datenbank möglichst viele bekannte Virensignaturen zu erkennen, erreicht dabei aber niemals 100%, sondern hofft, dass die 99%, welche in der DB stecken, auch genau die sind, die man in freier Wildbahn antrifft und deshalb abwehren kann.
Und es ist niemals wirklich vorbeugend, sondern immer reagierend. Jeder noch so toll aktuell gehaltene Virenscanner wird zwingend versagen, wenn ihm ein Virus vorgesetzt wird, der exakt so "dressiert" wurde, dass er von Virenscannern (noch) nicht erkannt wird.
Genau dahin geht momentan jedenfalls ein Trend: Customized Viren, welche gezielt so programmiert werden, dass sie den Scannern nicht auffallen, und die dann gezielt nur einer eng begrenzten, aber interessanten Anwendergruppe (z.B. einer bestimmten Firma) geschickt werden.
Deshalb ist das Konzept eines Virenscanners tatsächlich irgendwie verfehlt. Benutzer lernen mit einem Virenscanner möglicherweise nicht, welche Anzeichen einer Mail (dem heutigen Haupteinfallstor von Viren und anderer Schadsoftware) zu einer sehr kritischen Hinterfragung des Inhalts führen sollten (also Dinge wie Textinhalt, Dateiendungen, Seltsamkeiten des einliefernden Mailservers etc.), sondern vertrauen unter Umständen dem Votum des Virenscanners (der sich nicht meldet), und öffnen eine Datei neugierigerweise dann doch mal.
Wenn ich (allerdings aus dritter Hand) höre, dass die IT-Abteilung eines großen multinationalen Unternehmens auf jedem Client und auf den Servern Virenscanner installiert und trotzdem der Viren im Netz nicht Herr werden, und man gemeinsam genutzen Dateien auf dem Fileserver trotzdem mißtrauen und mit Virenbefall rechnen muß, dann scheint doch irgendwas an diesem Konzept nicht zu stimmen.
Und das "schiefe Konzept" hat eben Windows eingeführt, indem Microsoft (als Monopolist für Officeanwendungen) ausführbare Makros in die Dokumente integrierbar machte und somit eine Grenze zerstörte, die man zuvor jedem Benutzer als eindeutiges Merkmal lehren konnte: Nur ausführbare Programme sind potentiell gefährlich, Datendateien wie Texte sind es nicht. Als weitere Grenze wurde dann abgeschafft, dass datendarstellende Programme wirklich nur die Daten darstellen, aber keinen Code ausführen: Die Outlooks dieser Welt starten in Mails enthaltene Viren ja manchmal schon beim Ansehen des Subjects.
Linux-Programme machen solchen Scheiß schon mal grundsätzlich nicht. Ich hätte also beispielsweise überhaupt keine Angst, mit irgendeinem Linux-Mailprogramm munter noch so virenverseuchte Mails abzurufen und zu sichten. Unter Windows würde dann vermutlich (genauer: hoffentlich - aber eine Garantie gibt es dafür natürlich nicht) ein Virenscanner anfangen zu meckern, dem unbedarften Benutzer eine wahnsinnige Angst machen (wegen der bedrohlich klingenden Formulierung der Meldungsbox) oder ihn vollkommen kalt lassen (weil die Meldung zu harmlos klingt), und bei Auswahl der falschen Option (z.B. nichts machen - ich will doch nur mal gucken) würde das Outlook dann wohl trotzdem befallen werden.
Diese Vermischung von ausführbarem Code und Daten hat man unter Linux nicht eingeführt. Das allein ist ein ziemlicher Sicherheitsgewinn.
Natürlich gibt es Viren unter Linux. Aber jeder Virus muß erstens als Code auf den Rechner gelangen, und zweitens ausgeführt werden. Schritt 1 ist über Mail heute kein Problem, aber Schritt 2 geht unter Windows mit seinem eklatant schlechten Microsoft-Verwischungskonzept wesentlich leichter (durch Ausnutzung von "Lücken" bzw. Systemdesigns, die absichtlich eingebaut wurden), als unter Linux. Selbstverständlich hat die Abwesenheit (auch heute noch) eines vernünftigen User-Systems Windows lange Zeit sowieso zum primären Ziel für Viren gemacht - wenn man als Virus nur gestartet werden muß, und dann automatisch (Win9x) oder sehr wahrscheinlich (WinXP) Administratorzugriff hat, ist das Leben natürlich leichter, als wenn man unter Linux lediglich die vom Benutzer beschreibbaren Programmdateien (also eigentlich fast gar keine, weil alle Applikationen idR. zentral vom Admin installiert werden) infizieren kann, oder sich alternativ erstmal durch eine Sicherheitslücke per "privilege escalation", welche ziemlich abhängig vom konkret kompilierten System ist, zum Root machen muß.
Die Argumentation pro Linux und contra Windows bei der Viren-Resistenz ist also keine ausschließlich theoretische (vergliche man ein aktuelles, sauber eingerichtetes und administriertes Linux mit einem ebenso gut eingerichtetem WinXP, wären beide vermutlich ähnlich resistent), sondern stark praxisbasiert.
Das haben Microsoft und Co. ja schon eingesehen, Stichwort Trusted Computing. Nur der Code wird ausgeführt werden, der zertifiziert bzw. signiert ist.
Diese Idee ist im allerallerersten Ansatz sicherlich verlockend, weil sie in die richtige Richtung zu gehen scheint.
Allerdings ist der aktuelle Stand beim Trusted Computing ja ein ganz anderer, und auch ein Grundproblem ist dort ja nicht gelöst: Wenn eine Signatur des Programms belegt, daß es vertrauenswürdig sei - wie kriege ich dann hin, dass ich der signierenden Stelle vertrauen kann? Die kann ja schließlich auch Scheiße bauen und einen Virus signieren, den sie einfach nur nicht erkannt hat, weil er sich entweder extrem gut getarnt hat, oder weil diese Stelle sozial kompromittiert wurde (Bestechung etc.).
Das, wofür du dir TC vorstellst, ist unter Linux nämlich eigentlich schon realisiert: Der normale Benutzer hat gar keine andere Möglichkeit, als irgendeiner höheren Stelle zu vertrauen, daß die Programme, die er ausführt, korrekt arbeiten. Und das ist an dieser Stelle eben der Admin root, welcher seinerseits den ausführbaren Code für den Benutzer read-only verfügbar macht und so Manipulationen am Code durch die User verhindert - genauso, wie es eine digitale Signatur bei TC es auch tun würde. Das Hinzufügen neuer Programme ist dem einzelnen Benutzer zwar möglich (es gibt also keine Whitelist), damit schädigt er sich aber in erster Linie nur selbst.
Und wenn man argumentiert, ein Virus könne irgendwie dann doch root werden - das wäre grundsätzlich auch mit Whitelists denkbar, denn auch die haben mit Sicherheit Lücken. Wäre z.B. nicht undenkbar, dass ein Virus die gleiche MD5-Prüfsumme hat, wie der Apache-Webserver oder der Perl-Interpreter - um nur einen kleinen Ansatzpunkt zu nennen.
- Sven Rautenberg