My Universe Logo

Pretty Hard to Protect

Posted by Jesco Freund at Dec. 14, 2010 10:52 p.m.

Unter diesem Titel hatte schon Captain Crunch anno 2006 einen recht bissigen, aber treffenden Artikel zu PHP geschrieben. Wirklich gebessert hat sich seither nichts – wenn pro Version (nach über einem halben Jahr) gefühlte 10 Vulnerabilities gefixt werden (siehe Release-Announcement für 5.3.4), zeugt das nicht von hohem Sicherheitsbewusstsein der PHP-Entwickler, sondern schlicht von miesem Qualitätsmanagement.

Die zahlreichen kritischen Bugs treten übrigens (fast) ausschließlich in den Extensions auf. Das legt für mich den Schluss nahe, dass der Ansatz, alle (Zusatz-) Funktionalität in (in C geschriebenen) Extensions zu organisieren, unter Qualitätsaspekten vielleicht nicht der beste ist. Andere Interpreter-Sprachen wie Perl oder Python konzentrieren sich bei der Programmierung mit C auf den Interpreter-Kern und lagern Zusatzfunktionalität in Module aus, die in der jeweiligen Interpretersprache selbst geschrieben sind.

So können diese auch von weniger erfahrenen Programmierern entwickelt und maintained werden – in Python oder Perl (oder auch PHP) selbst ist es einfach schwierig bis unmöglich, eine NULL pointer dereference oder einen Buffer Overflow zu provozieren. Dazu bedürfte es schon eines Bugs im Interpreter, dessen Code aber verhältnismäßig übersichtlich ist und daher einigermaßen gut auditiert werden kann.

Die ziemlich schlechte Qualität der PHP-Extensions ist meiner Meinung nach ein Stück weit dem Entwicklungsmodell geschuldet – Besserung ist daher erst zu erwarten, wenn hier ein Umdenken seitens der tonangebenden PHP-Entwickler stattfindet. Das ist allerdings derzeit nicht erkennbar…

No comments | Defined tags for this entry: Perl, PHP, programming, python, security

Comments

No comments