PHPGangsta - Der praktische PHP Blog

PHP Blog von PHPGangsta


Archive for the ‘Sicherheit’ tag

„Klopf-Klopf“ … wer da?

with 6 comments

Gastartikel von Oliver Sperke.

Ich bin 35 Jahre alt und seit 11 Jahren selbständiger Webentwickler. Mein Fokus liegt dabei auf der Erstellung, Beratung und Optimierung in den Bereichen High Performance, Usability und Sicherheit in den gängisten Internetsprachen: PHP, HTML, Javascript und CSS. Besucht auch mein GPlus Profil oder mein aktuelles Projekt.

Vor langer Zeit fand ich einen Artikel, indem einige Möglichkeiten genannt wurden, seinen OpenSSH Server abzusichern. Da auch hier das Thema Sicherheit sehr komplex ist und es oftmals nicht leicht ist zwischen echtem Nutzen und „Security through obscurity“ zu unterscheiden, möchte ich hier speziell über Portknocking sprechen. Portknocking, auch in seiner Basisfunktion dürfte vielen noch unbekannt sein, obwohl sie sehr effektiv ist. In diesem Tutorial möchte ich noch einmal kurz die Grundlagen erklären und einige interessante Möglichkeiten aufzeigen, wie man das Prinzip weiter spinnen kann.

Weiterlesen »

Written by Oliver

August 31st, 2012 at 10:20 am

Sicherheitsupdate für PHP bei CGI-Verwendung

with 6 comments

Gestern wurden neue Versionen für PHP 5.4 und 5.3 released, namendlich: 5.4.2 und 5.3.12. Grund für diese neuen Versionen ist eine gravierende Sicherheitslücke bei der Verwendung von PHP im CGI-Modus.

Aber erstmal Entwarnung: Wahrscheinlich nutzt ihr kein CGI mehr sondern FastCGI oder mod_php, dann seid ihr nicht gefährdet. Wer aber noch auf die alte CGI-Schnittstelle setzt sollte sich schleunigst informieren und updaten um schlimmeres zu vermeiden, denn dank dieser leicht auszunutzenden Lücke ist es jedermann möglich, die Quelltexte euer PHP-Dateien im Document-Root anzuschauen oder auch beliebigen eingeschleusten PHP-Code auszuführen.

Wer seine alte Installation nicht anfassen darf oder kann, für den gibt es Hilfe in Form einer Rewrite-Regel:

Weiterlesen »

Written by Michael Kliewe

Mai 4th, 2012 at 9:17 am

Posted in PHP

Tagged with , , , , , ,

Local File Inclusion: Einige Beispiele

with 10 comments

Ich habe schon länger keine sicherheitsrelevanten Probleme mehr gepostet, heute schauen wir uns ein paar häufig gemachte und exisierende Fehler an. Schaut euch diesen Code-Schnipsel an:

<?

$url = $_POST['imageUrl'];

$content = file_get_contents($url);

// Put the content of that URL into a database for later use/display

Der Benutzer der Webseite kann also in ein Formular eine URL eintippen, beispielsweise die URL eines Bildes, einer XML-Datei oder einer Webseite. Das Script ruft diese Resource (z.B. ein Avatar Bildchen) ab und speichert es auf der Festplatte oder in einer Datenbank.

Auf einer anderen Seite kann der Benutzer (und vielleicht alle anderen Besucher der Webseite) dieses Bild dann abrufen.

Gibt es hier ein Sicherheitsloch? Ja, gleich mehrere! Was passiert wenn der Benutzer zum Beispiel folgende URLs eingibt:

Weiterlesen »

Written by Michael Kliewe

März 16th, 2012 at 10:05 am

2-Faktor-Authentifizierung mit dem Google Authenticator

with 21 comments

Viele größere Webdienste bieten mittlerweile die 2-Faktor-Authentifizierung an, PayPal, Amazon, Facebook und nicht zuletzt Google. Mit der 2-Faktor-Authentifizierung muss neben dem Benutzernamen und Passwort auch noch ein Einmal-Passwort, ein sogenanntes One-Time-Token eingegeben werden, das von einem Gerät unabhängig vom PC generiert wird und nur einmal gültig ist. Sollte es also jemand schaffen und das Passwort erraten oder mitschneiden, hilft es dem Angreifer wenig denn er muss auch noch Zugriff auf das Hardwaregerät bekommen, und das sollte schwierig sein.

Die Generierung von solchen Codes ist nicht sonderlich schwer, beide Parteien (das Gerät und die Webseite) müssen nur ein gemeinsames “shared secret” kennen (auch Seed genannt), und aufbauend auf diesem dann sich immer ändernde Codes generieren können. Dazu gibt es RFCs, beispielsweise RFC 4226.

Weiterlesen »

Written by Michael Kliewe

März 13th, 2012 at 10:02 am

Client-Zertifikate als sicherer Login-Ersatz?

with 9 comments

Wer auf Sicherheit achtet und seinen Webseitenbesuchern etwas Privatsphäre spendieren möchte installiert ein SSL-Zertifikat auf dem eigenen Webserver. Damit ist es Besuchern möglich verschlüsselt mit dem Webserver zu kommunizieren und ein eventuell vorhandener Mithörer im offenen WLAN guckt dumm aus der Wäsche. Spätestens wenn es um Login-Daten oder andere persönliche Informationen geht sollte HTTPS eigentlich mittlerweile Standard sein, aber auch für normale Seiten lohnt es sich, denn bereits eine URL verrät einiges über eine Person, auch wenn die Seite eigentlich nichts geheimes enthält.

Weiterlesen »

Written by Michael Kliewe

Februar 11th, 2012 at 11:13 am