Hi Forum,
wie ihr vllt merkt befasse ich mich gerade mit dem Thema Sicherheit in Webanwendungen. (siehe anderer Fred)
Habe mir gedacht (oder gehofft), wir könnten hier ein paar themen durchkauen im Bezug auf die Sicherheit von Webanwendungen. Da hier ja auch studierte Fachleute aktiv sind, hab ich großes Vertrauen in dieses Forum (im gegensatz zu anderen, in denen lediglich Posts aus anderen Foren in abgeänderter Form wiedergegeben werden und keiner eigntl so recht weiß, was er eigentlich von sich gibt
)
Vielleicht könnten wir mal mit den Sessions anfangen und uns danach weiterhangeln. Wär toll das mit euch durchzukauen und euere Meinungen zu hören.
Ich bringe mal ein paar Infos:
Session-Fixation
Wie Ihr sicher alle wisst, werden Sessionschlüssel (sog. Sesson-ID's) für die zur Identifizierung in Webanwendungen benutzt. Die Methode der Session-Fixation ist ein Angriff auf eben diese Schlüssel.
Php erzeugt so einen Schlüssel mit einer sehr hohen Zufallswahrscheinlichkeit und generiert so 32 Stellen für eine SessionID. Folglich ist dieser Schlüssel sehr schwer zu erraten.
Die einfachste Methode sich unberechtigt Zugang zu verschaffen ist also, den Schlüssel vorzugeben. Zusätzlich muss der Angreifer einen user dazu bewegen, seinen selbst generierten Schlüssel zu verwenden.
Erich Kachel hat hierzu eine Recht anschauliche Realsitation beschrieben:
Es genügt also, dem Opfer lediglich ein Link oder ein Cookie unterzuschieben, das schon eine SessionID enthält. Surft nun das Opfer auf euere Seite und meldet sich an, (z.b mit user: Horst pw: Köhler) wir die Session (mit der vom Angreifer generierten ID) dem user Horst mit dem Passwort köhler zugewiesen.
Der Angreifer kann nun die Identität des Users annehmen, da er mit der selben SessionID die Seite besucht. Die Anwendung denk also, der Angreifer wäre Horst und gewährt im Zutritt.
Ich verlinke hierzu ein Bild, das die Sache etwas veranschaulicht:
[Blockierte Grafik: http://www.erich-kachel.de/wp-content/uploads/2008/09/screenshot31.png]
Quelle: erich-kachel.de
1. Der Angreifer ruft die Anwendung als anonymer Nutzer auf.
2. Für die neue Session wird ein Cookie mit einer Sessionkennung erzeugt (123).
3. Das Cookie mit der Sessionkennung wird dem Angreifer gesendet.
4. Der Angreifer entnimmt dem Cookie die Kennung und gestaltet damit einen speziellen Link. Diesen lässt er dem Opfer zukommen.
5. Das Opfer verwendet den Link, um zur Anwendung zu gelangen. Dabei meldet es sich mit seinen Daten an.
6. Die Anwendung akzeptiert die Sessionkennung (123) und ordnet diese dem korrekt angemeldeten Nutzer „Müller“ zu.
7. Auch der legitimierte Nutzer bekommt ein Cookie zugeschickt.
8. Der Angreifer kann jetzt mit seinem eigenen Cookie die Anwendung aufrufen.
9. Da in der Zwischenzeit die Sessionkennung (123) des Angreifers dem Nutzer „Müller“ zugeordnet wurde, wird der Angreifer mit dieser Kennung als Nutzer „Müller“ von der Anwendung akzeptiert werden.
Schutz:
Der Schutz vor Session-Fixation ist denkbar einfach. Man muss lediglich eine neue SessionID generieren, sodass der Angreifer die alte, von ihm generierte ID, nicht mehr benutzen kann.
Durch die funktion
wird eine neue zufällige ID generiert.
Nun meine Frage:
Wann muss eine neue ID generiert werden. Im Netz scheiden sich hier die Geister, ob vor oder erst nach der Anmeldung eine neue ID generiert werden soll.
Ich sage, das es vollkommen egal ist, was meint ihr dazu?
grüße
wie ihr vllt merkt befasse ich mich gerade mit dem Thema Sicherheit in Webanwendungen. (siehe anderer Fred)
Habe mir gedacht (oder gehofft), wir könnten hier ein paar themen durchkauen im Bezug auf die Sicherheit von Webanwendungen. Da hier ja auch studierte Fachleute aktiv sind, hab ich großes Vertrauen in dieses Forum (im gegensatz zu anderen, in denen lediglich Posts aus anderen Foren in abgeänderter Form wiedergegeben werden und keiner eigntl so recht weiß, was er eigentlich von sich gibt

Vielleicht könnten wir mal mit den Sessions anfangen und uns danach weiterhangeln. Wär toll das mit euch durchzukauen und euere Meinungen zu hören.
Ich bringe mal ein paar Infos:
Session-Fixation
Wie Ihr sicher alle wisst, werden Sessionschlüssel (sog. Sesson-ID's) für die zur Identifizierung in Webanwendungen benutzt. Die Methode der Session-Fixation ist ein Angriff auf eben diese Schlüssel.
Php erzeugt so einen Schlüssel mit einer sehr hohen Zufallswahrscheinlichkeit und generiert so 32 Stellen für eine SessionID. Folglich ist dieser Schlüssel sehr schwer zu erraten.
Die einfachste Methode sich unberechtigt Zugang zu verschaffen ist also, den Schlüssel vorzugeben. Zusätzlich muss der Angreifer einen user dazu bewegen, seinen selbst generierten Schlüssel zu verwenden.
Erich Kachel hat hierzu eine Recht anschauliche Realsitation beschrieben:
In einem Bahnhofsgebäude befinden sich Schließfächer. Ein Angreifer verwendet ein Schließfach, entnimmt den Schlüssel und fertigt eine Kopie an. Anschließend gibt er das Schließfach wieder frei. Verwendet ein Opfer anschließend dasselbe Schließfach, so besitzt der Angreifer bereits einen passenden Schlüssel dazu. Da an solche Schließfächer keine weiteren Kontrollen (Identitätskontrolle, einmaliger Zugangscode) stattfinden, genügt der Besitz des Schlüssels um an fremde Inhalte zu kommen.
Es genügt also, dem Opfer lediglich ein Link oder ein Cookie unterzuschieben, das schon eine SessionID enthält. Surft nun das Opfer auf euere Seite und meldet sich an, (z.b mit user: Horst pw: Köhler) wir die Session (mit der vom Angreifer generierten ID) dem user Horst mit dem Passwort köhler zugewiesen.
Der Angreifer kann nun die Identität des Users annehmen, da er mit der selben SessionID die Seite besucht. Die Anwendung denk also, der Angreifer wäre Horst und gewährt im Zutritt.
Ich verlinke hierzu ein Bild, das die Sache etwas veranschaulicht:
[Blockierte Grafik: http://www.erich-kachel.de/wp-content/uploads/2008/09/screenshot31.png]
Quelle: erich-kachel.de
1. Der Angreifer ruft die Anwendung als anonymer Nutzer auf.
2. Für die neue Session wird ein Cookie mit einer Sessionkennung erzeugt (123).
3. Das Cookie mit der Sessionkennung wird dem Angreifer gesendet.
4. Der Angreifer entnimmt dem Cookie die Kennung und gestaltet damit einen speziellen Link. Diesen lässt er dem Opfer zukommen.
5. Das Opfer verwendet den Link, um zur Anwendung zu gelangen. Dabei meldet es sich mit seinen Daten an.
6. Die Anwendung akzeptiert die Sessionkennung (123) und ordnet diese dem korrekt angemeldeten Nutzer „Müller“ zu.
7. Auch der legitimierte Nutzer bekommt ein Cookie zugeschickt.
8. Der Angreifer kann jetzt mit seinem eigenen Cookie die Anwendung aufrufen.
9. Da in der Zwischenzeit die Sessionkennung (123) des Angreifers dem Nutzer „Müller“ zugeordnet wurde, wird der Angreifer mit dieser Kennung als Nutzer „Müller“ von der Anwendung akzeptiert werden.
Schutz:
Der Schutz vor Session-Fixation ist denkbar einfach. Man muss lediglich eine neue SessionID generieren, sodass der Angreifer die alte, von ihm generierte ID, nicht mehr benutzen kann.
Durch die funktion
wird eine neue zufällige ID generiert.
Nun meine Frage:
Wann muss eine neue ID generiert werden. Im Netz scheiden sich hier die Geister, ob vor oder erst nach der Anmeldung eine neue ID generiert werden soll.
Ich sage, das es vollkommen egal ist, was meint ihr dazu?
grüße
----[Blockierte Grafik: http://www.smilie-harvester.de/smilies/Alltag/putzen.gif] Nein ich bin nicht die Signatur, ich Putz hier nur ---