BeBur schrieb:
Banken benutzen sichere 2FA Verfahren für die wichtigen Dinge.
Haha... :>
BeBur schrieb:
Also ich denke du missverstehst da etwas grundlegend falsch.
Nein. Du missverstehst eher das Problem.
BeBur schrieb:
Auch alle anderen potentiellen Fingerprint-Eigenschaften können ziemlich trivial gefälscht bzw. kopiert werden.
Ja können sie. Was aber zur Folge hat, dass eine Session, die von
10.0.0.1
und UA
Firefox 100
initiiert wurde, nicht von
10.0.0.2
und
Edge 95
"kopiert" werden kann. Genau das sagen doch die OWASP Guides aus. Dass eben nicht einfach irgendwas kopiert werden kann und trotzdem gültig ist, weil eben auf Serverseite erweiterte Prüfungen zur Plausibilität der Daten bestehen. Wenn keine Merkmale vorhanden sind, wird eben keine längere Session erlaubt.
Du willst hier grad nen OAuth Auth Code mit der Client ID
abc
haben und nen Auth Token mit Client ID
def
anfordern. Das klappt nicht, da wird dir sehr wohl ein Fehler um die Ohren geworfen.
Piktogramm schrieb:
Mich hat Google schon mehrfach aus Sessions geschmissen, als ich Zugriff aus "komischen" IPbereichen haben wollte.
Ich kenne nur den Captcha wenn Google meint, dass "komischer Traffic" von mir kommt. Aus der Session wurde ich aber nie geworfen oder irgendwas in der Art.
Piktogramm schrieb:
Es könnte etwas empfindlicher sein, aber ein Allheilmittel ist das nicht.
Nein. Ist es nicht. Aber ein zusätzlicher Faktor um Session Hijacking zu unterbinden oder mindestens zu erschweren.
Piktogramm schrieb:
Die Angreifer sind im Userspace um die Token zu extrahieren, da kann man als Angreifer genausogut auch ein VPN-Endpunkt im Userspace setzen und kann die Tokens vom selben Rechner aus wie das Ziel nutzen.
Umso sinnvoller, dass nicht blindlings jede Session aufgegriffen wird, die der Client einfach so ausweist. Je nach Umfang des Tokens und etwas Bruteforce könnte man damit jede einzelne Session übernehmen, bis ich irgendwann beim Admin angekommen bin und ein paar Channel lösche, die mich nerven. Aus dem Grund sollte die Session mindestens
etwas gehärtet werden. Sonst kann ich als Session Token auch einfach den Usernamen verwenden, welcher genauso "sicher" wäre. Es gibt ja immerhin bereits eine Abstraktionsschicht dazwischen, dass der Server dir eine ID erteilt und die Sessiondaten bei sich speichert, während der Client nur dessen ID übermittelt. Jede Verbindung, die aber rein auf Clientseite läuft ist prinzipiell als unsicher zu betrachten und
muss vom Server geprüft. Selbes Schicksal wie SQL-Injections.
Piktogramm schrieb:
Braucht es mehr als ein Sessionkey, kopiert man einfach alle Daten mit, die zum Fingerprinting nötig sind
Deswegen rede ich davon, dass die Session
serverseitig gehärtet wird. Der Client bekommt weiterhin seinen Token zugespielt, auf Serverseite sollte diese aber genauso validiert werden. Da kann jeder kopieren wie er lustig ist und es passiert nichts, weil man clientseitig nicht einsehen kann, mit welchen Merkmalen der Server die Session härtet. Ist zwar etwas Security through Obscurity, aber wie bereits gesagt: Man versetzt Berge um eine verbesserte Serverauthentifizierung zu erreichen, schlampt aber vorn und hinten beim Client. Die Resultate sieht man somit bei übernommenen Accounts, ohne dass Credentials oder 2FA angefasst werden mussten, gar bereits geändert wurden und die Probleme trotzdem weiter bestehen.
In Zeiten von JWTs quasi unmöglich, da man diese eben ausgibt, damit man keine DB anfragen muss, aber eben auch ein eklatantes Problem, was es zudem unmöglich macht JWTs zurückzuziehen. Und wenn man JWTs zurückziehbar macht, landet man prinzipiell wieder bei herkömmlichen Cookies, hat aber einzig die Komplexität ins Unermessliche gesteigert. Quasi ein Baumhaus aus Carbon hergestellt. Schönes Proof of Concept. Ist halt trotzdem dumm.
Piktogramm schrieb:
"denn prinzipiell kann das jeder" -> Was kann passieren? (Das ist ne Sprachkritik, es gibt kein Subjekt/Objekt aus welches sich dieses "das" beziehen kann)
das = worüber wir uns hier gerade unterhalten
Piktogramm schrieb:
Das mit einem Schädling von extern eine Rolle mit kritischen, internen Zugriffsrechten übernommen wird, wenn diese Rolle keine externen Kommunikationsrechte hat?
Wir reden hier nicht vom Zugangs-PC für atomare Sprengköpfe, sondern von Google-Konten. Und ja, diese haben immer einen externen (Internet) Zugriff. Weiterhin ist es überhaupt offen, ob es explizit einen "Youtube-Kanal-Management-Scope" gibt, welcher getrennt vom eigentlichen "Google-eMail-Scope" liegt. Auch ist es zweifelhaft, dass es Write/Delete-Scopes gibt und "Rate-Limited-Scopes" sowieso nicht.
Ich hab hier allerdings keinen Firmenaccount oder Youtube-Kanal-whatever-Account um da irgendwas nachprüfen zu können.
Piktogramm schrieb:
CSFR geht wunderbar über POST, wobei die Thematik CSFR in meinen Augen nicht sorecht zum LTT Hack passt. Über CSFR Sessiontokens und/oder Cookies zu extrahieren ist bei aktuellen Browsern schwierig.
CSRF geht
ausschließlich über POST. Und doch, es gibt Parallelen zum Session Hijacking. Bei CSRF wird sichergestellt, dass der User selbst die Aktion ausführt. Wenn man einen Link anklingt, ist das immer ein GET. Wenn der Link irgendwo eingebunden ist, ist das immer ein GET. CSRF ist nur bei POST aktiv und weiterhin brauch man immer einen aktuellen CSRF-Token, welcher nur vom Anbieter selbst ausgegeben wird, wodurch Forging Angriffe quasi unmöglich gemacht werden. CORS setzt dem dann noch die Krone auf, wobei ein Browser alle Requests zu "unterschiedlichen Origins" (nur Schema + Hostname + Port bilden "eine Quelle") einfach blockiert, was nicht mal durch den Request selbst, sondern durch einen Preflight (OPTIONS) validiert wird.
Serverseitig ist man mittlerweile relativ gut abgesichert, würde ich mal meinen.
Piktogramm schrieb:
Banken haben da recht wenig Entscheidungsspielraum, die haben Richtlinien, dass sie Sessions nach wenigen Minuten invalidieren müssen.
Ja, was die Richtlinien sagen ist mir prinzipiell vollkommen egal. In den Richtlinien kann sonst was drin stehen, so auch wie in manchen AGB steht, dass die Rechte am Erstgeborenen übergeben werden. Das ist genauso sinnvoll wie irgendwelche Zertifikate, wo sonst was ausgewiesen werden kann. Hier gehts aber um die Sicherheit und nicht dass irgendwo mal irgendwas festgehalten wurde. Dass die Richtlinien dann doch mal effektiv der Sicherheit dienen, ist doch eher löblich.
Was ich damit sagen will: Nur weil irgendwelche Richtlinien existieren, muss es deswegen nicht kritiklos hingenommen werden.
Ist es eigentlich auch ne Richtlinie, dass die Sparkasse (?) maximal 8-stellige Passwörter annimmt? Keine Ahnung welche das genau war...
À propos Richtlinie: Eine immer noch gültige "Richtlinie" beschreibt bspw., dass man sein Passwort alle drei Monate ändern soll und das geänderte Passwort nicht eines der letzten x Änderungen sein darf.
Frage: Wie sinnvoll ist diese Richtlinie so?
Also: Dass eine Richtlinie existiert, die man ggf. mehr oder minder dehnen kann, sagt genau gar nichts aus.