Auf der DailyDave-Mailingliste gefunden:
Auf dem „Workshop on the Economics of Information Security 2010“ hat der mir vorher nicht bekannte Sam Ransbotham ein Paper veröffentlicht mit dem Titel: „An Empirical Analysis of Exploitation Attempts based on Vulnerabilities in Open Source Software“ (PDF). Zu diesem Paper gibt es auch einen Artikel auf Technology Review.
Seine Kernaussage (und ich bin sicher, ein paar Leute bei Microsoft haben das mit Freude gelesen) ist, dass Open Source Software bezüglich Sicherheitslücken die vor der Veröffentlichung gefunden werden möglicherweise einen Sicherheitsvorteil gegenüber Closed Source hat. Falls Sicherheitslücken jedoch erst nach der Veröffentlichung gefunden werden, hat Open Source den Nachteil, dass jeder die Lücken sehen und leicht analysieren kann. Angreifer werden Lücken in Open Source deshalb bevorzugt ausnutzen.
Ich halte wie Dave Aitel sowohl die These für falsch, als auch die Zahlen die er zur Untermauerung verwendet.
Argument 1: Sicherheitslücken werden von Angreifern dann ausgenutzt, wenn es sich für den Angreifer lohnt. Die meisten Angriffe auf Rechner erfolgen heute durch Software wie Adobe Flash oder den Adobe Reader über den Webbrowser auf Windows. Der Grund ist einfach. Finanziell lohnt es sich eher, einen Angriff für das Betriebssystem von 94% der Rechner im Internet zu entwickeln als für die paar Mac OS X oder Linux-Rechner, selbst wenn z.B. der Linux-Source-Code komplett vorhanden ist. Und Flash ist als Browser-Plugin am weitesten verbreitet, auch deshalb werden Exploits speziell für Flash gesucht. Obwohl Flash Closed Source ist.
Argumtent 2: Die von ihm verwendeten Zahlen stimmen einfach nicht. Man kann die Anzahl der Einträge in der National Vulnerability Database (NVD) oder irgendeiner sonstigen Schwachstellendatenbank für Open Source und Closed Source einfach nicht vergleichen. Bei Open Source ist das Standard-Fehlerbehandlungsmodell, dass wenn eine Lücke bekannt wird, für diese Lücke ein Patch entwickelt wird und in den Source-Tree eingepflegt wird. Für die nächste Lücke gibt es den nächsten Patch und auch der wird direkt eingepflegt. Weil jeder den Source-Tree ansehen kann, gibt folglich jede Lücke einen eigenen Vulnerability-Datenbankeintrag. Bei Closed Source liegt es im Interesse des Herstellers (und meist auch der Kunden), dass nicht für jede Lücke direkt ein Patch veröffentlicht wird sondern alle Lücken in einem bestimmten Programm innerhalb eines gewissen Zeitraums in einem gemeinsamen Patch veröffentlicht werden, der hoffentlich gut getestet wurde. Microsoft macht das beispielsweise sehr gerne und behebt mit einem Patch in der Regel mehrere Lücken. Natürlich steht Closed Source dann bzgl. der reinen Zahl der Einträge in einer Schwachstellendatenbank besser da. Daraus jedoch Rückschlüsse auf die Sicherheit ziehen zu wollen ist dumm und naiv.
Im Ergebnis lässt sich mal wieder nur feststellen, dass Sam Ransbotham eine weitere Chance für einen realistischen und echten Vergleich der Sicherheit von Open und Closed Source vertan hat. Eine aussagekräftige und unabhängig überprüfbare Real-World Analyse fehlt mit leider bis heute. Aber egal, gehackt wird sowieso alles 🙂