Kein Auge trocken...

Man hat mich einmal beschuldigt (das war glaube ich nach einer Party in der Erziehungswissenschaftlichen Fakultät. Junge Dinger, die Grundschullehramt studieren. Da kriegt man als Kerl den freien Eintritt und den Getränkegutschein. Verkehrte Welt und so. Nach dazu keine geschlossene Angelegenheit wie z.B. die Parties bei den Tiermedizinerinnen, wo man nur reinkommt, wenn man jemanden kennt!), daß für mich ein Tag nur dann gut anfängt, wenn ich mich schon direkt nach dem Aufwachen am Unglück anderer Leute erfreuen kann.Das ist natürlich Käse, denn die Qualität meines Tagesanfangs misst sich, wie ich bereits erwähnte, an der Menge von Speck und Eiern, die ich noch im Kühlschrank habe. Wenn obige Anschuldigung aber richtig gewesen wäre, dann wäre das Aufstehen in den letzten Tagen eine großartige Sache gewesen. Oder genauer: Seit dem 15. April. Denn der 15. April war der Tag, an dem das Entwickler-Team hinter dem OSS-Virenscanner ClamAV alle Versionen vor 0.95 lahmgelegt hat. Rein technisch geschah das durch ein einfaches Signaturupdate, wie sie mehrmals täglich stattfinden - nur diesmal eines, das die alten Versionen nicht vertragen haben:

LibClamAV Error: cli_hex2str(): Malformed hexstring: This ClamAV version
has reached End of Life! Please upgrade to version 0.95 or later. For
more information see  www.clamav.net/eol-clamav-094 and
www.clamav.net/download (length: 169)
LibClamAV Error: Problem parsing database at line 742
LibClamAV Error: Can't load daily.ndb: Malformed database
LibClamAV Error: cli_tgzload: Can't load daily.ndb
LibClamAV Error: Can't load /var/db/clamav/daily.cld: Malformed database
ERROR: Malformed database

Man muß an dieser Stelle übrigens die Eleganz des ganzen bewundern - ist doch obiges gleich das beste Beispiel dafür, warum sich die Entwickler zu diesem Schritt entschlossen haben. Aber weiter im Text: Die ClamAV-Entwickler halten es schon seit langem so, daß ihr Scanner immer dann überhaupt nicht mehr funktioniert, wenn seine Datenbank kaputt ist. Und da der Update-Prozess die Signaturen nicht selbst sondern über einen Reload des Scanners verifiziert, ist das Desaster perfekt: Die neuen, unverdaulichen Signaturen befinden sich auf der Platte, es gibt keine alte Kopie, auf die man einfach zurückspringen könnte (es sei denn, man macht selbst Backups) und ClamAV stellt die Arbeit ein. Aber nicht nur ClamAV selbst, sondern auch alle Produkte, die gegen die alten Libraries gelinkt sind.

Und dann knallt es natürlich. Und wie. Um mal zwei typische Szenarien zu nennen:

  • Wenn man amavisd-new benutzt und dort den dämonisierten Scanner des ClamAV-Projekts mit Namen “clamd”, dann wird amavisd-new nach dem finalen Signaturupdate jede einzelne Mail mit einem temporären Fehler abweisen. Erste Berichte sprechen von “deliverability rates”, die plötzlich um drei bis fünf Prozent gesunken sind - und das, obwohl mir auf Anhieb kein größerer ISP einfällt, der auf seinen Gateways clamav einsetzt.

  • Im Bereich der HTTP-Proxy-Filter gibt es ja z.B. HAVP oder DansGuardian. Beide kann bzw. muß man gegen die “libclamav” linken - und ist die zu alt, dann stellen auch diese beiden Programme ihren Dienst ein.

Der Donnerstag/Freitag (je nach Zeitzone) dürfte für einige Leute wirklich interessant geworden sein. Wollen wir nur hoffen, daß sie an diesen Tagen keine sonstigen Notfälle hatten Und man muß die Entwickler auch für ihr Timing bewundern: Die meisten Leute in Europa dürften erst am Freitag mitbekommen haben, daß ihre Mailserver stehen. Das heißt nicht nur, daß der mögliche geschäftliche Schaden minimiert wurde (betrifft ja nur einen WOchentag, und man hat das ganze Wochenende Zeit, das zu fixen), sondern auch, daß sie damit genau die Leute verärgert haben, die in letzter Instanz bestimmen, welche Virenscanner eine Organisation einsetzt (Reminder hin, Reminder her, wenigstens auf der Seite, die ein veralteter ClamAV immer zur Informationssuche empfiehlt, hätte man ja ganz oben in roter Farbe eine Warnung einfügen können, wenn man sich schon darauf beruft, seit sechs Monaten zu informieren!).

