« Review Meeting November 2006 Einführung in AJAX mit PHP »

Notizen zu PHPSecInfo

11. November 2006 von Tom

Dieser Text enstand in der Vorbereitung des November 2006 Treffens am 2006-11-09.

PHPSecInfo

Ein Projekt vom PHP Security Consortium
http://phpsec.org/projects/phpsecinfo/
Von Ed Finkler (Lead)
Unter Mitarbeit von Mark Wallaert , Paul Reinheimer

Anwendung:

PHPSecinfo ist ein Script zum Testen von PHP Einstellungen. Der Ansatz ist dabei, sicherheitsrelevante Informationen aus den Einstellungen auszuwerten und Empfehlungen zu geben. Die Ergebnisse werden dabei phpinfo() ähnlich ausgegeben.

Status:

Das Programm ist sehr neu und erst seit kurzem veröffentlicht. Es befindet sich noch in einer experimentellen Phase, einige schwerwiegende Fehler wurde mitlerweile beseitigt, einige sind noch in der aktuell verfügbaren vorhanden.
Das Projekt organisiert sich über die Mailingliste, SVN soll kommen. Die Lizenz steht noch nicht fest, PHP und GPL waren im Gespräch.

Zielgruppe:

PHP User, die Scripts auf Server installieren und zum Laufen bringen können und die keine erfahrenen Entwickler sind. Sie sollen PHPSecInfo einfach installieren und ausführen können, um die Sicherheit der Umgebung zu testen. Ferner soll dies das Sichheitsbewusstsein in dieser Zielgruppe erhöhen, sodass es auch zur Schulung dient.

Historie:

  • ~ 2006-01 Idee
  • ~ 2006-03 Entwicklung des Test-Frameworks
  • 2006-08-01 Version 0.1.0 PHPSecInfo wird in einer ersten Distribution gebündelt.
  • 2006-10-20 Version 0.1.0 Projekt wird offiziell unter dem PHP Security Consortium veröffentlicht
  • 2006-10-23 Version 0.1.1
  • 2006-10-30 Version 0.1.1a

Anwendung:

Das Paket wird auf den Server kopiert und ausgeführt. Bisher ist keine Konfiguration nötig.
Unterstützte PHP Versionen:
* PHP4
* PHP5

Genauere Betrachtung:

PHPSecInfo hat zwar eine Funktion im globalen Namensraum [phpsecino();] ist sonst aber objektorientiert geschrieben. Dadurch können eigene Tests und Testgruppen hinzugefügt werden. Es ist somit möglich, die für einen spezielleren als den allgemein angedachten Einsatz, PHPSecInfo modular zu erweitern. Auch die Struktur im Dateisystem ermöglicht das einfache hinzufügen oder entfernen von Tests.

So zeigen einige PHP Entwicklerinnen und Entwickler Interesse daran, dies in bestehende Webapplikationen zu integrieren, um der breiten Anwenderschicht relevante Informationen mit an die Hand geben zu können (PostNuke; Smarty Templates).

Anderen ist das Modell ohne Konfiguration der Werte gegen die getestet wird zu wenig aussagekräftig und wünschen sich einen Einsatz mit individuell konfigurierbaren Werten.

Bewertung:

Es handelt sich um eine Negativbewertung, die Postivbewertung muss jemand anders vornehmen. Es werden sowohl der generelle Ansatz als auch speziell die aktuelle Version bewertet.

  • Bedingt Empfehlenswert: PHPSecInfo ist vom Ansatz her für einen eher allgemeinen und temporären Einsatz, niemals aber alleinig und endgültig einsetzbar.
  • Fragliche Ergebnisse: Testergebnisse müssen durch das Lesen des Quellcodes hergeleitet und verifiziert werden, damit eine zuverlässige Einschätzung des Ergebnisses durch den Rezipienten möglich ist. Immer wieder stellt sich heraus, das Tests fehlerhaft sind. Der eigenen Zielgruppe wird es damit nicht gerecht.
  • Begrenzter Nutzen: PHPSecInfo vereinfacht die Sachverhalte und versucht Informationen zusammenzufassen. Um sich dabei nicht festzulegen, werden recht wage Formulierungen gewählt. Der konkrete Nutzen für die Zielgruppe ist also begrenzt, es werden zB. keine Informationen ausgegeben, welche Werte die Einstellungen haben und wo die Einstellung geändert werden kann.
  • Technisches Limit:PHPSecInfo nutzt PHP Boardmittel (es ist in PHP geschrieben) um über die Sicherheit der Webapplikation bzw. der Umgebung in der sie läuft zu informieren. Der Rahmen PHP wird nicht verlassen, die Aussagekraft von PHPSecInfo ist also technisch auf PHP begrenzt. Dies ist vorallem wichtig zu wissen bei einer Integration in bestehende Webapplikationen, da hier ein Angreifer die zu prüfenden Werte z.T. beeinflussen kann ohne dass PHPSecInfo über diesen Umstand informiert.
  • Modularer Aufbau: Er ermöglicht die Erweiterung mit eigenen Tests, kann also für eigene Projekte und genauere Tests genutzt werden. Dies funktioiert in der Praxis schon ganz gut.

Fazit:

Das Program ist für einen breiten Einsatz durch unerfahrene Entwickler nicht geeignet.

Ausblick:

Da das Programm erweiterbar und quelloffen ist, ist eine Weiterentwicklung möglich. Das Projekt muss dafür allerdings noch einige grundlegende Entscheidungen treffen, die den Weg dafür offen machen. Es wäre wünschenswert wenn dies geschehen würde, allein um die Qualität der bestehenden Tests zu verbessern und Fehler zu beseitigen und der an sich durchaus nützlichen Grundidee zu einer angemessenen Umsetzung zu verhelfen.

Quellen:

Einen Kommentar schreiben

5.0 Jahre Badge