Eigentlich wollte ich in obigem Absatz jetzt noch “Man kann sich auch eine Handgranate nehmen, den Stift ziehen und sich das Ding in die Hose schieben. Hat die gleiche Auswirkung wie die Killersignatur: Man tritt mit eine Knall ab!” schreiben. Das wäre dann nicht nur ein für mich ganz und gar typischer Vergleich gewesen, sondern hätte auch die typischen Stimmen (äh, “Stimmung”) wiedergegeben, die ich im Laufe des Tages mitbekommen habe. Da meint z.B. Alexander Wirt, einer der fähigsten Linux-Menschen, die ich kenne:

11:09 <@formorer> fuer die geschichte muss ich nochmal ein paar leute larten wenn ich sie das naechste mal sehe
11:10 <@formorer> cite: die Art und Weise ist ne unverschaemtheit und die muessen sich nicht wundern wenn clamav deshalb demnaechst aus distris fliegt.

Oder beispielsweise Marc Haber (der als exim4-Maintainer einen verdammt guten Job gemacht hat):

11:10 <@Zugschlus> cite: ich hab keinen clamav-mirror
11:10 <@Zugschlus> aber clamav hat ordentlich vertrauen zerstört in den letzten Tagen
11:13 <@Zugschlus> klassischer fall von “mein system läuft auch ohne User”
11:14 <@Zugschlus> nur dass clamav noch nicht groß genug ist als dass das ohne ärger funktioniert
11:14 <@Zugschlus> sicherlich sind gestern einige unternehmerische entscheidungen gegen linux und freie Software gefallen

Viele andere haben dann auch - korrekt - argumentiert, daß auf vielen älteren Distributionen neuere ClamAV-Pakete nichtmal kompilieren (bzw. noch schlimmer, daß nichtmal ./configure durchläuft). Und im Prinzip haben sie damit auch recht. Aber so ein kleines bißchen muß man sich die Entwickler dann doch mal anhören. Da schreibt Edwin Török zum Beispiel:

We have 754868 signatures right now, out of those 626061 are .mdb signatures. .mdb signatures are not supported, and not loaded by some older ClamAV versions. Is it better if they keep running the old version, thinking they have some anti-virus protection?

Und man sagt eben immer wieder - und viele Leute stimmen da zu - daß man ja wirklich schon vor sechs Monaten informiert hat. Wer also keinen Ärger hätte haben wollen, der hätte einfach am 14. den freshclam-Dämon stoppen können. Ebenso ist es richtig, daß alle alten Versionen echte Bandbreitenschweine waren - auf der clamav-mirrors-Mailingliste gab es mehr als nur einmal echt ANGEPISSTE Mirror-Betreiber, die das Pech hatten, einmal ein Signatur-Update verpasst zu haben, und deren Mirror-Server dann stupide von alten freshclam-Versionen beharkt wurden.

Man kann aus der ganzen Geschichte Lehren ziehen: Wenn man OSS-Prjekte entwickelt, die für ihr korrektes Funktionieren darauf angeweisen sind, sich regelmäßg Code nachzuladen, dann sollte man sich schon bei der Entwicklung dieser Update-Mechanismen darüber Gedanken machen, wie man solche Szenarien abdeckt. Das kann man ganz einfach machen und eine MOTD in einen DNS-TXT-RR verpacken (damit habe ich jetzt wieder etliche Leser abgehängt, oder?), die dann bei Bedarf in den Logs erscheint, kombiniert mit einer Versionierung der Update-Schemata, so daß man auch alte Clients noch unterstützen kann (für die muß es ja dann keine neuen Signaturen mehr geben). Ebenso dürfen solche Schnitzer wie die fehlende Ankündigung der EOL auf der FAQ-Seite einfach nicht passieren. Aber auch Joe Sysadmin sollte sein Fett weg kriegen: Wenn man für ein System verantwortlich ist und weiß, daß es da Software gibt, die sich häufig ändert, dann muß man eben in den sauren Apfel beißen und die Ankündigungs-Mailinglisten dieser Projekte abonnieren.

Ich selbst habe zu dem Thema keine ausgeprägte Meinung - bei mir lief überall mindestens die 0.95.3, ich war also nicht betroffen, und ich kann beide Seiten verstehen. Gefreut habe ich mich aber über das ganze Chaos schon etwas. Da macht das Aufstehen doch gleich viel mehr Spaß (ich schätze, irgendwas ist schon dran gewesen an der Eingangs erwähnten Behauptung - oder?)!

Und das nächste Mal werde ich wohl am 5. Mai mit einem Grinsen erwachen. Nur wird es dann bei denen, die Probleme bekommen, ungleich schwieriger sein, selbige zu debuggen. In diesem Sinne - schönen Sonntag noch.